var datePicker={VERSION:1.0,defaultCssFile:null,cssTriggers:['fi_date','fi_dmy'],openOnFieldClick:true,wDLength:1,is:{months:'janúar,febrúar,mars,apríl,maí,júní,júlí,ágúst,september,október,nóvember,desember'.split(','),wdays:'sunnudagur,mánudagur,þriðjudagur,miðvikudagur,fimmtudagur,föstudagur,laugardagur'.split(','),popBtn:'Veldu dag',popBtnLong:'Veldu dagsetningu',close:'Fela',closeLong:'Fela dagatalið',prevM:'Fyrri',prevMLong:'Fyrri mánuður',nextM:'Næsti',nextMLong:'Næsti mánuður',prevY:'Fyrra ár',prevYLong:'Fyrra ár',nextY:'Næsta ár',nextYLong:'Næsta ár'},en:{months:'January,February,March,April,May,June,July,August,September,October,November,December'.split(','),wdays:'Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday'.split(','),popBtn:'Pick date',popBtnLong:'Pick date',close:'Close',closeLong:'Close Calendar',prevM:'Prev',prevMLong:'Previous month',nextM:'Next',nextMLong:'Next month',prevY:'Prev year',prevYLong:'Previous year',nextY:'Next year',nextYLong:'Next year'},defaults:{dateActiveSrc:new Date(),dateMinSrc:null,dateMaxSrc:null,dateFormat:'%d.%m.%yyyy',flipYears:false,caseSensitive:false,lang:'en'},idDefaults:{},fields:{},_15:false,capitalize:function(s){return s&&(s.charAt(0).uc()+s.substr(1))},init:function(a){if(!document.getElementsByTagName){return true}if(!this._15&&this.defaultCssFile!==""){if(!this.defaultCssFile){var b=DOM.get('script');var i=b.length;while(i--){var c=b[i];if(c.src&&c.src.indexOf('datepicker/1.0/dp')>-1){this.defaultCssFile=c.src.replace(/[^\/]+$/,'dp.css?v=3');break}}}DOM.insertLink(this.defaultCssFile)}this._18=(new Date()).zeroClock();var d=DOM.get("input",a);var e=new RegExp(" "+this.cssTriggers.join(" | ")+" ");for(var i=0,_2;_2=d[i];i++){if(_2.id&&this.fields[_2.id]&&(this.fields[_2.id]._5==_2)){continue}if(!_2.type||(_2.type=="text")){var f=DOM.aquireId(_2),_16="",_9=_2;while(!/form|body/.test(_9.tagName.lc())){_16+=" "+_9.className;_9=_9.parentNode}if(e.test(_16+" ")){this.fields[f]=new DateUI(f);this.fields[f].init()}}}this._15=true},getMY:function(a,b){return this.capitalize(this[b].months[a.getMonth()])+" "+a.getFullYear()},_14:function(a){if(a.indexOf('%')==-1){a=a.replace(/(d+)/i,'%$1').replace(/(m+)/i,'%$1').replace(/(y+)/i,'%$1')}return a.lc()},printDateValue:function(a,b,c){if(!a){return""}var e=this[c||this.defaults.lang]||this.en;b=this._14(b||this.defaults.dateFormat);var f=a.getFullYear()+"";var m=(a.getMonth()+1)+"";var d=a.getDate()+"";var g=(b.match(/\%d+/))?b.match(/\%(d+)/)[1].length:0;if((g>=2)&&(d<10)){d="0"+d}g=(b.match(/\%m+/))?b.match(/\%(m+)/)[1].length:0;if((g==2)&&(m<10)){m="0"+m}else if(g>2){m=e.months[a.getMonth()]}if(g==3){m=m.substr(0,3)}g=(b.match(/\%y+/))?b.match(/\%(y+)/)[1].length:0;if(g==2){f=f.substr(2,2)}return b.replace(/\%y+/,f).replace(/\%m+/,m).replace(/\%d+/,d)},parseDate:function(a){var b=this.fields[a]._5.value;if(!b){return null}var c=this._14(this.fields[a].dateFormat),d=1,m=0,yr=null,_4,_3,_1,re;if(c.indexOf("%m")>-1){_1=c.substr(0,c.indexOf("%m")).replace(/\%(d|m|y)/g,"$1").length;_3=c.match(/\%(m+)/)[1].length;if(_3>2){var e=this[this.fields[a].lang].months;_4=b.substr(_1,999).lc();for(var i=0;i<e.length;i++){var f=e[i].lc();if(_3==3){f=f.substr(0,3)}if(_4.indexOf(f)>-1){m=i;b=b.substr(0,_1+1)+b.substr(_1+f.length+1,999);break}}}else{_4=b.substr(_1,3).replace(/^\D/,"").substr(0,2);m=_4.toInt();if(isNaN(m)||(m<1)){m=1}m=m-1;re=new RegExp("(.{"+_1+"})\\d\\d?(.*)$");b=b.replace(re,"$1$2")}c=c.replace(/\%m+/,"")}if(c.indexOf("%d")>-1){_1=c.substr(0,c.indexOf("%d")).replace(/\%(d|m|y)/g,"$1").length;_4=b.substr(_1,3).replace(/^\D/,"").substr(0,2);d=_4.toInt();if(isNaN(d)||(d<1)){d=1}re=new RegExp("(.{"+_1+"})\\d\\d?(.*)$");b=b.replace(re,"$1$2");c=c.replace(/\%d+/,"")}if(c.indexOf("%y")>-1){_1=c.substr(0,c.indexOf("%y")).replace(/\%(d|m|y)/g,"$1").length;_3=c.match(/y+/)[0].length;_4=b.substr(_1,_3+2).replace(/^.?\D/,"").substr(0,_3);yr=_4.toInt();if(isNaN(yr)||(yr<=0)){return null}if(_3!=4){yr+=(yr<70)?2000:1900}re=new RegExp("(.{"+_1+"})\\d{"+_3+"}(.*)$");b=b.replace(re,"$1$2");c=c.replace(/\%y+/,"")}return new Date(yr,m,d)},buildCalendar:function(a){var b=this.fields[a],dt=b.dateActive,_13=b.lang,_0=this[_13];var c=DOM.node(''+'<div id="'+a+'-cal" class="pickdate'+(b.flipYears?' pickdate-yearnav':'')+'">'+(is_ie?'<iframe class="layerfix" frameborder="0"></iframe>':'')+'<div class="pickdatewrap">'+'<h4>'+this.getMY(dt,_13)+'</h4>'+'</div>'+'</div>');c.fieldId=a;Event.add(c,"click",Event.kill);var d=DOM.get("div",c)[0];var f=DOM.node(''+'<ul class="month">'+'<li class="prev"><a href="#" title="'+(_0.prevMLong||_0.prevM)+'">'+_0.prevM+'</a></li>'+'<li class="next"><a href="#" title="'+(_0.nextMLong||_0.nextM)+'">'+_0.nextM+'</a></li>'+'</ul>');var g=DOM.get("a",f);Event.add(g[0],"click",function(e){datePicker.flipCal(a,-1,"m")});Event.add(g[1],"click",function(e){datePicker.flipCal(a,1,"m")});d.appendChild(f);if(b.flipYears){var h=DOM.node(''+'<ul class="year">'+'<li class="prev"><a href="#" title="'+(_0.prevYLong||_0.prevY)+'">'+_0.prevY+'</a></li>'+'<li class="next"><a href="#" title="'+(_0.nextYLong||_0.nextY)+'">'+_0.nextY+'</a></li>'+'</ul>');g=DOM.get("a",h);Event.add(g[0],"click",function(){datePicker.flipCal(a,-1,"y")});Event.add(g[1],"click",function(){datePicker.flipCal(a,1,"y")});d.appendChild(h)}var j='<table cellspacing="0" summary=""><thead><tr>';for(var i=0;i<7;i++){var k=this.capitalize(_0.wdays[i]);j+='<th><acronym title="'+k+'">'+k.substr(0,this.wDLength)+'</acronym></th>'}j+='</tr></thead><tbody><tr><td colspan="7"></td></tr></tbody></table>';d.appendChild(DOM.node(j));var l=DOM.node('<a href="#" class="close" title="'+(_0.closeLong||_0.close)+'">'+_0.close+'</a>');d.appendChild(l);Event.add(l,"click",function(e){return datePicker.closeCalendar(a)});return c},buildCalendarDays:function(a){var b=this.fields[a];var c=b.dateActive;var d=c.getMonth();var e=b._11;var f=new Date(c.getFullYear(),d,1);var g=document.createElement("tbody");var h=function(){return datePicker.doPickDate(a,this.newDay)};while(f.getMonth()==d){var j=document.createElement("tr");g.appendChild(j);for(var i=1;i<8;i++){var k=document.createElement("td");j.appendChild(k);if(f.getMonth()==d){if((f.getDate()==1)&&(i<=f.getDay())){k.className="o";k.appendChild(document.createTextNode(String.fromCharCode(160)))}else{if(f.getTime()==this._18.getTime()){k.className+=" today"}if(e){if(f.getTime()==e.getTime()){k.className+=" active"}}k.className=k.className.replace(/^\s/,"");var l;if(this.isValidChoice(f,a)){l=document.createElement("a");l.href="#";l.fieldId=a;l.newDay=f.getDate();Event.add(l,"click",h)}else{l=document.createElement("i")}l.appendChild(document.createTextNode(f.getDate()));k.appendChild(l);f.setDate(f.getDate()+1)}}else{k.className="o";k.appendChild(document.createTextNode(String.fromCharCode(160)))}}}return g},isValidChoice:function(a,b){var c=this.fields[b];var d=c.dateMin;var e=c.dateMax;var f=(!d||(a.getTime()>=d.getTime()));var g=(!e||(a.getTime()<=e.getTime()));return(f&&g)},openCalendar:function(a){var b=this.fields[a];b.dateMin=b.getDateBoundry("min");b.dateMax=b.getDateBoundry("max");this.updateCalendar(a);if(b.isOpen){return false}b.isOpen=true;DOM.appendChild(b._8,b._5.parentNode);Event.add(document.body,"click",this.delayedCloseAll)},closeCalendar:function(a){var b=this.fields[a];if(!b.isOpen){return false}b.isOpen=false;DOM.removeNode(b._8);Event.remove(document.body,"click",this.delayedCloseAll);return false},toggleCalendar:function(a){this[(this.fields[a].isOpen)?"closeCalendar":"openCalendar"](a)},flipCal:function(a,b,c){var e=this.fields[a];var f=e.dateMin;var g=e.dateMax;var d=e.dateActive;var h=new Date(d.getFullYear(),d.getMonth(),1);if(c=="y"){h.setFullYear(h.getFullYear()+b)}else{h.setMonth(h.getMonth()+b)}if(b<0){h.setMonth(h.getMonth()+1);h.setDate(0)}var i=false;if((!f||(h.getTime()>=f.getTime()))&&(!g||(h.getTime()<=g.getTime()))){i=true}else if(f&&(h.getTime()<f.getTime())&&(b>0)){h=f;i=true}else if(g&&(h.getTime()>g.getTime())&&(b<0)){h=g;i=true}if(i){e.dateActive=new Date(h.getFullYear(),h.getMonth(),h.getDate());this.updateCalendar(a);e._17.focus();return true}return false},updateCalendar:function(a){var b=this.fields[a];var c=b._8;var d=DOM.get("h4",c)[0];var e=this.getMY(b.dateActive,b.lang);DOM.replaceNode(document.createTextNode(e),d.firstChild);var f=DOM.get("tbody",c)[0];DOM.replaceNode(this.buildCalendarDays(a),f)},doPickDate:function(a,b){var c=DOM.$(a);var d=this.fields[a];var e=d.dateActive;e.setDate(b);var f=d._11;f.setTime(e.getTime());c.value=this.printDateValue(f,d.dateFormat,d.lang);this.closeCalendar(a);this.updateCalendar(a);c.focus();return false},closeAll:function(){for(var a in this.fields){if(!this.fields[a].isHovered){this.closeCalendar(a)}}return false},delayedCloseAll:function(e){setTimeout(datePicker.closeAll,10)}};var DateUI=function(c){var f=datePicker;this._5=DOM.$(c);if(f.openOnFieldClick){Event.add(this._5,"mouseup",function(e){if(!f.fields[this.id].isOpen){setTimeout("datePicker.openCalendar('"+this.id+"')",20);e.stopPropagation()}});Event.add(this._5,"blur",function(){var a="if (!datePicker.fields['"+this.id+"'].isHovered) { datePicker.closeCalendar('"+this.id+"'); }";setTimeout(a,20)})}this.getDateBoundry=function(a){var b=this["date"+a.substr(0,1).uc()+a.substr(1,999)+"Src"];if(!b){return null}var y,m,d,_7,_6,_10,_12;if(!b.join){_7=b}else{_7=b[0];if(b[1]&&(typeof(b[1])=="string")&&b[1].match(/^[-+]?\d+[dmy]$/)){_10=b[1].toInt();_12=b[1].match(/[dmy]$/)[0]}}if(typeof(_7)=="string"){if(!f.fields[_7]){return null}_6=f.parseDate(_7)}else{_6=_7}if(!_6){return null}y=_6.getFullYear();m=_6.getMonth();d=_6.getDate();if(_10){eval(_12+" += _10")}return new Date(y,m,d)};this.isOpen=false;Object.merge(this,f.defaults);Object.merge(this,f.idDefaults[c]||{});var g=DOM.getLang(this._5);if(f[g]){this.lang=g}this.dateActive=this.getDateBoundry("active");this.init=function(){var a=f.parseDate(c)||this.dateActive||(new Date()).zeroClock();this._11=a;this.dateActive=new Date(a.getFullYear(),a.getMonth(),a.getDate());this.dateMin=this.getDateBoundry("min");this.dateMax=this.getDateBoundry("max");var b=DOM.node('<a href="#" class="pickdatelink">'+f[this.lang].popBtn+'</a>');b.title=(f[this.lang].popBtnLong)||f[this.lang].popBtn;b.fieldId=c;Event.add(b,"click",function(e){f.toggleCalendar(this.fieldId);e.stopPropagation();return false});this._5.parentNode.appendChild(b);this._17=b;this._8=f.buildCalendar(c);this.isHovered=false;Event.add(b,"focus",function(){datePicker.fields[this.fieldId].isHovered=true});Event.add(b,"mouseout",function(){datePicker.fields[this.fieldId].isHovered=false});Event.add(this._8,"mouseover",function(){datePicker.fields[this.fieldId].isHovered=true});Event.add(this._8,"mouseout",function(){datePicker.fields[this.fieldId].isHovered=false})}};Date.prototype.zeroClock=function(){this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);return this};
