/*!
Epoch DHTML JavaScript Calendar - Version 2.0.2
English Edition
Primary JavaScript File
(c) 2006-2007 MeanFreePath
Free for NON-COMMERCIAL use - see website for details and updates
http://www.meanfreepath.com/javascript_calendar/index.html
!!*/
function Epoch(w,l,t,k,p,f){var n=this;function j(){n.versionNumber="2.0.2";n.displayYearInitial=n.curDate.getFullYear();n.displayMonthInitial=n.curDate.getMonth();n.displayYear=n.displayYearInitial;n.displayMonth=n.displayMonthInitial;if(p>0){n.yearFloor=p}else{n.yearFloor=n.displayYearInitial-3}if(f>0){n.yearCeiling=f}else{n.yearCeiling=n.displayYearInitial+3}n.minDate=new Date(n.yearFloor,0,1);n.maxDate=new Date(n.yearCeiling,11,31);n.startDay=0;n.showWeeks=false;n.selCurMonthOnly=true}function c(){n.daylist=new Array("S","M","T","W","T","F","S","S","M","T","W","T","F","S");n.months_sh=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");n.monthup_title="Go to the next month";n.monthdn_title="Go to the previous month";n.clearbtn_caption="Clear";n.clearbtn_title="Clears any dates selected on the calendar";n.maxrange_caption="This is the maximum range";n.closebtn_caption="Close";n.closebtn_title="Close the calendar"}function m(){n.daynames=new Array();var x=0;for(var y=n.startDay;y<n.startDay+7;y++){n.daynames[x++]=n.daylist[y]}n.monthDayCount=new Array(31,((n.curDate.getFullYear()-2000)%4?28:29),31,30,31,30,31,31,30,31,30,31)}function o(){var x,y,z;n.calendar=document.createElement("table");n.calendar.setAttribute("id",n.name+"_calendar");v(n.calendar,"calendar");n.calendar.style.display="none";addEventHandler(n.calendar,"selectstart",function(){return false});addEventHandler(n.calendar,"drag",function(){return false});x=document.createElement("tbody");y=document.createElement("tr");z=document.createElement("td");z.appendChild(g());y.appendChild(z);x.appendChild(y);y=document.createElement("tr");z=document.createElement("td");n.calendar.celltable=document.createElement("table");v(n.calendar.celltable,"cells");n.calendar.celltable.appendChild(d());n.calendar.celltable.appendChild(h());z.appendChild(n.calendar.celltable);y.appendChild(z);x.appendChild(y);y=document.createElement("tr");z=document.createElement("td");z.appendChild(e());y.appendChild(z);x.appendChild(y);n.calendar.appendChild(x);addEventHandler(n.calendar,"mouseover",s);addEventHandler(n.calendar,"mouseout",a)}function g(){var x=document.createElement("div");v(x,"mainheading");n.monthSelect=document.createElement("select");n.yearSelect=document.createElement("select");var E=document.createElement("input"),C=document.createElement("input");var A,z;for(z=0;z<12;z++){A=document.createElement("option");A.setAttribute("value",z);if(n.displayMonth==z){A.setAttribute("selected","selected")}A.appendChild(document.createTextNode(n.months_sh[z]));n.monthSelect.appendChild(A)}var B=n.maxDate.getFullYear(),D=n.minDate.getFullYear();for(z=D;z<=B;z++){A=document.createElement("option");A.setAttribute("value",z);if(n.displayYear==z){A.setAttribute("selected","selected")}A.appendChild(document.createTextNode(z));n.yearSelect.appendChild(A)}C.setAttribute("type","button");C.setAttribute("value",">");C.setAttribute("title",n.monthup_title);E.setAttribute("type","button");E.setAttribute("value","<");E.setAttribute("title",n.monthdn_title);n.monthSelect.owner=n.yearSelect.owner=C.owner=E.owner=n;function y(){if(n.goToMonth(n.yearSelect.value,n.monthSelect.value)){n.displayMonth=n.monthSelect.value;n.displayYear=n.yearSelect.value}else{n.monthSelect.value=n.displayMonth;n.yearSelect.value=n.displayYear}}addEventHandler(C,"click",function(){n.nextMonth()});addEventHandler(E,"click",function(){n.prevMonth()});addEventHandler(n.monthSelect,"change",y);addEventHandler(n.yearSelect,"change",y);x.appendChild(E);x.appendChild(n.monthSelect);x.appendChild(n.yearSelect);x.appendChild(C);return x}function e(){var x=document.createElement("div");var y=document.createElement("input");y.setAttribute("type","button");y.setAttribute("value",n.clearbtn_caption);y.setAttribute("title",n.clearbtn_title);y.owner=n;addEventHandler(y,"click",function(){n.resetSelections(false)});x.appendChild(y);if(n.mode=="popup"){var z=document.createElement("input");z.setAttribute("type","button");z.setAttribute("value",n.closebtn_caption);z.setAttribute("title",n.closebtn_title);addEventHandler(z,"click",function(){n.hide()});v(z,"closeBtn");x.appendChild(z)}return x}function d(){n.calHeading=document.createElement("thead");v(n.calHeading,"caldayheading");var y=document.createElement("tr"),x;n.cols=new Array(false,false,false,false,false,false,false);if(n.showWeeks){x=document.createElement("th");v(x,"wkhead");y.appendChild(x)}for(var z=0;z<7;z++){x=document.createElement("th");x.appendChild(document.createTextNode(n.daynames[z]));if(n.selectMultiple){x.headObj=new CalHeading(n,x,(z+n.startDay<7?z+n.startDay:z+n.startDay-7))}y.appendChild(x)}n.calHeading.appendChild(y);return n.calHeading}function h(){n.rows=new Array(false,false,false,false,false,false);n.cells=new Array();var I=-1,B=(n.showWeeks?48:42);var C=new Date(n.displayYear,n.displayMonth,1);var E=new Date(n.displayYear,n.displayMonth,n.monthDayCount[n.displayMonth]);var z=new Date(C);z.setDate(z.getDate()+(n.startDay-C.getDay())-(n.startDay-C.getDay()>0?7:0));n.calCells=document.createElement("tbody");var F,A;var x=0,G,y,H;for(var D=0;D<B;D++){if(n.showWeeks){if(D%8==0){I++;y=z.getWeek(n.startDay);F=document.createElement("tr");A=document.createElement("td");if(n.selectMultiple){A.weekObj=new WeekHeading(n,A,y,I)}else{v(A,"wkhead")}A.appendChild(document.createTextNode(y));F.appendChild(A);D++}}else{if(D%7==0){I++;y=z.getWeek(n.startDay);F=document.createElement("tr")}}H=z.getDate();A=document.createElement("td");A.appendChild(document.createTextNode(H));G=new CalCell(n,A,z,I,y);n.cells[x]=G;A.cellObj=G;F.appendChild(A);n.calCells.appendChild(F);n.reDraw(x++);z.setDate(H+1)}return n.calCells}function r(x){if(n.mode=="popup"){n.calendar.style.position="absolute"}if(x){switch(n.mode){case"flat":n.tgt=x;n.tgt.appendChild(n.calendar);n.visible=true;break;case"popup":n.calendar.style.position="absolute";document.body.appendChild(n.calendar);n.setTarget(x,false);break}}else{document.body.appendChild(n.calendar);n.visible=false}}function q(){n.calendar.celltable.removeChild(n.calendar.celltable.childNodes[1])}function v(x,y){x.setAttribute("class",y);x.setAttribute("className",y)}function b(z){var x=n.cells[z];var y;idx=n.dateInArray(n.dates,x.date);if(idx>-1){y=n.dates[idx];x.date.selected=y.selected||false;x.date.type=y.type;x.date.canSelect=y.canSelect;x.setTitle(y.title);x.setURL(y.href);x.setHTML(y.cellHTML)}else{x.date.selected=false}if(x.date.getTime()<n.minDate.getTime()||x.date.getTime()>n.maxDate.getTime()){x.date.canSelect=false}x.setClass()}function s(){n.mousein=true}function a(){n.mousein=false}function u(){var x=0;n.selectedDates=new Array();for(i=0;i<n.dates.length;i++){if(n.dates[i].selected){n.selectedDates[x++]=n.dates[i]}}}n.dateInArray=function(x,y,A){A=(A!=null?A:0);for(var z=A;z<x.length;z++){if(y.getUeDay()==x[z].getUeDay()){return z}}return -1};n.setTarget=function(A,x){if(n.mode=="popup"){function z(){n.show()}function y(){if(!n.mousein){n.hide()}}function D(){n.hide()}if(n.tgt){removeEventHandler(n.tgt,"focus",z);removeEventHandler(n.tgt,"blur",y);removeEventHandler(n.tgt,"keydown",D)}n.tgt=A;var C=n.tgt.dateObj,B=new Array;if(C){if(n.tgt.value.length){B[0]=C}n.goToMonth(C.getFullYear(),C.getMonth())}n.selectDates(B,true,true,true);n.topOffset=n.tgt.offsetHeight;n.leftOffset=0;n.updatePos(n.tgt);addEventHandler(n.tgt,"focus",z);addEventHandler(n.tgt,"blur",y);addEventHandler(n.tgt,"keydown",D);if(x!==false){z()}}else{if(n.tgt){n.tgt.removeChild(n.calendar)}n.tgt=A;n.tgt.appendChild(n.calendar);n.show()}};n.nextMonth=function(){var y=n.displayMonth;var x=n.displayYear;if(n.displayMonth<11){y++}else{if(n.yearSelect.value<n.maxDate.getFullYear()){y=0;x++}}return n.goToMonth(x,y)};n.prevMonth=function(){var y=n.displayMonth;var x=n.displayYear;if(n.displayMonth>0){y--}else{y=11;x--}return n.goToMonth(x,y)};n.goToMonth=function(y,A){var z=new Date(y,A,31);var x=new Date(y,A,1);if(z>=n.minDate&&x<=n.maxDate){n.monthSelect.value=n.displayMonth=A;n.yearSelect.value=n.displayYear=y;h();q();n.calendar.celltable.appendChild(n.calCells);return true}else{alert(n.maxrange_caption);return false}};n.updatePos=function(x){if(n.mode=="popup"){n.calendar.style.top=getTop(x)+n.topOffset+"px";n.calendar.style.left=getLeft(x)+n.leftOffset+"px"}};n.show=function(){n.updatePos(n.tgt);n.calendar.style.display="block";n.visible=true};n.hide=function(){n.calendar.style.display="none";n.visible=false};n.toggle=function(){n.visible?n.hide():n.show()};n.addDates=function(y,z){var x;for(x=0;x<y.length;x++){if(n.dateInArray(n.dates,y[x])==-1){n.dates[n.dates.length]=y[x]}}u();if(z!=false){n.reDraw()}};n.removeDates=function(z,A){var x;for(var y=0;y<z.length;y++){x=n.dateInArray(n.dates,z[y]);if(x!=-1){n.dates.splice(x,1)}}u();if(A!=false){n.reDraw()}};n.selectDates=function(A,y,C,B){var z,x;if(B==true){for(z=0;z<n.dates.length;z++){n.dates[z].selected=false}}for(z=0;z<A.length;z++){x=n.dateInArray(n.dates,A[z]);if(y==true){A[z].selected=true;if(x==-1){n.dates[n.dates.length]=A[z]}else{n.dates[x].selected=true}}else{if(x>-1){n.dates[x].selected=A[z].selected=false;if(n.dates[x].type=="normal"){n.dates.splice(x,1)}}}}u();if(C!=false){n.reDraw()}};n.sendForm=function(B,A){var y=A||"epochdates",C,z;C=(typeof(B)=="string"?document.getElementById(B):B);if(!C){alert("ERROR: Invalid form input");return false}for(var x=0;x<n.dates.length;x++){z=document.createElement("input");z.setAttribute("type","hidden");z.setAttribute("name",y+"["+x+"]");z.setAttribute("value",encodeURIComponent(n.dates[x].dateFormat("Y-m-d")));C.appendChild(z)}return true};n.resetSelections=function(A){var z=new Array();var y=n.dates;for(var x=0;x<y.length;x++){if(y[x].selected){z[z.length]=y[x]}}n.selectDates(z,false,false);n.rows=new Array(false,false,false,false,false,false,false);n.cols=new Array(false,false,false,false,false,false,false);if(n.mode=="popup"){n.tgt.value="";n.hide()}A==true?n.goToMonth(n.displayYearInitial,n.displayMonthInitial):n.reDraw()};n.reDraw=function(y){n.state=1;var x=y?y+1:n.cells.length;for(var z=y||0;z<x;z++){b(z)}n.state=2};n.getCellIndex=function(x){for(var y=0;y<n.cells.length;y++){if(n.cells[y].date.getUeDay()==x.getUeDay()){return y}}return -1};n.state=0;n.name=w;n.curDate=new Date();n.mode=l;n.selectMultiple=(k==true);n.dates=new Array();n.selectedDates=new Array();n.calendar;n.calHeading;n.calCells;n.rows;n.cols;n.cells=new Array();n.monthSelect;n.yearSelect;n.mousein=false;j();c();m();o();t=typeof(t)=="string"?document.getElementById(t):t;r(t);n.state=2;n.visible?n.show():n.hide()}function CalHeading(a,e,c){function d(){var h=a.dates;var f=a.cells;var j=new Array();a.cols[c]=!a.cols[c];for(var g=0;g<f.length;g++){if(f[g].dayOfWeek==c&&f[g].date.canSelect&&(!a.selCurMonthOnly||f[g].date.getMonth()==a.displayMonth&&f[g].date.getFullYear()==a.displayYear)){j[j.length]=f[g].date}}a.selectDates(j,a.cols[c],true)}var b=this;b.dayOfWeek=c;addEventHandler(e,"mouseup",d)}function WeekHeading(c,f,e,b){function a(){var g=c.cells;var j=c.dates;var k=new Array();c.rows[b]=!c.rows[b];for(var h=0;h<g.length;h++){if(g[h].tableRow==b&&g[h].date.canSelect&&(!c.selCurMonthOnly||g[h].date.getMonth()==c.displayMonth&&g[h].date.getFullYear()==c.displayYear)){k[k.length]=g[h].date}}c.selectDates(k,c.rows[b],true)}var d=this;d.week=e;f.setAttribute("class","wkhead");f.setAttribute("className","wkhead");addEventHandler(f,"mouseup",a)}function CalCell(c,f,j,h,b){var g=this;function a(){if(g.date.canSelect){if(c.selectMultiple==true){c.selectDates(new Array(g.date),!g.date.selected,false);g.setClass()}else{c.selectDates(new Array(g.date),true,false,true);if(c.mode=="popup"){c.tgt.value=g.date.dateFormat();c.tgt.dateObj=new Date(g.date);c.hide()}c.reDraw()}}}function e(){if(g.date.canSelect){f.setAttribute("class",g.cellClass+" hover");f.setAttribute("className",g.cellClass+" hover")}}function d(){g.setClass()}g.setClass=function(){if(g.date.canSelect!==false){if(g.date.selected){g.cellClass="cell_selected"}else{if(c.displayMonth!=g.date.getMonth()){g.cellClass="notmnth"}else{if(g.date.type=="holiday"){g.cellClass="hlday"}else{if(g.dayOfWeek>0&&g.dayOfWeek<6){g.cellClass="wkday"}else{g.cellClass="wkend"}}}}}else{g.cellClass="noselect"}if(g.date.getUeDay()==c.curDate.getUeDay()){g.cellClass=g.cellClass+" curdate"}f.setAttribute("class",g.cellClass);f.setAttribute("className",g.cellClass)};g.setURL=function(k,m){if(k){if(m=="js"){addEventHandler(g.tableCell,"mousedown",function(){window.location.href=k})}else{var l=document.createElement("a");l.setAttribute("href",k);l.appendChild(document.createTextNode(g.date.getDate()));g.tableCell.replaceChild(l,g.tableCell.firstChild)}}};g.setTitle=function(k){if(k&&k.length>0){g.title=k;g.tableCell.setAttribute("title",k)}};g.setHTML=function(l){if(l&&l.length>0){if(g.tableCell.childNodes[1]){g.tableCell.childNodes[1].innerHTML=l}else{var k=document.createElement("div");k.innerHTML=l;g.tableCell.appendChild(k)}}};g.cellClass;g.tableRow=h;g.tableCell=f;g.date=new Date(j);g.date.canSelect=true;g.date.type="normal";g.date.selected=false;g.date.cellHTML="";g.dayOfWeek=g.date.getDay();g.week=b;addEventHandler(f,"click",a);addEventHandler(f,"mouseover",e);addEventHandler(f,"mouseout",d);g.setClass()}Date.prototype.getDayOfYear=function(){return parseInt((this.getTime()-new Date(this.getFullYear(),0,1).getTime())/86400000+1)};Date.prototype.getWeek=function(d){d=typeof(d)=="int"?d:0;var c=new Date(this.getFullYear(),0,1);var a=c.getDay()-d;a=(a>=0?a:a+7);var e,b=Math.floor((this.getTime()-c.getTime()-(this.getTimezoneOffset()-c.getTimezoneOffset())*60000)/86400000)+1;if(a<4){e=Math.floor((b+a-1)/7)+1;if(e>52){nYear=new Date(this.getFullYear()+1,0,1);nday=nYear.getDay()-d;nday=nday>=0?nday:nday+7;e=nday<4?1:53}}else{e=Math.floor((b+a-1)/7)}return e};Date.prototype.getUeDay=function(){return parseInt(Math.floor((this.getTime()-this.getTimezoneOffset()*60000)/86400000))};Date.prototype.dateFormat=function(n){if(!n){n="m/d/Y"}LZ=function(c){return(c<0||c>9?"":"0")+c};var f=new Array("January","February","March","April","May","June","July","August","September","October","November","December","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");var g=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sun","Mon","Tue","Wed","Thu","Fri","Sat");var r="";var e=0;var k="";var b="";var l=this.getFullYear().toString();var j=this.getMonth()+1;var h=this.getDate();var q=this.getDay();var o=this.getHours();var a=this.getMinutes();var p=this.getSeconds();value={Y:l.toString(),y:l.substring(2),n:j,m:LZ(j),F:f[j-1],M:f[j+11],j:h,d:LZ(h),D:g[q+7],l:g[q],G:o,H:LZ(o)};if(o==0){value.g=12}else{if(o>12){value.g=o-12}else{value.g=o}}value.h=LZ(value.g);if(o>11){value.a="pm";value.A="PM"}else{value.a="am";value.A="AM"}value.i=LZ(a);value.s=LZ(p);while(e<n.length){k=n.charAt(e);b="";while((n.charAt(e)==k)&&(e<n.length)){b+=n.charAt(e++)}if(value[b]!=null){r=r+value[b]}else{r=r+b}}return r};function addEventHandler(a,b,c){if(a.addEventListener){a.addEventListener(b,c,false)}else{if(a.attachEvent){a.attachEvent("on"+b,c)}}}function removeEventHandler(a,b,c){if(a.removeEventListener){a.removeEventListener(b,c,false)}else{if(a.attachEvent){a.detachEvent("on"+b,c)}}}function getTop(a){var c=a;var b=0;while(c.tagName!="HTML"){b+=c.offsetTop||0;if(c.offsetParent){c=c.offsetParent}else{break}}return b}function getLeft(a){var c=a;var b=0;while(c.tagName!="HTML"){b+=c.offsetLeft||0;if(c.offsetParent){c=c.offsetParent}else{break}}return b};
