var dd = 1;
var  aYear = 0;
var  aMonth = 0;
var  dd = 1;
var  aDay = dd;
var loaded = false;

function isLeapYear(year){
    return ((year%4 == 0) && ((year%100 > 0) || (year%400 == 0)));
}
function whereFirstDay(){
    calDate = new Date(aYear, aMonth, 1);
    firstDay = calDate.getDay();
    if (firstDay > 0)
        firstDay--;
    else
        firstDay = 6;
    return firstDay;
}

function doSel(idx, isscroll){
  tpx = getAbsoluteTop(idx)+20;
  lfx = getAbsoluteLeft(idx);
  getobj('divcal').style.left = lfx;
  getobj('divcal').style.top = tpx;
  getobj('divcal').style.visibility = (getobj('divcal').style.visibility=='visible')?'hidden':'visible';
  if (isscroll){
	  window.scrollBy(0, 120);
  }
//  getobj('ady<?=$xd?>').focus();
}

function doDel(){
   getobj('divcal').style.visibility = 'hidden';
}


function selectDay(n){
    dq = days[aMonth];
    if (isLeapYear(aYear) && (aMonth == 1))
        dq ++;

    if ((n >= whereFirstDay())&&(n < whereFirstDay() + dq))
    {
        for (k = 0; k < 42; k++)
            getobj('oDay'+k).className = "caltd"+((k+1)%7==0?'s':'');
        getobj('oDay'+n).className = "sel";

        dd = n - whereFirstDay() + 1;
		if ((isValidDate((dd),(aMonth+1), aYear, today,firstday))&&(loaded)){
			doSubmit(dd);
		}	
    }
}

function isValidDate(d,m,y,td,fd){
	sday = y*10000+m*100+d;
	return (parseInt(td,10)>=sday)&&(parseInt(fd,10)<=sday);
}

function updateDays(){
	aNM = (aMonth==11?0:aMonth+1);
	aNMY = (aMonth==11?aYear+1:aYear);
	aPM = (aMonth==0?11:aMonth-1);
	aPMY = (aMonth==0?aYear-1:aYear);
	aPY = aYear-1;
	aNY = aYear+1;
	getobj('apy').href = 'javascript:updateMonth('+aMonth+','+aPY+')';
	getobj('apm').href = 'javascript:updateMonth('+aPM+','+aPMY+')';
	getobj('anm').href = 'javascript:updateMonth('+aNM+','+aNMY+')';
	getobj('any').href = 'javascript:updateMonth('+aMonth+','+aNY+')';
	getobj('avw').innerHTML = mon[aMonth]+' '+aYear;
    dq = days[aMonth];
    if (isLeapYear(aYear) && (aMonth == 1))
        dq ++;
    for (i = 0; i < 42; i++){
        	getobj('oDay'+i).innerHTML = "";
    }
    for (i = 0; i < dq; i++){
		as = '';
		as += "<a class=cldate";
		if (isValidDate((i+1),(aMonth+1), aYear, today,firstday)){
			as += "s id='ady"+(i+1)+"' href='javascript:doSubmit("+(i+1)+")'";
		}
		as += ">"+(i+1)+"</a>";
        getobj('oDay'+(whereFirstDay()+i)).innerHTML = as;
    }
    if (dd > dq)
        dd = dq;
    selectDay(whereFirstDay()+dd-1);
}

function inc(){
    if (aYear < 2099){
        aYear++;
        updateDays();
    }
}
function dec(){
    if (aYear > 1980){
        aYear--;
        updateDays();
    }
}
function udBtnMouseDown(fn){
    oTimeout = setTimeout(fn, 500);
}
function udBtnMouseUp(){
    if (oTimeout != null){
        clearTimeout(oTimeout);
        oTimeout = null;
    }
}
function increase(){
    inc();
    oTimeout = setTimeout("increase()", 80);
}
function decrease(){
    dec();
    oTimeout = setTimeout("decrease()", 80);
}
function buddyKeyDown(){
    if (event.keyCode == 40 || event.keyCode == 38){
        event.returnValue=false;
        if (event.keyCode == 40)
            dec();
        if (event.keyCode == 38)
            inc();
    }
}
function doSubmit(d){
	aDay = d;
	aM = aMonth+1;
	location.href='index.php?date='+aYear+(aM<10?('0'+aM):aM)+(aDay<10?('0'+aDay):aDay);
}

function updateMonth(m,y){
	aMonth = m;
	aYear = y;
	loaded=false;
	updateDays();
	loaded=true;
}

function onLd(y,m,d){

	
    s = "<table border=0 cellpadding=0 cellspacing=1 class=caltable width=175><tr><td><table border=0 cellpadding=3 class=caltable cellspacing=0 width=100%>";
    s = s + "<tr>";
	s = s + "<td><a href='' id='apy'><img style='vertical-align:middle' border=0 src='images/prev_year.gif' alt=''></a></td>";
	s = s + "<td><a href='' id='apm'><img style='vertical-align:middle' border=0 src='images/prev.gif' alt=''></a></td>";
	s = s + "<td id=avw width=100% align=center nowrap></td>";
	s = s + "<td><a href='' id='anm'><img style='vertical-align:middle' border=0 src='images/next.gif' alt=''></a></td>";
	s = s + "<td><a href='' id='any'><img style='vertical-align:middle' border=0 src='images/next_year.gif' alt=''></a></td>";
    s = s + "</tr>";
	
    s = s + "</table></td></tr><tr><td>";
    s = s + "<table border=0 cellpadding=1 cellspacing=0 class=caltable width=100%>";
    s = s + "<tr>";
    for (i = 0; i < 7; i++){
        s = s + "<td width=20 id=oWDay class=calwtd";
	if (i==6){
	s = s + "s";
	}
	s = s + ">"+weekdays[i] + "</td>";
    }
    s = s + "</tr>\n";
    for (j = 0; j < 6; j++){
        s = s + "<tr>";
        for (i = 0; i < 7; i++){
            k = j*7 + i;
            s = s + "<td class=caltd";
	    if (i==6){	
            	s = s + "s";
	    }	
	    s = s + " width=20 id=oDay"+k+" onclick='selectDay(" + k + ")'></td>\n";
        }
    	s = s + "</tr>\n";
    }
    s = s + "</table></td></tr>";
	s = s + "</table>";
	
    getobj('divcal').innerHTML = s;
	
  aYear = y;
  aMonth = m;
  aDay = d;
  dd = aDay;
  updateDays();
  loaded = true;	
}
