/* Client-side access to querystring name=value pairs
 
	Version 1.3
 
	28 May 2008
 
	
 
	License (Simplified BSD):
 
	http://adamv.com/dev/javascript/qslicense.txt
 
*/
 
function Querystring(qs) { // optionally pass a querystring to parse
 
	this.params = {};
 
	
 
	if (qs == null) qs = location.search.substring(1, location.search.length);
 
	if (qs.length == 0) return;
 
 
 
// Turn <plus> back to <space>
 
// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
 
	qs = qs.replace(/\+/g, ' ');
 
	var args = qs.split('&'); // parse out name/value pairs separated via &
 
	
 
// split out each name=value pair
 
	for (var i = 0; i < args.length; i++) {
 
		var pair = args[i].split('=');
 
		var name = decodeURIComponent(pair[0]);
 
		
 
		var value = (pair.length==2)
 
			? decodeURIComponent(pair[1])
 
			: name;
 
		
 
		this.params[name] = value;
 
	}
 
}
 
 
 
Querystring.prototype.get = function(key, default_) {
 
	var value = this.params[key];
 
	return (value != null) ? value : default_;
 
}
 
 
 
Querystring.prototype.contains = function(key) {
 
	var value = this.params[key];
 
	return (value != null);
 
}
 
 
 
 
 
function loadCheck(){
 
var qs = new Querystring();
 
var errNums= qs.get("errNum","");
 
//separate (possibly multiple errs)
 
 
 
if(errNums!=""){
 
    var eNums=errNums.split(" "); //remove spaces
 
    var x;
 
    var eMsg;
 
    //alert(eNums.length);
 
    
 
   eMsg="An error has occured";
 
 
 
    for (x in eNums ){
 
        //alert("." + x + ".");
 
        if (eNums[x]==7){
 
            eMsg="The Check In Date is in the past\n";
 
        }
 
        if (eNums[x]==9){
 
            eMsg=eMsg + "The Check Out Date is in the past\n";
 
        }
 
        if (eNums[x]==12){
 
            eMsg=eMsg + "The promocode is too long\n";
 
        }
 
    }
 
 
 
        alert(eMsg);
 
 
 
}
 
 
 
 
 
    
 
 
 
 
 
 
 
document.getElementById("txtCheckIN").value=qs.get("txtCheckIN","");
 
document.getElementById("txtCheckOUT").value=qs.get("txtCheckOUT","");
 
//document.getElementById("txtNumDays").value=qs.get("txtNumDays","");
 
document.getElementById("AD").value=qs.get("AD","2");
 
document.getElementById("CH").value=qs.get("CH","0");
 
document.getElementById("promoCode").value=qs.get("promoCode","");
 
document.getElementById("RSE").value=qs.get("RSE","0");
 
 
 
dateSync(3);
 
 
 
}
 
 
 
function dateSync(changed)
 
{
 
//sync priority : in ->  out -> num days
 
var checkIN;
 
var checkOUT;
 
var numDAYS;
 
var today = new Date();
 
var one_day=1000*60*60*24;
 
var handled=false;
 
var futureDate;
 
 
 
 
 
//var d = new Date(dateString);  for reference
 
 
 
checkIN=document.getElementById("txtCheckIN").value;
 
checkOUT=document.getElementById("txtCheckOUT").value;
 
numDAYS=document.getElementById("txtNumDays").selectedIndex;
 
 
 
if (changed==1 || changed==3){
 
    //user has modified a text field date
 
    futureDate=checkForPast(changed);
 
    if (!futureDate) {
 
        alert("Date chosen is in the past, please select again");
 
        if (changed==1) {
 
            document.getElementById("txtCheckIN").value="";
 
            fPopCalendar("txtCheckIN");
 
         } 
 
         else {
 
            document.getElementById("txtCheckOUT").value="";
 
            fPopCalendar("txtCheckOUT");
 
         }
 
        return;         // exit function
 
    }
 
}
 
 
 
var INDate = new Date(checkIN);
 
var OUTDate= new Date(checkOUT);
 
 
 
//alert(numDAYS);
 
 
 
if (changed==3 || changed==1) {
 
    numDAYS=0;
 
    //forces the update of the day count
 
};
 
 
 
if (changed==2  && !isNaN(INDate)) {
 
    OUTDate=NaN;
 
};
 
 
 
 
 
if (isNaN(INDate)) {
 
    //no indate specified
 
    
 
    if (numDAYS !=0 && ! isNaN(OUTDate)){
 
        //work backwards from outdate
 
        
 
        INDate=OUTDate;
 
        INDate.setDate(INDate.getDate()-numDAYS);
 
        
 
        checkIN=INDate.getFullYear() + "/" + checkTime(INDate.getMonth()+1) + "/" + checkTime(INDate.getDate());
 
        document.getElementById("txtCheckIN").value=checkIN;
 
        handled=true;
 
    };
 
    
 
}
 
else {
 
//indate has a value that is not nan
 
 
 
//past date?
 
    if ( numDAYS != 0 && isNaN(OUTDate) && !handled){
 
        //has indate and numdays
 
        //fill in outdate
 
        OUTDate=INDate;
 
        OUTDate.setDate(OUTDate.getDate() + numDAYS);
 
       
 
        checkOUT=OUTDate.getFullYear() + "/" + checkTime(OUTDate.getMonth()+1) + "/" + checkTime(OUTDate.getDate());
 
        document.getElementById("txtCheckOUT").value=checkOUT;
 
        handled=true;
 
    
 
    };
 
    
 
    if ( numDAYS != 0 && !isNaN(OUTDate) && !handled){
 
        //has indate, numdays and outdate
 
        //fill in outdate 
 
        OUTDate=INDate;
 
        OUTDate.setDate(OUTDate.getDate() + numDAYS);
 
        checkOUT=OUTDate.getFullYear() + "/" + checkTime(OUTDate.getMonth()+1) + "/" + checkTime(OUTDate.getDate());
 
        document.getElementById("txtCheckOUT").value=checkOUT;
 
        handled=true;
 
    };
 
    
 
    if ( numDAYS == 0 && !isNaN(OUTDate) && !handled){
 
        //has indate and outdate
 
        //fill in numdays
 
        var diff;
 
        diff=Math.ceil((OUTDate.getTime() - INDate.getTime())/one_day);
 
        
 
        if (diff < 0 ) {
 
            alert("Check out date is before Check In date!");
 
            document.getElementById("txtCheckOUT").value="";
 
            fPopCalendar("txtCheckOUT");
 
            return;
 
        }
 
        
 
        if (diff >= 15) {
 
            diff=15;
 
        }
 
        document.getElementById("txtNumDays").selectedIndex=diff;
 
        handled=true;
 
    
 
    };
 
    
 
 
 
};
 
 
 
 
 
//alert(OUTDate);
 
}
 
function checkTime(i)
 
{
 
if (i<10)
 
  {
 
  i="0" + i;
 
  }
 
return i;
 
}
 
 
 
function checkForPast(i){
 
var today = new Date();
 
var dateToC ;
 
 
 
if (i==3){
 
    dateToC=new Date(document.getElementById("txtCheckOUT").value);
 
}
 
else {
 
    dateToC=new Date(document.getElementById("txtCheckIN").value);
 
}
 
 
 
today.setDate(today.getDate()-1);   //remove 24 hours
 
 
 
 
 
if (dateToC <= today) {
 
    return false;
 
 
 
}
 
else {
 
    return true;
 
}
 
 
 
 
 
}
 
 
 
 
 
function UpdateHidden() {
 
 
 
//get dates, split them into elements, put into hidden fields
 
//onSubmit???
 
var aDateText= document.getElementById("txtCheckIN").value;
 
var aDate = new Date(aDateText);
 
 
 
var dDateText=document.getElementById("txtCheckOUT").value;
 
var dDate=new Date(dDateText);
 
 
 
document.getElementById("CIM").value=aDate.getMonth()+1;
 
document.getElementById("CID").value=aDate.getDate();
 
document.getElementById("CIY").value=aDate.getFullYear();
 
 
 
document.getElementById("COM").value=dDate.getMonth()+1;
 
document.getElementById("COD").value=dDate.getDate();
 
document.getElementById("COY").value=dDate.getFullYear();
 
 
 
 
 
 
 
}
 

