//Check if the supplied parameter is numeric
//Returns 1 if the number is numeric
//Returns -1 if the number is not numeric
function IsNumeric(sText, prmChars) {
	var ValidChars = "0123456789" + prmChars;
	var IsNumber = 1;
	var Char;
	var DecimalPoint = 0;

	for (i = 0; i < sText.length && IsNumber == 1; i++) {
	   	Char = sText.charAt(i);
		if (ValidChars.indexOf(Char) == -1) {
         	IsNumber = -1;
        }
        if (Char == ".") {
        	DecimalPoint = DecimalPoint + 1;
        	if (DecimalPoint > 1) {
	        	IsNumber = -1;
        	}
        }
	}
	return IsNumber;
}

function GetNumber(sText, prmChars) {
	var ValidChars = "0123456789" + prmChars;
	var Char;
	var strOutput = "";

	for (i = 0; i < sText.length; i++) {
	   	Char = sText.charAt(i);
		if (ValidChars.indexOf(Char) != -1) {
         	strOutput = strOutput + Char;
        }
	}
	if (Char == ".") {
		strOutput = strOutput + "00";
	}
	return strOutput;
}

//In the Annual Calculator, perform the form check before submission
//For annual values, the date starts from 1901
//After the decimalisation in March quarter 1966, values must be in dollars ($).
function ACheckFormSubmit(prmLastPeriod, isDecimal) {

	var StartYear = document.getElementById("annualStartYear").value;
	var EndYear = document.getElementById("annualEndYear").value;

	if (isDecimal) {
		//Decimal value is after 1965
		var Dollar = document.getElementById("annualDollar").value;

		if (StartYear == '' && EndYear == '' && Dollar == '') {
			alert ("Blank form cannot be submitted");
			return false;
		}

		if (Dollar == '') {
			alert ("Please enter the cost value");
			return false;
		}

		if ((IsNumeric(StartYear, "") == 1) && ((StartYear >= 1901) && (StartYear <=1965))) {
			alert("Values must be in pounds (\u00a3), shilling (s) and pence (d) for periods before 1966. Use our pre-decimal inflation calculator for this calculation.");
			document.getElementById("annualStartYear").value = 'yyyy';
			return false;
		}

		if ((IsNumeric(StartYear, "") != 1) || !((StartYear >= 1966) && (StartYear <= prmLastPeriod))) {
			alert ("Start Year should be between 1966 and " + prmLastPeriod);
			document.getElementById("annualStartYear").value = 'yyyy';
			return false;
		}

		if ((IsNumeric(EndYear, "") != 1) || !((EndYear >= 1966) && (EndYear <= prmLastPeriod))) {
			alert ("End Year should be between 1966 and " + prmLastPeriod);
			document.getElementById("annualEndYear").value = 'yyyy';
			return false;
		}

	} else {
		//Predecimal value is between 1901 and 1965 inclusive
		var Pound = document.getElementById("annualPound").value;
		var Shilling = document.getElementById("annualShilling").value;
		var Pence = document.getElementById("annualPence").value;

		if (StartYear == '' && EndYear == '' && Pound == '' && Shilling == '' && Pence == '') {
			alert ("Blank form cannot be submitted");
			return false;
		}

		if (Pound == '' && Shilling == '' && Pence == '') {
			alert ("Please enter the cost value");
			return false;
		}

		if ((IsNumeric(StartYear, "") == 1) && ((StartYear >= 1966) && (StartYear <= prmLastPeriod))) {
			alert("After the decimalisation in March quarter 1966, values must be in dollars ($). Use our decimal inflation calculator for this calculation.");
			document.getElementById("annualStartYear").value = 'yyyy';
			return false;
		}

		if ((IsNumeric(StartYear, "") != 1) || !((StartYear >= 1901) && (StartYear <=1965))) {
			alert ("Start Year should be between 1901 and 1965");
			document.getElementById("annualStartYear").value = 'yyyy';
			return false;
		}

		if ((IsNumeric(EndYear, "") != 1) || !((EndYear >= 1901) && (EndYear <= prmLastPeriod))) {
			alert ("End Year should be between 1901 and " + prmLastPeriod);
			document.getElementById("annualEndYear").value = 'yyyy';
			return false;
		}
	}

	if (EndYear < StartYear) {
		alert ("End Year cannot be less than Start Year");
		document.getElementById("annualEndYear").value = 'yyyy';
		return false;
	}

	return true;
}

//In the Quarterly Calculator, perform the form check before submission
//For quarterly values, the date starts from Jun 1922
//After the decimalisation in March quarter 1966, values must be in dollars ($).
function QCheckFormSubmit(prmLastPeriod, isDecimal) {

	var StartYear = document.getElementById("quarterStartYear").value;
	var StartMonth = document.getElementById("quarterStartMonth").value;
	var EndYear = document.getElementById("quarterEndYear").value;
	var EndMonth = document.getElementById("quarterEndMonth").value;

	var InputStartDate = new Date("1 " + StartMonth + " " + StartYear);
	var InputEndDate = new Date("1 " + EndMonth + " " + EndYear);
	var StartPeriod = new Date("1 Jun 1922");
	var LastPeriod = new Date("1 " + prmLastPeriod);
	var DecimalStartPeriod = new Date("1 Jan 1966");

	if (isDecimal) {
		var Dollar = document.getElementById("quarterDollar").value;

		if (StartYear == '' && EndYear == '' && Dollar == '') {
			alert ("Blank form cannot be submitted");
			return false;
		}

		if (Dollar == '') {
			alert ("Please enter the cost value");
			return false;
		}

		if ((IsNumeric(StartYear, "") == 1) && ((InputStartDate >= StartPeriod) && (InputStartDate < DecimalStartPeriod))) {
			alert("Values must be in pounds (\u00a3), shilling (s) and pence (d) for periods before 1966. Use our pre-decimal inflation calculator for this calculation.");
			document.getElementById("quarterStartYear").value = 'yyyy';
			return false;
		}

		if ((IsNumeric(StartYear, "") != 1) || !((InputStartDate >= DecimalStartPeriod) && (InputStartDate <= LastPeriod))) {
			alert("Start Date must be between Mar 1966 and " + prmLastPeriod);
			document.getElementById("quarterStartYear").value = 'yyyy';
			return false;
		}

		if ((IsNumeric(EndYear, "") != 1) || !((InputEndDate >= DecimalStartPeriod) && (InputEndDate <= LastPeriod))) {
			alert("End Date must be between Mar 1966 and " + prmLastPeriod);
			document.getElementById("quarterEndYear").value = 'yyyy';
			return false;
		}

	} else {
		//Predecimal value is between Jun 1922 and 31 Dec 1965 inclusive
		var Pound = document.getElementById("quarterPound").value;
		var Shilling = document.getElementById("quarterShilling").value;
		var Pence = document.getElementById("quarterPence").value;

		if (StartYear == '' && EndYear == '' && Pound == '' && Shilling == '' && Pence == '') {
			alert ("Blank form cannot be submitted");
			return false;
		}

		if (Pound == '' && Shilling == '' && Pence == '') {
			alert ("Please enter the cost value");
			return false;
		}

		if ((IsNumeric(StartYear, "") == 1) && ((InputStartDate >= DecimalStartPeriod) && (InputStartDate <= LastPeriod))) {
			alert("After the decimalisation in March quarter 1966, values must be in dollars ($). Use our decimal inflation calculator for this calculation");
			document.getElementById("quarterStartYear").value = 'yyyy';
			return false;
		}

		if ((IsNumeric(StartYear, "") != 1) || !((InputStartDate >= StartPeriod) && (InputStartDate < DecimalStartPeriod))) {
			alert("Start Date must be between Jun 1922 and Dec 1965");
			document.getElementById("quarterStartYear").value = 'yyyy';
			return false;
		}

		if ((IsNumeric(EndYear, "") != 1) || !((InputEndDate >= StartPeriod) && (InputEndDate <= LastPeriod))) {
			alert("End Date must be between Jun 1922 and " + prmLastPeriod);
			document.getElementById("quarterEndYear").value = 'yyyy';
			return false;
		}

	}

	if (EndYear < StartYear) {
		alert ("End Date cannot be less than Start Date");
		document.getElementById("quarterEndYear").value = 'yyyy';
		return false;
	}

	return true;
}

// Reset the form fields values to empty String
function resetAnnualForm() {
	resetField("annualStartYear");
	resetField("annualEndYear");

	resetField("annualDollar");
	resetField("annualPound");
	resetField("annualShilling");
	resetField("annualPence");

	resetField("calculatedAnnualDollarValue");
	resetField("AValuePoundCalc");
	resetField("AValueShillingCalc");
	resetField("AValuePenceCalc");

	resetField("annualTotalChangeInCost");
	resetField("annualTimeSeriesSpan");
	resetField("annualAverageInflationRate");

	resetField("ADollar1");
	resetField("APound1");
	resetField("AShilling1");
	resetField("APence1");

	resetField("ADollar2");
	resetField("APound2");
	resetField("AShilling2");
	resetField("APence2");

	window.setTimeout("setFocus('annualStartYear');", 10);
}

//Reset the form fields values to empty String
function resetQuarterForm() {
	resetField("quarterStartYear");
	resetField("quarterEndYear");
	document.frmCalcQ.quarterStartMonth[0].selected = "1";
	document.frmCalcQ.quarterEndMonth[0].selected = "1";

	resetField("quarterDollar");
	resetField("quarterPound");
	resetField("quarterShilling");
	resetField("quarterPence");

	resetField("calculatedQuarterDollarValue");
	resetField("QValuePoundCalc");
	resetField("QValueShillingCalc");
	resetField("QValuePenceCalc");

	resetField("quarterTotalChangeInCost");
	resetField("quarterYearTimeSeriesSpan");
	resetField("quarterMonthTimeSeriesSpan");
	resetField("quarterAverageInflationRate");

	resetField("QDollar1");
	resetField("QPound1");
	resetField("QShilling1");
	resetField("QPence1");

	resetField("QDollar2");
	resetField("QPound2");
	resetField("QShilling2");
	resetField("QPence2");

	window.setTimeout("setFocus('quarterStartYear');", 10);
}

function resetField(elementId) {
	if (document.getElementById(elementId) != null) {
		document.getElementById(elementId).value = "";
	}
}

