/*------------------------------------------------------------------------------
  Welcome to the Ministry of Labour Public Holiday Pay Interactive Calculator
  Author: Landon Harrison
  Position: Web Developer
  Originally Programmed: January 2009
  Last Edit by Landon: March 11, 2009
  Purpose: The original purpose of this application is to calculate the public
        holiday pay of anyone using (within ontario). If this has changed please
        add to this section with your name and last edited date, to keep it 
        current.
--------------------------------------------------------------------------------
*/

function ftn_calculate_1()	{
  var obj_reg1 = document.getElementById('reg1');
  var obj_reg2 = document.getElementById('reg2');
  var obj_reg3 = document.getElementById('reg3');
  var obj_reg4 = document.getElementById('reg4');
  var obj_tot = document.getElementById('totwage');
  var bool_test = ftn_DetHol();
	var obj_temp1="";var obj_temp2="";var obj_temp3="";var obj_temp4="";var obj_temp_tot;
	
	if (bool_test ==0){
		alert("ERROR: You forgot to pick a public holiday. \nERREUR : Vous avez oublié de choisir un jour férié.");
	} else	{
		obj_reg1.value=charRemover(obj_reg1.value);
		obj_reg2.value=charRemover(obj_reg2.value);
		obj_reg3.value=charRemover(obj_reg3.value);
		obj_reg4.value=charRemover(obj_reg4.value);
		if	(obj_reg1.value >= 0 && obj_reg2.value >= 0 && obj_reg3.value >= 0 && obj_reg4.value >=0)	{
			
			if	(obj_reg1.value == "")	{
				obj_reg1.value = 0;
			}
			if	(obj_reg2.value == "")	{
				obj_reg2.value = 0;
			}
			if	(obj_reg3.value == "")	{
				obj_reg3.value = 0;
			}
			if	(obj_reg4.value == "")	{
				obj_reg4.value = 0;
			}
			
			var flt_total_wage = parseFloat(obj_reg1.value) + parseFloat(obj_reg2.value) + parseFloat(obj_reg3.value) + parseFloat(obj_reg4.value);
			var_temp=new Number(flt_total_wage);
			obj_temp1=formatChanger(obj_reg1.value);
			document.getElementById('regvac1').innerHTML = obj_temp1;
			obj_temp2=formatChanger(obj_reg2.value);
			document.getElementById('regvac2').innerHTML = obj_temp2;
			obj_temp3=formatChanger(obj_reg3.value);
			document.getElementById('regvac3').innerHTML = obj_temp3;
			obj_temp4=formatChanger(obj_reg4.value);
			document.getElementById('regvac4').innerHTML = obj_temp4;
			obj_temp_tot=formatChanger(var_temp);
			obj_tot.innerHTML = obj_temp_tot;
		} else	{
			alert("ERROR: You entered text or negative numbers. Only positive numbers are allowed.\nERREUR : Vous avez entré des lettres ou des nombres négatifs. Seuls les chiffres positifs sont permis.");
		}
	}
}

function ftn_calculate_2()	{
	var obj_vac1 = document.getElementById('vac1');
	var obj_vac2 = document.getElementById('vac2');
	var obj_vac3 = document.getElementById('vac3');
	var obj_vac4 = document.getElementById('vac4');
	var flt_totvac = document.getElementById('totvac');
	var obj_temp_vac1; var obj_temp_vac2; var obj_temp_vac3; var obj_temp_vac4; var flt_temp_totvac; 
	var bool_tested = ftn_DetHol();
	if (bool_tested ==0){
		alert("ERROR: You forgot to pick a public holiday. \nERREUR : Vous avez oublié de choisir un jour férié.");
	} else	{
		obj_vac1.value=charRemover(obj_vac1.value);
		obj_vac2.value=charRemover(obj_vac2.value);
		obj_vac3.value=charRemover(obj_vac3.value);
		obj_vac4.value=charRemover(obj_vac4.value);
		
	
		if	(obj_vac1.value >= 0 && obj_vac2.value >= 0 && obj_vac3.value >= 0 && obj_vac4.value >=0)	{
			
			if	(obj_vac1.value == "")	{
				obj_vac1.value = 0;
			}
			if	(obj_vac2.value == "")	{
				obj_vac2.value = 0;
			}
			if	(obj_vac3.value == "")	{
				obj_vac3.value = 0;
			}
			if	(obj_vac4.value == "")	{
				obj_vac4.value = 0;
			}
			
			var flt_totalVac = parseFloat(obj_vac1.value) + parseFloat(obj_vac2.value) + parseFloat(obj_vac3.value) + parseFloat(obj_vac4.value);
			var_temp=new Number(flt_totalVac);
			flt_totvac.innerHTML = var_temp.toFixed(2);
			flt_temp_totvac=formatChanger(flt_totvac.innerHTML);
			flt_totvac.innerHTML=flt_temp_totvac;
			location.href="#step4"
		} else	{
			alert("ERROR: You have entered text or negative numbers. Only positive numbers are allowed. \nERREUR : Vous avez entré des lettres ou des nombres négatifs. Seuls les chiffres positifs sont permis.");
		}
	}
}

function ftn_calculate_3()	{
  var flt_regular = document.getElementById('totwage');
  var flt_vacation = document.getElementById('totvac');
  var flt_total = document.getElementById('total');
  var bool_tester = ftn_DetHol();
 
  var flt_tot;
  if (bool_tester ==0){
		alert("ERROR: You forgot to pick a public holiday. \nERREUR : Vous avez oublié de choisir un jour férié.");
	} else	{
		if (flt_regular.innerHTML==" " || flt_vacation.innerHTML==" " || flt_regular.innerHTML=="" || flt_vacation.innerHTML=="")	{
			alert("ERROR: You forgot to perform a calculation in a previous step. Make sure you click the calculate button in each step. \nERREUR : Vous avez oublié d’effectuer un calcul dans une étape précédente. Assurez-vous de cliquer le bouton Calculer à chaque étape. ");
		} else {	
		flt_regular.innerHTML=charRemover(flt_regular.innerHTML);
		flt_vacation.innerHTML=charRemover(flt_vacation.innerHTML);
		flt_total.innerHTML=charRemover(flt_total.innerHTML);
		
		var flt_VacPay = (parseFloat(flt_regular.innerHTML) + parseFloat(flt_vacation.innerHTML))/20;
		if	(flt_VacPay <0)	{
			flt_VacPay=0;
		}
		var_temp=new Number(flt_VacPay);
		flt_tot = var_temp.toFixed(2);
		flt_regular.innerHTML=formatChanger(flt_regular.innerHTML);
		flt_vacation.innerHTML=formatChanger(flt_vacation.innerHTML);
		flt_total.innerHTML=formatChanger(flt_tot);
	  
	  }
	}
}

function copy(regstr, obj1, obj2, obj3)	{
	obj1.value = regstr.value;
	obj2.value = regstr.value;
	obj3.value = regstr.value;	
}

function ftn_holiday_populate()	{
  
  
	var int_curLang=document.getElementById('languagecalc').value;
	var int_curYear = 2012;
//	var int_curYear = new Date().getFullYear();
	var str_weekday=new Array(2);
	for	(i=0;i<str_weekday.length; i++)	{
		str_weekday[i]=new Array(7);
	}
	str_weekday[0][0]="Sunday";		str_weekday[1][0]="dimanche";
	str_weekday[0][1]="Monday";		str_weekday[1][1]="lundi";
	str_weekday[0][2]="Tuesday";		str_weekday[1][2]="mardi";
	str_weekday[0][3]="Wednesday";	str_weekday[1][3]="mercredi";	
	str_weekday[0][4]="Thursday";	str_weekday[1][4]="jeudi";
	str_weekday[0][5]="Friday";		str_weekday[1][5]="vendredi";
	str_weekday[0][6]="Saturday";	str_weekday[1][6]="samedi";
	
	var str_monthName = new Array(2);
	for	(i=0;i<str_monthName.length; i++)	{
		str_monthName[i]=new Array(12);
	}
  
	str_monthName[0][0] = "January";	str_monthName[1][0] = "janvier";
	str_monthName[0][1] = "February";	str_monthName[1][1] = "f&eacute;vrier";
	str_monthName[0][2] = "March";		str_monthName[1][2] = "mars";
	str_monthName[0][3] = "April";		str_monthName[1][3] = "avril";
	str_monthName[0][4] = "May";		str_monthName[1][4] = "mai";
	str_monthName[0][5] = "June";		str_monthName[1][5] = "juin";
	str_monthName[0][6] = "July";		str_monthName[1][6] = "juillet";
	str_monthName[0][7] = "August";		str_monthName[1][7] = "ao&ucirc;t";
	str_monthName[0][8] = "September";	str_monthName[1][8] = "septembre";
	str_monthName[0][9] = "October";	str_monthName[1][9] = "octobre";
	str_monthName[0][10] = "November";	str_monthName[1][10] = "novembre";
	str_monthName[0][11] = "December";	str_monthName[1][11] = "d&eacute;cembre";
	var placeHolder;
	var str_holiday=new Array(2);
	for	(i=0;i<str_holiday.length; i++)	{
		str_holiday[i]=new Array(9);
	}
	
	//New Years
	str_holiday[0][0]=new Date();
	str_holiday[0][0].setYear(int_curYear);
	str_holiday[0][0].setMonth(0);
	str_holiday[0][0].setDate(1);
	
	//Canada Day
	str_holiday[0][4]=new Date();
	str_holiday[0][4].setYear(int_curYear);
	str_holiday[0][4].setMonth(6);
	str_holiday[0][4].setDate(1);
	if	(str_holiday[0][4].getDay() == 0)	{
		str_holiday[0][4].setDate((str_holiday[0][4].getDate()+1));
	}
	
	//Christmas Day
	str_holiday[0][7]=new Date();
	str_holiday[0][7].setYear(int_curYear);
	str_holiday[0][7].setMonth(11);
	str_holiday[0][7].setDate(25);
	
	//Boxing Day
	str_holiday[0][8]=new Date();
	str_holiday[0][8].setYear(int_curYear);
	str_holiday[0][8].setMonth(11);
	str_holiday[0][8].setDate(26);
	
	//New Years
	str_holiday[1][0]=new Date();
	str_holiday[1][0].setYear((int_curYear-1));
	str_holiday[1][0].setMonth(0);
	str_holiday[1][0].setDate(1);
	
	//Canada Day
	str_holiday[1][4]=new Date();
	str_holiday[1][4].setYear((int_curYear-1));
	str_holiday[1][4].setMonth(6);
	str_holiday[1][4].setDate(1);
	if	(str_holiday[1][4].getDay() == 0)	{
		str_holiday[1][4].setDate((str_holiday[1][4].getDate()+1));
	}
	
	//Christmas Day
	str_holiday[1][7]=new Date();
	str_holiday[1][7].setYear((int_curYear-1));
	str_holiday[1][7].setMonth(11);
	str_holiday[1][7].setDate(25);
	
	//Boxing Day
	str_holiday[1][8]=new Date();
	str_holiday[1][8].setYear((int_curYear-1));
	str_holiday[1][8].setMonth(11);
	str_holiday[1][8].setDate(26);

//family day
	str_holiday[0][1]=new Date();
	str_holiday[0][1].setFullYear(int_curYear, 1, 20);
	
	str_holiday[1][1]=new Date();
	str_holiday[1][1].setFullYear((int_curYear-1), 1, 21);
//good friday
	str_holiday[0][2]=new Date();
	str_holiday[0][2].setFullYear(int_curYear, 3, 6);
	
	str_holiday[1][2]=new Date();
	str_holiday[1][2].setFullYear((int_curYear-1), 3, 22);
//victoria day
	str_holiday[0][3]=	new Date();
	str_holiday[0][3].setFullYear(int_curYear, 4, 21);

	str_holiday[1][3]=new Date();
	str_holiday[1][3].setFullYear((int_curYear-1), 4, 23);
//labour day
	str_holiday[0][5]=new Date();
	str_holiday[0][5].setFullYear(int_curYear, 8, 3);
	
	str_holiday[1][5]=new Date();	
	str_holiday[1][5].setFullYear((int_curYear-1), 8, 5);
//thanksgiving day
	str_holiday[0][6]=new Date();	
	str_holiday[0][6].setFullYear(int_curYear, 9, 8);
	
	str_holiday[1][6]=new Date();	
	str_holiday[1][6].setFullYear((int_curYear-1), 9, 10);
		
/*	for	(j=0;j<2;j++)	{
		str_holiday[j][1]=ftn_month(1, j);
		str_holiday[j][2]=easter(j);
		str_holiday[j][3]=ftn_month(4, j);
		str_holiday[j][5]=ftn_month(8, j);
		str_holiday[j][6]=ftn_month(9, j);
	}*/
	if	(int_curLang==0)	{			
		for	(j=0;j<2;j++)	{
			for	(i=0;i<9;i++)	{
				str_parseWord="holiday"+parseInt(j)+"-"+parseInt(i);
				document.getElementById(str_parseWord).innerHTML="(" + str_weekday[int_curLang][str_holiday[j][i].getDay()] + " " + str_monthName[int_curLang][str_holiday[j][i].getMonth()] + " " + str_holiday[j][i].getDate()+ ", "+ str_holiday[j][i].getFullYear() + ")";
			}
			
		}
	}	else if	(int_curLang==1)	{
		for	(j=0;j<2;j++)	{
			for	(i=0;i<9;i++)	{
				str_parseWord="holiday"+parseInt(j)+"-"+parseInt(i);
				document.getElementById(str_parseWord).innerHTML="(" + str_weekday[int_curLang][str_holiday[j][i].getDay()] + " " + str_holiday[j][i].getDate() + " " + str_monthName[int_curLang][str_holiday[j][i].getMonth()] + " " + str_holiday[j][i].getFullYear() + ")";
			}
			
		}
	}
}


function ftn_month(obj_newData,int_year_Mod)	{
	var int_year = 2012-int_year_Mod;
//	var int_year = new Date().getFullYear()-int_year_Mod;
	var int_count = 0;
	var var_temp;
	var date_NewDate=new Date();
	var int_newDay;
	var i;
	
	switch (obj_newData)	{
	case 1:
		for	(i=1; i<28; i++)	{
			date_NewDate.setMonth(obj_newData);
			date_NewDate.setDate(i);
			date_NewDate.setYear(int_year);
			int_newDay = date_NewDate.getDay();
			if	(int_newDay == 1)	{
				++int_count;
				if	(int_count == 3)	{
					return date_NewDate;
				}
			}
		}
		break;
	case 4:
		for	(i=24; i>=17; i--)	{
			date_NewDate.setMonth(obj_newData);
			date_NewDate.setDate(i);
			date_NewDate.setYear(int_year);
			int_newDay=date_NewDate.getDay();
			if	(int_newDay == 1)	{
				++int_count;
				if	(int_count == 1)	{
					return date_NewDate;
				}
			}
		}
		break;
	case 8:
		for	(i=1; i<28; i++)	{
			date_NewDate.setMonth(obj_newData);
			date_NewDate.setDate(i);
			date_NewDate.setYear(int_year);
			int_newDay=date_NewDate.getDay();
			if	(int_newDay == 1)	{
				++int_count;
				if	(int_count == 1)	{
					return date_NewDate;
				}
			}
		}
		break;
	case 9:
	for	(i=1; i<28; i++)	{
			date_NewDate.setMonth(obj_newData);
			date_NewDate.setDate(i);
			date_NewDate.setYear(int_year);
			int_newDay=date_NewDate.getDay();
			if	(int_newDay == 1)	{
				++int_count;
				if	(int_count == 2)	{
					return date_NewDate;
				}
			}
		}
		break;
	}
}

// The code for the "easter" function was adopted from a C implementation found on 
// http://users.sa.chariot.net.au/~gmarts/eastalg.htm
// which was adapted from a Visual Basic program found on www.auslink.net/~gmarts.

function easter(ymod)
{
	var nYear= 2012-ymod;
	//var nYear= new Date().getFullYear()-ymod;
	var nCent=nYear/100;
	var nRemain19=nYear%19; 
	
	// - n1 is the number of days since 21-Mar of the PFM
	var n1=(nCent-15)/2 + 202 - 11*nRemain19;
	
	if(nCent>20)	{
		if(nCent>26)	{
			--n1;
		}
		if(nCent>38)	{
			--n1;
		}
		if(nCent==21 || nCent==24 || nCent==25 || nCent==33 || nCent==36 || nCent==37)	{
			--n1;
		}
	}
	n1%=30;
	if(n1==29 || (n1==28 && nRemain19>10))	{
		--n1; 
	}
	 // - This can only be in March or April
	var dtPFM=new Date();
	dtPFM.setYear(nYear);
	if(n1>10)
	{
		dtPFM.setMonth(3);
		dtPFM.setDate(n1-10);
	}	else	{
		dtPFM.setMonth(2);
		dtPFM.setDate(n1+21);
	}
	var nWeekDay=dtPFM.getDay();
	var_temp=dtPFM.getDate()+(7-nWeekDay);
	var_temp-=2;
	dtPFM.setDate(var_temp);
	return dtPFM;
}

function ftn_changer()
{
	var date_dateHolder;
	switch	(document.getElementById('weekday').value)	
	{
	case "Sunday":
		document.getElementById('change').innerHTML="to: Saturday";
		break;
	case "dimanche":
		document.getElementById('change').innerHTML=" au samedi";
		break;
	case "Monday":
		document.getElementById('change').innerHTML="to: Sunday";
		break;
	case "lundi":
		document.getElementById('change').innerHTML="au dimanche";
		break;
	case "Tuesday":
		document.getElementById('change').innerHTML="to: Monday";
		break;
	case "mardi":
		document.getElementById('change').innerHTML="au lundi";
		break;
	case "Wednesday":
		document.getElementById('change').innerHTML="to: Tuesday";
		break;
	case "mercredi":
		document.getElementById('change').innerHTML="au mardi";
		break;
	case "Thursday":
		document.getElementById('change').innerHTML="to: Wednesday";
		break;
	case "jeudi":
		document.getElementById('change').innerHTML="au mercredi";
		break;
	case "Friday":
		document.getElementById('change').innerHTML="to: Thursday";
		break;
	case "vendredi":
		document.getElementById('change').innerHTML="au jeudi";
		break;
	case "Saturday":
		document.getElementById('change').innerHTML="to: Friday";
		break;
	case "samedi":
		document.getElementById('change').innerHTML="au vendredi";
		break;	
	}
	date_dateHolder=ftn_DetHol();
	
	if	(date_dateHolder!=0)	{
		if	(date_dateHolder.value=="holiday2")	{
			ftn_detect_start_point(date_dateHolder, 1);
		}	else if (date_dateHolder.value=="holiday")	{
			ftn_detect_start_point(date_dateHolder, 0);
		}
	}
}

function ftn_DetHol()	{
	if	(document.getElementById('newyears').checked == true)	{
		return document.getElementById('newyears');
	}	else if	(document.getElementById('family').checked == true)	{
		return document.getElementById('family');
	}	else if	(document.getElementById('goodfriday').checked == true)	{
		return document.getElementById('goodfriday');
	}	else if	(document.getElementById('victoria').checked == true)	{
		return document.getElementById('victoria');
	}	else if	(document.getElementById('canada').checked == true)	{
		return document.getElementById('canada');
	}	else if	(document.getElementById('labour').checked == true)	{
		return document.getElementById('labour');
	}	else if	(document.getElementById('thanksgiving').checked == true)	{
		return document.getElementById('thanksgiving');
	}	else if	(document.getElementById('christmas').checked == true)	{
		return document.getElementById('christmas');
	}	else if	(document.getElementById('boxing').checked == true)	{
		return document.getElementById('boxing');
	}	else if	(document.getElementById('newyears2').checked == true)	{
		return document.getElementById('newyears2');
	}	else if	(document.getElementById('family2').checked == true)	{
		return document.getElementById('family2');
	}	else if	(document.getElementById('goodfriday2').checked == true)	{
		return document.getElementById('goodfriday2');
	}	else if	(document.getElementById('victoria2').checked == true)	{
		return document.getElementById('victoria2');
	}	else if	(document.getElementById('canada2').checked == true)	{
		return document.getElementById('canada2');
	}	else if	(document.getElementById('labour2').checked == true)	{
		return document.getElementById('labour2');
	}	else if	(document.getElementById('thanksgiving2').checked == true)	{
		return document.getElementById('thanksgiving2');
	}	else if	(document.getElementById('christmas2').checked == true)	{
		return document.getElementById('christmas2');
	}	else if	(document.getElementById('boxing2').checked == true)	{
		return document.getElementById('boxing2');
	}	else	{
		return 0;
	}
}

function ftn_detect_start_point(obj_current_start, int_yearMod)	{
	int_current_lang=document.getElementById('languagecalc').value;
	var str_week_day=new Array(2);
	for	(i=0;i<str_week_day.length; i++)	{
		str_week_day[i]=new Array(7);
	}
	str_week_day[0][0]="Sunday";		str_week_day[1][0]="dimanche";
	str_week_day[0][1]="Monday";		str_week_day[1][1]="lundi";
	str_week_day[0][2]="Tuesday";		str_week_day[1][2]="mardi";
	str_week_day[0][3]="Wednesday";	str_week_day[1][3]="mercredi";	
	str_week_day[0][4]="Thursday";	str_week_day[1][4]="jeudi";
	str_week_day[0][5]="Friday";		str_week_day[1][5]="vendredi";
	str_week_day[0][6]="Saturday";	str_week_day[1][6]="samedi";
	
	var str_month_name = new Array(2);
	for	(i=0;i<str_month_name.length; i++)	{
		str_month_name[i]=new Array(12);
	}
	str_month_name[0][0] = "January";	str_month_name[1][0] = "janvier";
	str_month_name[0][1] = "February";	str_month_name[1][1] = "f&eacute;vrier";
	str_month_name[0][2] = "March";		str_month_name[1][2] = "mars";
	str_month_name[0][3] = "April";		str_month_name[1][3] = "avril";
	str_month_name[0][4] = "May";		str_month_name[1][4] = "mai";
	str_month_name[0][5] = "June";		str_month_name[1][5] = "juin";
	str_month_name[0][6] = "July";		str_month_name[1][6] = "juillet";
	str_month_name[0][7] = "August";		str_month_name[1][7] = "ao&ucirc;t";
	str_month_name[0][8] = "September";	str_month_name[1][8] = "septembre";
	str_month_name[0][9] = "October";	str_month_name[1][9] = "octobre";
	str_month_name[0][10] = "November";	str_month_name[1][10] = "novembre";
	str_month_name[0][11] = "December";	str_month_name[1][11] = "d&eacute;cembre";
	
	var int_current_year=2012-int_yearMod;
//	var int_current_year=new Date().getFullYear()-int_yearMod;
	var str_current_reference= document.getElementById('weekday').value;
	var int_validated_day;
	var date_start_date; var i; var j;var parseDate;
	var date_first_date; var date_second_date; var var_temp_str;
	cleanRadio(obj_current_start);
	var var_temp=new Date();
	switch	(obj_current_start.id)
	{
	case "newyears":
	case "newyears2":
		var_temp.setDate(1);
		var_temp.setMonth(0);
		var_temp.setYear(int_current_year);
		date_start_date=ftn_counting_backwards(var_temp, int_yearMod);
		break;
	case "family":
		var_temp.setDate(20);
		var_temp.setMonth(1);
		var_temp.setYear(int_current_year);
		date_start_date = ftn_counting_backwards(var_temp, int_yearMod);
		break;
	case "family2":
//		var_temp.setFullYeaSr((int_curYear-1), 1, 18);
	var_temp.setDate(21);
	var_temp.setMonth(1);
		var_temp.setYear((int_current_year));
//		var_temp = ftn_month(1, int_yearMod);
		date_start_date = ftn_counting_backwards(var_temp, int_yearMod);
		break;
	case "goodfriday":
		var_temp.setDate(6);
		var_temp.setMonth(3);
		var_temp.setYear(int_current_year);
		date_start_date = ftn_counting_backwards(var_temp, int_yearMod);
		break;
	case "goodfriday2":
		//possible
		var_temp.setDate(22);
		var_temp.setMonth(3);
		var_temp.setYear((int_current_year));
//		var_temp = easter(int_yearMod);
		date_start_date = ftn_counting_backwards(var_temp, int_yearMod);		
		break;
	case "victoria":
		var_temp.setDate(21);
		var_temp.setMonth(4);
		var_temp.setYear(int_current_year);
		date_start_date = ftn_counting_backwards(var_temp, int_yearMod);
		break;
	case "victoria2":
		var_temp.setDate(23);
		var_temp.setMonth(4);
		var_temp.setYear(int_current_year);
//		var_temp = ftn_month(4, int_yearMod);
		date_start_date = ftn_counting_backwards(var_temp, int_yearMod);
		break;
	case "canada":
	case "canada2":

		var_temp.setDate(1);
		var_temp.setMonth(6);
		var_temp.setYear(int_current_year);
		if	(var_temp.getDay()==0)	{
			var_temp.setDate(var_temp.getDate()+1);
		}
		date_start_date = ftn_counting_backwards(var_temp, int_yearMod);
		break;
	case "labour":
		var_temp.setDate(3);
		var_temp.setMonth(8);
		var_temp.setYear(int_current_year);
		date_start_date = ftn_counting_backwards(var_temp, int_yearMod);
		break;
	case "labour2":
		//possible
		var_temp.setDate(5);
		var_temp.setMonth(8);
		var_temp.setYear(int_current_year);
//		var_temp =ftn_month(8, int_yearMod);
		date_start_date = ftn_counting_backwards(var_temp, int_yearMod);
		break;
	case "thanksgiving":
		var_temp.setDate(8);
		var_temp.setMonth(9);
		var_temp.setYear(int_current_year);
		date_start_date = ftn_counting_backwards(var_temp, int_yearMod);
		break;
	case "thanksgiving2":
		var_temp.setDate(10);
		var_temp.setMonth(9);
		var_temp.setYear(int_current_year);
//		var_temp = ftn_month(9, int_yearMod);
		date_start_date = ftn_counting_backwards(var_temp, int_yearMod);
		break;
	case "christmas":
	case "christmas2":
		var_temp.setDate(25);
		var_temp.setMonth(11);
		var_temp.setYear(int_current_year);
		date_start_date = ftn_counting_backwards(var_temp, int_yearMod);
		break;
	case "boxing":
	case "boxing2":
		var_temp.setDate(26);
		var_temp.setMonth(11);
		var_temp.setYear(int_current_year);
		date_start_date = ftn_counting_backwards(var_temp, int_yearMod);
		break;
		default:
			alert("ERROR2");
			break;
	}
	
	switch(str_current_reference)	{
		case "Sunday":
		case "dimanche":
			int_validated_day = 6;
			break;
		case "Monday":
		case "lundi":
			int_validated_day = 0;
			break;
		case "Tuesday":
		case "mardi":
			int_validated_day = 1;
			break;
		case "Wednesday":
		case "mercredi":
			int_validated_day = 2;
			break;
		case "Thursday":
		case "jeudi":
			int_validated_day = 3;
			break;
		case "Friday":
		case "vendredi":
			int_validated_day = 4;
			break;
		case "Saturday":
		case "samedi":
			int_validated_day = 5;
			break;
		default:
			alert("ERROR");
			break;
	}
	//so far so good
	for	(i=0; i<14; ++i)	{
		if	(date_start_date.getDay() == int_validated_day)	{
			
			break;
		}
		if	((date_start_date.getDate()-1)==0)	{
			var_temp=ftn_counting_backwards(date_start_date, int_yearMod);
			date_start_date=var_temp;
			
		}	else	{
			date_start_date.setMonth(date_start_date.getMonth());
			date_start_date.setDate(date_start_date.getDate()-1);
			date_start_date.setYear(date_start_date.getFullYear());
		}
	}
	
	for	(i=1; i<5; ++i)	{
		date_second_date=new Date(date_start_date);
		for	(j=1;j<7;++j)	{
			var_temp = date_start_date.getDate()-1;
			if	(var_temp==0)	{
				var_temp=ftn_counting_backwards(date_start_date, int_yearMod);
				date_start_date=var_temp;
			}	else	{
				date_start_date.setDate(date_start_date.getDate()-1);
			}
		}
		date_first_date=new Date(date_start_date);
		
		var_temp_str= "week" + parseInt(i) + "a";
		
		if	(int_current_lang==0)	{
			document.getElementById(var_temp_str).innerHTML = str_week_day[int_current_lang][date_first_date.getDay()] + " " + str_month_name[int_current_lang][date_first_date.getMonth()]+ " " + date_first_date.getDate() + ", " + date_first_date.getFullYear() + " to " + str_week_day[int_current_lang][date_second_date.getDay()] + " " + str_month_name[int_current_lang][date_second_date.getMonth()]+ " " + date_second_date.getDate() + ", " + date_second_date.getFullYear();
		}	else if	(int_current_lang==1)	{
			document.getElementById(var_temp_str).innerHTML = str_week_day[int_current_lang][date_first_date.getDay()] + " " + date_first_date.getDate() + " "  + str_month_name[int_current_lang][date_first_date.getMonth()]+ " "+ date_first_date.getFullYear() + " au  " + str_week_day[int_current_lang][date_second_date.getDay()] + " "  + date_second_date.getDate() + " " + str_month_name[int_current_lang][date_second_date.getMonth()]+ " "+ date_second_date.getFullYear();
		}
		
		var_temp_str= "week" + parseInt(i) + "b";
		
		if	(int_current_lang==0)	{
			document.getElementById(var_temp_str).innerHTML = str_week_day[int_current_lang][date_first_date.getDay()] + " " + str_month_name[int_current_lang][date_first_date.getMonth()]+ " " + date_first_date.getDate() + ", " + date_first_date.getFullYear() + " to " + str_week_day[int_current_lang][date_second_date.getDay()] + " " + str_month_name[int_current_lang][date_second_date.getMonth()] + " " + date_second_date.getDate() + ", " + date_second_date.getFullYear();
		}	else if	(int_current_lang==1)	{
			document.getElementById(var_temp_str).innerHTML =" " + str_week_day[int_current_lang][date_first_date.getDay()] + " " + date_first_date.getDate() + " " + str_month_name[int_current_lang][date_first_date.getMonth()] + " "  + date_first_date.getFullYear() + " au " + " " + str_week_day[int_current_lang][date_second_date.getDay()] + " "+  date_second_date.getDate() +  " " + str_month_name[int_current_lang][date_second_date.getMonth()] + " "  + date_second_date.getFullYear();
		}
		date_start_date.setDate(date_start_date.getDate()-1);
	}
	
}

function ftn_counting_backwards(date_startDate, int_year_modifier)	{
	var str_month=new Array(12);
	str_month[0] = "January";
	str_month[1] = "February";
	str_month[2] = "March";
	str_month[3] = "April";
	str_month[4] = "May";
	str_month[5] = "June";
	str_month[6] = "July";
	str_month[7] = "August";
	str_month[8] = "September";
	str_month[9] = "October";
	str_month[10] = "November";
	str_month[11] = "December";
	var int_final_month_date;
	var tempDay = parseInt(date_startDate.getDate()) - 1;
	var int_cur_year = date_startDate.getFullYear();
	var date_return_value = new Date();
	var date_temp_month; var tempSrng;
	var date_temp_date= new Date();
	
	if	(tempDay == 0)	{
		
		date_temp_month = (date_startDate.getMonth())-1;
		
		if	(date_temp_month == -1)	{
			date_temp_month=11;
			--int_cur_year;
		}
		
		switch(date_temp_month)
		{
			//31
			case 0:
			case 2:
			case 4:
			case 6:
			case 7:
			case 9:
			case 11:
				//CODE
				int_final_month_date=31;
				break;
							
			//30
			case 3:
			case 5:
			case 8:
			case 10:
				//CODE
				int_final_month_date=30;
				break;
			
			//Feb
			case 1:
				//CODE
				if	(((int_cur_year % 4 == 0) && (int_cur_year % 100 != 0)) || (int_cur_year % 400 == 0))	{
					int_final_month_date=29;
				}	else	{
					int_final_month_date=28;
				}
				break;
		default:
			alert("ERROR");
			break;
		}
		tempSrng = str_month[date_temp_month] + " " + int_final_month_date + ", " + int_cur_year;
    date_temp_date=new Date(tempSrng);
		return date_temp_date;		
	}	else	{
		
		date_return_value.setFullYear(int_cur_year, date_startDate.getMonth(), tempDay)
		/*.setMonth(date_startDate.getMonth());
		date_return_value.setDate(tempDay);
		date_return_value.setYear(int_cur_year);*/
		return date_return_value;
	}
}

function ftn_cleanup()	{
	Lang=document.getElementById('languagecalc').value;
	document.getElementById('reg1').value = "";
	document.getElementById('reg2').value = "";
	document.getElementById('reg3').value = "";
	document.getElementById('reg4').value = "";
	document.getElementById('vac1').value = "";
	document.getElementById('vac2').value = "";
	document.getElementById('vac3').value = "";
	document.getElementById('vac4').value = "";
	document.getElementById('regvac1').innerHTML = "";
	document.getElementById('regvac2').innerHTML = "";
	document.getElementById('regvac3').innerHTML = "";
	document.getElementById('regvac4').innerHTML = "";
	document.getElementById('totwage').innerHTML = "";
	document.getElementById('totvac').innerHTML = "";
	document.getElementById('total').innerHTML = "";
	if	(Lang==0)	{
		document.getElementById('weekday').value="Sunday";
	}	else if	(Lang==1)	{
		document.getElementById('weekday').value="dimanche";
	}
	ftn_changer();
	var_temp = ftn_DetHol();
	var_temp.checked=false;
	location.href="#holSel";
}

function cleanRadio(radioPoint)	{
	if	(document.getElementById('newyears') != radioPoint)	{
		document.getElementById('newyears').checked = false;
	}
	
	if	(document.getElementById('family') != radioPoint)	{
		document.getElementById('family').checked = false;
	}
	
	if	(document.getElementById('goodfriday') != radioPoint)	{
		document.getElementById('goodfriday').checked = false;
	}
	
	if	(document.getElementById('victoria') != radioPoint)	{
		document.getElementById('victoria').checked = false;
	}
	
	if	(document.getElementById('canada') != radioPoint)	{
		document.getElementById('canada').checked = false;
	}
	
	if	(document.getElementById('labour') != radioPoint)	{
		document.getElementById('labour').checked = false;
	}
	
	if	(document.getElementById('thanksgiving') != radioPoint)	{
		document.getElementById('thanksgiving').checked = false;
	}
	
	if	(document.getElementById('christmas') != radioPoint)	{
		document.getElementById('christmas').checked = false;
	}
	
	if	(document.getElementById('boxing') != radioPoint)	{
		document.getElementById('boxing').checked = false;
	}
	
	if	(document.getElementById('newyears2') != radioPoint)	{
		document.getElementById('newyears2').checked = false;
	}
	
	if	(document.getElementById('family2') != radioPoint)	{
		document.getElementById('family2').checked = false;
	}
	
	if	(document.getElementById('goodfriday2') != radioPoint)	{
		document.getElementById('goodfriday2').checked = false;
	}
	
	if	(document.getElementById('victoria2') != radioPoint)	{
		document.getElementById('victoria2').checked = false;
	}
	
	if	(document.getElementById('canada2') != radioPoint)	{
		document.getElementById('canada2').checked = false;
	}
	
	if	(document.getElementById('labour2') != radioPoint)	{
		document.getElementById('labour2').checked = false;
	}
	
	if	(document.getElementById('thanksgiving2') != radioPoint)	{
		document.getElementById('thanksgiving2').checked = false;
	}
	
	if	(document.getElementById('christmas2') != radioPoint)	{
		document.getElementById('christmas2').checked = false;
	}
	
	if	(document.getElementById('boxing2') != radioPoint)	{
		document.getElementById('boxing2').checked = false;
	}
}

function charRemover(inp)	{
	var Lan=document.getElementById('languagecalc').value;
	var parseChar;
	var inpLen=inp.length;
	
	if	(Lan == 1)	{
		for	(i=0; i<inpLen;i++)	{
			parseChar=inp.substr(i,1);
			if	(parseChar === " ")	{
				x=inp.substr(0,i);
				y=inp.substr((i+1),inpLen);
				inp=x+y;
			}	else if	(parseChar===",")	{
				x=inp.substr(0,i);
				y=inp.substr((i+1),inpLen);
				inp=x+"."+y;
			}
		}
	}	else if	(Lan==0)	{
		for	(i=0; i<inpLen;i++)	{
			parseChar=inp.substr(i,1);
			if	(parseChar === ",")	{
				x=inp.substr(0,i);
				y=inp.substr((i+1),inpLen);
				inp=x+y;
			}
		}
	}
	return inp;
}


function formatChanger(tempN)	{
		
    var curNum=new Number(); var counter; var decS; var decLen;
		var cLang=document.getElementById('languagecalc').value; var tempStr; var strLen; var x; var y; var catStr="";
		curNum=parseInt((tempN));
		decN=tempN;
		decN=decN-curNum;
		
		tempStr=curNum.toString();
		strLen=tempStr.length;
		
		if  (cLang==0)  {
      for	(i=3;i<strLen;i+=3)	{
  			x=tempStr.substr((strLen-i),3);
  			catStr=x+"," +catStr;
  			counter++;
  		}
  		y=strLen%3;
  			if	(y==0)	{	
  				catStr=tempStr.substr((strLen-i),3) + "," + catStr;
  				strLen=tempStr.length;
  				decS=decN.toFixed(2).toString();
  				decLen=decS.length;
  				strLen=catStr.length;
  				catStr=catStr.substr(0,(strLen-1));
  				if	(decN>0)	{
  					catStr=catStr+ decS.substr(1,(decLen-1));
  				}
  			}	else	{
  				x=tempStr.substr(0,y);
  				catStr=x + "," + catStr;
  				strLen=tempStr.length;
  				decS=decN.toFixed(2).toString();
  				decLen=decS.length;strLen=catStr.length;
  				catStr=catStr.substr(0, (strLen-1));
  				if	(decN>0)	{
  					catStr=catStr+ decS.substr(1,(decLen-1));
  				}
  		}
     }  else if (cLang==1)  {
        for	(i=3;i<strLen;i+=3)	{
  			x=tempStr.substr((strLen-i),3);
  			catStr=x+" " +catStr;
  			counter++;
  		}
  
  		y=strLen%3;
  			if	(y==0)	{	
  				catStr=tempStr.substr((strLen-i),3) + " " + catStr;
  				strLen=tempStr.length;
  				decS=decN.toFixed(2).toString();
  				decLen=decS.length;
  				strLen=catStr.length;
  				catStr=catStr.substr(0,(strLen-1));
  				if	(decN>0)	{
  					catStr=catStr+","+ decS.substr(2,(decLen-1));
  				}
  			}	else	{
  				x=tempStr.substr(0,y);
  				catStr=x + " " + catStr;
  				strLen=tempStr.length;
  				decS=decN.toFixed(2).toString();
  				decLen=decS.length;strLen=catStr.length;
  				catStr=catStr.substr(0, (strLen-1));
  				if	(decN>0)	{
  					catStr=catStr+","+ decS.substr(2,(decLen-1));
  				}
  			}	
      }	
		
		return catStr;
	}
	

function MM_findObj(n, d) { //v4.01

  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {

    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}

  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];

  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);

  if(!x && d.getElementById) x=d.getElementById(n); return x;

}

 

function MM_changeProp(objName,x,theProp,theValue) { //v6.0

  var obj = MM_findObj(objName);

  if (obj && (theProp.indexOf("style.")==-1 || obj.style)){

    if (theValue == true || theValue == false)

      eval("obj."+theProp+"="+theValue);

    else eval("obj."+theProp+"='"+theValue+"'");

  }

}

