var yn = new Array(2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010);
var na = 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,'01','02','03','04','05','06','07','08','09');
var ml = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

var sday;
var smonth;
var syear;
var sc='-';
var txtname;
var dn=0;

// Date Format:  1. dd-MM-yyyy  2. MM-dd-yyyy  3. yyyy-MM-dd
var dateformat=1;

var mDivMOver=false;document.onclick=function() {if(document.getElementById("caldiv") != null){ if (mDivMOver == false) {dn++;if (dn > 1){document.getElementById("caldiv").style.visibility='hidden';}}}}

function isdate(day, month, year)
{
var nastr=na.join(",")+',';
var ynstr=yn.join(",")+',';

if (nastr.indexOf(day + ',') == -1)
return false;

if (nastr.indexOf(month + ',') == -1)
return false;

if (ynstr.indexOf(year + ',') == -1)
return false;

if (month < 1 || month > 12)
return false;

if (year/4 == parseInt(year/4))
{
ml[1] = 29;
}
else
{
ml[1] = 28;
}

if (day < 1 || day > ml[month-1])
return false;

return true;
}


function calgo(name,thedate,format)
{
txtname=name;

if (format==1 || format==2 || format==3)
{
dateformat=format;
}

if (navigator.appName == 'Microsoft Internet Explorer')
{
document.getElementById("caldiv").setAttribute('onmouseover',function anonymous(){mDivMOver=true});
document.getElementById("caldiv").setAttribute('onmouseout',function anonymous(){mDivMOver=false});
}
else
{
document.getElementById("caldiv").setAttribute('onMouseOver','mDivMOver=true');
document.getElementById("caldiv").setAttribute('onMouseout','mDivMOver=false');
}

var calleft=0;
var caltop=0;
 objParent = document.getElementById(txtname).offsetParent;
         
        while(objParent && objParent.tagName.toUpperCase() != "BODY")
        {
        calleft+=objParent.offsetLeft;
            caltop+=objParent.offsetTop;
objParent = objParent.offsetParent;
}

calleft+=document.getElementById(txtname).offsetLeft
caltop+=document.getElementById(txtname).offsetTop + document.getElementById(txtname).offsetHeight + 1;

document.getElementById("caldiv").style.left=calleft;
document.getElementById("caldiv").style.top=caltop;

var correctdate=false;

if (thedate.indexOf("/") != -1)
{
sc='/';
}

var checkdate=thedate.split(sc);

if (checkdate.length == 3)
{

var cdday;
var cdmonth;
var cdyear;

if (dateformat == 1)
{
cdday=checkdate[0];
cdmonth=checkdate[1];
cdyear=checkdate[2];
}
else if (dateformat == 2)
{
cdday=checkdate[1];
cdmonth=checkdate[0];
cdyear=checkdate[2];
}
else if (dateformat == 3)
{
cdday=checkdate[2];
cdmonth=checkdate[1];
cdyear=checkdate[0];
}

if (isdate(cdday,cdmonth,cdyear) == true)
{
correctdate=true;
}
}


if (correctdate == true)
{
sday=cdday;
smonth=cdmonth;
syear=cdyear;

calendar(sday,smonth,syear);
}
else
{
var d=new Date()
sday=d.getDate();
smonth=d.getMonth()+1;
syear=d.getFullYear();
calendar(sday,smonth,syear);
}
}

function caldown(day, month, year)
{
month=month-1;

if (month == 0)
{
month=12;
year=year-1;
}

if (year < yn[0])
{
month=1;
year=yn[0];
}

calendar(day, month, year);
}

function calup(day, month, year)
{
month=month+1;

if (month == 13)
{
month=1;
year=year+1;
}

if (year > yn[yn.length-1])
{
month=12;
year=yn[yn.length-1];
}

calendar(day, month, year);
}


function calmonth(day, month, year)
{
calendar(day, month, year);

}

function calyear(day, month, year)
{
calendar(day, month, year);

}

function calout(day, month, year)
{
var thedate;

if (day.toString().length==1)
{
day='0'+day;
}

if (month.toString().length==1)
{
month='0'+month;
}

if (dateformat == 1)
{
thedate=day + sc + month + sc + year;
}
else if (dateformat == 2)
{
thedate=month + sc + day + sc + year;
}
else if (dateformat == 3)
{
thedate=year + sc + month + sc + day;
}

document.getElementById(txtname).value=thedate;
document.getElementById("caldiv").style.visibility='hidden';
}


function calendar(day, month, year)
{
dn=0;
var monthnumber = new Array(1,2,3,4,5,6,7,8,9,10,11,12);
var monthname = new Array('January','February','March','April','May','June','July','August','September','October','November','December');
var h;
var DayLoop=0;
var WeekLoop=0;
var font='Arial';
var pday='';
var pmonth;
var pyear;
var ShadeColor='#F1F4F8';
var DayBackColor='#ffffff';
var BorderColor='#51709D';
var DayHeadingBackColor='#51709D';
var DayBackColor='#ffffff';
var SelectDayBackColor='#e1e1e1';
var HoverDayBackColor='#ffff00';
var DayStyle='style="font-family:' + font + ';font-size:8pt;font-weight:bold;color:#ffffff"';
var LinkStyle='style="font-family:' + font + ';font-size:8pt;font-weight:normal;color:#000000;text-decoration:none" onmouseover="this.style.textDecoration=\'underline\'" onmouseout="this.style.textDecoration=\'none\'"';
var AlternateMonth='style="font-family:' + font + ';font-size:8pt;font-weight:normal;color:#888888;text-decoration:none" onmouseover="this.style.textDecoration=\'underline\'" onmouseout="this.style.textDecoration=\'none\'"';
var ArrowStyle='style="font-family:' + font + ';font-size:8pt;font-weight:bold;color:#51709D;text-decoration:none"';

h='<table border=0 cellpadding=1 cellspacing=0 bgcolor=#ffffff><tr><td>'
h+='<table border=1 width=200 cellspacing=0 bordercolor=' + BorderColor +' style="border-collapse:collapse">';
h+='<tr bgcolor=' + ShadeColor + '><td colspan="7"><table border=0 cellpadding=1 cellspacing=1 width="100%"><tr>';
h+='<td width="10%"><a href="#"  onclick="caldown(1,' + month + ',' + year + ')" ' + ArrowStyle + '>&lt;&lt;</a></td>';
h+='<td align=center width="80%">';
h+='<table border=0 cellpadding=0 cellspacing=0>';
h+='<tr>';

h+='<td><select name=ddlmonth style="font-size:8pt;" onchange="calmonth(' + day + ',this.options[this.selectedIndex].value, ' + year + ');">'

for (var a = 0; a < monthnumber.length; a++)
{
 h+='<option value=' + monthnumber[a]

if (month == monthnumber[a])
{
h+=' selected=selected';
}

h+='>' + monthname[a] + '</option>';
}

h+='</select></td>'
h+='<td>&nbsp;</td>';
h+='<td><select name=ddlyear style="font-size:8pt;" onchange="calyear(' + day + ',' + month + ',this.options[this.selectedIndex].value);">'

for (var a = 0; a < yn.length; a++)
{
 h+='<option value=' + yn[a]

if (year == yn[a])
{
h+=' selected=selected';
}

h+='>' + yn[a] + '</option>';
}

h+='</select></td>'

h+='</tr>';
h+='</table>';
h+='</td>';
h+='<td align=right width="10%"><a href="#"  onclick="calup(1,' + month + ',' + year + ')" ' + ArrowStyle + '>&gt;&gt;</a></td>';
h+='</tr></table></td></tr>'
h+='<tr align=center bgcolor=' + DayHeadingBackColor + '>';
h+='<td width="14%"><span ' + DayStyle + '>Sun</span></td>';
h+='<td width="14%"><span ' + DayStyle + '>Mon</span></td>';
h+='<td width="14%"><span ' + DayStyle + '>Tue</span></td>';
h+='<td width="14%"><span ' + DayStyle + '>Wed</span></td>';
h+='<td width="14%"><span ' + DayStyle + '>Thu</span></td>';
h+='<td width="14%"><span ' + DayStyle + '>Fri</span></td>';
h+='<td width="14%"><span ' + DayStyle + '>Sat</span></td>';
h+='</tr>';

for(CellLoop=0; ;CellLoop++)
{
DayLoop++;
WeekLoop++;

if (isdate(DayLoop, month, year) == false)
{
break;
}

var TheDate=new Date(year, month-1, DayLoop);

if (WeekLoop == 1)
{
h+='<tr>'
}

if (CellLoop < TheDate.getDay())
{
if (pday=='')
{
pmonth=month-1;
pyear=year;

if (pmonth == 0)
{
pmonth=12;
pyear=year-1;
}

if (pyear/4 == parseInt(pyear/4))
{
ml[1] = 29;
}
else
{
ml[1] = 28;
}

pday=ml[pmonth-1]-TheDate.getDay()-CellLoop+1;

}
else
{
pday++;
}

h+='<td width="14%" bgcolor=' + ShadeColor + ' onmouseover="this.style.background=\'' + HoverDayBackColor + '\'" onmouseout="this.style.background=\'' + ShadeColor + '\'"><table border=0 width="100%"><tr><td align=right><a href="#" onclick="calout(' + pday + ',' + pmonth + ',' + pyear + ')"' + AlternateMonth + '>' + pday + '</a></td></tr></table></td>';
DayLoop=0;
}
else
{
h+='<td width="14%" valign=top'

if (sday==DayLoop && smonth==month && syear==year)
{
h+=' bgcolor="' + SelectDayBackColor + '" onmouseover="this.style.background=\'' + HoverDayBackColor + '\'" onmouseout="this.style.background=\'' + SelectDayBackColor + '\'">';
}
else
{
h+=' bgcolor="' + DayBackColor + '" onmouseover="this.style.background=\'' + HoverDayBackColor + '\'" onmouseout="this.style.background=\'' + DayBackColor + '\'">';
}

h+='<table border=0 width="100%"><tr><td align=right><a href="#" onclick="calout(' + DayLoop + ',' + month + ',' + year + ')"' + LinkStyle + '>' + DayLoop + '</a></td></tr></table></td>';
}

if (WeekLoop == 7)
{
h+='</tr>';
WeekLoop=0;
}
}

var CellFill=TheDate.getDay()

if (CellFill != 7)
{
var nmd=0;

month++;

if (month == 13)
{
month=1;
year++;
}

for (i = CellFill+2; i <= 7; i++)
{
nmd++;
h+='<td width="14%" bgcolor=' + ShadeColor + ' onmouseover="this.style.background=\'' + HoverDayBackColor + '\'" onmouseout="this.style.background=\'' + ShadeColor + '\'"><table border=0 width="100%"><tr><td align=right><a href="#" onclick="calout(' + nmd + ',' + month + ',' + year + ')"' + AlternateMonth + '>' + nmd + '</a></td></tr></table></td>';
}

h+='</tr>';
}

h+='</table>';
h+='</td></tr></table>';

document.getElementById("caldiv").innerHTML=h;
document.getElementById("caldiv").style.visibility='visible';
}

function calmultiple()
{
	if (document.getElementById("datediv").style.visibility == 'visible')
	{
		document.getElementById("datediv").style.visibility = 'hidden';
		document.getElementById("txtDate2").value = '';
		document.getElementById("dateimage").src='images/datetype_multiple.gif';
		document.getElementById("datediv").style.width='1px';
	}
	else
	{
		document.getElementById("datediv").style.visibility = 'visible';
		document.getElementById("txtDate2").value = document.getElementById("dd").value;
		document.getElementById("dateimage").src='images/datetype_single.gif';
		document.getElementById("datediv").style.width='150px';
	}
}
