Date.prototype.mGetDay = function() {
return (this.getDay() + 6) %7;
}

var tb = 't';
 // top or bottom (t or b)
var headbg = '#cccccc';
  // table heading background colour
var todaybg = '#99cccc';
 // current selected date background colour
var textclr = '#4e4e4e';
 // text colour
var linkclr = '#ff9999';
 // link text colour
var noMessage =  'No event messages to display for today';
 // message to display when no entry in array

// permission is granted to use this javascript provided that the below code is not altered
var pageLoaded = 0;
 window.onload = function() {
pageLoaded = 1;

}

function loaded(i,f) {
if (document.getElementById && document.getElementById(i) != null) f();
 else if (!pageLoaded) setTimeout('loaded(\''+i+'\','+f+')',100);

}

function monthlength(month,year) {
var dd = new Date(year, month, 0);
return dd.getDate();
}

var moy = ['Januari','Februari','Mars','April','Maj','Juni','Juli','Augusti','September','Oktober','November','December'];
var today = new Date();
var selDate = today.getFullYear()+getmmdd(today.getMonth()+1,today.getDate());

function dispCal(yy,mm) {

if (mm < 0 || mm > 12) {
alert('month must be between 1 and 12');
 return false;
}
 if (yy != 0 && (yy < 1901 || yy > 2100)) {
alert('year must be after 1900 and before 2101');
 return false;
}
 var dow = ['M','T','O','T','F','L','S'];
 var cal_calendar = new Date();
  var today = cal_calendar.getDate();
 cal_calendar.setDate(1);
 if (yy > 1900) cal_calendar.setFullYear(yy);
 if (mm > 0) cal_calendar.setMonth(mm - 1);
 var yy = year = cal_calendar.getFullYear();
 var month = cal_calendar.getMonth();
 cal_calendar.setDate(today);
 var weekday = cal_calendar.mGetDay();
 var daysInMonth = monthlength(month+1,year);
 var hilite_start = '<td class="cal_hilite" align="center">';
 var td_start = '<td class="cal_td" align="center">';
 var td_day = '<td class="cal_days" align="center">';
 
 var mmb = month;
  mm = month + 1;
 var yya = yyb = yy;
 if (mmb <1) {
mmb += 12;
 yyb--;
}
 var mma = month + 2;
 if (mma > 12) {
mma -= 12;
 yya++;
}
 var yb = yy -1;
 var ya = yy +1;
 var cal = '<div id="cal"><div class="cal_main"><table border="0" cellspacing="0" cellpadding="0" align="center"><tr><td class="cal_prevmonth" align="left" onclick="if (cala = dispCal('+yyb+','+mmb+')) {document.getElementById(\'cal\').innerHTML = cala; fixHover(); return false;}"></td><td class="cal_headermonth" align="center">' + moy[month]  + ' ' + year + '</td><td class="cal_nextmonth" align="right" onclick="if (cala = dispCal('+yya+','+mma+')) {document.getElementById(\'cal\').innerHTML = cala; fixHover(); return false;}"><\/td><\/tr></table><table border="0" cellspacing="0" cellpadding="0" align="center"><tr>';
 for(dex=0;
 dex < 7;
 dex++) {
cal += td_day + dow[dex] + '</td>';
}
 cal += '<\/tr><tr>';
 var day2 = today;
 for (dex = today;
 dex > 6;
 dex -=7) day2 = dex;
 weekday -= day2 - 1;
 while (weekday < 0) weekday += 7;
 for(dex=0;
 dex < weekday;
 dex++) cal += td_start + ' <\/td>';
 for(dex=1;
 dex <= daysInMonth;
 dex++) {
if(weekday == 7) {
cal += '</tr><tr>';
 weekday = 0;
}
 if(selDate==year+getmmdd(month+1,dex)) cal += hilite_start +'<span '+clickDate(dex,month,year) + '>'+ dex + '<\/span><\/td>';
 else cal += td_start + '<span '+clickDate(dex,month,year) + '>' + dex + '<\/a><\/td>';
 weekday += 1;
}
 for(dex=weekday;
 dex < 7;
 dex++) cal += td_start + ' <\/td>';
 cal += '<\/tr><tr><td colspan="7" class="cal_tablebottom"><\/td><\/tr><\/table><\/div>';
 
 cal += '</div>';
 
 return cal;
}

function start() {
//var x = '<div id="calDate" style="border:1pt solid #cccccc;width:238px"><\/div>';
var x = '';
 var y = '';
 if (tb == 't') y = x + dispCal(0,0);
 else y = dispCal(0,0) + x;
 document.getElementById('cal_calendar').innerHTML = y;
 ev();
 
fixHover();

}

function fixHover() {
 $('.cal_eventdate').tooltip({ 
    track: true, 
    delay: 0, 
    showURL: false, 
    showBody: " - ", 
    fade: 250
});
}

loaded('cal_calendar',start);

function clickDate(day, month, year) {
var ct = nextDate(year + getmmdd(month+1,day));
if (ct == '') ct = nextDate('0000' + getmmdd(month+1,day));
if (ct == '') return 'style="color:'+textclr+'"';
 else return ' class="cal_eventdate" title="' + ct + '"';
}
function isDate(dayVal,monthVal,yearVal) {
var ct = nextDate(yearVal + getmmdd(monthVal+1,dayVal));
if (ct == '') ct = nextDate('0000' + getmmdd(monthVal+1,dayVal));
if (ct == '') ct = noMessage;
//document.getElementById('calDate').innerHTML = selDate + ':<br \/>' +ct;
 return false;
}
function nextDate(yymmdd) {
var x = dA.length;
for (var i = 0;
 i < x;
 i++) {
if (dA[i].substr(0,8) == yymmdd) return dA[i].substr(8);
}
return '';
}
function getmmdd(mm,dd) {
return (mm > 9 ? '' + mm : '0' + mm) + (dd > 9 ? dd : '0' + dd);
}

function ev() {
var ct = nextDate(selDate);
var ct = nextDate(selDate);
if (ct == '') ct = nextDate('0000' + selDate.substr(4));
if (ct == '') ct = noMessage;
 //document.getElementById('calDate').innerHTML = selDate + ':<br \/> ' +ct;
}




