var iscss=(document.body && document.body.style)? true : false;
var isw3c=(iscss && document.getElementById)? true : false;
var isie4=(iscss && document.all)? true : false;
var isNN4=(document.layers)? true : false;
var isie6=(document.compatMode && document.compatMode.indexOf("CSS1")>=0)? true : false;

function show(obj){
var temp=getobject(obj);
if(temp)
temp.visibility="visible";
}

function hide(obj){
 var temp = getobject(obj);
    if (temp) {
        temp.visibility = "hidden";
    }
}

function shiftTo(obj,x,y){
var temp=getobject(obj);
if(temp){
   if(iscss){
            var units=(typeof temp.left == "srtring") ? "px" : 0;
            temp.left=x+units;
            temp.top=y+units;
          }
       else{ if(isNN4) temp.moveto(x,y);}
   }
}



function getElementPosition(el){
var offsetLeft=0;
var offsetTop=0;
while(el){
offsetLeft+= el.offsetLeft;
offsetTop+= el.offsetTop;
el = el.offsetParent;
};
if(navigator.userAgent.indexOf("Mac") !=-1 && typeof document.body.leftMargin!= "undefined"){
  offsetLeft+=document.body.leftMargin;
  offsetTop+=document.body.topMargin;
}
return {left:offsetLeft,top:offsetTop};
}

function show_cal(evt){
evt=(evt) ? evt : event;
if(evt){
   if(document.getElementById("calendar").style.visibility!="visible"){
      var elem=(evt.target) ? evt.target :  evt.srcElement;
      var position= getElementPosition(elem);
      shiftTo("calendar",position.left+elem.offsetWidth,position.top-20);
      show("calendar");
     }
   else { hide("calendar");}
  }
}
function getobject(obj){
 var temp=getraw(obj);
  if(temp && iscss)temp=temp.style;
return temp;
  }

function getraw(obj){
var temp;
if(typeof obj == "string"){
    if(isw3c) return document.getElementById(obj);
        if(isie4) return document.all(obj);
    if(isnn4) return seeklay(document.obj);//fruebgerubgru
        }
 else return obj;
}



function cal_table(form){
var today= new Date();
var m=form.mont.selectedIndex;
var y=form.year.selectedIndex+today.getFullYear();
var firstDay=getFirstDay(y,m);
var mont_len=mont_day(y,m);
var day_count=1;
var TBody=document.getElementById("tablebody");
while(TBody.rows.length>0) TBody.deleteRow(0);
var r,c,date_num;
var done=false;
while (!done) {
        r = TBody.insertRow(TBody.rows.length);
        if (r) {
            c=r.insertCell(r.cells.length);
            for (var i = 0; i < 7; i++) {
                c = r.insertCell(r.cells.length);
                if (TBody.rows.length == 1 && i < firstDay) {
                    c.innerHTML = "&nbsp;";
                    c.id = "calendartd";
                    continue;
                }
                if (day_count == mont_len) {
                    done = true;
                }
                if (day_count <= mont_len) {
                    if (today.getFullYear() == y && today.getMonth() == m && today.getDate() == day_count) {
                           c.id = "today";
                    }else {
                           c.id = "calendartd";
                    }
                    c.innerHTML = "<a href='#'onclick='set_forms("+day_count +","+(m+1)+","+y +"); return false;'>" + day_count + "</a>";
                     day_count++;
               } else {
                    c.innerHTML = "&nbsp;";
                    c.id = "calendartd";
                }
            }
        } else {
            done = true;
        }
    }
}

function getFirstDay(y,m){
var f_day= new Date(y,m,1);
return f_day.getDay();
}

function mont_day(y,m){
var nextm=new Date(y,m+1,1);
nextm.setHours(nextm.getHours()-3);
return nextm.getDate();
}

function fill_yeard(){
var today= new Date();
var y=today.getFullYear();
var cur=document.datecal.year;
for(i=y;i<y+10;i++) cur.options[cur.options.length]= new Option(i,i);
 document.datecal.mont.selectedIndex=today.getMonth();
 document.datecal.year.selectedIndex=0;
}

var main_forms;

function set_forms(date, mont, year) {
eval('document.'+main_forms+'.Date.value = "'+mont+' / '+date+' / '+year+'";');
hide("calendar");
}
