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) { //v4.01
  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);
  if(!x && d.getElementById) x=d.getElementById(n); 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;
}

function MM_openBrWindow(theURL,winName,features,propID) {
  var myLocation = location.href;
  var newLoc;
  newLoc = theURL + "?REFERER=" + escape(myLocation);
  window.open(newLoc,winName,features);
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

// Push to Talk

function stripPhone(formObj){
	valid = "()- 1234567890"
	chk = true
	var temp = ""
	phone = formObj.phone.value
	ext = formObj.ext.value
	for (x=0; x<phone.length; x++){
		chr = phone.charAt(x)
		if(valid.indexOf(chr) < 0){chk = false}
		if(isNaN(chr) == false && chr != " "){temp = temp + chr}
	}
	if(chk == false){
		alert("Please make sure you are entering a valid phone number. Use numbers only. If you have a custom phone number such as 1-800-MY-PHONE, please enter the numbers the letters represent instead of the letters.")
	}else{
		if(temp.length != 10){
			alert("Please enter your phone area code and phone number only.  Your phone number should consist of ten digits.  Do not enter a \"1\" before the area code.")
			chk=false
		}
	}
	if(chk==true){
		link = "http://inlogin.com/exec/RunScript?script=PushToTalk&bus_no=4525595&skill_no=1463&p1=" + temp
		if(ext != ""){link = link + "&ext=" + ext}
		document.location = link
	}
}

function VDS_EmailFriend(theURL,winName,features,propID) {
  var myLocation = location.href;
  var newLoc;
  if(propID.length > 0){
	myLocation = propID;
  }
  if(theURL.indexOf("?") != -1){
	newLoc = theURL + "&REFERER=" + escape(myLocation);
  }else{
	newLoc = theURL + "?REFERER=" + escape(myLocation);
  }
  window.open(newLoc,winName,features);
}

function show(name,src,caption) {
   if (document.images)
       document.images[name].src = src;
	document.images[name].alt = caption; // new cac 20091230

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


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


//For popUp window and help buttons
function popUp(URL,WinName,Features)
{
   window.open(URL,WinName,Features);
}


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


function printInstr(controller){

	if(controller == "house"){

		var Mainform = document.forms[0];

		if (window.print){

    		document.write('<a href="javascript:onClick=window.print()"><img src="/images/comp_but_printb.gif" width="135" height="18" border="0" alt="Print This Page"></a>');

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

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

			}

		}else{

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

				popUp('/rental/printinstruct.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()"><img src="/images/comp_but_printb.gif" width="135" height="18" border="0" alt="Print This Page"></a>');

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

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

			}

		}else{

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

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

			}

		}

	}

}


// used on query.html
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;
	}
}

// used on query.html
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;
	}
}

// used on query.html
function onChangeArrDay(object,inYear) {
	var Current = object.ArrMonth.selectedIndex
    	var currentID = object.ArrMonth.options[Current].text
    	var currentValue = object.ArrMonth.options[Current].value
	lastDay = numberOfDays(currentValue,inYear)

	if(lastDay == object.ArrDay.selectedIndex){
		object.DepMonth.selectedIndex = object.ArrMonth.selectedIndex +1;
		object.DepDay.selectedIndex = 1;
	}else{
		object.DepDay.selectedIndex = object.ArrDay.selectedIndex + 1;
	}
}

// used on query.html
function onChangeArrYear(object) {
	object.DepYear.selectedIndex = object.ArrYear.selectedIndex
}

// used on query.html
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
}

// used on query.html
function getJulian(day,month,year) {
    if (LeapYear(year))
        return (day + accumulateLY[month]);
    else
        return (day + accumulate[month]);
}

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;
}


// 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;
}






// FOR resform-pplus.html
// CC Section
function ChkCC( pCard ) {
	var nCheckSum = 0,
		nCardNum = "",
		nDigit,
		RefString = "0246813579";
	
	// remove all extra characters from card number
	for ( var i = 0; i < pCard.length; i++) {
		nDigit = pCard.charAt( i );				// don't optimize
        if ( RefString.indexOf( nDigit ) != -1 )  
			 nCardNum += nDigit;
	}

	for ( i = 2; i <= nCardNum.length; i++ ) {			// dont count last digit
		nDigit = parseInt( nCardNum.charAt( nCardNum.length - i ));		// count backwards
		if ( i % 2 != 1 )			// odd digits get converted
			nDigit = parseInt( RefString.charAt( nDigit ));
		nCheckSum += parseInt( nDigit );
	}

	nDigit = nCheckSum % 10;
	if ( nDigit > 0 )
		nDigit = 10 - nDigit;

	return ( nDigit == nCardNum.charAt( nCardNum.length-1 ));
}

function empty( xtxt ) {
    for (var i=0; i < xtxt.length; i++) {
        if (xtxt.charAt(i) != " ")
			return false;
    }

    return true;
}

function isNum( pstr ) {
    if( pstr.length == 0) return false;
	if( empty( pstr )) return false;
    var RefString="1234567890.";
    for ( var ctr=0; ctr < pstr.length; ctr++) {
        if (RefString.indexOf( pstr.substring(ctr, ctr+1)) == -1 )  
        	return false;
    }

	return true;
}

// CC Section

function isEmail(str) {
  // are regular expressions supported?
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported)
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
}




function checkContactInfo(object, checkCC){

	controller = 0

	warning = "The following corrections are required:\n"

	if (object.FIRST.value==""){

		controller ++

		warning += controller+". Please enter your FIRST NAME.\n"

	}

	if (object.LAST.value==""){

		controller ++

		warning += controller+". Please enter your LAST NAME.\n"

		

	}

	if (object.EMAIL.value==""){

		controller ++

		warning += controller+". Please enter your EMAIL ADDRESS.\n"

		

	}else if(object.EMAIL.value!=""){

		var address = object.EMAIL.value;

		var verify = isEmail(address);

	//	alert("verify:"+verify)

		if(verify == 0){

			controller ++

			warning += controller+". You have entered an incorrect EMAIL ADDRESS.\n    Please check the address you have entered.\n"



		}

	}

	if (object.HOMEPHONE.value==""){

		controller ++

		warning += controller+". Please enter your HOME PHONE NUMBER.\n"

	}

	if (object.ADDRESS1.value==""){

		controller ++

		warning += controller+". Please enter your STREET ADDRESS.\n"

	}

	if (object.CITY.value==""){

		controller ++

		warning += controller+". Please enter your CITY.\n"

	}

	if (object.STATE.value==""){

		controller ++

		warning += controller+". Please enter your STATE.\n"

	}

	if (object.ZIP.value==""){

		controller ++

		warning += controller+". Please enter your ZIP/POSTAL CODE.\n"

	}

	if (object.ADULTS.value==""){

		controller ++

		warning += controller+". Please enter the number of ADULTS.\n"

	}

	if (object.CHILDREN.value==""){

		controller ++

		warning += controller+". Please enter the number of CHILDREN.\n"

	}


	if(checkCC ==1){

	//Credit card section

	// Now deal with Credit Card

	//First see if they want to pay via check
	//Checkbox for paying via check needs to be last
	//var checkPay = eval(object.elements.length)-1;
	//alert ("Element:" + object.elements[checkPay].checked);

	if ( empty( object.CCNUMBER.value )) {
		controller ++
		warning += "\n"+controller+". Please provide a Credit Card #";
	} else {
		if ( !ChkCC( object.CCNUMBER.value )){
			controller ++
			warning += "\n"+controller+". Credit Card Number has missing or wrong digits, please check";
		}
	}

	if ( object.CCMONTH.selectedIndex == -1 || object.CCYEAR.selectedIndex == -1 ) {
		controller ++
		warning += "\n"+controller+". Please provide a Credit Card Expiration Date";
	} else {
		// check format of exp date
		var mn = parseInt( object.CCMONTH.options[object.CCMONTH.selectedIndex ].value, 10 );
		var yr = parseInt( object.CCYEAR.options[object.CCYEAR.selectedIndex].value, 10 );
		//                 Ja, Fe, Ma, Ap, Ma, Ju, Ju, Au, Se, Oc, No, De
		//alert("mm "+mn+":yr "+yr);
		if ( mn < 1 || mn > 12 ) {
			controller ++
			warning += "\n"+controller+". Please provide a Credit Card Expiration Date";
		} else {
			var mdays = new Object();
			mdays[1] = 31;
			mdays[2] = 28;
			mdays[3] = 31;
			mdays[4] = 30;
			mdays[5] = 31;
			mdays[6] = 30;
			mdays[7] = 31;
			mdays[8] = 31;
			mdays[9] = 30;
			mdays[10] = 31;
			mdays[11] = 30;
			mdays[12] = 31;
			today = new Date();
			xdate = new Date( yr, mn-1, mdays[mn] );
			if ( today.getTime() > xdate.getTime()){
				controller ++
				warning += "\n"+controller+". Credit Card has Expired, please check and re-enter month/year";
			}
		}

			}

		

			if ( empty( object.CCNAME.value )){

				controller ++

				warning += "\n"+controller+". Please provide a Credit Card Name";

			}
	}// END if checkCC = 1


	if (controller > 0){

		alert(warning)

		return false;

	}





}


//-->
1;
