﻿//html: <input onclick="DateSeter(this);">
var agt = navigator.userAgent.toLowerCase();
var OldTextBox;
var focusYear=false;
var focusMonth=false;
var focusDay=false;
var overYear=false;
var overMonth=false;
var overDay=false;

function DateSeter(obj){
	var parent=obj.parentNode;
	
	var selYear=document.createElement('SELECT');
	selYear.id='LoftyYear';
	parent.insertBefore(selYear,obj);
	var selMonth=document.createElement('SELECT');
	selMonth.id='LoftyMonth';
	parent.insertBefore(selMonth,obj);
	var selDay=document.createElement('SELECT');
	selDay.id='LoftyDay';
	parent.insertBefore(selDay,obj);
/*	var btnSubmit=document.createElement('BUTTON');
	btnSubmit.style.width='22px';
	parent.insertBefore(btnSubmit,obj);
	btnSubmit.id='LoftyBtn';
	btnSubmit.textContent='OK';
	btnSubmit.value='OK';
	al(btnSubmit,'click','Restore()');*/
	OldTextBox=obj;
	var now;
	try
	{
		var o=obj.value.split('-');
		var oyy=Math.round(o[0]);
		var omm=Math.round(o[1]);
		var odd=Math.round(o[2]);
		now=new Date(oyy,omm-1,odd);
	}
	catch(e)
	{
	}
	if(isNaN(now))now=new Date();
	parent.removeChild(obj);
	var cYear=now.getFullYear();
	SetCurrentYear(selYear,cYear);
	al(selYear,'change','SetCurrentYear(document.getElementById(\'LoftyYear\'))');
	al(selMonth,'change','SetDay(null,null)');
	for(i=1;i<=12;i++)
	{
		var op=new Option(i,i);
		selMonth.options.add(op);
	}
	var cMonth=now.getMonth()+1;
	selMonth.selectedIndex=cMonth-1;
	SetDay(cYear,cMonth);
	selDay.selectedIndex=now.getDate()-1;
	al(selYear,'focus','Focuses(\'Y\',true);');
	al(selYear,'blur','Focuses(\'Y\',false);');
	al(selMonth,'focus','Focuses(\'M\',true);');
	al(selMonth,'blur','Focuses(\'M\',false);');
	al(selDay,'focus','Focuses(\'D\',true);');
	al(selDay,'blur','Focuses(\'D\',false);');
	al(selYear,'mouseover','Focuses(\'Ym\',true);');
	al(selYear,'mouseout','Focuses(\'Ym\',false);');
	al(selMonth,'mouseover','Focuses(\'Mm\',true);');
	al(selMonth,'mouseout','Focuses(\'Mm\',false);');
	al(selDay,'mouseover','Focuses(\'Dm\',true);');
	al(selDay,'mouseout','Focuses(\'Dm\',false);');
	setTimeout('document.getElementById(\'LoftyDay\').focus();',1);
}
function Focuses(name,focus)
{
	if(name=='Y')
	{
		focusYear=focus;
	}
	else if(name=='M')
	{
		focusMonth=focus;
	}
	else if(name=='D')
	{
		focusDay=focus;
	}
	if(name=='Ym')
	{
		overYear=focus;
	}
	else if(name=='Mm')
	{
		overMonth=focus;
	}
	else if(name=='Dm')
	{
		overDay=focus;
	}
	if(!focusYear&&!focusMonth&&!focusDay&&!overYear&&!overMonth&&!overDay)Restore();
}
function Restore()
{
	var yy=document.getElementById('LoftyYear');
	var mm=document.getElementById('LoftyMonth');
	var d=document.getElementById('LoftyDay');
	var btn=document.getElementById('LoftyBtn');
	var time=yy.options[yy.selectedIndex].value+'-'+mm.options[mm.selectedIndex].value+'-'+d.options[d.selectedIndex].value;
	OldTextBox.value=time;
	var parent=yy.parentNode;
	parent.insertBefore(OldTextBox,yy);
	parent.removeChild(yy);
	parent.removeChild(mm);
	parent.removeChild(d);
}
function SetDay(year,month)
{
	if(year==null){
		var yy=document.getElementById('LoftyYear');
		var mm=document.getElementById('LoftyMonth');
		year=Math.round(yy.options[yy.selectedIndex].value);
		month=Math.round(mm.options[mm.selectedIndex].value);
	}
	var date=new Date(year,month,1);
	date.setDate(0);
	var maxdate=date.getDate();
	var obj=document.getElementById('LoftyDay');
	var seldate=obj.selectedIndex;
	if(obj.options.length>0){
		if(Math.round(obj.options[obj.selectedIndex].value)>maxdate)
		{
			seldate=maxdate-1;
		}
	}
		reAppendSelect(obj,1,maxdate,seldate+1);
}
function SetCurrentYear(selecter,currYear)
{
	if(currYear==null){
		currYear=Math.round(selecter.options[selecter.selectedIndex].value);
	}
	reAppendSelect(selecter,currYear-10,currYear+10,currYear);
}
function reAppendSelect(selecter,startIndex,endIndex,selIndex)
{
	while(selecter.options.length>0)
	{
		selecter.removeChild(selecter.options[selecter.options.length-1]);
	}
	for(i=startIndex;i<=endIndex;i++)
	{
		var op=new Option(i,i);
		selecter.options.add(op);
		op.selected=(selIndex==i);
	}
}
function al(obj,lissener,func){
	if(agt.indexOf('firefox')!=-1){
		obj.addEventListener(lissener,function(){eval(func);},false);
	}else{
		obj.attachEvent('on'+lissener,function(){eval(func);});
	}
}
