//=============================================================================================
//
//  Multi Date Selector Without Binding TextBox
// ---------------------------------------------
//	'Set DateSelector comboBox's name (cboDay, cboMonth, cboYear)
//	'Set var startyr is to the first year
//
//==============================================================================================
var mdy = new Array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30);
var mdyShort = new Array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28);
var mdyShortLeap = new Array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29);
var mdyLong = new Array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31);
var myLeap = new Array(1992,1996,2000,2004,2008,2012,2016,2020,2024,2028,2032,2036,2040,2044,2052,2056,2060);
var myMonths = new Array('January','February','March','April','May','June','July','August','September','October','November','December');
var myDaze = new Array(mdyLong,mdyShortLeap,mdyShort,mdy);
var showyrs = 61;
var startyr = 1992; // set this to the first year you want this to use (ie 1999)

//----------------------------------------------------------------------------------------------
// Configure 'DateSelector' properties and make 'DateSelector', Use at page load event.
// 'Parameter(1) cboIndex : DateSelector index number
// 'Parameter(2) setDate : setting DateSelector's initial date (default vlaue is today)
// 'Parameter(3) formatType: setDate's date format.
// ex: <body onload="initDateSelector(0,'04/02/2005','dd/MM/yyyy');initDateSelector(1);">
//----------------------------------------------------------------------------------------------
function initDateSelector(cboIndex,setDate,formatType) {

	if (setDate) {
		ud = new Date(formatDate(new Date(getDateFromFormat(setDate,formatType)),"MM/dd/yyyy"));
	}
	else{
		ud = new Date();//default setting: today 
	}
	//Make DateSelector
	dateMaker(cboIndex,ud);
	//DateSelect Bind width TextBox Value
	setBindValue(cboIndex,getSelectedDate(cboIndex));
	this.window.focus();
}
//----------------------------------------------------------------------
// This function make DateSelector at runtime
// 'Parameter(1) cboIndex : DateSelector index number
// 'Parameter(2) vDate : Date
//----------------------------------------------------------------------
function dateMaker(cboIndex,vDate){
//alert('datemaker');
	
	var milDate= new Date(vDate);
	
	//takes a date in millisecond format and builds a range selector element set
	var ly = 0;//decide if it is a leapyear or not
	var mll = myLeap.length;
	var yr = milDate.getYear();
	if (yr < 100){yr = milDate.getYear()+1900;}

	for(y=0;y<mll;y++){
		if(yr == myLeap[y]){ ly = 1;}//endif
	}
	
	//decide which option set to populate dates with.
	var modaze = "";
	if(milDate.getMonth() == 1 && ly == 1){
		modaze = 1;
	}
	else if(milDate.getMonth() == 1 && ly == 0){
		modaze = 2;
	}
	else if(milDate.getMonth() == (3 || 5 || 8 || 10)){
		modaze = 3;
	}
	else{
		modaze = 0;
	}
	var vint = myDaze[modaze];

	//build out the month options
	document.f.cboMonth[cboIndex].length = myMonths.length;
	for(iggy=0;iggy<myMonths.length;iggy++){

		document.f.cboMonth[cboIndex].options[iggy].text = myMonths[iggy];
		document.f.cboMonth[cboIndex].options[iggy].value = iggy;

	}

	//buildout the year options starting with last year
	//selecting specified year, and showing 5 more
	for(q=0;q<vint.length;q++){
		document.f.cboDay[cboIndex].options.length = vint.length;
		// build out the date option for the first date selector
		document.f.cboDay[cboIndex].options[q].text = vint[q];
		document.f.cboDay[cboIndex].options[q].value = vint[q];
			
		if(q==(milDate.getDate() - 1)){
			document.f.cboDay[cboIndex].selectedIndex = q;
		}
	}
	document.f.cboMonth[cboIndex].selectedIndex = milDate.getMonth();

	//set the year options
	var rip = startyr;
	document.f.cboYear[cboIndex].options.length = showyrs;

	for(wink=0;wink<showyrs;wink++){
		document.f.cboYear[cboIndex].options[wink].text = wink + rip;
		document.f.cboYear[cboIndex].options[wink].value = wink + rip;
	}
	
	//set the year
	var miyr
	for(laz=0;laz<showyrs;laz++){
		miyr = milDate.getYear();
		if (miyr < 100){miyr = milDate.getYear()+1900;}
		if(document.all){var miyr=milDate.getYear();}//endif
		if(document.f.cboYear[cboIndex].options[laz].value==miyr){
			document.f.cboYear[cboIndex].selectedIndex = laz;
		}
	}
}
//----------------------------------------------------------------------
// This function return DateSelector's date vlaue
// 'Parameter(1) cboIndex : DateSelector index number
//----------------------------------------------------------------------
function getSelectedDate(cboIndex) {
	var its = document.f.cboDay[cboIndex].options[document.f.cboDay[cboIndex].selectedIndex].value;
	var mond = document.f.cboMonth[cboIndex].options[document.f.cboMonth[cboIndex].selectedIndex].text;
	var dey = document.f.cboYear[cboIndex].options[document.f.cboYear[cboIndex].selectedIndex].value;
	
	var blues = mond + ' ' +its+ ', '+dey;
	var shin = Date.parse(blues);
	var knee = new Date(shin);
	return knee;
}
//----------------------------------------------------------------------
// This function act at dateSelector change event
// 'Parameter(1) cboIndex : DateSelector index number
//----------------------------------------------------------------------
function changeSelect(cboIndex){
	var selectedDate = new Date(getSelectedDate(cboIndex));
	dateMaker(cboIndex,selectedDate);
	setBindValue(cboIndex,selectedDate); 
}