function Duplicate(Counter, T){
	var vCounter = document.getElementById(Counter).value;
	var NewCounter = ++document.getElementById(Counter).value;
	switch(T){
		case 1:
			var ModelHTML = 'Sentence '+NewCounter+' : From date: <input type="text" id="DPC_DSFromVV1" size="9">  | To date: <input type="text" id="DPC_DSToVV1" size="9"><br><div id="NextDSVV1"></div>';
			var idChange = 'NextDSVV'+vCounter;
		break;
		case 2:
			var ModelHTML = 'Absence '+NewCounter+' : From date: <input type="text" id="DPC_DAFromVV1" size="9">  | To date: <input type="text" id="DPC_DAToVV1" size="9"><br><div id="NextDAVV1"></div>';
			var idChange = 'NextDAVV'+vCounter;
		break;
	}

	var H = ModelHTML.replace(/VV1/g, 'VV'+NewCounter);
	document.getElementById(idChange).innerHTML = H;
	DatePickerControl.init();
}

function Validate(){
	var DFstCame = document.getElementById('DPC_DFstCame').value;
	var DResident = document.getElementById('DPC_DResident').value;
	var DSign = document.getElementById('DPC_DSign').value;

	var CC1 = document.getElementById('counter1').value;
	var CC2 = document.getElementById('counter2').value;

	if(DFstCame=='' || DResident=='' || document.getElementById('Sentence').value=='' || document.getElementById('Left').value==''){
		alert('All the fields are required. Please complete the form.');
		return false;
	}

	if(Date.parse(DFstCame)>Date.parse(DResident)){
		alert('Error!!! Date you first came to Canada, Date you become a resident does not match.');
		return false;
	}

	if(Date.parse(DSign)<Date.parse(DResident)){
		alert('Error!!! Date you will sign the Application, Date you become a resident does not match.');
		return false;
	}

	var DateMax = document.getElementById('DDT1').value;
	var DateMin = document.getElementById('DDS1').value;

	if(document.getElementById('Sentence').value=='Yes'){
		for(i=1; i<=CC1; i++){
			if(
			Date.parse(document.getElementById('DPC_DSToVV'+i).value)<Date.parse(document.getElementById('DPC_DSFromVV'+i).value)
			|| Date.parse(document.getElementById('DPC_DSToVV'+i).value)>Date.parse(DateMax) 
			|| Date.parse(document.getElementById('DPC_DSFromVV'+i).value)<Date.parse(DateMin)
			){
				alert('Error!!! Sentence '+ i +': Date From or/and Date To does not match.');
				return false;
			}
		}
	}

	if(document.getElementById('Left').value=='Yes'){
		for(i=1; i<=CC2; i++){
			if(
			Date.parse(document.getElementById('DPC_DAToVV'+i).value)<Date.parse(document.getElementById('DPC_DAFromVV'+i).value)
			|| Date.parse(document.getElementById('DPC_DAToVV'+i).value)>Date.parse(DateMax) 
			|| Date.parse(document.getElementById('DPC_DAFromVV'+i).value)<Date.parse(DateMin)
			){
				alert('Error!!! Absence '+ i +': Date From or/and Date To does not match.');
				return false;
			}
		}
	}

	return true;
}

function DoCalcul(Sec){
	if(!Validate()){
		return;
	}
	var CC1 = document.getElementById('counter1').value;
	var CC2 = document.getElementById('counter2').value;
	var T = '---------- Result ---------\n';
	var DS = new Array();
	var DA = new Array();
	var BeforeBecomeResident = 0;
	var TotalDays = 0;
	var TotalDaysNotIn = 0;
	var TotalDaysSentenceAR = 0;
	var TotalDaysSentenceBR = 0;
	var TotalDaysAbsenceAR = 0;
	var TotalDaysAbsenceBR = 0;

	var StartsFromDate = new Date();

	var DFstCame = document.getElementById('DPC_DFstCame').value;
	var DResident = document.getElementById('DPC_DResident').value;
	var DSign = document.getElementById('DPC_DSign').value;

	if(Date.parse(DSign)>=Date.parse(DResident)){
		var BasicResidence = Math.round((Date.parse(DSign)-Date.parse(DResident)) / 86400000);
	}
	if(BasicResidence>1460){
		BasicResidence = 1460;
		var tmp = Date.parse(DSign)-(1460*86400000);
	}

	
	T += 'Minimum days required: 1095 days\n';
	T += '-----------------------------------------\n';
	T += 'Arrival date:              ' + DFstCame +'\n';
	T += 'Permanent residence date:  ' + DResident +'\n';
	T += 'Application date:          ' + DSign +'\n';
	T += 'Basic residence (days):    ' + BasicResidence +'\n';

	T += 'Did you spend time serving a sentence: ' + document.getElementById('Sentence').value+'\n';
	if(document.getElementById('Sentence').value=='Yes'){
		for(i=1; i<=CC1; i++){
			if(document.getElementById('DPC_DSToVV'+i).value != '' && document.getElementById('DPC_DSFromVV'+i).value != ''){
				DS[i] = Date.parse(document.getElementById('DPC_DSToVV'+i).value) - Date.parse(document.getElementById('DPC_DSFromVV'+i).value);
				DS[i] = 1 + Math.round(DS[i] / 86400000);
				if(DS[i]<0){DS[i] = 0;}

				if(Date.parse(document.getElementById('DPC_DSFromVV'+i).value)>Date.parse(DResident)){
					TotalDaysSentenceAR = TotalDaysSentenceAR + DS[i];
					T += 'Sentence [A.R] '+i+': From: ' + document.getElementById('DPC_DSFromVV'+i).value+'   To: '+document.getElementById('DPC_DSToVV'+i).value+' Diff: '+DS[i]+'\n';
				}
				if(Date.parse(document.getElementById('DPC_DSToVV'+i).value)<Date.parse(DResident)){
					TotalDaysSentenceBR = TotalDaysSentenceBR + DS[i];
					T += 'Sentence [B.R] '+i+': From: ' + document.getElementById('DPC_DSFromVV'+i).value+'   To: '+document.getElementById('DPC_DSToVV'+i).value+' Diff: '+DS[i]+'\n';
				}
			}
		}
	} else {
		TotalDaysSentenceAR = 0;
		TotalDaysSentenceBR = 0;
	}
	T += 'Time spent serving a sentence [A.R]: ' + TotalDaysSentenceAR +'\n';
	T += 'Time spent serving a sentence [B.R]: ' + TotalDaysSentenceBR +'\n';

	T += 'Did you leave Canada: ' + document.getElementById('Left').value+'\n';
	if(document.getElementById('Left').value=='Yes'){
		for(i=1; i<=CC2; i++){
			if(document.getElementById('DPC_DAToVV'+i).value != '' && document.getElementById('DPC_DAFromVV'+i).value != ''){
				DA[i] = Date.parse(document.getElementById('DPC_DAToVV'+i).value) - Date.parse(document.getElementById('DPC_DAFromVV'+i).value);
				DA[i] = Math.round(DA[i] / 86400000);
				if(DA[i]<0){DA[i] = 0;}

				if(Date.parse(document.getElementById('DPC_DAFromVV'+i).value)>Date.parse(DResident)){
					TotalDaysAbsenceAR = TotalDaysAbsenceAR + DA[i];
					T += 'Absence [A.R] '+i+': From: ' + document.getElementById('DPC_DAFromVV'+i).value+'   To: '+document.getElementById('DPC_DAToVV'+i).value+' Diff: '+DA[i]+'\n';
				}
				if(Date.parse(document.getElementById('DPC_DAToVV'+i).value)<Date.parse(DResident)){
					TotalDaysAbsenceBR = TotalDaysAbsenceBR + DA[i];
					T += 'Absence [B.R] '+i+': From: ' + document.getElementById('DPC_DAFromVV'+i).value+'   To: '+document.getElementById('DPC_DAToVV'+i).value+' Diff: '+DA[i]+'\n';
				}
				
				
				
			}
		}
	} else {
		TotalDaysAbsenceAR = 0;
		TotalDaysAbsenceBR = 0;
	}
	T += 'Days absent [A.R]:                   ' + TotalDaysAbsenceAR +'\n';
	T += 'Days absent [B.R]:                   ' + TotalDaysAbsenceBR +'\n';

	var DateMin = document.getElementById('DDS1').value;

	if((Date.parse(DResident)>Date.parse(DFstCame)) && (Date.parse(DResident)>Date.parse(DateMin))){
		BeforeBecomeResident = ((Date.parse(DResident)-Date.parse(DateMin)) / 86400000) - TotalDaysSentenceBR - TotalDaysAbsenceBR;
		BeforeBecomeResident = Math.round(BeforeBecomeResident / 2);
	}
	T += 'Days before becoming a Resident (days):      ' + BeforeBecomeResident +'\n';

	var PhyPresence = BasicResidence - TotalDaysSentenceAR - TotalDaysAbsenceAR + BeforeBecomeResident;
	T += 'Physical presence (days):      ' + PhyPresence +'\n';
	T += '-----------------------------------------\n';
	T += '                                                         \n';
	if(PhyPresence>=1095){
		var msg = 'According to the information you provided, YOU MEET the basic residence requirement.\n';
	} else {
		var msg = 'According to the information you provided, YOU DO NOT MEET the basic residence requirement.\n';
	}
	T += msg;
	if(Sec == 'Calculatrice'){
		alert(msg);
		T = T.replace(/\n/g, '\<br\>');
		document.getElementById('RS').innerHTML = T;
	} else {
		document.getElementById('CalculRS').value = T;
	}
	// Minimum days : 1,095 days
}

function FormatDay(D){
	if(D<10){return '0'+D;} else {return D;}
}

function FormatMonth(M){
	return FormatDay(++M);
}

function CallFNCAfterDateSet(Obj){
	if(Obj.id=='DPC_DSign' || Obj.id=='DPC_DFstCame'){
		var T = document.getElementById('DPC_DSign').value;
		var DSign = document.getElementById('DPC_DSign').value;
		var DFstCame = document.getElementById('DPC_DFstCame').value;
		if(DFstCame!=''){
			if(Math.round((Date.parse(DSign)-Date.parse(DFstCame)) / 86400000)>1460){
				var tmp = Date.parse(DSign)-(1462*86400000);
				var tmpD = new Date(tmp);
				var S = tmpD.getFullYear()+'/'+FormatMonth(tmpD.getMonth())+'/'+FormatDay(tmpD.getDate());
			} else {
				var S = document.getElementById('DPC_DFstCame').value;
			}

			document.getElementById('DDS1').value = S;
			document.getElementById('DDS2').value = S;
			document.getElementById('DDS3').value = S;
			document.getElementById('DDS4').value = S;
		}

		var tmp2 = Date.parse(T)-(86400000);
		var tmpD2 = new Date(tmp2);
		var T2 = tmpD2.getFullYear()+'/'+FormatMonth(tmpD2.getMonth())+'/'+FormatDay(tmpD2.getDate());

		document.getElementById('DDT1').value = T2;
		document.getElementById('DDT2').value = T2;
		document.getElementById('DDT3').value = T2;
		document.getElementById('DDT4').value = T2;
	}
}

function ShowHide(Obj){
	switch(Obj.id){
		case 'Sentence':
			if(Obj.value=='Yes'){
				document.getElementById('ListSentence').style.display = 'inline';
				if(document.getElementById('counter1').value==0){
					Duplicate('counter1', 1);
				}
			} else {
				document.getElementById('ListSentence').style.display = 'none';
			}
		break;
		case 'Left':
			if(Obj.value=='Yes'){
				document.getElementById('ListAbsence').style.display = 'inline';
				if(document.getElementById('counter2').value==0){
					Duplicate('counter2', 2);
				}
			} else {
				document.getElementById('ListAbsence').style.display = 'none';
			}
		break;
	}
}
