
var sortorder;

function getCriteria(IsMainSrch, applicationPath, attrdiv) {
	app_path=applicationPath;
    if(IsMainSrch==true)
    {
        var SearchBy = drpSearchBySrch;
        var Location = txtLocationSrch;
        var AirportCode = txtAirportCodeSrch;
        var CheckIn = dtCheckInSrch;
        var CheckOut = dtCheckOutSrch;
        var NoOfRooms = drpNoOfRoomsSrch;
        var cltID = clientIDSrch;
		var HotelName= txtPropName;
    }
    else if(IsMainSrch=='quicksrch')
    {   
        var SearchBy = drpSearchByQSrch;
        var Location = txtLocationQSrch;
        var AirportCode = txtAirportCodeQSrch;
        var CheckIn = dtCheckInQSrch;
        var CheckOut = dtCheckOutQSrch;
        var NoOfRooms = drpNoOfRoomsQSrch;
        var cltID = clientIDQSrch;
        var HotelName = txtHotelNameQSrch;
        var qcNoOfAdults = ddlNoOfPersonsQSrch;
    }
    else
    {
        var SearchBy = drpSearchBy;
        var Location = txtLocation;
        var AirportCode = txtAirportCode;
        var CheckIn = dtCheckIn;
        var CheckOut = dtCheckOut;
        var NoOfRooms = drpNoOfRooms;
        var cltID = clientID;
		var HotelName= txtPropNameFF;
    }
    
	var type="";
	if( $("#"+SearchBy).length)
		type = $("#"+SearchBy).val();
	var location;
	if(type.toLowerCase().indexOf("air")>-1)
	{
		location = $("#"+AirportCode).val();
	}
	else
	{
		location = $("#"+Location).val();
	}
    var checkindate = $("#"+CheckIn).val();
    var checkoutdate = $("#"+CheckOut).val();
    var noofrooms = "1";
    var hotelname = "";
    if(HotelName!="")
        hotelname =$("#"+HotelName).val(); 
    var roomdetails="<rooms>";
    if (IsMainSrch != 'quicksrch') {
        noofrooms = $("#" + NoOfRooms).val();
        for (i = 1; i <= noofrooms; i++) {
            var adultcontrol = "drpNoOfAdults" + cltID + i;

            var childrencontrol = "drpNoOfChildren" + cltID + i;

            var room = "";
            room = room + "<room>";
            room = room + "<adultcount>";
            room = room + $("#" + adultcontrol).val();
            room = room + "</adultcount>";
            room = room + "<childcount>";
            room = room + $("#" + childrencontrol).val();
            room = room + "</childcount>";
            var childcount = $("#" + childrencontrol).val();
            var childages = "<childages>";
            for (j = 1; j <= childcount; j++) {
                var childagecontrol = "drpChildAge" + cltID + "_" + i + "_" + j;
                var childage = "<childage>";
                /*If the ChildAge selected is less than one then pass the value as 1 */
                var childagevalue = $("#" + childagecontrol).val() == 0 ? 1 : $("#" + childagecontrol).val();
                childage = childage + childagevalue;
                childage = childage + "</childage>"
                childages = childages + childage;
            }
            childages = childages + "</childages>"
            room = room + childages;
            room = room + "</room>"
            roomdetails = roomdetails + room;
        }
    }
    else {
        var qcNoofAdultsControlValue = $("#" + qcNoOfAdults).val();
        var room = "";
        room = room + "<room>";
        room = room + "<adultcount>" + qcNoofAdultsControlValue + "</adultcount>";
        room = room + "<childcount>0</childcount>";
        room = room + "</room>"
        roomdetails = roomdetails + room;
    }
    roomdetails=roomdetails +"</rooms>"
    var criteria = "";
    criteria ="<search><type>"+type+"</type><location>" + location +"</location>";
    criteria =criteria +"<checkindate>" + checkindate +"</checkindate>";
    criteria =criteria +"<checkoutdate>" + checkoutdate +"</checkoutdate>";
    criteria =criteria +"<noofrooms>" + noofrooms +"</noofrooms>";
    criteria =criteria +"<HotelName>" + hotelname +"</HotelName>";
    criteria =criteria +roomdetails;
    criteria =criteria + getattrcriteria(attrdiv);
    criteria =criteria +"</search>";
	//Replaces all occurences of "&". "/g" is used to replace all occurences. If we dont use /g then it will replace only the 1st occurence.
	//Use /gi to ignore case and replace all occurences.
	criteria =criteria.replace(/&/g,"&amp;"); 
    return "{'criteria':'" + criteria + "','redirect':'"+redirect()+"'}";
}

function getattrcriteria(attrdiv)
{
    var criteria = "";
    criteria ="<attributes>"
    
    var attrcontrols;
    
    attrcontrols = $("#" + attrdiv.id + " .stdattr");
    
    for(var i=0;i<attrcontrols.length;i++)
    {
        criteria = criteria  + "<attribute>";
               
        var attrtype = $(attrcontrols[0]).attr("attrtype");
        
        if(attrtype == "DropDownList")
        {
            criteria = criteria + "<value>";
            
            criteria = criteria + $(attrcontrols[0]).val();
            
            criteria = criteria + "</value>";
        }
        
        criteria = criteria + "<name>";
        
        criteria = criteria + $(attrcontrols[0]).attr("attrname");
        
        criteria = criteria + "</name>";
            
        criteria = criteria  + "</attribute>";
    }
    criteria = criteria  + "</attributes>"
    
    return criteria;
}

function searchhotels(IsMainSrch,applicationPath,attrdiv)
{       
    if(IsMainSrch==true)
    {
        var SearchBy = drpSearchBySrch;
        var Location = txtLocationSrch;
        var AirportCode = txtAirportCodeSrch;
    }
    else if(IsMainSrch=='quicksrch')
    {   
        var SearchBy = drpSearchByQSrch;
        var Location = txtLocationQSrch;
        var AirportCode = txtAirportCodeQSrch;
    }
    else
    {
        var SearchBy = drpSearchBy;
        var Location = txtLocation;
        var AirportCode = txtAirportCode;
    }
    if($("#"+SearchBy).val() == 'Airport Code')
    {
        if ($("#"+AirportCode).val() == '')
        {
            alert('Enter Airport Code');
            return false;
        }
    }
    else
    {
        if ($("#"+Location).val() == '')
        { 
            alert('Enter City Name / Location');
            return false;
        }
    }   
        
    showmodalprocessing = true;
    
    $(getresultholder()).html("");
    
    if(redirect()){hideprocessing= false;}

    jquerycallserver(applicationPath+"/hotels/hotelsservice.asmx/searchhotels",getCriteria(IsMainSrch,applicationPath,attrdiv),getsearchresult);
    
    setTimeout(getTempResults,5000);
    
    return false;
}
function getTempResults()
{
    getfile("../../hotels/temp"+sessionID+".xml",getgetTempResults,onerror);
}

function getgetTempResults(msg)
{
    imagelazypartialload();
    if(null == msg || msg=="")
    {
        if($(getresultholder()).html()=="")
        {
            setTimeout(getTempResults,5000);
        }
    }
    else
    {
        if(null == $(getresultholder()).html() || $(getresultholder()).html()=="")
        {
            //After the Result came it should not overwrite it
            $(getresultholder()).html(msg);
            resizemodal();            
        }
        
    }
}

function onerror()
{
    if($(getresultholder()).html()=="")
    {
        setTimeout(getTempResults,5000);
    }
}

function currentpage()
{
    return $("#drppages").val();
}
function totalpages()
{
    return $("#drppages option").length;
}

function Nextsortdirection()
{
    if(sortorder == "pricing")
    {
        return $("#imgsortpricing").attr("class")=="imgascending"?"DESC":"ASC";
    }
    else
    {
        return $("#imgsortname").attr("class")=="imgascending"?"DESC":"ASC";
    }
}

function sortdirection()
{
    if($("#imgsortpricing").attr("class") != "imgnone")
    {
        return $("#imgsortpricing").attr("class")=="imgascending"?"ASC":"DESC";
    }
    else
    {
        return $("#imgsortname").attr("class")=="imgascending"?"ASC":"DESC";
    }
}

function gotopage(selectedpage)
{
    $("#drppages").attr("disabled","-1");
    $("#lnkprevious").attr("disabled","-1");
    $("#lnkprevious").removeAttr("href");
    $("#lnkNext").attr("disabled","-1");
    $("#lnkNext").removeAttr("href");
    $("#lnkSortHotelName").attr("disabled","-1");
    $("#lnksortprice").attr("disabled","-1");
    jquerycallserver(app_path+"/hotels/hotelsservice.asmx/gotopage","{'selectedPage':'"+ selectedpage +"'}",getpageresult);
}

function getsearchresult(msg)
{
    if(msg[0]=="failure")
    {
        hideprocessing == true;
        hideproc();
        alert(msg[1]);
    }
    else
    {
        if(redirect())
        {
            window.location.href = msg[1];
            return;
        }
	    if(window.location.href.indexOf("hotels/ui/search.aspx")>=0)
	    {
	        if($(".hotstaticbotcont").length > 0)		
	            $(".srchresults").html('');
	    }
        if($(".hotstaticbotcont").length > 0)
        {
            $(".hotstaticbotcont").html(msg[1]);
        }
	    else if($(".srchresults").length > 0)
        {
            $(".srchresults").html(msg[1]);
        }
        else
            $(getresultholder()).html(msg[1]);
        
        imagelazyload();
    }
}

function gotonextpage()
{
    $("#drppages").val(parseInt($("#drppages").val())+1);
	$("#drppagesbot").val($("#drppages").val());
    gotopage($("#drppages").val());
}

function gotopreviouspage()
{
    $("#drppages").val(parseInt($("#drppages").val())-1);
	$("#drppagesbot").val($("#drppages").val());
    gotopage($("#drppages").val());
}
function gotoselectedpage(value)
{
	 $("#drppages").val(parseInt(value));
     $("#drppagesbot").val(parseInt(value));
	 gotopage($("#drppages").val());
}
function sort(crit)
{
    $("#drppages").attr("disabled","-1");
    $("#lnkprevious").attr("disabled","-1");
    $("#lnkprevious").removeAttr("href");
    $("#lnkNext").attr("disabled","-1");
    $("#lnkNext").removeAttr("href");
    $("#lnkSortHotelName").attr("disabled","-1");
    $("#lnksortprice").attr("disabled","-1");

    sortorder = crit;
    var criteria ="{'selectedPage':'"+ $("#drppages").val() +"','orderby':'"+crit+"','sortdirection':'"+Nextsortdirection()+"'}";
    jquerycallserver(app_path+"/hotels/hotelsservice.asmx/sortresults",criteria,getsortresult);
}

function setpagingcontrols()
{    
    if(currentpage()==1 || totalpages()==1)
    {
       $("#lnkprevious").attr("disabled","-1");
       $("#lnkprevious").removeAttr("href");

	   $("#lnkpreviousbot").attr("disabled","-1");
       $("#lnkpreviousbot").removeAttr("href");
    }
    if(currentpage()==totalpages() || totalpages()==1)
    {
       $("#lnkNext").attr("disabled","-1");
       $("#lnkNext").removeAttr("href");

	   $("#lnkNextbot").attr("disabled","-1");
       $("#lnkNextbot").removeAttr("href");
    }
}

function setsortingcontrols()
{
    if(sortorder == "pricing")
    {
        $("#imgsortname").attr("class","imgnone");
        $("#lnksortprice").css("font-weight","bold");
        $("#lnkSortHotelName").css("font-weight","normal");

		$("#imgsortbotname").attr("class","imgnone");
		$("#lnksortpricebot").css("font-weight","bold");
        $("#lnkSortHotelNamebot").css("font-weight","normal");
    }
    else
    {
        $("#imgsortpricing").attr("class","imgnone");
        $("#lnksortprice").css("font-weight","normal");
        $("#lnkSortHotelName").css("font-weight","bold");

		$("#imgsortbotpricing").attr("class","imgnone");
        $("#lnksortpricebot").css("font-weight","normal");
        $("#lnkSortHotelNamebot").css("font-weight","bold");
    }
    
    if(Nextsortdirection()=="ASC")
    {
        $("#imgsort"+ sortorder).attr("class","imgascending");

		 $("#imgsortbot"+ sortorder).attr("class","imgascending");
    }
    else
	{
		$("#imgsort"+ sortorder).attr("class","imgdescending");

		$("#imgsortbot"+ sortorder).attr("class","imgdescending");
	}
}

function getsortresult(msg)
{
    $("#searchresults").html(msg)
   
	$("#drppages").removeAttr("disabled");
    $("#lnkprevious").removeAttr("disabled");
    $("#lnkprevious").attr("href","javascript:void('0');");
    $("#lnkNext").removeAttr("disabled");
    $("#lnkNext").attr("href","javascript:void('0');");
    $("#lnkSortHotelName").removeAttr("disabled");
    $("#lnksortprice").removeAttr("disabled");
    
	$("#drppagesbot").removeAttr("disabled");
    $("#lnkpreviousbot").removeAttr("disabled");
    $("#lnkpreviousbot").attr("href","javascript:void('0');");
    $("#lnkNextbot").removeAttr("disabled");
    $("#lnkNextbot").attr("href","javascript:void('0');");
    $("#lnkSortHotelNamebot").removeAttr("disabled");
    $("#lnksortpricebot").removeAttr("disabled");

	setpagingcontrols();
    setsortingcontrols();
    imagelazyload();
}

function getpageresult(msg)
{
    $("#searchresults").html(msg)
    
	$("#drppages").removeAttr("disabled");
    $("#lnkprevious").removeAttr("disabled");
    $("#lnkprevious").attr("href","javascript:void('0');");
    $("#lnkNext").removeAttr("disabled");
    $("#lnkNext").attr("href","javascript:void('0');");
    $("#lnkSortHotelName").removeAttr("disabled");
    $("#lnksortprice").removeAttr("disabled");
    $("#drppages").focus();

	$("#drppagesbot").removeAttr("disabled");
    $("#lnkpreviousbot").removeAttr("disabled");
    $("#lnkpreviousbot").attr("href","javascript:void('0');");
    $("#lnkNextbot").removeAttr("disabled");
    $("#lnkNextbot").attr("href","javascript:void('0');");
    $("#lnkSortHotelNamebot").removeAttr("disabled");
    $("#lnksortpricebot").removeAttr("disabled");

    setpagingcontrols();
    imagelazyload();
}

function AddToCart(elementid)
{
    hideprocessing = false;
    var criteria ="{'elementid':'"+ elementid + "'}";
    jquerycallserver(app_path+"/hotels/hotelsservice.asmx/addtocart",criteria,getaddtocart);
    return false;
}

function getaddtocart(msg)
{
    if(msg[0]=="success")
    {
        window.location.href = msg[1];
    }
    else
    {
        alert(msg[1]);
    }
}

function redirect()
{
    if(window.location.href.indexOf("hotels/ui/search.aspx")>=0)
    {
        return false;
    }
    else
        return true;
}
function getresultholder()
{
	if($(".hotstaticbotcont").length > 0)
    {
        return ".hotstaticbotcont";
    }
    if($(".srchresults").length > 0)
    {
        return ".srchresults";
    }
    if($(".Maincontent").length > 0)
    {
        return ".Maincontent";
    }
    if($(".homecenterimg").length > 0)
    {
        return ".homecenterimg";
    }
    if($(".sndlvlmaincont").length > 0)
    {
        return ".sndlvlmaincont";
    }
    if($(".homemaincont").length > 0)
    {
        return ".homemaincont";
    }
    if($(".homemdlcont").length > 0)
    {
        return ".homemdlcont";
    }
    if($(".slmdlcont").length > 0)
    {
        return ".slmdlcont";
    }
}

