Calendar.prototype.updateDaySelectOptions=function(){var b=this.dayField.options;var h=0;var g=0;var f=this.displayDate.getMonth();var e=this.displayDate.getDate();var a=new Date(this.displayDate);for(var c=1;c<=31;++c){a.setDate(c);if(f==a.getMonth()){if(a.dateWithinRanges(this.dateRanges)){if(c==e){g=h}b[h]=new Option(a.format("DDD DD"),c);++h}}}b.length=h;this.dayField.selectedIndex=g};Calendar.prototype.updateMonthYearSelectOptions=function(){var f=this.monthYearField.options;var g=0;var j=0;var h=this.displayDate.getMonth();var l=this.displayDate.getFullYear();var k=this.endDate.getMonth();var d=this.endDate.getFullYear();var e=new Date(this.startDate);e.setDate(1);var i=e.getMonth();var a=e.getFullYear();while(a<d||(i<=k&&a<=d)){if(e.monthWithinRanges(this.dateRanges)){if(i==h&&a==l){j=g}var b=e.getShortMonth()+" "+a;var c=(i+1)+","+a;f[g]=new Option(b,c);++g}e.setMonth(i+1);i=e.getMonth();a=e.getFullYear()}f.length=g;this.monthYearField.selectedIndex=j};Calendar.prototype.updateHourSelectOptions=function(){var a=this.hourField.options;var d=this.hourField.value;a.length=0;var g=new DateRange(new Date(this.displayDate),new Date(this.displayDate));g.from.setHours(0,0,0);g.to.setHours(11,59,59);var c=false;var e=null;if(this.isAnytime){if(this.isAnytimeSelected||!this.hasUserSetHour){e=a.length}a[a.length]=new Option("Anytime","Anytime",false,false)}if(g.intersectsRanges(this.dateRanges)){if(this.hourRangeSelected&&g.withinRange(this.displayDate)&&e==null){e=a.length}a[a.length]=new Option("Morning","Morning",false,false)}g.from.setHours(12,0,0);g.to.setHours(17,59,59);if(g.intersectsRanges(this.dateRanges)){if(this.hourRangeSelected&&g.withinRange(this.displayDate)&&e==null){e=a.length}a[a.length]=new Option("Afternoon","Afternoon",false,false)}g.from.setHours(18,0,0);g.to.setHours(20,59,59);if(g.intersectsRanges(this.dateRanges)){if(this.hourRangeSelected&&g.withinRange(this.displayDate)&&e==null){e=a.length}a[a.length]=new Option("Evening","Evening",false,false)}var f=new Date(this.displayDate);for(var b=1;b<=23;++b){f.setHours(b,0,0);if(f.withinRanges(this.dateRanges)){if(e==null&&b==this.displayDate.getHours()){e=a.length}a[a.length]=new Option((b<10?("0"+b+":00"):(b+":00")),b,false,false)}}this.hourField.selectedIndex=e};Calendar.prototype.updateFormInputs=function(){if(this.haveFieldsBeenInserted){this.timeField.value=this.displayDate.getTime();this.formattedField.value=this.displayDate.format("YYYYmmDDHH00");this.bookLeadFormattedField.value=this.startDate.format("YYYYmmDDHH00");this.yearField.value=this.displayDate.getFullYear();this.monthField.value=this.displayDate.getMonth()+1;if(this.showMonthYearField){this.updateMonthYearSelectOptions()}else{this.monthYearField.value=this.monthField.value+","+this.yearField.value}if(this.showDayField){this.updateDaySelectOptions()}else{this.dayField.value=this.displayDate.getDate()}if(this.showHourField){this.updateHourSelectOptions()}else{this.hourField.value=this.displayDate.getHours()}}};Calendar.prototype.update=function(a){this.displayDate=new Date(a.getTime());if(!this.displayDate.withinRanges(this.dateRanges)){this.pullWithinRange()}this.updateFormInputs();this.divCalendar.innerHTML=this.createCalendarHtml();if(this.onChangeCallback!=null){this.onChangeCallback()}if(this.popup!=null){if(this.useIePopup){this.popup.document.body.innerHTML=this.divCalendar.innerHTML}else{this.popup=this.divCalendar}}};Calendar.prototype.pullWithinRange=function(){var f=false;var e=null;var a=null;var g=this.displayDate.getTime();for(var b=0;b<this.dateRanges.length;++b){var d=this.dateRanges[b].from.getTime();var c=this.dateRanges[b].to.getTime();if(c<g&&(e==null||(g-c)<(g-e.getTime()))){e=new Date(c)}else{if(g<d&&(a==null||(d-g)<(a.getTime()-g))){a=new Date(d)}}}if(e!=null&&e.getMonth()==this.displayDate.getMonth()){this.displayDate=e}else{if(a!=null&&a.getMonth()==this.displayDate.getMonth()){this.displayDate=a}else{this.displayDate=this.dateRanges[0].from}}};Calendar.prototype.updateDayOfMonth=function(b){var a=new Date(this.displayDate);a.setDate(b);if(this.hasUserSetHour==false&&this.defaultHour!=null&&this.defaultHour>=0&&this.defaultHour<=23){a.setHours(this.defaultHour,0,0)}this.update(a);this.adjustHourOfDay()};Calendar.prototype.updateMonthYear=function(a){var b=a.split(",");var d=b[0]-1;var c=b[1];var e=new Date(this.displayDate);e.setFullYear(c);e.setMonth(d);while(d!=e.getMonth()){e.setTime(e.getTime()-24*60*60*1000)}if(this.hasUserSetHour==false&&this.defaultHour!=null&&this.defaultHour>=0&&this.defaultHour<=23){e.setHours(this.defaultHour,0,0)}this.update(e);this.adjustHourOfDay()};Calendar.prototype.updateHourOfDay=function(a){this.hasUserSetHour=true;this.hourRangeSelected=isNaN(parseInt(a));var c=a.toString().toLowerCase();if("morning"==c){a=(this.isAnytime==true)?6:1}else{if("afternoon"==c){a=(this.isAnytime==true)?15:12}else{if("evening"==c){a=(this.isAnytime==true)?20:18}}}if("anytime"==c){this.isAnytimeSelected=true;a=12}else{this.isAnytimeSelected=false}var b=new Date(this.displayDate);b.setHours(a);this.update(b);this.adjustHourOfDay()};Calendar.prototype.adjustHourOfDay=function(){if(this.hourRangeSelected){var a=this.hourField.value;var c=a.toString().toLowerCase();if("morning"==c){a=(this.isAnytime==true)?6:1}else{if("afternoon"==c){a=(this.isAnytime==true)?15:12}else{if("evening"==c){a=(this.isAnytime==true)?20:18}}}if("anytime"==c){this.isAnytimeSelected=true;a=12}else{this.isAnytimeSelected=false}if(a!=this.displayDate.getHours()){var b=new Date(this.displayDate);b.setHours(a);this.update(b)}}};Calendar.prototype.createCalendarHtml=function(){var c='<table class="calendar" cellspacing="0" ';if(this.showCalendarIcon){c+='onmouseout="javascript:'+this.popupVarName()+'.mouseOut();" onmouseover="javascript:'+this.popupVarName()+'.mouseOver();"'}c+='>\n<tr>\n<td style="padding:0;">\n<table class="months" cellspacing="0">\n<tr>';var o=this.displayDate.getDate();var f=this.displayDate.getMonth();var p=this.displayDate.getFullYear();var l=this.endDate.getMonth();var d=this.endDate.getFullYear();var e=new Date(this.startDate);e.setDate(1);var g=e.getMonth();var b=e.getFullYear();var k=0;while(b<d||(g<=l&&b<=d)||k%7!=0){c+="<th ";if(e.monthWithinRanges(this.dateRanges)){var a=(g+1)+","+b;if(g==f&&b==p){c+=' class="active"'}else{c+=' class="month"';c+=' onclick="javascript:'+this.popupVarName()+".updateMonthYear('"+a+'\');" title="'+e.getShortMonth()+" "+b+'"';c+=" onmouseover=\"javascript:this.className+=' hover';\"";c+=" onmouseout=\"javascript:this.className=this.className.replace(/ hover/,'');\""}}else{c+=' class="disabled" '}c+=">"+e.getShortMonth()+"</th>";e.setMonth(g+1);g=e.getMonth();b=e.getFullYear();if(++k%7==0){c+="\n</tr>\n<tr>"}}c+="\n</tr>";c+="\n</table>";c+='\n<table class="date"><tr><th>'+this.displayDate.format("DDD, D mmmm YYYY")+"</th></tr></table>";c+='\n<table class="days">';c+="\n<tr><th>Sun</th><th>Mon</th><th>Tue</th><th>Wed</th><th>Thu</th><th>Fri</th><th>Sat</th></tr>";var e=new Date(this.displayDate);e.setDate(1);var n=e.getDay();for(var k=0;k<6;++k){c+="\n<tr>";for(var h=0;h<7;++h){if((h+7*k)>=n&&e.getMonth()==this.displayDate.getMonth()){c+="<td ";if(this.dateRanges==null||e.dateWithinRanges(this.dateRanges)){if(e.getDate()==o&&e.getMonth()==f&&e.getYear()==p){c+=' class="active"'}else{c+=' class="date"';c+=" onmouseover=\"javascript:this.className=this.className+' hover';\"";c+=" onmouseout=\"javascript:this.className=this.className.replace(/ hover/ig,'');\""}c+=' onclick="javascript:'+this.popupVarName()+".hidePopup();"+this.popupVarName()+".updateDayOfMonth("+e.getDate()+');"'}else{c+=' class="disabled"'}c+=">"+e.getDate()+"</td>";e.setDate((h+7*k)+2-n)}else{c+="<td>&nbsp;</td>"}}c+="</tr>"}c+="\n</table>\n</td>\n</tr>\n</table>";return c};Calendar.prototype.millisecondTimeout=500;Calendar.prototype.useIePopup=(window.createPopup?true:false);Calendar.prototype.popupVarName=function(){return(this.useIePopup?("parent."+this.varName):this.varName)};Calendar.prototype.popupCreate=function(){this.clearPopupTimers();this.mouseOverCounter=0;this.popupX=0;this.popupY=this.dayField.offsetHeight+1;if(this.useIePopup){this.popup=this.win.createPopup();var b=this.popup.document.createElement("link");b.href=this.calendarCSS;b.rel="stylesheet";b.type="text/css";this.popup.document.body.parentNode.insertBefore(b,this.popup.document.body);this.popup.document.body.innerHTML=this.divCalendar.innerHTML;this.popup.show(0,this.monthYearField.offsetHeight,$j(this.divCalendar).width(),$j(this.divCalendar).height()+2,this.monthYearField)}else{var a=this.monthYearField;while(a.offsetParent!=null){a=a.offsetParent}this.popup=this.divCalendar;$j(this.popup).show()}this.mouseOver()};Calendar.prototype.mouseOver=function(){this.mouseOverCounter++};Calendar.prototype.mouseOut=function(){this.mouseOverCounter--;var a;if((parent.location.href!=location.href)&&(this.useIePopup)){a=this.popupVarName().split(".")[1]}else{a=this.popupVarName()}this.popupTimers.push(window.setTimeout(a+".timeoutPopup();",this.millisecondTimeout))};Calendar.prototype.timeoutPopup=function(){if(this.mouseOverCounter<=0){this.hidePopup()}};Calendar.prototype.clearPopupTimers=function(){while(this.popupTimers.length>0){window.clearTimeout(this.popupTimers.shift())}this.mouseOverCounter=0};Calendar.prototype.hidePopup=function(){this.clearPopupTimers();if(this.popup!=null){if(this.useIePopup){this.popup.hide()}else{$j(this.popup).hide()}}this.popup=null};Calendar.prototype.popupToggle=function(){if(this.popup==null&&!this.dayField.disabled&&!this.monthYearField.disabled){this.popupCreate()}else{this.hidePopup()}};Calendar.prototype.setEnabled=function(a){if(this.dayField.type!="hidden"){this.dayField.disabled=(!a)}if(this.monthYearField.type!="hidden"){this.monthYearField.disabled=(!a)}if(this.hourField.type!="hidden"){this.hourField.disabled=(!a)}if(a){this.calendarIcon.className=this.calendarIcon.className.replace(/disabled/ig,"")}else{this.calendarIcon.className+=" disabled"}};Calendar.prototype.createCalendar=function(b){this.fieldTag=this.doc.getElementById(this.fieldTagId);while(this.fieldTag.hasChildNodes()){this.fieldTag.removeChild(this.fieldTag.firstChild)}this.calendarTag=((this.calendarTagId==null)?null:this.doc.getElementById(this.calendarTagId));while(this.calendarTag!=null&&this.calendarTag.hasChildNodes()){this.calendarTag.removeChild(this.calendarTag.firstChild)}var a=this.doc.createElement("div");a.className="clearit";a.appendChild(this.monthYearField);a.appendChild(this.dayField);if(this.showCalendarIcon){a.appendChild(this.calendarIcon)}a.appendChild(this.hourField);a.appendChild(this.yearField);a.appendChild(this.monthField);a.appendChild(this.timeField);a.appendChild(this.formattedField);a.appendChild(this.bookLeadFormattedField);this.fieldTag.appendChild(a);this.haveFieldsBeenInserted=true;this.update(this.startDate);if(b){if(this.showCalendarIcon||this.calendarTagId==null){$j("#"+b).prepend(this.divCalendar)}else{this.calendarTag.appendChild(this.divCalendar)}}else{if(this.showCalendarIcon||this.calendarTagId==null){$j("#"+this.fieldTagId).prepend(this.divCalendar)}else{this.calendarTag.appendChild(this.divCalendar)}}};Calendar.prototype.setOnChangeCallback=function(a){this.onChangeCallback=a};Calendar.prototype.getDate=function(){return(this.displayDate==null?this.startDate:this.displayDate)};Calendar.prototype.setCalendarCSS=function(a){this.calendarCSS=a};Calendar.prototype.setDefaultHour=function(a){this.defaultHour=a};Calendar.prototype.setAnytime=function(a){this.isAnytime=a;if(this.showHourField){this.updateHourSelectOptions()}else{this.hourField.value=this.displayDate.getHours()}};Calendar.prototype.serialize=function(){return""+this.getDate().getTime()+"-"+(this.hourRangeSelected?1:0)+"-"+(this.hasUserSetHour?1:0)+"-"+(this.isAnytimeSelected?1:0)};Calendar.prototype.deserialize=function(b){var a=b.split("-");this.isAnytimeSelected=(a[3]=="1"?true:false);this.hasUserSetHour=(a[2]=="1"?true:false);this.hourRangeSelected=(a[1]=="1"?true:false);this.update(new Date(parseInt(a[0])))};Calendar.prototype.showHours=function(){this.hourField.style.visibility="visible"};Calendar.prototype.hideHours=function(){this.updateHourOfDay("Anytime");this.hourField.style.visibility="hidden"};function Calendar(e,h,d,f,g,i,b,c,a){this.win=window;this.doc=document;this.varName=e;this.fieldTagId=f;this.calendarTagId=a;this.isAnytime=false;this.isAnytimeSelected=true;this.dateRanges=d;this.startDate=d[0].from;this.endDate=d[d.length-1].to;this.displayDate=null;this.inputNamePrefix=h;this.showMonthYearField=((g==true||g==null)?true:false);this.showDayField=((i==true||i==null)?true:false);this.showHourField=((b==true||b==null)?true:false);this.showCalendarIcon=((c==true||c==null)?true:false);this.contextURL=document.URL.substring(0,document.URL.indexOf("/",9));this.calendarCSS=this.contextURL+"/styles/themes/red-dress/calendar.css";this.onChangeCallback=null;this.hourRangeSelected=true;this.defaultHour=null;this.hasUserSetHour=false;this.haveFieldsBeenInserted=false;this.divCalendar=this.doc.createElement("div");this.divCalendar.id=this.inputNamePrefix+"CalendarPage";this.divCalendar.className="calendarPage";if(this.showCalendarIcon||this.calendarTagId==null){$j(this.divCalendar).attr("style","display: none")}this.formattedField=this.doc.createElement("input");this.formattedField.type="hidden";this.formattedField.name=h+"Formatted";this.formattedField.id=h+"Formatted";this.bookLeadFormattedField=this.doc.createElement("input");this.bookLeadFormattedField.type="hidden";this.bookLeadFormattedField.name=h+"BookLeadFormatted";this.bookLeadFormattedField.id=h+"BookLeadFormatted";this.timeField=this.doc.createElement("input");this.timeField.type="hidden";this.timeField.name=h+"Time";this.timeField.id=h+"Time";this.yearField=this.doc.createElement("input");this.yearField.type="hidden";this.yearField.name=h+"Year";this.yearField.id=h+"Year";this.monthField=this.doc.createElement("input");this.monthField.type="hidden";this.monthField.name=h+"Month";this.monthField.id=h+"Month";if(this.showMonthYearField){this.monthYearField=this.doc.createElement("select");this.monthYearField.onchange=new Function(e+".updateMonthYear(this.options[this.selectedIndex].value);"+e+".hidePopup();")}else{this.monthYearField=this.doc.createElement("input");this.monthYearField.type="hidden"}if(this.showDayField){this.dayField=this.doc.createElement("select");this.dayField.onchange=new Function(e+".updateDayOfMonth(this.options[this.selectedIndex].value);"+e+".hidePopup();")}else{this.dayField=this.doc.createElement("input");this.dayField.type="hidden"}if(this.showHourField){this.hourField=this.doc.createElement("select");this.hourField.onchange=new Function(e+".updateHourOfDay(this.options[this.selectedIndex].value);"+e+".hidePopup();")}else{this.hourField=this.doc.createElement("input");this.hourField.type="hidden"}this.monthYearField.className="calMonthYear";this.monthYearField.title="Select Month and Year";this.monthYearField.name=h+"MonthYear";this.monthYearField.id=h+"MonthYear";this.dayField.className="calDay";this.dayField.title="Select Day";this.dayField.name=h+"Day";this.dayField.id=h+"Day";this.hourField.className="calHour";this.hourField.title="Select Time of Day";this.hourField.name=h+"Hour";this.hourField.id=h+"Hour";this.calendarIcon=this.doc.createElement("input");this.calendarIcon.type="text";this.calendarIcon.readOnly="readOnly";this.calendarIcon.className="calendarIcon";this.calendarIcon.id=h+"PopupCalendarIcon";this.calendarIcon.onclick=new Function(e+".popupToggle()");this.calendarIcon.onmouseover=new Function(e+".mouseOver()");this.calendarIcon.onmouseout=new Function(e+".mouseOut()");this.calendarIcon.title="Click for a month-by-month calendar";this.mouseOverCounter=0;this.popupTimers=new Array();this.popup=null;this.popupX=0;this.popupY=0;this.popupW=0;this.popupH=0}Calendar.prototype.setDateRange=function(a){this.dateRanges=a;this.startDate=a[0].from;this.endDate=a[a.length-1].to;this.displayDate=null;this.update(this.startDate)};
