function MM_swapImgRestore() { //v3.0

  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;

}

function MM_preloadImages() { //v3.0

  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();

    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)

    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}

}

function MM_findObj(n, d) { //v3.0

  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {

    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}

  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];

  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;

}

function MM_swapImage() { //v3.0

  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)

   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}

}

function MM_jumpMenu(targ,selObj,restore){ //v3.0

  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");

  if (restore) selObj.selectedIndex=0;

}

// Use for PopUp Windows

function popUp(theURL,winName,features) { //v2.0

  window.open(theURL,winName,features);

}

function update_calendar_form(DDval,MMval,YYval)
{
	document.frmRes.day.selectedIndex = DDval;
	document.frmRes.month.selectedIndex = MMval;
	document.frmRes.year.selectedIndex = YYval;
}

// Used in OLE to close PopUps and return to opening window

function goBack(object){

 if (window.opener && !window.opener.closed){

  window.opener.location = "/book/"+object;

  window.close();

 }	

}

// EMAIL A FRIEND

function MM_openBrWindow(theURL,winName,features,propID) { //v3.0
  //INCLUDES feature to handle result page submissions. 12/05/02 CR

  var myLocation = location.href;
  //alert("Location" + myLocation);
  var newLoc;

  newLoc = theURL + "?REFERER=" + escape(myLocation) + "&PMSUnitID=" + escape(propID);
 
  //alert("newLoc" + newLoc);
  window.open(newLoc,winName,features);
}

// FOR NEW IMGVIEW.HTML PAGE - swaps images within page

function show(name,src,caption) {


   if (document.images)
       document.images[name].src = src;

	//alert(document.getElementById('CAPTION'));
   if(document.getElementById('CAPTION') ) 
       document.getElementById('CAPTION').innerHTML = caption;
}

// FOR QUERY.HTML - primarily for arrival and depart dates checking
function makeArray() {

    this[0] = makeArray.arguments.length;

    for (i = 0; i<makeArray.arguments.length; i++)

        this[i+1] = makeArray.arguments[i];

}

var accumulate    = new makeArray(  0, 31, 59, 90,120,151,181,212,243,273,304,334);

var accumulateLY  = new makeArray(  0, 31, 60, 91,121,152,182,213,244,274,305,335);

function LeapYear(year) {

    if ((year/4)   != Math.floor(year/4))   return false;

    if ((year/100) != Math.floor(year/100)) return true;

    if ((year/400) != Math.floor(year/400)) return false;

    return true;

}

function getJulian(day,month,year) {

    if (LeapYear(year))

        return (day + accumulateLY[month]);

    else

        return (day + accumulate[month]);

}

function numberOfDays(month,year) {

	var numDays=new Array(0,31,28,31,30,31,30,31,31,30,31,30,31)

	n = numDays[month]

	if(month == 02 && year % 4 == 0) ++n

	return n

}

function onChangeArr(object,inYear) {

    var Current = object.ArrMonth.selectedIndex

    var currentID = object.ArrMonth.options[Current].text

    var currentValue = object.ArrMonth.options[Current].value



	totalDays = numberOfDays(currentValue,inYear)

	dcount = 1



	while (dcount <= totalDays){

	object.ArrDay.options[dcount] = new Option()

    object.ArrDay.options[dcount].text = dcount

    object.ArrDay.options[dcount].value = dcount

	++dcount

	}

	var stopDay = totalDays + 1

	while( object.ArrDay.options[stopDay] ){  

           		object.ArrDay.options[stopDay] = null;

		}

	object.DepMonth.selectedIndex = Current

	

	totalDays = numberOfDays(currentValue,inYear)

	dcount = 1



	while (dcount <= totalDays){

	object.DepDay.options[dcount] = new Option()

    object.DepDay.options[dcount].text = dcount

    object.DepDay.options[dcount].value = dcount

	++dcount

	}

	var stopDay = totalDays + 1

	while( object.DepDay.options[stopDay] ){  

           		object.DepDay.options[stopDay] = null;

		}



}



function onChangeDep(object,inYear) {

    var Current = object.DepMonth.selectedIndex

    var currentID = object.DepMonth.options[Current].text

    var currentValue = object.DepMonth.options[Current].value

	

	totalDays = numberOfDays(currentValue,inYear)

	dcount = 1



	while (dcount <= totalDays){

	object.DepDay.options[dcount] = new Option()

    object.DepDay.options[dcount].text = dcount

    object.DepDay.options[dcount].value = dcount

	++dcount

	}

	var stopDay = totalDays + 1

	while( object.DepDay.options[stopDay] ){  

           		object.DepDay.options[stopDay] = null;

		}
}



function onChangeArrDay(object) {

	object.DepDay.selectedIndex = object.ArrDay.selectedIndex + 1

}



function onChangeArrYear(object) {

	object.DepYear.selectedIndex = object.ArrYear.selectedIndex

}


// END QUERY PAGE - date checking



// FOR COMPARISON PAGE



function deleteProp(){

	document.compare.submit();

}



function printProp(controller, prop, type){

		if(controller == "house"){

			var url = "/book/house.html?print=Y&pn="+prop+"&Instruct=Y&Type="+type;

			newWindow = window.open(url,"printpropcompare", "resizable=yes,toolbar=yes,menubar=yes,scrollbars=yes,height=600 width=620");

		

		}

		else{

			var url = "/book/propprint.html?propList=" + document.compare.propList.value +"&Instruct=Y&Type="+type;

			newWindow = window.open(url,"printpropcompare", "resizable=yes,toolbar=yes,menubar=yes,scrollbars=yes,height=600 width=620");

		}

}



function back()

{

	var Mainform = document.forms[0];

	if (Mainform.Previous.value == "")

	{	

		alert("These are the first properties in the list.");

	}

	else

	{

		Mainform.Instruct.value = "N";

		Mainform.Next.value = Mainform.Current.value;

		Mainform.CurrentIndex.value = parseInt(Mainform.CurrentIndex.value) - 3 + ''

		Mainform.submit();

	}

}

	

function next()

{

	var Mainform = document.forms[0];

	if (Mainform.Next.value == "")

	{	

		alert("There are no more properties.");

	}

	else

	{

		Mainform.Instruct.value = "N";

		Mainform.Previous.value = Mainform.Current.value;

		Mainform.CurrentIndex.value = parseInt(Mainform.CurrentIndex.value) + 3 + ''

		Mainform.submit();

	}

}



function closeWindow(){

	window.close()

}



function printInstr(controller){

	if(controller == "house"){

		var Mainform = document.forms[0];

		if (window.print){

    		document.write('<a href="javascript:onClick=window.print()">Print Page</a> | ');

			if (Mainform.Instruct.value == "Y"){

				popUp('/book/printinstruct2.html?Button=Y','PropCompare', 'resizable=yes,toolbar=no,menubar=no,scrollbars=yes,height=250,width=425');

			}

		}else{

			if (Mainform.Instruct.value == "Y"){

				popUp('/book/printinstruct2.html?Button=N','PropCompare', 'resizable=yes,toolbar=no,menubar=no,scrollbars=yes,height=250,width=425');

			}

		}



	}else{

		var Mainform = document.forms[0];

		if (window.print){

    		document.write('<a href="javascript:onClick=window.print()">Print Page</a> ');

			if (Mainform.Instruct.value == "Y"){

				popUp('/book/printinstruct.html?Button=Y','PropCompare', 'resizable=yes,toolbar=no,menubar=no,scrollbars=yes,height=250,width=425');

			}

		}else{

			if (Mainform.Instruct.value == "Y"){

				popUp('/book/printinstruct.html?Button=N','PropCompare', 'resizable=yes,toolbar=no,menubar=no,scrollbars=yes,height=250,width=425');

			}

		}

	}

}





// FOR QUERY.HTML

function makeArray() {
    this[0] = makeArray.arguments.length;
    for (i = 0; i<makeArray.arguments.length; i++)
        this[i+1] = makeArray.arguments[i];
}

var daysofweek = new makeArray('Sunday',
                               'Monday',
                               'Tuesday',
                               'Wednesday',
                               'Thursday',
                               'Friday',
                               'Saturday')


var accumulate    = new makeArray(  0, 31, 59, 90,120,151,181,212,243,273,304,334);
var accumulateLY  = new makeArray(  0, 31, 60, 91,121,152,182,213,244,274,305,335);

function LeapYear(year) {
    if ((year/4)   != Math.floor(year/4))   return false;
    if ((year/100) != Math.floor(year/100)) return true;
    if ((year/400) != Math.floor(year/400)) return false;
    return true;
}

function getJulian(day,month,year) {
    if (LeapYear(year))
        return (day + accumulateLY[month]);
    else
        return (day + accumulate[month]);
}

function numberOfDays(month,year) {
	var numDays=new Array(0,31,28,31,30,31,30,31,31,30,31,30,31)
	n = numDays[month]
	if(month == 02 && year % 4 == 0) ++n
	return n
}

function DayOfWeek(day,month,year) {
	var a = Math.floor((14 - month)/12);
    var y = year - a;
    var m = month + 12*a - 2;
    var d = (day + y + Math.floor(y/4) - Math.floor(y/100) + Math.floor(y/400) + Math.floor((31*m)/12)) % 7;

    return d+1;
}



function onChangeArr(object,inYear) {
    var Current = object.ArrMonth.selectedIndex
    var currentID = object.ArrMonth.options[Current].text
    var currentValue = object.ArrMonth.options[Current].value

	totalDays = numberOfDays(currentValue,inYear)
	dcount = 1

	while (dcount <= totalDays){
	object.ArrDay.options[dcount] = new Option()
    object.ArrDay.options[dcount].text = dcount
    object.ArrDay.options[dcount].value = dcount
	++dcount
	}
	var stopDay = totalDays + 1
	while( object.ArrDay.options[stopDay] ){  
           		object.ArrDay.options[stopDay] = null;
		}
	object.DepMonth.selectedIndex = Current
	
	totalDays = numberOfDays(currentValue,inYear)
	dcount = 1

	while (dcount <= totalDays){
	object.DepDay.options[dcount] = new Option()
    object.DepDay.options[dcount].text = dcount
    object.DepDay.options[dcount].value = dcount
	++dcount
	}
	var stopDay = totalDays + 1
	while( object.DepDay.options[stopDay] ){  
           		object.DepDay.options[stopDay] = null;
		}

}

function onChangeDep(object,inYear) {
    var Current = object.DepMonth.selectedIndex
    var currentID = object.DepMonth.options[Current].text
    var currentValue = object.DepMonth.options[Current].value
	
	totalDays = numberOfDays(currentValue,inYear)
	dcount = 1

	while (dcount <= totalDays){
	object.DepDay.options[dcount] = new Option()
    object.DepDay.options[dcount].text = dcount
    object.DepDay.options[dcount].value = dcount
	++dcount
	}
	var stopDay = totalDays + 1
	while( object.DepDay.options[stopDay] ){  
           		object.DepDay.options[stopDay] = null;
		}



}

function onChangeArrDay(object) {
	object.DepDay.selectedIndex = object.ArrDay.selectedIndex + 1
}

function onChangeArrYear(object) {
	object.DepYear.selectedIndex = object.ArrYear.selectedIndex
}

function dateCheckORIG(object,inYear,inMonth,inDay,inYear1SummerStart,inYear1SummerEnd,inYear2SummerStart,inYear2SummerEnd,inEndRange) {

	var arrMonth = object.ArrMonth.selectedIndex
	var arrDay = object.ArrDay.selectedIndex
	var arrYearSelect = object.ArrYear.selectedIndex


	var separator = '-';
	var Start1Array = inYear1SummerStart.split(separator);
	var End1Array = inYear1SummerEnd.split(separator);
	var Start2Array = inYear2SummerStart.split(separator);
	var End2Array = inYear2SummerEnd.split(separator);
	//var LocationSelected = object.Location.selectedIndex;
	//var Location = object.Location.options[LocationSelected].text;
	
	var EndRangeArray = inEndRange.split(separator);

	//alert(Start1Array[1]+"/"+Start1Array[2]+"/"+Start1Array[0]+" - "+End1Array[1]+"/"+End1Array[2]+"/"+End1Array[0]+"\n"+Start2Array[1]+"/"+Start2Array[2]+"/"+Start2Array[0]+" - "+End2Array[1]+"/"+End2Array[2]+"/"+End2Array[0]);
 	//alert(arrYearSelect +" || "+arrMonth +" || "+ arrDay )
	if (arrYearSelect != 0 || arrMonth != 0 || arrDay != 0) {
		
		var arrYear = object.ArrYear.options[arrYearSelect].text;
		var arrToJulian = getJulian(arrDay,arrMonth,arrYear)
		var todaysDate = getJulian(inDay,inMonth,inYear)

		//var depMonth = object.DepMonth.selectedIndex
		//var depDay = object.DepDay.selectedIndex
		//if (object.DepYear.selectedIndex != 0){
		//	var depYearSelect = object.DepYear.selectedIndex
		//	var depYear = object.DepYear.options[depYearSelect].text;
		//}else{
		//	var depYear = 0
		//}	

		if(arrYear == eval(Start1Array[0])){	
			var SSToJulian = getJulian(eval(Start1Array[2]),eval(Start1Array[1]),eval(Start1Array[0]));
			var SEToJulian = getJulian(eval(End1Array[2]),eval(End1Array[1]),eval(End1Array[0]));
		}
		else if(arrYear == eval(Start2Array[0])){
			var SSToJulian = getJulian(eval(Start2Array[2]),eval(Start2Array[1]),eval(Start2Array[0]));
			var SEToJulian = getJulian(eval(End2Array[2]),eval(End2Array[1]),eval(End2Array[0]));
		}
		
		//alert(SSToJulian+" - "+SEToJulian + " - "+ Location);

		
		// alert("Arrival: "+arrYear+" "+arrMonth+" "+arrDay+"\nDepart: "+depYear+" "+depMonth+" "+depDay );
		
		// Check that all fields have a value
		if (arrYearSelect <= 0 || arrMonth <= 0 || arrDay <= 0){
			alert ("You have entered an incorrect ARRIVAL DATE!\nPlease check that you have entered a correct month, day and year.")
			return false;
		}
		
	 	if (inYear == arrYear && arrToJulian < todaysDate){
			alert ("You have entered an incorrect Arrival Date! The arrival date chosen is before today's date.")
				return false
		}
			
		//if (depMonth <= 0 || depDay <= 0 || depYear <= 0 ){
		//	alert ("You have entered an incorrect departure date.\nPlease check that you have entered a correct month, day and year.");
		//	return false
		//}

		//var depToJulian = getJulian(depDay,depMonth,depYear)
	
		if(arrYear < eval(EndRangeArray[0])){
			//alert("depYear is less "+depYear+" END: "+EndRangeArray[0]+"\n")
			var addToCal = 365;
		}
		else{
			addToCal = 0;
		}

		var endRangeToJulian = getJulian(eval(EndRangeArray[2]),eval(EndRangeArray[1]),eval(EndRangeArray[0]));
		endRangeToJulian += addToCal;

		//alert("DEP: "+depToJulian+" END: "+endRangeToJulian+"\n")
		if(arrToJulian > endRangeToJulian){
			alert("We are sorry but we can not take any reservations past the date of "+EndRangeArray[1]+"/"+EndRangeArray[2]+"/"+EndRangeArray[0]+".")
			return false;
		}

		//if (arrYear > depYear){
		//		alert ("You must select a departure date that is after your arrival date!")
		//		return false
		//}


		// TO STOP BOOKINGS THAT ARE WITHIN 48 HRS OF CURRENT DATE
		if(inMonth == arrMonth && (arrDay - inDay <= 2) && (arrYear == inYear)){
			alert("We do not allow online bookings within 2 days of the current date. Please contact our office for help.");
			return false;
		}

		var staySelected = object.Stay2.selectedIndex

		var stayLength = object.Stay2.options[staySelected].text


		//if(arrToJulian >= SSToJulian && arrToJulian <= SEToJulian && stayLength >= 7){
		//	alert("STEP #1 ERROR:\nPlease use Option #1 for weekly rentals in the Summer Seasons.\nDuring the Summer Seasons weekly rentals are only available Saturday to Saturday or Sunday to Sunday.");
		//	return false;
		//}
		
//Modified for Island

		// Make sure they aren't trying to do option 2 during summer months
//alert(arrToJulian < SEToJulian && depToJulian > SSToJulian)
	//	if((arrToJulian < SEToJulian && depToJulian > SSToJulian)){
			// Check that they have chosen a Sat date
			dayNum = DayOfWeek(arrDay,arrMonth,arrYear)
			dayReal = daysofweek[dayNum]
			//alert(dayReal)
			//if(dayReal != "Saturday" && dayReal != "Sunday"){
			//alert("You selected an arrival day of "+dayReal+"\nFor stays during the summer months please use Option 1.");
			//alert("For stays during the summer months please use Option 1.");

			if(stayLength < 7){
				alert("During summer months we only allow weekly rentals.");
				return false;
			}
	//	}

		// Check to make sure they did not enter dates in both Options
		var weekEnd = object.Weekend.selectedIndex
		var option1 = object.Weekend.options[weekEnd].value;

		if(option1 != "Any" && arrToJulian != ""){
			alert("STEP #1 ERROR:\nPlease use either Option #1 or Option #2 when selecting an arrival date.\nIt appears you have entered dates in both options.");
			return false;
		}



/*
		if (arrYear < depYear){
			depToJulian = depToJulian + 365

			if(arrToJulian > depToJulian){
				alert ("You must select a departure date that is after your arrival date!")
				return false
			}

			if ( (depToJulian-arrToJulian) > 21){
				alert ("For stays longer then 3 weeks please contact our office by phone")
				return false
			}
			if ( (depToJulian-arrToJulian) < 3){
				alert ("A Minimum of 3 nights stay is required!")
				return false
			}

		}	
*/
	}

	return true

}

// used on query.html
function dateCheck(object,inYear,inMonth,inDay) {
	
	var separator = '-';

	var arrMonth = object.ArrMonth.selectedIndex
	var arrDay = object.ArrDay.selectedIndex
	var arrYearSelect = object.ArrYear.selectedIndex


////endrange:Mel	var EndRangeArray = inEndRange.split(separator);

	if (arrYearSelect != 0 || arrMonth != 0 || arrDay != 0) {
		
		var arrYear = object.ArrYear.options[arrYearSelect].text;
		var arrToJulian = getJulian(arrDay,arrMonth,arrYear)
		var todaysDate = getJulian(inDay,inMonth,inYear)

		var depMonth = object.DepMonth.selectedIndex
		var depDay = object.DepDay.selectedIndex
		if (object.DepYear.selectedIndex != 0){
			var depYearSelect = object.DepYear.selectedIndex
			var depYear = object.DepYear.options[depYearSelect].text;
		}else{
			var depYear = 0
		}	

		// alert("Arrival: "+arrYear+" "+arrMonth+" "+arrDay+"\nDepart: "+depYear+" "+depMonth+" "+depDay );
		// Check that all fields have a value
		if (arrYearSelect <= 0 || arrMonth <= 0 || arrDay <= 0){
			alert ("You have entered an incorrect ARRIVAL DATE!\nPlease check that you have entered a correct month, day and year.")
			return false;
		}
		
	 	if (inYear == arrYear && arrToJulian < todaysDate){
			alert ("You have entered an incorrect Arrival Date! The arrival date chosen is before today's date.")
			return false
		}
			
		if (depMonth <= 0 || depDay <= 0 || depYear <= 0 ){
			alert ("You have entered an incorrect departure date.\nPlease check that you have entered a correct month, day and year.");
			return false
		}

		var depToJulian = getJulian(depDay,depMonth,depYear)
	
//endrange:Mel		if(depYear < eval(EndRangeArray[0])){
//endrange:Mel			//alert("depYear is less "+depYear+" END: "+EndRangeArray[0]+"\n")
//endrange:Mel			var addToCal = 365;
//endrange:Mel		}
//endrange:Mel		else{
//endrange:Mel			addToCal = 0;
//endrange:Mel		}

//endrange:Mel		var endRangeToJulian = getJulian(eval(EndRangeArray[2]),eval(EndRangeArray[1]),eval(EndRangeArray[0]));
//endrange:Mel		endRangeToJulian += addToCal;

//endrange:Mel		//alert("DEP: "+depToJulian+" END: "+endRangeToJulian+"\n")
//endrange:Mel		if(depToJulian > endRangeToJulian){
//endrange:Mel			alert("We are sorry but we can not take any reservations past the date of "+EndRangeArray[1]+"/"+EndRangeArray[2]+"/"+EndRangeArray[0]+".")
//endrange:Mel		return false;
//endrange:Mel		}

		if (arrYear > depYear){
				alert ("You must select a departure date that is after your arrival date!")
				return false
		}

		if (arrYear == depYear){
			if(arrToJulian > depToJulian){
				alert ("You must select a departure date that is after your arrival date!")
				return false
			}
			//if ( (depToJulian-arrToJulian) > 30){
			//	alert ("For stays longer then 30 days please contact our office by phone")
			//	return false
			//}


			if ( (depToJulian-arrToJulian) < 2){
				alert ("A Minimum of 2 nights stay is required!")
				return false
			}


			// TO STOP BOOKINGS THAT ARE WITHIN 48 HRS OF CURRENT DATE
			if(inMonth == arrMonth && (arrDay - inDay <= 2)){
				alert("We do not allow online bookings within 2 days of the current date.\nPlease contact our office for help.");
				return false;
			}

		}
		if (arrYear < depYear){
			depToJulian = depToJulian + 365

			if(arrToJulian > depToJulian){
				alert ("You must select a departure date that is after your arrival date!")
				return false
			}

			//if ( (depToJulian-arrToJulian) > 30){
			//	alert ("For stays longer then 30 days please contact our office by phone")
			//	return false
			//}
			if ( (depToJulian-arrToJulian) < 2){
				alert ("A Minimum of 2 nights stay is required!")
				return false
			}
		}	
		return true
		// alert ("Month:" + arrMonth + "Day:" + arrDay + "Year:" + arrYear + "ArrJulian:" + arrToJulian + "\nMonth:" + depMonth + "Day:" + depDay + "Year:" + depYear + "DepJulian:" + depToJulian);
	}else{
		var depMonth = object.DepMonth.selectedIndex
		var depDay = object.DepDay.selectedIndex
		var depYearSelect = object.DepYear.selectedIndex
		
		if (depYearSelect != 0 || depMonth != 0 || depDay != 0) {
			alert ("You have entered a departure date but have not entered a correct arrival date.\nPlease reenter your arrival date.")
			return false
		}
	}
	return true;
}


1;