﻿
var spControlID;
    
    function searchPanelValidationScript(cid) {
      
        spControlID = cid;
    }
    
    function isDate(value) 
    {    
        var RegExPattern = /^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/;       
        
        if ((value.match(RegExPattern)) && (value!='')) 
        {
            return true;
        } 
        else 
        {
            return false;
        }
    }

    function ValidateSearch() {
	   	var AirportCode;	   	
	   	var DestinationID;
	   	var ResortID;
	   	var BuildingID;
	   	var GatewayCode;
	   	var CheckinDate;
	   	var BuildingName;
	   	
	   	var hfSearchType;
	   	var hfSmartSearchName;
	   	var hfSmartSearchValue;

	   	CheckinDate = document.getElementById(spControlID + "_txtCheckInDate").value;
	   //CheckinDate2 = document.getElementById(ctl00_ucSearchPanel3 + "_txtCheckInDate").value;
     
        if (CheckinDate) {
            if (!isDate(CheckinDate)) {
                alert("Invalid Checkin Date");
                return false;
            }
        }
        else {
            if (!isDate(CheckinDate2)) {
                alert("Invalid Checkin Date");
                return false;
            }
        }
        var today = new Date();
        var DateToday = today.getDate() + "/" + parseInt(today.getMonth() + 1)  + "/" + today.getFullYear();
           
            
        var daysDiff = DateDiff('d', DateToday, CheckinDate);
                
        
        if (daysDiff < 0)
        {
            alert("The Check-in date must not be in the past.");
            return false;
        }
    
	   	if (document.getElementById(spControlID + "_txtAirportCode"))	  
	   	{ 
	   	    AirportCode = document.getElementById(spControlID + "_txtAirportCode").value;	   	
        }	   	    
	   	else
	   	    AirportCode ="";

	   	if (document.getElementById(spControlID + "_ddlDestination") != null && document.getElementById(spControlID + "_ddlDestination").selectedIndex > 0)
	   	{
	   	    GatewayCode = document.getElementById(spControlID + "_ddlDestination").value;	   	    
        }	   	   
	   	else
	   	{
	   	    GatewayCode = 0;
	   	}
	   	
	   	
	   	if (document.getElementById(spControlID + "_ddlResort") != null && document.getElementById(spControlID + "_ddlResort").selectedIndex > 0)
	   	{
	   	    ResortID = document.getElementById(spControlID + "_ddlResort").value;
	   	    
	   	}
	   	else
	   	{
	   	    ResortID = 0;	   	    
	   	}
	    
	    if (document.getElementById(spControlID + "_txtBuildingID").value == "")	    
	        BuildingID = 0;	    
	    else
	        BuildingID = document.getElementById(spControlID + "_txtBuildingID").value;



	    if (document.getElementById(spControlID + "_txtSmartSearchHotel") != null) {
	        BuildingName = document.getElementById(spControlID + "_txtSmartSearchHotel").value;
	    }
	    else {
	        BuildingName = "";
	    }
        
        if (BuildingName.length>0)
        {
            if (document.getElementById(spControlID + "_ddlDestination"))
            {
                document.getElementById(spControlID + "_ddlDestination").selectedIndex = 0;
                document.getElementById(spControlID + "_ddlResort").selectedIndex = 0;
            }
            
            if (document.getElementById(spControlID + "_txtAirportCode"))	  
	   	    { 
    	   	    document.getElementById(spControlID + "_txtAirportCode").value = "";
            }	   	    
            
            AirportCode = "";
            GatewayCode = 0;
            ResortID = 0;	   	           
        }
        
        if (AirportCode.length > 0)
        {
            document.getElementById(spControlID + "_ddlDestination").selectedIndex = 0;
            document.getElementById(spControlID + "_ddlResort").selectedIndex = 0;
        }
        
        //txtBuilding = document.getElementById(spControlID + "_txtBuilding");
        //hfSearchType = document.getElementById(spControlID + "_hfSearchType");
        hfSmartSearchName = document.getElementById(spControlID + "_hfSmartSearchName");
        hfSmartSearchValue = document.getElementById(spControlID + "_hfSmartSearchValue");
	    
//	    if (hfSearchType.value == "ddl")
//	    {
//	        if (AirportCode.length == 0 && GatewayCode == 0 && ResortID == 0 && BuildingID == 0 && BuildingName == "")
//	        {
//	            alert("You must select either Destination, Airport Code, Resort or a Building");
//	            return false;
//	        }
//	    }
//	    else if (hfSearchType.value == "txt")
//	    {
//	        if (BuildingName == "" && hfSmartSearchName.value == "" && hfSmartSearchValue.value == "" && hfSmartSearchGatewayCode.value == "")
//	        {
//	            alert("You must type a Country, Destination, resort or Airport code");
//	            return false;
//	        }
//	    }
//	    else
        //	        return false;

        
        if (BuildingName == "" && hfSmartSearchName.value == "" && hfSmartSearchValue.value == "" && hfSmartSearchGatewayCode.value == "")
        {
            alert(document.getElementById(spControlID + "_hfSmartSearchError").value);
            return false;
        }
	    
	    var Rooms =document.getElementById(spControlID + "_ddlRooms").value;
	    	    
	    for (var i=0;i<Rooms;i++)
	    {
	        var Child;
	        var Age;
	        
	        
	        Child = document.getElementById( spControlID + "_ddlR" + parseInt(i+1) + "C").value;
	        	        
	        if ( parseInt(Child) > 0 )
	        {
	            for (var j=0;j<Child;j++)
	            {
	                Age = document.getElementById(spControlID + "_txtR" + parseInt(i+1) + "C" + parseInt(j+1) ).value;

	                if (IsNumeric(Age) == false) {
	                    alert("Invalid Child " + parseInt(j + 1) + " age in Room " + parseInt(i + 1));
	                    return false;
	                }
	                else if (Age > 18)
	                {
	                    alert("Maximum child age is 18. Please select a valid age.");
	                    return false;
	                }
	            }
	        }
        }
        
        if (document.getElementById("divProgress"))
        {
            document.getElementById("divProgress").style.display="";
            document.getElementById("divProgress").style.visibility="visible";
        }

        if (document.getElementById(spControlID + "_txtSmartSearchHotel") != null) {
            if (document.getElementById(spControlID + "_txtSmartSearchHotel").value == "") {
                document.getElementById(spControlID + "_txtBuildingID").value = 0;
            }
        }

        SearchClicked();
        return true;
    }

    function ge(id) {
        return document.getElementById(id);
    }

    function SearchClicked() {
        if (ge("divSearching")) {
            ge("divSearching").style.display = "";
            var divSearchingBack = ge("divSearchingBack");
            divSearchingBack.style.display = "";
            divSearchingBack.style.width = document.body.parentNode.scrollWidth + 'px';
            divSearchingBack.style.height = document.body.parentNode.scrollHeight + 'px';
            var ie6SearchingBack = ge("iSearchBack");
            if (ie6SearchingBack)
                ie6SearchingBack.style.height = document.body.parentNode.scrollHeight + 'px';
        }
        //turn off filter and map panels if present
        if (document.getElementById("fc-search-results-filters")) {
            document.getElementById("fc-search-results-filters").style.display = "none";
            document.getElementById("fc-search-results-filters").style.visibility = "hidden";
        }
        if (document.getElementById("location-map")) {
            document.getElementById("location-map").style.display = "none";
            document.getElementById("location-map").style.visibility = "hidden";
        }
    }

    function DisplayChild()
	{
		var ddl = document.getElementById( spControlID + "_ddlRooms");

		switch (parseInt(ddl.value))
		{
		    case 1:
		        document.getElementById("trRoomOne").style.display = "";
		        document.getElementById("trRoomOne").style.visibility = "visible";

		        document.getElementById("trRoomTwo").style.display = "none";
		        document.getElementById("trRoomTwo").style.visibility = "hidden";

		        document.getElementById("trRoomThree").style.display = "none";
		        document.getElementById("trRoomThree").style.visibility = "hidden";

		        document.getElementById("trRoom2Ages").style.display = "none";
		        document.getElementById("trRoom2Ages").style.visibility = "hidden";
		        document.getElementById("trRoom3Ages").style.display = "none";
		        document.getElementById("trRoom3Ages").style.visibility = "hidden";

		        document.getElementById("room1Head").style.display = "none";

		        ShowChildAges(1);
		        break;
				
			case 2:
				document.getElementById("trRoomOne").style.display="";
				document.getElementById("trRoomOne").style.visibility="visible";
				
				document.getElementById("trRoomTwo").style.display="";
				document.getElementById("trRoomTwo").style.visibility="visible";
				
				document.getElementById("trRoomThree").style.display="none";
				document.getElementById("trRoomThree").style.visibility="hidden";
				
				document.getElementById("trRoom3Ages").style.display="none";
				document.getElementById("trRoom3Ages").style.visibility="hidden";

				document.getElementById("room1Head").style.display = "block";			
				
				ShowChildAges(1);
				ShowChildAges(2);
				break;
			
			case 3:
				document.getElementById("trRoomOne").style.display="";
				document.getElementById("trRoomOne").style.visibility="visible";
				
				document.getElementById("trRoomTwo").style.display="";
				document.getElementById("trRoomTwo").style.visibility="visible";
				
				document.getElementById("trRoomThree").style.display="";
				document.getElementById("trRoomThree").style.visibility="visible";

				document.getElementById("room1Head").style.display = "block";
				
				ShowChildAges(1);
				ShowChildAges(2);
				ShowChildAges(3);
				break;
		}
	}
    
    function ShowChildAges(RoomNo)
	{				
	    var ddl = document.getElementById( spControlID + "_ddlR" + RoomNo + "C");
		
		if (parseInt(ddl.value) == 0)
		{
		    document.getElementById("trRoom" + RoomNo + "Ages").style.display="none";
		    document.getElementById("trRoom" + RoomNo + "Ages").style.visibility="hidden";
		}
		else		
		{
	       	document.getElementById("trRoom" + RoomNo + "Ages").style.display="";
			document.getElementById("trRoom" + RoomNo + "Ages").style.visibility="visible";
			
			switch (parseInt(ddl.value))
			{
				case 1:
					document.getElementById(spControlID + "_txtR" + RoomNo + "C1").style.display="";
					document.getElementById(spControlID + "_txtR" + RoomNo + "C1").visibility="visible";
					
					
					document.getElementById(spControlID + "_txtR" + RoomNo + "C2").style.display="none";
					document.getElementById(spControlID + "_txtR" + RoomNo + "C2").visibility="hidden";
					
					document.getElementById(spControlID + "_txtR" + RoomNo + "C3").style.display="none";
					document.getElementById(spControlID + "_txtR" + RoomNo + "C3").visibility="hidden";
					
					document.getElementById(spControlID + "_txtR" + RoomNo + "C4").style.display="none";
					document.getElementById(spControlID + "_txtR" + RoomNo + "C4").visibility="hidden";
					break;
					
				case 2:
					document.getElementById(spControlID + "_txtR" + RoomNo + "C1").style.display="";
					document.getElementById(spControlID + "_txtR" + RoomNo + "C1").visibility="visible";
					
					document.getElementById(spControlID + "_txtR" + RoomNo + "C2").style.display="";
					document.getElementById(spControlID + "_txtR" + RoomNo + "C2").visibility="visible";
					
					document.getElementById(spControlID + "_txtR" + RoomNo + "C3").style.display="none";
					document.getElementById(spControlID + "_txtR" + RoomNo + "C3").visibility="hidden";
					
					document.getElementById(spControlID + "_txtR" + RoomNo + "C4").style.display="none";
					document.getElementById(spControlID + "_txtR" + RoomNo + "C4").visibility="hidden";
					break;

				case 3:
					document.getElementById(spControlID + "_txtR" + RoomNo + "C1").style.display="";
					document.getElementById(spControlID + "_txtR" + RoomNo + "C1").visibility="visible";
					
					document.getElementById(spControlID + "_txtR" + RoomNo + "C2").style.display="";
					document.getElementById(spControlID + "_txtR" + RoomNo + "C2").visibility="visible";
					
					document.getElementById(spControlID + "_txtR" + RoomNo + "C3").style.display="";
					document.getElementById(spControlID + "_txtR" + RoomNo + "C3").visibility="visible";
					
					document.getElementById(spControlID + "_txtR" + RoomNo + "C4").style.display="none";
					document.getElementById(spControlID + "_txtR" + RoomNo + "C4").visibility="hidden";
					break;
					
				case 4:
					document.getElementById(spControlID + "_txtR" + RoomNo + "C1").style.display="";
					document.getElementById(spControlID + "_txtR" + RoomNo + "C1").visibility="visible";
					
					document.getElementById(spControlID + "_txtR" + RoomNo + "C2").style.display="";
					document.getElementById(spControlID + "_txtR" + RoomNo + "C2").visibility="visible";
					
					document.getElementById(spControlID + "_txtR" + RoomNo + "C3").style.display="";
					document.getElementById(spControlID + "_txtR" + RoomNo + "C3").visibility="visible";
					
					document.getElementById(spControlID + "_txtR" + RoomNo + "C4").style.display="";
					document.getElementById(spControlID + "_txtR" + RoomNo + "C4").visibility="visible";
					break;
			}
		}
	}	
	
	function OnAiportSelected()
	{	   
	   	
	   	/*     
	    document.getElementById(spControlID + "_ddlDestination").selectedIndex = 0;
	    document.getElementById(spControlID + "_ddlResort").selectedIndex = 0;
	    
	    if (document.getElementById(spControlID + "_ddlBuilding"))
	    {
	        document.getElementById(spControlID + "_ddlBuilding").selectedIndex = 0;
	    }
	    
	    document.getElementById(spControlID + "_txtBuilding").value = "";
	    document.getElementById(spControlID + "_txtBuildingID").value = "0"
	    
	    AirportCode_OnKeyUp();
	    
	    */
	    	        
	}
	
	function AirportCode_OnKeyUp()
	{
	    var value;
	    var pos;
	    var code;
	   
	    value = document.getElementById(spControlID + "_txtAirportCode").value;

	    pos = value.indexOf("(");
	    
	    if ( pos >-1 )
	    {
	        code =value.substring(pos+1, value.length-1);
	        
	        document.getElementById(spControlID + "_txtAirportCode").value= code;
	    }
	}
	
	function OnResortSelected()
	{
	    if (document.getElementById(spControlID + "_txtAirportCode"))	
	        document.getElementById(spControlID + "_txtAirportCode").value = '';
	        
	    if (document.getElementById(spControlID + "_ddlBuilding"))
	    {
	        document.getElementById(spControlID + "_ddlBuilding").selectedIndex = 0;
	    }
	    
	    document.getElementById(spControlID + "_txtSmartSearchHotel").value = "";
	    document.getElementById(spControlID + "_txtBuildingID").value = "0"
	    
	    if (document.getElementById(spControlID + "_txtAirportCode"))	
	        document.getElementById(spControlID + "_txtAirportCode").value = '';
	}
	
	function OnDestinationChanged()
	{	    
	    if (document.getElementById(spControlID + "_ddlBuilding"))
	    {
	        document.getElementById(spControlID + "_ddlBuilding").selectedIndex = 0;
	    }
	    
	    document.getElementById(spControlID + "_txtSmartSearchHotel").value = "";
	    document.getElementById(spControlID + "_txtBuildingID").value = "0"
	    
	    if (document.getElementById(spControlID + "_txtAirportCode"))	
	    {	        
	        document.getElementById(spControlID + "_txtAirportCode").value = '';
        }
        
        if (document.getElementById(spControlID + "_ddlBoardBasis"))
        {
            document.getElementById(spControlID + "_ddlBoardBasis").selectedIndex = 0;
        }   
	}
	
	function OnBuildingSelected()
	{
	    /*
	    
	    if (document.getElementById(spControlID + "_txtAirportCode"))	
	        document.getElementById(spControlID + "_txtAirportCode").value = '';
	        
	    document.getElementById(spControlID + "_ddlResort").selectedIndex = 0;	 
	    document.getElementById(spControlID + "_ddlDestination").selectedIndex = 0;   
	    */    
	}	
	
    function IsNumeric(input)
	{
		var ret = false;
		
		if (input == "")
		{
			ret = false;
		}
		else
		{				
			if (isNaN(input))
			{
				ret = false
			}
			else
				ret = true;
		}
		return ret;
    }
