function testObject(Id, Tag)
{
  var o = document.getElementById(Id);
  if (o)
  {
    if (Tag)
    {
      if (o.tagName.toLowerCase() == Tag.toLowerCase())
      {
        return o;
      }
    }
    else
    {
      return o;
    }
  }
  return null;
}
function docal(m,y) {
   var o=testObject("cal");
   if (o){
   var strURL="widget/getcal.php";
    var q = "monthid=" + curmonth + "&yearid=" + curyear;
    var out;
    var xmlHttpReq = false;
    if (window.XMLHttpRequest) {
        xmlHttpReq = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
        xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlHttpReq.open("GET", strURL+"?"+q, true);
    xmlHttpReq.onreadystatechange = function() {
        if (xmlHttpReq.readyState == 4) {
          
             out=xmlHttpReq.responseText; 
             document.getElementById("cal").innerHTML=buildCal(m ,y, "main", "month", "daysofweek", "days", 1,out);
             return;
        }
    }
    xmlHttpReq.send(q);
   }
}
function cover(z){
    document.getElementById("pos"+z).style.cursor='pointer';
    //document.getElementById("pos"+z).style.color='#000000';
    //document.getElementById("pos"+z).style.background='#ebebeb';
}
function cout(z){
    //document.getElementById("pos"+z).style.background='#33cc66';
    //if (z>=50)
     //document.getElementById("pos"+z).style.color='#ffffff';
}
function procal(z) {
    var w=z;
    var strURL="widget/procal.php";
    var xm="0"+curmonth;
    var xm=xm.substr(xm.length-2,2);
    var z="0"+z;
    var z=z.substr(z.length-2,2);
    var q = "d=" + curyear+""+xm+""+z;
    var xmlHttpReq = false;
    if (window.XMLHttpRequest) {
        xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    
    else if (window.ActiveXObject) {
        xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlHttpReq.open("GET", strURL+"?"+q, true);
    xmlHttpReq.send(q);
    xmlHttpReq.onreadystatechange = function() {
        if (xmlHttpReq.readyState == 4) {
           try{	
	     var out;
             out=xmlHttpReq.responseText; 
             var oleft=document.getElementById("pcal"+w).offsetLeft;
             var otop=document.getElementById("pcal"+w).offsetTop;
             document.getElementById("e_menu").style.left=oleft-221;
             document.getElementById("e_menu").style.top=otop+19;
             e_menu.style.display='';
             document.getElementById("e_menu").innerHTML=out;
           }
           catch(e){}
        }
    }
}


function buildCal(m, y, cM, cH, cDW, cD, brdr,res){
var xy="";
cM="";
if (lang==0){
var mn=['January','February','March','April','May','June','July','August','September','October','November','December'];
}else{
var mn=['Januari','Pebruari','Maret','April','Mei','Juni','Juli','Agustus','September','Oktober','Nopember','Desember'];
}
var dim=[31,0,31,30,31,30,31,31,30,31,30,31];
var oD = new Date(y, m-1, 1); //DD replaced line to fix date bug when current day is 31st
oD.od=oD.getDay()+1; //DD replaced line to fix date bug when current day is 31st

var todaydate=new Date() //DD added
var scanfortoday=(y==todaydate.getFullYear() && m==todaydate.getMonth()+1)? todaydate.getDate() : 0 //DD added

dim[1]=(((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0))||(oD.getFullYear()%400==0))?29:28;
var xwidth="95%";
cH="";
if (myebstat=="1")
   xwidth="95%";
var t='<div class="widget" align="center" valign="center" style="padding:5 5 5 5"><table class="'+cM+'" cols="7" width="'+xwidth+'" cellpadding="0" border="0" bgcolor="#181818" cellspacing="1"><td><table class="'+cM+'" cols="7" width="100%" cellpadding="0" border="0" cellspacing="0"><tr align="center" height="25">';
t+='<td  class="'+cH+'"></td><td colspan="5" align="center" class="'+cH+'"><img src="../images/panah_menu_kiri.gif" id="pos50" onclick="javascript:doprev();" onmouseover="cover(50)" onmouseout="cout(50)">&nbsp;&nbsp;<a href="javascript:viewcontent(\'widget/calendar.php\',\'monthid='+m+'&yearid='+y+'\');" class="subtitle">'+mn[m-1]+' '+y+'</a>&nbsp;&nbsp;<img src="../images/panah_menu_kanan.gif" id="pos51" onclick="javascript:donext();" onmouseover="cover(51)" onmouseout="cout(51)"></td><td class="'+cH+'"></td></tr>';
g=0;
t+='</tr></table></td></table>';
t+='<table cols="7" width="'+xwidth+'" cellpadding="0" border="0" bgcolor="#181818" cellspacing="1"><tr align="center" height="20">';
for(s=0;s<7;s++){
	if (lang==0){
	t+='<td bgcolor="#000000"><div style="color:#ABABAB;padding:5 5 5 5;">'+"SMTWTFS".substr(g,1)+'</div></td>';
	}else{
	t+='<td bgcolor="#000000"><div style="color:#ABABAB;padding:5 5 5 5;">'+"MSSRKJS".substr(g,1)+'</div></td>';
	}
	g=g+1;
}	
t+='<tr align="center">';
for(i=1;i<=42;i++){
var x=((i-oD.od>=0)&&(i-oD.od<dim[m-1]))? i-oD.od+1 : '&nbsp;';
xy="|"+x+"|";
if (res.indexOf(xy)>-1){
   t+='<td bgcolor="gray" width=14% onmouseover="cover('+x+')" onmouseout="cout('+x+')" onclick ="javascript:procal('+x+')" id="pos'+x+'"><a id="pcal'+x+'" style="position:absolute"></a>'+x+'</td>';
}else{
   t+='<td width=14% bgcolor="#000000" style="color:#FFFFFF;padding:5 5 5 5">'+x+'</td>';   
}   
//if (x==scanfortoday) //DD added
//x='<span id="today">'+x+'</span>' //DD added
if(((i)%7==0)&&(i<36))t+='</tr><tr align="center">';
}
//alert(t);
return t+='</tr></table></div>';
}
function doprev(){
 document.getElementById("e_menu").innerHTML='';	
 if (curmonth==1) {
   curmonth=12;
   curyear=curyear-1;
 }else{  
   curmonth= curmonth -1;
 }
 docal(curmonth ,curyear);
}

function donext(){
 document.getElementById("e_menu").innerHTML='';	
 if (curmonth==12) {
   curmonth=1;
   curyear=curyear+1;
 }else{  
   curmonth= curmonth+1;
 }
 docal(curmonth ,curyear);
}
