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.frmsearch;

	var szOptionList = "";
	var intADay = 24 * 60 * 60 * 1000;
	var int7Days = 7 * intADay;
	var dtStart = getNextSaturday();
    // var dtStart = new Date(2009, 10, 31);

	intMonths=7;
	//var dtEnd = getFinishDate(dtStart, intMonths);
    var dtEnd = new Date(2010, 4, 7);
	var dtIndex = dtStart;
	var intEndTime = dtEnd.getTime();
	var intIndexTime = dtIndex.getTime();
	// clear any existing options

	objSelectField.length = 0;

	objSelectField.options[0] = new Option("Any", "");

	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);
                if (typeof gdtSelectedDate != 'undefined') {
                	if (gdtSelectedDate != '') {
                     		if (objSelectField.options[objSelectField.length-1].value == gdtSelectedDate) {
                          		objSelectField.options[objSelectField.length-1].selected=true;
                     		}
                	}
		}
		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(2009, 9, 26);
   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;
	}
