var Calendar={monthNames:["lang_calendar_january","lang_calendar_february","lang_calendar_march","lang_calendar_april","lang_calendar_may","lang_calendar_june","lang_calendar_july","lang_calendar_august","lang_calendar_september","lang_calendar_october","lang_calendar_november","lang_calendar_december"],weekNames:["lang_calendar_monday","lang_calendar_tuesday","lang_calendar_wednesday","lang_calendar_thursday","lang_calendar_friday","lang_calendar_saturday","lang_calendar_sunday"],show:function(a,
c,e){this.mode=e;this.control=a;this.ua=navigator.userAgent.toLowerCase();this.isMSIE=this.ua.indexOf("msie")!=-1&&this.ua.charAt(this.ua.indexOf("msie")+5)<6;this.internalDate=this.mode=="long"?new DateLong:this.mode=="full"?new DateFull:new DateShort;try{this.currentDate=this.internalDate.toDate(this.control.value)}catch(g){this.currentDate=new Date}if(!this.divCalendar){for(var d=a.parentNode;d=d.parentNode;)if(d.tagName=="BODY"||d.tagName=="DIV"&&d.className=="adm")break;this.divCalendar=document.createElement("div");
this.divCalendar.className="calendar";d.appendChild(this.divCalendar)}if(this.isMSIE&&!this.iframeCalendar){this.iframeCalendar=document.createElement('<iframe class="calendar-iframe" frameborder="no" src="about:blank"></iframe>');d.appendChild(this.iframeCalendar)}this.display(this.currentDate);e=this.getPosition(c);d=this.getPosition(a);var b=e.x+c.offsetWidth+4+this.divCalendar.offsetWidth<this.getClientWidth()+this.getBodyScrollLeft(),h=d.y+a.offsetHeight+this.divCalendar.offsetHeight<this.getClientHeight()+
this.getBodyScrollTop();this.divCalendar.style.left=b?e.x+c.offsetWidth+4+"px":e.x+c.offsetWidth-this.divCalendar.offsetWidth+"px";this.divCalendar.style.top=h?(b?d.y:d.y+a.offsetHeight+4)+"px":(b?d.y+a.offsetHeight-this.divCalendar.offsetHeight:d.y+a.offsetHeight-this.divCalendar.offsetHeight-+a.offsetHeight-4)+"px";if(this.iframeCalendar){this.iframeCalendar.style.left=this.divCalendar.offsetLeft+"px";this.iframeCalendar.style.top=this.divCalendar.offsetTop+"px";this.iframeCalendar.style.width=
this.divCalendar.offsetWidth+"px"}this.divCalendar.style.visibility="visible";if(this.iframeCalendar)this.iframeCalendar.style.visibility="visible"},getPosition:function(a){for(var c=a.offsetLeft,e=a.offsetTop;a=a.offsetParent;)if(a.tagName!="HTML"){c+=a.offsetLeft;e+=a.offsetTop}return{x:c,y:e}},getBodyScrollLeft:function(){return document.documentElement&&document.documentElement.scrollLeft||document.body&&document.body.scrollLeft},getBodyScrollTop:function(){return document.documentElement&&document.documentElement.scrollTop||
document.body&&document.body.scrollTop},getClientWidth:function(){return!window.opera&&document.documentElement&&document.documentElement.clientWidth||document.body&&document.body.clientWidth},getClientHeight:function(){return!window.opera&&document.documentElement&&document.documentElement.clientHeight||document.body&&document.body.clientHeight},hide:function(){if(this.divCalendar)this.divCalendar.style.visibility="hidden";if(this.iframeCalendar)this.iframeCalendar.style.visibility="hidden"},writeDate:function(a){this.displayDate.setDate(a);
this.control.value=this.internalDate.toString(this.displayDate);this.hide()},setMonth:function(a){this.display(new Date(this.displayDate.getFullYear(),a.selectedIndex,1,this.displayDate.getHours(),this.displayDate.getMinutes(),this.displayDate.getSeconds()))},setYear:function(a){a=new Date(a,this.displayDate.getMonth(),1,this.displayDate.getHours(),this.displayDate.getMinutes(),this.displayDate.getSeconds());this.divCalendar.style.visibility=="visible"&&this.display(a)},changeYear:function(a){this.display(new Date(this.displayDate.getFullYear()+
a,this.displayDate.getMonth(),1,this.displayDate.getHours(),this.displayDate.getMinutes(),this.displayDate.getSeconds()))},setHours:function(a){this.displayDate.setHours(a)},setMinutes:function(a){this.displayDate.setMinutes(a)},setSeconds:function(a){this.displayDate.setSeconds(a)},isEqualDate:function(a,c){return a.getFullYear()==c.getFullYear()&&a.getMonth()==c.getMonth()&&a.getDate()==c.getDate()},display:function(a){if(!isNaN(a)){this.displayDate=a;a=this.displayDate.getFullYear();var c=this.displayDate.getMonth(),
e=this.displayDate.getHours(),g=this.displayDate.getMinutes(),d=this.displayDate.getSeconds(),b="";b+='<div class="top">';b+='\t<img src="" style="width: 0px; height: 0px"/>';b+="</div>";b+='<div class="middle">';b+='\t<table class="header">';b+="\t\t<tr>";b+='\t\t\t<td rowspan="2" align="center">';b+='\t\t\t\t<select class="month" onchange="Calendar.setMonth( this )">';for(i=0;i<this.monthNames.length;i++)b+='\t\t\t\t\t<option value="'+i+'"'+(i==c?' selected="selected"':"")+">"+Dictionary.translate(this.monthNames[i])+
"</option>";b+="\t\t\t\t</select>";b+="\t\t\t</td>";b+='\t\t\t<td rowspan="2" align="right">';b+='\t\t\t\t<input type="text" class="year" value="'+a+'" onchange="Calendar.setYear( this.value )" maxlength="4"/>';b+="\t\t\t</td>";b+='\t\t\t<td class="year-up" onmousedown="Calendar.changeYear(1)"/>';b+='\t\t\t<td rowspan="2" class="close" onmousedown="Calendar.hide()"/>';b+="\t\t</tr>";b+="\t\t<tr>";b+='\t\t\t<td class="year-down" onmousedown="Calendar.changeYear(-1)"/>';b+="\t\t</tr>";b+="\t</table>";
b+='\t<table class="date">';b+="\t\t<tr>";for(i=0;i<this.weekNames.length;i++)b+='\t\t\t<td class="weekdays" style="width: 14%">'+Dictionary.translate(this.weekNames[i])+"</td>";b+="\t\t</tr>";var h=(new Date(a,c,1)).getDay();if(h==0)h=7;var j=(new Date(a,c+1,0)).getDate(),f=1,k=1;for(row=0;row<Math.ceil((j+h-1)/7);row++){b+="\t\t<tr>";for(col=0;col<7;col++)if(k<h){b+="\t\t\t<td>&nbsp;</td>";k++}else if(f>j)b+="\t\t\t<td>&nbsp;</td>";else{sLink="javascript:Calendar.writeDate("+f+")";b+=this.isEqualDate(this.currentDate,
new Date(a,c,f))?'\t\t\t<td class="today"><a class="today" href="'+sLink+'">'+f+"</a></td>":col>4?'\t\t\t<td class="weekend"><a class="weekend" href="'+sLink+'">'+f+"</a></td>":'\t\t\t<td><a href="'+sLink+'">'+f+"</a></td>";f++}b+="\t\t</tr>"}b+="\t</table>";if(this.mode=="long"||this.mode=="full"){b+='\t<table class="time">';b+="\t\t<tr>";b+='\t\t\t<td class="time_select">';b+='\t\t\t\t<select class="time" onchange="Calendar.setHours(this.value)">';for(i=0;i<24;i++)b+='\t\t\t\t\t<option value="'+
i+'"'+(i==e?' selected="selected"':"")+">"+lpad(i,2,"0")+"</option>";b+="\t\t\t\t</select>";b+="\t\t\t</td>";b+='\t\t\t<td class="time_separator"/>';b+='\t\t\t<td class="time_select">';b+='\t\t\t\t<select class="time" onchange="Calendar.setMinutes(this.value)">';for(i=0;i<60;i++)b+='\t\t\t\t\t<option value="'+i+'"'+(i==g?' selected="selected"':"")+">"+lpad(i,2,"0")+"</option>";b+="\t\t\t\t</select>";b+="\t\t\t</td>";if(this.mode=="full"){b+='\t\t\t<td class="time_separator"/>';b+='\t\t\t<td class="time_select">';
b+='\t\t\t\t<select class="time" onchange="Calendar.setSeconds(this.value)">';for(i=0;i<60;i++)b+='\t\t\t\t\t<option value="'+i+'"'+(i==d?' selected="selected"':"")+">"+lpad(i,2,"0")+"</option>";b+="\t\t\t\t</select>";b+="\t\t\t</td>"}b+="\t\t</tr>"}b+="\t</table>";b+="</div>";b+='<div class="bottom">';b+='\t<img src="" style="width: 0px; height: 0px"/>';b+="</div>";this.divCalendar.innerHTML=b;if(this.iframeCalendar)this.iframeCalendar.style.height=this.divCalendar.offsetHeight-3+"px"}}};
function DateShort(){this.toDate=function(a){if(!a)return new Date;a=a.match(/^(\d{2})\.(\d{2})\.(\d{4})/);if(!a)throw Dictionary.translate("lang_check_date");return new Date(a[3],a[2]-1,a[1])};this.toString=function(a){return""+lpad(a.getDate(),2,"0")+"."+lpad(a.getMonth()+1,2,"0")+"."+lpad(a.getFullYear(),4,"0")}}
function DateLong(){this.toDate=function(a){if(!a)return new Date;a=a.match(/^(\d{2})\.(\d{2})\.(\d{4})\s+(\d{2})\:(\d{2})/);if(!a)throw Dictionary.translate("lang_check_datetime");return new Date(a[3],a[2]-1,a[1],a[4],a[5])};this.toString=function(a){return""+lpad(a.getDate(),2,"0")+"."+lpad(a.getMonth()+1,2,"0")+"."+lpad(a.getFullYear(),4,"0")+" "+lpad(a.getHours(),2,"0")+":"+lpad(a.getMinutes(),2,"0")}}
function DateFull(){this.toDate=function(a){if(!a)return new Date;a=a.match(/^(\d{2})\.(\d{2})\.(\d{4})\s+(\d{2})\:(\d{2})\:(\d{2})/);if(!a)throw Dictionary.translate("lang_check_datetime_full");return new Date(a[3],a[2]-1,a[1],a[4],a[5],a[6])};this.toString=function(a){return""+lpad(a.getDate(),2,"0")+"."+lpad(a.getMonth()+1,2,"0")+"."+lpad(a.getFullYear(),4,"0")+" "+lpad(a.getHours(),2,"0")+":"+lpad(a.getMinutes(),2,"0")+":"+lpad(a.getSeconds(),2,"0")}}
function lpad(a,c,e){for(var g=a,d=0;d<c-a.toString().length;d++)g=e+g;return g};

