// create an initial cookie with param 'compsel' otherwise compare button fails is clicked 1st time before selecting any villas/villages
createInitialCookie();

function createInitialCookie()  {
	var date = new Date();
	date.setTime(date.getTime()+(7*24*60*60*1000));
	var expires = "; expires="+date.toGMTString();
	document.cookie = "compsel=;"+expires+"; path=/";
	}

var monthName=new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");

function createWeekOptionList(objSelectField) {
// populates a form select item option list. The option List contains
// a list of weeks starting from the next staurday going forward the specified
// number (intMonths) of months

	// first create the length of stay select option
	doc=document.search;
	doc.lengthstay.length=0;
	doc.lengthstay.options[0] = new Option("Choose start date first..", "");

	var szOptionList = "";
	var intADay = 24 * 60 * 60 * 1000;
	var int7Days = 7 * intADay;
	var dtStart = getNextSaturday();

	intMonths=18;
	var dtEnd = getFinishDate(dtStart, intMonths);
	var dtIndex = dtStart;
	var intEndTime = dtEnd.getTime();
	var intIndexTime = dtIndex.getTime();
	// clear any existing options

	objSelectField.length = 0;

	objSelectField.options[0] = new Option("Choose a date..", "");

	var weekday=new Array("Sun","Mon","Tues","Weds","Thurs","Fri","Sat");
	var timediff;
   
	while ( intIndexTime < intEndTime) {
		// iterate through new options, for each Saturday 
		objSelectField.options[objSelectField.length] = generate_week(objSelectField, dtIndex, weekday, monthName);
		dtIndex.setTime(dtIndex.getTime() +  int7Days );
		intIndexTime = dtIndex.getTime();
		}
	}

function generate_week(objSelectField, dtIndex, weekday, monthName)   {
	themonth=sanitise_num_tostring (dtIndex.getMonth() + 1);
	theday=sanitise_num_tostring (dtIndex.getDate());
	dayname=weekday[dtIndex.getDay()];
	newoption =  new Option(dayname + " "+ dtIndex.getDate()+ " " + monthName[dtIndex.getMonth()] + " " + dtIndex.getFullYear(), dtIndex.getFullYear() + "-" + themonth + "-" + theday);
	return newoption;
	}

function getNextSaturday() {
// returns a date object which has been initialised to the next occurrance of Saturday

   var dtSaturday;
   var dtToday = new Date();
   var intADay = 24 * 60 * 60 * 1000;
   var intCurrentMilliseconds = dtToday.getTime();
   var intSaturday = 6;
   var intDaysUntilSaturday= intSaturday - dtToday.getDay();
   intNextSaturday = intCurrentMilliseconds + (intDaysUntilSaturday * intADay);
   dtSaturday = new Date(intNextSaturday) ;
   return dtSaturday;
}

function  getFinishDate(dtStart, intMonths) {
// returns a date object which has been initialised to a date which represents
// the specified number of months (intMonths) after the specified start date (dtStart)

   var dtEndDate;
   var intAYear = 365 * 60 * 60 * 1000;
   var intMonthsInYear = 12;
   var intYearCount = Math.floor(intMonths / intMonthsInYear);
   var intExtraMonths = intMonths % intMonthsInYear;
   intYear = dtStart.getFullYear() + intYearCount;
   intMonth = dtStart.getMonth() + intExtraMonths;
   if (intMonth >= intMonthsInYear) {
      intYear++;
      intMonth = intMonth - intMonthsInYear;
   }
   intDay = 1;
   dtEndDate = new Date(intYear, intMonth, intDay) ;
   return dtEndDate;
}

function sanitise_num_tostring  (thenum)   {
	thestr=String(thenum);
	if (thestr.length==1) { thestr="0" + thestr; } 		
	return thestr;
	}


if (typeof sIFR == "function") {
	var template = named ({sFlashSrc : "/images/dax.swf", sColor : "#535243", sBgColor : "#FFFFFF", sCase : "upper"});
	sIFR.replaceElement ("h1", template);
	var template = named ({sFlashSrc : "/images/dax.swf", sColor : "#535243", sBgColor : "#FFFFFF", sCase : "upper"});
	sIFR.replaceElement ("h2", template);
	var template = named ({sFlashSrc : "/images/dax.swf", sColor : "#535243", sBgColor : "#C0D8EF", sCase : "upper"});
	sIFR.replaceElement ("#secondary h5", template);
	}


function trim(s)   {
	l=s.length;	b=0; x=0;
	while (x<l&&b==0) { if (s.charAt(x)!=" ")  { b=1; } x++; }
	if (b==0) s="";  
	else { 
		b=0; s=s.substr(x-1); x=s.length-1;
		while(x>=0&&b==0) { if (s.charAt(x)!=" ")  { b=1; } x--; }	
		s=s.substr(0,x+2);
		}
	return s;
	}

function CheckENews(theform)  {
	var email;
	email = trim(theform.email.value);
	if (email==""||((email.indexOf("@") == -1)||email.indexOf(".") == -1)) { 
		alert("Your email address is either missing or in an invalid format...\n"); 
		return false;
		}
	else  {
		theform.action="do-join-newsletter.aspx";
		return true;
		}
	}

function popup(URL, winwidth, winheight, scrollbars, resizable)  {
	day = new Date();
	id = day.getTime();
	pleft=(screen.width-winwidth)/2;
	ptop=(screen.height-winheight)/2;
	eval("page" + id + " = window.open('"+URL+"', '" + id + "', 'toolbar=0,scrollbars="+scrollbars+",location=0,statusbar=0,menubar=0,resizable="+resizable+",width="+winwidth+",height="+winheight+",left="+pleft+",top="+ptop+"');");
	}

function prefillLHSearchBoxes ()  {
	if (document.selfieldform!=undefined)   {
		docsel=document.selfieldform;
		doc = document.search;
		prefillselbox(doc.regionID, docsel.selregionID.value);
		if (docsel.selaccommtype!=undefined)   {
			prefillselbox(doc.accommtype, docsel.selaccommtype.value);
			prefillselbox(doc.occupancy, docsel.seloccupancy.value);
			prefillselbox(doc.startdate, docsel.selstartdate.value);
			if (doc.startdate.value!="")   {	
				createLengthStayOptions(doc.lengthstay);			
				prefillselbox(doc.lengthstay, docsel.sellengthstay.value);
				}
			if (docsel.selnearbeach.value=="on") doc.nearbeach.checked=true;
			if (docsel.selneargolf.value=="on") doc.neargolf.checked=true;
			if (docsel.selswimmingpool.value=="on") doc.swimmingpool.checked=true;
			}
		}
	}

function prefillselbox(selbox, selvalue)  {
	alength = selbox.length;
	selindex=0;
	for (i=0;i<alength;i++)   {
		if (selbox.options[i].value == selvalue) selindex=i;
		}
	selbox.selectedIndex=selindex;
	}

function printpage()  {  
	if (window.print) {
		window.print();  
		} 
	else {
		WebBrowser1.ExecWB(6, 2);
		}
	}

function showLengthStayOptions(startdateselect)   {
	selindex = startdateselect.selectedIndex;
	lengthstayselect = document.search.lengthstay;
	if (selindex==0)   {
		lengthstayselect.length = 0;
		lengthstayselect.options[0] = new Option("Choose start date first..", "");
		}
	else   {
		if (lengthstayselect.options[lengthstayselect.selectedIndex].value=="") createLengthStayOptions(lengthstayselect);
		}
	}

function createLengthStayOptions(lengthstayselect)  {
	lengthstayselect.length = 0;
	lengthstayselect.options[0] = new Option("1 week", "1");
	lengthstayselect.options[1] = new Option("2 weeks", "2");
	lengthstayselect.options[2] = new Option("3 weeks", "3");
	}


