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

function validateForm (formObject) {
	var formLength = formObject.length -5
	for (i = 0; i <= formLength; i++) {
		if (i != 3 && i != formLength) {
			if (formObject.elements[i].value == 0) {
				var warning = "required_" + i;
				alert("Please fill out all required fields");
				formObject.elements[i].focus();
				formObject.elements[i].style.backgroundColor = "#FFCCCC";;
				document.getElementById(warning).style.display = "inline";
				return false;
			}			
		}
		
		if (i == formLength-1) {
			var emailtest1 = formObject.elements[i].value.indexOf("@");
			var emailtest2 = formObject.elements[i].value.indexOf(".");
	
			if (emailtest1 == -1 || emailtest2 == -1) {
				alert("Please enter a valid email address");
				formObject.elements[i].focus()
				return false;
			}				
		}
	
		//test to see if comments field is over 200 characters
		if (i == formLength && 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 comments by " + overAmount + " characters.");
			formObject.elements[i].focus();
			document.getElementById("overLimit").style.display = "inline";
			formObject.elements[i].style.backgroundColor = "#FFCC99";
			return false;
		}
		// end comments field test
		
		// place trimString function here so that the above test for comments overlimits is run first
		var fieldValue = formObject.elements[i].value;
		fieldValue = trimString(fieldValue);
		formObject.elements[i].value = fieldValue;

		//remove line breaks and carriage returns
		if (i == formLength) {
			//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" )," ");
			}
		}
	}
	return true;
}

function validateComments (formElement) {
	var c = formElement.value.length;

	document.ebookForm.charCount.value = "Character count = " + c;

	if (c > 200) {
		document.getElementById("overLimit").style.display = "inline";
		formElement.style.backgroundColor = "#FFCC99";
	}
	
	/*else if (formElement.value == 0) {
		formElement.style.backgroundColor = "#FFCCCC";
		document.getElementById("required_12").style.display = "inline";	
	}*/

	else if (c > 0 && c < 201) {
		document.getElementById("overLimit").style.display = "none";
		formElement.style.backgroundColor = "#FFFFFF";
}
	
}

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

}

function validateEmail (formElement) {
	var emailtest1 = formElement.value.indexOf("@");
	var emailtest2 = formElement.value.indexOf(".");
	
	if (formElement.value == 0) {
		formElement.style.backgroundColor = "#FFCCCC";
		document.getElementById("required_11").style.display = "inline";
		document.getElementById("badEmail").style.display = "none";
	}
	
	else if (emailtest1 == -1 || emailtest2 == -1) {
		formElement.style.backgroundColor = "#FFCC99";
		document.getElementById("required_11").style.display = "none";
		document.getElementById("badEmail").style.display = "inline";
	}
	
	else {
		formElement.style.backgroundColor = "#FFFFFF";
		document.getElementById("required_11").style.display = "none";
		document.getElementById("badEmail").style.display = "none";
	} 

}