//--------------------------------------------------------------------------- // // dhtmlcal.js // a component of ScriptCalendar // (c)2000 Dan Shipe // www.scriptcalendar.com // sales@scriptcalendar.com // // Date By Ver Description // ---------- --- ---- --------------------------------------------------- // 09-01-2000 DS 1.00 Initial creation // 04-10-2001 DS 1.01 Now supports Netscape 6, Gekko // 05-30-2001 DS 1.02 Added cookies to track month & year if user "refreshs" // 07-06-2001 DS 1.03 Fixed bug to set main table border color to mclrBorder // 07-09-2001 DS 1.04 Added DHTMLCal_PopUp to support event pop-up windows // 07-10-2001 DS 1.05 Added support to place text in dead cells // 08-23-2001 DS 1.06 Added inidividual date cell custom colors // 08-30-2001 DS 1.07 Added booleans to hide Month and Year drop-downs // 09-04-2001 DS 1.08 Supports "every month" and "every year" dates // 09-11-2001 DS 1.09 A week may now begin Sunday or Monday // 11-16-2001 DS 1.10 Added independent active weekend color // 01-03-2001 DS 1.11 Supports relatively positioned DHTML elements in NS 4.75 // 03-03-2002 DS 2.00 Object Oriented Design // 04-10-2002 DS 2.01 Fix for floating year and null weekday // 06-24-2002 DS 2.02 Fix for Monday weeks and first day is Sunday // 11-09-2002 DS 2.03 Supports Netscape 7 // 12-01-2002 DS 2.04 modifications for slots & financial calendar // 02-01-2003 DS 2.05 bug fixes // 03-04-2003 DS 2.06 bug fixes (trackSelectedDate and dead dates) // 01-01-2004 DS 3.00 XML support for MSIE browsers // 02-15-2004 DS 4.00 Calendar redesign for more browser compliance // 03-22-2004 DS 4.04 Miscellanous bug fixes // 04-28-2004 DS 4.05 Addition of style sheet and enforeCellHeight property // 05-11-2004 DS 4.06 Netscape license issue fix // 05-24-2004 DS 5.00 Improved XML. Now works in Netscape, Opera // 06-10-2004 DS 5.01 Multiple licenses // 09-27-2004 DS 5.02 dcHandler.js event on Date Number click // //--------------------------------------------------------------------------- var aaac = new Array();var aaaa;var aaab;var aaae;var aaaf;var aabh;var aaag;var aaah;var aaak;var mszXML;var aaaeDoc;var mobjMe;var aaakParm = "SelectedDate";var mblnDmn;var ua=navigator.userAgent.toLowerCase();var MAC=ua.indexOf('mac')!=-1;var OP=!!self.opera;var KO3=ua.indexOf("konqueror")!=-1;var IE=ua.indexOf("msie")!=-1&&!OP&&ua.indexOf("webtv")==-1;var N=ua.indexOf("gecko")!=-1;function ScriptCalendar(szName) {var aaaw = new Date();this.name = szName;this.r = "";this.q = "\"";this.license = "aaa";this.reloadPage = false;this.prevHtml = " «";this.nextHtml = "» ";this.todayText = "";this.initialMonth = aaaw.getMonth();this.initialYear = aaaw.getFullYear();this.cellWidth = 100;this.cellHeight = 100;this.padding = "3";this.spacing = "2";this.xmlFile = "";this.dateSelector = 1+2+4+8;this.dateRangeStart = 2002;this.dateRangeEnd = 2007;this.overwriteSpecialEvent = false;this.displayWeekNumber = false;this.debug = false;this.tableProperties = "border='0' cellpadding='0' cellspacing='" + this.spacing + "'";this.popupProperties = "width=600,height=400,scrollbars=yes,resizable=yes,titlebar=yes,toolbar=yes,menubar=yes,location=yes,status=yes";this.calendarStyle = "font:8pt verdana; background-color:transparent; color:#ffffff;";this.calendarHeaderStyle = "background-color:transparent; color:#000000; padding: 3px;";this.dateStyleOuter = "background-color:transparent;";this.dateStyleDead = "background-color:transparent; color:#000000;";this.dateStylePast = "background-color:#e0e0e0; color:#000000;";this.dateStyleCurrent = "background-color:#ffffc0; color:#666633;";this.dateStyleFuture = "background-color:#ffffff; color:#000000;";this.dateStyleNumber = "";this.enforceCellHeight= false;this.trackSelectedDate= true;this.beginMonday = false;this.displayDeadText = false;this.displayDeadNumber = false;this.bottomWeekdayHeader= false;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.longMonths = new Array( "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" );this.initialize = dcInitialize;this.generateCalendar = dcGenerateCalendar;this.aada = aaca;this.aadaStyle = aacaStyle;this.aadc = aacc;this.aade = aace;this.aadf = aacf;this.aadg = aacg;this.aadh = aach;this.update = dcUpdate;this.aadi = dcDaysPerMonth;this.aadj = aacj;this.aadk = aack;this.aadl = aacl;this.aadn = evChkForEvent;this.aadn2 = evChkForEvent2;this.matchDate = evMatchDate;this.aadp = aacp;this.aadq = aacq;this.aadr = aacr;this.getDay = dcGetDay;this.isWeekday = dcIsWeekday;this.dateByWeekday = dcDateByWeekday;this.month = aacs;this.year = aact;this.saveDate = dcSaveDate;this.readDate = dcReadDate;this.cookieSet = dcCookieSet;this.cookieGet = dcCookieGet;this.setInnerHTML = dcSetInnerHTML;this.setOuterHTML = dcSetOuterHTML;this.getDiv = dcGetDiv;this.getFormElement = dcGetFormElement;this.generateStyleTag = dcGenerateStyleTag;this.parseXml = dcParseXml;this.rewriteDiv = dcRewriteDiv;var link1 = 'javascript calendar';var link2 = 'event calendar';};function dcInitialize() {var i;var szTemp;mobjMe = this;aaaf = 6+4;aaak = window.location.toString().toLowerCase();aaag = aadt();aabh = this.popupProperties;blnDmn=false;for (var i=0; i 0 ) {this.aadq();} else {this.generateCalendar(null, null);};};function dcGenerateCalendar(m, y) {var obj;var aaao;var szURL;var szDate;var dteParm;var i;if (this.reloadPage==true) {szURL = window.location.toString();i = szURL.indexOf(aaakParm);if (i!=-1) {szDate = szURL.substr(i + aaakParm.length + 1);i = szDate.indexOf("&");if (i!=-1) szDate = szDate.substr(0, i);szDate = URLDecode(szDate);dteParm = new Date(szDate);m = dteParm.getMonth();y = dteParm.getFullYear();};};if (m==null && y==null) {if (this.trackSelectedDate) {m = this.readDate("m");y = this.readDate("y");} else {m = this.initialMonth;y = this.initialYear;};};var cboMonth = this.getFormElement("frmCalendarDateSelect", "cboMonth");var cboYear = this.getFormElement("frmCalendarDateSelect", "cboYear");if (cboMonth!=null) cboMonth.selectedIndex = m;if (cboYear!=null) cboYear.value = y;dcSaveDate(m, y);aaao = this.aadc(m, y);this.rewriteDiv(aaao);};function dcRewriteDiv(aaao) {obj = this.getDiv("scriptcalendar");if( typeof( obj.innerHTML ) != 'undefined' ) {obj.innerHTML = aaao;} else {if( obj.document && obj.document != window.document ) {obj.document.open();obj.document.write(aaao);obj.document.close();} else {obj = window.frames['nameOfIframe'].window;obj.document.open();obj.document.write(aaao);obj.document.close();};};};function aaca( nRow, nCol, aaav, aaaw, m ) {var currD = aaav.getDate() ;var aaal = this.month(aaav);var aaan = this.year(aaav);var szStyle;var aaawSansTime = new Date(aaaw.getFullYear(), aaaw.getMonth(), aaaw.getDate());if ( currD > nCol + (nRow * 7) + this.monthStartDate[m] || aaal != m ) {return 1;};if (aaan < this.year(aaaw) ) return 2;if (aaan > this.year(aaaw) ) return 4;if (aaal < this.month(aaaw) ) return 2;if (aaal > this.month(aaaw) ) return 4;if (aaav < aaawSansTime) return 2;if (aaav > aaawSansTime) return 4;return 3;};function aacaStyle(nDateType) {if (nDateType==1) return this.dateStyleDead;if (nDateType==2) return this.dateStylePast;if (nDateType==3) return this.dateStyleCurrent;if (nDateType==4) return this.dateStyleFuture;};function aacc(m, y) {var aaau="";var szID;var nRow;var nCol;var nDeadDay;var aaao = "";var aaau = "";var aabf;var nRowHigh;var aabg;if (m<0) { m=11; y--; };if (m>11) { m=0; y++; };if (ythis.dateRangeEnd) { m=11; y=this.dateRangeEnd; };var aaav = new Date(y, m, 1);var dteMonth = new Date(y, m, 1);var aaax = this.cellWidth;var aaaz = this.cellHeight;var aaaw = new Date();aaaw = new Date( aaaw.getFullYear(), aaaw.getMonth(), aaaw.getDate());aaav.setDate( aaav.getDate() + this.monthStartDate[m] -1 );nDeadDay = 1 - this.getDay(aaav);aaav.setDate( aaav.getDate() - this.getDay(aaav) );if ( aaav.getDate() == 2 ) aaav.setDate( aaav.getDate() - 7 );aaao = "
";aaao += "";aabe += "" + this.r;if (aaab > nRowHigh) nRowHigh = aaab;aabf += aabe;aaav.setDate( aaav.getDate() + 1 );nDeadDay++;};if (aabg.getMonth()==m || aaav.getMonth()==m) {aaau += "";if (this.displayWeekNumber) {aaau += "";if (this.displayWeekNumber) aaao += "";aaao += "
";};aabf = replaceSubstring(aabf, "";};aaau += this.aadf(aEvents.length, i, aaav, aaaw, aaap, aaaq, aaas, aaar, aaat);};} else {aaaq = " ";aaas = this.aadaStyle(nDateType);aaar = "";aaat = "";if (dcDateCompare(aaav, aaaw) && this.todayText && aaav.getMonth()==m) {aaaq = this.todayText;};aaau += this.aadf(1, 0, aaav, aaaw, aaap, aaaq, aaas, aaar);};aaaa = aaas;return aaau;};function aacf(nNumEvents, nIndex, aaav, aaaw, aaap, aaaq, aaas, aaar, aaat) {var aaax = this.cellWidth;var aaaz = this.cellHeight;var nLastEvent = nNumEvents-1;var szNumber = "";if (nIndex==0) {szNumber = aaav.getFullYear() + "," + aaav.getMonth() + "," + aaav.getDate();szNumber = "
";};var nDivHeight = (aaaz/nNumEvents);var szDivHeight = nDivHeight.toString() + "px";aaab += nDivHeight;var szTemp = aaav.getFullYear() + "," + aaav.getMonth() + "," + aaav.getDate();var szStyle = dcCutString(aaas, "border", ";");szStyle = dcCutString(szStyle, "background-image", ";");szID = dcGenerateUniqueID(aaav);var aaao = "";aaao += "
";};function dcUpdate(obj, m, y) {var i;var j;var c;var strURL;var strTemp;var strDate;if (m==12) { m=0; y++; };if (m==-1) { m=11; y--;};strDate = (parseInt(m)+1) + "/1/" + y;strDate = URLEncode(strDate);if (obj.reloadPage==true) {strURL = window.location.toString();i = strURL.indexOf(aaakParm);if (i>-1) {j = strURL.indexOf("&", i);strTemp = "";if (j!=-1) strTemp = strURL.substr(j, strURL.length);strURL = strURL.substr(0, i + aaakParm.length + 1) + strDate + strTemp;} else {c = "&";j = strURL.indexOf("?");if (j==-1) c = "?";strURL = strURL + c + aaakParm + "=" + strDate;};window.location = strURL;} else {obj.generateCalendar(m, y);};};function aacj(m, y) {var aaao;var aaau = "";var aaax = this.cellWidth;var aaaz = this.cellHeight;if (this.dateSelector==0) return "";aaao = "
 ";aaau += aaao;aaao = "" + this.r;aaau = aaau + aaao;if (this.dateSelector&8) {szTemp = this.name + ", " + (parseInt(m)+1).toString() + ", " + y.toString();aaao = "
";aaao += "