PASS_MARK = 67;
RESULT_PASS = "Your score is the same or higher than the pass mark. You may qualify to immigrate as a skilled worker.\n\n";
RESULT_FAIL = "Your score is lower than the pass mark. You may not qualify to immigrate as a skilled worker at this time.\n\n";
ERROR_MSG = "\nPlease select the appropriate option(s) in the section(s), and then click Score button again.";

FACTOR = new Array(7);
FACTOR[0] = "";
FACTOR[1] = "Factor1 Education";
FACTOR[2] = "Factor2 Language";
FACTOR[3] = "Factor3 Work Experience";
FACTOR[4] = "Factor4 Age";
FACTOR[5] = "Factor5 Arranged Employment";
FACTOR[6] = "Factor6 Adaptability";

flag = new Array(7);

// Reset flags
function init() {
	for (i=1; i<7; i++){
		flag[i] = false;
	}
}

// Factor1 Education
function education_set(val) {
	document.forms.calc.point_educ.value = val;
	flag[1] = true;
	//calculate();
}

// Factor3 Work Experience
function workexp_set(val) {
	document.forms.calc.point_work.value = val;
	flag[3] = true;
	//calculate();
}

// Factor4 Age
function age_set(val) {
	document.forms.calc.point_age.value = val;
	flag[4] = true;
	//calculate();
}

// Factor5 Arranged Employment
function are_set(val) {
	document.forms.calc.point_are.value = val;
	flag[5] = true;
	//calculate();
}

// Factor 2 Language
function language_set(form) {
	lang_points = 0;
	basic1 = 0;
	basic2 = 0;
	first  = new Array(4); // First  Langage Flag(0:Read 1:Write 2:Speak 3:Listen)
	second = new Array(4); // Second Langage Flag(0:Read 1:Write 2:Speak 3:Listen)
	for (i=1; i<4; i++){
		first[i] = false;
		second[i] = false;
	}

	for (i=0;i<4;i++){
		if (form.lanFr[i].checked){
			first[0] = true;	
			if(i==2)
			{
				if(basic1 < 2) 
				{
					lang_points += Number(form.lanFr[i].value);
					basic1 += Number(form.lanFr[i].value);
				}
			} else
				lang_points += Number(form.lanFr[i].value);
		}
		if (form.lanFw[i].checked){
			first[1] = true;	
			if(i==2)
			{
				if(basic1 < 2) 
				{
					lang_points += Number(form.lanFw[i].value);
					basic1 += Number(form.lanFw[i].value);
				}
			} else
				lang_points += Number(form.lanFw[i].value);
		}
		if (form.lanFs[i].checked){
			first[2] = true;	
			if(i==2)
			{
				if(basic1 < 2) 
				{
					lang_points += Number(form.lanFs[i].value);
					basic1 += Number(form.lanFs[i].value);
				}
			} else
				lang_points += Number(form.lanFs[i].value);
		}
		if (form.lanFl[i].checked){
			first[3] = true;	
			if(i==2)
			{
				if(basic1 < 2) 
				{
					lang_points += Number(form.lanFl[i].value);
					basic1 += Number(form.lanFl[i].value);
				}
			} else
				lang_points += Number(form.lanFl[i].value);
		}

		if (form.lanSr[i].checked){
			second[0] = true;	
			if(i==2)
			{
				if(basic2 < 2) 
				{
					lang_points += Number(form.lanSr[i].value);
					basic2 += Number(form.lanSr[i].value);
				}
			} else
				lang_points += Number(form.lanSr[i].value);
		}
		if (form.lanSw[i].checked){
			second[1] = true;	
			if(i==2)
			{
				if(basic2 < 2) 
				{
					lang_points += Number(form.lanSw[i].value);
					basic2 += Number(form.lanSw[i].value);
				}
			} else
				lang_points += Number(form.lanSw[i].value);
		}
		if (form.lanSs[i].checked){
			second[2] = true;	
			if(i==2)
			{
				if(basic2 < 2) 
				{
					lang_points += Number(form.lanSs[i].value);
					basic2 += Number(form.lanSs[i].value);
				}
			} else
				lang_points += Number(form.lanSs[i].value);
		}
		if (form.lanSl[i].checked){
			second[3] = true;	
			if(i==2)
			{
				if(basic2 < 2) 
				{
					lang_points += Number(form.lanSl[i].value);
					basic2 += Number(form.lanSl[i].value);
				}
			} else
				lang_points += Number(form.lanSl[i].value);
		}
	} // for
	document.forms.calc.point_lang.value = lang_points;
	//calculate();

	if(first[0] && first[1] && first[2] && first[3] && 
		second[0] && second[1] && second[2] && second[3])
		flag[2] = true;

}

// Factor6 Adaptability
function adaptibility_set(form) {
	adapt_points = 0;
	adapt_flag = new Array(5);
	for (i=1; i<5; i++){
		adapt_flag[i] = false;
	}
	// 1. Spause Education
	for (i=0;i<8;i++){
		if (form.spe[i].checked){
			adapt_points += Number(form.spe[i].value);
			adapt_flag[0] = true;
		}
	}

	// 2. Principal Applicant or Spouse / Common-Law Partner has studied in Canada
	for (i=0;i<2;i++){
		if (form.psc[i].checked){
			adapt_points += Number(form.psc[i].value);
			adapt_flag[1] = true;
		}
	}

	// 3. Principal Applicant or Spouse / Common-Law Partner has worked in Canada
	for (i=0;i<2;i++){
		if (form.pwc[i].checked){
			adapt_points += Number(form.pwc[i].value);
			adapt_flag[2] = true;
		}
	}

	// 4. You received points under Factor 5: Arranged Employment in Canada
	for (i=0;i<2;i++){
		if (form.pec[i].checked){
			adapt_points += Number(form.pec[i].value);
			adapt_flag[3] = true;
		}
	}

	// 5. Principal Applicant or Spouse / Common-Law Partner has Family in Canada
	for (i=0;i<2;i++){
		if (form.fic[i].checked){
			adapt_points += Number(form.fic[i].value);
			adapt_flag[4] = true;
		}
	}
	
	if(adapt_points > 10){
		adapt_points = 10;
	}

	document.forms.calc.point_adapt.value = adapt_points;
	//calculate();
	if(adapt_flag[0] && adapt_flag[1] && adapt_flag[2] && adapt_flag[3] && adapt_flag[4])
		flag[6] = true;
}

// Calculate Total Score
function calculate() {
	total  = Number(document.forms.calc.point_educ.value);
	total += Number(document.forms.calc.point_work.value);
	total += Number(document.forms.calc.point_age.value);
	total += Number(document.forms.calc.point_are.value);
	total += Number(document.forms.calc.point_lang.value);
	total += Number(document.forms.calc.point_adapt.value);

	document.forms.calc.point_total.value = total;

	error = "";

	for (i=1; i<7; i++){
		if ( !flag[i] ) {
			error += "You did not fill in the section of " + FACTOR[i] + ".\n";
		}
	}
	
	//alert(error);
	if (error != "")
	{
		error += ERROR_MSG;
		document.forms.calc.result.value = error;
		return;
	}

	if(total >= PASS_MARK)
		document.forms.calc.result.value = RESULT_PASS;
	else
		document.forms.calc.result.value = RESULT_FAIL;
} // function calculate()
