// employment form

// set the default values
function setDefaults()
{
	myForm.medicalTest.checked = true;
	myForm.fName.value = 'First';
	myForm.mName.value = 'Middle';
	myForm.lName.value = 'Last';
	myForm.fName.style.color = '#666';
	myForm.mName.style.color = '#666';
	myForm.lName.style.color = '#666';
	myForm.passType[0].checked = true;
	myForm.visaStatus[0].focus();
	alert("One copy of the establishment card is required");		
}

// alert + hide the urgent processing
function transferAlert() {	
	if (myForm.visaType[1].checked == true || myForm.visaType[2].checked == true)	
	{ 	
		alert("Residence visa MUST be valid at least for one month");
	}
}

// to show and hids appropriate options and attachments on the form
function showAndHide ()
{
	// new visa
	if (myForm.visaStatus[0].checked == true)
	{
		visaTypeSec.style.display = "block";
		urgentProcessingSec.style.display = "block";
		urgentStampingSec.style.display = "block";
		renewalSec1.style.display = "none";
		renewalSec2.style.display = "none";
		renewalSec3.style.display = "none";
		urgentSec.style.display = "none";
		langSec.style.display = "block";
		newJobSec.style.display = "none";
		salarySec.style.display = "block";
		allowanceSec.style.display = "block";
		accomodationSec.style.display = "block";
		transportSec.style.display = "block";
		lostIdSec.style.display = "none";
		myForm.lostId.checked = false;
	}
	// renewal
	if (myForm.visaStatus[1].checked == true)
	{
		visaTypeSec.style.display = "none";
		myForm.visaType[0].checked = false;
		renewalSec1.style.display = "block";
		renewalSec2.style.display = "block";
		renewalSec3.style.display = "block";
		urgentSec.style.display = "block";
		lostIdSec.style.display = "block";
		urgentProcessingSec.style.display = "none";
		urgentStampingSec.style.display = "none";
		myForm.urgentProcessing.checked = false;
		myForm.urgentStamping.checked = false;
		renewVisaAttachments.style.display = "block";
		langSec.style.display = "none";
		newJobSec.style.display = "block";
		salarySec.style.display = "none";
		allowanceSec.style.display = "none";
		accomodationSec.style.display = "none";
		transportSec.style.display = "none";
	}
	
	// renewal or transfer
	if (myForm.visaType[1].checked == true || myForm.visaType[2].checked == true ||  myForm.visaStatus[1].checked == true)
	{
		myForm.localAmendment[0].checked = false;
		myForm.localAmendment[1].checked = false;
		myForm.inCountry[0].checked = false;
		myForm.inCountry[1].checked = false;
		localAmendmentSec.style.display = "none";
		inCountrySec.style.display = "none";
		preVisaSec.style.display = "none";
		preVisaIssuePlaceSec.style.display = "none";
	}
	// new visa
	if (myForm.visaType[0].checked == true)
	{
		urgentProcessingSec.style.display = "block";
		inCountrySec.style.display = "block";
	} else {
		myForm.inCountry[1].checked = false;
		myForm.inCountry[0].checked = false;
	}
	
	if (myForm.inCountry[0].checked == true)
	{ 
		localAmendmentSec.style.display = "block"; 
	} else { 
		localAmendmentSec.style.display = "none";
		myForm.localAmendment[0].checked = false;
		myForm.localAmendment[1].checked = false;
	}

	if (myForm.localAmendment[0].checked == true)
	{
		preVisaSec.style.display = "block";
		preVisaIssuePlaceSec.style.display = "block";
		if (myForm.preVisa[0].checked == true)
		{
			visitVisa1.style.display = "block";
			visitVisa2.style.display = "block";
			resVisa1.style.display = "none";
			resVisa2.style.display = "none";
		}
		if (myForm.preVisa[1].checked == true)
		{
			visitVisa1.style.display = "none";
			visitVisa2.style.display = "none";
			resVisa1.style.display = "block";
			resVisa2.style.display = "block";
		}
	
	// hide the fields for the fine
	} else {
		preVisaSec.style.display = "none";
		preVisaIssuePlaceSec.style.display = "none";
		visitVisa1.style.display = "none";
		visitVisa2.style.display = "none";
		resVisa1.style.display = "none";
		resVisa2.style.display = "none";
		myForm.preVisa[0].checked = false;
		myForm.preVisa[1].checked = false;
		myForm.preVisaIssuePlace[0].checked = false;
		myForm.preVisaIssuePlace[1].checked = false;
		myForm.DOE.value = "";
		myForm.DOVE.value = "";
		myForm.DOVC.value = "";
		myForm.visitVisaExtended[0].checked = false;
		myForm.visitVisaExtended[1].checked = false;
	}
	
	if (myForm.visaType[1].checked == true || myForm.visaType[2].checked == true)	
	{ 
		myForm.urgentProcessing.checked = false;
		urgentProcessingSec.style.display = "none";		
	}
	
	// if applicant is outside, get outside contact details
	if(myForm.inCountry[1].checked == true)
	{
		insideContactSec.style.display = "none";
		outsideContactSec.style.display = "block";
	} else {
		insideContactSec.style.display = "block";
		outsideContactSec.style.display = "none";
	}
	
	// for government transfer, show the previous sponsor section
	/*	if (myForm.visaType[1].checked == true )
	{
		previousSponsorSec.style.display = "block";
	} else {
		previousSponsorSec.style.display = "none";
	}*/
	
}

function setRequirements () {
	
	// new visa requirement
	if (myForm.visaStatus[0].checked == true)
	{
		newVisaAttachments.style.display = "block";
		renewVisaAttachments.style.display = "none";
		if ( myForm.localAmendment[0].checked == true)
		{
			empContract.style.display = "block";
			laAttachment1.style.display = "block";
			laAttachment2.style.display = "block";
			photoAttachment.style.display = "none";
			laPassCopies.style.display = "block";
			newPassCopies.style.display = "none";
			if (myForm.preVisa[0].checked == true)
			{
				visitVisaAtachment.style.display = "block";
				residentVisaAttachment.style.display = "none";
			}
			if (myForm.preVisa[1].checked == true)
			{
				residentVisaAttachment.style.display = "block";
				visitVisaAtachment.style.display = "none";
			}
		} else {
			empContract.style.display = "none";
			laAttachment1.style.display = "none";
			laAttachment2.style.display = "none";
			visitVisaAtachment.style.display = "none";
			residentVisaAttachment.style.display = "none";
			photoAttachment.style.display = "block";
			laPassCopies.style.display = "none";
			newPassCopies.style.display = "block";
		}
	}
	// renew visa requirements
	if (myForm.visaStatus[1].checked == true)
	{
		newVisaAttachments.style.display = "none";
		renewVisaAttachments.style.display = "block";
		if (myForm.lostId.checked == true) { originalIdSec.style.display = "none";} else { originalIdSec.style.display = "block";}
	}
		
	// sponsor pass copy for transfer
	if ( myForm.visaType[2].checked == true) {sponsorPassCopy.style.display = "block";} else { sponsorPassCopy.style.display = "none"; }
	
	// original passport for transfers
	if ( myForm.visaType[1].checked == true || myForm.visaType[2].checked == true) {originalPassport.style.display = "block";} else { originalPassport.style.display = "none"; }
}
	
// calculate fee
// if express, disable options that express already includes
function calFee() 
{
	var fee = 0;
	
	// new visa fee
	if (myForm.visaStatus[0].checked == true )
	{
		fee = 1900;
		// transfers
		if (myForm.visaType[1].checked == true) { fee = 2500; }
		if (myForm.visaType[2].checked == true) { fee = 2500; }
		
		// incountry and local amendment
		if (myForm.inCountry[0].checked == true) {fee = fee + 810;}
		if (myForm.localAmendment[0].checked == true) {fee = fee + 810;}
		
		// express: check and disable urgentProcessing, urgentStamping, medicalTest
		if (myForm.expressService.checked == true) 
		{
			fee = fee + 600;
			if (myForm.visaType[0].checked == true) {
				myForm.urgentProcessing.checked = false;
				myForm.urgentProcessing.disabled = true;
			}
			myForm.urgentStamping.checked = false;
			myForm.urgentStamping.disabled = true;
			myForm.medicalTest.checked = false;
			myForm.medicalTest.disabled = true;
		}
		else {
			if (myForm.visaType[0].checked == true) {myForm.urgentProcessing.disabled = false;}
			myForm.urgentStamping.disabled = false;
			myForm.medicalTest.disabled = false;
		}
		if (myForm.urgentProcessing.checked == true || myForm.urgentProcessing.disabled == true) {fee = fee + 250;}
		if (myForm.urgentStamping.checked == true || myForm.urgentStamping.disabled == true) {fee = fee + 250;}	
	}
	
	// renew fee
	if (myForm.visaStatus[1].checked == true ) 
	{	
		fee = 1550;
		// express: include urgent and medical, and disable them
		if (myForm.expressService.checked == true) 	
		{ 
			fee = fee + 300;
			myForm.urgent.checked = false;
			myForm.urgent.disabled = true;
			myForm.medicalTest.checked = false;
			myForm.medicalTest.disabled = true;
		}
		//not express: enable urgent and medical
		else {
			myForm.urgent.disabled = false;
			myForm.medicalTest.disabled = false;	
		}
		if (myForm.lostId.checked == true) { fee = fee + 560; }
		if (myForm.urgent.checked == true || myForm.urgent.disabled == true) { fee = fee + 250; }
		if (myForm.sameJob[1].checked == true) { fee = fee + 310;}
	}
	
	// medical is same for both new and renewal
	if (myForm.medicalTest.checked == true || myForm.medicalTest.disabled == true) { fee = fee + 100; }
	
	// display the fee and update the fee hidden field
	fee = addCommas(fee);
	paymentAmount.innerHTML = fee;
	myForm.feeAmount.value = fee;
}

// calculate the fine
function calFine()
{
	var fine = 0;
	var today = new Date();
	//Set 1 day in milliseconds
	var one_day=1000*60*60*24;
	
	// days added to the fine because of the processing time at TECOM
	var processingDays = 0; // normal takes 7 days
	if (myForm.urgentProcessing.checked == true) {processingDays = 4;}	 // urgentProcessing takes 4 days
	if (myForm.expressService.checked == true) {processingDays = 2;} // express takes 2 days
	
	//visit visa
	if (myForm.visaStatus[0].checked == true && myForm.preVisa[0].checked == true && myForm.inCountry[0].checked == true && myForm.localAmendment[0].checked == true)
	{
		if(myForm.preVisaIssuePlace[0].checked == true) {
			var dailyFine = 30; // DXB
		}

		if(myForm.preVisaIssuePlace[1].checked == true) {
			var dailyFine = 100; // non DXB
		}	
		
		var DOE = fixDateFormat (myForm.DOE.value);
		var DOE = new Date(DOE);
		
		//Calculate difference between today and date of entry, and convert to days
		var daysPassed = (today.getTime()-DOE.getTime())/one_day;
		//var daysRemaining = 0;
		
		//validity
		if(myForm.visitVisaExtended[0].checked == true) {
			var validity = 30;
		}	
		if(myForm.visitVisaExtended[1].checked == true) {
			var validity = 90;
		}			

		//date of fine - date of entry - validity
		var days = parseInt(daysPassed) - validity;
		
		
		if(days <= 30 && myForm.preVisaIssuePlace[0].checked == true) {
			var fine = days * dailyFine;
		}	

		if(days >= 31 && myForm.preVisaIssuePlace[0].checked == true) {
				var fine = (days * dailyFine) + 2030;
		}	

		if(days >= 151 && myForm.preVisaIssuePlace[0].checked == true) {
			var fine = (days * dailyFine) + 2030 + 3000;
		}

		if(days >= 336 && myForm.preVisaIssuePlace[0].checked == true) {
			var fine = (days * dailyFine) + 2030 + 3000 + 5000;
		}
		
		if(myForm.preVisaIssuePlace[1].checked == true) {
			var fine = days * dailyFine;
		}	
		
	}
	
	//residence visa
	if (myForm.preVisa[1].checked == true && myForm.inCountry[0].checked == true && myForm.localAmendment[0].checked == true)
	{
		if(myForm.preVisaIssuePlace[0].checked == true) {
			var dailyFine = 10; // DXB
		}

		if(myForm.preVisaIssuePlace[1].checked == true) {
			var dailyFine = 25; // non DXB
		}
	// Specifics	
		var DOVC = fixDateFormat(myForm.DOVC.value);
		var DOVC = new Date(DOVC);	

		//Calculate difference between today and date of entry, and convert to days
		var daysPassed = (today.getTime()-DOVC.getTime())/one_day;

		var validity = 30;

		//date of fine - date of entry - validity
		var days = parseInt(daysPassed) - validity;
		

		if(days <= 180 && myForm.preVisaIssuePlace[0].checked == true) {
			var fine = days * dailyFine;
		}	

		if(days >= 181 && myForm.preVisaIssuePlace[0].checked == true) {
			    var SecondDailyFine = 20; 
				var fine = ((days -180) * SecondDailyFine) + 1800;
		}	

		if(days >= 366 && myForm.preVisaIssuePlace[0].checked == true) {
		    var ThirdDailyFine = 30; 
			var fine = ((days -365) * ThirdDailyFine) + 1800 + 3600;
		}

		if(days >= 336 && myForm.preVisaIssuePlace[0].checked == true) {
			var fine = (days * dailyFine) + 2030 + 3000 + 5000;
		}
		
		if(myForm.preVisaIssuePlace[1].checked == true) {
			var fine = days * dailyFine;
		}	

	}
	
	//renewal visa
	if (myForm.visaStatus[1].checked == true)
	{
		var dailyFine = 10; // DXB

		// Specifics	

			var RED = fixDateFormat(myForm.RED.value);
			var RED = new Date(RED);	

			//Calculate difference between today and date of entry, and convert to days
			var daysPassed = (today.getTime()-RED.getTime())/one_day;

			//validity
			var validity = 60;

			//date of fine - date of entry - validity
			var days = parseInt(daysPassed);

			if(days > 30) {
				var fine = ((days - 30) * dailyFine) + 2500;
			}	

			if(days >= 91) {
			    var SecondDailyFine = 20; 
				var fine = ((days - 90) * SecondDailyFine) + 2500 + 2500;
			}

			if(days >= 366) {
			    var ThirdDailyFine = 30; 
				var fine = ((days - 365) * ThirdDailyFine) + 2500 + 2500;
			}	
	}
	
	fine1 = addCommas(fine);
	fineAmount.innerHTML = fine1;
	myForm.fine.value = fine1;
	
	if (fine>0) {fineSec.style.display = "block";} else {fineSec.style.display = "none";}
}

// call all necessary functions
function callAllFunctions()
{
	showAndHide();
	calFee();
	calFine();
	setRequirements();
}

// check the job title and verify if qualification is required
// first 2 characters of job title is: QN or QR
function isQualRequired()
{
	var job = myForm.jobTitle.value;
	var isRequired = job.substr(0,2);
	if (isRequired == "QR" && myForm.visaStatus[0].checked == true) { degreeCert1.style.display = 'block'; alert('Copy of attested educational degree certificate from UAE Foreign Affairs is required'); }
	if (isRequired == "QN" && myForm.visaStatus[0].checked == true) { degreeCert1.style.display = 'none'; }
	if (isRequired == "QR" && myForm.visaStatus[1].checked == true && myForm.sameJob[1].checked == true) { degreeCert2.style.display = 'block';alert('Copy of attested educational degree certificate from UAE Foreign Affairs is required'); }
	if (isRequired == "QN" && myForm.visaStatus[1].checked == true) { degreeCert2.style.display = 'none'; }
	if (isRequired == "QR" && myForm.visaStatus[1].checked == true && myForm.sameJob[0].checked == true) { degreeCert2.style.display = 'none'; }
	// call the fee calculation too
	calFee();
}

// calculate the age (years)
function calAge()
{
	if(checkDate(myForm.DOB)== true)
	{
		var DOB = fixDateFormat (myForm.DOB.value);
		var birthday= new Date(DOB);
		var today = new Date();
		$ageArray = DateDiff(today,birthday);
		age = $ageArray[1];
		
		if (age>60) { alert("Since the applicant is more than sixty years old, the visa request is subjected to Immigration's approval."); }
		if (age<18) { alert("The applicant cannot be less than 18 years old."); }
	}
}