var PC_none,PC_lang,PC_imgPath,PC_disNone,PC_disp,PC_ho,PC_vo,PC_data,popupCalendarForm,popupCalendar,PC_onDateSelected;
var PC_today,PC_format,PC_minuto=60*1000;
var PC_ora=PC_minuto*60,PC_giorno=PC_ora*24,PC_day=0,PC_monthStr=0,PC_yearStr=0,PC_month=0,PC_year=0;
function showPopupCalendar(DateRef,EventRef,DisableNone,LangID,Format,ImagePath,hposOffset,vposOffset,ondateselected){
if(PC_disp) return;
else {PC_disp=true;
if(popupCalendarForm!=null)popupCalendarForm.parentNode.removeChild(popupCalendarForm);
hidePopupCalendarFunction();}
registerClickListener("hidePopupCalendar");
PC_onDateSelected=ondateselected;
PC_ho=hposOffset;PC_vo=vposOffset;
if(document.getElementById){
PC_today=new Date();
PC_today.setHours(0,0,0,0);
PC_data=DateRef;PC_disNone=DisableNone;PC_lang=normalize(LangID);PC_imgPath=ImagePath;PC_format=Format;stringToDate();
popupCalendarWriteSelectorHTML(createPopupCalendar());
popupCalendarForm=document.getElementById("popupCalendarFormId");
popupCalendarForm.style.zIndex=99;
popupCalendar=document.getElementById("popupCalendarCalendarArea");
popupCalendarForm.style.height=popupCalendar.style.height;
popupCalendarForm.style.width=popupCalendar.style.width;
var lef=EventRef.clientX+document.body.scrollLeft+document.documentElement.scrollLeft-90+hposOffset;
if (lef<0) lef=0;
popupCalendarForm.style.left=lef+"px";
var topo=EventRef.clientY+document.body.scrollTop+document.documentElement.scrollTop+8+vposOffset;
if (topo<0) topo=0;
popupCalendarForm.style.top=topo+"px";
popupCalendarForm.style.visibility="visible";
popupCalendarForm.style.display="block";
var iframe = document.getElementById("popupCalendarFormId_IFRAME");
if(iframe == null) {
iframe = document.createElement("iframe");
iframe.src=ImagePath+"x.gif";
iframe.id='popupCalendarFormId_IFRAME';
iframe.style.visibility='visible';
iframe.style.display='block';
iframe.style.position='absolute';
iframe.style.width 	= popupCalendarForm.offsetWidth;
iframe.style.height = popupCalendarForm.offsetHeight;
iframe.style.top 	= popupCalendarForm.style.top;
iframe.style.left 	= popupCalendarForm.style.left;
iframe.style.zIndex = 98;
iframe.style.borderStyle='none';
if(browserType=="Gecko"){
document.body.appendChild(iframe);
} else {
document.body.insertAdjacentElement('beforeEnd', iframe);}}
iframe.style.width 	= popupCalendarForm.offsetWidth;
iframe.style.height = popupCalendarForm.offsetHeight;
iframe.style.top 	= popupCalendarForm.style.top;
iframe.style.left 	= popupCalendarForm.style.left;
iframe.style.zIndex = 98;
iframe.style.display = "block";
iframe.style.visibility = "visible";}}
function hidePopupCalendar(TheEvent){
if(popupCalendarForm){if(browserType=="Gecko"){var rel=TheEvent.target;
}else{var rel=event.srcElement;}
if(TheEvent){var ThisIcon="popupCalendarIcon\137"+PC_data.name;
while(rel){if((rel.id=="popupCalendarFormId")||(rel.id==ThisIcon)) break;
else rel=rel.parentNode;}}
if(!rel){hidePopupCalendarFunction();
return;}}else{popupCalendarForm=false}}
function hidePopupCalendarFunction(){ 
unregisterClickListener("hidePopupCalendar");
if(popupCalendarForm!=null){
popupCalendarForm.style.visibility="hidden";
popupCalendarForm.style.display="none";}
PC_disp=false;PC_onDateSelected=null;
var iframe = document.getElementById("popupCalendarFormId_IFRAME");
if(iframe!=null){
iframe.style.display = "none";
iframe.style.visibility = "hidden";}}
function normalize(locale){ 
switch(locale){
case"it":
case"IT":
case"it_IT":
return "IT";
case"fr":
case"FR":
case"fr_FR":
	return "FR";
case"de":
case"DE":
case"de_DE":
	return "DE";
case"es":
case"ES":
case"es_ES":
	return "ES";
case"pt":
case"BR":
case"pt_BR":
case"PT_BR":
	return "PT";
default:
	return "US";
}}
function createPopupCalendar(){
var strNoValue="";
switch(PC_lang){
case"IT":
var arrDayNames=new Array("Lun","Mar","Mer","Gio","Ven","Sab","Dom");
var arrMonthNames=new Array("Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre");
var strTodayLabel="Oggi";
break;
case"FR":
var arrDayNames=new Array("Lun","Mar","Mer","Jeu","Ven","Sam","Dim");
var arrMonthNames=new Array("Janvier","F&eacute;vrier","Marche","Avril","Mai","Juin","Juillet","Ao&ucirc;t","Septembre","Octobre","Novembre","D&eacute;cembre");
var strTodayLabel="Auj";
break;
case"DE":
var arrDayNames=new Array("Mon","Die","Mit","Don","Fre","Sam","Son");
var arrMonthNames=new Array("Januar","Februar","M&auml;rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
var strTodayLabel="Heute";
break;
case"ES":
var arrDayNames=new Array("Lun","Mar","Mi&eacute;","Jue","Vie","S&aacute;b","Dom");
var arrMonthNames=new Array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
var strTodayLabel="Hoy";
break;
case"PT":
var arrDayNames=new Array("Seg","Ter","Qua","Qui","Sex","S&aacute;b","Dom");
var arrMonthNames=new Array("Janeiro","Fevereiro","Mar&ccedil;o","Abril","Maio","Junho","Julho","Agosto","Setembro","Oubro","Novembro","Dezembro");
var strTodayLabel="Hoje";
break;
default:
var arrDayNames=new Array("Mon","Tue","Wed","Thu","Fri","Sat","Sun");
var arrMonthNames=new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var strTodayLabel="Today";
}
var dtFirstOfMonth=new Date(PC_year,PC_month,1);
var intTimeOffset=popupCalendarGetTimeOffset();
if(Math.abs(intTimeOffset)>8){
dtFirstOfMonth.setHours(-intTimeOffset,0,0,0)
}
switch(dtFirstOfMonth.getDay()){
case 0:
	var OffsetDays=6;
	break;
case 1:
	var OffsetDays=7;
	break;
default:
	var OffsetDays=dtFirstOfMonth.getDay()-1;
}
var dtCalendarStart=new Date(dtFirstOfMonth.getTime()-(PC_giorno*OffsetDays));
dtCalendarStart.setHours(12);
var dtCalendarEnd=new Date(dtCalendarStart.getTime()+(PC_giorno*41));
dtCalendarEnd.setHours(12);
strCalendar='<table border="0" cellpadding="2" cellspacing="0" class="popupCalendarCalendar">';
strCalendar+="<tr align='center'>";
for(var i=0;i<=6;i++){
if(i==6) strCalendar+="<td style='background-color:#FCCEA0' width='22'>"+arrDayNames[i]+"<\057td>";
else strCalendar+="<td width='22'>"+arrDayNames[i]+"<\057td>";}
strCalendar+="<\057tr>";
for(var i=0;i<=41;i++){
if(i%7==0) strCalendar+="<tr align='center'>"
var StyleString="";
var dtTheDay=new Date(dtCalendarStart.getTime()+(PC_giorno*i));
dtTheDay.setHours(0,0,0,0);
if(dtTheDay.getTime()==PC_today.getTime()){
if((dtTheDay.getMonth()==PC_monthStr)&&(dtTheDay.getDate()==PC_day)&&(dtTheDay.getFullYear()==PC_yearStr))
	StyleString+="background\055image: url("+PC_imgPath+"today\137selected.gif); background\055repeat:no\055repeat; ";
else
	StyleString+="background\055image: url("+PC_imgPath+"today.gif); background\055repeat:no\055repeat; ";
}else if((dtTheDay.getMonth()==PC_monthStr)&&(dtTheDay.getDate()==PC_day)&&(dtTheDay.getFullYear()==PC_yearStr))
	StyleString+="background\055image: url("+PC_imgPath+"selected.gif); background\055repeat:no\055repeat; ";
if(i%7==6) extra="background-color:#FCCEA0; ";
else extra="";
if(dtTheDay.getMonth()!=PC_month) var LinkClass="color:#808080; text-decoration:none; width:22px; height:12px;";
else var LinkClass="color:#000000; text-decoration:none; width:22px; height:12px; font-weight:normal;";
strCalendar+="<td style='"+StyleString+extra+"' ><a href='Javascript: void returnDate(\""+dateToString(dtTheDay)+"\")' style='"+LinkClass+"' onmouseover='this.style.fontWeight=\"bold\";PC_tmp=this.parentNode.style.backgroundColor;this.parentNode.style.backgroundColor=\"#D6D6D6\";' onmouseout='this.style.fontWeight=\"normal\";this.parentNode.style.backgroundColor=PC_tmp;'>"+dtTheDay.getDate()+"<\057a><\057td>"
if(i%7==6) strCalendar+="<\057tr>";}
strCalendar+="<\057table>";
var strMonthOptions="";
var strSelected="";
for(var i=0;i<=11;i++){
if(i==PC_month) strSelected=" selected";
else strSelected="";
strMonthOptions+='<option'+strSelected+'>'+arrMonthNames[i]+'<\057option>';
}
if(PC_disNone==true) NoneButton='<img src="'+PC_imgPath+PC_lang+'/but_none_dis.gif" width="44" height="18" hspace="1"/>';
else NoneButton='<input type="image" src="'+PC_imgPath+PC_lang+'/but_none.gif" width="44" height="18" hspace="1" onclick="returnDate(\''+strNoValue+'\')"/>';
strCalendar='<table border="0" cellpadding="1" cellspacing="0" width="100%" height="100%">'+
'<tr height="22" style="background-color:#DDDDDD">'+
'<td width="30" align="left">'+
'<input type="image" src="'+PC_imgPath+'but_prev.gif" width="18" height="18" hspace="1" onclick="popupCalendarAdvanceDate(-1)"/>'+
'</td>'+
'<td>'+
'<select name="popupCalendarCurrentMonth" style="width:90px;font-size:11px;" onchange="popupCalendarChangeMonth(this.selectedIndex + 1)">'+
strMonthOptions+
'</select>'+
'</td>'+
'<td>'+
'<input type="text" name="popupCalendarCurrentYear" value="'+PC_year+'" readonly style="width:38px;font-size:11px;"/>'+
'</td>'+
'<td>'+
'<input type="image" src="'+PC_imgPath+'but_yeard.gif" width="18" height="9" onclick="popupCalendarAdvanceDate(12)"/>'+
'<br/>'+
'<input type="image" src="'+PC_imgPath+'but_yearu.gif" width="18" height="9" onclick="popupCalendarAdvanceDate(-12)"/>'+
'</td>'+
'<td width="30" align="right">'+
'<input type="image" src="'+PC_imgPath+'but_next.gif" width="18" height="18" hspace="1" onclick="popupCalendarAdvanceDate(1)"/>'+
'</td>'+
'</tr>'+
'<tr height="133" bgcolor="#FFFFFF">'+
'<td colspan="5" align="center">'+
strCalendar+
'</td>'+
'</tr>'+
'<tr height="22" style="background-color:#DDDDDD">'+
'<td colspan="5">'+
'<table border="0" cellpadding="0" cellspacing="0" width="100%">'+
'<tr>'+
'<td align="left">'+
'<input type="image" src="'+PC_imgPath+PC_lang+'/but_today.gif" width="44" height="18" hspace="1" onclick="returnDate(dateToString(PC_today))"/>'+
'</td>'+
'<td align="center" id="popupCalendarToday" style="font-size:11px; font-weight:bold">'+
strTodayLabel+': '+dateToString(PC_today)+	
'</td>'+
'<td align="right">'+
NoneButton+
'</td>'+
'</tr>'+
'</table>'+
'</td>'+
'</tr>' +
'</table>';
return strCalendar;}
function popupCalendarGetTimeOffset(){var rightNow=new Date();var date1=new Date(rightNow.getFullYear(),0,1,0,0,0,0);var temp=date1.toGMTString();var date3=new Date(temp.substring(0,temp.lastIndexOf(" ")-1));return(date1-date3)/PC_ora;}
function stringToDate(){	
if (PC_format==null) PC_format="dd/MM/yyyy";
ddI=PC_format.indexOf("dd");
MMI=PC_format.indexOf("MM");
yyyyI=PC_format.indexOf("yyyy");
if (yyyyI==-1){yyI=PC_format.indexOf("yy");}
try {
if (PC_data.value.substring(ddI,ddI+2)=="") throw "errore";
PC_day=parseInt(PC_data.value.substring(ddI,ddI+2),10);
if (isNaN(PC_day)) throw "errore";
if (PC_data.value.substring(MMI,MMI+2)=="") throw "errore";
PC_month=parseInt(PC_data.value.substring(MMI,MMI+2),10)-1;
if (isNaN(PC_month)) throw "errore";
if (yyyyI==-1) {
if (PC_data.value.substring(yyI,yyI+2)=="") throw "errore";
datY="20"+PC_data.value.substring(yyI,yyI+2);
PC_year=parseInt(datY,10);
if (PC_year > 2050) { PC_year=PC_year-100; }
if (isNaN(PC_year)) throw "errore";
}else{
if (PC_data.value.substring(yyyyI,yyyyI+4)=="") throw "errore";
PC_year=parseInt(PC_data.value.substring(yyyyI,yyyyI+4),10);
if (isNaN(PC_year)) throw "errore";
}} catch(errore) {
temp=new Date();
temp.setHours(0,0,0,0);
PC_day=temp.getDate();
PC_month=temp.getMonth();
PC_year=temp.getFullYear();}
PC_yearStr=""+PC_year;
PC_monthStr=""+PC_month;}
function dateToString(TheDate){
if(!TheDate){
return""
}else{
temp=PC_format.replace("dd",TheDate.getDate()<10?"0"+TheDate.getDate():TheDate.getDate());
temp=temp.replace("MM",TheDate.getMonth()<9?"0"+(TheDate.getMonth()+1):(TheDate.getMonth()+1));
if (temp.indexOf("yyyy")==-1){
datY=""+TheDate.getFullYear();
datY=datY.substring(2,4);
temp=temp.replace("yy",datY);
}else{
temp=temp.replace("yyyy",TheDate.getFullYear());}
return temp;}}
function returnDate(TheDate){unregisterClickListener("hidePopupCalendar");PC_data.value=TheDate;
popupCalendarForm.style.visibility="hidden";
popupCalendarForm.style.display="none";
PC_disp=false;
var iframe = document.getElementById("popupCalendarFormId"+"_IFRAME");
iframe.style.display = "none";
iframe.style.visibility = "hidden";
if (PC_onDateSelected!=null)eval(PC_onDateSelected);
if (PC_data.onchange){PC_data.onchange();}}
function popupCalendarAdvanceDate(Adjuster){if((Adjuster==12)||(Adjuster==-12)){PC_year=PC_year+(Adjuster/12)}else{PC_month=PC_month+Adjuster;if(PC_month==-1){PC_month=11;PC_year--}if(PC_month==12){PC_month=0;PC_year++}}popupCalendar.innerHTML=createPopupCalendar();}
function popupCalendarChangeMonth(Adjuster){PC_month=Adjuster-1;popupCalendar.innerHTML=createPopupCalendar();}
function popupCalendarWriteSelectorHTML(j4fcalendar){var selectorHTML=''+'<table border="0" cellpadding="0" cellspacing="0" id="popupCalendarFormId" height="1px" width="1px" style="position:absolute; left:0; top:0; visibility: hidden; display: none; background-color:#FFFFFF; font-family:Arial,Helvetica,Sans-Serif; font-size:12px;">'+'<tr><td id="popupCalendarCalendarArea" style="border:1px solid black;">'+j4fcalendar+'</td></tr>'+'</table>';document.body.insertAdjacentHTML("BeforeEnd",selectorHTML)}

