function SubmitLocation(varLocation) {
	document.location = varLocation;
}

function OpenWinCenter(url, winname, x, y) {
	var sx = screen.width;
	var sy = screen.height;
	var wx = (sx/2) - (x /2);
	var wy = (sy/2) - (y/2) - 50;
	winwindow = window.open(url, winname, "width=" + x + ",height=" + y +", menubar=0, resizable=1, scrollbars=1, status=1, titlebar=0, toolbar=0, left=0, top=0, left=" + wx + ", top=" + wy);
}

function addZero(s) {
		if (s < 10) { s = "0" + s; }
		return s;
}

function dayBox(varSelected) {
	if (varSelected == null) { varDate = 0; } 
	else { varDate = eval(varSelected); }
	document.write('<option value=""></option>');
	for(var i=1;i<=31;i++) {
		varValue = addZero(i);
		document.write('<option value="'+varValue+'" '+(i==varDate?'selected':'')+'>'+varValue+'</option>');
	}
}

function monthBox(varSelected) {
	if (varSelected == null) { varDate = 0; } 
	else { varDate = eval(varSelected); }
	var MonthLong = new Array("","January","February","March","April","May","June","July","August","September","October","November","December");
	document.write('<option value=""></option>');	
	for(var i=1;i<=12;i++) {
		varValue = addZero(i);
		document.write('<option value="'+varValue+'" '+(i==varDate?'selected':'')+'>'+MonthLong[i]+'</option>');
	}
}

function yearBox(varSelected) {
	dateObj = new Date();
	varYear = dateObj.getFullYear();	
	if (varSelected == null) { varDate = 0; } 
	else { varDate = eval(varSelected); }
	varDateFinish = varYear + 3;
	document.write('<option value=""></option>');
	for(var i=varYear;i<=varDateFinish;i++) {
		varValue = i;
		document.write('<option value="'+varValue+'" '+(i==varDate?'selected':'')+'>'+varValue);
	}
}

// function to emulate document.getElementById
function FetchObj(objID){
	var vbDOMtype = '';
	if (document.getElementById){ vbDOMtype = "std"; } 
	else if (document.all){ vbDOMtype = "ie4"; } 
	else if (document.layers)	{ vbDOMtype = "ns4"; }
	switch (vbDOMtype)	{
		case "std": 		{ targObj = document.getElementById(objID);	}
		break;
		case "ie4":  	{ targObj = document.all[objID];	}
		break;
		case "ns4": 	{ targObj = document.layers[objID]; }
		break;
	}
	return targObj;
}

function SwapRow(RowID, ImgID) { 
	ObjRowID = FetchObj(RowID);
	ObjImgID = FetchObj(ImgID);
	if (ObjRowID.style.display == "") {
		ObjRowID.style.display = "none";
		ObjImgID.src = "../images/iconClose.gif";
	} else {
		ObjRowID.style.display = "";
		ObjImgID.src = "../images/iconOpen.gif";
	}
}

function FSfncCheckNumber(FormField,AllowBlank,PositiveOnly,IntegerOnly) {
	// AllowBlank, PositiveOnly, and IntegerOnly are optional
	// Implement by adding onSubmit handler to FORM or onBlur handler to INPUT element, eg. onBlur="FSfncCheckNumber(this,false,true,true)".
	if (isNaN(FormField.value)) {alert(FormField.title + " :  must be a number"); FormField.focus(); return false}
	if ((AllowBlank==false) && (FormField.value=="")) {alert(FormField.title + " : cannot be blank"); FormField.focus(); return false}
	if ((PositiveOnly) && (FormField.value<0)) {alert(FormField.title + " : cannot be negative"); FormField.focus(); return false}
	if ((IntegerOnly) && (FormField.value.indexOf(".")>-1)) {alert(FormField.title + " : cannot contain a decimal point"); FormField.focus(); return false}
	return true;
	}

function getSelectedCheckbox(buttonGroup) {
   // Go through all the check boxes. return an array of all the ones
   // that are selected (their position numbers). if no boxes were checked,
   // returned array will be empty (length will be zero)
   var retArr = new Array();
   var lastElement = 0;
   if (buttonGroup[0]) { // if the button group is an array (one check box is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            retArr.length = lastElement;
            retArr[lastElement] = i;
            lastElement++;
         }
      }
   } else { // There is only one check box (it's not an array)
      if (buttonGroup.checked) { // if the one check box is checked
         retArr.length = lastElement;
         retArr[lastElement] = 0; // return zero as the only array value
      }
   }
   return retArr;
} // Ends the "getSelectedCheckbox" function

function validateEmail(obj) {
		var str = obj.value;
		var at="@";
		var dot=".";
		var lat=str.indexOf(at);
		var lstr=str.length;
		var ldot=str.indexOf(dot);
		if (str.indexOf(at)==-1){
		   alert("Invalid E-mail Address");
		   obj.focus();
		   return false;
		}
		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Invalid E-mail Address");
		   obj.focus();
		   return false;
		}
		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("Invalid E-mail Address");
			obj.focus();
		    return false;
		}
		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Invalid E-mail Address");
			obj.focus();
		    return false;
		 }
		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Invalid E-mail Address");
			obj.focus();
		    return false;
		 }
		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Invalid E-mail Address");
			obj.focus();
		    return false;
		 }
		 if (str.indexOf(" ")!=-1){
		    alert("Invalid E-mail Address");
			obj.focus();
		    return false;
		 }
 		 return true;
	}

// #################### Calendar Function #################### //
	function updateSelect(cal,varDay,varMonth,varYear) {
		var date = cal.date;
		var gdCurDate = new Date();
		var giYear = gdCurDate.getFullYear();
		var selectMonth = document.getElementById(varMonth);
		selectMonth.selectedIndex = date.getMonth()+1;
		var selectDay = document.getElementById(varDay);
		selectDay.selectedIndex = (date.getDate());
		var selectYear = document.getElementById(varYear);
		selectYear.selectedIndex = (date.getFullYear() - giYear) +1 ;

		if (varDay == "aDay" && document.getElementById("dYear")) {
			var string1 = document.getElementById("aYear").value +"/"+document.getElementById("aMonth").value+"/"+document.getElementById("aDay").value;
			var string2 = document.getElementById("dYear").value +"/"+document.getElementById("dMonth").value+"/"+document.getElementById("dDay").value;
			if (string2 <= string1) {
				var selectMonth2 = document.getElementById("dMonth");
				selectMonth2.selectedIndex = date.getMonth()+1;
				var selectDay2 = document.getElementById("dDay");
				selectDay2.selectedIndex = (date.getDate());
				var selectYear2 = document.getElementById("dYear");
				selectYear2.selectedIndex = (date.getFullYear() - giYear)+1;	
				document.getElementById("dateDeparture").value = document.getElementById("dDay").value +"/"+document.getElementById("dMonth").value+"/"+document.getElementById("dYear").value;
			}
		}
	}

function dateDiff(dateType) {
		if (dateType == "arrival") {
			getDays(document.getElementById("aDay"), document.getElementById("aMonth"), document.getElementById("aYear"));
		} else if (dateType == "departure") {
			getDays(document.getElementById("dDay"), document.getElementById("dMonth"), document.getElementById("dYear"));
		}
		var string1 = document.getElementById("aYear").value +"/"+document.getElementById("aMonth").value+"/"+document.getElementById("aDay").value;
		var string2 = document.getElementById("dYear").value +"/"+document.getElementById("dMonth").value+"/"+document.getElementById("dDay").value;
		if (string2 <= string1) {
			if (document.getElementById("aDay").length == (document.getElementById("aDay").selectedIndex+1)) {
				document.getElementById("dDay").selectedIndex = 0;
				if (document.getElementById("aMonth").length == (document.getElementById("aMonth").selectedIndex +1)) {
					document.getElementById("dMonth").selectedIndex = 0;
					if (document.getElementById("aYear").length == (document.getElementById("aYear").selectedIndex +1)) {
						document.getElementById("dDay").selectedIndex = document.getElementById("aDay").selectedIndex;
						document.getElementById("dMonth").selectedIndex = document.getElementById("aMonth").selectedIndex;
						document.getElementById("dYear").selectedIndex = document.getElementById("aYear").selectedIndex;;
					} else {
						document.getElementById("dYear").selectedIndex = document.getElementById("aYear").selectedIndex+1;
					}
				}  else {
					document.getElementById("dMonth").selectedIndex = (document.getElementById("aMonth").selectedIndex+1);
					document.getElementById("dYear").selectedIndex = document.getElementById("aYear").selectedIndex;
				}
			} else {
				document.getElementById("dDay").selectedIndex = document.getElementById("aDay").selectedIndex +1;
				document.getElementById("dMonth").selectedIndex = document.getElementById("aMonth").selectedIndex;
				document.getElementById("dYear").selectedIndex = document.getElementById("aYear").selectedIndex;
			}
			document.getElementById("numberOfNight").value = 1;
		} else {
			 diffDate = (Math.round((Date.parse(string2)-Date.parse(string1))/(24*60*60*1000))*1);
			 if (string2 == string1 && diffDate == 0) {
				document.getElementById("numberOfNight").value = 1;
			} else {
				document.getElementById("numberOfNight").value = diffDate;
			}
		}
}

	var startDate;
	var endDate;
	var ONEDAY = 3600 * 24 * 1000;

	function filterDates1(cal) {
		var date = cal.date;
		startDate = date.getTime()
	}

	function filterDates2(cal) {
		var date = cal.date;
		endDate = date.getTime()
	}

	function disallowDateBefore(date) {
		date = date.getTime();
		if ((startDate != null) && ((date + ONEDAY) <= (startDate + ONEDAY))) {
			//start date can't be prior to end date
			return true; 
		} 
		var now = new Date().getTime();
		if (date < (now - ONEDAY)) {
			//start date can't be prior to today
			return true;
		}
		return false;
	}

	function disallowDateAfter(date) {
		date = date.getTime();
		if ((endDate != null) && ((date - ONEDAY) > (endDate - ONEDAY))) {
			//end date can't be before start date
			return true;
		} 

		var now = new Date().getTime();
		if (date < (now - ONEDAY)) {
			//end date can't be prior to today
			return true;
		}
		return false;
	}
// #################### Calendar Function #################### //