		function getDimension(oElement)
		{
			var iReturnValue = new Array(0,0);
			x='';
			while( oElement != null ) {
			x+=oElement.id+','+oElement.offsetTop+','+oElement.offsetLeft+',';
			iReturnValue[0] += oElement.offsetTop;
			iReturnValue[1] += oElement.offsetLeft;
			oElement = oElement.offsetParent;
			}
			//alert(x);
			return iReturnValue;
		}

// JavaScript Document

function Calendar(textbox,button){


    var tb = document.getElementById(textbox);
 		var bt = document.getElementById(button);
	if (tb && bt)
	{
    var cp = document.createElement("div");
		var btp = document.body;//bt.parentNode;
		var dim=getDimension(bt);
		
    var s = cp.style;
		s.zindex = "150";
		s.position = "absolute";
		s.visibility = "hidden";
    s.top = dim[0]+'px'; 
    	s.left = '0px'; 
    //s.width = '181px';
    //s.width = s.height = "50px";
		document.body.appendChild(cp);
		cp.className='divcalendar';

    var datum=new Date();
    var dat;
    var D,M,Y;
    var Zatvorit=true;
    


    function STOPEVENT(ev){
			if (!ev) ev = window.event;
			//if (is_ie()) {
			if (document.all && document.getElementById){
				ev.cancelBubble = true;
				ev.returnValue = false;
			} else {
				ev.preventDefault();
				ev.stopPropagation();
			}
			return false;
    }
    
    function is_ie(){
    	alert(navigator.appVersion.indexOf("MSIE 5")>-1);
    	alert(document.getElementById);
    	return (navigator.appVersion.indexOf("MSIE 5")>-1 && document.getElementById)?true:false;
    }
    
    function isns4(){
      dom = document.getElementById?1:0;
      return (document.layers && !dom)?1:0;
    }
    
    function DajWeekDay(datum)
    {
      return (datum.getDay()==0)?7:datum.getDay();
    }
    
    function Draw(month,year){
      dnes=Date();
      D=datum.getDate();
      M=(datum.getMonth()+1);
      Y=datum.getFullYear();
      
      tabulka='';//'<table id="calendartable" border="0" cellpadding="0" cellspacing="1"><tbody>';
      tabulka+='<button id="o_0_0_0" class="caltitulok blank">_</button><button id="n_0_0_0" class="caltitulok nadpis">'+preklady[month]+' '+year+'</button><button id="x_0_0_0" class="caltitulok zatvor">x</button><br/>';
      tabulka+='<button type="reset" id="b_0_'+month+'_'+(year-1)+'" class="caltitulok">&lt;&lt;</button><button id="b_0_'+(month-1)+'_'+(year)+'" class="caltitulok">&lt;</button><button id="b_0_0_0" class="caltitulok dnes">'+preklady[0]+'</button><button id="b_0_'+(1+(month-0))+'_'+(year)+'" class="caltitulok">&gt;</button><button id="b_0_'+month+'_'+(1+(year-0))+'" class="caltitulok">&gt;&gt;</button><br/>';
      
      pdat=new Date();
      pdat.setDate(1);
      pdat.setMonth(month-1);
      pdat.setFullYear(year);
      point=2-DajWeekDay(pdat);
      
      for (i=1;i<=6;i++)
      {
        //tabulka+='<tr>';
        for (j=1;j<=7;j++)
        {
          pdat.setMonth(month-1);
          pdat.setFullYear(year);
          pdat.setDate(point);
          point++;
          tabulka+='<button id="b_'+ pdat.getDate() +'_'+ (pdat.getMonth()+1) +'_'+ pdat.getFullYear() +'" class="day' + (j<6?'':' weekend') + ((pdat.getMonth()+1)==month?'':' inymesiac') + '">'+ pdat.getDate() +'</button>';
        }
        tabulka+='<br/>';
      }  
      
      //tabulka+='</tbody></table>';
      cp.innerHTML=tabulka;
	    //cp.style.width = '181px';
      
      pole=cp.childNodes;//[0].childNodes[0].childNodes;
      for (y=0;y<pole.length;y++)
      {
        //pole2=pole[y].childNodes;
        //for (y2=0;y2<pole2.length;y2++)
        {
          pole[y].onclick = function() {
            //alert(this.id);
            par=this.id.split('_');
            if (par[0]=='x')
            {
              Zatvorit=true;
            }
            else
	            if (par[0]=='o')
	            {
	              Zatvorit=true;
	              M=99;
	            }
	            else
	              if (par[0]=='n')
	                Zatvorit=false;
	              else
	              {
	                if (par[1]==0)
	                {
	                  if (par[3]==0) //dnes
	                  {
	                    Zatvorit=true;
	                    D=M=Y=0;
	                  }
	                  else
	                  {
	                    Zatvorit=false;
	                    if (par[2]==0){par[2]=12;par[3]--;}
	                    if (par[2]==13){par[2]=1;par[3]++;}
	                    M=par[2];
	                    Y=par[3];
	                  }
	                }
	                else
	                {
	                  Zatvorit=true;
	                  D=par[1];
	                  M=par[2];
	                  Y=par[3];
	                }
	              }
          }
        } 
      }
    }
    
    bt.onclick = function(ev) {
      den=tb.value;
      if (den=='')
        datum=new Date();
      else
      {
        dat=den.split('.');
        datum.setDate(dat[0]);
        datum.setMonth(dat[1]-1);
        datum.setFullYear(dat[2]);
      }
			var dim=getDimension(bt);
	    s.top = dim[0]+'px'; 
	    if (dim[1]+183>document.body.clientWidth)
  	  	s.left=(document.body.clientWidth-183)+'px';
   	 	else
    		s.left = dim[1]+'px'; 
      Draw(datum.getMonth()+1,datum.getFullYear());
      cp.style.visibility = 'visible';
      STOPEVENT(ev);
    }
    
    cp.onclick = function(ev) {
      //tb.value = datum.getDate()+'.'+(datum.getMonth()+1)+'.'+datum.getFullYear();
      if (Zatvorit)
      {
        if ((D==0)&&(M==0)&&(Y==0))
        {
          dnes=new Date();
          D=dnes.getDate();
          M=(dnes.getMonth()+1);
          Y=dnes.getFullYear();
        }
        if (M==99)
        	tb.value='';
        else
        	tb.value = (D<10?'0':'')+D+'.'+(M<10?'0':'')+M+'.'+Y;
        cp.style.visibility = 'hidden';
      }
      else
        Draw(M,Y);
    }
  }
}