/******************** Reservation Request System Variables ***************************/
var myReqDates	= new Array();
var indx		= 0;
var initCost	= 0;
var discount	= 0;
var preTax		= 0;
var roomTax		= 0;
var stateTax	= 0;
var totCost		= 0;
/************************************************************************************/

/**** Add Reservation Request Dates ***/
function addDate(myTag, myRoom, myDate, myNum) {
	var mySize 	 = myReqDates.length;
	var origSize = mySize;

	if(!myRoom) {
		mySize 		= 0;
		origSize 	= 1;
	}

	for(var i=0; i<mySize; i++) {	
		if(myReqDates[i][0] == myRoom && myReqDates[i][1] == myDate) {		
			if(i==mySize-1) {
			    chgBackground(myTag,"orange");
				mySize = mySize - 1;
				myReqDates.pop();			
			} else {
				chgBackground(myTag,"orange");
				for(var j=i; j<myReqDates.length-1; j++) {
					myReqDates[j][0] = myReqDates[j+1][0];
					myReqDates[j][1] = myReqDates[j+1][1];
					myReqDates[j][2] = myReqDates[j+1][2];
				}
				mySize = mySize - 1;
				myReqDates.pop();
			}		
		}		
	}
	if(mySize==origSize) {
		chgBackground(myTag,"green");
		myReqDates[mySize] = new Array();
		myReqDates[mySize][0] = myRoom;
		myReqDates[mySize][1] = myDate;
		if(!myNum) myReqDates[mySize][2] = 0;
		else	   myReqDates[mySize][2] = myNum;
	}		
	storeReservation();
}

/**** Update Gobal Variable and ReCalc Totals ****/
function chgNum(myRoom,myDate,myNum) {
	var mySize = myReqDates.length;
	for(var i=0; i<mySize; i++) {
		if(myReqDates[i][0]==myRoom && myReqDates[i][1]==myDate)
			myReqDates[i][2] = myNum;
	}
	storeReservation();
	calcTotals();
}

/**** Show Reservation Request Data In Table ****/
function showDates() {
	var html = "<table width='335px' cellspacing='0' cellpadding='0' border='1'>"

	for(var i=0; i<myReqDates.length; i++) {
		html += "<tr>" +
				"<td width='20'  align='center' style='font:10px verdana;'>" +
				"<a href='#' onclick=\"javascript:addDate('"+parseInt(myReqDates[i][0])+"_"+(parseDate(myReqDates[i][1]).getMonth()+1)+"_"+parseDate(myReqDates[i][1]).getDate()+"_"+parseDate(myReqDates[i][1]).getYear()+"','"+parseInt(myReqDates[i][0])+"','"+myReqDates[i][1]+"','"+myReqDates[i][2]+"'); showDates();\" class='link2'>" +
				"<img src='images/trash.gif' alt='' width='15' height='20' border='0'></a></td>" +
				"<input type='hidden' name='room"+i+"' value='"+myReqDates[i][0]+"' />" +
				"<input type='hidden' name='date"+i+"' value='"+myReqDates[i][1]+"' />" +
				"<td width='105' align='center' style='font:10px verdana;'>"+myReqDates[i][0]+"</td>" +
				"<td width='105' align='center' style='font:10px verdana;'>"+myReqDates[i][1]+"</td>";
				
		if(parseInt(myReqDates[i][0])==1 || parseInt(myReqDates[i][0])==2) {			
			html += "<td width='105' align='center' style='font:10px verdana;'>" +
					"<select name='guestNum"+i+"' onChange=\"javascript:chgNum("+myReqDates[i][0]+
					",'"+myReqDates[i][1]+"',this.value);\">";
					
			if(parseInt(myReqDates[i][2])==1) html += "<option value='1' SELECTED>1</option>";
			else html += "<option value='1'>1</option>";
			if(parseInt(myReqDates[i][2])==2) html += "<option value='2' SELECTED>2</option>";
			else html += "<option value='2'>2</option>";			

			html += "</select>"+
					"</td>";
		} else if(parseInt(myReqDates[i][0])==3) {			
			html += "<td width='105' align='center' style='font:10px verdana;'>" +
					"<select name='guestNum"+i+"' onChange=\"javascript:chgNum("+myReqDates[i][0]+
					",'"+myReqDates[i][1]+"',this.value);\">";
					
			if(parseInt(myReqDates[i][2])==1) html += "<option value='1' SELECTED>1</option>";
			else html += "<option value='1'>1</option>";
			if(parseInt(myReqDates[i][2])==2) html += "<option value='2' SELECTED>2</option>";
			else html += "<option value='2'>2</option>";				
			html += "</select>"+
					"</td>";
		} else if(parseInt(myReqDates[i][0])==4) {			
			html += "<td width='105' align='center' style='font:10px verdana;'>" +
					"<select name='guestNum"+i+"' onChange=\"javascript:chgNum("+myReqDates[i][0]+
					",'"+myReqDates[i][1]+"',this.value);\">";
					
			if(parseInt(myReqDates[i][2])==1) html += "<option value='1' SELECTED>1</option>";
			else html += "<option value='1'>1</option>";
			if(parseInt(myReqDates[i][2])==2) html += "<option value='2' SELECTED>2</option>";
			else html += "<option value='2'>2</option>";			
			if(parseInt(myReqDates[i][2])==3) html += "<option value='3' SELECTED>3</option>";
			else html += "<option value='3'>3</option>";	
			if(parseInt(myReqDates[i][2])==4) html += "<option value='4' SELECTED>4</option>";
			else html += "<option value='4'>4</option>";				
			html += "</select>"+
					"</td>";	
		}
		html += "</tr>";	
	}	
	html += "</table>";
	document.getElementById("roomData").innerHTML = html;
	calcTotals();
}

/**** Put Global Variable Data into Form On Page ****/
function storeReservation() {
	var strData = "";
	for(var i=0; i<myReqDates.length; i++) {
		if(i==0) strData = strData + myReqDates[i][0] + "!" + myReqDates[i][1] + "!" + myReqDates[i][2];
		else	 strData = strData + "$" + myReqDates[i][0] + "!" + myReqDates[i][1] + "!" + myReqDates[i][2];
	}
	document.myReq.resData.value = strData; 
}

/**** Restore Reservation Data From Previous Page ****/
function getReservations() {
	var fieldValues = document.myReq.resData.value;
	var arrStr  	= fieldValues.split("\$");
	
	for (var i=0; i<arrStr.length; i++) {
		var arrParts = arrStr[i].split("\!");
		var resDate = new Date(arrParts[1]);
		addDate(arrParts[0]+"_"+(resDate.getMonth()+1)+"_"+resDate.getDate()+"_"+resDate.getYear(),arrParts[0],arrParts[1],arrParts[2]);
	}
	if(arrStr.length==0 && fieldValues.length!=0){
		var arrParts = fieldValues.split("\!");
		var resDate = new Date(arrParts[1]);
		addDate(arrParts[0]+"_"+(resDate.getMonth()+1)+"_"+resDate.getDate()+"_"+resDate.getYear(),arrParts[0],arrParts[1],arrParts[2]);	
	}
	
	showDates();
}


/**** Clear Reservation Request ****/
function clearReservations() {
	var fieldValues = document.myReq.resData.value;
	var arrStr  	= fieldValues.split("\$");
	
	document.myReq.discCode.value = "";
	
	for (var i=0; i<arrStr.length; i++) {
		var arrParts = arrStr[i].split("\!");
		var resDate = new Date(arrParts[1]);
		addDate(arrParts[0]+"_"+(resDate.getMonth()+1)+"_"+resDate.getDate()+"_"+resDate.getYear(),arrParts[0],arrParts[1],arrParts[2]);
	}
	if(arrStr.length==0 && fieldValues.length!=0){
		var arrParts = fieldValues.split("\!");
		var resDate = new Date(arrParts[1]);
		addDate(arrParts[0]+"_"+(resDate.getMonth()+1)+"_"+resDate.getDate()+"_"+resDate.getYear(),arrParts[0],arrParts[1],arrParts[2]);	
	}
	
	document.getElementById("myDiscDesc").innerHTML = "";			
	document.getElementById("myDiscount").innerHTML = "";	
	document.myReq.resData.value  = "";
	showDates();
	
}

/**** Pass Data Between Pages ****/
function goLink(url) {
	storeReservation();
	url = url + "&mydates=";
	for(var i=0; i<myReqDates.length; i++) {
		if(i==0) url = url + myReqDates[i][0] + "!" + myReqDates[i][1] + "!" + myReqDates[i][2];
		else	 url = url + "$" + myReqDates[i][0] + "!" + myReqDates[i][1] + "!" + myReqDates[i][2];
	}
	url = url + "&fName=" 		+ document.myReq.fName.value;
	url = url + "&lName=" 		+ document.myReq.lName.value;
	url = url + "&street=" 		+ document.myReq.street.value;
	url = url + "&city=" 		+ document.myReq.city.value;
	url = url + "&state=" 		+ document.myReq.state.value;
	url = url + "&zip=" 		+ document.myReq.zip.value;
	url = url + "&country=" 	+ document.myReq.country.value;
	url = url + "&hPhone=" 		+ document.myReq.hPhone.value;
	url = url + "&oPhone=" 		+ document.myReq.oPhone.value;
	url = url + "&email=" 		+ document.myReq.email.value;
	url = url + "&discCode=" 	+ document.myReq.discCode.value;
	
	window.location = url; 
}

/**** Calculation Room Rate INFO ****/
function calcTotals() {
	var url=null;
    var xmlhttp=null;

    url = "https://www.paradiseonthelake.us/getrates.asp";
	url = url + "?myinfo=";
	for(var i=0; i<myReqDates.length; i++) {
		if(i==0) url = url + myReqDates[i][0] + "!" + myReqDates[i][1] + "!" + myReqDates[i][2];
		else	 url = url + "$" + myReqDates[i][0] + "!" + myReqDates[i][1] + "!" + myReqDates[i][2];
	}	
	url = url + "&mydisc=" + document.myReq.discCode.value;

    if (xmlhttp != null && xmlhttp.readyState != 0 && xmlhttp.readyState != 4) xmlhttp.abort();

    if (window.XMLHttpRequest) { 
		try { xmlhttp=new XMLHttpRequest(); }
    	catch(e) { xmlhttp=null; }
    } else if (window.ActiveXObject) {
    	try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
    	catch(e) {
    		try { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }
    	   	catch(e) { xmlhttp=null; }
    	}
    }

    if (xmlhttp) {
    	xmlhttp.open("GET",url,true);
        xmlhttp.setRequestHeader('content-type', 'text/xml'); 
        xmlhttp.onreadystatechange=function () {
		    var xml=null;
		    var html=null;
		    var data=null;

		    if (xmlhttp.readyState==4) {
	        	if (xmlhttp.status==200) {
					xml  = xmlhttp.responseXML;
	                data = xml.documentElement.getElementsByTagName("Info");

					initCost = Math.round(parseFloat(data[0].getAttribute("initCost"))*100)/100;
					discount = Math.round(parseFloat(data[0].getAttribute("discValue"))*100)/100;
					preTax   = Math.round(parseFloat(data[0].getAttribute("preTax"))*100)/100;
					roomTax  = Math.round(parseFloat(data[0].getAttribute("roomTax"))*100)/100;
					stateTax = Math.round(parseFloat(data[0].getAttribute("stateTax"))*100)/100;
					totCost  = Math.round(parseFloat(data[0].getAttribute("totCost"))*100)/100;

					document.myReq.initCost.value 	= initCost;
					document.myReq.discount.value 	= discount;
					document.myReq.preTax.value 	= preTax;
					document.myReq.roomTax.value 	= roomTax;					
					document.myReq.stateTax.value 	= stateTax;
					document.myReq.totCost.value 	= totCost;		
					document.myReq.minDeposit.value = totCost;			
					
					document.getElementById("myInitCost").innerHTML = "$"+addCommas(CurrencyFormatted(initCost).toString());
					document.getElementById("myPreTax").innerHTML = "$"+addCommas(CurrencyFormatted(preTax).toString());
					document.getElementById("myRoomTax").innerHTML = "$"+addCommas(CurrencyFormatted(roomTax).toString());
					document.getElementById("myStateTax").innerHTML = "$"+addCommas(CurrencyFormatted(stateTax).toString());
					document.getElementById("myTotCost").innerHTML = "$"+addCommas(CurrencyFormatted(totCost).toString());	
					document.getElementById("myMinDep").innerHTML = "$"+addCommas(CurrencyFormatted(totCost).toString());	
					if(data[0].getAttribute("discDesc")) {
						document.getElementById("myDiscDesc").innerHTML = "Minus Discount &nbsp;&nbsp;&nbsp;<font size='1' color='red'>"+data[0].getAttribute("discDesc")+"</font>:";			
						document.getElementById("myDiscount").innerHTML = "$"+addCommas(CurrencyFormatted(discount).toString());	
					} 
				}
			}
        };
        xmlhttp.send(null); 
	}
}

