function DDCal(d,b,a,c){this.state=0;this.name=d;this.curDate=new Date();this.mode=b;this.selectMultiple=(c==true);this.selectedDates=new Array();this.calendar;this.calHeading;this.calCells;this.rows;this.cols;this.cells=new Array();this.altElms=Array();this.altElmsSki=new Array("drx","dax","dex","abx","dux","rax","bbx");this.formname=document.getElementById("calID").value;switch(this.formname){case"ski":this.altElms=this.altElmsSki;break;case"ski2":break;case"ski3":break;default:this.altElms=this.altElmsSki}this.monthSelect;this.yearSelect;this.mousein=false;this.calConfig();this.setDays();this.displayYear=this.displayYearInitial;this.displayMonth=this.displayMonthInitial;this.createCalendar();if(this.mode=="popup"&&a&&a.type=="text"){this.tgt=a;this.calendar.style.position="absolute";this.topOffset=this.tgt.offsetHeight;this.leftOffset=0;this.calendar.style.top=this.getTop(a)+this.topOffset+"px";this.calendar.style.left=this.getLeft(a)+this.leftOffset+"px";document.body.appendChild(this.calendar);this.tgt.calendar=this;this.tgt.onfocus=function(){this.calendar.show()};this.tgt.onblur=function(){if(!this.calendar.mousein){this.calendar.hide()}}}else{this.container=a;this.container.appendChild(this.calendar)}this.state=2;this.visible?this.show():this.hide()}DDCal.prototype.calConfig=function(){this.displayYearInitial=this.curDate.getFullYear();if(this.curDate.getMonth()>2&&this.curDate.getMonth()<11){this.displayMonthInitial=11}else{this.displayMonthInitial=this.curDate.getMonth()}this.rangeYearLower=this.curDate.getFullYear();this.rangeYearUpper=this.curDate.getFullYear()+2;this.minDate=new Date(2005,0,1);this.maxDate=new Date(2037,0,1);this.startDay=0;this.showWeeks=true;this.selCurMonthOnly=false;this.clearSelectedOnChange=true;switch(this.mode){case"popup":this.visible=false;break;case"flat":this.visible=true;break}this.setLang()};DDCal.prototype.setLang=function(){this.daylist=new Array("Su","Mo","Tu","We","Th","Fr","Sa","Su","Mo","Tu","We","Th","Fr","Sa");this.months_sh=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");this.monthup_title="Go to the next month";this.monthdn_title="Go to the previous month";this.clearbtn_caption="Clear";this.clearbtn_title="Clears any dates selected on the calendar";this.maxrange_caption="This is the maximum range"};DDCal.prototype.getTop=function(b){var a=b;var c=0;c+=a.offsetTop;while(a=a.offsetParent){c+=a.offsetTop}return c};DDCal.prototype.getLeft=function(b){var a=b;var c=0;c+=a.offsetLeft;while(a=a.offsetParent){c+=a.offsetLeft}return c};DDCal.prototype.show=function(){this.calendar.style.display="block";this.visible=true;for(var a=0;a<this.altElms.length;a++){document.getElementById(this.altElms[a]).style.visibility="hidden"}};DDCal.prototype.hide=function(){this.calendar.style.display="none";this.visible=false;for(var a=0;a<this.altElms.length;a++){document.getElementById(this.altElms[a]).style.visibility="visible"}};DDCal.prototype.toggle=function(){if(this.visible){this.hide()}else{this.show()}};DDCal.prototype.setDays=function(){this.daynames=new Array();var a=0;for(var b=this.startDay;b<this.startDay+7;b++){this.daynames[a++]=this.daylist[b]}this.monthDayCount=new Array(31,((this.curDate.getFullYear()-2000)%4?28:29),31,30,31,30,31,31,30,31,30,31)};DDCal.prototype.setClass=function(a,b){a.setAttribute("class",b);a.setAttribute("className",b)};DDCal.prototype.createCalendar=function(){var b,c,a;this.calendar=document.createElement("table");this.calendar.setAttribute("id",this.name+"_calendar");this.setClass(this.calendar,"calendar");this.calendar.onselectstart=function(){return false};this.calendar.ondrag=function(){return false};b=document.createElement("tbody");c=document.createElement("tr");a=document.createElement("td");a.appendChild(this.createMainHeading());c.appendChild(a);b.appendChild(c);c=document.createElement("tr");a=document.createElement("td");a.appendChild(this.createDayHeading());c.appendChild(a);b.appendChild(c);c=document.createElement("tr");a=document.createElement("td");a.setAttribute("id",this.name+"_cell_td");this.calCellContainer=a;a.appendChild(this.createCalCells());c.appendChild(a);b.appendChild(c);c=document.createElement("tr");a=document.createElement("td");a.appendChild(this.createFooter());c.appendChild(a);b.appendChild(c);this.calendar.appendChild(b);this.calendar.owner=this;this.calendar.onmouseover=function(){this.owner.mousein=true};this.calendar.onmouseout=function(){this.owner.mousein=false}};DDCal.prototype.createMainHeading=function(){var d=document.createElement("div");d.setAttribute("id",this.name+"_mainheading");this.setClass(d,"mainheading");this.monthSelect=document.createElement("select");this.yearSelect=document.createElement("select");var c=document.createElement("input"),b=document.createElement("input");var a,e;for(e=0;e<12;e++){a=document.createElement("option");a.setAttribute("value",e);if(this.state==0&&this.displayMonth==e){a.setAttribute("selected","selected")}a.appendChild(document.createTextNode(this.months_sh[e]));this.monthSelect.appendChild(a)}for(e=this.rangeYearLower;e<=this.rangeYearUpper;e++){a=document.createElement("option");a.setAttribute("value",e);if(this.state==0&&this.displayYear==e){a.setAttribute("selected","selected")}a.appendChild(document.createTextNode(e));this.yearSelect.appendChild(a)}b.setAttribute("type","button");b.setAttribute("value",">");b.setAttribute("title",this.monthup_title);c.setAttribute("type","button");c.setAttribute("value","<");c.setAttribute("title",this.monthdn_title);this.monthSelect.owner=this.yearSelect.owner=b.owner=c.owner=this;b.onmouseup=function(){this.owner.nextMonth()};c.onmouseup=function(){this.owner.prevMonth()};this.monthSelect.onchange=function(){this.owner.displayMonth=this.value;this.owner.displayYear=this.owner.yearSelect.value;this.owner.goToMonth(this.owner.displayYear,this.owner.displayMonth)};this.yearSelect.onchange=function(){this.owner.displayMonth=this.owner.monthSelect.value;this.owner.displayYear=this.value;this.owner.goToMonth(this.owner.displayYear,this.owner.displayMonth)};d.appendChild(c);d.appendChild(this.monthSelect);d.appendChild(this.yearSelect);d.appendChild(b);return d};DDCal.prototype.createFooter=function(){var a=document.createElement("div");var b=document.createElement("input");b.setAttribute("type","button");b.setAttribute("value",this.clearbtn_caption);b.setAttribute("title",this.clearbtn_title);b.owner=this;b.onclick=function(){this.owner.resetSelections(false)};a.appendChild(b);return a};DDCal.prototype.resetSelections=function(a){this.selectedDates=new Array();this.rows=new Array(false,false,false,false,false,false,false);this.cols=new Array(false,false,false,false,false,false,false);if(this.tgt){this.tgt.value="";if(this.mode=="popup"){this.hide()}}if(a==true){this.goToMonth(this.displayYearInitial,this.displayMonthInitial)}else{this.reDraw()}};DDCal.prototype.createDayHeading=function(){this.calHeading=document.createElement("table");this.calHeading.setAttribute("id",this.name+"_caldayheading");this.setClass(this.calHeading,"caldayheading");var c,d,b;c=document.createElement("tbody");d=document.createElement("tr");this.cols=new Array(false,false,false,false,false,false,false);if(this.showWeeks){b=document.createElement("td");b.setAttribute("class","wkhead");b.setAttribute("className","wkhead");d.appendChild(b)}for(var a=0;a<7;a++){b=document.createElement("td");b.appendChild(document.createTextNode(this.daynames[a]));if(this.selectMultiple){b.headObj=new CalHeading(this,b,(a+this.startDay<7?a+this.startDay:a+this.startDay-7))}d.appendChild(b)}c.appendChild(d);this.calHeading.appendChild(c);return this.calHeading};DDCal.prototype.createCalCells=function(){this.rows=new Array(false,false,false,false,false,false);this.cells=new Array();var h=-1,a=(this.showWeeks?48:42);var b=new Date(this.displayYear,this.displayMonth,1);var e=new Date(this.displayYear,this.displayMonth,this.monthDayCount[this.displayMonth]);var j=new Date(b);j.setDate(j.getDate()+(this.startDay-b.getDay())-(this.startDay-b.getDay()>0?7:0));this.calCells=document.createElement("table");this.calCells.setAttribute("id",this.name+"_calcells");this.setClass(this.calCells,"calcells");var d,f,k;d=document.createElement("tbody");for(var c=0;c<a;c++){if(this.showWeeks){if(c%8==0){h++;f=document.createElement("tr");k=document.createElement("td");if(this.selectMultiple){k.weekObj=new WeekHeading(this,k,j.getWeek(),h)}else{k.setAttribute("class","wkhead");k.setAttribute("className","wkhead")}k.appendChild(document.createTextNode(j.getWeek()));f.appendChild(k);c++}}else{if(c%7==0){h++;f=document.createElement("tr")}}k=document.createElement("td");k.appendChild(document.createTextNode(j.getDate()));var g=new CalCell(this,k,j,h);this.cells.push(g);k.cellObj=g;j.setDate(j.getDate()+1);f.appendChild(k);d.appendChild(f)}this.calCells.appendChild(d);this.reDraw();return this.calCells};DDCal.prototype.reDraw=function(){this.state=1;var b,a;for(b=0;b<this.cells.length;b++){this.cells[b].selected=false}for(b=0;b<this.cells.length;b++){for(a=0;a<this.selectedDates.length;a++){if(this.cells[b].date.getUeDay()==this.selectedDates[a].getUeDay()){this.cells[b].selected=true}}this.cells[b].setClass()}this.state=2};DDCal.prototype.deleteCells=function(){this.calCellContainer.removeChild(this.calCellContainer.firstChild);this.cells=new Array()};DDCal.prototype.goToMonth=function(a,b){this.monthSelect.value=this.displayMonth=b;this.yearSelect.value=this.displayYear=a;this.deleteCells();this.calCellContainer.appendChild(this.createCalCells())};DDCal.prototype.nextMonth=function(){if(this.monthSelect.value<11){this.monthSelect.value++}else{if(this.yearSelect.value<this.rangeYearUpper){this.monthSelect.value=0;this.yearSelect.value++}else{alert(this.maxrange_caption)}}this.displayMonth=this.monthSelect.value;this.displayYear=this.yearSelect.value;this.deleteCells();this.calCellContainer.appendChild(this.createCalCells())};DDCal.prototype.prevMonth=function(){if(this.monthSelect.value>0){this.monthSelect.value--}else{if(this.yearSelect.value>this.rangeYearLower){this.monthSelect.value=11;this.yearSelect.value--}else{alert(this.maxrange_caption)}}this.displayMonth=this.monthSelect.value;this.displayYear=this.yearSelect.value;this.deleteCells();this.calCellContainer.appendChild(this.createCalCells())};DDCal.prototype.addZero=function(a){return((a<10)?"0":"")+a};DDCal.prototype.addDates=function(b,c){var d,a;for(var e=0;e<b.length;e++){a=false;for(d=0;d<this.selectedDates.length;d++){if(b[e].getUeDay()==this.selectedDates[d].getUeDay()){a=true;break}}if(!a){this.selectedDates.push(b[e])}}if(c!=false){this.reDraw()}};DDCal.prototype.removeDates=function(a,b){var c;for(var d=0;d<a.length;d++){for(c=0;c<this.selectedDates.length;c++){if(a[d].getUeDay()==this.selectedDates[c].getUeDay()){this.selectedDates.splice(c,1)}}}if(b!=false){this.reDraw()}};DDCal.prototype.outputDate=function(a,g){var h=this.addZero(a.getDate());var e=this.addZero(a.getMonth()+1);var i=this.addZero(a.getFullYear());var d=this.addZero(a.getFullYear().toString().substring(3,4));var f=(g.indexOf("yyyy")>-1?i:d);var c=this.addZero(a.getHours());var b=this.addZero(a.getMinutes());var j=this.addZero(a.getSeconds());return g.replace(/dd/g,h).replace(/mm/g,e).replace(/y{1,4}/g,f).replace(/hh/g,c).replace(/nn/g,b).replace(/ss/g,j)};DDCal.prototype.updatePos=function(a){this.calendar.style.top=this.getTop(a)+this.topOffset+"px";this.calendar.style.left=this.getLeft(a)+this.leftOffset+"px"};function CalHeading(b,a,c){this.owner=b;this.tableCell=a;this.dayOfWeek=c;this.tableCell.onclick=this.onclick}CalHeading.prototype.onclick=function(){var d=this.headObj.owner;var c=d.selectedDates;var a=d.cells;d.cols[this.headObj.dayOfWeek]=!d.cols[this.headObj.dayOfWeek];for(var b=0;b<a.length;b++){if(a[b].dayOfWeek==this.headObj.dayOfWeek&&(!d.selCurMonthOnly||a[b].date.getMonth()==d.displayMonth&&a[b].date.getFullYear()==d.displayYear)){if(d.cols[this.headObj.dayOfWeek]){if(d.selectedDates.arrayIndex(a[b].date)==-1){c.push(a[b].date)}}else{for(var e=0;e<c.length;e++){if(a[b].dayOfWeek==c[e].getDay()){c.splice(e,1);break}}}a[b].selected=d.cols[this.headObj.dayOfWeek]}}d.reDraw()};function WeekHeading(c,b,d,a){this.owner=c;this.tableCell=b;this.week=d;this.tableRow=a;this.tableCell.setAttribute("class","wkhead");this.tableCell.setAttribute("className","wkhead");this.tableCell.onclick=this.onclick}WeekHeading.prototype.onclick=function(){var d=this.weekObj.owner;var a=d.cells;var c=d.selectedDates;var b,e;d.rows[this.weekObj.tableRow]=!d.rows[this.weekObj.tableRow];for(b=0;b<a.length;b++){if(a[b].tableRow==this.weekObj.tableRow){if(d.rows[this.weekObj.tableRow]&&(!d.selCurMonthOnly||a[b].date.getMonth()==d.displayMonth&&a[b].date.getFullYear()==d.displayYear)){if(d.selectedDates.arrayIndex(a[b].date)==-1){c.push(a[b].date)}}else{for(e=0;e<c.length;e++){if(c[e].getTime()==a[b].date.getTime()){c.splice(e,1);break}}}}}d.reDraw()};function CalCell(c,b,d,a){this.owner=c;this.tableCell=b;this.cellClass;this.selected=false;this.date=new Date(d);this.dayOfWeek=this.date.getDay();this.week=this.date.getWeek();this.tableRow=a;this.tableCell.onclick=this.onclick;this.tableCell.onmouseover=this.onmouseover;this.tableCell.onmouseout=this.onmouseout;this.setClass()}CalCell.prototype.onmouseover=function(){this.setAttribute("class",this.cellClass+" hover");this.setAttribute("className",this.cellClass+" hover")};CalCell.prototype.onmouseout=function(){this.cellObj.setClass()};CalCell.prototype.onclick=function(){var d=this.cellObj;var c=d.owner;if(!c.selCurMonthOnly||d.date.getMonth()==c.displayMonth&&d.date.getFullYear()==c.displayYear){if(c.selectMultiple==true){if(!d.selected){if(c.selectedDates.arrayIndex(d.date)==-1){c.selectedDates.push(d.date)}}else{var b=c.selectedDates;for(var a=0;a<b.length;a++){if(b[a].getUeDay()==d.date.getUeDay()){b.splice(a,1)}}}}else{c.selectedDates=new Array(d.date);if(c.tgt){c.tgt.value=c.selectedDates[0].dateFormat();if(c.mode=="popup"){c.hide()}}}c.reDraw()}};CalCell.prototype.setClass=function(){if(this.selected){this.cellClass="cell_selected"}else{if(this.owner.displayMonth!=this.date.getMonth()){this.cellClass="notmnth"}else{if(this.date.getDay()>0&&this.date.getDay()<6){this.cellClass="wkday"}else{this.cellClass="wkend"}}}if(this.date.getFullYear()==this.owner.curDate.getFullYear()&&this.date.getMonth()==this.owner.curDate.getMonth()&&this.date.getDate()==this.owner.curDate.getDate()){this.cellClass=this.cellClass+" curdate"}this.tableCell.setAttribute("class",this.cellClass);this.tableCell.setAttribute("className",this.cellClass)};Date.prototype.getDayOfYear=function(){return parseInt((this.getTime()-new Date(this.getFullYear(),0,1).getTime())/86400000+1)};Date.prototype.getWeek=function(){return parseInt((this.getTime()-new Date(this.getFullYear(),0,1).getTime())/604800000+1)};Date.prototype.getUeDay=function(){return parseInt(Math.floor((this.getTime()-this.getTimezoneOffset()*60000)/86400000))};Date.prototype.dateFormat=function(u){if(!u){u="d M Y"}LZ=function(c){return(c<0||c>9?"":"0")+c};var O=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 t=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sun","Mon","Tue","Wed","Thu","Fri","Sat");u=u+"";var a="";var v=0;var x="";var G="";var N=this.getFullYear().toString();var J=this.getMonth()+1;var w=this.getDate();var e=this.getDay();var b=this.getHours();var f=this.getMinutes();var j=this.getSeconds();var p,r,C,o,A,D,q,n,g,i,I,b,F,L,B,l;var z=new Object();z.Y=N.toString();z.y=N.substring(2);z.n=J;z.m=LZ(J);z.F=O[J-1];z.M=O[J+11];z.j=w;z.d=LZ(w);z.D=t[e+7];z.l=t[e];z.G=b;z.H=LZ(b);if(b==0){z.g=12}else{if(b>12){z.g=b-12}else{z.g=b}}z.h=LZ(z.g);if(b>11){z.a="pm";z.A="PM"}else{z.a="am";z.A="AM"}z.i=LZ(f);z.s=LZ(j);while(v<u.length){x=u.charAt(v);G="";while((u.charAt(v)==x)&&(v<u.length)){G+=u.charAt(v++)}if(z[G]!=null){a=a+z[G]}else{a=a+G}}return a};Array.prototype.arrayIndex=function(b,a){a=(a!=null?a:0);for(var c=a;c<this.length;c++){if(b==this[c]){return c}}return -1};