var A_TCALDEF={'months':['January','February','March','April','May','June','July','August','September','October','November','December'],'weekdays':['Su','Mo','Tu','We','Th','Fr','Sa'],'yearscroll':true,'weekstart':0,'centyear':70,'imgpath':'/my/s3/images/calendar/','close':window._s3Lang["JS_CLOSE_CALENDAR"],'open':window._s3Lang["JS_OPEN_CALENDAR"]};var RU_TCALDEF={'months':['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],'weekdays':['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],'yearscroll':true,'weekstart':1,'centyear':70,'imgpath':'/my/s3/images/calendar/','close':"Закрыть календарь",'open':"Открыть календарь"};function f_tcalParseDate(s_date){var re_date=/^\s*(\d{1,2})\.(\d{1,2})\.(\d{2,4})\s*$/;if(!re_date.exec(s_date))return alert("Invalid date: '"+s_date+"'.\nAccepted format is mm/dd/yyyy.");var n_day=Number(RegExp.$1),n_month=Number(RegExp.$2),n_year=Number(RegExp.$3);if(n_year<100)n_year+=(n_year12)return alert("Invalid month value: '"+n_month+"'.\nAllowed range is 01-12.");var d_numdays=new Date(n_year,n_month,0);if(n_day>d_numdays.getDate())return alert("Invalid day of month value: '"+n_day+"'.\nAllowed range for selected month is 01 - "+d_numdays.getDate()+".");return new Date(n_year,n_month-1,n_day)}function f_tcalGenerDate(d_date){return((d_date.getDate()<10?'0':'')+d_date.getDate()+"."+(d_date.getMonth()<9?'0':'')+(d_date.getMonth()+1)+"."+d_date.getFullYear())}function tcal(a_cfg,a_tpl){if(!a_tpl){if(a_cfg.lang&&a_cfg.lang=='ru'){a_tpl=RU_TCALDEF}else{a_tpl=A_TCALDEF}}if(!window.A_TCALS)window.A_TCALS=[];if(!window.A_TCALSIDX)window.A_TCALSIDX=[];this.s_id=a_cfg.id?a_cfg.id:A_TCALS.length;window.A_TCALS[this.s_id]=this;window.A_TCALSIDX[window.A_TCALSIDX.length]=this;this.f_show=f_tcalShow;this.f_hide=f_tcalHide;this.f_toggle=f_tcalToggle;this.f_update=f_tcalUpdate;this.f_relDate=f_tcalRelDate;this.f_parseDate=f_tcalParseDate;this.f_generDate=f_tcalGenerDate;this.s_iconId='tcalico_'+this.s_id;this.e_icon=f_getElement(this.s_iconId);if(!this.e_icon){var divPlace=document.createElement('div');divPlace.innerHTML='#JS_OPEN_CALENDAR#|s3_localize';a_cfg['place'].appendChild(divPlace.firstChild);this.e_icon=f_getElement(this.s_iconId)}this.a_cfg=a_cfg;this.a_tpl=a_tpl}function f_tcalShow(d_date){if(!this.a_cfg.controlname)throw("TC: control name is not specified");if(this.a_cfg.formname){var e_form=document.forms[this.a_cfg.formname];if(!e_form)throw("TC: form '"+this.a_cfg.formname+"' can not be found");this.e_input=e_form.elements[this.a_cfg.controlname]}else this.e_input=this.a_cfg.place.querySelector('input[id="'+this.a_cfg.controlname+'"]');if(!this.e_input||!this.e_input.tagName||this.e_input.tagName!='INPUT')throw("TC: element '"+this.a_cfg.controlname+"' does not exist in "+(this.a_cfg.formname?"form '"+this.a_cfg.controlname+"'":'this document'));this.e_div=f_getElement('tcal');if(!this.e_div){this.e_div=document.createElement("DIV");this.e_div.id='tcal';document.body.appendChild(this.e_div)}this.e_iframe=f_getElement('tcalIF');if(b_ieFix&&!this.e_iframe){this.e_iframe=document.createElement("IFRAME");this.e_iframe.style.filter='alpha(opacity=0)';this.e_iframe.id='tcalIF';this.e_iframe.src=this.a_tpl.imgpath+'pixel.gif';document.body.appendChild(this.e_iframe)}f_tcalHideAll();this.e_icon=f_getElement(this.s_iconId);this.e_div.style.display='block';if(this.e_iframe){this.e_iframe.style.display='block'}if(!this.f_update())return;this.e_div.style.visibility='visible';this.e_div.style.display='block';if(this.e_iframe){this.e_iframe.style.visibility='visible';this.e_iframe.style.display='block'}this.e_icon.src=this.a_tpl.imgpath+'no_cal.gif';this.e_icon.title=this.a_tpl.close;this.b_visible=true}function f_tcalHide(n_date){if(n_date)this.e_input.value=this.f_generDate(new Date(n_date));if(!this.b_visible)return;if(this.e_iframe){this.e_iframe.style.visibility='hidden';this.e_iframe.style.display='none'}this.e_div.style.visibility='hidden';this.e_div.style.display='none';this.e_icon=f_getElement(this.s_iconId);this.e_icon.src=this.a_tpl.imgpath+'cal.gif';this.e_icon.title=window._s3Lang['JS_OPEN_CALENDAR'];this.b_visible=false}function f_tcalToggle(){return this.b_visible?this.f_hide():this.f_show()}function f_tcalUpdate(d_date){var d_client=new Date();d_client.setHours(0);d_client.setMinutes(0);d_client.setSeconds(0);d_client.setMilliseconds(0);var d_today=this.a_cfg.today?this.f_parseDate(this.a_cfg.today):d_client;var d_selected=this.e_input.value==''?(this.a_cfg.selected?this.f_parseDate(this.a_cfg.selected):d_today):this.f_parseDate(this.e_input.value);if(!d_date)d_date=d_selected;else if(typeof(d_date)=='number')d_date=new Date(d_date);else if(typeof(d_date)=='string')this.f_parseDate(d_date);if(!d_date)return false;var d_firstday=new Date(d_date);d_firstday.setDate(1);d_firstday.setDate(1-(7+d_firstday.getDay()-this.a_tpl.weekstart)%7);var a_class,s_html=''+(this.a_tpl.yearscroll?'':'')+''+(this.a_tpl.yearscroll?'':'')+'
'+this.a_tpl.months[d_date.getMonth()]+' '+d_date.getFullYear()+'
';for(var i=0;i<7;i++)s_html+='';s_html+='';var d_current=new Date(d_firstday);while(d_current.getMonth()==d_date.getMonth()||d_current.getMonth()==d_firstday.getMonth()){s_html+='';for(var n_wday=0;n_wday<7;n_wday++){a_class=[];if(d_current.getMonth()!=d_date.getMonth())a_class[a_class.length]='othermonth';if(d_current.getDay()==0||d_current.getDay()==6)a_class[a_class.length]='weekend';if(d_current.valueOf()==d_today.valueOf())a_class[a_class.length]='today';if(d_current.valueOf()==d_selected.valueOf())a_class[a_class.length]='selected';s_html+='';d_current.setDate(d_current.getDate()+1)}s_html+=''}s_html+='
'+this.a_tpl.weekdays[(this.a_tpl.weekstart+i)%7]+'
':'>')+d_current.getDate()+'
';this.e_div.innerHTML=s_html;var n_width=this.e_div.offsetWidth;var n_height=this.e_div.offsetHeight;var n_top=f_getPosition(this.e_icon,'Top')+this.e_icon.offsetHeight;var n_left=f_getPosition(this.e_icon,'Left')-n_width+this.e_icon.offsetWidth;if(n_left<0)n_left=0;this.e_div.style.left=n_left+'px';this.e_div.style.top=n_top+'px';if(this.e_iframe){this.e_iframe.style.left=n_left+'px';this.e_iframe.style.top=n_top+'px';this.e_iframe.style.width=(n_width+6)+'px';this.e_iframe.style.height=(n_height+6)+'px'}return true}function f_getPosition(e_elemRef,s_coord){var n_pos=0,n_offset,e_elem=e_elemRef;while(e_elem){n_offset=e_elem["offset"+s_coord];n_pos+=n_offset;e_elem=e_elem.offsetParent}if(b_ieMac)n_pos+=parseInt(document.body[s_coord.toLowerCase()+'Margin']);else if(b_safari)n_pos-=n_offset;e_elem=e_elemRef;while(e_elem!=document.body){n_offset=e_elem["scroll"+s_coord];if(n_offset&&e_elem.style.overflow=='scroll')n_pos-=n_offset;e_elem=e_elem.parentNode}return n_pos}function f_tcalRelDate(d_date,d_diff,s_units){var s_units=(s_units=='y'?'FullYear':'Month');var d_result=new Date(d_date);d_result['set'+s_units](d_date['get'+s_units]()+d_diff);if(d_result.getDate()!=d_date.getDate())d_result.setDate(0);return' onclick="A_TCALS[\''+this.s_id+'\'].f_update('+d_result.valueOf()+')"'}function f_tcalHideAll(){for(var i=0;i