function inputValidation(formObj)
{
	var strBuilder = '';
	var userInput = '';
	var inputElement = '';
	for(var i = 0; i < formObj.elements.length; i++){
		if(formObj.elements[i].tagName.toLowerCase() == 'fieldset' || formObj.elements[i].type.toLowerCase() == 'image' || formObj.elements[i].type.toLowerCase() == 'submit') {
			continue;
		}
		userInput = htmlEncodeStr(formObj.elements[i].value);
		inputElement = formObj.elements[i];

		//Required Field validation IF
		if(formObj.elements[i].getAttribute('cIsRequired') == 'true')
		{
			//checks to see if txtBx is empty, or if dropdownlist is empty.
			if(userInput == ''){
				strBuilder += '<li><b>'+formObj.elements[i].getAttribute('cDisplayName') + '</b>: is a required field.</li>';
			}else if(userInput == '-1'){
				strBuilder += '<li><b>'+formObj.elements[i].getAttribute('cDisplayName') + '</b>: please select a value from the drop down list...</li>';
			}
		}
		
		//Compare Fields validation IF
		if(formObj.elements[i].getAttribute('cFieldMatch')){
			var compareAgainst = document.getElementById(formObj.elements[i].getAttribute('cFieldMatch'));
			if(userInput != compareAgainst.value){
				strBuilder += '<li><b>'+formObj.elements[i].getAttribute('cDisplayName') + '</b>: does not match <b>'+ compareAgainst.getAttribute('cDisplayName') +'</b> </li>';
			}
		}
		
		//Regular Expression validation IF
		if(formObj.elements[i].getAttribute('cIsRegExMatch') && ( userInput != '' ))
		{
			var regExMatch = '';
			switch(formObj.elements[i].getAttribute('cIsRegExMatch')){
				case 'email':
					regExMatch = new RegExp('\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*\\.(\\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))');
					if(!regExMatch.test(userInput)){
						strBuilder += '<li>The value <b>'+userInput+'</b> is not a proper <b>'+formObj.elements[i].getAttribute('cDisplayName') + '</b>, please give the email address in <b>\'handle@domain.com\'</b></li>';
					}
					break;
				case 'phone':
					var phoneNumber = '';
					for(var c = 0; c < userInput.length; c++){
						if(parseInt(userInput.charAt(c)) || userInput.charAt(c) == '0'){
							phoneNumber += userInput.charAt(c);
						}
					}
					if(phoneNumber.length == 10){
						formObj.elements[i].value = '('+phoneNumber.substring(0,3)+') '+phoneNumber.substring(3,6)+'-'+phoneNumber.substring(6,10);
					}else{
						strBuilder += '<li>'
						strBuilder += 'You mobile number <b>'+userInput+'</b> does not seem to be a proper mobile number.<br />'
						strBuilder += '&#8226; We require your Area code and normal 7 digit phone number.';
						strBuilder += '</li>';
					}
					
					break;
				case 'alphanum':
					regExMatch = new RegExp('^[a-zA-Z0-9][a-zA-Z0-9_-]+[a-zA-Z0-9]$');
					if(!regExMatch.test(userInput)){
						strBuilder += '<li>The value <b>'+userInput+'</b> is not a proper <b>'+formObj.elements[i].getAttribute('cDisplayName') + '</b>, your input can have <b>\'A-Z\', \'a-z\', \'0-9\', \'-\' and \'_\'</b>.</li>';
					}
					break;
				case 'alphanumspace':
					regExMatch = new RegExp('^[a-zA-Z0-9][a-zA-Z0-9_ -]+[a-zA-Z0-9]$');
					if(!regExMatch.test(userInput)){
						strBuilder += '<li>The value <b>'+userInput+'</b> is not a proper <b>'+formObj.elements[i].getAttribute('cDisplayName') + '</b>, your input can have <b>\'A-Z\', \'a-z\', \'0-9\', \'-\' and \'_\'</b>.</li>';
					}
					break;
                case "storeid":
                    regExMatch = new RegExp("^[^-][a-zA-Z0-9-]+[^-]$");
					if(!regExMatch.test(userInput)) {
						strBuilder += '<li>The value <b>'+userInput+'</b> is not a proper <b>'+formObj.elements[i].getAttribute('cDisplayName') + '</b>, your input can have <b>\'A-Z\', \'a-z\', \'0-9\' and \'-\'</b>.</li>';
					}
					break;
			}
		}
		
		//Positive number IF
		if(formObj.elements[i].getAttribute('cIsPositiveNumber')){
			var number = parseInt(userInput);
			if(number <= 0){
				strBuilder += '<li>The value '+formObj.elements[i].value+' is not a positive number.</li>';
			}
		}
		
		//Min Length IF
		if(formObj.elements[i].getAttribute('cMinLength')){
			var minLength = parseInt(formObj.elements[i].getAttribute('cMinLength'));
			if(userInput.length < minLength){
				strBuilder += '<li> <b>'+inputElement.getAttribute('cDisplayName')+'</b> is required to be greater than or equal to '+minLength+' characters.</li>';
			}
		}
		
		//Max Length IF
		if(formObj.elements[i].getAttribute('cMaxLength')){
			var maxLength = parseInt(formObj.elements[i].getAttribute('cMaxLength'));
			if(userInput.length > maxLength){
				strBuilder += '<li> <b>'+inputElement.getAttribute('cDisplayName')+'</b> is required to be less than or equal to '+maxLength+' characters.</li>';
			}
		}
	}

	if(strBuilder != ''){
		popErrorText('<ul>'+strBuilder+'</ul>');
		return false
	}
	return true;
}