//var smonths = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
var smonths = new Array("01","02","03","04","05","06","07","08","09","10","11","12");
var monthsDay = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var selDay = null;

function DD(d) 
{
//alert(d);
var day = d.getDate();
var date = d.getDate();
var month = d.getMonth(d);
var year = d.getYear();
//alert(year);
year += (year < 1900) ? 1900 : 0;
//alert(year);
var sepDay = (day<10) ? "0" : ""; 
var s =  smonths[month] + "/" + sepDay + day + "/" + year;
return s;
}

function ValidateDate(s)
{
	if(s.length!=10) return false;
	var sep = s.substr(2,1);if (sep != "/") return false;
	sep = s.substr(5,1);	
	if (sep != "/") return false;
	var sday = s.substr(3,2);
	if (sday.substr(0,1) == "0")
	{
		var sday = sday.substr(1,1);
	}
	var day = parseInt(sday);
	if (isNaN(day)) return false;
	if(day<1 || day>31) return false;
	var syear = s.substr(6,4);
	var year = parseInt(syear);
	if (isNaN(year)) return false;

	if(year<2000 || syear>2050) return false;
	var smonth = s.substr(0,2);
	var mfound = false;
	var mx = 0;
	while (mfound==false || mx<12)
	{ 
		if(smonth==smonths[mx])
		{
		 mfound = true;
	  	 if (day>monthsDay[mx]) 
			 { 
				 if (!(mx==1 && day==29 && year%4==0))
				 {
				  	return false;
				 }
			 }
		}
		mx++;
	}
	return mfound;
}

function myParseDate(s)
{
	var d = new Date();
	if (!ValidateDate(s)){
		 return d;
	}
	
	var sday = s.substr(3,2);

	if (sday.substr(0,1) == "0")
	{
		var sday = sday.substr(1,1);
	}
	var day = parseInt(sday);
	var syear = s.substr(6,4);
	var year = parseInt(syear);
	
	var smonth = s.substr(0,2);
	var mfound = false;
	var mx = 0;
	while (mfound==false || mx<12)
	{ 
		if(smonth==smonths[mx])
		{
		 mfound = true;
		 break;
		}
		mx++;
	}
	d = new Date(year, mx, day);
	selDay = day;
	return d;
}

var date;
var sday, smonth, syear;
var obj = "";

function day(d, obj)
{
	var myObj;
	myObj = window.document.getElementById(obj);
	var dat = new Date(theYear, theMonth, d);
	myObj.value = DD(dat);
}

function prev_month(obj)
{
	m = date.getMonth()
	y = date.getYear()
	if (y<1900) y+=1900
	if (m>0)
		m--;
	else {
		m=11;
		y--;
	}
	date.setMonth(m)
	date.setYear(y)
	calendarDisplay(obj,true)
}

function next_month(obj)
{
	m = date.getMonth()
	y = date.getYear()
	if (y<1900) y+=1900
	if (m<11)
		m++;
	else {
		m=0;
		y++;
	}
	date.setMonth(m)
	date.setYear(y)
	calendarDisplay(obj,true)
}

function prev_year(obj)
{
	y = date.getYear()
	if (y<1900) y+=1900
	if (y>2000) y--;
	date.setYear(y)
	calendarDisplay(obj,true)
}

function next_year(obj)
{
	y = date.getYear(obj)
	if (y<1900) y+=1900
	if (y<2010) y++;
	date.setYear(y)
	calendarDisplay(obj,true)
}

function calendarInit(obj)
{
	var myObj;
	myObj = window.document.getElementById(obj).value;
	date = myParseDate(myObj);
	calendarDisplay(obj);
}

function calendarDisplay(obj, setMonthorYear){
	if(document.getElementById(obj+'_cal').innerHTML == "" || setMonthorYear){
		months = Array("January", "February", "March", "April", "May", "June", "July", "August",
			 "September", "October", "November", "December");
		mdays = Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
		theYear = date.getYear()
	
		if (theYear<1900)
			theYear += 1900
		theMonth = date.getMonth()
		if (theYear%4==0)
			mdays[1]++;
		var caltext;
		caltext = ''
	
		date.setDate(1)
		fday = date.getDay();
		cday = fday
		if (fday != 0){
			caltext = '<tr align=center>'
			for (i=0; i<fday; i++)
				caltext = caltext + '<td>&nbsp;</td>'
		}
		for (i=0; i<mdays[theMonth]; i++){
			if (fday == 0){
				caltext = caltext+'<tr align=center>'
				cls='cal_holiday'
			} else
				cls='cal_weekday'
			caltext = caltext+'<td class="' + cls 
			if(selDay == (i+1)) caltext = caltext + " sD";
			caltext = caltext + '" onclick=javascript:day(' + (i+1) + ',"'+obj+'");calendarInit("'+obj+'");>'

			if (syear == theYear && smonth == theMonth && sday == (i+1))
				caltext = caltext + ''
			caltext = caltext + (i+1);
			if (syear == theYear && smonth == theMonth && sday == (i+1))
				caltext = caltext + ''
			caltext = caltext + '</td>'
			if (fday == 6)
				caltext = caltext + '</tr>\n'
			fday = ++fday%7;
		}
		if (fday != 0){
			for (i=fday; i<7; i++){
				caltext = caltext + '<td>&nbsp;</td>'
			}
		}
		caltext = caltext + '</tr>'
	
		caltext =
		'<table class="container">\n'+
		'<tr>\n<td>\n'+
		'<table class="calendar">\n'+
		'<tr class="cal_button">\n'+
		'<td>\n<a href=\"javascript:prev_month('+"'"+obj+"'"+');\">\n&laquo;\n</a>\n</td>\n'+
		'<td colspan=5>'+months[theMonth]+'</td>\n'+
		'<td>\n<a href=\"javascript:next_month('+"'"+obj+"'"+');\">\n&raquo;\n</a>\n</td>\n'+
		'</tr>\n'+
		'<tr class="days">\n'+
		'<td class=cal_red>S</th>\n'+
		'<td>M</th>\n'+
		'<td>T</th>\n'+
		'<td>W</th>\n'+
		'<td>T</th>\n'+
		'<td>F</th>\n'+
		'<td>S</th>\n'+
		'</tr>\n'+
		caltext +
		'<tr class=cal_button>\n'+
		'<td>\n<a  href=\"javascript:prev_year('+"'"+obj+"'"+');\">\n&laquo;\n</a>\n</td>\n'+
		'<td colspan=5 align=center>'+theYear+'</td>\n'+
		'<td>\n<a href=\"javascript:next_year('+"'"+obj+"'"+');\">\n&raquo;\n</a>\n</td>\n'+
		'</tr>\n'+
		'</table>\n'+
		'</td>\n</tr>\n</table>\n'
		document.getElementById(obj+'_cal').innerHTML = caltext;	
	}
	else
		document.getElementById(obj+'_cal').innerHTML = '';	
}
