//Global Variables
var day;
var mth;
var yrs;
var incTime=new Boolean(0);

//-----------------------------------------------------------------------------------------------------------
// FUNCTIONS
//-----------------------------------------------------------------------------------------------------------
function findPosX(obj)
{
	var curleft = 0;
	if (document.getElementById || document.all)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (document.layers)
		curleft += obj.x;
	return curleft;
}

//-----------------------------------------------------------------------------------------------------------
function findPosY(obj)
{
	var curtop = 0;
	if (document.getElementById || document.all)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (document.layers)
		curtop += obj.y;
	return curtop;
}

//-----------------------------------------------------------------------------------------------------------
function cbfIsLeapYear(int_year)
{
	var isleapyr;
	if (int_year%4==0)
	{	isleapyr = true;	}
	else 
	{	isleapyr = false;	}
	return isleapyr;
}

//-----------------------------------------------------------------------------------------------------------
function cbfGetMaxDays(dt_day, dt_mth, dt_yrs)
{
	var ls_max;
	if (dt_mth==2)
	{
		if (cbfIsLeapYear(dt_yrs))
		{	ls_max = 29;	}
		else
		{	ls_max = 28;	}
	}
	else if ((dt_mth==4) || (dt_mth==6) || (dt_mth==9) || (dt_mth==11))
	{	ls_max = 30;	}
	else
	{	ls_max = 31;	}
	return ls_max;
}

//-----------------------------------------------------------------------------------------------------------
function cbfGetMonthName(mth)
{
	switch(mth)
	{
		case 0 : return "January";
		case 1 : return "February";
		case 2 : return "March";
		case 3 : return "April";
		case 4 : return "May";
		case 5 : return "June";
		case 6 : return "July";
		case 7 : return "August";
		case 8 : return "September";
		case 9 : return "October";
		case 10 : return "November";
		case 11 : return "December";
		default : return "January";
	}
}

//-----------------------------------------------------------------------------------------------------------
function cbfloadmefirst(formname, objname, includetime)
{
	var tempObj;
	var tempDate;
	tempObj = eval("document." + formname + "." + objname);
	tempDate = tempObj.value;
	
	if (tempDate.length<=3)
	{	
		tempDate = new Date();
		day = tempDate.getDate();
		mth = tempDate.getMonth()+1;
		yrs = tempDate.getFullYear();
	}
	else
	{
		//day = tempDate.slice(tempDate.search("/")+1);
		//day = day.slice(0,day.search("/"));
		//mth = tempDate.slice(0,tempDate.search("/"));
		
		//original
		//day = tempDate.slice(0,tempDate.search("/"));
		//mth = tempDate.slice(tempDate.search("/")+1);
		//mth = mth.slice(0,mth.search("/"));

		mth = tempDate.slice(0,tempDate.search("/"));
		day = tempDate.slice(tempDate.search("/")+1);
		day = mth.slice(0,mth.search("/"));
		
		tempDate = tempDate.slice(3);
		yrs = tempDate.substr(tempDate.search("/")+1,4);
		
		//alert(day+"/"+mth+"/"+yrs);
	}

	if (navigator.appName != "Microsoft Internet Explorer"){
		var myIFrame = document.getElementById("CalFrame");
		myIFrame.contentDocument.fx.txtday.value=day;
		myIFrame.contentDocument.fx.txtmth.value=mth;
		myIFrame.contentDocument.fx.txtyrs.value=yrs;
		myIFrame.contentDocument.fx.txtobj.value=objname;
		myIFrame.contentDocument.fx.txtfrm.value=formname;
		myIFrame.contentDocument.fx.txtcurmth.value=mth;
		myIFrame.contentDocument.fx.txtcuryrs.value=yrs; 
		myIFrame.contentDocument.fx.txttime_include.value=includetime;
	}else{
		document.frames.CalFrame.document.fx.txtday.value=day;
		document.frames.CalFrame.document.fx.txtmth.value=mth;
		document.frames.CalFrame.document.fx.txtyrs.value=yrs;
		document.frames.CalFrame.document.fx.txtobj.value=objname;
		document.frames.CalFrame.document.fx.txtfrm.value=formname;
		document.frames.CalFrame.document.fx.txtcurmth.value=mth;
		document.frames.CalFrame.document.fx.txtcuryrs.value=yrs;
		document.frames.CalFrame.document.fx.txttime_include.value=includetime;
	}
	
	cbfdrawcalendar(day,mth,yrs);
}

//-----------------------------------------------------------------------------------------------------------
function cbfshowcalendar(formname, objname, imgname, includetime)
{
	
	//The current size of the IFRAME is width=167 and height=200
	//var x=eval("document.all." + imgname + ".offsetLeft");
	//var y=eval("document.all." + imgname + ".offsetTop");
	var x=findPosX(eval("document."+formname+"." + imgname));
	var y=findPosY(eval("document."+formname+"." + imgname));
	var max_x = window.screen.width;
	var max_y = window.screen.height-100;
	
	cbfloadmefirst(formname, objname, includetime);
	if ((max_y-y<200) && (max_x-x<167))
	{
	//document.all.CalFrame.style.top=y-200;
	document.getElementById("CalFrame").style.top=y-200;
	//document.all.CalFrame.style.left=x-167+eval("document.all." + imgname + ".offsetWidth");
	document.getElementById("CalFrame").style.left=x-167+eval("document."+formname+"." + imgname + ".offsetWidth");
	}
	else if (max_y-y<200) 
	{
	//document.all.CalFrame.style.top=y-200;
	document.getElementById("CalFrame").style.top=y-200;
	//document.all.CalFrame.style.left=x;
	document.getElementById("CalFrame").style.left=x;
	}
	else if (max_x-x<167)
	{
	//document.all.CalFrame.style.top=y+eval("document.all." + imgname + ".offsetHeight");
	document.getElementById("CalFrame").style.top=y+eval("document."+formname+"." + imgname + ".offsetHeight");
	//document.all.CalFrame.style.left=x-167+eval("document.all." + imgname + ".offsetWidth");
	document.getElementById("CalFrame").style.left=x-167+eval("document."+formname+"." + imgname + ".offsetWidth");
	}
	else
	{
	//document.all.CalFrame.style.top=y+eval("document.all." + imgname + ".offsetHeight");
	document.getElementById("CalFrame").style.top=y+eval("document."+formname+"." + imgname + ".offsetHeight");
	//document.all.CalFrame.style.left=x;
	document.getElementById("CalFrame").style.left=x;
	}

	//document.all.CalFrame.style.display="block";
	document.getElementById("CalFrame").style.display="block";
}

//-----------------------------------------------------------------------------------------------------------
function cbfselectdate(objid)
{
	var tmpobj;
	var s_time="";
	var s_time_array;
	var mydate, s ;
	mydate = new Date();
	
	if (navigator.appName == "Microsoft Internet Explorer"){
		var d=eval("document.all." + objid + ".value");
		var m=parent.document.frames.CalFrame.document.fx.txtmth.value;
		var y=parent.document.frames.CalFrame.document.fx.txtyrs.value;
		var objname=parent.document.frames.CalFrame.document.fx.txtobj.value;
		var frmname=parent.document.frames.CalFrame.document.fx.txtfrm.value;
		var time_include = parent.document.frames.CalFrame.document.fx.txttime_include.value;
		
		if (d!="")
		{
			cbfdrawcalendar(d,m,y);
			parent.document.frames.CalFrame.document.fx.txtday.value=d;

			tmpobj=eval("parent.document." + frmname + "." + objname);
			//newdate=m+"/"+d+"/"+y;
			
			s_time_array = tmpobj.value.split(" ");
			if(s_time_array.length==2)
				s_time = " " + s_time_array[1];
			else
				s_time = " " + addZero(mydate.getHours()) + ":" + addZero(mydate.getMinutes()) + ":" + addZero(mydate.getSeconds());
				
			if (time_include==1)
				//newdate=d+"/"+m+"/"+y+s_time;
				newdate=m+"/"+d+"/"+y+s_time;
			else
				//newdate=d+"/"+m+"/"+y;
				newdate=m+"/"+d+"/"+y;
			
			tmpobj.value=newdate;
			
			parent.document.all.CalFrame.style.display="none";
		}
	}else{
		var d=eval("document.getElementById(" + '"' + objid + '"' + ").value");
		var m=parent.document.getElementById("CalFrame").contentDocument.fx.txtmth.value;
		var y=parent.document.getElementById("CalFrame").contentDocument.fx.txtyrs.value;
		var objname=parent.document.getElementById("CalFrame").contentDocument.fx.txtobj.value;
		var frmname=parent.document.getElementById("CalFrame").contentDocument.fx.txtfrm.value;
		var time_include = parent.document.getElementById("CalFrame").contentDocument.fx.txttime_include.value;
		
		if (d!="")
		{
			cbfdrawcalendar(d,m,y);
			parent.document.getElementById("CalFrame").contentDocument.fx.txtday.value=d;
			
			tmpobj=eval("parent.document." + frmname + "." + objname);
			//newdate=m+"/"+d+"/"+y;
			
			s_time_array = tmpobj.value.split(" ");
			if(s_time_array.length==2)
				s_time = " " + s_time_array[1];
			else 
				s_time = " " + addZero(mydate.getHours()) + ":" + addZero(mydate.getMinutes()) + ":" + addZero(mydate.getSeconds());
			
			if (time_include==1)
				//newdate=d+"/"+m+"/"+y+s_time;
				newdate=m+"/"+d+"/"+y+s_time;
			else
				//newdate=d+"/"+m+"/"+y;
				newdate=m+"/"+d+"/"+y;
			
			//newdate=d+"/"+m+"/"+y;
			tmpobj.value=newdate;
			
			parent.document.getElementById("CalFrame").style.display="none";
		}
	}
}

//-----------------------------------------------------------------------------------------------------------
function cbfgotomonth(action, d, m, y)
{	
	if (action=="next")
	{	m++;
		if (m>12){m=1;y++;}
	}
	else if (action=="prev")
	{	m--;
		if (m<1){m=12;y--;}
	}
	else
	{	return false;	}
	
	if (navigator.appName == "Microsoft Internet Explorer"){
		parent.document.frames.CalFrame.document.fx.txtday.value=d;
		parent.document.frames.CalFrame.document.fx.txtmth.value=m;
		parent.document.frames.CalFrame.document.fx.txtyrs.value=y;
	}else{
		parent.document.getElementById("CalFrame").contentDocument.fx.txtday.value=d;
		parent.document.getElementById("CalFrame").contentDocument.fx.txtmth.value=m;
		parent.document.getElementById("CalFrame").contentDocument.fx.txtyrs.value=y;
	}
	cbfdrawcalendar(d,m,y);
}

//-----------------------------------------------------------------------------------------------------------
function cbfgotoyear(action, d, m, y)
{
	if (action == "nextyear")
	{
		y++;
	}
	else if (action == "prevyear")
	{
		y--;
	}
	else
	{ return false;}
	if (navigator.appName == "Microsoft Internet Explorer"){
		parent.document.frames.CalFrame.document.fx.txtday.value=d;
		parent.document.frames.CalFrame.document.fx.txtmth.value=m;
		parent.document.frames.CalFrame.document.fx.txtyrs.value=y;
	}else{
		parent.document.getElementById("CalFrame").contentDocument.fx.txtday.value=d;
		parent.document.getElementById("CalFrame").contentDocument.fx.txtmth.value=m;
		parent.document.getElementById("CalFrame").contentDocument.fx.txtyrs.value=y;
	}
	cbfdrawcalendar(d,m,y);
}

//-----------------------------------------------------------------------------------------------------------
function cbfdrawcalendar(dd,mm,yy)
{
	var dayname;
	var mthname;
	var maxdays;
	var datenow = new Date();
	
	if ((dd!="") || (mm!="") || (yy!=""))
	{
		datenow.setDate(1);
		datenow.setMonth(mm-1);
		datenow.setYear(yy);
	}
	datenow.setDate(1);
	dayname = datenow.getDay()+1;
	mthname = cbfGetMonthName(datenow.getMonth());
	maxdays = cbfGetMaxDays("",datenow.getMonth()+1,datenow.getFullYear());
	
	var myIFrame = document.getElementById("CalFrame");
			
	//if (!document.frames.CalFrame)
	if(!document.getElementById("CalFrame"))
	{
		if (navigator.appName == "Microsoft Internet Explorer"){
			parent.document.frames.CalFrame.document.fx.txtmthyrs.value=mthname + " " + datenow.getFullYear();
			cbfclearcalendar();
			for (var x=1 ; x<=maxdays ; x++)
			{
				eval("parent.document.frames.CalFrame.document.all.d" + dayname + ".value=" + x);
				if ((parseInt(dd)==x) && (mm==parent.document.frames.CalFrame.document.fx.txtcurmth.value) && (yy==parent.document.frames.CalFrame.document.fx.txtcuryrs.value))
				{
					eval("parent.document.frames.CalFrame.document.all.d" + dayname + ".style.backgroundColor='maroon'");
					eval("parent.document.frames.CalFrame.document.all.d" + dayname + ".style.color='#ffffff'");
				}
				dayname++;
			}
		}else{
			parent.document.getElementById("CalFrame").contentDocument.fx.txtmthyrs.value=mthname + " " + datenow.getFullYear();
			cbfclearcalendar();
			for (var x=1 ; x<=maxdays ; x++)
			{
				eval("parent.document.getElementById("+'"'+"CalFrame"+'"'+").contentDocument.getElementById("+'"'+"d" + dayname + '"' + ").value=" + x);
				if ((parseInt(dd)==x) && (mm==parent.document.getElementById("CalFrame").contentDocument.fx.txtcurmth.value) && (yy==parent.document.getElementById("CalFrame").contentDocument.fx.txtcuryrs.value))
				{
					eval("parent.document.getElementById("+'"'+"CalFrame"+'"'+").contentDocument.getElementById("+'"'+"d" + dayname + '"' + ").style.backgroundColor='maroon'");
					eval("parent.document.getElementById("+'"'+"CalFrame"+'"'+").contentDocument.getElementById("+'"'+"d" + dayname + '"' + ").style.color='#ffffff'");
				}
				dayname++;
			}
		}
	}
	else
	{
		if (navigator.appName != "Microsoft Internet Explorer")
			myIFrame.contentDocument.fx.txtmthyrs.value=mthname + " " + datenow.getFullYear();
		else
			document.frames.CalFrame.document.fx.txtmthyrs.value=mthname + " " + datenow.getFullYear();
			
		cbfclearcalendar();
		for (var x=1 ; x<=maxdays ; x++)
		{
			if (navigator.appName == "Microsoft Internet Explorer"){
				eval("document.frames.CalFrame.document.all.d" + dayname + ".value=" + x);
				if ((parseInt(dd)==x) && (mm==document.frames.CalFrame.document.fx.txtcurmth.value) && (yy==document.frames.CalFrame.document.fx.txtcuryrs.value)) {
					eval("document.frames.CalFrame.document.all.d" + dayname + ".style.backgroundColor='maroon'");
					eval("document.frames.CalFrame.document.all.d" + dayname + ".style.color='#ffffff'");	
				}
			}else{
				eval("document.getElementById("+'"'+"CalFrame"+'"'+").contentDocument.getElementById("+'"'+"d" + dayname + '"'+")").value=x;
				if ((parseInt(dd)==x) && (mm==document.getElementById("CalFrame").contentDocument.fx.txtcurmth.value) && (yy==document.getElementById("CalFrame").contentDocument.fx.txtcuryrs.value)) 
				{
					eval("document.getElementById("+'"'+"CalFrame"+'"'+").contentDocument.getElementById("+'"'+"d" + dayname + '"'+")").style.backgroundColor='maroon';
					eval("document.getElementById("+'"'+"CalFrame"+'"'+").contentDocument.getElementById("+'"'+"d" + dayname + '"'+")").style.color='#ffffff';
				}
			}
			dayname++;
		}
	}
}

//-----------------------------------------------------------------------------------------------------------
function cbfclearcalendar()
{
	var myIFrame = document.getElementById("CalFrame");
	for (var x=1 ; x<=42 ; x++)
	{	
		//if (!document.frames.CalFrame)
		if(!document.getElementById("CalFrame"))
		{
			if (navigator.appName == "Microsoft Internet Explorer"){
				eval("parent.document.frames.CalFrame.document.all.d" + x + ".value=''");	
				eval("parent.document.frames.CalFrame.document.all.d" + x + ".style.backgroundColor='#ffffff'");
				eval("parent.document.frames.CalFrame.document.all.d" + x + ".style.color='#000000'");
			}else{
				eval("parent.document.getElementById("+'"'+"CalFrame"+'"'+").contentDocument.getElementById("+'"'+"d" + x + '"'+").value=''");	
				eval("parent.document.getElementById("+'"'+"CalFrame"+'"'+").contentDocument.getElementById("+'"'+"d" + x + '"'+").style.backgroundColor='#ffffff'");
				eval("parent.document.getElementById("+'"'+"CalFrame"+'"'+").contentDocument.getElementById("+'"'+"d" + x + '"'+").style.color='#000000'");
			}
		}
		else
		{
			if (navigator.appName != "Microsoft Internet Explorer"){
				eval("document.getElementById("+'"'+"CalFrame"+'"'+").contentDocument.getElementById("+'"'+"d" + x + '"'+").value=''");	
				eval("document.getElementById("+'"'+"CalFrame"+'"'+").contentDocument.getElementById("+'"'+"d" + x + '"'+").style.backgroundColor='#ffffff'");
				eval("document.getElementById("+'"'+"CalFrame"+'"'+").contentDocument.getElementById("+'"'+"d" + x + '"'+").style.color='#000000'");
			}else{
				eval("document.frames.CalFrame.document.all.d" + x + ".value=''");	
				eval("document.frames.CalFrame.document.all.d" + x + ".style.backgroundColor='#ffffff'");
				eval("document.frames.CalFrame.document.all.d" + x + ".style.color='#000000'");
			}
		}
	}
}

//-----------------------------------------------------------------------------------------------------------
/*----------------------------*/
/*		NO SHORTCUT KEY		  */
/*----------------------------*/
function disable_keycode()
{
	event.keyCode=0;
	event.returnValue=false;
}

function keydown()
{
//alert(event.keyCode);
	if ((event.altKey) && ((event.keyCode==37) || (event.keyCode==39))) disable_keycode();
	if ((event.ctrlKey) && ((event.keyCode==78) || (event.keyCode==82) || (event.keyCode==69) || (event.keyCode==87) || (event.keyCode==66) || (event.keyCode==72) || (event.keyCode==73) || (event.keyCode==76) || (event.keyCode==79) || (event.keyCode==68)  || (event.keyCode==83))) disable_keycode();
	if (event.keyCode==8) disable_keycode();
//	if (event.keyCode==116) disable_keycode();
	if (event.keyCode==122) disable_keycode();
	if (event.keyCode==93) {alert("No context menu"); disable_keycode();}
}

//-----------------------------------------------------------------------------------------------------------
/*----------------------------*/
/*		NO RIGHT CLICK		  */
/*----------------------------*/
function norightclick()
{
	if (window.event){
	if (event.button!=1)
	{	
		alert("No right click");
		event.cancelBubble=true;
		event.returnValue=false;
		return false;
	}}
}

//-----------------------------------------------------------------------------------------------------------
//Timer
var timerID = 0;
var tStart  = null;

function Start() {
   tStart   = new Date();
   timerID  = setTimeout("UpdateTimer()", 1000);
}

function Stop() {
   if(timerID) {
      clearTimeout(timerID);
      timerID  = 0;
   }
   tStart = null;
}

//-----------------------------------------------------------------------------------------------------------
function UpdateTimer() {
   if(timerID) {
      clearTimeout(timerID);
      clockID  = 0;
   }

   if(!tStart)
      tStart   = new Date();

   var   tDate = new Date();
   var   tDiff = tDate.getTime() - tStart.getTime();

   tDate.setTime(tDiff);

   document.theTimer.theTime.value = "" 
                                   + tDate.getMinutes() + ":" 
                                   + tDate.getSeconds();
   
   timerID = setTimeout("UpdateTimer()", 1000);
}

//-----------------------------------------------------------------------------------------------------------
function addZero(thevalue){
	var str="";
	if(parseInt(thevalue)<=9){
		str =  "0"+thevalue;
	}else{
		str = ""+thevalue;
	}
	return str;
}

//-----------------------------------------------------------------------------------------------------------
// MAIN PROCEDURE
//-----------------------------------------------------------------------------------------------------------
