var g_thisEvent;
var N = (document.all) ? 0 : 1;

if (N) 
{
	document.addEventListener('click',captureClick,true)
}
document.onmousedown = captureClick;
document.onmousemove = captureMove;

function captureClick(e)
{
	g_thisEvent = (N) ? e : event;
	return true;
}
function captureMove(e)
{
	
	g_thisEvent = (N) ? e : event;
	return true;
}

function gen_calendar(f_date)
{
	//color variables
	var    dayBg = "#ffffff";
	var curDayBg = "#cccccc";
	
	
	//store today
	var t_today = new Date();
	
	var t_str= new String(); //string to replace html
	var t_weekCount = 5;
	//set the date we are working with
	if (f_date){f_mo = new Date(f_date);}
	else{f_mo = new Date();}
	
	//go to the first day in the month
	var f_first_day = new Date(f_mo);
	f_first_day.setDate(1)
	
	//add a month and find the difference in days, this gives us number of days in month
	//var tempdate = new Date(f_first_day)
	//if (tempdate.getMonth()==11)
	//{
		//tempdate.setMonth(0)
		//tempdate.setYear(tempdate.getYear()+1)
	//}
	//else{tempdate.setMonth(tempdate.getMonth()+1)}
		
	//tempdate-= f_first_day
	//f_days_in_month = new Date(tempdate)
	f_days_in_month = getMonthDays(f_first_day)//.getDate();
	
	
	//set up some temp vars for next and previous months
	tempdate1 = new Date(f_first_day)
	tempdate2 = new Date(f_first_day)
		
 	if (f_first_day.getMonth()==11)
	{
		tempdate1.setMonth(0)
		tempdate1.setYear(tempdate1.getYear()+1)
	}
	else{tempdate1.setMonth(f_first_day.getMonth()+1)}
	
	
	if (f_first_day.getMonth()==0)
	{
		tempdate2.setMonth(11)
		tempdate2.setYear(tempdate2.getYear()-1)
	}
	else{tempdate2.setMonth(f_first_day.getMonth()-1)}
	
	
	var MonthName = GetMonthName(f_first_day.getMonth());
	
	//create html
	t_str+='<table class="cldParent" cellspacing="1" bgcolor="#000000">'
	t_str+='<tr>'
	t_str+='	<td class="cldHeader"><span style="cursor:pointer;text-decoration:underline" onclick="gen_calendar(\''+tempdate2+'\')">&lt;</span></td>'
	t_str+='	<td class="cldHeader" colspan=5 align="center">'+MonthName+'&nbsp;'+takeYear(f_first_day)+'</td>'
	t_str+='	<td class="cldHeader" align=right><span style="cursor:pointer;text-decoration:underline" onclick="gen_calendar(\''+tempdate1+'\')">&gt;</span></td>'
	t_str+='</tr>'
	t_str+='<tr>'
	t_str+='	<td class="cldHeader" width=14%>S</td>'
	t_str+='	<td class="cldHeader" width=14%>M</td>'
	t_str+='	<td class="cldHeader" width=14%>T</td>'
	t_str+='	<td class="cldHeader" width=14%>W</td>'
	t_str+='	<td class="cldHeader" width=14%>T</td>'
	t_str+='	<td class="cldHeader" width=14%>F</td>'
	t_str+='	<td class="cldHeader" width=14%>S</td>'
	t_str+='</tr>'
	
	//pad front of month
	for (x=0;x<=f_first_day.getDay()-1;x++)
 	{
 		t_str+='<td align=right bgcolor="'+dayBg+'"><img src="./_img/spacer.gif" width="1" height="1"></td>'
 	}
 	//write out days in month
 	for (x=1;x<=f_days_in_month;x++)
 	{
 		tempdate = new Date(f_first_day);
		tempdate.setDate(x)
		
		var displayear = takeYear(tempdate)
		
		if(t_today.getMonth()==tempdate.getMonth() && t_today.getDate()==tempdate.getDate() && t_today.getYear()==tempdate.getYear())
		{
			t_str+='<td class="cldToday"><a href=javascript:void(0); onclick="PickDate(\''+ (tempdate.getMonth()+1) +'/'+ tempdate.getDate() + '/' + displayear +'\'); return false;" class=dt>'+x+'</a></td>'
		}
		else
		{
			t_str+='<td class="cldDay" bgcolor="#ffffff"><a href=javascript:void(0); onclick="PickDate(\''+ (tempdate.getMonth()+1) +'/'+ tempdate.getDate() + '/' + displayear +'\');return false;" class=dt>'+x+'</a></td>'
		}
 		
		if (tempdate.getDay()==6)
 		{
			if (tempdate.getDate()!=f_days_in_month)
			{
				t_str+='</tr><tr>'
				t_weekCount-=1
			}
 		}
 	}
 	
	//pad end of month
 	if (tempdate.getDay()!=6)
 	{
 		for (x=0;x<=(6-tempdate.getDay()-1);x++)
 		{
 			t_str+='<td align=right bgcolor="#ffffff"><img src="./_img/spacer.gif" width="1" height="1"></td>'
 		}
		t_str+='</tr>'
 	}
	for (x=t_weekCount;x>=1;x--)
	{
		t_str+='<tr>'
		t_str+='<td align=right bgcolor="#ffffff" class="bodytext">&nbsp;</td>'
		t_str+='<td align=right bgcolor="#ffffff" class="bodytext">&nbsp;</td>'
		t_str+='<td align=right bgcolor="#ffffff" class="bodytext">&nbsp;</td>'
		t_str+='<td align=right bgcolor="#ffffff" class="bodytext">&nbsp;</td>'
		t_str+='<td align=right bgcolor="#ffffff" class="bodytext">&nbsp;</td>'
		t_str+='<td align=right bgcolor="#ffffff" class="bodytext">&nbsp;</td>'
		t_str+='<td align=right bgcolor="#ffffff" class="bodytext">&nbsp;</td>'
		t_str+='</tr>'
	}
	t_str+='<tr>'
	t_str+='<td align=center bgcolor="#ffffff" class="bodytext" colspan="7" valign="middle"><a href="javascript:void(0);" onclick="document.getElementById(\'Calendar\').style.display=\'none\';">Close</a> <a href="javascript:void(0);" onclick="document.getElementById(\'Calendar\').style.display=\'none\';"><span style="color:#ffffff;font-weight:bold;background-color:#ff0000;border:1px outset #000000;font-size:12px;line-height:15px;height:15px; width:15px">X</span></a></td>'
	t_str+='</tr>'
	t_str+='</table>'
 	
	//switch html
	document.getElementById("Calendar").innerHTML=t_str
}


function GetMonthName(f_month)
{
	var returnVal = ''
	switch (f_month)
	{
		case 0:
			returnVal = 'January';
			break;
		case 1:
			returnVal = 'February';
			break;
		case 2:
			returnVal = 'March';
			break;
		case 3:
			returnVal = 'April';
			break;
		case 4:
			returnVal = 'May';
			break;
		case 5:
			returnVal = 'June';
			break;
		case 6:
			returnVal = 'July';
			break;
		case 7:
			returnVal = 'August';
			break;
		case 8:
			returnVal = 'September';
			break;
		case 9:
			returnVal = 'October';
			break;
		case 10:
			returnVal = 'November';
			break;
		case 11:
			returnVal = 'December';
			break;
	}
	return returnVal;
}
function ShowCalendar(f_field)
{
	g_UpdateField = f_field;
	
	if (!document.getElementById("Calendar"))
	{
		var newCal = document.createElement('DIV');	
		newCal.id = "Calendar"
		document.body.appendChild(newCal);
	}
	
	newCal = document.getElementById("Calendar");
	newCal.style.position='absolute';
	newCal.style.top=0;
	newCal.style.left=0;
	newCal.style.width=165;
	newCal.style.height=138;
	newCal.style.display='none';
	newCal.style.zIndex=200
	
	
	if (!N)
	{
		if (!document.getElementById("CalendarIframe"))
		{
			var newCal = document.createElement('iframe');
			newCal.id = "CalendarIframe"
			document.body.appendChild(newCal);
		}
		newCal = document.getElementById("CalendarIframe");
		newCal.style.position='absolute';
		newCal.style.top=0;
		newCal.style.left=0;
		newCal.style.width=160;
		newCal.style.height=135;
		newCal.style.zIndex=199
		newCal.style.display='none';
	}
	//document.body.innerHTML += '<div id="Calendar" align="left" style="position:absolute;top:0;left:0;display:none;"></div>'
	gen_calendar();
	
	
	//if no x,y passed then use event
	x = g_thisEvent.clientX
	y = g_thisEvent.clientY;	
	
	document.getElementById("Calendar").style.top = y + document.body.scrollTop;
	document.getElementById("Calendar").style.left = x + document.body.scrollLeft;
	document.getElementById("Calendar").style.display="inline";
	
	if (!N)
	{
		
		document.getElementById("CalendarIframe").style.top = y + document.body.scrollTop;
		document.getElementById("CalendarIframe").style.left = x + document.body.scrollLeft;
		if (document.all) document.getElementById("CalendarIframe").style.display="inline";
	}

}
function PickDate(f_date)
{
	document.getElementById(g_UpdateField).focus()
	document.getElementById(g_UpdateField).value = f_date;
	//document.getElementById(g_UpdateField).blur()
	document.getElementById("Calendar").style.display='none'
	document.getElementById("CalendarIframe").style.display='none'
}

function takeYear(theDate)
{
	var t = theDate.getYear();
	var v = t % 100;
	v += (v < 38) ? 2000 : 1900;
	return v;
}

function moveObect(f_object)
{
	f_object.style.left = g_thisEvent.clientX + document.body.scrollLeft ;
	f_object.style.top = g_thisEvent.clientY + document.body.scrollTop;
	return false;
}
function getMonthDays(f_date)
{
	var m = f_date.getMonth();
	var y = f_date.getYear();
	switch(m){
		case 0:
			return 31;
			break;
		case 1:
			if(y%4==0)
				return 29;
			else
				return 28;
			break;
		case 2:
			return 31;
			break;
		case 3:
			return 30;
			break;
		case 4:
			return 31;
			break;
		case 5:
			return 30;
			break;
		case 6:
			return 31;
			break;
		case 7:
			return 31;
			break;
		case 8:
			return 30;
			break;		
		case 9:
			return 31;
			break;
		case 10:
			return 30;
			break;
		case 11:
			return 31;
			break;
	}
}
