var pastEndDate=function(){return null};var datePickerController={};(function(){datePicker.isSupported=typeof document.createElement!="undefined"&&typeof document.documentElement!="undefined"&&typeof document.documentElement.offsetWidth=="number";datePicker.months=["January","February","March","April","May","June","July","August","September","October","November","December"];datePicker.fullDay=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];datePicker.titles=["Previous month","Next month","Previous year","Next year"];datePicker.daysPerMonth=[31,28,31,30,31,30,31,31,30,31,30,31];datePicker.getDaysPerMonth=function(nMonth,nYear){nMonth=(nMonth+12)%12;var res=datePicker.daysPerMonth[nMonth];if(((0==(nYear%4))&&((0!=(nYear%100))||(0==(nYear%400))))&&nMonth==1){res=29}return res};function datePicker(options){this.defaults={};for(opt in options){this[opt]=this.defaults[opt]=options[opt]}this.date=new Date();this.yearinc=1;this.timer=null;this.pause=1000;this.timerSet=false;this.opacity=0;this.opacityTo=0;this.fadeTimer=null;this.interval=new Date();this.firstDayOfWeek=this.defaults.firstDayOfWeek;this.dateSet=null;this.visible=false;this.disabledDates=[];this.enabledDates=[];this.div=document.createElement("div");this.table=document.createElement("TABLE");var o=this;o.events={onkeydown:function(e){o.stopTimer();if(!o.visible){return false}if(e==null){e=document.parentWindow.event}var kc=(e.keyCode)?e.keyCode:e.charCode;if(kc==13){o.returnFormattedDate();o.hide();return o.killEvent(e)}else{if(kc==27){o.hide();return o.killEvent(e)}else{if(kc==9){o.hide()}else{if(kc==32||kc==0){o.date=new Date();o.updateTable();return o.killEvent(e)}}}}if($.browser.msie){if(new Date().getTime()-o.interval.getTime()<100){return o.killEvent(e)}o.interval=new Date()}if((kc>49&&kc<56)||(kc>97&&kc<104)){if(kc>96){kc-=(96-48)}kc-=49;o.firstDayOfWeek=(o.firstDayOfWeek+kc)%7;o.updateTable();return o.killEvent(e)}if(kc<37||kc>40){return true}var d=new Date(o.date).valueOf();if(kc==37){if(e.ctrlKey){d=new Date(o.date);d.setDate(Math.min(d.getDate(),datePicker.getDaysPerMonth(d.getMonth()-1,d.getFullYear())));d.setMonth(d.getMonth()-1)}else{d-=24*60*60*1000}}else{if(kc==39){if(e.ctrlKey){d=new Date(o.date);d.setDate(Math.min(d.getDate(),datePicker.getDaysPerMonth(d.getMonth()+1,d.getFullYear())));d.setMonth(d.getMonth()+1)}else{d+=24*60*60*1000}}else{if(kc==38){if(e.ctrlKey){d=new Date(o.date);d.setDate(Math.min(d.getDate(),datePicker.getDaysPerMonth(d.getMonth(),d.getFullYear()+1)));d.setFullYear(d.getFullYear()+1)}else{d-=7*24*60*60*1000}}else{if(kc==40){if(e.ctrlKey){d=new Date(o.date);d.setDate(Math.min(d.getDate(),datePicker.getDaysPerMonth(d.getMonth(),d.getFullYear()-1)));d.setFullYear(d.getFullYear()-1)}else{d+=7*24*60*60*1000}}}}}var tmpDate=new Date(d);if(!o.outOfRange(tmpDate)){o.date=tmpDate}o.updateTable();return o.killEvent(e)},onmousedown:function(e){if(e==null){e=document.parentWindow.event}var el=(e.target!=null)?e.target:e.srcElement;o.stopTimer();var found=false;while(el.parentNode){if(el.id&&(el.id=="fd-"+o.id||el.id=="fd-but-"+o.id)){found=true;break}try{el=el.parentNode}catch(err){break}}if(found){return true}datePickerController.hideAll();return null},onmouseover:function(e){o.stopTimer();if(document.getElementById("date-picker-hover")){document.getElementById("date-picker-hover").id=""}this.id="date-picker-hover";o.date.setDate(this.firstChild.nodeValue)},onclick:function(e){if(o.opacity!=o.opacityTo){return false}if(e==null){e=document.parentWindow.event}var el=(e.target!=null)?e.target:e.srcElement;while(el.nodeType!=1){el=el.parentNode}var d=new Date(o.date);var n=Number(el.firstChild.data);if(isNaN(n)){return true}d.setDate(n);o.date=d;o.returnFormattedDate();o.hide();o.stopTimer();return o.killEvent(e)},incDec:function(e){if(e==null){e=document.parentWindow.event}var el=(e.target!=null)?e.target:e.srcElement;o.stopTimer();if(el&&el.className&&el.className.search("disabled")!=-1){return false}datePickerController.addEvent(document,"mouseup",o.events.clearTimer);o.timerInc=1000;o.dayInc=arguments[1];o.yearInc=arguments[2];o.monthInc=arguments[3];o.onTimer();o.startTimer();return o.killEvent(e)},clearTimer:function(e){o.stopTimer();o.stopped=true;o.timerInc=1000;o.yearInc=0;o.monthInc=0;o.dayInc=0}};o.reset=function(){for(def in o.defaults){o[def]=o.defaults[def]}};o.setOpacity=function(op){o.div.style.opacity=+op/100;o.div.style.filter="alpha(opacity="+op+")";o.opacity=op};o.fade=function(){window.clearTimeout(o.fadeTimer);var diff=Math.round(o.opacity+((o.opacityTo-o.opacity)/4));o.setOpacity(diff);if(Math.abs(o.opacityTo-diff)>3&&!o.noFade){o.fadeTimer=window.setTimeout(function(){o.fade()},50)}else{o.setOpacity(o.opacityTo);if(o.opacityTo==0){o.div.style.display="none";o.visible=false}else{o.visible=true}window.clearTimeout(o.fadeTimer);o.fadeTimer=null}};o.killEvent=function(e){if(e==null){e=document.parentWindow.event}if(e.stopPropagation){e.stopPropagation();e.preventDefault()}if($.browser.msie){e.cancelBubble=true;e.returnValue=false}return false};o.startTimer=function(){o.timer=window.setTimeout(o.onTimer,o.timerInc);o.timerSet=true};o.stopTimer=function(){window.clearTimeout(o.timer);o.timer=null;o.timerSet=false};o.onTimer=function(){var d=o.date;d.setDate(Math.min(d.getDate()+o.dayInc,datePicker.getDaysPerMonth(d.getMonth()+o.monthInc,d.getFullYear()+o.yearInc)));d.setMonth(d.getMonth()+o.monthInc);d.setFullYear(d.getFullYear()+o.yearInc);o.date=d;if(o.timerInc>50){o.timerInc=50+Math.round(((o.timerInc-50)/1.8))}o.updateTable();if(o.timerSet){o.timer=window.setTimeout(o.onTimer,o.timerInc)}};o.getElem=function(){return document.getElementById(o.id.replace(/^fd-/,""))||false};o.setRangeLow=function(range){if(String(range).search(/^(\d\d?\d\d)(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])$/)==-1){range=""}o.low=o.defaults.low=range};o.setRangeHigh=function(range){if(String(range).search(/^(\d\d?\d\d)(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])$/)==-1){range=""}o.high=o.defaults.high=range};o.setDisabledDays=function(dayArray){o.disableDays=o.defaults.disableDays=dayArray};o.setDisabledDates=function(dateArray){var fin=[];for(var i=dateArray.length;i--;){if(dateArray[i].match(/^(\d\d\d\d|\*\*\*\*)(0[1-9]|1[012]|\*\*)(0[1-9]|[12][0-9]|3[01])$/)!=-1){fin[fin.length]=dateArray[i]}}if(fin.length){o.disabledDates=fin;o.enabledDates=[]}};o.setEnabledDates=function(dateArray){var fin=[];for(var i=dateArray.length;i--;){if(dateArray[i].match(/^(\d\d\d\d|\*\*\*\*)(0[1-9]|1[012]|\*\*)(0[1-9]|[12][0-9]|3[01]|\*\*)$/)!=-1&&dateArray[i]!="********"){fin[fin.length]=dateArray[i]}}if(fin.length){o.disabledDates=[];o.enabledDates=fin}};o.getDisabledDates=function(y,m){if(o.enabledDates.length){return o.getEnabledDates(y,m)}var obj={};var d=datePicker.getDaysPerMonth(m-1,y);m=m<10?"0"+String(m):m;for(var i=o.disabledDates.length;i--;){var tmp=o.disabledDates[i].replace("****",y).replace("**",m);if(tmpNumber(y+String(m)+d)){continue}obj[tmp]=1}return obj};o.getEnabledDates=function(y,m){var obj={};var d=datePicker.getDaysPerMonth(m-1,y);m=m<10?"0"+String(m):m;var day,tmp,de,me,ye,disabled;for(var dd=1;dd<=d;dd++){day=dd<10?"0"+String(dd):dd;disabled=true;for(var i=o.enabledDates.length;i--;){tmp=o.enabledDates[i];ye=String(o.enabledDates[i]).substr(0,4);me=String(o.enabledDates[i]).substr(4,2);de=String(o.enabledDates[i]).substr(6,2);if(ye==y&&me==m&&de==day){disabled=false;break}if(ye=="****"||me=="**"||de=="**"){if(ye=="****"){tmp=tmp.replace(/^\*\*\*\*/,y)}if(me=="**"){tmp=tmp=tmp.substr(0,4)+String(m)+tmp.substr(6,2)}if(de=="**"){tmp=tmp.replace(/\*\*/,day)}if(tmp==String(y+String(m)+day)){disabled=false;break}}}if(disabled){obj[String(y+String(m)+day)]=1}}return obj};o.setFirstDayOfWeek=function(e){if(e==null){e=document.parentWindow.event}var elem=(e.target!=null)?e.target:e.srcElement;if(elem.tagName.toLowerCase()!="th"){while(elem.tagName.toLowerCase()!="th"){elem=elem.parentNode}}var cnt=0;while(elem.previousSibling){elem=elem.previousSibling;if(elem.tagName.toLowerCase()=="th"){cnt++}}o.firstDayOfWeek=(o.firstDayOfWeek+cnt)%7;o.updateTable();return o.killEvent(e)};o.truePosition=function(element){var pos=o.cumulativeOffset(element);if(window.opera){return pos}var iebody=(document.compatMode&&document.compatMode!="BackCompat")?document.documentElement:document.body;var dsocleft=(document.all)?iebody.scrollLeft:window.pageXOffset;var dsoctop=(document.all)?iebody.scrollTop:window.pageYOffset;var posReal=o.realOffset(element);var top=pos[1]-posReal[1]+dsoctop;var left=pos[0]-posReal[0]+dsocleft+(window.ie?4:(window.webkit?1:2));return[left,top]};o.realOffset=function(element){var t=0,l=0;do{t+=element.scrollTop||0;l+=element.scrollLeft||0;element=element.parentNode}while(element);return[l,t]};o.cumulativeOffset=function(element){var t=0,l=0;do{t+=element.offsetTop||0;l+=element.offsetLeft||0;element=element.offsetParent}while(element);return[l,t]};o.resize=function(){if(!o.created||!o.getElem()){return}o.div.style.visibility="hidden";o.div.style.left=o.div.style.top="0px";o.div.style.display="block";var osh=o.div.offsetHeight;var osw=o.div.offsetWidth;o.div.style.visibility="visible";o.div.style.display="none";var elem=document.getElementById(o.id);var pos=o.truePosition(elem);var trueBody=(document.body&&(document.body.scrollLeft||document.body.scrollTop))?document.body:document.documentElement;if(parseInt(trueBody.clientWidth+trueBody.scrollLeft)parseInt(o.high)){if(!level){return true}o.date=new Date(o.high.substr(0,4),o.high.substr(4,2)-1,o.high.substr(6,2),5,0,0)}}return false};o.create=function(){ /*@cc_on@*/ /*@if(@_jscript_version <= 5.6) if(!document.getElementById("iePopUpHack")) { var loc = "../../../blank.html"; var scriptFiles = document.getElementsByTagName('head')[0].getElementsByTagName('script'); for(var i = 0, scriptFile; scriptFile = scriptFiles[i]; i++) { if(scriptFile.src && scriptFile.src.match(../../../datepicker.js$/)) { loc = scriptFile.src.replace("datepicker.js", "blank.html"); break; }; }; o.iePopUp = document.createElement('iframe'); o.iePopUp.src = loc; o.iePopUp.setAttribute('className','iehack'); o.iePopUp.scrolling="no"; o.iePopUp.frameBorder="0"; o.iePopUp.name = o.iePopUp.id = "iePopUpHack"; document.body.appendChild(o.iePopUp); } else { o.iePopUp = document.getElementById("iePopUpHack"); }; /*@end@*/ if(typeof(fdLocale)=="object"&&o.locale){datePicker.titles=fdLocale.titles;datePicker.months=fdLocale.months;datePicker.fullDay=fdLocale.fullDay;if(fdLocale.dayAbbr){datePicker.dayAbbr=fdLocale.dayAbbr}if(fdLocale.firstDayOfWeek){o.firstDayOfWeek=o.defaults.firstDayOfWeek=fdLocale.firstDayOfWeek}}o.div.style.zIndex=9999;o.div.id="fd-"+o.id;o.div.className="datePicker";$("body")[0].appendChild(o.div);var tableBody=document.createElement("tbody");var tableHead=document.createElement("thead");var nbsp=String.fromCharCode(160);var tr=document.createElement("tr");var th=document.createElement("th");o.table.cellSpacing="0";o.table.width="250";o.div.appendChild(o.table);o.table.appendChild(tableHead);tableHead.appendChild(tr);tr.appendChild(th);var tmpelem=document.createElement("button");tmpelem.setAttribute("type","button");tmpelem.className="prev-but but-spacer";tmpelem.id=o.id+"-prev-year-but";tmpelem.appendChild(document.createTextNode("\u00AB"));tmpelem.title=datePicker.titles[2];tmpelem.onmousedown=function(e){o.events.incDec(e,0,-1,0)};th.appendChild(tmpelem);tmpelem=null;var tmpelem=document.createElement("button");tmpelem.setAttribute("type","button");tmpelem.className="prev-but";tmpelem.id=o.id+"-prev-month-but";tmpelem.appendChild(document.createTextNode("\u2039"));tmpelem.title=datePicker.titles[0];tmpelem.onmousedown=function(e){o.events.incDec(e,0,0,-1)};th.appendChild(tmpelem);tmpelem=null;o.titleBar=document.createElement("th");if($.browser.msie){o.titleBar.setAttribute("colSpan","5")}else{o.titleBar.setAttribute("colspan","5")}o.titleBar.setAttribute("text-align","center");tr.appendChild(o.titleBar);th=document.createElement("th");tr.appendChild(th);var tmpelem=document.createElement("button");tmpelem.setAttribute("type","button");tmpelem.className="next-but but-spacer";tmpelem.id=o.id+"-next-month-but";tmpelem.appendChild(document.createTextNode("\u203A"));tmpelem.title=datePicker.titles[1];tmpelem.onmousedown=function(e){o.events.incDec(e,0,0,1)};th.appendChild(tmpelem);tmpelem=null;var tmpelem=document.createElement("button");tmpelem.setAttribute("type","button");tmpelem.className="next-but";tmpelem.id=o.id+"-next-year-but";tmpelem.appendChild(document.createTextNode("\u00BB"));tmpelem.title=datePicker.titles[3];tmpelem.onmousedown=function(e){o.events.incDec(e,0,1,0)};th.appendChild(tmpelem);tmpelem=null;o.table.appendChild(tableBody);var row,col;for(var rows=0;rows<7;rows++){row=document.createElement("tr");if(rows!=0){tableBody.appendChild(row)}else{tableHead.appendChild(row)}for(var cols=0;cols<7;cols++){col=(rows==0)?document.createElement("th"):document.createElement("td");row.appendChild(col);if(rows!=0){col.appendChild(document.createTextNode(nbsp))}else{col.className="date-picker-day-header";col.scope="col"}col=null}row=null}tableBody=tableHead=tr=th=null;var newTFoot=document.createElement("TFOOT");var newRow=document.createElement("TR");var newTh2=document.createElement("TH");newTh2.colSpan="4";newTh2.className="buttonClear";var butClear=document.createElement("button");butClear.setAttribute("type","button");butClear.appendChild(document.createTextNode(o.txtClear));butClear.onmousedown=function(e){document.getElementById(o.id).value=o.txtFormat;o.hide()};var newTh=document.createElement("TH");newTh.colSpan="3";newTh.className="buttonClose";var butCancel=document.createElement("button");butCancel.setAttribute("type","button");butCancel.appendChild(document.createTextNode(o.txtClose));butCancel.onmousedown=function(e){o.hide()};newTh.appendChild(butCancel);newTh2.appendChild(butClear);newRow.appendChild(newTh);newRow.appendChild(newTh2);newTFoot.appendChild(newRow);o.table.appendChild(newTFoot);o.created=true};o.setDateFromInput=function(){function m2c(val){return(String(val).length<2)?"00".substring(0,2-String(val).length)+String(val):val}o.dateSet=null;var elem=o.getElem();if(!elem){return}if(!o.splitDate){var date=datePickerController.dateFormat(elem.value,o.format.search(/m-d-y/i)!=-1)}else{var tm=document.getElementById(o.id+"-mm")?parseInt(document.getElementById(o.id+"-mm").value)||new Date().getMonth()+1:new Date().getMonth()+1;var td=document.getElementById(o.id+"-dd")?parseInt(document.getElementById(o.id+"-dd").value)||new Date().getDate():new Date().getDate();var date=datePickerController.dateFormat(tm+"/"+td+"/"+(elem.value||new Date().getFullYear()),true)}if(!date){date=String(new Date().getFullYear())+m2c(new Date().getMonth()+1)+m2c(new Date().getDate())}var d,m,y;y=date.substr(0,4);m=date.substr(4,2);d=date.substr(6,2);if(!y||!m||!d||new Date(y,m-1,d)=="Invalid Date"||new Date(y,m-1,d)=="NaN"){o.date=new Date();o.date.setHours(5);return}o.date.setMonth(m-1);o.date.setFullYear(y);o.date.setDate(d);o.date.setHours(5);o.dateSet=new Date(o.date)};o.returnFormattedDate=function(){var elem=o.getElem();if(!elem){return}var d=(o.date.getDate()<10)?"0"+o.date.getDate():o.date.getDate();var m=((o.date.getMonth()+1)<10)?"0"+(o.date.getMonth()+1):o.date.getMonth()+1;var yyyy=o.date.getFullYear();var disabledDates=o.getDisabledDates(yyyy,m);var weekDay=(o.date.getDay()+6)%7;if(!(o.disableDays[weekDay]||String(yyyy)+m+d in disabledDates)){if(o.splitDate){document.getElementById(o.id+"-dd").value=d;document.getElementById(o.id+"-mm").value=m;elem.value=yyyy;if(document.getElementById(o.id+"-dd").onchange){document.getElementById(o.id+"-dd").onchange()}if(document.getElementById(o.id+"-mm").onchange){document.getElementById(o.id+"-mm").onchange()}}else{elem.value=o.format.replace("y",yyyy).replace("m",m).replace("d",d).replace(/-/g,o.divider)}if(elem.onchange){elem.onchange()}}};o.updateTable=function(){if(document.getElementById("date-picker-hover")){document.getElementById("date-picker-hover").id=""}var i;var str="";var rows=6;var cols=7;var currentWeek=0;var nbsp=String.fromCharCode(160);var cells=new Array(rows);for(i=0;i0){butt[0].onclick=butt.onkeypress=null}while(ths[y].firstChild){ths[y].removeChild(ths[y].firstChild)}ths[y].title=datePicker.fullDay[d];ths[y].appendChild(document.createTextNode(datePicker.dayAbbr?datePicker.dayAbbr[d]:datePicker.fullDay[d].charAt(0)))}var trs=o.table.getElementsByTagName("tbody")[0].getElementsByTagName("tr");var tmpCell;for(var y=0;y-1){$("#"+idStart).removeClass("default")}}if(typeof(endVal)!="undefined"&&(endRel==endVal||endVal=="")){if(endVal.indexOf("/")>-1){$("#"+idEnd).removeClass("default")}}var pickStart=document.getElementById(idStart);var pickEnd=document.getElementById(idEnd);if(!pickStart||!pickEnd){return false}pickStart.pair=pickEnd;pickEnd.pair=pickStart;$(pickStart).change(function(){datePickerController.limitEndDate(pickStart,pickEnd)});return null},checkStart:function(startId,endId){var end=$("#"+endId).val();var start=$("#"+startId).val();if(end==brand.dateInputHelpText){end=""}if(start==brand.dateInputHelpText){start=""}if(end!=""&&start==""){var util=ha.util.datePickControl;var startPicker=util.datePickers[startId];var endPicker=util.datePickers[endId];var dateEnd=end;if(ha.settings.datepickers.format=="d-m-y"){dateEnd=dateEnd.split("/");dateEnd=dateEnd[1]+"/"+dateEnd[0]+"/"+dateEnd[2]}var tmpDate=new Date(dateEnd);startPicker.date=tmpDate;startPicker.returnFormattedDate()}},dateToLocalString:function(date,sep){if(!date||!date.getUTCDate){date=new Date()}sep=(jQuery.trim(sep)!="")?sep:"/";return(date.getUTCMonth()+1).toLeadZero(2)+sep+(date.getUTCDate()).toLeadZero(2)+sep+date.getUTCFullYear()},dateNumToDate:function(dateNum){if(!dateNum||!dateNum.toInt()||typeOf(dateNum.toInt())!="number"){return false}return(new Date(dateNum.slice(0,3).toInt(),dateNum.slice(4,5).toInt(),dateNum.slice(6,8).toInt()))},dateToDateNum:function(date){if(!date||!date.getUTCDate){date=new Date()}return(date.getUTCFullYear()+(date.getUTCMonth()+1).toLeadZero(2)+(date.getUTCDate()).toLeadZero(2))}}})();datePickerController.addEvent(window,"unload",datePickerController.destroy);ha.util.datePickControl=datePickerController;Number.prototype.toLeadZero=function(b){var a=String(this).split(".");var e=(a[0].indexOf("-")==-1)?"":"-";var c=a[0].replace("-","");var d=(a.length>1&&a[1]!="")?"."+a[1]:"";for(i=b-c.length;i>0;i--){c="0"+c}return(e+c+d)};var dpCnt=0;function setDatePicker(b,a){if(typeof ha.util.datePickControl!="undefined"){ha.util.datePickControl.linkDates(b,a);dpInt=window.clearInterval(dpInt);dpCnt++}else{if(dpCnt==10){dpInt=window.clearInterval(dpInt)}}}$(document).ready(function(){ha.util.datePickControl.linkDates("startDateInput","endDateInput")});