function bissextile(annee,who)
{
	if(who == "web")
		annee = parseInt(annee,10)+2008;

   return (annee%4 ==0) && ( (annee%100 !=0) || (annee%400 ==0) );
}

function manage_days(who)
{
	var biss_start;
	var biss_end;

	if(who == "web")
	{
		biss_start = bissextile(document.getElementById('syear').value,who);
		biss_end = bissextile(document.getElementById('eyear').value,who);
	}
	else
	{
		var mydate=new Date();
		var year=mydate.getYear();
		if(year < 1900) year += 1900;
		biss_start = bissextile(year,who);
		biss_end = bissextile(year,who);
	}

	var smonth = document.getElementById('smonth').value;
	var emonth = document.getElementById('emonth').value;
	var i;
	var last = 28;
	if(biss_start == true) last = 29;
	
	if(smonth == "02")
	{
		for(i = 31 ; i > last ; i--)
		{
			if(document.getElementById('sday').options[i] !=null) document.getElementById('sday').options[i] = null;
		}
	}
	else
	if( (smonth == "04") || (smonth == "06") || (smonth == "09") || (smonth == "11") )
	{
		if(document.getElementById('sday').options[31] !=null)
			document.getElementById('sday').options[31] = null;
		else
		{
			for(i = last ; i < 31 ; i++)
			{
				if(document.getElementById('sday').options[i] ==null) document.getElementById('sday').options[i] =  new Option(i, i);
			}
		}
	}
	else
	{
		for(i = last ; i < 32 ; i++)
		{
			if(document.getElementById('sday').options[i] ==null) document.getElementById('sday').options[i] =  new Option(i, i);
		}
	}

	last = 28;
	if(biss_end == true) last = 29;

	if(emonth == "02")
	{
		for(i = 31 ; i > last ; i--)
		{
			if(document.getElementById('eday').options[i] !=null) document.getElementById('eday').options[i] = null;
		}
	}
	else
	if( (emonth == "04") || (emonth == "06") || (emonth == "09") || (emonth == "11") )
	{
		if(document.getElementById('eday').options[31] !=null)
			document.getElementById('eday').options[31] = null;
		else
		{
			for(i = last ; i < 31 ; i++)
			{
				if(document.getElementById('eday').options[i] ==null) document.getElementById('eday').options[i] =  new Option(i, i);
			}
		}
	}
	else
	{
		for(i = last ; i < 32 ; i++)
		{
			if(document.getElementById('eday').options[i] ==null) document.getElementById('eday').options[i] =  new Option(i, i);
		}
	}
}

function verify_allowed(date1,date2,heure1,heure2)
{
	var mois = new Array( "","Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" );
	
	var debut = date1.split("-");
	var fin = date2.split("-");

	var ind = debut[1]*1;
	var date_start = mois[ind]+' '+debut[2]+', '+debut[0]+' '+heure1+':00';

	ind = fin[1]*1;
	var date_end = mois[ind]+' '+fin[2]+', '+fin[0]+' '+heure2+':00';

	var parse_start = Date.parse(date_start);
	var parse_end = Date.parse(date_end);

	var nbdays = Math.round((parse_end-parse_start)/1000/60/60/24);
	var nbdaysmore = (parse_end-parse_start)/1000/60/60/24;

	var diff = nbdaysmore - nbdays;

	if( (diff > 0) && (heure1 != heure2) ) nbdays += 1;


	document.getElementById('nbdays').value = nbdays;	

	if(nbdays < document.getElementById('allowed_hidden').value)
		return false;
	else 
		return true;
}

function today_date(who)
{
	var datedujour;

	var mydate=new Date();
	var year=mydate.getYear();
	if(year < 1900) year += 1900;
	var month=mydate.getMonth();
	var day=mydate.getDate();
	month += 1;
	var yearind;

	yearind = parseInt(year,10) - 2008;

	datedujour = year+"-";
	if(month < 10) datedujour += "0"+month+"-"; else datedujour += month+"-";
	if(day < 10) datedujour += "0"+day; else datedujour += day;
	
	document.getElementById('sday').selectedIndex = day;
	document.getElementById('smonth').selectedIndex = month;
	if(who == "web") document.getElementById('syear').selectedIndex = yearind;
	document.getElementById('eday').selectedIndex = day;
	document.getElementById('emonth').selectedIndex = month;
	if(who == "web") document.getElementById('eyear').selectedIndex = yearind;
	
	if(who == "web") document.getElementById('startdate').value = year+"-";
	if(month < 10)
		document.getElementById('startdate').value+= "0"+month+"-";
	else
		document.getElementById('startdate').value+= month+"-";
	if(day < 10)
		document.getElementById('startdate').value+= "0"+day;
	else
		document.getElementById('startdate').value+= day;

	document.getElementById('startdatetpn').value = document.getElementById('startdate').value;

	if(who == "web") document.getElementById('enddate').value = year+"-";
	if(month < 10)
		document.getElementById('enddate').value+= "0"+month+"-";
	else
		document.getElementById('enddate').value+= month+"-";
	if(day < 10)
		document.getElementById('enddate').value+= "0"+day;
	else
		document.getElementById('enddate').value+= day;

	document.getElementById('enddatetpn').value = document.getElementById('enddate').value;

	manage_days(who);

	if(who == "admin") create_label();
	if(who == "web") test_date("web");
}

function change_hour2()
{
	if(document.getElementById('etime').selectedIndex == 0)
		document.getElementById('etime').selectedIndex = document.getElementById('stime').selectedIndex;
}

function update_dropdown(who)
{
	debut = document.getElementById('startdate').value.split("-");

	if(who == "web")
	{
		document.getElementById('syear').selectedIndex = parseInt(debut[0],10)-2008;
		document.getElementById('smonth').selectedIndex = debut[1];
		document.getElementById('sday').selectedIndex = debut[2];
	}
	else
	{
		document.getElementById('smonth').selectedIndex = debut[0];
		manage_days(who);
		document.getElementById('sday').selectedIndex = debut[1];
	}
	
	debut = document.getElementById('enddate').value.split("-");

	if(who == "web")
	{
		document.getElementById('eyear').selectedIndex = parseInt(debut[0],10)-2008;
		document.getElementById('emonth').selectedIndex = debut[1];
		document.getElementById('eday').selectedIndex = debut[2];
	}
	else
	{
		document.getElementById('emonth').selectedIndex = debut[0];
		manage_days(who);
		document.getElementById('eday').selectedIndex = debut[1];
	}
	
}

function create_date(who)
{

	manage_days(who);
	
	if( (document.getElementById('sday').value == 0) || (document.getElementById('smonth').value == 0) || (document.getElementById('syear').value == 0))
	{
		document.getElementById('startdate').value = "";
		document.getElementById('startdatetpn').value = "";
	}
	else
	{
		var realyear;
		if(who == "admin") realyear = parseInt(document.getElementById('syear').value,10)+ 2007;
		else realyear = parseInt(document.getElementById('syear').value,10)+ 2008;
		document.getElementById('startdate').value = realyear+"-"+document.getElementById('smonth').value+"-"+document.getElementById('sday').value;
		document.getElementById('startdatetpn').value = document.getElementById('startdate').value;
	}
	if( (document.getElementById('eday').value == 0) || (document.getElementById('emonth').value == 0) || (document.getElementById('eyear').value == 0))
	{
		document.getElementById('enddate').value = "";
		document.getElementById('enddatetpn').value = "";
	}
	else
	{
		var realyear;
		if(who == "admin") realyear = parseInt(document.getElementById('eyear').value,10)+ 2007;
		else realyear = parseInt(document.getElementById('eyear').value,10)+ 2008;
		document.getElementById('enddate').value = realyear+"-"+document.getElementById('emonth').value+"-"+document.getElementById('eday').value;
		document.getElementById('enddatetpn').value = document.getElementById('enddate').value;
	}

	if(who == "admin") create_label();
	if(who == "web") test_date("web");
}

function create_date1(who)
{
	if( (document.getElementById('sday').value == 0) || (document.getElementById('smonth').value == 0) || (document.getElementById('syear').value == 0))
	{
		document.getElementById('startdate').value = "";
		document.getElementById('startdatetpn').value = "";
		document.getElementById('enddate').value = "";
		document.getElementById('enddatetpn').value = "";
	}
	else
	{
		var realyear;
		if(who == "admin") realyear = parseInt(document.getElementById('syear').value,10)+ 2007;
		else realyear = parseInt(document.getElementById('syear').value,10)+ 2008;
		document.getElementById('startdate').value = realyear+"-"+document.getElementById('smonth').value+"-"+document.getElementById('sday').value;
		document.getElementById('startdatetpn').value = document.getElementById('startdate').value;
		document.getElementById('enddate').value = realyear+"-"+document.getElementById('smonth').value+"-"+document.getElementById('sday').value;
		document.getElementById('enddatetpn').value = document.getElementById('startdate').value;

		var fin = document.getElementById('startdate').value.split("-");

		var ladate = fin[0]+"-"+fin[1]+"-"+fin[2];
		start_date(ladate);

		fin = document.getElementById('startdate').value.split("-");
		ladate = fin[0]+"-"+fin[1]+"-"+fin[2];
		
		if(document.getElementById('syear').value > document.getElementById('eyear').value) erreur = 1;
		if( (document.getElementById('syear').value <= document.getElementById('eyear').value) && (document.getElementById('smonth').value > document.getElementById('emonth').value) ) erreur = 1;
		
		if(document.getElementById('syear').value > document.getElementById('eyear').value)
			document.getElementById('eyear').selectedIndex = parseInt(fin[0],10)-2008;
		if(document.getElementById('smonth').value > document.getElementById('emonth').value)
			document.getElementById('emonth').selectedIndex = fin[1];
		if( (document.getElementById('sday').value > document.getElementById('eday').value) && (document.getElementById('smonth').value == document.getElementById('emonth').value)  && (document.getElementById('syear').value == document.getElementById('eyear').value) )
			document.getElementById('eday').selectedIndex = fin[2];

		var enddate = (2008+parseInt(document.getElementById('eyear').value))+"-"+document.getElementById('emonth').value+"-"+document.getElementById('eday').value;

		document.getElementById('enddate').value = enddate;
		document.getElementById('enddatetpn').value = enddate;
	}
	manage_days(who);
}
function start_date(ladate)
{
	var erreur = false;
	var debut;
	var datedujour;
	var mydate=new Date();
	var year=mydate.getYear();
	if(year < 1900) year += 1900;
	var month=mydate.getMonth();
	var day=mydate.getDate();
	month += 1;
	datedujour = year+"-";
	if(month < 10) datedujour += "0"+month+"-"; else datedujour += month+"-";
	if(day < 10) datedujour += "0"+day; else datedujour += day;

	debut = ladate.split("-");

	if(debut[0] < year) erreur = true;
	else
	if(( debut[0] == year)&&( debut[1] < month) ) erreur = true;
	else
	if(( debut[0] == year)&&( debut[1] == month)&&( debut[2] < day) )
	{
		debut[1] = parseInt(debut[1],10)+1;
		if(debut[1] > 12)
		{
			debut[1] = "01";
			debut[0] = parseInt(debut[0],10)+1;
		}
		if(debut[1] < 10) debut[1] = "0"+parseInt(debut[1],10);
		if(debut[2] < 10) debut[2] = "0"+parseInt(debut[2],10);

		ladate = debut[0]+"-"+debut[1]+"-"+debut[2];

		document.getElementById('sday').selectedIndex = debut[2];
		document.getElementById('smonth').selectedIndex = debut[1];
		document.getElementById('syear').selectedIndex = parseInt(debut[0],10)-2008;
		document.getElementById('startdate').value = ladate;
		document.getElementById('startdatetpn').value = ladate;
		manage_days("web");
		erreur = false;
	}
	
	if(erreur == true)
	{
		document.getElementById('sday').selectedIndex = day;
		document.getElementById('smonth').selectedIndex = month;
		document.getElementById('syear').selectedIndex = parseInt(year,10)-2008;
		document.getElementById('startdate').value = datedujour;
		document.getElementById('startdatetpn').value = datedujour;

	}
}

function test_date(who)
{
	var nberror = 0;
	var starting = document.getElementById('startdate').value;
	var ending = document.getElementById('enddate').value;

	if( (document.getElementById('startdate').value == "") && (document.getElementById('enddate').value == "") )
	{
		return false;
	}
	else
	{
		if(starting != "")
		{

			if(who == "web") starting = verify_start_date(starting);

			if(ending == "")
			{
				document.getElementById('enddate').value = document.getElementById('startdate').value;
				document.getElementById('enddatetpn').value = document.getElementById('enddate').value;
				document.getElementById('startdatetpn').value = document.getElementById('startdate').value;
				document.getElementById('eday').selectedIndex = document.getElementById('sday').value;
				document.getElementById('emonth').selectedIndex = document.getElementById('smonth').value;
				if(who == "web") document.getElementById('eyear').selectedIndex = document.getElementById('syear').value;
			}
		}
		
		if(ending != "")
		{
			if(who == "web")
			{
				var comp = ComparerDates(starting,ending);
		
				if(comp == 1)
				{
					document.getElementById('enddate').value = document.getElementById('startdate').value;
					document.getElementById('enddatetpn').value = document.getElementById('enddate').value;
					document.getElementById('startdatetpn').value = document.getElementById('startdate').value;

					var dat = document.getElementById('enddate').value.split("-");
					
					document.getElementById('eday').selectedIndex = dat[2];
					document.getElementById('emonth').selectedIndex = dat[1];
					document.getElementById('eyear').selectedIndex = parseInt(dat[0],10)-2008;
					manage_days(who);
				}
			}
		}
	}

	if(who == "webvalide")
	{
		if( (document.getElementById('stime').value == 0) || (document.getElementById('etime').value == 0) )
		{
			alert("Please select the delivery and return time.");
			return false;
		}

		var allrent = test_max_rent(document.getElementById('startdate').value,document.getElementById('enddate').value,document.getElementById('stime').value,document.getElementById('etime').value);
		
		if(allrent == false)
		{
			alert("Maximum rent allowed is 30 days, please contact us by clicking on CONTACT.");
			document.getElementById('enddate').value = document.getElementById('startdate').value;
			document.getElementById('enddatetpn').value = document.getElementById('enddate').value;
			document.getElementById('startdatetpn').value = document.getElementById('startdate').value;
			document.getElementById('eday').selectedIndex = document.getElementById('sday').value;
			document.getElementById('emonth').selectedIndex = document.getElementById('smonth').value;
			document.getElementById('eyear').selectedIndex = document.getElementById('syear').value;

			return false;
		}

		var allowed = verify_allowed(document.getElementById('startdate').value,document.getElementById('enddate').value,document.getElementById('stime').value,document.getElementById('etime').value);
		
		if(allowed == false)
		{
			alert("Minimum allowed rent is "+document.getElementById('allowed_hidden').value+" days.");

			return false;
		}
	}
	
	return true;
}

function verify_start_date(ladate)
{
	var erreur = false;
	var debut;
	var datedujour;
	var mydate=new Date();
	var year=mydate.getYear();
	if(year < 1900) year += 1900;
	var month=mydate.getMonth();
	var day=mydate.getDate();
	month += 1;
	datedujour = year+"-";
	if(month < 10) datedujour += "0"+month+"-"; else datedujour += month+"-";
	if(day < 10) datedujour += "0"+day; else datedujour += day;

	debut = ladate.split("-");
	
	if(debut[0] < year) erreur = true;
	else
	if(( debut[0] == year)&&( debut[1] < month) ) erreur = true;
	else
	if(( debut[0] == year)&&( debut[1] == month)&&( debut[2] < day) )
	{

		debut[1] = parseInt(debut[1],10)+1;
		if(debut[1] > 12)
		{
			debut[1] = "01";
			debut[0] = parseInt(debut[0],10)+1;
		}
		if(debut[1] < 10) debut[1] = "0"+parseInt(debut[1],10);
		if(debut[2] < 10) debut[2] = "0"+parseInt(debut[2],10);

		ladate = debut[0]+"-"+debut[1]+"-"+debut[2];

		document.getElementById('sday').selectedIndex = debut[2];
		document.getElementById('smonth').selectedIndex = debut[1];
		document.getElementById('syear').selectedIndex = parseInt(debut[0],10)-2008;
		document.getElementById('startdate').value = ladate;
		document.getElementById('startdatetpn').value = ladate;
		manage_days("web");
		erreur = false;
	}
	
	if(erreur == false)
		return ladate;
	else
	{
		document.getElementById('sday').selectedIndex = day;
		document.getElementById('smonth').selectedIndex = month;
		document.getElementById('syear').selectedIndex = parseInt(year,10)-2008;
		document.getElementById('startdate').value = datedujour;
		document.getElementById('startdatetpn').value = datedujour;
		return datedujour;
	}
}

function ComparerDates(LeParam1,LeParam2)
{
	var debut;
	var fin;
	var ladate;
	
	debut = LeParam1.split("-");
	fin = LeParam2.split("-");

	if(fin[0] < debut[0]) return 1;
	if( (fin[0] == debut[0]) && (fin[1] < debut[1])) return 1;
	if( (fin[0] == debut[0]) && (fin[1] == debut[1]) && (fin[2] < debut[2]))
	{
		fin[1] = parseInt(fin[1],10)+1;
		if(fin[1] > 12)
		{
			fin[1] = "01";
			fin[0] = parseInt(fin[0],10)+1;
		}
		if(fin[1] < 10) fin[1] = "0"+parseInt(fin[1],10);
		if(fin[2] < 10) fin[2] = "0"+parseInt(fin[2],10);

		ladate = fin[0]+"-"+fin[1]+"-"+fin[2];

		document.getElementById('eday').selectedIndex = fin[2];
		document.getElementById('emonth').selectedIndex = fin[1];
		document.getElementById('eyear').selectedIndex = parseInt(fin[0],10)-2008;
		document.getElementById('enddate').value = ladate;
		document.getElementById('enddatetpn').value = ladate;
		manage_days("web");
	}

	return 0;
}

function test_max_rent(date1,date2,heure1,heure2)
{
	var year;
	var month;
	var day;
	
	var debut = date1.split("-");
	var fin = date2.split("-");

	var heuredeb = heure1.split(":");
	var heurefin = heure2.split(":");

	var d = new Date(parseInt(debut[0],10),parseInt(debut[1],10)-1,parseInt(debut[2],10),parseInt(heuredeb[0],10),parseInt(heuredeb[1],10));
	var f = new Date(parseInt(fin[0],10),parseInt(fin[1],10)-1,parseInt(fin[2],10),parseInt(heurefin[0],10),parseInt(heurefin[1],10));

	var nbdays = Math.round((f-d)/86400000)+1;

	if(nbdays < 31)
		return true;
	else 
		return false;
}
