<!--

// This portion is for the search box
	Date.prototype.isNorthAmerica = function(){
            return (this.getTimezoneOffset() < 660 && this.getTimezoneOffset() > 180);
            //return false;
	}
	Date.prototype.octopusDisplayFormat = function(){
	  var mm = this.getMonth()+1;
	  if(mm < 10) mm = "0" + mm;
	  var dd = this.getDate();
	  if(dd < 10) dd = "0" + dd;
	  if(this.isNorthAmerica()){
	      return mm + "/" + dd + "/" + this.getFullYear();
	  }
	  else{
	      return dd + "/" + mm + "/" + this.getFullYear();
	  }
	}

	today = new Date();
	dFormat = today.isNorthAmerica()?"mm/dd/yyyy":"dd/mm/yyyy";


	function makeEuroDate(str){
      var vals = str.split("/");
      var nDateString = vals[1] + "/" + vals[0] + "/" + vals[2];
      return new Date(nDateString);
	}
	function formatDateForURL(d){
	    var month = d.getMonth() + 1;
	    if(month < 10) month = "0" + month;
	    var date = d.getDate();
	    if(date < 10) date = "0" + date;
	    return d.getFullYear() + "-" + month + "-" + date;
	}

	function getSelectedValue(id){
	    try{
	        var theSelect = DGE(id);
	        return theSelect.options[theSelect.options.selectedIndex].value;
	    }
	    catch(Error){
	       return null;
	    }
	}
	expDate = /^\d{1,2}\/\d{1,2}\/\d{2,4}$/
	function DGE(x){return document.getElementById(x)}

	function validateDate(dateStr){
	    if(!expDate.test(dateStr)) {return false;}
	    var monthNumStr = today.isNorthAmerica() ? dateStr.split("/")[0]:dateStr.split("/")[1];
	    var dateNumStr = today.isNorthAmerica()?dateStr.split("/")[1]:dateStr.split("/")[0];
	    var yearNum = parseFloat(dateStr.split("/")[2]);
	    var monthNum = parseFloat(monthNumStr);
	    var dateNum = parseFloat(dateNumStr);
	    var maxDate = 31;
	    if(monthNum == 4 || monthNum ==  6 || monthNum == 9 || monthNum == 11){
	      maxDate = 30;
	    }
	    else if (monthNum == 2){
	      if(yearNum %4 ==0) {maxDate = 29;}
	      else{
	         maxDate = 28;
	      }
	    }
	    var bValid= (dateNum <= maxDate && dateNum > 0 && monthNum <= 12 && monthNum > 0);
        return bValid;
	}

	function setCheckout(){
	    var aSpan = DGE("alertSpan");
	    //aSpan.innerHTML = "";
	    var numNights = parseInt(DGE("nights").value);
	    if(!isNaN(numNights)){
	        var checkinDateVal = DGE("checkin").value;
	        if(!expDate.test(checkinDateVal)){
                aSpan.innerHTML = "";
	        }
	        else if(!validateDate(checkinDateVal)){
	           aSpan.innerHTML = "";
	        }
            else{
	            var tDate = today.isNorthAmerica()?new Date(checkinDateVal):makeEuroDate(checkinDateVal);
	            tDate.setDate(tDate.getDate() + numNights);
              DGE("checkout").innerHTML = tDate.octopusDisplayFormat();
            }
	    }
	    else{
	        aSpan.innerHTML = "";
	    }
	}
	function makeURL(){
	    var aSpan = DGE("alertSpan");
	    aSpan.innerHTML = "";
	    var destinationVal = getSelectedValue("destination");
	    var checkinVal = DGE("checkin").value;
	    var nightsVal = DGE("nights").value;
	    var roomtypeVal = getSelectedValue("roomtype");
	    var roomsVal = getSelectedValue("rooms");
//	    var starratingVal = getSelectedValue("starrating");
//	    var languageVal = getSelectedValue("language");
		var countryVal = getSelectedValue("country");
	    var currencyVal = getSelectedValue("currency");
            var bErrors = false;
            var errorMsg = "";
            var linebreak = "\n";
	    if(destinationVal == 0){
	        errorMsg = "Please select a destination."  + linebreak;
	        bErrors = true;
	    }
	    if(!expDate.test(checkinVal) ){
	        errorMsg += "Please enter a checkin date in " + dFormat + " format."  + linebreak;
	        bErrors = true;
	    }
	    if(!validateDate(checkinVal)){
	        errorMsg += "";
	        bErrors = true;
	    }
	    if(isNaN(parseInt(nightsVal)))
	    {
	        errorMsg += "Please enter the number of nights."  + linebreak;
	        bErrors = true;
	    }
	    if(bErrors){
	        //aSpan.innerHTML = errorMsg;
	        alert(errorMsg);
	        return;
	    }
	    var destinationArg = "&destination=" + destinationVal;
        var checkinArg = "";
	        if(!expDate.test(checkinVal)){
                aSpan.innerHTML = "The checkin date you entered must be in " + dFormat + " format";
	        }
	        else if(!validateDate(checkinVal)){
	           aSpan.innerHTML = "Please enter a valid date";
	        }
            else{
	            var tDate = today.isNorthAmerica()?new Date(checkinVal):makeEuroDate(checkinVal);
                checkinArg = "&checkin=" + formatDateForURL(tDate);
            }
	    var nightsArg= nightsVal == ""?"":"&nights=" + nightsVal;
	    var roomtypeArg = "&roomtype=" + roomtypeVal;
	    var roomsArg = "&rooms=" + roomsVal;
//	    var starratingArg = starratingVal == 0?"":"&starrating=" + starratingVal;
	    var currencyArg = currencyVal == "0"?"":"&currency=" + currencyVal;
		var countryArg = countryVal == "0"?"":"&country=" + countryVal;
//	    var langArg= languageVal == "0"?"":"&language=" + languageVal;
	    //var URLRoot = "http://www.octopustravel.com/au/HotelLink?country=AU&siteid=home";
var URLRoot = "http://www.octopustravel.com/hk/HotelLink?siteid=aatravel&lang=E";
	    var URL = URLRoot + destinationArg + checkinArg + nightsArg + roomtypeArg + roomsArg + countryArg + currencyArg;
//DGE("alertSpan").innerHTML = URL;
	    //alert("The constructed URL is : \n" + URL);
          window.open(URL,"_blank");
	   	}
	function init(){
	   var co = DGE("checkout")
	   var ci = DGE("checkin");
	   var ciDate = new Date(today);
	   ciDate.setDate(ciDate.getDate() + 5)
	   ci.value = ciDate.octopusDisplayFormat();
	   ciDate.setDate(ciDate.getDate() + 1);
	   co.innerHTML = ciDate.octopusDisplayFormat();

	}
function openCal(x){
  document.onkeypress = customizeCal;
  var maxdate = new Date();
  maxdate.setMonth(maxdate.getMonth() +futureMonthLimit);
  if(self.gfPop)  gfPop.fLimitPop(today.octopusDisplayFormat(),x,maxdate.octopusDisplayFormat());
}

function customizeCal(e){
	if (!self.gfPop) return;
	else gfPop.fHideCal();
	document.onkeypress=null;
}
futureMonthLimit=13;

