
document.write('<link rel="stylesheet" type="text/css" href="css/calendar.css">');


CALENDAR_MODE_NORMAL=0;
CALENDAR_MODE_READONLY=1;

var Gico_calendar=new Image();
Gico_calendar.src="/common/images/layout/crumbs/icon-calendar.gif";
var Gico_clear=new Image();
Gico_clear.src="/common/images/layout/crumbs/icon-clear.gif";


function Calendar(name,inp,readonly,el,im,mn,dn,cl,kl){

  this.name=name;
  this.inp=document.getElementById(inp);
  this.el=el;
  this.monthNames=typeof(mn)=="undefined"?new Array("leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"):mn;
  this.dayNames=typeof(dn)=="undefined"?new Array("Po","Út","St","Čt","Pá","So","Ne"):dn;


  this.offsX=10;
  this.offsY=5;
  this.iconsMargin=typeof(im)=="undefined"?0:im;



  this.month=0;
  this.year=0;

  var calIco=document.createElement("img");
  calIco.src=Gico_calendar.src;
  calIco.className="calendaricon";
  calIco.calendar=this.name;
  calIco.onclick=this.displayMe;
  calIco.alt=typeof(cl)=="undefined"?"kalendář":cl;
  calIco.title=typeof(cl)=="undefined"?"kalendář":cl;



  this.iconsWidth=calIco.width;
  this.inp.parentNode.appendChild(calIco);

  if(readonly==CALENDAR_MODE_READONLY){
    this.inp.readOnly=true;

    var clrIco=document.createElement("img");
    clrIco.src=Gico_clear.src;
    clrIco.className="clearcalendaricon";
    clrIco.calendar=this.name;
    clrIco.onclick=this.clearDate;
    clrIco.alt=typeof(kl)=="undefined"?"vyčistit":kl;
    clrIco.title=typeof(kl)=="undefined"?"vyčistit":kl;

    this.inp.parentNode.appendChild(clrIco);
    this.iconsWidth+=clrIco.width;
  }




  this.inp.style.width=getElementWidth(this.inp)-this.iconsWidth-this.iconsMargin+"px";

  var calContainer=document.createElement("div");



  calContainer.className="calendarcontainer";
calContainer.style.display="none";


  calContainer.id="calendarcontainer"+this.name;

  el.insertBefore(calContainer,el.firstChild);


  this.container=document.getElementById("calendarcontainer"+this.name);



  this.draw();




}






Calendar.prototype.draw=function(y,m){
  var dateRE=new RegExp("^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{4})$");


      var aDate=new Date();
var ad=aDate.getDate();

      if(!browser.isIE){
        var ay=aDate.getYear()+1900;
        var am=aDate.getMonth();
      }else{
        var ay=aDate.getYear();
        var am=aDate.getMonth();
      }




  if(typeof(m)=="undefined" || typeof(y)=="undefined"){
    if(this.inp.value!="" && dateRE.test(this.inp.value)){

      var matches=dateRE.exec(this.inp.value);
      var month=matches[2]-1;
      var year=matches[3];

    }else{

//jirka      if(!browser.isIE){
//        var year=aDate.getYear();///+1900;
//        var month=aDate.getMonth();
//      }else{
//        var year=aDate.getYear();
//        var month=aDate.getMonth();
//      }

      if(browser.isMozilla){
        var year=aDate.getYear()+1900;
        var month=aDate.getMonth();
      }else{
        var year=aDate.getYear();
        var month=aDate.getMonth();
      }

    }
  }else{
    var year=y;
    var month=m;
    if(month==-1){
      month=11;
      year--;
    }
    if(month==12){
      month=0;
      year++;
    }
  }



  this.month=month;
  this.year=year;

  var calStr="";

  calStr+='<span class="calendarbar">';
  calStr+='<span onmouseover="this.className=\'calendarbarbuttonover\'" onmouseout="this.className=\'calendarbarbutton\'" class="calendarbarbutton" onclick="'+this.name+'.draw('+(this.year-1)+','+this.month+')">&laquo;</span><span class="calendaryear">'+this.year+'</span><span class="calendarbarbutton" onmouseover="this.className=\'calendarbarbuttonover\'" onmouseout="this.className=\'calendarbarbutton\'"  onclick="'+this.name+'.draw('+(parseInt(this.year)+1)+','+this.month+')">&raquo;</span>';
  calStr+='<span onmouseover="this.className=\'calendarbarbuttonover rightcalendarbarbutton\'" onmouseout="this.className=\'calendarbarbutton rightcalendarbarbutton\'"  class="calendarbarbutton rightcalendarbarbutton" onclick="'+this.name+'.draw('+this.year+','+(this.month-1)+')">&laquo;</span><span class="calendarmonth">'+this.monthNames[this.month]+'</span><span class="calendarbarbutton" onmouseover="this.className=\'calendarbarbuttonover\'" onmouseout="this.className=\'calendarbarbutton\'"  onclick="'+this.name+'.draw('+this.year+','+(parseInt(this.month)+1)+')">&raquo;</span>';
  calStr+="</span>";

	 calStr+="<table><tr>";

	 for(var i=0;i<this.dayNames.length;i++){
  		calStr+="<th>"+this.dayNames[i]+"</th>";
 	}
  calStr+="</tr>";

  var firstDay=new Date(year,month,1).getDay();
  if(firstDay==0)firstDay = 7;
  var lastDay=new Date(year,month+1,0).getDate();


 	var dayInWeek=0;
 	for(var i=1;i<firstDay;i++){
  		calStr+='<td class="emptycalendarcell">&nbsp;</td>';
  		dayInWeek++;
	 }

  for(var i=1;i<=lastDay;i++){
  		if(dayInWeek==7){
			   calStr+="</tr><tr>";
   			dayInWeek=0;
		  }
		  dayInWeek++;

var tod=(i==ad && year==ay && month==am);

		  calStr+='<td '+(tod?'class="actual"':'')+' onmouseover="this.className=\'calendarcellover\'" onmouseout="this.className=\''+(tod?'actual':'')+'\'" onclick="'+this.name+'.putDate('+i+')">'+i+'</td>';
	 }

  for(var i=dayInWeek;i<7;i++)calStr+='<td class="emptycalendarcell">&nbsp;</td>';

  calStr+="</tr></table>";
 	this.container.innerHTML=calStr;
}





Calendar.prototype.putDate=function(day){
  var pMonth=parseInt(this.month)+1;
  var pDay=day;
if(pMonth<10)pMonth="0"+pMonth;
  if(pDay<10)pDay="0"+pDay;
//  this.inp.value=this.year+"-"+pMonth+"-"+pDay;
  this.inp.value=pDay+". "+pMonth+". "+this.year;
  this.container.style.display="none";
}




Calendar.prototype.displayMe=function(){
  var cal=eval(this.calendar);
  swapDisplay(cal.container);

/*  cal.container.style.position="absolute";
                               cal.container.style.zIndex="101";
                               cal.container.style.width="167px";

*/  cal.container.style.left=parseInt(findPosX(this)-findPosX(cal.el)+cal.iconsWidth+cal.offsX)+"px";
  cal.container.style.top=parseInt(findPosY(this)+cal.offsY)+"px";
}


Calendar.prototype.clearDate=function(){
  var cal=eval(this.calendar);
  cal.inp.value="";
}


Calendar.prototype.toString=function(){
  return "Calendar\n\n(c) 2004 Maňas"
}




