function Epoch(name,mode,targetelement,multiselect){var self=this;function calConfig(){self.versionNumber='2.0.2';self.displayYearInitial=self.curDate.getFullYear();self.displayMonthInitial=self.curDate.getMonth();self.displayYear=self.displayYearInitial;self.displayMonth=self.displayMonthInitial;self.minDate=new Date(2006,0,1);self.maxDate=new Date(2012,11,31);self.startDay=0;self.showWeeks=true;self.selCurMonthOnly=true;}function setLang(){self.daylist=new Array('S','M','T','W','T','F','S','S','M','T','W','T','F','S');self.months_sh=new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');self.monthup_title='Go to the next month';self.monthdn_title='Go to the previous month';self.clearbtn_caption='Clear';self.clearbtn_title='Clears any dates selected on the calendar';self.maxrange_caption='This is the maximum range';self.closebtn_caption='Close';self.closebtn_title='Close the calendar';}function setDays(){self.daynames=new Array();var j=0;for(var i=self.startDay;i');monthUp.setAttribute('title',self.monthup_title);monthDn.setAttribute('type','button');monthDn.setAttribute('value','<');monthDn.setAttribute('title',self.monthdn_title);self.monthSelect.owner=self.yearSelect.owner=monthUp.owner=monthDn.owner=self;function selectonchange(){if(self.goToMonth(self.yearSelect.value,self.monthSelect.value)){self.displayMonth=self.monthSelect.value;self.displayYear=self.yearSelect.value;}else{self.monthSelect.value=self.displayMonth;self.yearSelect.value=self.displayYear;}}addEventHandler(monthUp,'click',function(){self.nextMonth();});addEventHandler(monthDn,'click',function(){self.prevMonth();});addEventHandler(self.monthSelect,'change',selectonchange);addEventHandler(self.yearSelect,'change',selectonchange);container.appendChild(monthDn);container.appendChild(self.monthSelect);container.appendChild(self.yearSelect);container.appendChild(monthUp);return container;}function createFooter(){var container=document.createElement('div');var clearSelected=document.createElement('input');clearSelected.setAttribute('type','button');clearSelected.setAttribute('value',self.clearbtn_caption);clearSelected.setAttribute('title',self.clearbtn_title);clearSelected.owner=self;addEventHandler(clearSelected,'click',function(){self.resetSelections(false);});container.appendChild(clearSelected);if(self.mode=='popup'){var closeBtn=document.createElement('input');closeBtn.setAttribute('type','button');closeBtn.setAttribute('value',self.closebtn_caption);closeBtn.setAttribute('title',self.closebtn_title);addEventHandler(closeBtn,'click',function(){self.hide();});setClass(closeBtn,'closeBtn');container.appendChild(closeBtn);}return container;}function createDayHeading(){self.calHeading=document.createElement('thead');setClass(self.calHeading,'caldayheading');var tr=document.createElement('tr'),th;self.cols=new Array(false,false,false,false,false,false,false);if(self.showWeeks){th=document.createElement('th');setClass(th,'wkhead');tr.appendChild(th);}for(var dow=0;dow<7;dow++){th=document.createElement('th');th.appendChild(document.createTextNode(self.daynames[dow]));if(self.selectMultiple){th.headObj=new CalHeading(self,th,(dow+self.startDay<7?dow+self.startDay:dow+self.startDay-7));}tr.appendChild(th);}self.calHeading.appendChild(tr);return self.calHeading;}function createCalCells(){self.rows=new Array(false,false,false,false,false,false);self.cells=new Array();var row=-1,totalCells =(self.showWeeks?48:42);var beginDate=new Date(self.displayYear,self.displayMonth,1);var endDate=new Date(self.displayYear,self.displayMonth,self.monthDayCount[self.displayMonth]);var sdt=new Date(beginDate);sdt.setDate(sdt.getDate()+(self.startDay-beginDate.getDay())-(self.startDay-beginDate.getDay()> 0?7:0));self.calCells=document.createElement('tbody');var tr,td;var cellIdx=0,cell,week,dayval;for(var i=0;i-1){date=self.dates[idx];cell.date.selected=date.selected||false;cell.date.type=date.type;cell.date.canSelect=date.canSelect;cell.setTitle(date.title);cell.setURL(date.href);cell.setHTML(date.cellHTML);}else{cell.date.selected=false;}if(cell.date.getTime()< self.minDate.getTime()|| cell.date.getTime()> self.maxDate.getTime()){cell.date.canSelect=false;}cell.setClass();}function cal_onmouseover(){self.mousein=true;}function cal_onmouseout(){self.mousein=false;}function updateSelectedDates(){var idx=0;self.selectedDates=new Array();for(i=0;i0){month--;}else{month=11;year--;}return self.goToMonth(year,month);};self.goToMonth=function(year,month){var testdatemin=new Date(year,month,31);var testdatemax=new Date(year,month,1);if(testdatemin>=self.minDate&testdatemax<=self.maxDate){self.monthSelect.value=self.displayMonth=month;self.yearSelect.value=self.displayYear=year;createCalCells();deleteCells();self.calendar.celltable.appendChild(self.calCells);return true;}else{alert(self.maxrange_caption);return false;}};self.updatePos=function(target){if(self.mode=='popup'){self.calendar.style.top=getTop(target)+ self.topOffset+'px';self.calendar.style.left=getLeft(target)+ self.leftOffset+'px';}};self.show=function(){self.updatePos(self.tgt);self.calendar.style.display='block';self.visible=true;};self.hide=function(){self.calendar.style.display='none';self.visible=false;};self.toggle=function(){self.visible?self.hide():self.show();};self.addDates=function(dates,redraw){var i;for(i=0;i-1){self.dates[idx].selected=inpdates[i].selected=false;if(self.dates[idx].type=='normal'){self.dates.splice(idx,1);}}}}updateSelectedDates();if(redraw!=false){self.reDraw();}};self.sendForm=function(form,inputname){var inpname=inputname||'epochdates',f,inp;f =(typeof(form)== 'string'?document.getElementById(form):form);if(!f){alert('ERROR:Invalid form input');return false;}for(var i=0;i0&self.dayOfWeek<6){self.cellClass='wkday';}else{self.cellClass='wkend';}}else{self.cellClass='noselect';}if(self.date.getUeDay()== owner.curDate.getUeDay()){self.cellClass=self.cellClass+' curdate';}tableCell.setAttribute('class',self.cellClass);tableCell.setAttribute('className',self.cellClass);};self.setURL=function(href,type){if(href){if(type=='js'){addEventHandler(self.tableCell,'mousedown',function(){window.location.href=href;});}else{var url=document.createElement('a');url.setAttribute('href',href);url.appendChild(document.createTextNode(self.date.getDate()));self.tableCell.replaceChild(url,self.tableCell.firstChild);}}};self.setTitle=function(titleStr){if(titleStr&titleStr.length>0){self.title=titleStr;self.tableCell.setAttribute('title',titleStr);}};self.setHTML=function(html){if(html&html.length>0){if(self.tableCell.childNodes[1]){self.tableCell.childNodes[1].innerHTML=html;}else{var htmlCont=document.createElement('div');htmlCont.innerHTML=html;self.tableCell.appendChild(htmlCont);}}};self.cellClass;self.tableRow=row;self.tableCell=tableCell;self.date=new Date(dateObj);self.date.canSelect=true;self.date.type='normal';self.date.selected=false;self.date.cellHTML='';self.dayOfWeek=self.date.getDay();self.week=week;addEventHandler(tableCell,'click',calCellonclick);addEventHandler(tableCell,'mouseover',calCellonmouseover);addEventHandler(tableCell,'mouseout',calCellonmouseout);self.setClass();}Date.prototype.getDayOfYear=function(){return parseInt((this.getTime()- new Date(this.getFullYear(),0,1).getTime())/86400000+1);};Date.prototype.getWeek=function(dowOffset){dowOffset=typeof(dowOffset)== 'int'?dowOffset:0;var newYear=new Date(this.getFullYear(),0,1);var day=newYear.getDay()- dowOffset;day =(day>=0?day:day+7);var weeknum,daynum=Math.floor((this.getTime()- newYear.getTime()-(this.getTimezoneOffset()-newYear.getTimezoneOffset())*60000)/86400000)+ 1;if(day<4){weeknum=Math.floor((daynum+day-1)/7)+ 1;if(weeknum>52){nYear=new Date(this.getFullYear()+ 1,0,1);nday=nYear.getDay()- dowOffset;nday=nday>=0?nday:nday+7;weeknum=nday<4?1:53;}}else{weeknum=Math.floor((daynum+day-1)/7);}return weeknum;};Date.prototype.getUeDay=function(){return parseInt(Math.floor((this.getTime()- this.getTimezoneOffset()* 60000)/86400000));};Date.prototype.dateFormat=function(format){if(!format){format='m/d/Y';}LZ=function(x){return(x<0||x>9?'':'0')+ x};var MONTH_NAMES=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 DAY_NAMES=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sun','Mon','Tue','Wed','Thu','Fri','Sat');var result="";var i_format=0;var c="";var token="";var y=this.getFullYear().toString();var M=this.getMonth()+1;var d=this.getDate();var E=this.getDay();var H=this.getHours();var m=this.getMinutes();var s=this.getSeconds();value ={Y:y.toString(),y:y.substring(2),n:M,m:LZ(M),F:MONTH_NAMES[M-1],M:MONTH_NAMES[M+11],j:d,d:LZ(d),D:DAY_NAMES[E+7],l:DAY_NAMES[E],G:H,H:LZ(H)};if(H==0){value['g']=12;}else if(H>12){value['g']=H-12;}else{value['g']=H;}value['h']=LZ(value['g']);if(H>11){value['a']='pm';value['A']='PM';}else{ value['a']='am';value['A']='AM';}value['i']=LZ(m);value['s']=LZ(s);while(i_format