// Dater
Dater = function(endVar, formName, callBack){
	this.ev = endVar;
	this.formName = formName;
	this.callBack = callBack ? callBack : "doNothing";
};

Dater.prototype.init = function()
{
	document.write('<input type="hidden" name="'+this.ev+'" value="1/1/2003">');
	this.hf = eval("document."+this.formName+"."+this.ev);
	var str = "";
	str += this.getDaysList()+" ";
	str += this.getMonthList()+" ";
	str += this.getYearList();
	document.write(str);
	this.day_list = eval("document."+this.formName+"."+this.ev+"_day");
	this.month_list = eval("document."+this.formName+"."+this.ev+"_month");
	this.year_list = eval("document."+this.formName+"."+this.ev+"_year");
};
Dater.prototype.setDate = function(d)
{
	var day = d.getDate();
	var month = d.getMonth();
	var year = this.y2k(d.getYear());
	this.day_list.selectedIndex = parseInt(day)-1;
	this.month_list.selectedIndex = parseInt(month);
	this.setListValue(this.year_list, year);
	updateEndVar(this, month+1, day, year); 
}
Dater.prototype.setListValue = function(list, val)
{
	for (var i=0; i< list.options.length; i++){
		if (list.options[i].value == val){
			list.selectedIndex = i;
			return;
		}
	}
}
Dater.prototype.getDaysList = function()
{
	var day = new Date().getDate();
	var str = '<select name="'+ this.ev +'_day" style="width:30%" onChange="updateEndVar(\''+this.formName+"."+this.ev+'\', \'\',this.value,\'\'); '+this.callBack+'(); ">';
	for (var i=1; i<32; i++){
		str += '<option value="'+i+'"'+((i == day) ? " selected" : "")+'>'+i+'</option>';
	}
	str += '</select>';
	updateEndVar(this, '', day,'');
	return str;
};

Dater.prototype.getMonthList = function()
{
	var mon = new Date().getMonth();
	var months = ["Jan", "Feb", "March", "April", "May", "June", "July", "Aug", "Sep", "Oct", "Nov", "Dec"];
	var str = '<select name="'+this.ev+'_month" style="width:30%" onChange="updateEndVar(\''+this.formName+"."+this.ev+'\', parseInt(this.value)+1,\'\',\'\'); '+this.callBack+'(); ">';
	for (var i=0; i<months.length; i++){
		str += '<option value="'+i+'"'+((i == mon) ? " selected" : "")+'>'+months[i]+'</option>';
	}
	str += '</select>';
	updateEndVar(this, mon+1, '','');
	return str;
};

Dater.prototype.getYearList = function()
{
	year = new Date().getYear();
	var years = ["2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012"];
	var str = '<select name="'+this.ev+'_year" style="width:30%" onChange="updateEndVar(\''+this.formName+"."+this.ev+'\', \'\',\'\',this.value); '+this.callBack+'(); ">';
	for (var i=0; i<years.length; i++){
		str += '<option value="'+years[i]+'"'+((year == years[i]) ? " selected" : "")+'>'+years[i]+'</option>';
	}
	str += '</select>';
	updateEndVar(this, '','', year);
	return str;
};
y2k = function(year)
{
	return (year < 1000) ? year + 1900 : year; 
}
Dater.prototype.y2k = y2k;
function updateEndVar(obj, m, d, y)
{
	if (typeof obj == "object"){
		hf = obj.hf;
	} else {
		var hf = eval("document."+obj);
	}
	var ed = hf.value.split('/');
	hf.value = ((d != "") ? d : ed[0])+"/"+((m != "") ? m : ed[1])+"/"+((y != "") ? y : ed[2]);
	//hf.value = ((m != "") ? m : ed[0])+"/"+((d != "") ? d : ed[1])+"/"+((y != "") ? y : ed[2]);
	//alert(hf.value);
}
function flipDateStr(str)
{
	var a = str.split("/");
	return (a[1]+"/"+a[0]+"/"+a[2]);
}
function jumpDays (today,n)
{
	return (new Date(Date.UTC(y2k(today.getYear()),today.getMonth(),today.getDate(),today.getHours(),today.getMinutes(),today.getSeconds()) + n*24*60*60*1000));					
}
function doNothing(){
	return;
}