/* --- Swazz Javascript Calendar ---
/* --- v 1.0 3rd November 2006
By Oliver Bryant
http://calendar.swazz.org */

function getObj(objID)
{
    if (document.getElementById) {return document.getElementById(objID);}
    else if (document.all) {return document.all[objID];}
    else if (document.layers) {return document.layers[objID];}
}

function trim_date(n){
  if(n<10){
    return '0'+n;
  }
  return n;
}

function r_date(date){
  var d=date.split('-');
  return d[2] + '-' + d[1] + '-' + d[0];
}

function checkClick(e) {
	e?evt=e:evt=event;
	CSE=evt.target?evt.target:evt.srcElement;
	if (getObj('fc'))
		if (!isChild(CSE,getObj('fc')))
			getObj('fc').style.display='none';
}

function isChild(s,d) {
	while(s) {
		if (s==d) 
			return true;
		s=s.parentNode;
	}
	return false;
}

function findPosX(obj) {
    var curleft = 0;
    if (obj.offsetParent) {
        while (1) {
            curleft+=obj.offsetLeft;
            if (!obj.offsetParent) {
                break;
            }
            obj=obj.offsetParent;
        }
    } else if (obj.x) {
        curleft+=obj.x;
    }
    return curleft;
}
function findPosY(obj) {
    var curtop = 0;
    if (obj.offsetParent) {
        while (1) {
            curtop+=obj.offsetTop;
            if (!obj.offsetParent) {
                break;
            }
            obj=obj.offsetParent;
        }
    } else if (obj.y) {
        curtop+=obj.y;
    }
    return curtop;
}
	
document.write('<table id="fc" cellspacing="0">');
document.write('<tr><td class="prev_month" onclick="csubm()">&nbsp;</td><td colspan=5 id="mns" class="month_name"></td><td class="next_month" onclick="caddm()"></td></tr>');
document.write('<tr class="days"><td>Po</td><td>Út</td><td>St</td><td>Čt</td><td>Pá</td><td>So</td><td>Ne</td></tr>');
for(var row=1;row<=6;row++) {
	document.write('<tr>');
	for(var col=1;col<=7;col++) {
		num= 7 * (row-1) - (-col);
		document.write('<td id="v' + num + '">&nbsp;</td>');
	}
	document.write('</tr>');
}
document.write('</table>');

document.all?document.attachEvent('onclick',checkClick):document.addEventListener('click',checkClick,false);


// Calendar script
var now = new Date;
var staticCurentDay=now.getDate();
var staticCurentMonth=now.getMonth();
var staticCurentYear=now.getFullYear();
var curentMonth=now.getMonth();
var curentYear=now.getFullYear();

var updobj;
function lcs(ielem) {
	updobj=ielem;
	getObj('fc').style.left=findPosX(ielem)+'px';
	getObj('fc').style.top=(findPosY(ielem)+ielem.offsetHeight+2)+'px';
	getObj('fc').style.display='block';
	
	// First check date is valid
	inputValue=r_date(ielem.value);

	inputValueArray=inputValue.split('-');
	isdt=true;
	for(var k=0;k<inputValueArray.length;k++) {
		if (isNaN(inputValueArray[k]))
			isdt=false;
	}
	if (isdt&(inputValueArray.length==3)) {
		curentMonth=inputValueArray[1]-1;
		curentYear=inputValueArray[0];
		prepcalendar(inputValueArray[2],inputValueArray[1]-1,inputValueArray[0]);  // Y,m,d
	}
	
}

function evtTgt(e)
{
	var el;
	if(e.target)el=e.target;
	else if(e.srcElement)el=e.srcElement;
	if(el.nodeType==3)el=el.parentNode; // defeat Safari bug
	return el;
}
function EvtObj(e){if(!e)e=window.event;return e;}
function cs_over(e) {
	evtTgt(EvtObj(e)).className='highlighted';
}
function cs_out(e) {
	evtTgt(EvtObj(e)).className='normal';
}
function cs_click(e) {
	updobj.value=r_date(calvalarr[evtTgt(EvtObj(e)).id.substring(1,evtTgt(EvtObj(e)).id.length)]);
	getObj('fc').style.display='none';
	
}

var mn=new Array('Leden','Únor','Březen','Duben','Květen','Červen','Červenec','Srpen','Září','Říjen','Listopad','Prosinec');
var mnn=new Array('31','28','31','30','31','30','31','31','30','31','30','31');
var mnl=new Array('31','29','31','30','31','30','31','31','30','31','30','31');
var calvalarr=new Array(42);

function f_cps(obj) {
	obj.className='normal';
}

function f_cpps(obj) {
	obj.className='disabled';
}

function f_hds(obj) {
  obj.className='actual';
}
function set_today(obj) {
  //obj.style.border-bottom-width = '2px';
  //obj.style.border-color = '#F00';
}
// day selected


function prepcalendar(day,month,year) {
	getObj('mns').innerHTML=mn[month]+ ' ' + year;  
  pdm=new Date();
  pdm.setDate(1);
	pdm.setFullYear(year);
	pdm.setMonth(month);
  cdt=pdm.getDay();
  sd=pdm.getTime()-cdt*86400000;
  for(var d=1; d <= 42; d++){
    f_cps(getObj('v'+parseInt(d)));
    sd+=86400000;
    ad=new Date(sd);
    getObj('v'+parseInt(d)).innerHTML=ad.getDate();	
    calvalarr[d]=''+ad.getFullYear()+'-'+trim_date(ad.getMonth()+1)+'-'+(ad.getDate());
    if(ad.getMonth()==month){
      if(ad.getDate()==day){
        f_hds(getObj('v'+parseInt(d)));
        getObj('v'+parseInt(d)).onmouseover=null;
		    getObj('v'+parseInt(d)).onmouseout=null;
      }
      else{
        getObj('v'+parseInt(d)).onmouseover=cs_over;
		    getObj('v'+parseInt(d)).onmouseout=cs_out;
      }
		  getObj('v'+parseInt(d)).onclick=cs_click;
    }
    else{
      f_cpps(getObj('v'+parseInt(d)));
      getObj('v'+parseInt(d)).onmouseover=null;
		  getObj('v'+parseInt(d)).onmouseout=null;
      getObj('v'+parseInt(d)).onclick=null;
    }
    if(ad.getDate() == staticCurentDay &&  ad.getMonth() == staticCurentMonth){
      set_today(getObj('v'+parseInt(d)));
    }
  }
}
prepcalendar('',curentMonth,curentYear);
//getObj('fc'+cc).style.visibility='hidden';

function caddm() {
	marr=((curentYear%4)==0)?mnl:mnn;
	
	curentMonth+=1;
	if (curentMonth>=12) {
		curentMonth=0;
		curentYear++;
	}
	cdayf();
	prepcalendar('',curentMonth,curentYear);
}

function csubm() {
	marr=((curentYear%4)==0)?mnl:mnn;
	
	curentMonth-=1;
	if (curentMonth<0) {
		curentMonth=11;
		curentYear--;
	}
	//cdayf();
	prepcalendar('',curentMonth,curentYear);
}

function cdayf() {
if ((curentYear>staticCurentYear)|((curentYear==staticCurentYear)&&(curentMonth>=staticCurentMonth)))
	return;
else {
	curentYear=staticCurentYear;
	curentMonth=staticCurentMonth;
	cfd=scfd;
	}
}