//CALENDAR
var n=navigator,B=(n.userAgent+n.appName).toLowerCase(),V=parseInt(n.appVersion);
var N4=(B.indexOf("netscape")!=-1&&V==4),IE=(B.indexOf("microsoft")!=-1);

var calForm;
var dropDay1,dropMonth1,dropDay2,dropMonth2;
var currButtonNo;

var initDay,initMonth,initYear;
var endDay,endMonth;
var numMonths;
var anyMonthVal = 0;
var anyText = "";

var calWidth=142;
var calHeight=182;

var bPressed,calendar;
var calendarHTML="";
var monthNames=new Array("x","x","x","x","x","x","x","x","x","x","x","x","x");//placeholders
var localeMonths="";

function startUpCalendar(stDate,endDate,formName,dd1,dm1,dd2,dm2,sync,syncCal,myLocale){
	if(N4)return;
	if(!document.all)document.all=document.getElementsByTagName("*");
	calForm=document.forms[formName];
	dropDay1=calForm[dd1];dropMonth1=calForm[dm1];
	dropDay2=calForm[dd2];dropMonth2=calForm[dm2];

  if(dropDay1) anyText = dropDay1.options[0].text;
	stPos=currpos=0;

	if (myLocale=='fr_FR') {
		localeMonths = '</td></tr><tr><td height="20" width="20"><b>L</b></td><td width="20"><b>M</b></td><td width="20"><b>M</b></td>\
			<td width="20"><b>J</b></td><td width="20"><b>V</b></td><td width="20"><b>S</b></td><td width="20"><b>D</b></td></tr>';
		}
	else {
		localeMonths = '</td></tr><tr><td height="20" width="20"><b>M</b></td><td width="20"><b>T</b></td><td width="20"><b>W</b></td>\
			<td width="20"><b>T</b></td><td width="20"><b>F</b></td><td width="20"><b>S</b></td><td width="20"><b>S</b></td></tr>';
		}

	initDate=stDate.split('/');
	initDay=initDate[0]*1,initMonth=initDate[1]*1,initYear=initDate[2];

  d=new Date()
  if (syncCal!=false){
    calDay=initDay=initDate[0]*1;
    calMonth=initMonth=initDate[1]*1;
    calYear=initYear=initDate[2];
  } else {
    calDay=d.getDate();
    calMonth=d.getMonth()+1;
    calYear=d.getFullYear();    
  }  
  
	endDate=endDate.split('/');
	endDay=endDate[0]*1,endMonth=endDate[1]*1;
	if(endMonth>initMonth)numMonths=endMonth-initMonth+1;
	else numMonths=(12-initMonth)+endMonth+1;
	if(endMonth==initMonth)numMonths=1;
    
	/* start on current date */
  tDate = d.getDate()+'/'+(d.getMonth()+1)+'/'+d.getFullYear();

	if (tDate!=stDate){

/*if(dropMonth1)setDropdowns(initDay,initMonth,1);*/
if(dropMonth2){setDropdowns(initDay,initMonth,2);currButtonNo=1;syncDropdowns();}
  }
}

function setCalendar(buttonNo){
	bPressed=true;
	currButtonNo=buttonNo;
	var ops=eval('dropMonth'+buttonNo);
	for(i=0;i<ops.length;i++){
		var opVal=ops.options[i].value;
		monthNames[opVal]=ops.options[i].text;
	}

  var currMonth=eval('dropMonth'+buttonNo).value.split(',')[0];
	var currMonth=getChronMonth(currMonth*1);
	if(eval('dropMonth'+buttonNo).value.split(',')[0]*1==anyMonthVal)currMonth=getChronMonth(initMonth);//if on "any"
}

function syncDropdowns(){
	var d1=dropDay1.value*1;
	var d2=dropDay2.value*1;
	var m1=dropMonth1.value.split(',')[0]*1;
	var m2=dropMonth2.value.split(',')[0]*1;
	if(m1==0||m2==0)return;
	var cm1=getChronMonth(m1),cm2=getChronMonth(m2);

	if(cm1>cm2||(cm1==cm2&&d1>=d2)){
	var tg,setDay,setMonth;
		if(currButtonNo==1){
			setDay=d1+1;setMonth=m1;
			if(!hasOptionVal(dropDay1,setDay)){setMonth+=1;if(setMonth>12)setMonth=1;setDay=1;}
			if(m1==endMonth&&d1==endDay){setMonth=m1;setDay=d1;}
		setDropdowns(setDay,setMonth,2);
		}
	if(currButtonNo==2){
			setDay=d2;setMonth=m2;
		setDropdowns(setDay,setMonth,1);
		}
	}
}

function setDropdowns(dv,mv,bn){
	var drDay=eval("dropDay"+bn);
	var drMonth=eval("dropMonth"+bn);
		selOptionVal(drMonth,mv);
		setDays(bn);
		selOptionVal(drDay,dv);
}

function selOptionVal(ob,val){
	var ops=new Object();
	for(var i=0;i<ob.length;i++)ops[ob[i].value]=ob[i];
	if(ops[val])ops[val].selected=true;
}

function hasOptionVal(ob,val){
	var ops=new Object();
	for(var i=0;i<ob.length;i++)ops[ob[i].value]=ob[i];
	if(ops[val])return true;
	else return false;
}

function getChronMonth(month){
	var cM=month-initMonth;
	return (cM<0)?cM+12:cM;
}

function getNumDays(M){
	if(M==2){
		var febYear=(initMonth<=2)?initYear:initYear*1+1;
		var febDate=new Date(Date.UTC(febYear,1,29));//yyyy/mm from 0/d from 1
		return (febDate.getMonth()==1)?29:28;
	}
	else return (M==9||M==4||M==6||M==11)?30:31;
}

//DROPDOWNS--
function setDays(buttonNo){
	if(N4)return;
	var D=eval("dropDay"+buttonNo).value.split(',')[0]*1;
	var M=eval("dropMonth"+buttonNo).value.split(',')[0]*1;
	var daysDD=eval("dropDay"+buttonNo);

	daysDD.length=0;
	daysDD.options[0]=new Option(anyText,0);
	for(i=1;i<=getNumDays(M);i++)daysDD.options[i]=new Option(i,i);
	if(hasOptionVal(daysDD,D))selOptionVal(daysDD,D);//keep day selected
	else daysDD[0].selected=true;//or set to first
}

function setDates(buttonNo){//onchange from month dropdown
	if(N4)return;
	setDays(buttonNo);
	currButtonNo=buttonNo;
	if(dropDay2)syncDropdowns();
}