
function ValidateRegistration()
{
		var returnvalue = true;
		var ValidationErrorMessage = 'Following validation errors occured.\n\n';

		if(!CheckTextBox("ProductName"))
		{
				ValidationErrorMessage += BuildErrorMessageRequired("Name");
				returnvalue = false;
		}

		if(CheckMulti("CategoryID", 1, 50) == "MINERROR") 
		{
				ValidationErrorMessage += BuildErrorMessageMultiMin("Category", "one");
				returnvalue = false;
		}

		if(!CheckTextBox("AddressLine1")) 
		{
				ValidationErrorMessage += BuildErrorMessageRequired("Address Line 1");
				returnvalue = false;
		}
		if(!CheckTextBox("Suburb")) 
		{
				ValidationErrorMessage += BuildErrorMessageRequired("Suburb");
				returnvalue = false;
		}
		if(!CheckTextBox("State")) 
		{
				ValidationErrorMessage += BuildErrorMessageRequired("State");
				returnvalue = false;
		}
		if(!CheckTextBox("Postcode")) 
		{
				ValidationErrorMessage += BuildErrorMessageRequired("Postcode");
				returnvalue = false;
		}
		if(!CheckTextBox("Country")) 
		{
				ValidationErrorMessage += BuildErrorMessageRequired("Country");
				returnvalue = false;
		}

		if(!CheckTextBox("Phone")) 
		{
				ValidationErrorMessage += BuildErrorMessageRequired("Phone");
				returnvalue = false;
		}

		if(!CheckTextBox("Email")) 
		{
				ValidationErrorMessage += BuildErrorMessageRequired("Email");
				returnvalue = false;
		}
		else
		{
				if(!CheckEmail("Email")) 
                {
					ValidationErrorMessage += BuildErrorMessageInvalid("Email Address");
					returnvalue = false;
				}
		}

		var DoPasswordMatch = false;
		if(!CheckTextBox("Password")) 
		{
				ValidationErrorMessage += BuildErrorMessageRequired("Password");
				returnvalue = false;
		}
		else
		{
				DoPasswordMatch = true;
		}

		if(!CheckTextBox("ConfirmPassword")) 
		{
				ValidationErrorMessage += BuildErrorMessageRequired("Confirm Password");
				returnvalue = false;
		}
		else
		{
				if (DoPasswordMatch)
				{
					if (document.getElementById("Password").value.replace(/^\s+|\s+$/g, '') != document.getElementById("ConfirmPassword").value.replace(/^\s+|\s+$/g, ''))
					{
						ValidationErrorMessage += "Supplied passwords don't match.";
					}
				}
		}
				
		if(!returnvalue) alert(ValidationErrorMessage);
		return returnvalue;
}

// Form Functions
// Used to check that mandatory textbox have a value
function CheckTextBox(FieldID)
{
		var returnvalue = true;
		if(document.getElementById(FieldID).value.replace(/^\s+|\s+$/g, '') == '')
		{
				returnvalue = false;
		}
		return returnvalue;
}

function CheckEmail(FieldID) 
{
		var returnvalue = true;
	var emailfmt= /^\w+([.-]\w+)*@\w+([.-]\w+)*\.\w{2,8}$/;
	if(!emailfmt.test(document.getElementById(FieldID).value.replace(/^\s+|\s+$/g, '')))
	{ 
		returnvalue = false;
	}
		return returnvalue;
}

function CheckMulti(FieldName, min, max) 
{
		var returnvalue = "";
		var CheckBoxList = document.getElementsByName(FieldName);
		var CheckCount = 0;

		for(var i = 0; i < CheckBoxList.length; i++)
		{
				if(CheckBoxList[i].checked) { CheckCount=CheckCount+1 ; }
		}

		if (CheckCount < min)
		{ 
				returnvalue = "MINERROR";
		}
		else
		{
				if (CheckCount > max)
				{ 
						returnvalue = "MAXERROR";
				}
		}
		return returnvalue;
}
function BuildErrorMessageRequired(FieldLabel)
{
		return FieldLabel + ' is required.\n';
}

function BuildErrorMessageMultiMin(FieldLabel, min)
{
		return 'At least ' + min + ' ' + FieldLabel + ' needs to be selected.\n';
}

function BuildErrorMessageMultiMax(FieldLabel, max)
{
		return 'Please limit your ' + FieldLabel + ' selection to maximum of ' + max + '.\n';
}

function BuildErrorMessageInvalid(FieldLabel)
{
		return FieldLabel + ' is not valid.\n';
}

function isNumberKey(evt)
{
 var charCode = (evt.which) ? evt.which : event.keyCode
 if (charCode > 31 && (charCode < 48 || charCode > 57))
		return false;

 return true;
}
