//<script>

//useCalOnElement=new Array()

var Selected_Month;
var Selected_Year;
var Default_Day;
var Default_Month;
var Default_Year;
var Current_Date = new Date();
var currentObj
var kalhidetimeout
var Days_in_Month = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var Month_Label = new Array("01","02","03","04","05","06","07","08","09","10","11","12");
var RES_months
var useddate1 = new Array()
var Current_Year = Current_Date.getFullYear();
var Current_Month = Current_Date.getMonth();
var Today = Current_Date.getDay();

window.onload = function() 
	{
	if (typeof useCalOnElement!='object' ) {return}
	for (i=0; i<useCalOnElement.length ; i++) 
		{
		uoe=document.getElementById(useCalOnElement[i])
		if (  uoe  ) 
			{
			if (  uoe.addEventListener  ) 
				{
				uoe.addEventListener ('focus', function () {load_kalendar(uoe,false);}, false);
				uoe.addEventListener ('blur', restartKill, false);
				}
			else
				{alert()
				uoe.attachEvent ('onfocus', function () {load_kalendar(uoe,false);});
				uoe.attachEvent ('onblur', restartKill);
				};
			};
		};
	};

///////////funkce pro zjisteni skutecne polohy objektu v dokumentu zleva
function getRealLeft(el) 
	{
    xPos = el.offsetLeft;
    tempEl = el;
    while (el.offsetParent != null) 
		{
        el = el.offsetParent;
		div=el.offsetLeft;
        xPos += div;
    	}
	return xPos+2;
	
	}

///////////funkce pro zjisteni skutecne polohy objektu v dokumentu shora
function getRealTop(el) 
	{
    yPos = el.offsetTop;
    tempEl = el.offsetParent;
    while (tempEl != null) 
		{
        yPos += tempEl.offsetTop;
        tempEl = tempEl.offsetParent;
    	}
    return yPos;
	}

function actual_date(kalcolorobj,barva)
        {
        kalcolorobj.style.backgroundColor = barva;;
        };

function restartKill()
	{
	clearTimeout(kalhidetimeout);
	kalhidetimeout=setTimeout('killKalendar()',5)
	}

function load_kalendar(kalobj,pak)
	{
	clearTimeout(kalhidetimeout)
	if (  !document.getElementById('Kalendar')  ) 
		{
		iKalendar=document.createElement('IFRAME');
		iKalendar.setAttribute("id", "Kalendar");
		iKalendar.setAttribute("name", "Kalendar");
		iKalendar.setAttribute("scrolling", "no");
		iKalendar.setAttribute("frameborder", "0");
		iKalendar.setAttribute("src", "about:blank");
		
		//iKalendar.className="searchFrame";
		iKs=iKalendar.style
		iKs.margin=0;
		iKs.padding=0;
		iKs.width=(kalobj.offsetWidth+1);
		iKs.height=0;
		iKs.border="none";
		iKs.position="absolute";
		iKs.top=100 ;//+kalobj.clientTop
		iKs.left=100;
		iKs.display="";//none
		iKs.zIndex=10005;
		document.body.appendChild(iKalendar);
		//alert(window.frames.length)
		kalOBJ=window.frames[window.frames.length-1]
		window.status='Loading Calendar'
		while(!kalOBJ.document)
			{
			dump=kalOBJ
			}
		
		calhtml='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'
		+'<html>'
		+'<head>'
		+'<title>KAlendář</title>'
		+'<META http-equiv="Content-Type" content="text/html; charset=windows-1250">'
		+'<style type="text/css">'
		+' TABLE {background-color: #fff; font: normal 10px Verdana, Arial, Helvetica, sans-serif;color: #0066FF;border: 1px #0099FF solid;cursor:default;} '
		+' TH {color: Highlight;} '
		+' BODY {background-color: #fff; margin:0px; padding:0px;border:none;} '
		+' .day {background-color: #FAF0E3; border: 1px solid #7F92CF; cursor: pointer; cursor: hand; text-align:center;} '
		+' .sat {background-color: #fff7e3; border: 1px solid #7F92CF; cursor: pointer; cursor: hand; text-align:center;} '
		+' .sun {background-color: #fbe7d0; border: 1px solid #7F92CF; cursor: pointer; cursor: hand; text-align:center;} '
		+' .Hsu {color: #FF6347;} '
		+' .hdr {color: #000080;  height: 24px; white-space: nowrap;} '
		+' .nocmnt {border: 1px solid #7F92CF; text-align:center; cursor: pointer; cursor: hand; color: #7F92CF;} '
		+' .arrows {color: Highlight; cursor: hand; width: 12%} '
		+' .today {background-color: #FAF0E3; border: 1px solid #0099ff; text-align:center; cursor: pointer; cursor: hand; color: #0066ff; font-weight:bold;} '
		+' .selday {background-color: #FAF0E3; border: 1px solid #f2651f; text-align:center; cursor: pointer; cursor: hand; color: #660000; font-weight:bold;} '
		+'</style>'
		+'</head>'
		+'<body></body>'
		+'</html>'
		+'<!-- Designed by Lukas Hladik lh-soft http://www.lh-soft.cz E-mail: luhla@lh-soft.cz -->'
		
		kalOBJ.document.open();
		kalOBJ.document.write(calhtml);
		kalOBJ.document.close();
		if (  kalOBJ.addEventListener  ) 
			{
			kalOBJ.addEventListener ('focus', function () {clearTimeout(kalhidetimeout);}, false);
			kalOBJ.addEventListener ('blur', restartKill, false);
			}
		else
			{
			iKalendar.attachEvent ('onfocus', function () {clearTimeout(kalhidetimeout);});
			iKalendar.attachEvent ('onblur', restartKill);
			};
		};
	currentObj=kalobj;
	//document.when.pak_proved.value=pak;
	document.getElementById('Kalendar').style.display ="";
	document.getElementById('Kalendar').style.top=(getRealTop(kalobj)+kalobj.offsetHeight-1);
	document.getElementById('Kalendar').style.left=(getRealLeft(kalobj));//+kalobj.clientLeft-1
	
	
	//alert()
	 //Kalendar.focus()
 useddate1=kalobj.value.split(' ')
 useddate=( ( useddate1.length>0 ) ? (useddate1[0].split('.')) : ( new Array() ) )
 Defaults();
 Default_Month=Default_Year=Default_Day=false
 if (  useddate.length==3   )
  {
  if (  !isNaN(useddate[1]) && 0<useddate[1] &&  useddate[1]<13 && !isNaN(useddate[2]) && 1900<useddate[2] && useddate[2]<2100  )
   {
   Default_Month=Selected_Month = Number(useddate[1])-1;
   Default_Year=Selected_Year = Number(useddate[2]);
   if (  !isNaN(useddate[0]) && 0<useddate[0] && useddate[0]<=Days_in_Month[Selected_Month]  ) {Default_Day = Number(useddate[0]);};
   Make_Calendar(Number(useddate[2]),useddate[1]-1);
   return
   };
  };
 xToday = new Date();
 Make_Calendar(xToday.getFullYear(),xToday.getMonth());
 }

function killKalendar()
 {
 document.getElementById('Kalendar').style.display='none'; 
 window.status=''
 }

function nastav_datum(den,mesic,rok)
 {
 mesic=mesic+1;
 currentObj.value=((den < 10) ? "0" : "") + den + "." + ((mesic < 10) ? "0" : "") + mesic + "." + rok + (useddate1[1]?' '+useddate1[1]:'');
 if (currentObj.form['data[130]'].value.length==0) {currentObj.form['data[130]'].value=currentObj.value}
 if (currentObj.form['data[6]'].value.length==0) {currentObj.form['data[6]'].value=currentObj.value}
 //eval(document.when.pak_proved.value);
 }


function Header(Year, Month) {
	if (  RES_months  ) {Month_Label=RES_months;};
   if (Month == 1) {
      if ((Year % 400 == 0) || ((Year % 4 == 0) && (Year % 100 != 0))) {
         Days_in_Month[1] = 29;
      }
   }
   var Header_String = '<span><span id="monthDirector" style="cursor: pointer;cursor: hand;" onClick="parent.monthChoice('+Year+','+Month+',\'month\')">' + Month_Label[Month] + '</span></span>&nbsp;'
    +'<span><span  id="yearDirector" style="cursor: pointer;cursor: hand;"  onClick="parent.monthChoice('+Year+','+Month+',\'year\')"> ' + Year + ' </span></span>';

   return Header_String;
}

function monthChoice(Year,Month,typ)
 {
 clearTimeout(kalhidetimeout)
 var oNewNode = Kalendar.document.createElement("SELECT");
 oNewNode.style.width="50px"//( (typ=='month') ? ('65px') : ('55px') );
 oNewNode.style.fontSize='11px';( (typ=='m') ? ('month') : ('year') )
 
		if (  oNewNode.addEventListener  ) 
			{
			oNewNode.addEventListener ('focus', function () {clearTimeout(kalhidetimeout);}, false);
			oNewNode.addEventListener ('blur',  function(){kalhidetimeout=setTimeout('parent.Make_Calendar('+Year+','+Month+')',150)}, false);
			}
		else
			{
			oNewNode.attachEvent ('onblur', function(){kalhidetimeout=setTimeout('parent.Make_Calendar('+Year+','+Month+')',150);});
			};
	kalSel= Kalendar.document.getElementById(typ+'Director').parentNode
	kalSel.replaceChild(oNewNode, kalSel.firstChild);
 if (typ=='month')
  {
  oNewNode.id='monthDirector'
  Kalendar.document.getElementById('yearDirector').parentNode.innerHTML='<span id="yearDirector" onclick="parent.monthChoice('+Year+','+Month+',\'year\')"> ' + Year + ' </span>';
  oNewNode.onchange=new Function("Make_Calendar("+Year+",this.value);")
  for (i=0; i<Month_Label.length ; i++)
   {
   //oNewNode.options[oNewNode.options.length] = new Option(Month_Label[i],i);
   var option = Kalendar.document.createElement("option");
	  option.text = Month_Label[i];
	  option.innerHTML  = Month_Label[i];
	  option.value = i;
	  oNewNode.appendChild( option );
   };
  oNewNode.options.selectedIndex=Month
  }
 else
  {
  oNewNode.id='yearDirector'
  Kalendar.document.getElementById('monthDirector').parentNode.innerHTML='<span id="monthDirector" onclick="parent.monthChoice('+Year+','+Month+',\'month\')"> ' + Month_Label[Month] + ' </span>';
  oNewNode.onchange=new Function("Make_Calendar(this.value,"+Month+");")
  for (i=Year-5; i<Year+4 ; i++)
   {
   var option = Kalendar.document.createElement("option");
	  option.text = i;
	  option.innerHTML  = i;
	  option.value = i;
	  oNewNode.appendChild( option );
   };
  oNewNode.options.selectedIndex=5
  };

 if (  document.all  ) {oNewNode.focus()};
 //document.getElementById('Kalendar').style.height=Kalendar.document.getElementById('kaldata').offsetHeight
 }

function Make_Calendar(Year, Month) {
   var First_Date = new Date(Year, Month, 1);
   var Heading = Header(Year, Month);
   var First_Day = First_Date.getDay() ;
//   alert(First_Day)
   if (  First_Day==0  ) {First_Day=7};
   if (((Days_in_Month[Month] == 31) && (First_Day >= 6)) ||
       ((Days_in_Month[Month] == 30) && (First_Day == 7))) {
      var Rows = 6;
   }
   else if ((Days_in_Month[Month] == 28) && (First_Day == 1)) {
      var Rows = 4;
   }
   else {
      var Rows = 5;
   }

   var HTML_String = '<div id="kaldata"><form name="fi"><table width=100%  border=0 id=kaldataH >';

   //HTML_String += '<tr><th colspan="7"><table width="100%" border="0" cellspacing="0" cellpadding="0" class="kalendar" align="center">';
   HTML_String += '<tr BGCOLOR="#FFE4B5">';
   HTML_String += '<th onclick="parent.mnSkip(\'-\')">&laquo;</th>';
   HTML_String += '<th class="hdr">' + Heading + '</th>';
   HTML_String += '<th onClick="parent.mnSkip(\'+\')">&raquo;</th>';
  // HTML_String += '<th style="color: Navy; cursor: hand; width: 12%" align=center onClick="parent.killKalendar()">X</th>';
   HTML_String += '</tr>';
   //HTML_String += '</table></th><tr>';
   HTML_String += '</table><table width=100% class="kalendar" border=0><tr>';
   HTML_String += '<th>Po</th>';
   HTML_String += '<th>Ut</th>';
   HTML_String += '<th>St</th>';
   HTML_String += '<th>Čt</th>';
   HTML_String += '<th>Pa</th>';
   HTML_String += '<th>So</th>';
   HTML_String += '<th class="Hsu">Ne</th>';
   HTML_String += '</tr>';

   var Day_Counter = 1;
   var Loop_Counter = 1;
   var Novy_den = 0;
   for (var j = 1; j <= Rows; j++)
	{
	HTML_String += '<tr ALIGN="left" VALIGN="top">';
	
	for (var i = 0; i < 7; i++)
		{
		selDay='day';
		if ((Loop_Counter >= First_Day) && (Day_Counter <= Days_in_Month[Month]))
			{
			if (i==5) {selDay='sat';};
			if (i==6) {selDay='sun';};
			if ((Day_Counter == Today) && (Year == Current_Year) && (Month == Current_Month)) {selDay='today';};
			if ((Day_Counter == Default_Day) && (Year == Default_Year) && (Month == Default_Month)) {selDay='selday';};
			
		
			HTML_String += '<td ID="d'+ Day_Counter+'" title="'+Day_Counter+'.'+(Month+1)+'.'+Year+'"  class="'+selDay+'" onClick="parent.nastav_datum(' + Day_Counter + ',' + Month + ',' + Year + ');parent.killKalendar();" onMouseOver="parent.actual_date(this,\'white\')" onMouseOut="parent.actual_date(this,\'\')" >' + Day_Counter + '</td>';
			Day_Counter++;
			}
		else
			{
			useden=""
			if (  Loop_Counter < First_Day  )
				{
				if (  (Month-1) < 0 )
					{var nov_mes=11; var nov_rok=Year-1;}
				else
					{var  nov_mes=Month-1 ; var nov_rok=Year;};
				use_day = Days_in_Month[(nov_mes)]+(Loop_Counter-First_Day)+1;
				}
			else
				{
				if (  (Month+1) > 11 )
					{var nov_mes=0; var nov_rok=Year+1;}
				else
					{var  nov_mes=Month+1 ; var nov_rok=Year;};
				Novy_den++;
				use_day=Novy_den;
				};
			HTML_String += '<td class="nocmnt" onclick="parent.nastav_datum(' + use_day + ',' + nov_mes + ',' + nov_rok + ');parent.killKalendar();" >'+use_day+'</td>';
			}
		Loop_Counter++;
		}
	HTML_String += '</tr>';
	}
HTML_String += '</table></form></div>';
Kalendar.document.body.innerHTML = HTML_String;
setTimeout("document.getElementById('Kalendar').style.height=Kalendar.document.getElementById('kaldata').offsetHeight",1);
// alert(Kalendar.document.getElementById('kaldata').offsetHeight+"\n"+document.getElementById('Kalendar').style.pixelHeight)
window.status="Calendar in use"
}

function Check_Nums() {
   if ((event.keyCode < 48) || (event.keyCode > 57)) {
      return false;
   }
}

function Defaults() {
   //var Mid_Screen = Math.round(document.body.clientWidth / 2);
   if (  !Selected_Month  ) {Selected_Month = Current_Month;};
   if (  !Selected_Year  ) {Selected_Year = Current_Year;};
   //Make_Calendar(Current_Year, Current_Month);
}

function mnSkip(mnDir) {
   if (mnDir == '+') {
      if (Selected_Month == 11) {
         Selected_Month = 0;
         Selected_Year++;
      }
      else {
         Selected_Month++;
      }
   }
   else {
      if (Selected_Month == 0) {
         Selected_Month = 11;
         Selected_Year--;
      }
      else {
         Selected_Month--;
      }
   }

   Make_Calendar(Selected_Year, Selected_Month);
}



