var FSaa,FSbb,FSb;
var FSc,FSd;
var FSintHposOffset,FSintVposOffset;
var FSe,FSf,FSg;
var FSh,FSi,FSj;
var FSk=1;
var FSl=60*1000;
var FSm=FSl*60;
var FSn=FSm*24;
var FSo=0;
var FSp=0;
var FSq=0;
var FSr=0;
var FSs=0;
if(navigator.userAgent.indexOf("Gecko")>0){
FSstrBrowser="Gecko";
document.onclick=FSfncHideDateSelector}
else{
FSstrBrowser="IE";
document.onclick=function(){
FSfncHideDateSelector(event)}
}
if((typeof(HTMLElement)!="undefined")&&(!HTMLElement.prototype.insertAdjacentHTML)){
HTMLElement.prototype.insertAdjacentHTML=function(where,htmlStr){
var r=this.ownerDocument.createRange();
r.setStartBefore(this);
var parsedHTML=r.createContextualFragment(htmlStr);
this.appendChild(parsedHTML);
}
}
function FSfncShowDateSelector(DateRef,EventRef,DisableNone,LangID,ImagePath,hposOffset,vposOffset){
if(FSd){
return}
else{
FSd=true}
FSintHposOffset=hposOffset;
FSintVposOffset=vposOffset;
if(document.getElementById){
if(!FSf){
FSh=new Date();
FSh.setHours(0,0,0,0);
FSfncWriteSelectorHTML();
FSf=document.getElementById("FSdateSelector");
FSg=document.getElementById("FScalendarArea");
}
FSe=DateRef;
FSc=DisableNone;
FSbb=LangID;
FSb=ImagePath;
switch(FSbb){
case"FR":FSaa='Aucune';
FSk=1;
break;
case"DE":FSaa='Kein';
FSk=1;
break;
case"ES":FSaa='Ninguna';
FSk=1;
break;
case"ESUS":FSaa='Ninguna';
FSk=0;
break;
case"US":FSaa='None';
FSk=0;
break;
default:FSaa='None';
FSk=1;
}
FSi=new Date(1141788538453 - (70*FSn)); // new Date(FSh.getTime()-(FSn*69));
FSj=new Date(FSh.getTime()+(FSn*0));
FSo=0;

if(FSe.value==FSaa){
if(FSe.defaultValue==FSaa){
var arrCurrentDate=FSfncDateToString(FSh).split("/");
FSp=arrCurrentDate[0+FSk]-1;
}
else{
var arrCurrentDate=FSe.defaultValue.split("/");
FSo=arrCurrentDate[1-FSk];
FSp=arrCurrentDate[0+FSk]-1;
}
}
else{
var arrCurrentDate=FSe.value.split("/");
FSo=arrCurrentDate[1-FSk];
FSp=arrCurrentDate[0+FSk]-1;
}
FSq=arrCurrentDate[2];
FSr=parseInt(FSp,10);
FSs=parseInt(FSq,10);
FSg.innerHTML=FSfncCreateCalendarArea();
if(FSstrBrowser=="Gecko"){
FSf.style.left=EventRef.clientX-90+hposOffset;
FSf.style.top=EventRef.clientY+8+vposOffset;
}
else{
FSf.style.left=EventRef.clientX-EventRef.offsetX-82+document.body.scrollLeft+document.documentElement.scrollLeft+hposOffset;
FSf.style.top=EventRef.clientY-EventRef.offsetY+16+document.body.scrollTop+document.documentElement.scrollTop+vposOffset;
}
FSf.style.visibility="visible";
}
}
function FSfncHideDateSelector(TheEvent){
if(FSf){
if(FSstrBrowser=="Gecko"){
if(TheEvent){
var ThisIcon="FSdsIcon_"+FSe.name;
var rel=TheEvent.target;
while(rel){
if((rel.id=="FSdateSelector")||(rel.id==ThisIcon)){
break}
else{
rel=rel.parentNode}
}
}
if(!rel){
FSf.style.visibility="hidden";
FSd=false}
return;
}
else{
if((TheEvent)){
if((TheEvent.clientX+document.body.scrollLeft+document.documentElement.scrollLeft>FSf.style.posLeft+1)&&(TheEvent.clientX+document.body.scrollLeft+document.documentElement.scrollLeft<FSf.style.posLeft+FSf.style.posWidth+10)&&(TheEvent.clientY+document.body.scrollTop+document.documentElement.scrollTop>FSf.style.posTop+1)&&(TheEvent.clientY+document.body.scrollTop+document.documentElement.scrollTop<FSf.style.posTop+FSf.offsetHeight+2)){
return}
if((TheEvent.clientX+document.body.scrollLeft+document.documentElement.scrollLeft>FSf.style.posLeft+81-FSintHposOffset)&&(TheEvent.clientX+document.body.scrollLeft+document.documentElement.scrollLeft<FSf.style.posLeft+99-FSintHposOffset)&&(TheEvent.clientY+document.body.scrollTop+document.documentElement.scrollTop>FSf.style.posTop-17-FSintVposOffset)&&(TheEvent.clientY+document.body.scrollTop+document.documentElement.scrollTop<FSf.style.posTop-FSintVposOffset)){
return}
}
FSf.style.visibility="hidden";
FSd=false;
}
}
else{
FSf=false}
}
function FSfncCreateCalendarArea(){
switch(FSbb){
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";
var strNoValue="Aucune";
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";
var strNoValue="Kein";
break;
case"ES":case"ESUS":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";
var strNoValue="Ninguna";
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 strNoValue="None";
}
var dtFirstOfMonth=new Date(FSs,FSr,1);
var intTimeOffset=FSfncGetTimeOffset();
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;
}
OffsetDays-=(FSk-1);
var dtCalendarStart=new Date(dtFirstOfMonth.getTime()-(FSn*OffsetDays));
dtCalendarStart.setHours(12);
var dtCalendarEnd=new Date(dtCalendarStart.getTime()+(FSn*41));
dtCalendarEnd.setHours(12);
strCalendar='<TABLE BORDER="0" CELLPADDING="2" CELLSPACING="0" CLASS="FScalendar">';
strCalendar+="<TR CLASS='FScalendarTitles' ALIGN='center'>";
for(var i=0;
i<=6;
i++){
intArrayPointer=i+(FSk-1);
if(intArrayPointer<0){
intArrayPointer=6}
strCalendar+="<TD WIDTH='22'>"+arrDayNames[intArrayPointer]+"</TD>"}
strCalendar+="</TR>";
for(var i=0;
i<=41;
i++){
if(i%7==0){
strCalendar+="<TR ALIGN='center'>"}
var StyleString="";
var dtTheDay=new Date(dtCalendarStart.getTime()+(FSn*i));
dtTheDay.setHours(0,0,0,0);
if(dtTheDay.getTime()==FSh.getTime()){
if((dtTheDay.getMonth()==FSp)&&(dtTheDay.getDate()==FSo)&&(dtTheDay.getFullYear()==FSq)){
StyleString+="background-image: url("+FSb+"today_selected.gif); background-repeat:no-repeat; "}
else{
StyleString+="background-image: url("+FSb+"today.gif); background-repeat:no-repeat; "}
}
else if((dtTheDay.getMonth()==FSp)&&(dtTheDay.getDate()==FSo)&&(dtTheDay.getFullYear()==FSq)){
StyleString+="background-image: url("+FSb+"selected.gif); background-repeat:no-repeat; "}
if(dtTheDay.getMonth()!=FSr){
var LinkClass="FSnotInMonth"}
else{
var LinkClass="FSinMonth"}
if(((FSi)&&(FSj))&&((dtTheDay<FSi)||(dtTheDay>FSj))){
strCalendar+="<TD CLASS='FSoutOfRange' STYLE='"+StyleString+"'>"+dtTheDay.getDate()+"</TD>"}
else{
strCalendar+="<TD STYLE='"+StyleString+"'><A HREF='Javascript: void FSfncSetDate(\""+FSfncDateToString(dtTheDay)+"\")' CLASS='"+LinkClass+"'>"+dtTheDay.getDate()+"</A></TD>"}
if(i%7==6){
strCalendar+="</TR>"}
}
strCalendar+="</TABLE>";
var strMonthOptions="";
var strSelected="";
for(var i=0;
i<=11;
i++){
if(i==FSr){
strSelected=" SELECTED"}
else{
strSelected=""}
strMonthOptions+='<OPTION'+strSelected+'>'+arrMonthNames[i]+'</OPTION>';
}
if(FSc==true){
NoneButton='<IMG SRC="'+FSb+FSbb+'/but_none_dis.gif" WIDTH="44" HEIGHT="18" HSPACE="1">'}
else{
NoneButton='<INPUT TYPE="image" SRC="'+FSb+FSbb+'/but_none.gif" WIDTH="44" HEIGHT="18" HSPACE="1" onClick="FSfncSetDate(\''+strNoValue+'\')">'}
strCalendar='<TABLE BORDER="0" CELLPADDING="1" CELLSPACING="0" WIDTH="100%" HEIGHT="100%">'+'<TR HEIGHT="22" CLASS="FSbuttonsRow">'+'<TD WIDTH="30" ALIGN="left"><INPUT TYPE="image" SRC="'+FSb+'but_prev.gif" WIDTH="18" HEIGHT="18" HSPACE="1" onClick="FSfncAdvanceDate(-1)"></TD>'+'<TD><SELECT NAME="FScurrentMonth" CLASS="FSmonthRolldown" onChange="FSfncChangeMonth(this.selectedIndex + 1)">'+strMonthOptions+'</SELECT></TD>'+'<TD><INPUT TYPE="text" NAME="FScurrentYear" VALUE="'+FSs+'" READONLY CLASS="FSyearInput"></TD>'+'<TD><INPUT TYPE="image" SRC="'+FSb+'but_yeard.gif" WIDTH="18" HEIGHT="9" onClick="FSfncAdvanceDate(12)"><BR><INPUT TYPE="image" SRC="'+FSb+'but_yearu.gif" WIDTH="18" HEIGHT="9" onClick="FSfncAdvanceDate(-12)"></TD>'+'<TD WIDTH="30" ALIGN="right"><INPUT TYPE="image" SRC="'+FSb+'but_next.gif" WIDTH="18" HEIGHT="18" HSPACE="1" onClick="FSfncAdvanceDate(1)"></TD>'+'</TR>'+'<TR HEIGHT="133" BGCOLOR="#FFFFFF"><TD COLSPAN="5" ALIGN="center">'+strCalendar+'</TD></TR>'+'<TR HEIGHT="22" CLASS="FSbuttonsRow">'+'<TD COLSPAN="5">'+'<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%">'+'<TR>'+'<TD ALIGN="left"><INPUT TYPE="image" SRC="'+FSb+FSbb+'/but_today.gif" WIDTH="44" HEIGHT="18" HSPACE="1" onClick="FSfncSetDate(FSfncDateToString(FSh))"></TD>'+'<TD ALIGN="center" ID="FSdateToday">'+strTodayLabel+': '+FSfncDateToString(FSh)+'</TD>'+'<TD ALIGN="right">'+NoneButton+'</TD>'+'</TR>'+'</TABLE>'+'</TD>'+'</TR>';
return strCalendar;
}
function FSfncGetTimeOffset(){
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)/FSm;
}
function FSfncSetDate(TheDate){
var tempArray=TheDate.split("/");
var resultingDate=new Date(tempArray[2],tempArray[0+FSk]-1,tempArray[1-FSk]);
if(((FSi)&&(FSj))&&((resultingDate<FSi)||(resultingDate>FSj))){
switch(FSbb){
case"FR":alert("Veuillez choisir une dacte dans la gamme specifice");
break;
case"DE":alert("Bitte ein Datum innerhalb des angegebenen Zeitraums wählen");
break;
case"ES":case"ESUS":alert("Por favor, elija una fecha dentro del periodo especificado");
break;
default:alert("Please select a date in the range specified");
}
return false;
}
FSo=0;
FSe.value=TheDate;
FSfncHideDateSelector();
}
function FSfncAdvanceDate(Adjuster){
if((Adjuster==12)||(Adjuster==-12)){
FSs=FSs+(Adjuster/12)}
else{
FSr=FSr+Adjuster;
if(FSr==-1){
FSr=11;
FSs--}
if(FSr==12){
FSr=0;
FSs++}
}
FSg.innerHTML=FSfncCreateCalendarArea();
}
function FSfncChangeMonth(Adjuster){
FSr=Adjuster-1;
FSg.innerHTML=FSfncCreateCalendarArea();
}
function FSfncDateToString(TheDate){
if(!TheDate){
return""}
else{
if(FSk==1){
return(TheDate.getDate()<10?"0"+TheDate.getDate():TheDate.getDate())+"/"+(TheDate.getMonth()<9?"0"+(TheDate.getMonth()+1):(TheDate.getMonth()+1))+"/"+TheDate.getFullYear()}
else{
return(TheDate.getMonth()<9?"0"+(TheDate.getMonth()+1):(TheDate.getMonth()+1))+"/"+(TheDate.getDate()<10?"0"+TheDate.getDate():TheDate.getDate())+"/"+TheDate.getFullYear()}
}
}
function FSfncMakeDate(TheDay,TheMonth,TheYear){
return new Date(TheYear,TheMonth-1,TheDay)}
function FSfncCheckDate(thisDateField,LangID){
if(!LangID){
LangID=FSbb}
switch(LangID){
case"FR":FSaa='Aucune';
FSk=1;
var strFailText="Cette date n'est pas valable";
break;
case"DE":FSaa='Keine';
FSk=1;
var strFailText="Dieses Datum ist ungaltig";
break;
case"ES":FSaa='Ninguna';
FSk=1;
var strFailText="Esta fecha no es válida";
break;
case"ESUS":FSaa='Ninguna';
FSk=0;
var strFailText="Esta fecha no es válida";
break;
case"US":FSaa='None';
FSk=0;
var strFailText="Date is not valid";
break;
default:FSaa='None';
FSk=1;
var strFailText="Date is not valid";
}
if(thisDateField.value==""){
thisDateField.value=FSaa}
if((thisDateField.value!=FSaa)&&(!FSfncCheckDateFormat(thisDateField.value))){
alert(strFailText);
thisDateField.value=thisDateField.defaultValue}
}
function FSfncCheckDateFormat(thisDate){
if(thisDate.indexOf("/")==-1){
return false}
var ArrayDate=thisDate.split("/");
if(ArrayDate.length!=3){
return false}
if((isNaN(ArrayDate[0]))||(ArrayDate[0]=="")){
return false}
if((isNaN(ArrayDate[1]))||(ArrayDate[1]=="")){
return false}
if((isNaN(ArrayDate[2]))||(ArrayDate[2]=="")){
return false}
var daysInMonth=new Array(0,31,29,31,30,31,30,31,31,30,31,30,31);
if((parseInt(ArrayDate[1-FSk],10)<1)||(parseInt(ArrayDate[1-FSk],10)>daysInMonth[parseInt(ArrayDate[0+FSk],10)])){
return false}
if((parseInt(ArrayDate[0+FSk],10)==2)&&(parseInt(ArrayDate[1-FSk],10)>FSfncDaysInFebruary(parseInt(ArrayDate[2],10)))){
return false}
if((parseInt(ArrayDate[0+FSk],10)<1)||(parseInt(ArrayDate[0+FSk],10)>12)){
return false}
return true;
}
function FSfncDaysInFebruary(year){
return(((year%4==0)&&((!(year%100==0))||(year%400==0)))?29:28)}
function FSfncWriteSelectorHTML(){
var selectorHTML=''+'<FORM ACTION="#" METHOD="GET" NAME="FSdateSelectorForm" onSubmit="return false">'+'<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="188" HEIGHT="194" ID="FSdateSelector" STYLE="width:190px; height:196px">'+'<TR><TD ID="FScalendarArea"></TD></TR>'+'</TABLE>'+'</FORM>';
document.body.insertAdjacentHTML("BeforeEnd",selectorHTML)}
function FSfncWriteFieldHTML(FormName,FieldName,FieldValue,FieldWidth,ImagePath,LangID,DisableNone,UseOnClick,HposOffset,VposOffset){
if(!LangID){
LangID="EN"}
if(!DisableNone){
DisableNone=false}
if(ImagePath.charAt(ImagePath.length-1)!="/"){
ImagePath=ImagePath+"/"}
if(!HposOffset){
HposOffset=0}
if(!VposOffset){
VposOffset=0}
if(document.getElementById){
var FSimg1=new Image();
FSimg1.src=ImagePath+"today_selected.gif";
var FSimg2=new Image();
FSimg2.src=ImagePath+"today.gif";
var FSimg3=new Image();
FSimg3.src=ImagePath+"selected.gif";
var FSimg4=new Image();
FSimg4.src=ImagePath+"but_prev.gif";
var FSimg5=new Image();
FSimg5.src=ImagePath+"but_yearu.gif";
var FSimg6=new Image();
FSimg6.src=ImagePath+"but_yeard.gif";
var FSimg7=new Image();
FSimg7.src=ImagePath+"but_next.gif";
var FSimg8=new Image();
FSimg8.src=ImagePath+LangID+"/but_today.gif";
var FSimg9=new Image();
FSimg9.src=ImagePath+LangID+"/but_none.gif";
var ActionString='FSfncShowDateSelector(document.'+FormName+'.'+FieldName+',event,'+DisableNone+',\''+LangID+'\',\''+ImagePath+'\','+HposOffset+','+VposOffset+')';
if(UseOnClick==true){
var ActionEvent="onMouseDown="+ActionString;
switch(LangID){
case"FR":var IconAltText="Cliquez ici pour choisir une date";
break;
case"DE":var IconAltText="Hier klicken, um ein Datum auszuwählen";
break;
case"ES":case"ESUS":var IconAltText="Haga clic aquí para seleccionar una fecha";
break;
default:var IconAltText="Click here to select a date";
}
}
else{
var ActionEvent="onMouseOver="+ActionString+" onMouseDown="+ActionString;
var IconAltText="";
}
var formFieldHTML=''+'<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" BGCOLOR="#FFFFFF" CLASS="FSdateSelect" ID="'+FieldName+'FStable" WIDTH="'+FieldWidth+'" HEIGHT="22" STYLE="width:'+FieldWidth+'px">'+'<TR>'+'<TD><INPUT TYPE="text" NAME="'+FieldName+'" VALUE="'+FieldValue+'" CLASS="FSdateField" SIZE="9" MAXLENGTH="10" onChange="FSfncCheckDate(this,\''+LangID+'\')" READONLY></TD>'+'<TD ALIGN="right"><A HREF="JavaScript: void 0" '+ActionEvent+'><IMG SRC="'+ImagePath+'calendar.gif" HEIGHT="16" WIDTH="16" HSPACE="3" BORDER="0" ALT="'+IconAltText+'" ID="FSdsIcon_'+FieldName+'"></A></TD>'+'</TR>'+'</TABLE>';
document.write(formFieldHTML);
}
else{
var formFieldHTML='<INPUT TYPE="text" NAME="'+FieldName+'" VALUE="'+FieldValue+'" SIZE="10" MAXLENGTH="10" onChange="FSfncCheckDate(this,\''+LangID+'\')" STYLE="width:'+FieldWidth+'px; height:22px">';
document.write(formFieldHTML);
}
}

