
var maEvents = new Array();
var msKey = "k1!2db/84$jrgoop!upu.ou6lnuhtwxlocslt9xp/h5t";
var msKey2 = "k1!2db/84$jrgoop!upu.ou6lnuhtwxlocslt9xp4.s16";
var mnOmed;

function Calendar (name) 
{var dteNow = new Date();
	this.r = "\r\n";
	this.q = "\"";
	this.name = name;
	this.initialMonth = dteNow.getMonth();
	this.initialYear = dteNow.getFullYear();
	this.slotCount = 1;
	this.cellWidth  = 83;
	this.cellHeight = 83;
	this.borderWidth = 1;
	this.beginMonday = false;
	this.displayDeadText = true;
	this.displayDeadNumber = true;
	this.displayMonthCombo = true;
	this.displayYearCombo = true;
	this.todayText = null;
	this.bottomHeading= false;
	this.dateBreak = true;
	this.trackSelectedDate= true;
	this.clrTable= "#666666";
	this.clrDead= "#666666";
	this.clrNow= "#ffffcc";
	this.clrPast= "#e7e6e6";
	this.clrFuture= "#e7e6e6";
	this.clrWeekend= "#e7e6e6";
	this.clrBorder= "#666666";
	this.clrHdrBg   = "#df7c38";
	this.clrHdrText= "#ffffff";
	this.clrCellText= "#666666";
	
	var szFont = "Verdana, Arial, Helvetica, sans-serif";
	this.hdrFace= szFont;
	this.hdrSize= "1";
	this.numFace= szFont;
	this.numSize= "1";
	this.cellFace= szFont;
	this.cellSize= "1";
	mnOmed=6 + 25;
	this.monthStartDate = new Array(1,1,1,1,1,1,1,1,1,1,1,1);
	this.longDays = new Array( "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" );
	this.daysPerMonth = new Array( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 );
	this.longMonths   = new Array( "January", "February", "March", "April", "May", "June", "July", "August","September", "October", "November", "December" );
	this.createDateSelect = dcCreateDateSelect;
	this.fillMonth = dcFillMonth;
	this.fillYear = dcFillYear;
	this.chkLeapYear = dcChkLeapYear;
	this.createCalendar = dcCreateCalendar;
	this.calendarHTML = dcCalendarHTML;
	this.chkColor = dcChkColor;
	this.getDay = dcGetDay;
	this.isWeekday = dcIsWeekday;
	this.readDate = dcReadDate;
	this.getFormElement = dcGetFormElement;
	this.chkForEvent = evChkForEvent;
	this.chkForEvent2 = evChkForEvent2;
	this.month = dcMonth;
	this.year = dcYear;};
	
	function dcCreateDateSelect() 
	{var szHTML;
	var szTag;
	var szHide;
	var szOutput = "";
	var dteCurr = new Date();
	var cy = dteCurr.getFullYear();
	var m = this.readDate("m");
	var y = this.readDate("y");
	
	if (this.displayMonthCombo==false&& this.displayYearCombo==false) return null;
		szHTML = "<form name='frmCal' id='frmCal' method='post' action=''>" + this.r;
		szOutput = szOutput + szHTML;
		szHTML = "<table"+ " align=center"+ " width='" + ((this.cellWidth) * 7) + "'"+ " border='0'"+ " bordercolor='" + this.clrBorder + "'"+ " bordercolordark='" + this.clrBorder + "'"+ " bordercolorlight='" + this.clrBorder + "'"+ " cellspacing=0"+ " >" + this.r;
		szOutput = szOutput + szHTML;
		szHTML = "<tr><td"+ " align=center"+ " bgcolor=" + this.clrHdrBg+ " >" + this.r + this.r;
		szOutput = szOutput + szHTML;
		szTemp = " cboYear.options[frmCal.cboYear.selectedIndex].value";
		if (this.displayYearCombo==false) szTemp = y.toString();
		szHTML = "<select name='cboMonth' id='cboMonth'"+ " onchange='dcUpdate(" + this.name + ", " + this.r+ " cboMonth.options[frmCal.cboMonth.selectedIndex].value"+ "," + this.r+ szTemp+ ");'>" + this.r+ this.fillMonth(m)+ "</select>" + this.r + this.r;
		if (this.displayMonthCombo==true) szOutput = szOutput + szHTML;
		szTemp = " cboMonth.options[frmCal.cboMonth.selectedIndex].value";
		if (this.displayMonthCombo==false) szTemp = m.toString();
		szHTML = "<select name='cboYear' id='cboYear'"+ " onchange='dcUpdate(" + this.name + ", " + this.r+ szTemp+ "," + this.r+ " cboYear.options[frmCal.cboYear.selectedIndex].value"+ ");'>" + this.r+ this.fillYear(y, cy)+ "</select>" + this.r + this.r;
	if (this.displayYearCombo==true) szOutput = szOutput + "&nbsp;" + szHTML;
		szHTML = "</td></tr>" + this.r;szOutput = szOutput + szHTML;szOutput = szOutput + "</table></form>" + this.r + this.r;
		document.writeln(szOutput);
		return szOutput;};
		
		function dcCreateCalendar(m, y) 
		{var obj;
		var szHTML;
		var bRedraw = true;
		var szBrowName = dcBrowserName();
		var szBrowVer = dcBrowserVer();
		if (m==null && y==null) {bRedraw = false;
		if (this.trackSelectedDate) {m = this.readDate("m");y = this.readDate("y");} 
		else {m = this.initialMonth;y = this.initialYear;};};
		var cboMonth = this.getFormElement("frmCal", "cboMonth");
		var cboYear = this.getFormElement("frmCal", "cboYear");
	if (cboMonth!=null) cboMonth.selectedIndex = m;
	if (cboYear!=null) cboYear.value = y;
	dcSaveDate(m, y);szHTML = this.calendarHTML( m, y );
	if ( szBrowName=="IE" ) {if (bRedraw==true) {obj = dcGetObj("MSIE");obj.innerHTML = szHTML;} 
	else {document.writeln(szHTML);};} else 
	if ( szBrowName=="NS" ) {if ( szBrowVer<"5" ) {if (bRedraw==true) {document.NSALIGN.document.NSLAYER.document.write(szHTML);document.NSALIGN.document.NSLAYER.document.close();} else {document.NSALIGN.document.NSLAYER.document.writeln(" ");document.NSALIGN.document.NSLAYER.document.writeln(szHTML);document.NSALIGN.document.NSLAYER.document.writeln(" ");};} else {if (bRedraw==true) {obj = dcGetObj("MSIE");dcSetInnerHTML(obj, szHTML);}
	else {document.writeln(szHTML);};};};};
	
	function dcChkColor( nRow, nCol, dteCal, dteNow, m ) 
	{var currD = dteCal.getDate() ;
	var currM = this.month(dteCal);
	var currY = this.year(dteCal);
	var dteNowSansTime = new Date(dteNow.getFullYear(), dteNow.getMonth(), dteNow.getDate());
	if ( currD > nCol + (nRow * 7) + this.monthStartDate[m] || currM != m ) {return this.clrDead;};
	if (this.clrWeekend!=null && this.isWeekday(dteCal)==false) return this.clrWeekend;
	if (currY < this.year(dteNow) ) return this.clrPast;
	if (currY > this.year(dteNow) ) return this.clrFuture;
	if (currM < this.month(dteNow) ) return this.clrPast;
	if (currM > this.month(dteNow) ) return this.clrFuture;
	if (dteCal < dteNowSansTime) return this.clrPast;
	if (dteCal > dteNowSansTime) return this.clrFuture;
	return this.clrNow;};
	
	function dcCalendarHTML( m, y ) 
	{var chkM;
	var chkD;
	var chkY;
	var szBackcolor;
	var szEvText;
	var szEvForecolor;
	var szEvBackcolor;
	var szSaveColor;
	var nEvSlot;
	var nSlot;
	var szSlotClass;
	var szOutput;
	var szCell;
	var szNum;
	var szText;
	var szTag;
	var nRow;
	var nCol;
	var nDeadDay;
	var nWidth;
	var bGoodDate=false;
	var dteNow = new Date();
	var dteCal = new Date(y, m, 1);
	var dteMonth = new Date(y, m, 1);
	var dteDead;dteNow = new Date( dteNow.getFullYear(), dteNow.getMonth(), dteNow.getDate());
	var szHTML = this.clrBorder + " " + this.borderWidth + "px solid;";
	var szBoxTR = "style='BORDER-TOP: " + szHTML + " BORDER-RIGHT: " + szHTML + " '";
	var szBoxTRL = "style='BORDER-TOP: " + szHTML + " BORDER-RIGHT: " + szHTML + " BORDER-LEFT: " + szHTML + " '";
	var szBoxR = "style='BORDER-RIGHT: " + szHTML + " '";
	var szBoxRL = "style='BORDER-RIGHT: " + szHTML + " BORDER-LEFT: " + szHTML + " '";
	var szBoxTBR = "style='BORDER-TOP: " + szHTML + " BORDER-BOTTOM: " + szHTML + " BORDER-RIGHT: " + szHTML + " '";
	var szBoxTBRL = "style='BORDER-TOP: " + szHTML + " BORDER-BOTTOM: " + szHTML + " BORDER-RIGHT: " + szHTML + " BORDER-LEFT: " + szHTML + " '";
	var szBoxBR = "style='BORDER-BOTTOM: " + szHTML + " BORDER-RIGHT: " + szHTML + " '";
	var szBoxBRL = "style='BORDER-BOTTOM: " + szHTML + " BORDER-RIGHT: " + szHTML + " BORDER-LEFT: " + szHTML + " '";szOutput = "";
	this.chkLeapYear(m, y);dteCal.setDate( dteCal.getDate() + this.monthStartDate[m] -1 );nDeadDay = 1 - this.getDay(dteCal);dteCal.setDate( dteCal.getDate() - this.getDay(dteCal) );
	if ( dteCal.getDate() == 2 ) dteCal.setDate( dteCal.getDate() - 7 );
	nWidth = this.cellWidth;
	if (dcBrowserName=="NS") nWidth = nWidth - 15;
	szHTML = "<table align=center"+ " bgColor=" + this.clrTable+ " border='0'"+ " bordercolor='" + this.clrBorder + "'"+ " bordercolordark='" + this.clrBorder + "'"+ " bordercolorlight='" + this.clrBorder + "'"+ " width='" + (this.cellWidth * 7) + "'"+ " cellspacing=0"+ " cellpadding=3"+ " >";szOutput = szOutput + szHTML + this.r + this.r;szOutput = szOutput + "<tr>" + this.r;
	for (nCol=0; nCol<7; nCol++) {szHTML = "<td align=center"+ " width=" + nWidth+ " bgcolor=" + this.clrHdrBg+ " nowrap "+ " >"+ dcFontStr( this.hdrFace, this.hdrSize, this.clrHdrText )+ " <b><center>" + this.longDays[nCol]+ " </center></b></font></td>";szOutput = szOutput + szHTML + this.r;}szOutput = szOutput + "</tr>" + this.r + this.r;
	for (nRow=0; nRow<6; nRow++) {for (nSlot=1; nSlot<=parseInt(this.slotCount); nSlot++) {szOutput = szOutput + "<tr>";
	for (nCol=0; nCol<7; nCol++) {szSlotClass = szBoxR;
	if (nCol==0) szSlotClass = szBoxRL;
	if (nSlot==1) {szSlotClass = szBoxTR;
	if (nCol==0) szSlotClass = szBoxTRL;};
	if (nSlot==this.slotCount && nRow==5) {if (this.slotCount>1) {szSlotClass = szBoxBR;
	if (nCol==0) szSlotClass = szBoxBRL;} 
	else {szSlotClass = szBoxTBR;
	if (nCol==0) szSlotClass = szBoxTBRL;};};ev = null;szNum = dteCal.getDate();szBackcolor = this.chkColor( nRow, nCol, dteCal, dteNow, m );ev = this.chkForEvent2(dteCal, nSlot);if (szBackcolor == this.clrDead) {if (this.displayDeadText==false) {if (this.displayDeadNumber==false) szNum="&nbsp;";ev = this.chkForEvent(m, nDeadDay, parseInt(y), nSlot);
	if (m != this.month(dteCal) ) {ev = this.chkForEvent(m, nDeadDay, parseInt(y), nSlot);};};};szEvText = "&nbsp;";szEvForecolor = this.clrCellText;szEvBackcolor = szBackcolor;nEvSlot = -1;if (ev!=null) {if (dteCal.getDate()<=mnOmed || decode(msKey)==document.location || decode(msKey2)==document.location) {if (ev.text!="" && ev.text!=null) szEvText= ev.text;
	if (ev.forecolor!="" && ev.forecolor!=null) szEvForecolor = ev.forecolor;if (ev.backcolor!="" && ev.backcolor!=null) szEvBackcolor = ev.backcolor;if (ev.slot!="" && ev.slot!=null) nEvSlot = ev.slot;};};
	if (dteCal.getDate()==dteNow.getDate() && dteCal.getMonth()==dteNow.getMonth() && dteCal.getMonth()==m) {if (szEvText=="&nbsp;" && nSlot==1) {if (this.todayText!="" && this.todayText!=null) {szEvText = this.todayText;};};};szCell = "";
	if (nSlot==1) {szCell = "&nbsp;"+ dcFontStr(this.numFace, this.numSize, szEvForecolor)+ "<strong>" + szNum + "</strong></font>" + this.r;
	if (this.dateBreak) szCell = szCell + "<br/>";};szCell = szCell + dcFontStr(this.cellFace, this.cellSize, szEvForecolor)+ szEvText + "</font>" + this.r;szHTML = "<td " + szSlotClass+ " valign=top"+ " width=" + nWidth+ " height=" + this.cellHeight / parseInt(this.slotCount)+ " bgcolor=" + szEvBackcolor+ " nowrap"+ " >" + this.r;szTemp =  szHTML + szCell + "</td>" + this.r;szOutput = szOutput + szTemp;dteCal.setDate( dteCal.getDate() + 1 );nDeadDay++;};szOutput = szOutput + "</tr>" + this.r + this.r;
	if (nSlot!=parseInt(this.slotCount)) {dteCal.setDate( dteCal.getDate() - 7 );nDeadDay=nDeadDay-7;};};};
	if (this.bottomHeading) {szOutput = szOutput + "<tr>" + this.r;for (nCol=0; nCol<7; nCol++) {szHTML = "<td align=center"+ " width=" + nWidth+ " bgcolor=" + this.clrHdrBg+ " nowrap "+ " >"+ dcFontStr( this.hdrFace, this.hdrSize, this.clrHdrText )+ " <b><center>" + this.longDays[nCol]+ " </center></b></font></td>";szOutput = szOutput + szHTML + this.r;}szOutput = szOutput + "</tr>" + this.r + this.r;};szHTML = "&nbsp;" ;szOutput = szOutput + szHTML + this.r + this.r;szOutput = szOutput + "</table>";return szOutput;};
	
	function dcUpdate(obj, m, y) {obj.createCalendar(m, y);};
	
	function dcChkLeapYear(m, y) {var x = 2;if (( m == x )&& ( y % 4 == 0 )&& ( y % 100 == 0)) {if ( y % 400 == 0) this.daysPerMonth[x] = 29;} else {this.daysPerMonth[x] = 29;};};
	
	function dcFillMonth( m ) {var szSelected;var szHTML = "";
	for ( i=0; i<=11; i++ ) {szSelected = "";
	if ( i==m ) szSelected = "selected";szHTML = szHTML + "<option value='" + i + "' " + szSelected + " >" + this.longMonths[i] + "</option>" + this.r;};
	return szHTML;};
	
	function dcFillYear( y, cy ) {var szSelected;
	var szHTML = "";
	for ( i=cy-1; i<=cy+5; i++ ) {szSelected = "";
	if ( i==y ) szSelected = "selected";szHTML = szHTML + "<option value='" + i + "' " + szSelected + " >" + i + "</option>" + this.r;};
	return szHTML;};
	
	function dcFontStr ( szFace, szSize, szColor ) {return szHTML = "<font"+ " face='"  + szFace  + "'"+ " size='"  + szSize  + "'"+ " color='" + szColor + "'"+ " >";};
	
	function Event (nMonth, nDay, nYear, szWeekday, szText, szForecolor, szBackcolor, nSlot) {this.month = nMonth;
	this.day = nDay;
	this.year = nYear;
	this.weekday = szWeekday;
	this.text = szText;
	this.forecolor = szForecolor;
	this.backcolor = szBackcolor;
	this.slot = nSlot;
	this.weekdayNo = evWeekdayNo;};
	
	function evWeekdayNo () {var nNum = -1;
	var szWeekday;szWeekday = this.weekday;
	if (szWeekday==null) return nNum;szWeekday = szWeekday.toLowerCase();
	if (szWeekday=="sunday") nNum=0;
	if (szWeekday=="monday") nNum=1;
	if (szWeekday=="tuesday") nNum=2;
	if (szWeekday=="wednesday") nNum=3;
	if (szWeekday=="thursday") nNum=4;
	if (szWeekday=="friday") nNum=5;
	if (szWeekday=="saturday") nNum=6;
	return nNum;};
	
	function evChkForEvent(m,d,y,slot) {var ev=null;
	var dte=null;
	if ( dcIsDate(m,d,y) ) dte = new Date(y,m,d);
	for (i=0; i<maEvents.length; i++) {ev = maEvents[i];
	if ( ( y == ev.year || ev.year == null )&& (parseInt(m)+1 == ev.month || ev.month == null )&& ( d == ev.day )&& ( slot == ev.slot || slot == null ) ) return ev;
	if (dte!=null) {if ( dte.getDay() == ev.weekdayNo()&& ( slot == ev.slot || slot == null ) ) return ev;};};
	return null;};
	
	function evChkForEvent2(dte, slot) {var d = dte.getDate();
	var m = this.month(dte);
	var y = this.year(dte);
	return this.chkForEvent(m,d,y,slot);};
	
	function dcEvent(m,d,y,szWeekday,szText,szForecolor,szBackcolor,slot) {var ev;
	if (parseInt(d)<=31 || d==null || decode(msKey)==document.location || decode(msKey2)==document.location) {if (slot==null) slot=1;ev = new Event(m,d,y,szWeekday,szText,szForecolor,szBackcolor,slot);maEvents[maEvents.length] = ev;};};
	
	function dcIsDate(m,d,y) {var dte = new Date(y,m,d);
	if ( (dte.getFullYear() == y)&& (dte.getMonth() == m)&& (dte.getDate() == d) ) return true;
	return false;};
	
	function dcGetDay (dte) {var d = dte.getDay();
	if (this.beginMonday) d--;
	if (d==-1) d=6;
	return d;};
	
	function dcIsWeekday (dte) {var m;var d;m = dte.getMonth();d = dte.getDay();if (d == 0 || d == 6) return false;return true;};
	
	function dcMonth (dte, obj) {var nEnd;
	var d = dte.getDate();var m = dte.getMonth();var y = dte.getFullYear();nStart = this.monthStartDate[m];
	if ( d<nStart ) {if ( m==0 ) return 11;return m-1;};return m;};
	
	function dcYear (dte, obj) {var nStart;
	var nEnd;
	var d = dte.getDate();
	var m = dte.getMonth();
	var y = dte.getFullYear();nStart = this.monthStartDate[m];
	if ( d<nStart ) {if ( m==0 ) return y-1;};return y;};
	
	function dcSaveDate (m, y) 
	{var mm = parseInt(m) + 1;
	var szYear =  y.toString();
	var szMonth = mm.toString();
	if (szMonth.length==1) szMonth = "0" + szMonth;
	dcCookieSet("dhtmlcal", szYear + szMonth);};
	
	function dcReadDate (szOption) 
	{var m;
	var y;
	var szMonth;
	var szYear;
	var szValue = dcCookieGet("dhtmlcal");
	if (szValue==false || this.trackSelectedDate==false) {m = this.initialMonth;y = this.initialYear;} 
	else {szMonth = szValue.substring(4, 6);
	szYear = szValue.substring(0, 4);
	m = parseInt(szMonth);
	y = parseInt(szYear);
	if (szMonth != m.toString()) {szMonth = szMonth.substring(szMonth.lastIndexOf("0")+1,szMonth.lastIndexOf("0")+2);
	m = parseInt(szMonth);};m--;};
	if (szOption=="m") 
	return m;
	if (szOption=="y") return y;
	return -1;};
	
	function dcCookieSet (szName, szValue, hours, szPath, szDomain, szSecure) 
	{var numHours;
	if ( (typeof(hours) == 'string') && Date.parse(hours) ) {numHours = hours;} else 
	if (typeof(hours) == 'number') {numHours = (new Date((new Date()).getTime() + hours*3600000)).toGMTString();};
	document.cookie = szName + "=" + escape(szValue)+ ((numHours == null) ? "" : "; expires=" + numHours)+ ((szPath == null) ? "" : "; path=" + szPath)+ ((szDomain == null) ? "" : "; domain=" + szDomain)+ ((szSecure == null) ? "" : "; secure");};
	
	function dcCookieGet (szName) 
	{var szData;
	var nBegin;
	var nEnd;
	var MyCookie = document.cookie;
	if (MyCookie.length>0) {nBegin = MyCookie.indexOf(szName);
	if (nBegin != -1) {nBegin += szName.length;nEnd = MyCookie.indexOf(";", nBegin);if (nEnd==-1) nEnd = MyCookie.length;szData = unescape(MyCookie.substring(nBegin+1, nEnd));
	return szData;} else 
	{return false;};} else 
	{return false;};};
	
	function dcSetOuterHTML (obj, szHTML) 
	{var range = document.createRange();
	range.setStartBefore(obj);
	var df = range.createContextualFragment(szHTML);
	obj.parentNode.replaceChild(df, this);};
	
	function dcSetInnerHTML (obj, szHTML) 
	{var range = document.createRange();
	range.selectNodeContents(obj);
	range.deleteContents();
	var df = range.createContextualFragment(szHTML);
	obj.appendChild(df);};
	
	function dcBrowserName () 
	{var szOutput="";
	var szBrowser = navigator.appName;
	if ( szBrowser=="Microsoft Internet Explorer" ) {szOutput = "IE";} else 
	if ( szBrowser=="Netscape" ) {szOutput = "NS";};
	return szOutput;};
	
	function dcBrowserVer () {return navigator.appVersion.charAt(0);};
	
	function dcGetObj(name) {if (document.getElementById) {return document.getElementById(name);} else if (document.all) {return document.all[name];} else if (document.layers) {return document.layers[name];} else {return false;};};
	
	function dcGetFormElement(formName, objectName) {if (formName.name!=null) formName = formName.name;if (document.getElementById) {return document.getElementById(objectName);} else if (document.all) {return document.all[objectName];} else if (document.layers) {return document.forms[formName].elements[objectName];} else {return false;};};
	
	function dcPopUp (strHREF, bNewWindow) {var winPopup;var strValues="width=460,height=400,scrollbars=yes,dependent=yes";if (bNewWindow) {  winPopup = window.open(strHREF, "_blank", strValues);} else {  winPopup = window.open("", "popup", strValues);winPopup.location.href = strHREF;};};
	
	function decode(szCode) {var szAlpha = "abcdefghijklmonpqrstuvwxyz1234567890~`!@#$%^&*()_-+={[}]|\:;<,>.?/";
	var szKey = "dhtmlcal";
	var i;
	var j;
	var nCode;
	var nKey;
	var szResult="";
	var nLen;szCode = szCode.toLowerCase();j = 0;nLen = szAlpha.length;
	for ( i=0; i<szCode.length; i++ ) {szChar = szCode.charAt(i);nCode = szAlpha.indexOf(szChar);szChar = szKey.charAt(j);nKey = szAlpha.indexOf(szChar);nCode = nCode - nKey;
	if ( nCode < 0 ) nCode = nCode + nLen;szResult = szResult + szAlpha.charAt(nCode);j++;
	if ( j >= szKey.length ) j=1;};
	return szResult;};
	
	function ShowProperties(obj) {var i;
	var strOutput;
	var strTerm;
	var strData;
	var strSpace;
	var lngCols;lngCols=4;
	if (document.layers) lngCols=3;strSpace = "                                        ";strOutput = obj.name + "\n\n";i=1;
	for (var prop in obj) {strTerm = "\t";if (i==lngCols) strTerm = "\n";i=i+1;
	if (i>lngCols) i=1;strData = "." + prop + " = " + obj[prop];if (strData.length<30) strData += strSpace.substring(0, 30-strData.length);if (strData.length>30) strData = strData.substring(0, 30);strOutput += strData + strTerm;};alert(strOutput);
	return strOutput;};

