﻿//seHotelsClientID
var pingAJAX;
var hotelsByLocationXML = null
var hotelsByAreaXML = null

function SearchHotels(isInnerSE){
    if(CheckSearchHotelsFields(isInnerSE))
    {
        GoToSearchResultsPage(isInnerSE);
    }
}
function CheckSearchHotelsFields(isInnerSE){
    var obj = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_selArea");
    if(obj.value == ""){
        alert(CLDIC.SE_HOTELS_CHOOSE_AREA);
        return false;
        
    }
    obj = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_inpCheckIn");
    if(obj.value == ""){
        alert(CLDIC.SE_HOTELS_CHOOSE_CHECK_IN_DATE);
        return false;
        
    }
    obj = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_inpNumberOfNights");
    if(obj.value == ""){
        alert(CLDIC.SE_HOTELS_CHOOSE_NUMBER_OF_NIGHTS);
        return false;
        
    }
    obj = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_inpCheckOut");
    if(obj.value == ""){
        alert(CLDIC.SE_HOTELS_CHOOSE_CHECK_OUT_DATE);
        return false;
        
    }
    
    return true;
}
/*
function GoToSearchResultsPage(isInnerSE){

    var sURL = (isInnerSE?seInnerHotelsSubmitLink:seHotelsSubmitLink)
    sURL += "?HotelArea=" + document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_selArea").value;
    sURL += "&HotelName=" + document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_selHotelName").value;
    sURL += "&ServiceLevel=" + document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_selCategory").value;
    sURL += "&ServiceBase=" + document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_selBoardBase").value;
    sURL += "&FromDate=" + document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_inpCheckIn").value;
    sURL += "&NightsCount=" + document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_inpNumberOfNights").value;
    sURL += "&ToDate=" + document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_inpCheckOut").value;
    
    var RoomsNumber = parseInt(document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_selNumberOfRooms").value)
    sURL += "&RoomsNumber=" + RoomsNumber
    var RoomsData = "";
    for(var i = 1; i <= RoomsNumber; i++){
        if( i > 1){
            RoomsData += ";";
        }
        RoomsData += document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_selNumberOfAdults"+i).value
        RoomsData += "_";
        var ChildsNumber = parseInt(document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_selNumberOfChilds" + i).value)
        RoomsData += ChildsNumber
        for(var j = 1; j <= ChildsNumber; j++){
            if( j <= ChildsNumber){
                RoomsData += "_";
            }
            RoomsData += document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_selChildAge"+i+""+j).value
        }
    }
    sURL += "&RoomsData=" + RoomsData
    
    window.location.href = sURL;
}
*/
function GoToSearchResultsPage(isInnerSE){

    var sURL = (isInnerSE?seInnerHotelsSubmitLink:seHotelsSubmitLink)
    if(isInnerSE && sURL.indexOf("-55555-") > -1){
        sURL = sURL.replace("-55555-","-" + document.getElementById(seInnerHotelsClientID + "_selHotelName").value + "-")
    }
    var SearchParams = ""
    var o = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_selArea")
    sURL += "?HotelArea=" + o.value;
    if(o  && o.options){
	    SearchParams += ("A:" + (o.options[o.selectedIndex].text).replace(/ /g,'_') + "+")
	}
	else if(o != null && !isnull(o.value)){
		SearchParams += ("A:" + o.value + "+")
	}
	try{
	    o = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_selLocation")
	    if(o.value != ""){
            sURL += "&HotelLocation=" + o.value;
            if(o  && o.options){
	            SearchParams += ("Location:" + (o.options[o.selectedIndex].text).replace(/ /g,'_') + "+")
            }
            else if(o != null && !isnull(o.value)){
    	        SearchParams += ("Location:" + o.value + "+")
            }
        }
    }catch(e){}
    
    o = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_selHotelName")
    sURL += "&HotelName=" + o.value;
    if(o  && o.options){
	    SearchParams += ("Name:" + (o.options[o.selectedIndex].text).replace(/ /g,'_') + "+")
    }
    else if(o != null && !isnull(o.value)){
    	SearchParams += ("Name:" + o.value + "+")
    }
    
    o = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_selCategory")
    sURL += "&ServiceLevel=" + o.value;
//    if(o  && o.options){
//	    SearchParams += ("ServiceLevel:" + o.options[o.selectedIndex].text + "+")
//	}
//    else if(o != null && !isnull(o.value)){
//		SearchParams += ("ServiceLevel:" + o.value + "+")
//    }
    
    o = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_selBoardBase")
    sURL += "&ServiceBase=" + o.value;
//    if(o  && o.options){
//    	SearchParams += ("ServiceBase:" + o.options[o.selectedIndex].text + "+")
//    }
//    else if(o != null && !isnull(o.value)){
//    		SearchParams += ("ServiceBase:" + o.value + "+")
//    }
    
    o = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_inpCheckIn")
    sURL += "&FromDate=" + o.value;
    if(o != null && !isnull(o.value)){
	    SearchParams += ("F:" + o.value + "+")
    }
    
    o = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_inpNumberOfNights")
    sURL += "&NightsCount=" + o.value;
    if(o != null && !isnull(o.value)){
//    	SearchParams += ("N:" + o.value + "+")
    	SearchParams += ("N:" + o.value)
    }
    
    o = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_inpCheckOut")
    sURL += "&ToDate=" + o.value;
//    if(o != null && !isnull(o.value)){
//	    SearchParams += ("ToDate:" + o.value + "+")
//    }
    
    o = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_selNumberOfRooms")
    var RoomsNumber = parseInt(o.value)
    sURL += "&RoomsNumber=" + RoomsNumber
//    if(o != null && !isnull(o.value)){
//    	SearchParams += ("RoomsNumber:" + o.value + "+")
//    }
    
    
    var RoomsData = "";
    for(var i = 1; i <= RoomsNumber; i++){
        if( i > 1){
            RoomsData += ";";
        }
        RoomsData += document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_selNumberOfAdults"+i).value
        RoomsData += "_";
        var ChildsNumber = parseInt(document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_selNumberOfChilds" + i).value)
        RoomsData += ChildsNumber
        for(var j = 1; j <= ChildsNumber; j++){
            if( j <= ChildsNumber){
                RoomsData += "_";
            }
            RoomsData += document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_selChildAge"+i+""+j).value
        }
    }
    sURL += "&RoomsData=" + RoomsData
//    SearchParams += ("RoomsData:" + RoomsData)
    
    
    
    if(isInnerSE){
        sURL += "&FromInnerSearch=1";        
        sURL += ("&HotelPage=" + SearchParams)
    }
    else{
    	sURL += ("&HotelsList=" + SearchParams)
    }
    isLeaving=false;
    
    
    
    
    
    
    
    window.location.href = sURL;
}


function FillHotelsList(area){

    if(area == ""){
        FillHotelsSelect(null);
        return;
    }
    
    var sURL = CLVAR.XMLHTTP_PATH  + "HotelsByArea.aspx?lang=" + CLVAR.LANG + "&area=" + area
    //logger("FillHotelsList: Initializing XMLHttpRequest");
    if ( window.XMLHttpRequest ) {
	   pingAJAX = new XMLHttpRequest();
    } else {
	   pingAJAX = new ActiveXObject("MSXML2.XMLHTTP");
    }
    //logger("FillHotelsList: Setting Callback");
    pingAJAX.onreadystatechange = FillHotelsListCallback;    
    //logger("FillHotelsList: Opening POST Request (async) : " + sURL);
    pingAJAX.open( "GET", sURL, true );
    //logger("FillHotelsList: Sending Request");
    pingAJAX.send(null);
}
function FillLocationHotelsList(location){

    if(location == ""){
        FillHotelsSelect(null);
        FillLocationsSelect(null) ;
        return;
    }
    if(hotelsByAreaXML == null){
        var sel = document.getElementById(seHotelsClientID + "_selArea");
        FillHotelsList(sel.value);
//        var sel = document.getElementById(seHotelsClientID + "_selLocation");
//        if(sel && sel.options){
//            for(var i = 0; i <sel.options.length; i++){
//                if(sel.options[i].value==location){
//                    alert(i);
//                    sel.selectedIndex = i;
//                    break;
//                }
//            }
//        }
    }
    FillHotelsSelect(hotelsByLocationXML,location);
    
}


function FillHotelsListCallback() {
	// Called from ping
	//logger("FillHotelsListCallback : readyState = " + pingAJAX.readyState ); 
	if ( pingAJAX.readyState == 4) {
		//logger("FillHotelsList : Response from server: " + pingAJAX.responseText );
		try{
		    var xml = pingAJAX.responseXML
		    hotelsByAreaXML = xml;
		    if (xml.documentElement) {
                FillHotelsSelect(xml);
                FillLocationsSelect(xml);
		     }
		    else{
		        logger("FillHotelsList : There was a problem retrieving the XML data:\n" + pingAJAX.statusText)
		    }

		}
		catch(e){
		    //logger("FillHotelsList : Error : " + e.description );
		}
	}
}

function FillLocationsSelect(xml){
    hotelsByLocationXML = xml;
    var sel = document.getElementById(seHotelsClientID + "_selLocation");
    //alert(xml.xml)
    if(xml == null){
        if (sel && sel.options) {
            sel.options.length = 1;
            sel.selectedIndex = 0;
        }
    }
    else{
        var locationsNode = xml.documentElement.getElementsByTagName("LOCATIONS")[0];
        var locations = locationsNode.getElementsByTagName("LOCATION");
        if(locations){
            if (sel && sel.options) {
                sel.options.length = locations.length+1;
                sel.selectedIndex = 0;
            }
            
            for (var i = 0; i < locations.length; i++) {
                var h = locations[i];
                var code = h.getAttributeNode("code").nodeValue;
                var label = h.getAttributeNode("label").nodeValue;
                if (sel && sel.options) {
                    sel.options[i+1].text = label;
                    sel.options[i+1].value = code;
                }
            }
        }

    }
}

function FillHotelsSelect(xml,location){
    //logger("FillHotelsSelect");
    if(isnull(location)) location = 0;
    
    
    var sel = document.getElementById(seHotelsClientID + "_selHotelName");
    
    if(xml == null){
        if (sel && sel.options) {
            sel.options.length = 1;
            sel.selectedIndex = 0;
        }
    }
    else{
        //alert(location)
        var hotels = xml.documentElement.getElementsByTagName("HOTEL");
        if(hotels){
            var len = hotels.length;
            var c = 0;
            for (var i = 0; i < hotels.length; i++) {
                try{
                    var h = hotels[i];
                    if(location != 0 && h.getAttributeNode("location_code").nodeValue != location) continue;
                }
                catch(e){}
                c++;
            }
            if (sel && sel.options) {
                sel.options.length = c+1;
                sel.selectedIndex = 0;
            }
            
            c=0
            for (var i = 0; i < hotels.length; i++) {
                var h = hotels[i];
                
                if(location != 0 && h.getAttributeNode("location_code").nodeValue != location) continue;
                
                var code = h.getAttributeNode("label").nodeValue;
                var label = h.getAttributeNode("label").nodeValue;
                var category = h.getAttributeNode("category").nodeValue;
                
                if (sel && sel.options) {
                    sel.options[c+1].text = label;
                    sel.options[c+1].value = code;
                    sel.options[c+1].category = category;
                    c++;
                    
                }
            }
            
            //if (sel && sel.options) {
            //    sel.options.length = c+1;
            //    sel.selectedIndex = 0;
            //}
        }

    }
}

function ShowRoomsRows(rooms,isInnerSE){
    for(var i = 1 ; i <= rooms; i++)
    {
        var el = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_trRoom" + i);
        if(el) el.className = "dis";
    }
    for(var j = (rooms*1 + 1) ; j <= 5; j++)
    {
        var el = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_trRoom" + j);
        if(el) el.className = "undis";
    }
}

function ShowChildAges(childs,room,isInnerSE){
    for(var i = 1 ; i <= childs; i++)
    {
        var el = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_tdChildAge" + room + "" + i);
        if(el) el.className = "vis";
    }
    for(var j = (childs*1 + 1) ; j <= 4; j++)
    {
        var el = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_tdChildAge" + room + "" + j);
        if(el) el.className = "unvis";
    }
    var maxChild = 0;
    for(var ch=1;ch<=4;ch++)
    {
        var el = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_selNumberOfChilds" + ch);
        if(el)
        {
            if(el.value>maxChild)
                maxChild = el.value;
        }
    }
    for(var k = 1 ; k <= maxChild; k++)
    {
        var el=document.getElementById(isInnerSE?"innerTdChildtitle"+k:"tdChildtitle"+k);
        if(el) el.className = "vis";
    }
    for(var l= maxChild*1+1; l<=4;l++)
    {
        var el=document.getElementById(isInnerSE?"innerTdChildtitle"+l:"tdChildtitle"+l);
        if(el) el.className = "unvis";
    }
        
}

function LimitChilds(adults,room,isInnerSE)
{
    
    var el = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_selNumberOfChilds" + room);
        
    if(adults == 3)
    {
        
        el.selectedIndex=0
        
        //el.fireEvent("onchange")
        ShowChildAges(0,room,isInnerSE);
        
        el.disabled=true
    }
    else
    {
        el.disabled=false
    }
    
}

function OpenHotelCheckInCalendar(isInnerSE){
    var checkOutField = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_inpCheckOut");
    if(checkOutField) checkOutField.value="";
    
    var numberOfNightsField = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_inpNumberOfNights");
    if(numberOfNightsField) numberOfNightsField.value="";
    
    ShowCalendar('CheckIn',null,null,null,isInnerSE);
}

function OpenHotelCheckOutCalendar(isInnerSE){
    ShowCalendar('CheckOut',null,null,null,isInnerSE)
}

function CalculateNightsNumber(isInnerSE){
    var checkInField = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_inpCheckIn");
    var checkOutField = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_inpCheckOut");
    var numberOfNightsField = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_inpNumberOfNights");
    
    
    if(checkInField && checkOutField && checkInField.value != "" && checkOutField.value != ""){
        var a = checkInField.value.split('-')
		var dateIn = new Date();
		dateIn.setMonth(a[2]*1-1);
	    dateIn.setDate(a[1]);
	    dateIn.setFullYear(a[0]);
	    
	    a = checkOutField.value.split('-')
		var dateOut = new Date();
		dateOut.setMonth(a[2]*1-1);
	    dateOut.setDate(a[1]);
	    dateOut.setFullYear(a[0]);
	    
	    if(dateOut > dateIn){
	        numberOfNightsField.value = parseInt(String((dateOut-dateIn)/86400000));
	    }
	    else{
	        numberOfNightsField.value = "";
	    }
	    
    }
}

function SetCheckOutDate(isInnerSE){
    var checkInField = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_inpCheckIn");
    var checkOutField = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_inpCheckOut");
    var numberOfNightsField = document.getElementById((isInnerSE?seInnerHotelsClientID:seHotelsClientID) + "_inpNumberOfNights");
    
    if(numberOfNightsField.value=="" || isNaN(numberOfNightsField.value) || parseInt(numberOfNightsField.value)<1){
        numberOfNightsField.value = "";
        checkOutField.value = "";
        return;
    }
    
    if(checkInField && checkOutField && checkInField.value != ""){
        
        numberOfNightsField.value = parseInt(numberOfNightsField.value)
        
        
        //alert(numberOfNightsField)
        
        var a = checkInField.value.split('-')
        
        //alert(checkInField.value)
        
		var dateIn = new Date();
		dateIn.setMonth(a[2]*1-1);
	    dateIn.setFullYear(a[0]);
	    dateIn.setDate(a[1]*1+parseInt(numberOfNightsField.value));
	    
	    //alert(dateIn)
	    
	    var d = dateIn.getDate()
	    var m = (dateIn.getMonth()*1+1)
	    if(String(d).length==1) d = "0" + d
		if(String(m).length==1) m = "0" + m
		
	    
	    checkOutField.value = dateIn.getFullYear() + "-" + d + "-" + m
	    
    }
}
function DisableHotelCategory()
{
    var selCat = document.getElementById(seHotelsClientID + "_selCategory");
    if(selCat && selCat.options){
        selCat.selectedIndex = 0;
        selCat.disabled = true;
    }
}
function EnableHotelCategory()
{
    var selCat = document.getElementById(seHotelsClientID + "_selCategory");
    if(selCat && selCat.options){
        selCat.disabled = false;
    }
}
function SetHotelCategory(obj){
    if(obj.selectedIndex < 1){
        EnableHotelCategory()
    }
    else{
        DisableHotelCategory()
    }
    
    
}

function ShowChildAgeMsg(val,isInnerSE){
    var ival = val*1
    if(ival >= 12){
        alert(CLDIC.SE_HOTELS_WRONG_CHILD_AGE);
    }
}
