function evt_SubmitForm(loFrm, sFormType)
{
	if (ValidateForm(loFrm) == true)
	{
		//convert to metric data
		if (sFormType.toUpperCase() == 'VI' || sFormType.toUpperCase() == 'VU')
			__ValidateFormConvertMeasurementsToMetric(loFrm);

		SubmitForm(loFrm, '');
	}
	else
		alert("Please check the fields flagged with an asterisk *");

	return false;
}

function ViewFindResult(frm, sKey, sVal)
{
	//set hidden form value

	eval( 'var doc = document.' + frm );
	eval( 'var x = document.' + frm + '.' + sKey  );
	x.value = sVal;

	doc.submit();

	return false;
}



function ValidateForm( frm )
{
	var bRet=true;

	bRet = RuleValidation(frm);
	bRet &= CustomValidation(frm);

	return bRet;
}

function ValidateInput()
{	// used by AttachOnMouseOverEvents procedure in frmval.js

	var loFrm = event.srcElement.form;

	if  ( ValidateForm(loFrm) == true )
		loFrm.btnOK.disabled = false;
	else
		loFrm.btnOK.disabled = true;
}

function CustomValidation(frm)
{
	return true;
}

function UndoChanges( frm )
{
	if ( confirm("Are you sure you want to undo all changes made ?") )
		frm.reset();
}

function LoadPage(sURL)
{
	window.location.href = sURL;
}

function CalculateAge()
{
	var oSpan = document.getElementById("__CalculateAge");
	var sVal = document.getElementById("DateOfBirth").value;

	if (isValidDate(sVal))
	{
		var laDate = sVal.split("/");
		if (laDate.length == 3)
		{
			var lsDay = laDate[0];
			var lsMonth = laDate[1];
			var lsYear = laDate[2];
			var lsTmpDate = lsMonth + '/' + lsDay + '/' + lsYear;

			oSpan.innerHTML = 'Age:' + datediff("YYYY", lsTmpDate, new Date());
		}
	}
	else
		oSpan.innerHTML = '';
}


function ViewCV(sCVUrl)
{
	var x = OpenWindow(sCVUrl, 500, 650, true);
}



function __ValidateFormConvertMeasurementsToMetric(frm)
{
	var loFld = document.getElementById("_MeasurementType" );
	if (loFld.value != 'M')
		ConvertMeasurements(frm);
}

function ConvertMeasurements(frm)
{
	var loFld = document.getElementById("_MeasurementType" );
	var tableHeadingTD = document.getElementById("tableMeasurements").getElementsByTagName("tr")[0].getElementsByTagName("td")[0];	// row 1, col 1

	//Change to new measurement type
	if (loFld.value == 'M')
		loFld.value = 'I';
	else
		loFld.value = 'M';

	switch ( loFld.value )
	{
		case "I"	:
						ConvertMetricToImperial(frm);
						tableHeadingTD.innerHTML = "<b>Measurements (Imperial)</b>";
						document.getElementById("_btnConvertMeasurements" ).setAttribute("value", "Convert to Metric");
						break;

		case "M"	:
						ConvertImperialToMetric(frm);
						tableHeadingTD.innerHTML = "<b>Measurements (Metric)</b>";
						document.getElementById("_btnConvertMeasurements" ).setAttribute("value", "Convert to imperial");
						break;
	}
	
	// update all labels
	ChangeMeasurementsForGender_ChildAdult( document.forms[0] );
}





function ConvertMetricToImperial(frm)
{
	var CmToInches = 1 / 2.54;					//1 cm = 0.3937 inches
	var KgToPoundsRatio = 2.2046;				//1kg = 2.2046 lbs
	var CentimetersToFeetRatio = 1 / 30.48;		// 1 foot = 30.48cm   (1/x for multiplication)

	if ( !isNaN(parseFloat(frm.Weight.value)) )
		frm.Weight.value = Math.round( parseFloat(frm.Weight.value) * KgToPoundsRatio * 100  ) / 100;

	if (!isNaN(parseFloat(frm.Height.value)))	
		frm.Height.value = Math.round( parseFloat(frm.Height.value) * CentimetersToFeetRatio * 100 ) / 100;

	if (!isNaN(parseFloat(frm.Waist.value)))
		frm.Waist.value = Math.round( parseFloat(frm.Waist.value) * CmToInches * 100 ) / 100;

	if (!isNaN(parseFloat(frm.Collar_Hips.value)))
		frm.Collar_Hips.value = Math.round( parseFloat(frm.Collar_Hips.value) * CmToInches * 100 ) / 100;
}

function ConvertImperialToMetric(frm)
{
	var InchesToCm = 2.54;						//1 inch = 2.54cm
	var PoundsToKgRatio = 1 / 2.2046;			//1kg = 2.2046 lbs
	var FeetToCentimetersRatio = 30.48;			// 1 foot = 30.48cm   (1/x for multiplication)

	if ( !isNaN(parseFloat(frm.Weight.value)) )
		frm.Weight.value = Math.round( parseFloat(frm.Weight.value) * PoundsToKgRatio * 100) / 100;

	if (!isNaN(parseFloat(frm.Height.value)))
		frm.Height.value = Math.round( parseFloat(frm.Height.value) * FeetToCentimetersRatio * 100) / 100;

	if (!isNaN(parseFloat(frm.Waist.value)))
		frm.Waist.value = Math.round( parseFloat(frm.Waist.value) * InchesToCm * 100) / 100;

	if (!isNaN(parseFloat(frm.Collar_Hips.value)))
		frm.Collar_Hips.value = Math.round( parseFloat(frm.Collar_Hips.value) * InchesToCm * 100) / 100;

}



function ChangeMeasurementsForGender_ChildAdult(frm)
{
	var lsGender;
	var lsAdultChild;
	var lsMeasurementType = document.getElementById("_MeasurementType").value;
	var sTmp;


	if (frm.Gender.value == '' || frm.AgeGroupClassificationID.value == '')	
	{
		//disabled measurement fields
		//frm.MetricMeasurements.disabled = true;
		frm.Chest_BraSize.disabled = true;
		frm.Suit_DressSize.disabled = true;
		frm.Collar_Hips.disabled = true;
		frm.Waist.disabled = true;
		frm.ClothingSize.disabled = true;
		document.getElementById("_btnConvertMeasurements").disabled = true;
	}
	else
	{
		lsGender = (frm.Gender.value == '1') ? 'M' : 'F';
		lsAdultChild = (frm.AgeGroupClassificationID.value == '1') ? 'A' : 'C';
		
		
		if (lsAdultChild == 'C')
		{	//child
			frm.Suit_DressSize.disabled = true;
			frm.Chest_BraSize.disabled = true;
			frm.Collar_Hips.disabled = true;
			frm.Waist.disabled = true;
			frm.ClothingSize.disabled = false;
		}
		else
		{
			//adult
			frm.Suit_DressSize.disabled = false;
			frm.Chest_BraSize.disabled = false;
			frm.Collar_Hips.disabled = false;
			frm.Waist.disabled = false;
			frm.ClothingSize.disabled = true;
		}

		//fields
		var loSuitDressSize = document.getElementById("Suit_DressSize");
		var loLblSuitDressSize = document.getElementById("lblSuit_DressSize");

		var loChestBraSize = document.getElementById("Chest_BraSize");
		var loLblChestBraSize = document.getElementById("lblChest_BraSize");

		var loCollarHips = document.getElementById("Collar_Hips")
		var loLblCollarHips = document.getElementById("lblCollar_Hips");

		var loWaist = document.getElementById("Waist");
		var loLblWaist = document.getElementById("lblWaist");
		
		var loHeight = document.getElementById("Height")
		var loLblHeight = document.getElementById("lblHeight")

		var loWeight = document.getElementById("Weight")
		var loLblWeight = document.getElementById("lblWeight")
		

		// change field labels for genders
		switch (lsGender.toUpperCase())
		{
			case 'M'	:
							sTmp = (lsMeasurementType == "M") ? "(cm)" : "(in)";

							loSuitDressSize.setAttribute("title", "Suit size " + sTmp );
							loLblSuitDressSize.setAttribute("title", "Suit size " + sTmp );
							loLblSuitDressSize.innerHTML = "Suit size " + sTmp;

							loChestBraSize.setAttribute("title", "Chest size " + sTmp );
							loLblChestBraSize.setAttribute("title", "Chest size " + sTmp );
							loLblChestBraSize.innerHTML = "Chest size " + sTmp;

							loCollarHips.setAttribute("title", "Collar " + sTmp);
							loLblCollarHips.setAttribute("title", "Collar " + sTmp);
							loLblCollarHips.innerHTML = "Collar " + sTmp;

							loWaist.setAttribute("title", "Waist " + sTmp);
							loLblWaist.setAttribute("title", "Waist " + sTmp);
							loLblWaist.innerHTML = "Waist " + sTmp;

							break;

			case 'F'	:
							sTmp = (lsMeasurementType == "M") ? "(cm)" : "(in)";

							loSuitDressSize.setAttribute("title", "Dress size " + sTmp);
							loLblSuitDressSize.setAttribute("title", "Dress size " + sTmp);
							loLblSuitDressSize.innerHTML = "Dress size " + sTmp;

							loChestBraSize.setAttribute("title", "Bra size");
							loLblChestBraSize.setAttribute("title", "Bra size");
							loLblChestBraSize.innerHTML = "Bra size";

							loCollarHips.setAttribute("title", "Hips " + sTmp);
							loLblCollarHips.setAttribute("title", "Hips " + sTmp);
							loLblCollarHips.innerHTML = "Hips " + sTmp;

							loWaist.setAttribute("title", "Waist " + sTmp);
							loLblWaist.setAttribute("title", "Waist " + sTmp);
							loLblWaist.innerHTML = "Waist " + sTmp;

							break;

		}

		// change height + weight labels
		
		sTmp = (lsMeasurementType == "M") ? "(cm)" : "(ft.in)";
		loHeight.setAttribute("title", "Height " + sTmp );
		loLblHeight.setAttribute("title", "Height " + sTmp );
		loLblHeight.innerHTML = "Height " + sTmp;

		sTmp = (lsMeasurementType == "M") ? "(kg)" : "(lbs)";
		loWeight.setAttribute("title", "Weight " + sTmp );
		loLblWeight.setAttribute("title", "Weight " + sTmp );
		loLblWeight.innerHTML = "Weight " + sTmp;

		document.getElementById("_btnConvertMeasurements").disabled = false;
	}
}
