
var A_TCALDEF={'months':['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],'weekdays':['dom','lun','mar','mié','jue','vie','sáb'],'yearscroll':true,'weekstart':0,'centyear':70,'imgpath':'/imgs/imgcalendario/'}
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 dd-mm-yyyy.")
var n_day=Number(RegExp.$1),n_month=Number(RegExp.$2),n_year=Number(RegExp.$3);if(n_year<100)
n_year+=(n_year<this.a_tpl.centyear?2000:1900);if(n_month<1||n_month>12)
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()){n_day=n_day-1;}
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)
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){document.write('<img src="'+a_tpl.imgpath+'cal.gif" id="'+this.s_iconId+'" onclick="A_TCALS[\''+this.s_id+'\'].f_toggle()" class="tcalIcon" title="Calendario" width="16" height="16" />');this.e_icon=f_getElement(this.s_iconId);}
this.a_cfg=a_cfg;this.a_tpl=a_tpl;}
function f_tcalShow(d_date){this.dia_input=f_getElement(this.a_cfg.cm_dia);this.mes_input=f_getElement(this.a_cfg.cm_mes);this.ano_input=f_getElement(this.a_cfg.ano);this.fecha_input=f_getElement(this.a_cfg.fecha_num);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_shade=f_getElement('tcalShade');if(!this.e_shade){this.e_shade=document.createElement("DIV");this.e_shade.id='tcalShade';document.body.appendChild(this.e_shade);}
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);if(!this.f_update())
return;this.e_div.style.visibility='visible';this.e_shade.style.visibility='visible';if(this.e_iframe)
this.e_iframe.style.visibility='visible';this.e_icon.src=this.a_tpl.imgpath+'no_cal.gif';this.e_icon.title='Cerrar Calendario';this.b_visible=true;}
function f_tcalHide(n_date){var i;if(n_date){for(i=0;i<this.dia_input.length;i++){if(parseInt(this.dia_input.options[i].value,10)==new Date(n_date).getDate())
{this.dia_input.options[i].selected=true;}}
for(i=0;i<this.mes_input.length;i++){if(parseInt(this.mes_input.options[i].value,10)==new Date(n_date).getMonth()+1)
{this.mes_input.options[i].selected=true;}}
if(this.fecha_input.value==1)update_fecha_out();if(this.fecha_input.value==2)update_cm_noches();}
if(!this.b_visible)
return;if(this.e_iframe)
this.e_iframe.style.visibility='hidden';if(this.e_shade)
this.e_shade.style.visibility='hidden';this.e_div.style.visibility='hidden';this.e_icon=f_getElement(this.s_iconId);this.e_icon.src=this.a_tpl.imgpath+'cal.gif';this.e_icon.title='Calendario';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.f_parseDate(this.dia_input.value+"-"+this.mes_input.value+"-"+this.ano_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='<table class="ctrl"><tbody><tr>'
+(this.a_tpl.yearscroll?'<td'+this.f_relDate(d_date,-1,'y')+' title="Previous Year"><img src="'+this.a_tpl.imgpath+'prev_year.gif" /></td>':'');if(d_today.getMonth()<d_date.getMonth()||d_today.getYear()<d_date.getYear()){s_html=s_html+'<td'+this.f_relDate(d_date,-1)+' title="Mes anterior"><img src="'+this.a_tpl.imgpath+'prev_mon.gif" /></td><th>';}else{s_html=s_html+'<td></td><th>';}
s_html=s_html+this.a_tpl.months[d_date.getMonth()]+' '+d_date.getFullYear()+'</th>';if((d_today.getYear()==d_date.getYear())||((d_today.getYear()<d_date.getYear())&&(d_today.getMonth()>d_date.getMonth()+1))){s_html=s_html+'<td'+this.f_relDate(d_date,1)+' title="Mes siguiente"><img src="'+this.a_tpl.imgpath+'next_mon.gif" /></td>';}else{s_html=s_html+'<td></td>';}
s_html=s_html+(this.a_tpl.yearscroll?'<td'+this.f_relDate(d_date,1,'y')+' title="Next Year"><img src="'+this.a_tpl.imgpath+'next_year.gif" /></td></td>':'')
+'</tr></tbody></table><table><tbody><tr class="wd">';for(var i=0;i<7;i++)
s_html+='<th>'+this.a_tpl.weekdays[(this.a_tpl.weekstart+i)%7]+'</th>';s_html+='</tr>';var d_current=new Date(d_firstday);while(d_current.getMonth()==d_date.getMonth()||d_current.getMonth()==d_firstday.getMonth()){s_html+='<tr>';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_selected.valueOf())
a_class[a_class.length]='selected';if(d_current>=d_today){s_html+='<td onclick="A_TCALS[\''+this.s_id+'\'].f_hide('+d_current.valueOf()+')"'+(a_class.length?' class="'+a_class.join(' ')+'">':'>')+d_current.getDate()+'</td>'}else{s_html+='<td'+(a_class.length?' class="'+a_class.join(' ')+'">':'>')+'<strike>'+d_current.getDate()+'</strike></td>'}
d_current.setDate(d_current.getDate()+1);}
s_html+='</tr>';}
s_html+='</tbody></table>';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';this.e_shade.style.width=(n_width+8)+'px';this.e_shade.style.left=(n_left-1)+'px';this.e_shade.style.top=(n_top-1)+'px';this.e_shade.innerHTML=b_ieFix?'<table><tbody><tr><td rowspan="2" colspan="2" width="6"><img src="'+this.a_tpl.imgpath+'pixel.gif"></td><td width="7" height="7" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''+this.a_tpl.imgpath+'shade_tr.png\', sizingMethod=\'scale\');"><img src="'+this.a_tpl.imgpath+'pixel.gif"></td></tr><tr><td height="'+(n_height-7)+'" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''+this.a_tpl.imgpath+'shade_mr.png\', sizingMethod=\'scale\');"><img src="'+this.a_tpl.imgpath+'pixel.gif"></td></tr><tr><td width="7" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''+this.a_tpl.imgpath+'shade_bl.png\', sizingMethod=\'scale\');"><img src="'+this.a_tpl.imgpath+'pixel.gif"></td><td style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''+this.a_tpl.imgpath+'shade_bm.png\', sizingMethod=\'scale\');" height="7" align="left"><img src="'+this.a_tpl.imgpath+'pixel.gif"></td><td style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''+this.a_tpl.imgpath+'shade_br.png\', sizingMethod=\'scale\');"><img src="'+this.a_tpl.imgpath+'pixel.gif"></td></tr><tbody></table>':'<table><tbody><tr><td rowspan="2" width="6"><img src="'+this.a_tpl.imgpath+'pixel.gif"></td><td rowspan="2"><img src="'+this.a_tpl.imgpath+'pixel.gif"></td><td width="7" height="7"><img src="'+this.a_tpl.imgpath+'shade_tr.png"></td></tr><tr><td background="'+this.a_tpl.imgpath+'shade_mr.png" height="'+(n_height-7)+'"><img src="'+this.a_tpl.imgpath+'pixel.gif"></td></tr><tr><td><img src="'+this.a_tpl.imgpath+'shade_bl.png"></td><td background="'+this.a_tpl.imgpath+'shade_bm.png" height="7" align="left"><img src="'+this.a_tpl.imgpath+'pixel.gif"></td><td><img src="'+this.a_tpl.imgpath+'shade_br.png"></td></tr><tbody></table>';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<window.A_TCALSIDX.length;i++)
window.A_TCALSIDX[i].f_hide();}
f_getElement=document.all?function(s_id){return document.all[s_id]}:function(s_id){return document.getElementById(s_id)};if(document.addEventListener)
window.addEventListener('scroll',f_tcalHideAll,false);if(window.attachEvent)
window.attachEvent('onscroll',f_tcalHideAll);var s_userAgent=navigator.userAgent.toLowerCase(),re_webkit=/WebKit\/(\d+)/i;var b_mac=s_userAgent.indexOf('mac')!=-1,b_ie5=s_userAgent.indexOf('msie 5')!=-1,b_ie6=s_userAgent.indexOf('msie 6')!=-1&&s_userAgent.indexOf('opera')==-1;var b_ieFix=b_ie5||b_ie6,b_ieMac=b_mac&&b_ie5,b_safari=b_mac&&re_webkit.exec(s_userAgent)&&Number(RegExp.$1)<500;