\ \ \ \ \ var searchType; function afterHomeLoad(){ $("#frmLogin").validate(); $("#frmNewsletter").validate(); if(searchType==null) searchType="accommodation"; setupSearchFields(); } // sets up search forms according to selected search type function setupSearchFields(){ switch (searchType) { case "accommodation": setupAccommodationFields(); $("#frmQuickSearch").validate(); break; case "offers": setupOffersFields(); $("#frmQuickSearch").validate(); break; case "ferries": setupFerriesFields(); $("#frmQuickSearch").validate(); break; case "cars": setupCarFields(); $("#frmQuickSearch").validate(); break; case "accomncar": setupAccomNCarFields(); $("#frmQuickSearch").validate(); break; case "accomnflight": setupAccomNFlightFields(); $("#frmQuickSearch").validate({ rules: { returnDate: { required: function(){ return $("#flightType_roundTrip").is(":checked"); } } } }); break; case "transfers": setupTransfersFields(); $("#frmQuickSearch").validate(); break; case "activities": setupActivitiesFields(); $("#frmQuickSearch").validate(); break; case "packages": setupPackagesFields(); $("#frmQuickSearch").validate(); break; case "flights": setupFlightFields(); $("#frmQuickSearch").validate({ rules: { returnDate: { required: function(){ return $("#flightType_roundTrip").is(":checked"); } } } }); break; case "flightncar": setupFlightNCarFields(); $("#frmQuickSearch").validate({ rules: { returnDate: { required: function(){ return $("#flightType_roundTrip").is(":checked"); } } } }); break; case "accomflightncar": setupAccomNFlightNCarFields(); $("#frmQuickSearch").validate({ rules: { returnDate: { required: function(){ return $("#flightType_roundTrip").is(":checked"); } } } }); break; } } //validates and submits quick search form function doQuickSearch(){ if ($("#frmQuickSearch").valid()) { document.forms["frmQuickSearch"].submit(); } } function setupCarFields(){ $("#trCarDropOff").hide(); loadAutocomplete("#carPickup, #carDropOff" , "/ajax/carpickup.txt" ,2 ); $("#differentDropOffSpot").change(function(){ if ($("#differentDropOffSpot").is(":checked")) { $("#trCarDropOff").show(); } else { $("#trCarDropOff").hide(); } }); } function setupAccommodationFields(){ loadAutocomplete("#accomdestination" , "/ajax/accomodationDestinations.txt" ,2 ); var totalRooms = $.cookie("totalRooms"); if (totalRooms == "" || totalRooms == null) { totalRooms = 1; } totalRooms = eval(totalRooms); initializeRoomFields(totalRooms); } function setupOffersFields(){ loadAutocomplete("#offersDestination" , "/ajax/offersDestinations.txt" ,2 ); } function setupFerriesFields(){ $("input[name='cruiseType']").change(function(){ if ($("#cruiseType_roundTrip").is(":checked")) { $("#trReturnDate").show(); } else { $("#trReturnDate").hide(); } }); loadAutocomplete("#ferriesPortDeparture ,#ferriesPortArrival" , "/ajax/ferriesPorts.txt" ,2 ); $("#childrenRoom1").change(function(){ updateChildrenOptions($(this)); }); $("#tdRoom1childrenages").hide(); } function setupTransfersFields(){ $("input[name='transferType']").change(function(){ if ($("#transferType_roundTrip").is(":checked")) { $("#trReturnDate").show(); } else { $("#trReturnDate").hide(); } }); loadAutocomplete("#transfersCountry" , "/ajax/transfersCountry.txt" ,2 ); loadAutocomplete("#transfersFromCity,#transfersToCity", function(request, response) { $.ajax({ url: "/ajax/transfersCity.txt", dataType: "json", data: { country: $("#transfersCountry_id").val(), term : request.term }, success: function(data) { response($.map(data, function(item) { return { label: item.label, value: item.value } })) } }) },2 ); $("#childrenRoom1").change(function(){ updateChildrenOptions($(this)); }); $("#tdRoom1childrenages").hide(); } function setupActivitiesFields(){ loadAutocomplete("#activitiesLocation" , "/ajax/activitiesLocation.txt" ,2 ); $("#childrenRoom1").change(function(){ updateChildrenOptions($(this)); }); $("#tdRoom1childrenages").hide(); } function setupPackagesFields(){ var totalRooms = $.cookie("totalRooms"); if (totalRooms == "" || totalRooms == null) { totalRooms = 1; } totalRooms = eval(totalRooms); initializeRoomFields(totalRooms); } /***We use the same Ajax TXT files for all autocomplete fields in favor of simplicity ***/ function setupAccomNCarFields(){ loadAutocomplete("#accomdestination" , "/ajax/hotelsDestination.txt" ,2 ); loadAutocomplete("#carPickUp,#carDropOff" , "/ajax/carpickup.txt" ,2 ); var totalRooms = $.cookie("totalRooms"); if (totalRooms == "" || totalRooms == null) { totalRooms = 1; } totalRooms = eval(totalRooms); initializeRoomFields(totalRooms); } function setupAccomNFlightFields() { $("input[name='flightType']").change(function(){ if ($("#flightType_roundTrip").is(":checked")) { $("#trReturnDate").show(); } else { $("#trReturnDate").hide(); } }); loadAutocomplete("#flightOrigin, #flightDestination" , "/ajax/airports.txt" ,2 ); loadAutocomplete("#airline" , "/ajax/airlines.txt" ,2 ); var totalRooms = $.cookie("totalRooms"); if (totalRooms == "" || totalRooms == null) { totalRooms = 1; } totalRooms = eval(totalRooms); initializeRoomFields(totalRooms); } function setupFlightFields(){ $(".trAddIntermediateDestinations").hide(); $("#tdInfantSeats").hide(); $("input[name='flightType']").change(function(){ if ($("#flightType_roundTrip").is(":checked")) { $("#trReturnDate").show(); } else { $("#trReturnDate").hide(); } if ($("#flightType_withIntermediateDestinations").is(":checked")){ $(".trAddIntermediateDestinations").show(); } else { $(".trAddIntermediateDestinations").hide(); } }); loadAutocomplete("#flightOrigin, #flightDestination" , "/ajax/airports.txt" ,2 ); loadAutocomplete("#airline" , "/ajax/airlines.txt" ,2 ); $("#infants").change(function(){ updateFlightInfantOptions($(this)); }); $("#childrenRoom1").change(function(){ updateChildrenOptions($(this)); }); $("#tdRoom1childrenages").hide(); } function setupFlightNCarFields(){ $("input[name='flightType']").change(function(){ if ($("#flightType_roundTrip").is(":checked")) { $("#trReturnDate").show(); } else { $("#trReturnDate").hide(); } }); loadAutocomplete("#flightOrigin, #flightDestination" , "/ajax/airports.txt" ,2 ); loadAutocomplete("#airline" , "/ajax/airlines.txt" ,2 ); loadAutocomplete("#carPickUp,#carDropOff" , "/ajax/carpickup.txt" ,2 ); $("#infantsRoom1").change(function(){ updateFlightInfantOptions($(this)); }); $("#childrenRoom1").change(function(){ updateChildrenOptions($(this)); }); $("#tdRoom1childrenages").hide(); } /*************************************************/ function setupAccomNFlightNCarFields(){ $("input[name='flightType']").change(function(){ if ($("#flightType_roundTrip").is(":checked")) { $("#trReturnDate").show(); } else { $("#trReturnDate").hide(); } }); loadAutocomplete("#flightOrigin, #flightDestination" , "/ajax/airports.txt" ,2 ); loadAutocomplete("#accomdestination" , "/ajax/accomodationDestinations.txt" ,2 ); loadAutocomplete("#airline" , "/ajax/airlines.txt" ,2 ); loadAutocomplete("#carPickUp,#carDropOff" , "/ajax/carpickup.txt" ,2 ); var totalRooms = $.cookie("totalRooms"); if (totalRooms == "" || totalRooms == null) { totalRooms = 1; } totalRooms = eval(totalRooms); initializeRoomFields(totalRooms); } // used by setupFlightFields function updateFlightInfantOptions(control) { var totalInfants = eval($(control).val()); if (totalInfants == 0) { $("#tdInfantSeats").hide(); } else { $("#tdInfantSeats").show(); var options = ""; for (var i=0;i<=totalInfants;++i) { options += "
"; } $("#infantSeats").html(options); } } // used by setupAccomNFlightFields function initializeRoomFields(totalRooms) { for (var count = 1; count <= 4; ++count) { $("#childrenRoom" + count).change(function(){ updateChildrenOptions($(this)); }); $("#infantsRoom" + count).change(function(){ updateInfantOptions($(this)); }); $("#tdRoom" + count + "childrenages, #tdRoom" + count + "infantSeats").hide(); if (count > totalRooms) { $("#room" + count).hide(); } } showHideRoomOptions(totalRooms); $("#totalRooms").change(function(){ var totalRooms = eval($("#totalRooms").val()); $.cookie("totalRooms", totalRooms, { path: '/', expires: 10 }); showHideRoomOptions(totalRooms); }); } // used by setupAccomNFlightFields function showHideRoomOptions(totalRooms){ for (var i=1;i<=totalRooms;++i) { $("#room" + i).show(); $("#childrenRoom" + i).change(); $("#infantsRoom" + i).change(); } for (var i=totalRooms + 1;i<=4;++i) { $("#room" + i).hide(); } $("#totalRooms").val(totalRooms); } // used by setupAccomNFlightFields function updateInfantOptions(control) { var totalInfants = eval($(control).val()); var roomNo = eval($(control).attr("id").substring(11,12)); var selectedInfants = eval($("#room" + roomNo + "infantSeats").val()); if (totalInfants == 0) { $("#tdRoom" + roomNo + "infantSeats").hide(); } else { $("#tdRoom" + roomNo + "infantSeats").show(); var options = ""; for (var i=0;i<=totalInfants;++i) { if(i==selectedInfants) options += "
"; else options += "
"; } $("#room" + roomNo + "infantSeats").html(options); } } // used by setupAccomNFlightFields function updateChildrenOptions(control) { var totalChildren = eval($(control).val()); var roomNo = eval($(control).attr("id").substring(12,13)); if (totalChildren == 0) { $("#tdRoom" + roomNo + "childrenages").hide(); } else { $("#tdRoom" + roomNo + "childrenages").show(); for (var i=1;i<=totalChildren;++i){ $("#room" + roomNo + "child" + i + "age").show(); } for (var i=totalChildren + 1;i<=4;++i){ $("#room" + roomNo + "child" + i+ "age").hide(); } } } function removeDestination(which) { $(which).closest('tr').remove(); if ($("#tblDestinations tbody > tr").size() == 0) { $("#tblDestinations tfoot").show(); } } function addDestination() { if ($("#frmQuickSearch").valid()) { alert("valid"); var html = String.format("
 |
{0}
|
{1}
|
{2} |
", $("#flightOrigin").val().replace("\"", """), $("#flightDestination").val().replace("\"", """), $("#departureDate").val().replace("\"", """)); $("#tblDestinations tbody").append(html); if ($("#tblDestinations tbody > tr").size() > 0) { $("#tblDestinations tfoot").hide(); } } else { alert("invalid"); } return false; }