WAYN.Shared.SearchBoxes = {
loadJS : function( boxName ) {
switch ( boxName.toLowerCase() ) {
case "friendssearch":
WAYN.Import("/js/box/friendsimport.js");
break;
case "flightsearch":
WAYN.Import("/flights/flights.js");
break;
case "insurancesearch":
WAYN.Import("/insurance/purchase.css");
WAYN.Import("/insurance/purchase.js");
break;
case "accomodationsearch":
WAYN.Import("/js/box/accomodation.js");
break;
case "restaurantssearch":
WAYN.Import("/js/box/restaurants.js");
break;
case "nightlifesearch":
WAYN.Import("/js/box/nightlife.js");
break;
case "thingstodosearch":
WAYN.Import("/travels/Attractions.js");
break;
}
},
parseFlights : function() {
try {
var script = null;
for ( var n = $('flights_a6d0ed38_arrive').firstChild; n != null; n = n.nextSibling ) {
if (n.tagName != null) {
if(n.tagName.toLowerCase() == "script") {
var script = n;
}
}
}
if ( script != null ) {
var divcFlights =  $('flights_a6d0ed38_arrive');
$('return_date_Container').innerHTML = '';
divcFlights.removeChild(script);
var scrFlights = document.createElement('script');
scrFlights.text = script.innerHTML;
divcFlights.appendChild(scrFlights);
}
for ( var n = $('flights_eab574fc_depart').firstChild; n != null; n = n.nextSibling ) {
if (n.tagName != null) {
if(n.tagName.toLowerCase() == "script") {
var script = n;
}
}
}
if ( script != null ) {
var divcFlights =  $('flights_eab574fc_depart');
$('depart_date_Container').innerHTML = '';
divcFlights.removeChild(script);
var scrFlights = document.createElement('script');
scrFlights.text = script.innerHTML;
divcFlights.appendChild(scrFlights);
}
} catch (e) {}
},
parseAccomodation : function() {
var sd = new Date();
sd.setDate(sd.getDate()+7);
var ed = new Date();
ed.setDate(ed.getDate()+8);
var smm = sd.getMonth() + 1 + '';
var sdd = sd.getDate() + '';
if(smm.length == 1){smm='0'+smm}
if(sdd.length == 1){sdd='0'+sdd}
var emm = ed.getMonth() + 1 + '';
var edd = ed.getDate() + '';
if(emm.length == 1){emm='0'+emm}
if(edd.length == 1){edd='0'+edd}
var startd = sdd + '/' + smm + '/' + sd.getFullYear();
var isostartd = sd.getFullYear() + '-' + smm + '-' + sdd;
var endd = edd + '/' + emm + '/' + ed.getFullYear();
var isoendd = sd.getFullYear() + '-' + emm + '-' + edd;
var divcHotels = document.createElement('div');
divcHotels.setAttribute("id", "HotelsDateContainer");
var scrHotels = document.createElement('script');
var txtHotels = 'new DatetimeToolbocks({ inputValue:"' + isostartd + '", elementId:"HotelsDate",startDate:"true",elementNextId:"",calendarOptions: {textDateClass:"textBlackDefault"}});';
scrHotels.text = txtHotels;
var cellHotels = $('hotels_dateStartContainer');
cellHotels.appendChild(divcHotels);
cellHotels.appendChild(scrHotels);
var divcHotelsEnd = document.createElement('div');
divcHotelsEnd.setAttribute("id", "HotelsDateEndContainer");
var scrHotelsEnd = document.createElement('script');
var txtHotelsEnd = 'new DatetimeToolbocks({ inputValue:"' + isoendd + '", elementId:"HotelsDateEnd",startDate:"false",elementNextId:"",calendarOptions: {textDateClass:"textBlackDefault"}})';
scrHotelsEnd.text = txtHotelsEnd;
var cellHotelsEnd = $('hotels_dateEndContainer');
cellHotelsEnd.appendChild(divcHotelsEnd);
cellHotelsEnd.appendChild(scrHotelsEnd);
var divcHostels = document.createElement('div');
divcHostels.setAttribute("id", "HostelsDateContainer");
var scrHostels = document.createElement('script');
var txtHostels = 'new DatetimeToolbocks({ inputValue:"' + isostartd + '", elementId:"HostelsDate",startDate:"true",elementNextId:"HostelsDateEnd",calendarOptions: {textDateClass:"textBlackDefault"}})';
scrHostels.text = txtHostels;
var divcHostelsEnd = document.createElement('div');
divcHostelsEnd.setAttribute("id", "HostelsDateEndContainer");
var scrHostelsEnd = document.createElement('script');
var txtHostelsEnd = 'new DatetimeToolbocks({ inputValue:"' + isoendd + '", elementId:"HostelsDateEnd",startDate:"false",elementNextId:"HostelsDate",calendarOptions: {textDateClass:"textBlackDefault"}})';
scrHostelsEnd.text = txtHostelsEnd;
var cellHostels = $('hostels_dateStartContainer');
var cellHostelsEnd = $('hostels_dateEndContainer');
cellHostels.appendChild(divcHostels);
cellHostels.appendChild(scrHostels);
cellHostelsEnd.appendChild(divcHostelsEnd);
cellHostelsEnd.appendChild(scrHostelsEnd);
if ($('HotelsDate'))
$('HotelsDate').value = isostartd;
if($('HotelsDateInput'))
$('HotelsDateInput').value = startd;
if($('HotelsDateEnd'))
$('HotelsDateEnd').value = isoendd;
if($('HotelsDateEndInput'))
$('HotelsDateEndInput').value = endd;
var iStart = $('HotelsDateDetail');
var iEnd = $('HotelsDateEndDetail');
},
setMenu : function ( img ) {
if ( Object.isElement(img) ) {
try {
var testCount = 0;
for (var tmp = img.parentNode.parentNode.firstChild; tmp != null; tmp = tmp.nextSibling) {
try {
if ( tmp.tagName.toLowerCase() == 'td') {
testCount++;
}
} catch (e) {
alert(e.message);
}
}
if (testCount > 1 ) {
for (var tmp = img.parentNode.parentNode.firstChild; tmp != null; tmp = tmp.nextSibling) {
try {
if ( tmp.tagName.toLowerCase() == 'td') {
for ( var tmp2 = tmp.firstChild; tmp2 != null; tmp2 = tmp2.nextSibling) {
try {
if ( tmp2.tagName.toLowerCase() == 'img') {
tmp2.setAttribute('active','off');
tmp2.src = tmp2.getAttribute('image');
}
}catch(ee){}
}
}
} catch (e) {}
}
} else {
for (var tmp3 = img.parentNode.parentNode.parentNode.firstChild; tmp3 != null; tmp3 = tmp3.nextSibling) {
try {
if ( tmp3.tagName.toLowerCase() == 'tr') {
for (var tmp = tmp3.firstChild; tmp != null; tmp = tmp.nextSibling) {
try {
if ( tmp.tagName.toLowerCase() == 'td') {
for ( var tmp2 = tmp.firstChild; tmp2 != null; tmp2 = tmp2.nextSibling) {
try {
if ( tmp2.tagName.toLowerCase() == 'img') {
tmp2.setAttribute('active','off');
tmp2.src = tmp2.getAttribute('image');
}
}catch(ee){}
}
}
} catch (e) {}
}
}
} catch (eee){}
}
}
img.src = img.getAttribute('imagehover');
img.setAttribute('active','on');
} catch (eee) {}
// /TODO
}
},
/**
* BoxName
* BoxId
* who
* tmpaddons
* From
* count
* img
* page
*/
update : function (BoxName, BoxID, who, tmpaddons, From, count, img, page ) {
WAYN.Shared.SearchBoxes.setMenu(img);
if ((From==1)||(From==2)){
if ((who==null)||(who=="")){
if ( $("who") )
who=$("who").value;
}
else{
if ( $("who") )
$("who").value=who;
}
}
if (From==2){
if ((BoxName==null)||(BoxName=="")){
if ($("box_name") )
BoxName=$("box_name").value;
}
else{
if ($("box_name") )
$("box_name").value=BoxName;
}
}
try{
if ((count==null)||(count<=0)||(count=='')){
timernames["timername_"+BoxID]=BoxName;
}
}
catch(e){
}
if (timernames["timername_"+BoxID]!=BoxName){return;}
if ((count==null)||(count<0)||(count=='')){count=0;}
count++;
if (count>10){return;}//failed to many times operation aborted
var xmlRequest = null;
try{
var addons="";
if (tmpaddons!=null){addons=tmpaddons;}
var boxDiv=$(BoxID);
var strUrl="/wayntravels.html?wci=destination&wce=getbox&box=";
if (BoxID=="search_box"){
if ( page != null ) {
strUrl="/wayntravels.html?wci=home&wce=getbox" + BoxName + "&contentpage="+page+"&box=";
} else {
strUrl="/wayntravels.html?wci=home&wce=getbox" + BoxName + "&box=";
}
}
if((boxDiv != null)&&(BoxName != null)){
var country_code = $("country_code").value;
var country_name = $("country_name").value;
var city_key = $("city_key").value;
var city_name = $("city_full_name").value;
if(city_name=='State/County not known') city_name='';
var town_key = $("town_key").value;
var town_name = $("town_name").value;
var directory_key = $("directory_key").value;
var category_key = $("category_key").value;
var OverviewName = $("OverviewName").value;
if ( OverviewName != "" ) {
addons+="&place=" + OverviewName;
}
if ( addons == null || addons == "undefined" ){
addons="";
}
var location_key = '';
try{
location_key = $("location_key").value;
}catch(err){}
addons+="&country_code="+country_code;
addons+="&city_key="+city_key+"&town_key="+town_key+"&town_name="+town_name;
addons+="&city_name="+city_name+"&country_name="+country_name;
addons+="&who="+who;
addons+="&category_key="+category_key+"&place_key="+directory_key+"&location_key="+location_key;
addons+="&home=1";
/**
* Load files
*/
var BoxName2 = BoxName.replace(/(\d*)$/,"");
switch ( BoxName2.toLowerCase() ) {
case "friendssearch":
WAYN.Import("/js/box/friendsimport.js");
break;
case "flightsearch":
WAYN.Import("/flights/flights.js");
break;
case "insurancesearch":
WAYN.Import("/insurance/purchase.css");
WAYN.Import("/insurance/purchase.js");
break;
case "accomodationsearch":
WAYN.Import("/js/box/accomodation.js");
break;
case "restaurantssearch":
WAYN.Import("/js/box/restaurants.js");
break;
case "nightlifesearch":
WAYN.Import("/js/box/nightlife.js");
break;
case "thingstodosearch":
WAYN.Import("/travels/Attractions.js");
break;
}
/* // */
new WAYN.Updater (
strUrl + BoxName + addons,
boxDiv,
{
method : 'GET',
asynchronous: false,
onSuccess : function ( resp ) {
try {
if (timernames["timername_"+BoxID]!=BoxName){return;}
var BoxName2 = BoxName.replace(/(\d*)$/,"");
responseXml = resp.responseXML;
for (var i = responseXml.firstChild; i != null; i = i.nextSibling) {
for (var j = i.firstChild; j != null; j = j.nextSibling) {
if(j.nodeValue != null && j.nodeValue != ''){
if(BoxID){
boxDiv.innerHTML = j.nodeValue;
}
}
}
}
WAYN.Inputs.Init();
WAYN.Hint.Init();
WAYN.lightForm.Init();
if(BoxName2 == "accomodationSearch"){
WAYN.Shared.SearchBoxes.parseAccomodation();
}
if (BoxName2=="flightSearch"){
try {
var script = null;
for ( var n = $('flights_a6d0ed38_arrive').firstChild; n != null; n = n.nextSibling ) {
if (n.tagName != null) {
if(n.tagName.toLowerCase() == "script") {
var script = n;
}
}
}
if ( script != null ) {
var divcFlights =  $('flights_a6d0ed38_arrive');
$('return_date_Container').innerHTML = '';
divcFlights.removeChild(script);
var scrFlights = document.createElement('script');
scrFlights.text = script.innerHTML;
divcFlights.appendChild(scrFlights);
}
for ( var n = $('flights_eab574fc_depart').firstChild; n != null; n = n.nextSibling ) {
if (n.tagName != null) {
if(n.tagName.toLowerCase() == "script") {
var script = n;
}
}
}
if ( script != null ) {
var divcFlights =  $('flights_eab574fc_depart');
$('depart_date_Container').innerHTML = '';
divcFlights.removeChild(script);
var scrFlights = document.createElement('script');
scrFlights.text = script.innerHTML;
divcFlights.appendChild(scrFlights);
}
} catch (e) {}
}
} catch(e) {}
},
onFailure : function ( resp ) {
$(BoxID).innerHTML = '<center><b>Sorry we\'re unable to load data at the moment. We will try again in few seconds.</b></center>';
if (timernames["timername_"+BoxID]==BoxName){
setTimeout("updateBox_Homepage('" + BoxName + "','" + BoxID + "', '', '" + tmpaddons + "', '"+From+"',"+count+");",3000*count);
}
return;
},
onException: function ( resp ) {
$(BoxID).innerHTML = '<center><b>Sorry we\'re unable to load data at the moment. We will try again in few seconds.</b></center>';
if (timernames["timername_"+BoxID]==BoxName){
setTimeout("updateBox_Homepage('" + BoxName + "','" + BoxID + "', '', '" + tmpaddons + "', '"+From+"',"+count+");",3000*count);
}
return;
}
}
);
}
else{
//alert("Wrong ID for box or empty boxname");
}
}
catch(err) {
//alert('smartxml:'+err);
}
},
accTab: function (obj,page){
if(obj == 'wct'){
$('lbl_hotels').className = 'textGreenDefault';
$('lbl_hostels').className = 'textBlackDefault';
$('hotels_div').style.display='block';
$('hostels_div').style.display='none';
obj = 'hotels';
if($('lbl_hotels'))
{
$('lbl_hotels').className="textBlueMiddle";
$('lbl_hostels').className="textBlackMiddle";
}
}
if(obj == 'hw'){
$('lbl_hostels').className = 'textBlueDefault';
$('lbl_hotels').className = 'textBlackDefault';
$('hotels_div').style.display='none';
$('hostels_div').style.display='block';
obj = 'hostels';
if($('lbl_hotels'))
{
$('lbl_hotels').className="textBlackMiddle";
$('lbl_hostels').className="textBlueMiddle";
}
}
if ( page != null && page != '' ) {
new Ajax.Request(location.protocol+"//"+location.hostname+"/waynfx.html?wci=statinc&counter=" + obj+"&contentpage="+page, {
onSuccess : function(resp) {
},
onFailure : function(resp) {
},
method : "GET"
});
}
}
};
function APISearch(searchtype,contentPage){
// TT basic form
if(searchtype==1){
var location_id = $('sel_location').value;
var ambience_id = $('sel_ambience').value;
var cuisine_id = $('sel_cuisine').value;
var price_id = $('sel_price').value;
var search_where = $('search_where').value;
var url = "/wayntravels.html?wci=ttsearch&searchtype=1&location_id=" + location_id + "&ambience_id=" + ambience_id + "&cuisine_id=" + cuisine_id + "&price_id=" + price_id + "&search_where=" + search_where+"&searchBoxTracker="+contentPage;
document.restaurants.action = url;
var objform = document.restaurants;
}
// TT advanced form 'search'
if(searchtype==2){
var searchstring = $('txtsearch').value;
var searchsubtype = $Radio('searchform','searchform_radio');
if(searchsubtype==null){
searchsubtype = 'name';
}
var url = "/wayntravels.html?wci=ttsearch&searchtype=2&searchstring=" + searchstring + "&searchsubtype=" + searchsubtype+"&searchBoxTracker="+contentPage
if(searchstring != ''){
document.restaurants.action = url;
var objform = document.restaurants;
} else {
msgBox('warning','Sorry, please could you enter something into the quick search box.');
return;
}
}
// TT advanced form 'finder'
if(searchtype==3){
var url = "/wayntravels.html?wci=ttsearch&searchtype=3"
var location_id = $('adv_location').value;
url = url + "&location_id=" + location_id;
var ambience_id = $('adv_ambience').value;
url = url + "&ambience_id=" + ambience_id;
var cuisine_id = $('adv_cuisine').value;
url = url + "&cuisine_id=" + cuisine_id;
var price_id = $('adv_price').value;
url = url + "&price_id=" + price_id;
var sitting_type = $Radio('finder','finder_radio');
url = url + "&sitting_type=" + sitting_type;
var selmonth = $('month').value;
url = url + "&selmonth=" + selmonth;
var selday = $('day').value;
url = url + "&selday=" + selday;
var special_only = $('special_only').checked;
url = url + "&special_only=" + special_only;
var search_where = $('search_where').value;
url = url + "&search_where=" + search_where;
document.restaurants.action = url+"&searchBoxTracker="+contentPage;
var objform = document.restaurants;
}
// HW basic form
if(searchtype==4){
if($('HostelsDate').value == ''){
var arr = $('HostelsDateInput').value.split('/');
$('HostelsDate').value = arr[2]+'-'+arr[1]+'-'+arr[0];
}
if($('HostelsDateEnd').value == ''){
var arr = $('HostelsDateEndInput').value.split('/');
$('HostelsDateEnd').value = arr[2]+'-'+arr[1]+'-'+arr[0];
}
var dStart = $('HostelsDate').value.split('-');
var dEnd = $('HostelsDateEnd').value.split('-');
$('hostels_days').value = (Date.parse(dEnd[0]+'/'+dEnd[1]+'/'+dEnd[2]) - Date.parse(dStart[0]+'/'+dStart[1]+'/'+dStart[2]))/86400000;
var fromToday = (Date.parse(dStart[0]+'/'+dStart[1]+'/'+dStart[2]) - new Date())/86400000;
if ($('hostels_countries').options[$('hostels_countries').selectedIndex].text == 'Choose a country'){
msgBox('warning','Please select a country');
return;
}
if ($('hostels_destination').options[$('hostels_destination').selectedIndex].text == 'Choose a city'){
msgBox('warning','Please select a city');
return;
}
if ($('HostelsDate').value == ''){
msgBox('warning','Please enter a valid check in date');
return;
}
var url = "wayntravels.html?wci=ttsearch&searchtype=4"
url = url + "&countryname=" + $('hostels_countries').options[$('hostels_countries').selectedIndex].text;
url = url + "&hostels_destination=" + $('hostels_destination').options[$('hostels_destination').selectedIndex].text;
url = url + "&hostels_countries=" + $('hostels_countries').value;
url = url + "&hostels_days=" + $('hostels_days').value;
url = url + "&HostelsDate=" + $('HostelsDate').value;
document.accomodation.action = url;
var objform = document.accomodation;
if(fromToday>330){
alert('Bookings cannot be made more than 11 months in advance. Please review your check-in date.');
return;
}
if(fromToday<1){
alert('Please revise your selection. You must use a future date for a new check-in.');
return;
}
if($('hostels_days').value<1){
alert('Please enter a check-out date which occurs after the check-in date.');
return;
}
if($('hostels_days').value>14){
alert('Please revise your reservation dates. The number of nights should not exceed 14.');
return;
}
}
// WCT basic form
if(searchtype==5){
var children_age = '';
if($('HotelsDate').value == ''){
var arr = $('HotelsDateInput').value.split('/');
$('HotelsDate').value = arr[2]+'-'+arr[1]+'-'+arr[0];
}
if($('HotelsDateEnd').value == ''){
var arr = $('HotelsDateEndInput').value.split('/');
$('HotelsDateEnd').value = arr[2]+'-'+arr[1]+'-'+arr[0];
}
var dStart = $('HotelsDate').value.split('-');
var dEnd = $('HotelsDateEnd').value.split('-');
$('hotels_days').value = (Date.parse(dEnd[0]+'/'+dEnd[1]+'/'+dEnd[2]) - Date.parse(dStart[0]+'/'+dStart[1]+'/'+dStart[2]))/86400000;
var fromToday = (Date.parse(dStart[0]+'/'+dStart[1]+'/'+dStart[2]) - new Date())/86400000;
if($('hotels_destination_hint').value == ''){
msgBox('warning','Please select a destination');
return;
}
if($('HotelsDateInput').value == ''){
msgBox('warning','Please enter a valid check in date');
return;
}
if($('hotels_rooms').value == ''){
$('hotels_rooms').value = '1';
}
if($('hotels_adults').value == ''){
$('hotels_adults').value = '1';
}
for (var i = 1; i <= 4; i++ ){
children_age = children_age + $('wct_child_' + i).value;
if(i < 4) {
children_age = children_age + ',';
}
}
var url = "/wayntravels.html?wci=ttsearch&searchtype=5";
url = url + "&hotels_destination=" + $('hotels_destination_hint').value.split(/\,/)[0];
url = url + "&hotels_countries=" + $('hotels_destination_hint_key').value.split(/\,/)[0];
url = url + "&hotels_days=" + $('hotels_days').value;
url = url + "&HotelsDate=" + $('HotelsDate').value;
url = url + "&hotels_rooms=" + $('hotels_rooms').value;
url = url + "&hotels_adults=" + $('hotels_adults').value;
url = url + "&hotels_children=" + $('hotels_children').value;
url = url + "&hotels_children_age=" + children_age;
url = url + "&city_key=" + $('hotels_destination_hint_key').value.split(/\,/)[1];
url = url + "&town_key=" + $('hotels_destination_hint_key').value.split(/\,/)[2];
url = url + "&sort=price";
document.accomodation.action = url;
var objform = document.accomodation;
if(fromToday>330){
alert('Bookings cannot be made more than 11 months in advance. Please review your check-in date.');
return;
}
if(fromToday<1){
alert('Please revise your selection. You must use a future date for a new check-in.');
return;
}
if($('hotels_days').value<1){
alert('Please enter a check-out date which occurs after the check-in date.');
return;
}
}
// Nightlife search
if(searchtype==6){
if($('sel_country').selectedIndex==0){
msgBox('warning','Please choose a country.');
return;
}
var selected_country = $('sel_country').selectedIndex;
if (selected_country == 0){
alert('Please select a country');
return;
}
var url = "/wayntravels.html?wci=ttsearch&searchtype=6";
var city_key = 0;
var town_key = 0;
url = url + "&country_code=" + $('sel_country').value;
try {
city_key = $('sel_town').value.split(/\|/)[0];
town_key = $('sel_town').value.split(/\|/)[1];
if(city_key > 0){
url = url + "&city_name=" + $('sel_town').options[$('sel_town').selectedIndex].text;
url = url + "&city_key=" + city_key;
url = url + "&town_key=" + town_key;
}
var neighborhood = $('sel_neighborhood').value.split(/\|/)[2];
if(neighborhood == null){neighborhood='0'}
url = url + "&neighborhood=" + neighborhood;
if($('sel_category').value != '0') {
url = url + "&category=" + $('sel_category').value;
}
} catch(e){}
document.nightlife.action = url;
var objform = document.nightlife;
}
document.cookie='searchtype='+searchtype+';expires=1h';
objform.submit();
WAYN.Popup.showLoader();
}
