window.onload = function()
{
    if (window.winOnLoad) window.winOnLoad();
}

function xScrollLeft(e, bWin) {
  var offset=0;
  if (!xDef(e) || bWin) {
    var w = e || window;
    if(w.document.documentElement && w.document.documentElement.scrollLeft) offset=w.document.documentElement.scrollLeft;
    else if(w.document.body && xDef(w.document.body.scrollLeft)) offset=w.document.body.scrollLeft;
  }
  else {
    e = xGetElementById(e);
    if (e && xNum(e.scrollLeft)) offset = e.scrollLeft;
  }
  return offset;
}
function xScrollTop(e, bWin) {
  var offset=0;
  if (!xDef(e) || bWin) {
    var w = e || window;
    if(w.document.documentElement && w.document.documentElement.scrollTop) offset=w.document.documentElement.scrollTop;
    else if(w.document.body && xDef(w.document.body.scrollTop)) offset=w.document.body.scrollTop;
  }
  else {
    e = xGetElementById(e);
    if (e && xNum(e.scrollTop)) offset = e.scrollTop;
  }
  return offset;
}

function xAddEventListener(e,eventType,eventListener,useCapture) {
  if(!(e=xGetElementById(e))) return;
  eventType=eventType.toLowerCase();
  if((!xIE4Up && !xOp7) && e==window) {
    if(eventType=='resize') { window.xPCW=xClientWidth(); window.xPCH=xClientHeight(); window.xREL=eventListener; xResizeEvent(); return; }
    if(eventType=='scroll') { window.xPSL=xScrollLeft(); window.xPST=xScrollTop(); window.xSEL=eventListener; xScrollEvent(); return; }
  }
  var eh='e.on'+eventType+'=eventListener';
  if(e.addEventListener) e.addEventListener(eventType,eventListener,useCapture);
  else if(e.attachEvent) e.attachEvent('on'+eventType,eventListener);
  else eval(eh);
}

function xResizeEvent() {
  if (window.xREL) setTimeout('xResizeEvent()', 250);
  var cw = xClientWidth(), ch = xClientHeight();
  if (window.xPCW != cw || window.xPCH != ch) { window.xPCW = cw; window.xPCH = ch; if (window.xREL) window.xREL(); }
}
function xScrollEvent() {
  if (window.xSEL) setTimeout('xScrollEvent()', 250);
  var sl = xScrollLeft(), st = xScrollTop();
  if (window.xPSL != sl || window.xPST != st) { window.xPSL = sl; window.xPST = st; if (window.xSEL) window.xSEL(); }
}

function xGetElementById(e) {
  if(typeof(e)!='string') return e;
  if(document.getElementById) e=document.getElementById(e);
  else if(document.all) e=document.all[e];
  else e=null;
  return e;
}

function xClientWidth() {
  var w=0;
  if(xOp5or6) w=window.innerWidth;
  else if(!window.opera && document.documentElement && document.documentElement.clientWidth)
    w=document.documentElement.clientWidth;
  else if(document.body && document.body.clientWidth)
    w=document.body.clientWidth;
  else if(xDef(window.innerWidth,window.innerHeight,document.height)) {
    w=window.innerWidth;
    if(document.height>window.innerHeight) w-=16;
  }
  return w;
}
function xClientHeight() {
  var h=0;
  if(xOp5or6) h=window.innerHeight;
  else if(!window.opera && document.documentElement && document.documentElement.clientHeight)
    h=document.documentElement.clientHeight;
  else if(document.body && document.body.clientHeight)
    h=document.body.clientHeight;
  else if(xDef(window.innerWidth,window.innerHeight,document.width)) {
    h=window.innerHeight;
    if(document.width>window.innerWidth) h-=16;
  }
  return h;
}
function xDef() {
  for(var i=0; i<arguments.length; ++i){if(typeof(arguments[i])=='undefined') return false;}
  return true;
}

var xVersion='3.15.3',xNN4,xOp7,xOp5or6,xIE4Up,xIE4,xIE5,xMac,xUA=navigator.userAgent.toLowerCase();
if (window.opera){
  xOp7=(xUA.indexOf('opera 7')!=-1 || xUA.indexOf('opera/7')!=-1);
  if (!xOp7) xOp5or6=(xUA.indexOf('opera 5')!=-1 || xUA.indexOf('opera/5')!=-1 || xUA.indexOf('opera 6')!=-1 || xUA.indexOf('opera/6')!=-1);
}
else if (document.all && xUA.indexOf('msie')!=-1) {
  xIE4Up=parseInt(navigator.appVersion)>=4;
  xIE4=xUA.indexOf('msie 4')!=-1;
  xIE5=xUA.indexOf('msie 5')!=-1;
}
else if (document.layers) {xNN4=true;}
xMac=xUA.indexOf('mac')!=-1;

function xEvent(evt) {
  this.type = ''; this.target = null;
  this.pageX = 0; this.pageY = 0;
  this.offsetX = 0; this.offsetY = 0;
  this.keyCode = 0;
  var e = evt || window.event;
  if(!e) return;
  if(e.type) this.type = e.type;
  if(e.target) this.target = e.target;
  else if(e.srcElement) this.target = e.srcElement;
  if(xOp5or6) { this.pageX = e.clientX; this.pageY = e.clientY; }
  else if(xDef(e.clientX,e.clientY)) { this.pageX = e.clientX + xScrollLeft(); this.pageY = e.clientY + xScrollTop(); }

  if (e.keyCode) { this.keyCode = e.keyCode; } // for moz/fb, if keyCode==0 use which
  else if (xDef(e.which)) { this.keyCode = e.which; }
}

var currentDate, currentYear;

function weekOfYear(d)
{
    var ms1d = 86400000, ms3d = 3 * ms1d, ms7d = 7 * ms1d;

    var year = d.getYear();
    if (year < 1900) {
        year += 1900;
    }
    var D3 = Date.UTC(year, d.getMonth(), d.getDate()) + ms3d;
    var wk = Math.floor(D3 / ms7d);
    with (new Date(wk * ms7d)) {
        var yy = getUTCFullYear();
    }
    return [yy, 1 + wk - Math.floor((Date.UTC(yy, 0, 4) + ms3d) / ms7d)]
}

function openGoto(timestamp, kg)
{
	var kgg = kg;
    var row, cell, img, link, days;

    var d = new Date(timestamp * 1000);
    currentDate = d;
    var month = d.getMonth();
    var year = d.getYear();
    if (year < 1900) {
        year += 1900;
    }
    currentYear = year;
    var firstOfMonth = new Date(year, month, 1);
    var diff = firstOfMonth.getDay();
    if (diff == -1) {
        diff = 6;
    }
    switch (month) {
        case 3:
        case 5:
        case 8:
        case 10:
            days = 30;
            break;
        case 1:
            if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) {
                days = 29;
            } else {
                days = 28;
            }
            break;
        default:
            days = 31;
            break;
    }

    var wdays = [
        'S',
        'M',
        'T',
        'W',
        'T',
        'F',
        'S'
    ];
    var months = [
        'January',
        'February',
        'March',
        'April',
        'May',
        'June',
        'July',
        'August',
        'September',
        'October',
        'November',
        'December'
    ];

    var lay = document.getElementById(kg);

    if (lay.firstChild) {
        lay.removeChild(lay.firstChild);
    }

    var table = document.createElement('TABLE');
    var tbody = document.createElement('TBODY');
    table.appendChild(tbody);
    table.className = 'item';
    table.cellSpacing = 0;
    table.cellPadding = 2;
    table.border = 0;
    table.width = 154;
    table.style.border = '1px solid #7f9db9';

   // Month name.
    row = document.createElement('TR');
    row.className = 'tb';
    cell = document.createElement('TD');
    cell.align = 'left';
    cell.width = 20;
    cell.style.border = '1px solid #D7D7E5';
    link = document.createElement('A');
    link.href = '';
    link.onclick = function() {
        newDate = new Date(currentYear, currentDate.getMonth() - 1, currentDate.getDate());
        openGoto(newDate.getTime() / 1000, kg);
        return false;
    }
    cell.appendChild(link);
    img = document.createElement('IMG')
    img.src = '/images/left.gif';
    img.align = 'middle';
    img.border = 0;
    link.appendChild(img);
    row.appendChild(cell);

    cell = document.createElement('TD');
    cell.colSpan = 5;
    cell.align = 'center';
    cell.width = 110;
    var m = document.createTextNode(months[month]);
    var xtx = document.createTextNode(', ');
    var xty = document.createTextNode(year);
    cell.appendChild(m);
    cell.appendChild(xtx);
    cell.appendChild(xty);
    row.appendChild(cell);

    cell = document.createElement('TD');
    cell.align = 'right';
    cell.width = 20;
    cell.style.border = '1px solid #D7D7E5';
    link = document.createElement('A');
    link.href = '';
    link.onclick = function() {
        newDate = new Date(currentYear, currentDate.getMonth() + 1, currentDate.getDate());
        openGoto(newDate.getTime() / 1000, kg);
        return false;
    }
    cell.appendChild(link);
    img = document.createElement('IMG')
    img.src = '/images/right.gif';
    img.align = 'middle';
    img.border = 0;
    link.appendChild(img);
    row.appendChild(cell);
    tbody.appendChild(row);

  
    // weekdays
    row = document.createElement('TR');
    row.className = 'wd';
    for (var i = 0; i < 7; i++) {
        cell = document.createElement('TD');
        cell.width = 20;
        cell.style.border = '1px solid white';
        cell.align = 'right';
        weekday = document.createTextNode(wdays[i]);
        cell.appendChild(weekday);
        row.appendChild(cell);
    }
    tbody.appendChild(row);
    
    // rows
    var weekInfo, italic;
    var count = 1;
    var today = new Date();
    var thisYear = today.getYear();
    if (thisYear < 1900) {
        thisYear += 1900;
    }
    var odd = true;
    for (var i = 1; i <= days; i++) {
        if (count == 1) {
            row = document.createElement('TR');
            row.align = 'right';
            row.className = 'dd';
        }
        if (i == 1) {
            for (var j = 0; j < diff; j++) {
                cell = document.createElement('TD');
                row.appendChild(cell);
                count++;
            }
        }
        cell = document.createElement('TD');
        cell.width = 20;
        if (thisYear == year &&
            today.getMonth() == month &&
            today.getDate() == i) {
            cell.style.border = '1px solid orange';
        } else {
        	cell.style.border = '1px solid white';
        }

        link = document.createElement('A');
        link.className = 'dy';
        if (kg == 'kgoto') {
			window.document.forms['FrontPage_Form1'].elements['location'].style.visibility = "hidden";
	        link.href = 'javascript:kid(';
	    } else {
	    	link.href = 'javascript:jid(';
	    }
        link.href += year + ',' + (month + 1) + ',' + i + ')';
        cell.appendChild(link);
        day = document.createTextNode(i);
        link.appendChild(day);
        row.appendChild(cell);
        if (count == 7) {
            tbody.appendChild(row);
            count = 0;
        }
        count++;
    }
    if (count > 1) {
        for (i = count; i <= 7; i++) {
            cell = document.createElement('TD');
            row.appendChild(cell);
        }
        tbody.appendChild(row);
    }

    // show Layer
    lay.appendChild(table);
    lay.style.visibility = 'visible';

    lay.onmouseover=setBlock;
    lay.onmouseout =clrBlock;
}

function kid(yr,mn,dy) {
	var months = [
        'January',
        'February',
        'March',
        'April',
        'May',
        'June',
        'July',
        'August',
        'September',
        'October',
        'November',
        'December'
    ];
  	document.getElementById('kgoto').style.visibility = 'hidden';
	window.document.forms['FrontPage_Form1'].elements['sd'].value=mn+'/'+dy+'/'+yr;
	window.document.forms['FrontPage_Form1'].elements['date'].value=yr+'-'+mn+'-'+dy;
	window.document.forms['FrontPage_Form1'].elements['location'].style.visibility = "visible";
}
function jid(yr,mn,dy) {
	var months = [
        'January',
        'February',
        'March',
        'April',
        'May',
        'June',
        'July',
        'August',
        'September',
        'October',
        'November',
        'December'
    ];
  	document.getElementById('jgoto').style.visibility = 'hidden';
	window.document.forms['FrontPage_Form1'].elements['ed'].value=mn+'/'+dy+'/'+yr;
	window.document.forms['FrontPage_Form1'].elements['followUpDate'].value=yr+'-'+mn+'-'+dy;
}

function winOnLoad() {
  xAddEventListener(document, 'keydown', onKeydown, false);
}

function onKeydown(evt) {
  var e = new xEvent(evt);
  if (e.keyCode == 27) {
  	document.getElementById('kgoto').style.visibility = 'hidden';
  	document.getElementById('jgoto').style.visibility = 'hidden';
	window.document.forms['FrontPage_Form1'].elements['location'].style.visibility = "visible";
	window.document.forms['FrontPage_Form1'].elements['followUpTime'].style.visibility = "visible";
  }
}

document.onmousedown=click;
block=0;

function setBlock() {
	block=1;
}
function clrBlock() {
	block=0;
}

function click(kg) {
	if (document.getElementById('kgoto').style.visibility=='visible' && block==0) {
		document.getElementById('kgoto').style.visibility = 'hidden';
		window.document.forms['FrontPage_Form1'].elements['location'].style.visibility = "visible";
	}
	if (document.getElementById('jgoto').style.visibility=='visible' && block==0) {
		document.getElementById('jgoto').style.visibility = 'hidden';
	}
}