//Global Variables
var day;
var mth;
var yrs;
var g_month = 0;
var g_day = 0;
var g_year = 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 "Jänner";
		case 1 : return "Feber";
		case 2 : return "März";
		case 3 : return "April";
		case 4 : return "Mai";
		case 5 : return "Juni";
		case 6 : return "Juli";
		case 7 : return "August";
		case 8 : return "September";
		case 9 : return "Oktober";
		case 10 : return "November";
		case 11 : return "Dezember";
		default : return "Jänner";
	}
}

//-----------------------------------------------------------------------------------------------------------
function cbfloadmefirst(formname, objname)
{
	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
	{
		GetInputDate(tempDate,"ddmmyy");
		day = g_day;
		mth = g_month;
		yrs = g_year;
		//day = tempDate.slice(0,tempDate.search("/"));
		//mth = tempDate.slice(tempDate.search("/")+1);
		//mth = mth.slice(0,mth.search("/"));
		//tempDate = tempDate.slice(3);
		//yrs = tempDate.substr(tempDate.search("/")+1,4);
	}
	
	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;
	
	cbfdrawcalendar(day,mth,yrs);
}

//-----------------------------------------------------------------------------------------------------------
function cbfshowcalendar(formname, objname, imgname)
{
	//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.all." + imgname))-133;
	var y=findPosY(eval("document.all." + imgname));
	var max_x = window.screen.width;
	var max_y = window.screen.height-100;
	
	cbfloadmefirst(formname, objname);
	if ((max_y-y<200) && (max_x-x<167))
	{
	document.all.CalFrame.style.top=y-200;
	document.all.CalFrame.style.left=x-167+eval("document.all." + imgname + ".offsetWidth");
	}
	else if (max_y-y<200) 
	{
	document.all.CalFrame.style.top=y-200;
	document.all.CalFrame.style.left=x;
	}
	else if (max_x-x<167)
	{
	document.all.CalFrame.style.top=y+eval("document.all." + imgname + ".offsetHeight");
	document.all.CalFrame.style.left=x-167+eval("document.all." + imgname + ".offsetWidth");
	}
	else
	{
	document.all.CalFrame.style.top=y+eval("document.all." + imgname + ".offsetHeight");
	document.all.CalFrame.style.left=x;
	}

	document.all.CalFrame.style.display="block";
}

//-----------------------------------------------------------------------------------------------------------
function cbfselectdate(objid)
{
	var tmpobj;
	var d=eval("document.all." + objid + ".value");
	var m=self.document.frames.CalFrame.document.fx.txtmth.value;
	var y=self.document.frames.CalFrame.document.fx.txtyrs.value;
	var objname=self.document.frames.CalFrame.document.fx.txtobj.value;
	var frmname=self.document.frames.CalFrame.document.fx.txtfrm.value;
	
	if (d!="")
	{
	cbfdrawcalendar(d,m,y);
	self.document.frames.CalFrame.document.fx.txtday.value=d;
	
	tmpobj=eval("self.document." + frmname + "." + objname);
	newdate=d+"."+m+"."+y;
	tmpobj.value=newdate;
	
	self.document.all.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 if (action=="today")
	{	
		tempDate = new Date();
		d = tempDate.getDate();
		m = tempDate.getMonth()+1;
		y = tempDate.getFullYear();
	}
	else
	{	return false;	}
	self.document.frames.CalFrame.document.fx.txtday.value=d;
	self.document.frames.CalFrame.document.fx.txtmth.value=m;
	self.document.frames.CalFrame.document.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());
	
	if (!document.frames.CalFrame)
	{
		self.document.frames.CalFrame.document.fx.txtmthyrs.value=mthname + " " + datenow.getFullYear();
		cbfclearcalendar();
		for (var x=1 ; x<=maxdays ; x++)
		{
			eval("self.document.frames.CalFrame.document.all.d" + dayname + ".value=" + x);
			if (dayname==1 ||dayname==8 ||dayname==15 ||dayname==22 ||dayname==29 ||dayname==36) {
				eval("self.document.frames.CalFrame.document.all.d" + dayname + ".style.backgroundColor='#FFF0F0'");}
			if ((dd==x) && (mm==self.document.frames.CalFrame.document.fx.txtcurmth.value) && (yy==self.document.frames.CalFrame.document.fx.txtcuryrs.value))
			{eval("self.document.frames.CalFrame.document.all.d" + dayname + ".style.backgroundColor='pink'");}
			dayname++;
		}
	}
	else
	{
		document.frames.CalFrame.document.fx.txtmthyrs.value=mthname + " " + datenow.getFullYear();
		cbfclearcalendar();
		for (var x=1 ; x<=maxdays ; x++)
		{
			eval("document.frames.CalFrame.document.all.d" + dayname + ".value=" + x);
			if (dayname==1 ||dayname==8 ||dayname==15 ||dayname==22 ||dayname==29 ||dayname==36) {
				eval("document.frames.CalFrame.document.all.d" + dayname + ".style.backgroundColor='#FFF0F0'");}
			if ((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='pink'");}
			dayname++;
		}
	}
}

//-----------------------------------------------------------------------------------------------------------
function cbfclearcalendar()
{
	for (var x=1 ; x<=42 ; x++)
	{	
		if (!document.frames.CalFrame)
		{
		eval("self.document.frames.CalFrame.document.all.d" + x + ".value=''");	
		if (x==1 ||x==8 ||x==15 ||x==22 ||x==29 ||x==36) {
			eval("document.frames.CalFrame.document.all.d" + x + ".style.backgroundColor='#FFF0F0'");}
		else {
			eval("document.frames.CalFrame.document.all.d" + x + ".style.backgroundColor='white'");}
		}
		else
		{
		eval("document.frames.CalFrame.document.all.d" + x + ".value=''");	
		if (x==1 ||x==8 ||x==15 ||x==22 ||x==29 ||x==36) {
			eval("document.frames.CalFrame.document.all.d" + x + ".style.backgroundColor='#FFF0F0'");}
		else {
			eval("document.frames.CalFrame.document.all.d" + x + ".style.backgroundColor='white'");}
		}
	}
}

//-----------------------------------------------------------------------------------------------------------
function GetInputDate(t,f)
{
	var l = t.length;
	if(0 == l) return false;
	var cSp = '\0';
	var sSp1 = "";
	var sSp2 = "";
	for(var i = 0; i < t.length; i++){
		var c = t.charAt(i);
		if(c == ' ' || isdigit(c)) continue;
		else if(cSp == '\0' && (c == '/' || c == '-' || c == '.')){
			cSp = c;
			sSp1 = t.substring(i+1,l);
		}
		else if(c == cSp) sSp2 = t.substring(i+1,l);
		else if(c != cSp) return false;
	}
	if(0 == sSp1.length) return false;
	var m;
	var d;
	var y; 
	if(f=="mmddyy"){
		m = atoi(t);
		d = atoi(sSp1);
		if(0 != sSp2.length) y = atoi(sSp2);
		else y = DefYr(m,d);
	}
	else if(f=="ddmmyy"){
		m = atoi(sSp1);
		d = atoi(t);
		if(0 != sSp2.length) y = atoi(sSp2);
		else y = DefYr(m,d);
	}
	else{
		if(0 == sSp2.length) return false;
		m = atoi(sSp1);
		d = atoi(sSp2);
		y = atoi(t);
	}
	g_month = m;
	g_day = d;
	g_year = y;
	return true;
}

function isdigit(c) {return(c >= '0' && c <= '9');}

function atoi(s){
	var t = 0;
	for(var i = 0; i < s.length; i++){
		var c = s.charAt(i);
		if(!isdigit(c)) return t;
		else t = t*10 + (c-'0');
	}
	return t;
}
 
function DefYr(m,d){
  var dt = new Date();
  var yCur = (dt.getYear() < 1000) ? 1900+dt.getYear() : dt.getYear();
  if(m-1 < dt.getMonth() || (m-1 == dt.getMonth() && d < dt.getDate())) return 1+yCur;
  else return yCur;
}

/*----------------------------*/
/*		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("Kein Kontextmenü"); disable_keycode();}
}

//-----------------------------------------------------------------------------------------------------------
/*----------------------------*/
/*		NO RIGHT CLICK		  */
/*----------------------------*/
function norightclick()
{
	if (window.event){
	if (event.button!=1)
	{	
		alert("Rechte Maustaste nicht aktiviert");
		event.cancelBubble=true;
		event.returnValue=false;
		return false;
	}}
}

//-----------------------------------------------------------------------------------------------------------
// MAIN PROCEDURE
//-----------------------------------------------------------------------------------------------------------

