var FieldsToValidate = null;
var ValidatedField = false;

function ValidateFields () {
	var quantity = null;
	var install = null;
	var backgroundcolor = null;
	var imprintcolor = null;
	var size = null;
	var material = null;
	var name = null;
	var type = null;
	var failed = null;

	for (var iFields = 0; iFields < FieldsToValidate.length; iFields++) {
		ProductID = FieldsToValidate[iFields];
		quantity = returnObject('product[' + ProductID + '][quantity]');
		type = returnObject('product[' + ProductID + '][type]');
		
		if (type.value == 'banner') {
			install = returnObject('product[' + ProductID + '][install]');
			if ((quantity.value != '') || (install.options[install.selectedIndex].value != '')) {
				failed = !validateBanner(FieldsToValidate[iFields]);
				if (failed)
					return false;
				ValidatedField = true;
			}
		} else if (type.value == 'safetymat') {
			backgroundcolor = returnObject('product[' + ProductID + '][backgroundcolor]');
			imprintcolor = returnObject('product[' + ProductID + '][imprintcolor]');
			if ((quantity.value != '') || (backgroundcolor.options[backgroundcolor.selectedIndex].value != '') || (imprintcolor.options[imprintcolor.selectedIndex].value != '')) {
				failed = !validateSafetyMat(ProductID);
				if (failed)
					return false;
				ValidatedField = true;
			}
		} else if (type.value == 'safetysign') {
			size = returnObject('product[' + ProductID + '][size]');
			material = returnObject('product[' + ProductID + '][material]');
			if ((quantity.value != '') || (size.options[size.selectedIndex].value != '') || (material.options[material.selectedIndex].value)) {
				failed = !validateSafetySign(ProductID);
				if (failed)
					return false;
				ValidatedField = true
			}
		} else {
			if (quantity.value != '') {
				failed = !validateProductQuantity(ProductID);
				if (failed)
					return false;
				ValidatedField = true
			}
		}
	}
	if (!ValidatedField) {
		alert('Please completed information for at least one product.');
		return false;
	}
	return true;
}

function validateBanner(ProductID) {
	var quantity = returnObject('product[' + ProductID + '][quantity]');
	var install = returnObject('product[' + ProductID + '][install]');
	var name = returnObject('product[' + ProductID + '][name]');
	
	if (isNaN(quantity.value)) {
		alert('Please enter a valid quantity for ' + name.value + '.');
		quantity.focus();
		return false;
	}
	if (install.options[install.selectedIndex].value == '') {
		alert('Please select a Banner Installation Type for ' + name.value + '.');
		return false;
	}
	
	return true;
}

function validateSafetyMat(ProductID) {
	var backgroundcolor = returnObject('product[' + ProductID + '][backgroundcolor]');
	var imprintcolor = returnObject('product[' + ProductID + '][imprintcolor]');
	var name = returnObject('product[' + ProductID + '][name]');
	
	if (!validateProductQuantity(ProductID))
		return false;
	
	if (backgroundcolor.options[backgroundcolor.selectedIndex].value == '') {
		alert('Please select a Safety Mat Background Color for ' + name.value + '.');
		return false;
	}
	if (imprintcolor.options[imprintcolor.selectedIndex].value == '') {
		alert('Please select a Safety Mat Imprint Color for ' + name.value + '.');
		return false;
	}
	
	return true;
}

function validateSafetySign(ProductID) {
	var size = returnObject('product[' + ProductID + '][size]');
	var material = returnObject('product[' + ProductID + '][material]');
	var name = returnObject('product[' + ProductID + '][name]');
	
	if (!validateProductQuantity(ProductID))
		return false;
	
	if (size.options[size.selectedIndex].value == '') {
		alert('Please select a Safety Sign size for ' + name.value + '.');
		return false;
	}
	if (material.options[material.selectedIndex].value == '') {
		alert('Please select a Safety sign material for ' + name.value + '.');
		return false;
	}
	
	return true;
}

function validateProductQuantity (ProductID) {
	var quantity = returnObject('product[' + ProductID + '][quantity]');
	var name = returnObject('product[' + ProductID + '][name]');
	
	if (isNaN(quantity.value)) {
		alert('Please enter a valid quantity for ' + name.value + '.');
		quantity.focus();
		return false;
	}
	
	return true;
}