function ChangeInnerHTML (id, str){ if (document.all) { document.all(id).innerHTML = str; } else if (document.getElementById) { document.getElementById(id).innerHTML = str; } } // Function for Email validation function ValidEmail(Email){ var LastChar = Email.length - 1; var CharPos = Email.indexOf("@"); if ((CharPos < 1) || (CharPos == LastChar)) return false; // position of first . var CharPos = Email.indexOf("."); if (CharPos < 1) return false; // position of last . var CharPos = Email.lastIndexOf("."); if (CharPos == LastChar) return false; return true; } function date_eq (D1, D2){ return ((D1.getDate() == D2.getDate()) && (D1.getMonth() == D2.getMonth()) && (D1.getYear() == D2.getYear())) } function get_value (input){ if (!input) return false; else { if (input.type == 'select-one'){ if (input.selectedIndex > -1){ return (input.options[input.selectedIndex].value); } else return (""); } if (input.type == 'text'){ return (input.value); } if (input.type == 'hidden'){ return (input.value); } else { alert (input.type); } } } function nights_num (num){ num = 1*num; switch (num){ case 0: return ('night');break; case 1: return ('night');break; case 2: return ('nights');break; case 3: return ('nights');break; case 4: return ('nights');break; default: return ('nights');break; } } function rooms_num (num){ num = 1*num; switch (num){ case 0: return ('room');break; case 1: return ('room');break; case 2: return ('rooms');break; case 3: return ('rooms');break; case 4: return ('rooms');break; default: return ('rooms');break; } } function people_num (num){ num = 1*num; switch (num){ case 0: return ('person');break; case 1: return ('person');break; case 2: return ('people');break; case 3: return ('people');break; case 4: return ('people');break; default: return ('people');break; } } function recalculate (display_err){ // kontrola nutnych poli var f = document.frmOrder; var Err = ""; var Missed = ""; var RoomTypes = 0; var Msg = ""; var Res = false; // nastup na hotel a pocet noci if (!get_value(f.cmbDay)) Missed += "\n\tFirst day in hotel (Day)"; if (!get_value(f.cmbMonth)) Missed += "\n\tFirst day in hotel (Month)"; if (!get_value(f.cmbNight)) Missed += "\n\tNumber of nights"; // vyber pokoje a poctu lidi RoomTypes = get_value(f.hidRoomTypes); var RoomSel = false; var RoomCount, PersonCount, MaxPersonCount, NormalPersonCount; for (var i=0;i MaxPersonCount*RoomCount) Err += "\nNumber of guests exceeds room capacity"; if (RoomCount && PersonCount){ RoomSel = true; } } if (!RoomSel) Missed += "\n\tNumber of rooms and guests staying there"; if (Missed || Err){ Missed = "First please fill in the following:\n" + Missed; Err = Missed + Err; alert (Err); } else { //alert ("ok"); // najde se cena za osobu navic var PPlus, PMinus, Sum; PPlus = get_value(f.hidPersonPlus); PMinus = get_value(f.hidPersonMinus); Nights = get_value(f.cmbNight); FD = get_value(f.cmbDay); FM = get_value(f.cmbMonth); var Now = new Date(); FY = Now.getFullYear(); var FirstN = new Date(FY, FM-1, FD); var sale = is_sale(FirstN, Nights); if (FirstN.getTime() < Now.getTime()) FirstN.setYear (FY+1); var LastN = new Date (); LastN.setTime (FirstN.getTime() + 1000*60*60*24*Nights); var NextYear = (LastN.getFullYear() > Now.getFullYear()); Sum = 0; // pro kazdy vyplneny radek se spocte cena for (var i=0;i 0){ RoomName = get_value(f.elements["hidRoomName_"+i]); if (Msg) Msg += '
'; Msg += ''+RoomName+':
'; var NType = get_night_type (FirstN); var OType = 0; var SType = 0; var HType = 0; var HStr = ''; var Msg2 = ''; var Sum2 = 0; for (var j=0;j 0){ Msg2 += RoomPrice1 + ' '+'CZK (off-season price/night) x '+OType+' '+nights_num(OType)+' '; Sum2 += RoomPrice1*OType; } if (SType > 0){ if (Msg2) Msg2 += ' + '; Msg2 += RoomPrice2 + ' '+'CZK (season price/night) x '+SType+' '+nights_num(SType)+' '; Sum2 += RoomPrice2*SType; } if (HType > 0){ if (Msg2) Msg2 += ' + '; Msg2 += RoomPrice3 + ' '+'CZK (holiday price/night) x '+HType+' '+nights_num(HType)+' ('+HStr+')'; Sum2 += RoomPrice3*HType; } if ((OType < Nights) || (SType < Nights) || (HType < Nights)) Msg += '['+Msg2+']'; if (RoomCount > 1) Msg += ' x '+RoomCount+' '+rooms_num(RoomCount)+' '; Msg += '= '+Sum2*RoomCount+' '+'CZK'; Sum += Sum2*RoomCount; if (ExtraPerson && (((ExtraPerson > 0) && PPlus) || ((ExtraPerson < 0) && PMinus)) ){ Msg += '
Normal capacity of this room is '+NormalPersonCount+' '+people_num(NormalPersonCount) + ', but there will be '+(ExtraPerson>0? 'more people':'less people') + ' ('+Math.abs(ExtraPerson)+'), so we must '+(ExtraPerson>0? 'add ':'substract '); Msg += Math.abs(ExtraPerson)+' '+people_num(Math.abs(ExtraPerson))+' x ' + Math.abs(ExtraPerson>0?PPlus:PMinus) + ' CZK/night x '+Nights+' '+nights_num(Nights)+' = '+Math.abs(ExtraPerson)*(ExtraPerson>0?PPlus:PMinus)*Nights+' '+'CZK'; Sum += Math.abs(ExtraPerson)*(ExtraPerson>0?PPlus:PMinus)*Nights; } } } SumVal = ''+Sum + ' '+'CZK ≈ '+Math.floor(Sum/cur_euro)+' €'; if (NextYear){ Msg += '
ATTENTION, the prices for next year might be subject to change. The current price was calculated using prices valid for this year. Our online operator will inform you about the exact price once you submit your reservation.
'; } if (sale){ Msg += '
ATTENTION, because your stay at the hotel coincides with a discount or top term, the actual price can differ (it may be lower or higher). Please, refer to the top part of the reservation page for details on current discounts or top terms. Our online operator will inform you about the exact price once you submit your reservation.
'; } ChangeInnerHTML ('SumDescription', Msg); f.hidOrderText.value = Msg; ChangeInnerHTML ('SumValue', SumVal); f.hidOrderPrice.value = SumVal; Res = true; } return (Res); } function CheckForm (F){ var Res = recalculate (true); var Err = ''; var Missed = ''; if (Res){ // Kontrola kontaktnich udaju if (!get_value(F.edName)) Missed += "\n\tYour name"; if (!get_value(F.edSurname)) Missed += "\n\tYour surname"; if (!get_value(F.edEmail)) Missed += "\n\tYour email"; if (!get_value(F.edCountry)) Missed += "\n\tYour country"; if (get_value(F.edEmail) && !ValidEmail(F.edEmail.value)) Missed += "\n\tThe email address you have entered is incorrect"; if (Missed){ Missed = "Please fill in the following details before submitting the form:\n" + Missed; Err = Missed + Err; alert (Err); Res = false; } else Res=true; } return (Res); }