var NS4 = (document.layers) ? true : false;
var IE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var Mac = (navigator.appVersion.indexOf("Mac") != -1);

if(NS4)
	document.write('<link href="../include/css1NS4.css" rel="stylesheet" type="text/css">');
else
	document.write('<link href="../include/css1.css" rel="stylesheet" type="text/css">');

function go(){
var list=document.forms[1].resortList;
location=list.options[list.selectedIndex].value;
}

function trailMap(width,height,imgFilename)
{	
   if(width>=640){width=640};
   if(height>=480){height=480};
   var posx=(screen.width/2)-(width/2);
   var posy=(screen.height/2)-(height/2);
   newWin = window.open("","","status,scrollbars=1,resizable=1,height=" + (height+2) + ",width=" + (width+18) + ",left=" + posx + ",top=" + posy + "");
   var content = "<html><head><title>Trail Map</title></head>"
   content += "<body leftmargin='0' topmargin='0' marginwidth='0' marginheight='0' bgcolor='#6E85C0'><img src='trailMaps/" + imgFilename + "'></body></html>";
   newWin.document.write(content);
   newWin.document.close();
}

function snowReport(URL)
{	
   var width=400
   var height=350
   var posx=(screen.width/2)-(width/2);
   var posy=(screen.height/2)-(height/2);
   newWin = window.open("snowReports/" + URL,"","status,scrollbars=0,resizable=1,height=" + (height+2) + ",width=" + (width+18) + ",left=" + posx + ",top=" + posy + "");
}

function win(URL)
{	
   var width=400
   var height=350
   var posx=(screen.width/2)-(width/2);
   var posy=(screen.height/2)-(height/2);
   newWin = window.open(URL,"","status,scrollbars=1,resizable=1,height=" + (height+2) + ",width=" + (width+18) + ",left=" + posx + ",top=" + posy + "");
}
function gotoListing(nPropertyID, nItemCount) {

	var frmThisForm = window.document.frmSearch;
	frmThisForm.action = '/details.asp?id='+nPropertyID;
	
	try
	{ frmThisForm.hdnPageNumber.value = nItemCount; }
	catch(e){}
	try
	{ frmThisForm.hdnRowsPerPage.value = 1; }
	catch(e){}
	try
	{ frmThisForm.btnSubmit.value = ''; }
	catch(e){}
	
	frmThisForm.submit();
}
function searchBy(URL)
{	
   var width=350
   var height=220
   var posx=(screen.width/2)-(width/2);
   var posy=(screen.height/2)-(height/2);
   URL = "" + URL + ".asp"
   newWin = window.open(URL,"","status,scrollbars=0,resizable=1,height=" + (height+2) + ",width=" + (width+18) + ",left=" + posx + ",top=" + posy + "");
}
function fillSearchForm()
{
	
	var frmThisForm = window.document.frmSearch;
	var dDate = new Date();
	var nStartMonth = frmThisForm.selStartMonth.options[frmThisForm.selStartMonth.selectedIndex].value;
	var nStartDay = frmThisForm.selStartDay.options[frmThisForm.selStartDay.selectedIndex].value;
	var nStartYear = dDate.getYear();
	if(nStartYear<1900) { nStartYear+=1900 } //*Workaround: Netscape treats 2002 at 102
	var nDateVal = isDateOutOfRange(nStartMonth,nStartDay,nStartYear);

	if(nDateVal == -1)
		nStartYear = nStartYear + 1;
	if(nDateVal == 1) {
		alert("Date must be within one year from today");
		return;
	}
	
	if(!validateDate(nStartMonth, nStartDay, nStartYear))
		return;
		
	var sStartDate = nStartMonth + '/' + nStartDay + '/' + nStartYear;	
	
	var myParentForm = window.opener.document.frmSearch;
	
	// these lines are just to make it look like it's happening -- not needed
	myParentForm.selStartMonth.selectedIndex = frmThisForm.selStartMonth.selectedIndex;
	myParentForm.selStartDay.selectedIndex = frmThisForm.selStartDay.selectedIndex;
	
	// fill values on parent form and submit
	myParentForm.hdnStartDate.value = sStartDate;
	if(frmThisForm.selBedrooms)
		myParentForm.selBedrooms.selectedIndex = frmThisForm.selBedrooms.selectedIndex;
	if(frmThisForm.selNumNights)
		myParentForm.selNumNights.selectedIndex = frmThisForm.selNumNights.selectedIndex;
	if(frmThisForm.selNumSleeps)
		myParentForm.selNumSleeps.value = frmThisForm.selNumSleeps.options[frmThisForm.selNumSleeps.selectedIndex].value;
	if(frmThisForm.selResort)
		myParentForm.selResort.value = frmThisForm.selResort.options[frmThisForm.selResort.selectedIndex].value;
	if(frmThisForm.txtLowRate)
		myParentForm.txtLowRate.value = frmThisForm.txtLowRate.value;
	if(frmThisForm.txtHighRate)
		myParentForm.txtHighRate.value = frmThisForm.txtHighRate.value;
	if(frmThisForm.selCity)
		myParentForm.selCity.selectedIndex = frmThisForm.selCity.selectedIndex;
		
	myParentForm.action = 'Results.asp';
	myParentForm.submit();
	window.close();
}
function returnToResults() {

	var frmThisForm = window.document.frmSearch;

	frmThisForm.action = 'results.asp';
	frmThisForm.hdnPageNumber.value = '<%=g_nResultsPageNum%>';
	frmThisForm.hdnRowsPerPage.value = 10;
	frmThisForm.btnSubmit.value = '';
	frmThisForm.submit();
}
function quickSearch(sType, sVal) {

	var frmThisForm = window.document.frmSearch;

	switch (sType) {
		case 'city' :
			frmThisForm.hdnCity.value = sVal;
			frmThisForm.hdnResort.value = '';
			break;
		case 'resort' :
			frmThisForm.hdnResort.value = sVal;
			frmThisForm.hdnCity.value = '';
			break;
	}
	
	frmThisForm.action = 'Results.asp';
	frmThisForm.hdnPageNumber.value = 1;
	frmThisForm.hdnRowsPerPage.value = 10;
	frmThisForm.btnSubmit.value = '';
	frmThisForm.submit();
}

function gotoPage(sPageName) {

	var frmThisForm = window.document.frmSearch;

	frmThisForm.action = sPageName;
	frmThisForm.hdnPageNumber.value = '<%=g_nResultsPageNum%>';
	frmThisForm.hdnRowsPerPage.value = 10;
	//frmThisForm.btnSubmit.value = '';
	frmThisForm.submit();
}
function gotoBookItPage(sPageName) {

	var frmThisForm = window.document.frmBook;

	frmThisForm.action = sPageName;
	//frmThisForm.hdnPageNumber.value = '<%=g_nResultsPageNum%>';
	//frmThisForm.hdnRowsPerPage.value = 10;
	frmThisForm.btnSubmit.value = '';
	frmThisForm.submit();
}
function setPageNumber(nPageNum) {

	var frmThisForm = window.document.frmSearch;

	frmThisForm.btnSubmit.value = '';
	frmThisForm.hdnPageNumber.value = nPageNum;
	frmThisForm.submit();
}
function submitForm() {
	
	var frmThisForm = window.document.frmSearch;
	var dDate = new Date();
	var nStartMonth = frmThisForm.selStartMonth.options[frmThisForm.selStartMonth.selectedIndex].value;
	var nStartDay = frmThisForm.selStartDay.options[frmThisForm.selStartDay.selectedIndex].value;
	var nStartYear = dDate.getYear();
	if(nStartYear<1900) { nStartYear+=1900 } //*Workaround: Netscape treats 2002 at 102
	var nDateVal = isDateOutOfRange(nStartMonth,nStartDay,nStartYear);

	if(nDateVal == -1)
		nStartYear = nStartYear + 1;
	if(nDateVal == 1) {
		alert("Date must be within one year from today");
		return;
	}
	
	if(!validateDate(nStartMonth, nStartDay, nStartYear))
		return;
		
	var sStartDate = nStartMonth + '/' + nStartDay + '/' + nStartYear;	
	frmThisForm.hdnStartDate.value = sStartDate;
	frmThisForm.action = '/results.asp';
	frmThisForm.submit();
}
function submitCalcForm() {
	
	var frmThisForm = window.document.frmCalculate;
	
	var nNights = frmThisForm.selNumNights.options[frmThisForm.selNumNights.selectedIndex].value;	
	var dDate = new Date();
	var nStartMonth = frmThisForm.selStartMonth.options[frmThisForm.selStartMonth.selectedIndex].value;
	var nStartDay = frmThisForm.selStartDay.options[frmThisForm.selStartDay.selectedIndex].value;
	var nStartYear = dDate.getYear();
	if(nStartYear<1900) { nStartYear+=1900 } //*Workaround: Netscape treats 2002 at 102
	var nDateVal = isDateOutOfRange(nStartMonth,nStartDay,nStartYear);

	if(nDateVal == -1)
		nStartYear = nStartYear + 1;
	if(nDateVal == 1) {
		alert("Date must be within one year from today");
		return;
	}
	
	if(!validateDate(nStartMonth, nStartDay, nStartYear))
		return;
		
	var sStartDate = nStartMonth + '/' + nStartDay + '/' + nStartYear;
	frmThisForm.hdnStartDate.value = sStartDate;
	frmThisForm.hdnNights.value = nNights;
	frmThisForm.action = 'bookIt.asp';
	frmThisForm.submit();
}
function submitLodgingForm() {
	
	var frmThisForm = window.document.frmLodging;
	var dDate = new Date();
	var nStartMonth = frmThisForm.selStartMonth.options[frmThisForm.selStartMonth.selectedIndex].value;
	var nStartDay = frmThisForm.selStartDay.options[frmThisForm.selStartDay.selectedIndex].value;
	var nStartYear = dDate.getYear();
	if(nStartYear<1900) { nStartYear+=1900 } //*Workaround: Netscape treats 2002 at 102
	var nDateVal = isDateOutOfRange(nStartMonth,nStartDay,nStartYear);

	if(nDateVal == -1)
		nStartYear = nStartYear + 1;
	if(nDateVal == 1) {
		alert("Date must be within one year from today");
		return;
	}
	
	if(!validateDate(nStartMonth, nStartDay, nStartYear))
		return;
		
	var sStartDate = nStartMonth + '/' + nStartDay + '/' + nStartYear;
	//frmThisForm.hdnNights = frmThisForm.selNumNights.value	
	frmThisForm.hdnStartDate.value = sStartDate;
	frmThisForm.action = '/results.asp';
	frmThisForm.submit();
}
function setOrderColumn(sOrderCol) {

	var frmThisForm = window.document.frmSearch;

	var fldOrderColumn = frmThisForm.hdnOrdColumn;
	var fldOrderDirection = frmThisForm.hdnOrderDirection;
	
	if( fldOrderColumn.value == sOrderCol) {
	
		if( fldOrderDirection.value == 'asc' )
			fldOrderDirection.value = 'desc'; 
		else  
			fldOrderDirection.value = 'asc'; 
	} 
	else
	{
		fldOrderColumn.value = sOrderCol;
		fldOrderDirection.value = 'asc';
	}
	
	frmThisForm.hdnPageNumber.value = 1;
	frmThisForm.btnSubmit.value = '';
	frmThisForm.submit();
}

function validateDate(nMonth, nDay, nYear)
{		
	var sError = validateMonthDate(nMonth, nDay, nYear);				
	if (sError != "")
	{
		alert(sError);
		return false;
	}
	return true;
}
//-----------------------------------------------------------------------------
// tests to see if the year is a leap year.
//-----------------------------------------------------------------------------
function isLeapYear(year)
{
	return (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
}

//-----------------------------------------------------------------------------
//  Validates that the month, day, year are valid.  Note that it expects a 4 digit year
//-----------------------------------------------------------------------------
function validateMonthDate(nMonth, nDay, nYear)
{
	var nMaxDays;

	if(isNaN(nMonth))
		return "Please select a month";
	
	nMonth = parseInt(nMonth, 10)
	
	if(nYear.length == 2)
	{
		nYear = new Number(2000 + parseInt(nYear.valueOf()));
	}

	if (nYear < 1900) { nYear+=1900 }
	if (nYear < 2000)
		return "Please select a year";
				
	if ((nMonth < 1) || (nMonth > 12))
		return "Please select a month";

	switch (nMonth.valueOf())
	{
		case 9:		// 30 days hath september....
		case 4:		// april
		case 6:		// june
		case 11:	// and november
			nMaxDays = 30;
			break;
		case 2:
			nMaxDays = isLeapYear(nYear) ? 29 : 28;
			break;
		default:
			nMaxDays = 31;
	}
	if ((nDay < 1) || (nDay > nMaxDays))
		return "You have selected an invalid day";

	return "";
}

//-----------------------------------------------------------------------------
function isDateOutOfRange(nMonth, nDay, nYear)
{
	var curDate = new Date();
		
	//beginning day of valid dates
	var nStartDate = curDate.getDate();

	//beginning month of valid dates
	var nStartMonth = curDate.getMonth();

	//beginning year of valid dates
	var	nStartYear = curDate.getFullYear();
	
	//ending day of valid dates
	var nEndDate = nStartDate;

	//ending month of valid dates
	var nEndMonth = nStartMonth;
	
	//ending year of valid dates
	var	nEndYear = (nStartYear + 1);

	if(nYear <= nEndYear && nYear >= nStartYear)
	{
		if(nYear == nStartYear)
		{
			if(nMonth >= nStartMonth)
			{
				if(nMonth == nStartMonth)
				{
					// month is equal to the minimum start month... we must check the day
					if(nDay >= nStartDate)
					{
						// if the day is greater than minimum start day, then we're ok
						return 0;
					}
					else
					{
						// day is less than minimum start day
						return -1;
					}
				}
				else
				{
					// month is greater than the minimum start month
					return 0;
				}
			}
			else
			{
				// month is less than the minimum start month
				return -1;
			}
		}
		else if(nYear == nEndYear)
		{
			if(nMonth <= nEndMonth)
			{
				if(nMonth == nEndMonth)
				{
					if(nDay <= nEndDate)
					{
						// day is less than or = to maximum end date
						return 0;
					}
					else
					{
						// day is greater than maximum end date
						return 1;
					}
				}
				else
				{
					// month is less than maximum end month
					return 0;
				}
			}
			else
			{
				// month is greater than maximum end month
				return 1;
			}
		}
		else
		{
			// month is greater than maximum end month
			return 1;
		}
	}
	else
	{
		if(nYear > nEndYear)
		{
			// year is greater than maximum end year
			return 1;
		}
		else if(nYear < nStartYear)
		{
			//year is less than maximum start year
			return -1;
		}
	}
}