document.write('<link rel="stylesheet" type="text/css" href="/common/css/calendar.css">');


CALENDAR_MODE_NORMAL=0;
CALENDAR_MODE_READONLY=1;

var Gico_calendar=new Image();
Gico_calendar.src="/common/images/layout/ico/calendar.png";
var Gico_clear=new Image();
Gico_clear.src="images/layout/crumbs/icon-clear.gif";


function Calendar(name,inpDay,inpMonth,readonly,el,im,mn,dn,cl,kl){
    this.name=name;
    this.inpDay=document.getElementById(inpDay);
    this.inpMonth=document.getElementById(inpMonth);
    this.el=el;
    this.monthNames=typeof(mn)=="undefined"?new Array('January','February','March','April','May','Jun','July','August','September','October','November','December'):mn;
    this.dayNames=typeof(dn)=='undefined'?new Array('Mon','Tue','Wed','Thu','Fri','Sat','Sun'):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.inpMonth.parentNode.appendChild(calIco);

    if(readonly==CALENDAR_MODE_READONLY){
        this.inpDay.readOnly=true;
        this.inpMonth.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.inpMonth.style.width=getElementWidth(this.inpMonth)-this.iconsWidth-this.iconsMargin+"px";

    var calContainer=document.createElement("div");
    calContainer.className="calendarcontainer";
    calContainer.style.display="none";

    calContainer.id="calendarcontainer"+this.name;
    this.el.insertBefore(calContainer,this.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.inpDay.value!="" && dateRE.test(this.inpDay.value)){
            var matches=dateRE.exec(this.inpDay.value);
            var month=matches[2]-1;
            var year=matches[3];
        } else {
            if(!browser.isIE){
                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=am;
  this.year=ay;

    var maxDate=new Date(ay, am +11, 1), my=maxDate.getYear(), mm=maxDate.getMonth();
    if(!browser.isIE) my = my + 1900;
    if((year == ay && month >= am) || (year == ay +1 && month < mm)) {
        this.month=month;
        this.year=year;
    } else if(year == ay +1) {
        this.month=mm;
        this.year=my;
    }

    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(this.year,this.month,1).getDay();
    if(firstDay==0)firstDay = 7;
    var lastDay=new Date(this.year,this.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 tw=(this.year==ay && this.month==am), tod=(i==ad && tw);
        calStr+='<td '+(tod?'class="actual"':'') + (tw && i<ad ? 'class="emptycalendarcell">&nbsp;' : ' 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){
    //if(pMonth<10)pMonth="0"+pMonth;
    //  if(pDay<10)pDay="0"+pDay;
    var month_year=(parseInt(this.month)+1) +'_'+ this.year;
    monthDays(this.inpDay.id, month_year); 
    this.inpDay.value=day;
    this.inpMonth.value=month_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";
//    alert(cal.container.style.left +' - '+ cal.container.style.top);
}

Calendar.prototype.clearDate=function(){
    var cal=eval(this.calendar);
    cal.inpDay.value="";
    var cal=eval(this.calendar);
    cal.inpMonth.value="";
}

Calendar.prototype.toString=function(){
    return "Calendar\n\n(c) 2004 Maňas"
}

/*
CMN.createModule("calendar",[],function(){
  
  var container=CMN.gE(CMN.cE({tag:"div",className:"calendar",text:"ja jsem kalendar"}));
  
  
  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>";

  
  
  
  
  window.document.body.appendChild(container);
  
  
  
  
  
  this.show=function(){
    container.setDB();
  };
  
  
  
});*/
