function trimString (str) {
  str = this != window? this : str;
  return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

function validateForm (formObject) {
		
	var validate = true;
		
	for (i = formObject.length-10; i >= 0; i--) {
		
		var fieldValue = formObject.elements[i].value;
		fieldValue = trimString(fieldValue);
		formObject.elements[i].value = fieldValue;
		
		var idx = i + 1;
		var warning = "required_" + idx;

		if (formObject.elements[i].value == 0 ) {
			formObject.elements[i].focus();
			formObject.elements[i].style.backgroundColor = "#FFCCCC";
			document.getElementById(warning).style.display = "inline";
			validate = false;
			
			if (i == 1) {
				document.getElementById("badEmail").style.display = "none";
			}
		}
		
		else if (i < 2) {
			formObject.elements[i].style.backgroundColor = "#FFFFFF";
			document.getElementById(warning).style.display = "none";
		}
		
		if (i == 1 && formObject.elements[1].value != 0) {
			var emailtest1 = formObject.elements[i].value.indexOf("@");
			var emailtest2 = formObject.elements[i].value.indexOf(".");
			
			if ( (emailtest1 == -1 || emailtest2 == -1) || (emailtest1 < 1 || emailtest2 < 3) ) {
				formObject.elements[i].focus();
				formObject.elements[i].style.backgroundColor = "#FFCC99";
				document.getElementById("badEmail").style.display = "inline";
				validate = false;
			}
			
			else {
				formObject.elements[i].style.backgroundColor = "#FFFFFF";
				document.getElementById("badEmail").style.display = "none";
			}
		}
		
		//test to see if comments field is over 200 characters
		if (i == 2 && formObject.elements[i].value.length > 200) {
			var overAmount = (formObject.elements[i].value.length) - 200;
			alert("You have in excess of 200 characters! Please reduce your project description by " + overAmount + " characters.");
			formObject.elements[i].focus();
			document.getElementById("overLimit").style.display = "inline";
			formObject.elements[i].style.backgroundColor = "#FFCC99";
			document.fillform.charCount.value = "Character count = " + formObject.elements[i].value.length;
			validate = false;
		}
		// end project description field test
		
		//remove line breaks and carriage returns
		else {
			//I.E 7 solution
			if (formObject.elements[i].value.indexOf("\r\n") && navigator.appName=="Microsoft Internet Explorer"){
				var regExp = /\r\n+/g;
				var multiLineText = formObject.elements[i].value;
				formObject.elements[i].value = multiLineText.replace(regExp," ");
			}
			
			//Firefox 2.0 Windows solution (also works for Firefox and Safari on Mac platform)
			else {
				var multiLineText = formObject.elements[i].value;
				multiLineText = multiLineText.replace(new RegExp( "\\n\n", "g" )," ");
				formObject.elements[i].value = multiLineText.replace(new RegExp( "\\n", "g" )," ");
			}
			
		}
		// end remove line breaks if statement
	}
	
	if (validate == false) {
		return false;
	}

	else {
		return true;
	}
}


function validateComments(formElement,idx) {
	var c = formElement.value.length;
	
	var warning = "required_" + idx;
	
	var leadingSpace = formElement.value.indexOf(" ");
	
	var fieldValue = formElement.value;
	
	document.fillform.charCount.value = "Character count = " + c;

	if (leadingSpace == 0) {
		fieldValue = trimString(fieldValue);
		formElement.value = fieldValue;

	}
	
	if (c > 200) {
		document.getElementById("overLimit").style.display = "inline";
		formElement.style.backgroundColor = "#FFCC99";
	}
	
	else if (c > 0 && formElement.value == false) {
		document.fillform.charCount.value = "Character count = 0";
		fieldValue = trimString(fieldValue);
		formElement.value = fieldValue;
	}
	
	else if (c > 0 && c < 201) {
		document.getElementById("overLimit").style.display = "none";
		document.getElementById(warning).style.display = "none";
		formElement.style.backgroundColor = "#FFFFFF";
	}	
}

function validateField (formElement,idx) {
	var warning = "required_" + idx;
	
	if (formElement.value != 0) {
		formElement.style.backgroundColor = "#FFFFFF";
		document.getElementById(warning).style.display = "none";
	}
	
}

function validateEmail (formElement,idx) {
	var emailtest1 = formElement.value.indexOf("@");
	var emailtest2 = formElement.value.indexOf(".");
	var warning = "required_" + idx;
	
	
	if (formElement.value != 0 && emailtest1 == -1 && emailtest2 == -1) {
		formElement.style.backgroundColor = "#FFFFFF";
		document.getElementById(warning).style.display = "none";
		document.getElementById("badEmail").style.display = "inline";
		formElement.style.backgroundColor = "#FFCC99";
		return false;
	}

	else if (emailtest1 > 0 && emailtest2  > 2) {
		formElement.style.backgroundColor = "#FFFFFF";
		document.getElementById("badEmail").style.display = "none";
		document.getElementById(warning).style.display = "none";
	}
	
}
