//DatePicker v4.4 by frequency-decoder.com
//Released under a creative commons Attribution-ShareAlike 2.5 license (http://creativecommons.org/licenses/by-sa/2.5/)
var datePickerController;
(function(){
datePicker.languageinfo=navigator.language?navigator.language:navigator.userLanguage;
datePicker.languageinfo=datePicker.languageinfo?datePicker.languageinfo.toLowerCase().replace(/-[a-z]+$/,""):"en";
var _1=document.getElementsByTagName("head")[0].getElementsByTagName("script");
var _2=_1[_1.length-1].src.substr(0,_1[_1.length-1].src.lastIndexOf("/"))+"/lang/"+datePicker.languageinfo+".js";
var _3=document.createElement("script");
_3.type="text/javascript";
_3.src=_2;
_3.setAttribute("charset","utf-8");
document.getElementsByTagName("head")[0].appendChild(_3);
_3=null;
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","Today","Show Calendar"];
datePicker.getDaysPerMonth=function(_4,_5){
_4=(_4+12)%12;
return (((0==(_5%4))&&((0!=(_5%100))||(0==(_5%400))))&&_4==1)?29:[31,28,31,30,31,30,31,31,30,31,30,31][_4];
};
function datePicker(_6){
this.defaults={};
for(opt in _6){
this[opt]=this.defaults[opt]=_6[opt];
}
this.date=new Date();
this.yearinc=1;
this.timer=null;
this.pause=1000;
this.timerSet=false;
this.fadeTimer=null;
this.interval=new Date();
this.firstDayOfWeek=this.defaults.firstDayOfWeek=this.dayInc=this.monthInc=this.yearInc=this.opacity=this.opacityTo=0;
this.dateSet=null;
this.visible=false;
this.disabledDates=[];
this.enabledDates=[];
this.nbsp=String.fromCharCode(160);
var o=this;
o.events={onblur:function(e){
o.removeKeyboardEvents();
},onfocus:function(e){
o.addKeyboardEvents();
},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){
var td=document.getElementById(o.id+"-date-picker-hover");
if(!td||td.className.search(/out-of-range|day-disabled/)!=-1){
return o.killEvent(e);
}
o.returnFormattedDate();
o.hide();
return o.killEvent(e);
}else{
if(kc==27){
o.hide();
return o.killEvent(e);
}else{
if(kc==32||kc==0){
o.date=new Date();
o.updateTable();
return o.killEvent(e);
}
}
}
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=new Date(o.date.getFullYear(),o.date.getMonth(),o.date.getDate()-1);
}
}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=new Date(o.date.getFullYear(),o.date.getMonth(),o.date.getDate()+1);
}
}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=new Date(o.date.getFullYear(),o.date.getMonth(),o.date.getDate()-7);
}
}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=new Date(o.date.getFullYear(),o.date.getMonth(),o.date.getDate()+7);
}
}
}
}
}
var _e=new Date(d);
if(o.outOfRange(_e)){
return o.killEvent(e);
}
var _f=new Date(o.date);
o.date=_e;
if(_f.getFullYear()!=o.date.getFullYear()||_f.getMonth()!=o.date.getMonth()){
o.updateTable();
}else{
o.disableTodayButton();
var tds=o.table.getElementsByTagName("td");
var txt;
var _12=o.date.getDate()-6;
if(_12<0){
_12=0;
}
for(var i=_12,td;td=tds[i];i++){
txt=Number(td.firstChild.nodeValue);
if(isNaN(txt)||txt!=o.date.getDate()){
continue;
}
o.removeHighlight();
td.id=o.id+"-date-picker-hover";
td.className=td.className.replace(/date-picker-hover/g,"")+" date-picker-hover";
}
}
return o.killEvent(e);
},gotoToday:function(e){
o.date=new Date();
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;
var _17=false;
while(el.parentNode){
if(el.id&&(el.id=="fd-"+o.id||el.id=="fd-but-"+o.id)){
_17=true;
break;
}
try{
el=el.parentNode;
}
catch(err){
break;
}
}
if(_17){
return true;
}
o.stopTimer();
datePickerController.hideAll();
},onmouseover:function(e){
o.stopTimer();
var txt=this.firstChild.nodeValue;
if(this.className=="out-of-range"||txt.search(/^[\d]+$/)==-1){
return;
}
o.removeHighlight();
this.id=o.id+"-date-picker-hover";
this.className=this.className.replace(/date-picker-hover/g,"")+" date-picker-hover";
o.date.setDate(this.firstChild.nodeValue);
o.disableTodayButton();
},onclick:function(e){
if(o.opacity!=o.opacityTo||this.className.search(/out-of-range|day-disabled/)!=-1){
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 txt=el.firstChild.data;
if(txt.search(/^[\d]+$/)==-1){
return;
}
var n=Number(txt);
if(isNaN(n)){
return true;
}
d.setDate(n);
o.date=d;
o.returnFormattedDate();
if(!o.staticPos){
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;
if(el&&el.className&&el.className.search("fd-disabled")!=-1){
return false;
}
datePickerController.addEvent(document,"mouseup",o.events.clearTimer);
o.timerInc=800;
o.dayInc=arguments[1];
o.yearInc=arguments[2];
o.monthInc=arguments[3];
o.timerSet=true;
o.updateTable();
return true;
},clearTimer:function(e){
o.stopTimer();
o.timerInc=1000;
o.yearInc=0;
o.monthInc=0;
o.dayInc=0;
datePickerController.removeEvent(document,"mouseup",o.events.clearTimer);
}};
o.stopTimer=function(){
o.timerSet=false;
window.clearTimeout(o.timer);
};
o.removeHighlight=function(){
if(document.getElementById(o.id+"-date-picker-hover")){
document.getElementById(o.id+"-date-picker-hover").className=document.getElementById(o.id+"-date-picker-hover").className.replace("date-picker-hover","");
document.getElementById(o.id+"-date-picker-hover").id="";
}
};
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);
o.fadeTimer=null;
delete (o.fadeTimer);
var _23=Math.round(o.opacity+((o.opacityTo-o.opacity)/4));
o.setOpacity(_23);
if(Math.abs(o.opacityTo-_23)>3&&!o.noTransparency){
o.fadeTimer=window.setTimeout(o.fade,50);
}else{
o.setOpacity(o.opacityTo);
if(o.opacityTo==0){
o.div.style.display="none";
o.visible=false;
}else{
o.visible=true;
}
}
};
o.killEvent=function(e){
e=e||document.parentWindow.event;
if(e.stopPropagation){
e.stopPropagation();
e.preventDefault();
}
return false;
};
o.getElem=function(){
return document.getElementById(o.id.replace(/^fd-/,""))||false;
};
o.setRangeLow=function(_25){
if(String(_25).search(/^(\d\d?\d\d)(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])$/)==-1){
_25="";
}
o.low=o.defaults.low=_25;
if(o.staticPos){
o.updateTable(true);
}
};
o.setRangeHigh=function(_26){
if(String(_26).search(/^(\d\d?\d\d)(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])$/)==-1){
_26="";
}
o.high=o.defaults.high=_26;
if(o.staticPos){
o.updateTable(true);
}
};
o.setDisabledDays=function(_27){
o.disableDays=o.defaults.disableDays=_27;
if(o.staticPos){
o.updateTable(true);
}
};
o.setDisabledDates=function(_28){
var fin=[];
for(var i=_28.length;i--;){
if(_28[i].match(/^(\d\d\d\d|\*\*\*\*)(0[1-9]|1[012]|\*\*)(0[1-9]|[12][0-9]|3[01])$/)!=-1){
fin[fin.length]=_28[i];
}
}
if(fin.length){
o.disabledDates=fin;
o.enabledDates=[];
if(o.staticPos){
o.updateTable(true);
}
}
};
o.setEnabledDates=function(_2b){
var fin=[];
for(var i=_2b.length;i--;){
if(_2b[i].match(/^(\d\d\d\d|\*\*\*\*)(0[1-9]|1[012]|\*\*)(0[1-9]|[12][0-9]|3[01]|\*\*)$/)!=-1&&_2b[i]!="********"){
fin[fin.length]=_2b[i];
}
}
if(fin.length){
o.disabledDates=[];
o.enabledDates=fin;
if(o.staticPos){
o.updateTable(true);
}
}
};
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(tmp<Number(String(y)+m+"01")||tmp>Number(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 _3c=e.target!=null?e.target:e.srcElement;
if(_3c.tagName.toLowerCase()!="th"){
while(_3c.tagName.toLowerCase()!="th"){
_3c=_3c.parentNode;
}
}
var cnt=0;
while(_3c.previousSibling){
_3c=_3c.previousSibling;
if(_3c.tagName.toLowerCase()=="th"){
cnt++;
}
}
o.firstDayOfWeek=(o.firstDayOfWeek+cnt)%7;
o.updateTableHeaders();
return o.killEvent(e);
};
o.truePosition=function(_3e){
var pos=o.cumulativeOffset(_3e);
if(window.opera){
return pos;
}
var _40=(document.compatMode&&document.compatMode!="BackCompat")?document.documentElement:document.body;
var _41=document.all?_40.scrollLeft:window.pageXOffset;
var _42=document.all?_40.scrollTop:window.pageYOffset;
var _43=o.realOffset(_3e);
return [pos[0]-_43[0]+_41,pos[1]-_43[1]+_42];
};
o.realOffset=function(_44){
var t=0,l=0;
do{
t+=_44.scrollTop||0;
l+=_44.scrollLeft||0;
_44=_44.parentNode;
}while(_44);
return [l,t];
};
o.cumulativeOffset=function(_46){
var t=0,l=0;
do{
t+=_46.offsetTop||0;
l+=_46.offsetLeft||0;
_46=_46.offsetParent;
}while(_46);
return [l,t];
};
o.resize=function(){
if(!o.created||!o.getElem()){
return;
}
o.div.style.visibility="hidden";
if(!o.staticPos){
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";
if(!o.staticPos){
var _4a=document.getElementById("fd-but-"+o.id);
var pos=o.truePosition(_4a);
var _4c=(document.compatMode&&document.compatMode!="BackCompat")?document.documentElement:document.body;
var _4d=window.devicePixelRatio||window.opera?0:_4c.scrollTop;
var _4e=window.devicePixelRatio||window.opera?0:_4c.scrollLeft;
if(parseInt(_4c.clientWidth+_4e)<parseInt(osw+pos[0])){
o.div.style.left=Math.abs(parseInt((_4c.clientWidth+_4e)-osw))+"px";
}else{
o.div.style.left=pos[0]+"px";
}
if(parseInt(_4c.clientHeight+_4d)<parseInt(osh+pos[1]+_4a.offsetHeight+2)){
o.div.style.top=Math.abs(parseInt(pos[1]-(osh+2)))+"px";
}else{
o.div.style.top=Math.abs(parseInt(pos[1]+_4a.offsetHeight+2))+"px";
}
}
};
o.equaliseDates=function(){
var _4f=false;
var _50;
for(var i=o.low;i<=o.high;i++){
_50=String(i);
if(!o.disableDays[new Date(_50.substr(0,4),_50.substr(6,2),_50.substr(4,2)).getDay()-1]){
_4f=true;
break;
}
}
if(!_4f){
o.disableDays=o.defaults.disableDays=[0,0,0,0,0,0,0];
}
};
o.outOfRange=function(_52){
if(!o.low&&!o.high){
return false;
}
var _53=false;
if(!_52){
_53=true;
_52=o.date;
}
var d=(_52.getDate()<10)?"0"+_52.getDate():_52.getDate();
var m=((_52.getMonth()+1)<10)?"0"+(_52.getMonth()+1):_52.getMonth()+1;
var y=_52.getFullYear();
var dt=String(y)+String(m)+String(d);
if(o.low&&parseInt(dt)<parseInt(o.low)){
if(!_53){
return true;
}
o.date=new Date(o.low.substr(0,4),o.low.substr(4,2)-1,o.low.substr(6,2),5,0,0);
return false;
}
if(o.high&&parseInt(dt)>parseInt(o.high)){
if(!_53){
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.createButton=function(){
if(o.staticPos){
return;
}
var but;
if(!document.getElementById("fd-but-"+o.id)){
var inp=o.getElem();
but=document.createElement("a");
but.href="#";
var _5a=document.createElement("span");
_5a.appendChild(document.createTextNode(String.fromCharCode(160)));
but.className="date-picker-control";
but.title=(typeof (fdLocale)=="object"&&_6.locale&&fdLocale.titles.length>5)?fdLocale.titles[5]:"";
but.id="fd-but-"+o.id;
but.appendChild(_5a);
if(inp.nextSibling){
inp.parentNode.insertBefore(but,inp.nextSibling);
}else{
inp.parentNode.appendChild(but);
}
}else{
but=document.getElementById("fd-but-"+o.id);
}
but.onclick=but.onpress=function(e){
e=e||window.event;
var _5c=this.id.replace("fd-but-","");
try{
var dp=datePickerController.getDatePicker(_5c);
}
catch(err){
return false;
}
if(e.type=="press"){
var kc=e.keyCode!=null?e.keyCode:e.charCode;
if(kc!=13){
return true;
}
if(dp.visible){
hideAll();
return false;
}
}
if(!dp.visible){
datePickerController.hideAll(_5c);
dp.show();
}else{
datePickerController.hideAll();
}
return false;
};
but=null;
},o.create=function(){
function createTH(_5f){
var th=document.createElement("th");
if(_5f.thClassName){
th.className=_5f.thClassName;
}
if(_5f.colspan){
th.setAttribute("colspan",_5f.colspan);
}
return th;
}
function createThAndButton(tr,obj){
for(var i=0,details;details=obj[i];i++){
var th=createTH(details);
tr.appendChild(th);
var but=document.createElement("span");
but.className=details.className;
but.id=o.id+details.id;
but.appendChild(document.createTextNode(details.text));
but.title=details.title||"";
if(details.onmousedown){
but.onmousedown=details.onmousedown;
}
if(details.onclick){
but.onclick=details.onclick;
}
if(details.onmouseout){
but.onmouseout=details.onmouseout;
}
th.appendChild(but);
}
}
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=document.createElement("div");
o.div.style.zIndex=9999;
o.div.id="fd-"+o.id;
o.div.className="datePicker";
if(!o.staticPos){
document.getElementsByTagName("body")[0].appendChild(o.div);
}else{
elem=o.getElem();
if(!elem){
o.div=null;
return;
}
o.div.className+=" staticDP";
o.div.setAttribute("tabIndex","0");
o.div.onfocus=o.events.onfocus;
o.div.onblur=o.events.onblur;
elem.parentNode.insertBefore(o.div,elem.nextSibling);
if(o.hideInput&&elem.type&&elem.type=="text"){
elem.setAttribute("type","hidden");
}
}
var tr,row,col,tableHead,tableBody;
o.table=document.createElement("table");
o.div.appendChild(o.table);
tableHead=document.createElement("thead");
o.table.appendChild(tableHead);
tr=document.createElement("tr");
tableHead.appendChild(tr);
o.titleBar=createTH({thClassName:"date-picker-title",colspan:7});
tr.appendChild(o.titleBar);
tr=null;
var _67=document.createElement("span");
_67.className="month-display";
o.titleBar.appendChild(_67);
_67=document.createElement("span");
_67.className="year-display";
o.titleBar.appendChild(_67);
_67=null;
tr=document.createElement("tr");
tableHead.appendChild(tr);
createThAndButton(tr,[{className:"prev-but",id:"-prev-year-but",text:"\xab",title:datePicker.titles[2],onmousedown:function(e){
o.events.incDec(e,0,-1,0);
},onmouseout:o.events.clearTimer},{className:"prev-but",id:"-prev-month-but",text:"\u2039",title:datePicker.titles[0],onmousedown:function(e){
o.events.incDec(e,0,0,-1);
},onmouseout:o.events.clearTimer},{colspan:3,className:"today-but",id:"-today-but",text:datePicker.titles.length>4?datePicker.titles[4]:"Today",onclick:o.events.gotoToday},{className:"next-but",id:"-next-month-but",text:"\u203a",title:datePicker.titles[1],onmousedown:function(e){
o.events.incDec(e,0,0,1);
},onmouseout:o.events.clearTimer},{className:"next-but",id:"-next-year-but",text:"\xbb",title:datePicker.titles[3],onmousedown:function(e){
o.events.incDec(e,0,1,0);
},onmouseout:o.events.clearTimer}]);
tableBody=document.createElement("tbody");
o.table.appendChild(tableBody);
for(var _6c=0;_6c<7;_6c++){
row=document.createElement("tr");
if(_6c!=0){
tableBody.appendChild(row);
}else{
tableHead.appendChild(row);
}
for(var _6d=0;_6d<7;_6d++){
col=(_6c==0)?document.createElement("th"):document.createElement("td");
row.appendChild(col);
if(_6c!=0){
col.appendChild(document.createTextNode(o.nbsp));
col.onmouseover=o.events.onmouseover;
col.onclick=o.events.onclick;
}else{
col.className="date-picker-day-header";
col.scope="col";
}
col=null;
}
row=null;
}
var but;
var ths=o.table.getElementsByTagName("thead")[0].getElementsByTagName("tr")[2].getElementsByTagName("th");
for(var y=0;y<7;y++){
if(y>0){
but=document.createElement("span");
but.className="fd-day-header";
but.onclick=ths[y].onclick=o.setFirstDayOfWeek;
but.appendChild(document.createTextNode(o.nbsp));
ths[y].appendChild(but);
but=null;
}else{
ths[y].appendChild(document.createTextNode(o.nbsp));
}
}
o.ths=o.table.getElementsByTagName("thead")[0].getElementsByTagName("tr")[2].getElementsByTagName("th");
o.trs=o.table.getElementsByTagName("tbody")[0].getElementsByTagName("tr");
o.updateTableHeaders();
tableBody=tableHead=tr=createThAndButton=createTH=null;
if(o.low&&o.high&&(o.high-o.low<7)){
o.equaliseDates();
}
o.created=true;
if(o.staticPos){
var yyN=document.getElementById(o.id);
datePickerController.addEvent(yyN,"change",o.changeHandler);
if(o.splitDate){
var mmN=document.getElementById(o.id+"-mm");
var ddN=document.getElementById(o.id+"-dd");
datePickerController.addEvent(mmN,"change",o.changeHandler);
datePickerController.addEvent(ddN,"change",o.changeHandler);
}
o.show();
}else{
o.createButton();
o.resize();
o.fade();
}
};
o.changeHandler=function(){
o.setDateFromInput();
o.updateTable();
};
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 _75=o.getElem();
if(!_75){
return;
}
if(!o.splitDate){
var _76=datePickerController.dateFormat(_75.value,o.format.search(/m-d-y/i)!=-1);
}else{
var mmN=document.getElementById(o.id+"-mm");
var ddN=document.getElementById(o.id+"-dd");
var tm=parseInt(mmN.tagName.toLowerCase()=="input"?mmN.value:mmN.options[mmN.selectedIndex].value,10);
var td=parseInt(ddN.tagName.toLowerCase()=="input"?ddN.value:ddN.options[ddN.selectedIndex].value,10);
var ty=parseInt(_75.tagName.toLowerCase()=="input"?_75.value:_75.options[_75.selectedIndex||0].value,10);
var _7c=datePickerController.dateFormat(tm+"/"+td+"/"+ty,true);
}
var _7d=false;
if(!_7c){
_7d=true;
_7c=String(new Date().getFullYear())+m2c(new Date().getMonth()+1)+m2c(new Date().getDate());
}
var d,m,y;
y=Number(_7c.substr(0,4));
m=Number(_7c.substr(4,2))-1;
d=Number(_7c.substr(6,2));
var dpm=datePicker.getDaysPerMonth(m,y);
if(d>dpm){
d=dpm;
}
if(new Date(y,m,d)=="Invalid Date"||new Date(y,m,d)=="NaN"){
_7d=true;
o.date=new Date();
o.date.setHours(5);
return;
}
o.date=new Date(y,m,d);
o.date.setHours(5);
if(!_7d){
o.dateSet=new Date(o.date);
}
m2c=null;
};
o.setSelectIndex=function(_80,_81){
var len=_80.options.length;
_81=Number(_81);
for(var opt=0;opt<len;opt++){
if(_80.options[opt].value==_81){
_80.selectedIndex=opt;
return;
}
}
},o.returnFormattedDate=function(){
var _84=o.getElem();
if(!_84){
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 _87=o.date.getFullYear();
var _88=o.getDisabledDates(_87,m);
var _89=(o.date.getDay()+6)%7;
if(!(o.disableDays[_89]||String(_87)+m+d in _88)){
if(o.splitDate){
var ddE=document.getElementById(o.id+"-dd");
var mmE=document.getElementById(o.id+"-mm");
if(ddE.tagName.toLowerCase()=="input"){
ddE.value=d;
}else{
o.setSelectIndex(ddE,d);
}
if(mmE.tagName.toLowerCase()=="input"){
mmE.value=m;
}else{
o.setSelectIndex(mmE,m);
}
if(_84.tagName.toLowerCase()=="input"){
_84.value=_87;
}else{
o.setSelectIndex(_84,_87);
}
}else{
_84.value=o.format.replace("y",_87).replace("m",m).replace("d",d).replace(/-/g,o.divider);
}
if(!_84.type||_84.type&&_84.type!="hidden"){
_84.focus();
}
if(o.staticPos){
o.dateSet=new Date(o.date);
o.updateTable();
}
if(document.createEvent){
var _8c=document.createEvent("HTMLEvents");
_8c.initEvent("change",true,false);
_84.dispatchEvent(_8c);
}else{
if(document.createEventObject){
_84.fireEvent("onchange");
}
}
}
};
o.disableTodayButton=function(){
var _8d=new Date();
document.getElementById(o.id+"-today-but").className=document.getElementById(o.id+"-today-but").className.replace("fd-disabled","");
if(o.outOfRange(_8d)||(o.date.getDate()==_8d.getDate()&&o.date.getMonth()==_8d.getMonth()&&o.date.getFullYear()==_8d.getFullYear())){
document.getElementById(o.id+"-today-but").className+=" fd-disabled";
document.getElementById(o.id+"-today-but").onclick=null;
}else{
document.getElementById(o.id+"-today-but").onclick=o.events.gotoToday;
}
};
o.updateTableHeaders=function(){
var d,but;
var ths=o.ths;
for(var y=0;y<7;y++){
d=(o.firstDayOfWeek+y)%7;
ths[y].title=datePicker.fullDay[d];
if(y>0){
but=ths[y].getElementsByTagName("span")[0];
but.removeChild(but.firstChild);
but.appendChild(document.createTextNode(datePicker.dayAbbr?datePicker.dayAbbr[d]:datePicker.fullDay[d].charAt(0)));
but.title=datePicker.fullDay[d];
but=null;
}else{
ths[y].removeChild(ths[y].firstChild);
ths[y].appendChild(document.createTextNode(datePicker.dayAbbr?datePicker.dayAbbr[d]:datePicker.fullDay[d].charAt(0)));
}
}
o.updateTable();
};
o.updateTable=function(_91){
if(o.timerSet){
var d=new Date(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(!_91&&"onupdate" in datePickerController&&typeof (datePickerController.onupdate)=="function"){
datePickerController.onupdate(o);
}
o.outOfRange();
o.disableTodayButton();
var _93=new Date(o.date.getFullYear(),o.date.getMonth(),2);
_93.setHours(5);
var tdm=_93.getMonth();
var tdy=_93.getFullYear();
var _96=o.getDisabledDates(o.date.getFullYear(),o.date.getMonth()+1);
var _97=new Date();
var b=document.getElementById(o.id+"-prev-year-but");
b.className=b.className.replace("fd-disabled","");
if(o.outOfRange(new Date((tdy-1),Number(tdm),datePicker.getDaysPerMonth(Number(tdm),tdy-1)))){
b.className+=" fd-disabled";
if(o.yearInc==-1){
o.stopTimer();
}
}
b=document.getElementById(o.id+"-prev-month-but");
b.className=b.className.replace("fd-disabled","");
if(o.outOfRange(new Date(tdy,(Number(tdm)-1),datePicker.getDaysPerMonth(Number(tdm)-1,tdy)))){
b.className+=" fd-disabled";
if(o.monthInc==-1){
o.stopTimer();
}
}
b=document.getElementById(o.id+"-next-year-but");
b.className=b.className.replace("fd-disabled","");
if(o.outOfRange(new Date((tdy+1),Number(tdm),1))){
b.className+=" fd-disabled";
if(o.yearInc==1){
o.stopTimer();
}
}
b=document.getElementById(o.id+"-next-month-but");
b.className=b.className.replace("fd-disabled","");
if(o.outOfRange(new Date(tdy,Number(tdm)+1,1))){
b.className+=" fd-disabled";
if(o.monthInc==1){
o.stopTimer();
}
}
b=null;
var cd=o.date.getDate();
var cm=o.date.getMonth();
var cy=o.date.getFullYear();
var _9c=o.titleBar.getElementsByTagName("span");
while(_9c[0].firstChild){
_9c[0].removeChild(_9c[0].firstChild);
}
while(_9c[1].firstChild){
_9c[1].removeChild(_9c[1].firstChild);
}
_9c[0].appendChild(document.createTextNode(datePicker.months[cm]+o.nbsp));
_9c[1].appendChild(document.createTextNode(cy));
_93.setDate(1);
var dt,cName,td,tds,i;
var _9e=(_93.getDay()+6)%7;
var _9f=(((_9e-o.firstDayOfWeek)+7)%7)-1;
var dpm=datePicker.getDaysPerMonth(cm,cy);
var _a1=_97.getDate();
var _a2=_97.getMonth();
var _a3=_97.getFullYear();
var c="class";
var _a5=String(tdy)+(String(tdm+1).length<2?"0"+(tdm+1):tdm+1);
for(var row=0;row<6;row++){
tds=o.trs[row].getElementsByTagName("td");
for(var col=0;col<7;col++){
td=tds[col];
td.removeChild(td.firstChild);
td.setAttribute("id","");
td.setAttribute("title","");
i=(row*7)+col;
if(i>_9f&&i<=(_9f+dpm)){
dt=i-_9f;
_93.setDate(dt);
td.appendChild(document.createTextNode(dt));
if(o.outOfRange(_93)){
td.setAttribute(c,"out-of-range");
}else{
cName=[];
_9e=(_93.getDay()+6)%7;
if(dt==_a1&&tdm==_a2&&tdy==_a3){
cName.push("date-picker-today");
}
if(o.dateSet!=null&&o.dateSet.getDate()==dt&&o.dateSet.getMonth()==tdm&&o.dateSet.getFullYear()==tdy){
cName.push("date-picker-selected-date");
}
if(o.disableDays[_9e]||_a5+String(dt<10?"0"+dt:dt) in _96){
cName.push("day-disabled");
}else{
if(o.highlightDays[_9e]){
cName.push("date-picker-highlight");
}
}
if(cd==dt){
td.setAttribute("id",o.id+"-date-picker-hover");
cName.push("date-picker-hover");
}
cName.push("dm-"+dt+"-"+(tdm+1)+" "+" dmy-"+dt+"-"+(tdm+1)+"-"+tdy);
td.setAttribute(c,cName.join(" "));
td.setAttribute("title",datePicker.months[cm]+o.nbsp+dt+","+o.nbsp+cy);
}
}else{
td.appendChild(document.createTextNode(o.nbsp));
td.setAttribute(c,"date-picker-unused");
}
}
}
if(o.timerSet){
o.timerInc=50+Math.round(((o.timerInc-50)/1.8));
o.timer=window.setTimeout(o.updateTable,o.timerInc);
}
};
o.addKeyboardEvents=function(){
datePickerController.addEvent(document,"keypress",o.events.onkeydown);
if(window.devicePixelRatio){
datePickerController.removeEvent(document,"keypress",o.events.onkeydown);
datePickerController.addEvent(document,"keydown",o.events.onkeydown);
}
};
o.removeKeyboardEvents=function(){
datePickerController.removeEvent(document,"keypress",o.events.onkeydown);
datePickerController.removeEvent(document,"keydown",o.events.onkeydown);
};
o.show=function(){
var _a8=o.getElem();
if(!_a8||o.visible||_a8.disabled){
return;
}
o.reset();
o.setDateFromInput();
o.updateTable();
if(!o.staticPos){
o.resize();
}
datePickerController.addEvent(o.staticPos?o.table:document,"mousedown",o.events.onmousedown);
if(!o.staticPos){
o.addKeyboardEvents();
}
o.opacityTo=o.noTransparency?99:90;
o.div.style.display="block";
o.fade();
o.visible=true;
};
o.hide=function(){
if(!o.visible){
return;
}
o.stopTimer();
if(o.staticPos){
return;
}
datePickerController.removeEvent(document,"mousedown",o.events.onmousedown);
datePickerController.removeEvent(document,"mouseup",o.events.clearTimer);
o.removeKeyboardEvents();
o.opacityTo=0;
o.fade();
o.visible=false;
var _a9=o.getElem();
if(!_a9.type||_a9.type&&_a9.type!="hidden"){
_a9.focus();
}
};
o.destroy=function(){
datePickerController.removeEvent(o.staticPos?o.table:document,"mousedown",o.events.onmousedown);
datePickerController.removeEvent(document,"mouseup",o.events.clearTimer);
o.removeKeyboardEvents();
if(o.staticPos){
var yyN=document.getElementById(o.id);
datePickerController.removeEvent(yyN,"change",o.changeHandler);
if(o.splitDate){
var mmN=document.getElementById(o.id+"-mm");
var ddN=document.getElementById(o.id+"-dd");
datePickerController.removeEvent(mmN,"change",o.changeHandler);
datePickerController.removeEvent(ddN,"change",o.changeHandler);
}
o.div.onfocus=o.div.onblur=null;
}
var ths=o.table.getElementsByTagName("th");
for(var i=0,th;th=ths[i];i++){
th.onmouseover=th.onmouseout=th.onmousedown=th.onclick=null;
}
var tds=o.table.getElementsByTagName("td");
for(var i=0,td;td=tds[i];i++){
td.onmouseover=td.onclick=null;
}
var _b1=o.table.getElementsByTagName("span");
for(var i=0,butt;butt=_b1[i];i++){
butt.onmousedown=butt.onclick=butt.onkeypress=null;
}
o.ths=o.trs=null;
clearTimeout(o.fadeTimer);
clearTimeout(o.timer);
o.fadeTimer=o.timer=null;
if(!o.staticPos&&document.getElementById(o.id.replace(/^fd-/,"fd-but-"))){
var _b3=document.getElementById(o.id.replace(/^fd-/,"fd-but-"));
_b3.onclick=_b3.onpress=null;
}
if(o.div&&o.div.parentNode){
o.div.parentNode.removeChild(o.div);
}
o.titleBar=o.table=o.div=null;
o=null;
};
o.create();
}
datePickerController=function(){
var _b4={};
var _b5=0;
var _b6=function(obj,_b8,fn){
if(obj.attachEvent){
obj["e"+_b8+fn]=fn;
obj[_b8+fn]=function(){
obj["e"+_b8+fn](window.event);
};
obj.attachEvent("on"+_b8,obj[_b8+fn]);
}else{
obj.addEventListener(_b8,fn,true);
}
};
var _ba=function(obj,_bc,fn){
try{
if(obj.detachEvent){
obj.detachEvent("on"+_bc,obj[_bc+fn]);
obj[_bc+fn]=null;
}else{
obj.removeEventListener(_bc,fn,true);
}
}
catch(err){
}
};
var _be=function(_bf){
var dp;
for(dp in _b4){
if(!_b4[dp].created||_b4[dp].staticPos){
continue;
}
if(_bf&&_bf==_b4[dp].id){
continue;
}
if(document.getElementById(_b4[dp].id)){
_b4[dp].hide();
}
}
};
var _c1=function(){
var dp;
for(dp in _b4){
if(!document.getElementById(_b4[dp].id)){
if(!_b4[dp].created){
continue;
}
_b4[dp].destroy();
_b4[dp]=null;
delete _b4[dp];
}
}
};
var _c3=function(){
for(dp in _b4){
if(!_b4[dp].created){
continue;
}
_b4[dp].destroy();
_b4[dp]=null;
delete _b4[dp];
}
_b4=null;
datePicker.script=null;
_ba(window,"load",datePickerController.create);
_ba(window,"unload",datePickerController.destroy);
};
var _c4=function(_c5,_c6){
var _c7=[{regExp:/^(0?[1-9]|[12][0-9]|3[01])([- \/.])(0?[1-9]|1[012])([- \/.])((\d\d)?\d\d)$/,d:1,m:3,y:5},{regExp:/^(0?[1-9]|1[012])([- \/.])(0?[1-9]|[12][0-9]|3[01])([- \/.])((\d\d)?\d\d)$/,d:3,m:1,y:5},{regExp:/^(\d\d\d\d)([- \/.])(0?[1-9]|1[012])([- \/.])(0?[1-9]|[12][0-9]|3[01])$/,d:5,m:3,y:1}];
var _c8;
var cnt=0;
while(cnt<3){
_c8=(cnt+(_c6?4:3))%3;
if(_c5.match(_c7[_c8].regExp)){
res=_c5.match(_c7[_c8].regExp);
y=res[_c7[_c8].y];
m=res[_c7[_c8].m];
d=res[_c7[_c8].d];
if(m.length==1){
m="0"+m;
}
if(d.length==1){
d="0"+d;
}
if(y.length!=4){
y=(parseInt(y)<50)?"20"+y:"19"+y;
}
return String(y)+m+d;
}
cnt++;
}
return 0;
};
var _ca=function(){
if(!arguments.length){
return [];
}
var _cb=[];
for(var i=0;i<arguments.length;i++){
for(var j=0,item;item=arguments[i][j];j++){
_cb[_cb.length]=item;
}
}
return _cb;
};
var _ce=function(_cf,_d0){
if(!(_cf in _b4)){
_b4[_cf]=new datePicker(_d0);
}
};
var _d1=function(_d2){
if(!(_d2 in _b4)){
throw "No datePicker has been created for the form element with an id of '"+_d2.toString()+"'";
}
return _b4[_d2];
};
var _d3=function(sel){
var _d5=[];
for(var i=0;i<sel.options.length;i++){
if(sel.options[i].value.search(/^\d\d\d\d$/)==-1){
continue;
}
if(!_d5[0]||Number(sel.options[i].value)<_d5[0]){
_d5[0]=Number(sel.options[i].value);
}
if(!_d5[1]||Number(sel.options[i].value)>_d5[1]){
_d5[1]=Number(sel.options[i].value);
}
}
return _d5;
};
var _d7=function(inp){
if(!(typeof document.createElement!="undefined"&&typeof document.documentElement!="undefined"&&typeof document.documentElement.offsetWidth=="number")){
return;
}
var _d9=(inp&&inp.tagName)?[inp]:_ca(document.getElementsByTagName("input"),document.getElementsByTagName("select"));
var _da=/disable-days-([1-7]){1,6}/g;
var _db=/no-transparency/g;
var _dc=/highlight-days-([1-7]){1,7}/g;
var _dd=/range-low-(\d\d\d\d-\d\d-\d\d)/g;
var _de=/range-high-(\d\d\d\d-\d\d-\d\d)/g;
var _df=/format-(d-m-y|m-d-y|y-m-d)/g;
var _e0=/divider-(dot|slash|space|dash)/g;
var _e1=/no-locale/g;
var _e2=/no-fade/g;
var _e3=/hide-input/g;
for(var i=0,inp;inp=_d9[i];i++){
if(inp.className&&(inp.className.search(_df)!=-1||inp.className.search(/split-date/)!=-1)&&((inp.tagName.toLowerCase()=="input"&&(inp.type=="text"||inp.type=="hidden"))||inp.tagName.toLowerCase()=="select")){
if(inp.id&&document.getElementById("fd-"+inp.id)){
continue;
}
if(!inp.id){
inp.id="fdDatePicker-"+_b5++;
}
var _e5={id:inp.id,low:"",high:"",divider:"/",format:"d-m-y",highlightDays:[0,0,0,0,0,1,1],disableDays:[0,0,0,0,0,0,0],locale:inp.className.search(_e1)==-1,splitDate:0,noTransparency:inp.className.search(_db)!=-1,staticPos:inp.className.search(_e2)!=-1,hideInput:inp.className.search(_e3)!=-1};
if(!_e5.staticPos){
_e5.hideInput=false;
}else{
_e5.noTransparency=true;
}
if(inp.className.search(/split-date/)!=-1){
if(document.getElementById(inp.id+"-dd")&&document.getElementById(inp.id+"-mm")&&document.getElementById(inp.id+"-dd").tagName.search(/input|select/i)!=-1&&document.getElementById(inp.id+"-mm").tagName.search(/input|select/i)!=-1){
_e5.splitDate=1;
}
}
if(inp.className.search(_df)!=-1){
_e5.format=inp.className.match(_df)[0].replace("format-","");
}
if(inp.className.search(_e0)!=-1){
var _e6={dot:".",space:" ",dash:"-",slash:"/"};
_e5.divider=(inp.className.search(_e0)!=-1&&inp.className.match(_e0)[0].replace("divider-","") in _e6)?_e6[inp.className.match(_e0)[0].replace("divider-","")]:"/";
}
if(inp.className.search(_dc)!=-1){
var tmp=inp.className.match(_dc)[0].replace(/highlight-days-/,"");
_e5.highlightDays=[0,0,0,0,0,0,0];
for(var j=0;j<tmp.length;j++){
_e5.highlightDays[tmp.charAt(j)-1]=1;
}
}
if(inp.className.search(_da)!=-1){
var tmp=inp.className.match(_da)[0].replace(/disable-days-/,"");
_e5.disableDays=[0,0,0,0,0,0,0];
for(var j=0;j<tmp.length;j++){
_e5.disableDays[tmp.charAt(j)-1]=1;
}
}
if(inp.className.search(/range-low-today/i)!=-1){
_e5.low=datePickerController.dateFormat((new Date().getMonth()+1)+"/"+new Date().getDate()+"/"+new Date().getFullYear(),true);
}else{
if(inp.className.search(_dd)!=-1){
_e5.low=datePickerController.dateFormat(inp.className.match(_dd)[0].replace(/range-low-/,""),false);
if(!_e5.low){
_e5.low="";
}
}
}
if(inp.className.search(/range-high-today/i)!=-1&&inp.className.search(/range-low-today/i)==-1){
_e5.high=datePickerController.dateFormat((new Date().getMonth()+1)+"/"+new Date().getDate()+"/"+new Date().getFullYear(),true);
}else{
if(inp.className.search(_de)!=-1){
_e5.high=datePickerController.dateFormat(inp.className.match(_de)[0].replace(/range-high-/,""),false);
if(!_e5.high){
_e5.high="";
}
}
}
if(inp.tagName.search(/select/i)!=-1){
var _eb=_d3(inp);
_e5.low=_e5.low?_eb[0]+String(_e5.low).substr(4,4):datePickerController.dateFormat(_eb[0]+"/01/01");
_e5.high=_e5.high?_eb[1]+String(_e5.low).substr(4,4):datePickerController.dateFormat(_eb[1]+"/12/31");
}
_ce(inp.id,_e5);
}
}
};
return {addEvent:_b6,removeEvent:_ba,create:_d7,destroy:_c3,cleanUp:_c1,addDatePicker:_ce,getDatePicker:_d1,dateFormat:_c4,datePickers:_b4,hideAll:_be};
}();
})();
datePickerController.addEvent(window,"load",datePickerController.create);
datePickerController.addEvent(window,"unload",datePickerController.destroy);

