function sanitizeInput(obj)
{
	var inputString = obj.value;
	inputString = inputString.replace(/(<)|(>)/g, function(bracket) { return (bracket == '<') ? '&lt;' : '&gt;'; }); // strip all html from input.
	obj.value = inputString;
}

function checkPhoneForward(theField, theLimit, nextField)
{
	msgText = "";
	if(theLimit == theField.value.length)
	{
		if (theLimit == 3 && !(/\d\d\d/.test(theField.value))) 
		{
			msgText = "Please enter a correct";
            if (theField.name == "phone1" || theField.name == "fax1")
            	msgText += " area code";
            if (theField.name == "phone2" || theField.name == "fax2")
            	msgText += " exchange";
		}
		else if (theLimit == 4 && !(/\d\d\d\d/.test(theField.value))) 
		{
			msgText = "Please enter a correct";
			if (theField.name == "phone3")
				msgText += " phone number";
			else if (theField.name == "fax3")
				msgText += " fax number";
		}
       if (msgText != "") 
       {
    	   alert(msgText);
    	   theField.value = "";
    	   theField.focus();
       }
       else 
    	   nextField.focus();
	}
}

function validateCatalogForm(form)
{
    var errors = [];
	var catalogType = null;
	for (var i = 0; i < form.catalogType.length; i++)
	{
		if (form.catalogType[i].checked)
			catalogType = form.catalogType[i].value;
	} 	
    if (!isValidString(catalogType))
        errors[errors.length] = "Please select a catalog type.";
	if (!isValidString(form.contactName.value))
		errors[errors.length] = "Please enter a name.";
    if (!isValidString(form.address.value))
		errors[errors.length] = "Please enter an address.";
    if (!isValidString(form.city.value))
		errors[errors.length] = "Please enter a city.";
    if (!isValidString(form.state.value))
		errors[errors.length] = "Please select a state.";
    if (!isValidString(form.zip.value))
		errors[errors.length] = "Please enter a zip code.";
	if (errors.length > 0) 
	{
		reportErrors(errors);
		return false;
	}
	return true;
}

function validateContactForm(form)
{
    var errors = [];

	if (!isValidString(form.contactName.value))
		errors[errors.length] = "Please enter a name.";
    if (!isValidString(form.email.value))
		errors[errors.length] = "Please enter an email address.";
    if (!isValidString(form.phone1.value) || !isValidString(form.phone2.value) || !isValidString(form.phone3.value))
		errors[errors.length] = "Please enter a phone number.";    
    if (!isValidString(form.comments.value))
		errors[errors.length] = "Please enter a question or comment.";
    if (errors.length > 0)
    {
		reportErrors(errors);
		return false;
	}
	return true;
}

function isValidString(str)
{
	return str != null && jQuery.trim(str) != "";
}

function reportErrors(errors)
{
	var msg = "";
	for (var i = 0; i<errors.length; i++) 
	{
		msg += "\n" + errors[i];
	}
	alert(msg);
}

// From http://www.netlobo.com/url_query_string_javascript.html
function decodeParams(name)
{
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");  
	var regexS = "[\\?&]" + name + "=([^&#]*)";  
	var regex = new RegExp(regexS);  
	var results = regex.exec(window.location.href);  
	if(results == null) return "";  
	else return decodeURIComponent(results[1].replace(/\+/g,  " "));
}

function getResponse()
{
	if(decodeParams("response") == "succeed")
		alert("Your request has been sent.");
	else if(decodeParams("response") == "failure")
	{
		populateForm();
		alert("An error occurred.  Please try again.  If you continue to have problems, click the help (?) icon next to the distorted text for additional options.");
	}
}

function populateForm()
{
	var form;  //var has to be in there for ie to work
	
	form = document.getElementById("form");
	form.contactName.value = decodeParams("contactName");
	form.company.value = decodeParams("company");
	form.email.value = decodeParams("email");
	form.phone1.value = decodeParams("phone1");
	form.phone2.value = decodeParams("phone2");
	form.phone3.value = decodeParams("phone3");
	form.phone4.value = decodeParams("phone4");
	form.comments.value = decodeParams("comments");
	
	if(form.name == "catalogForm")
	{
		var type = decodeParams("catalogType");
		for (var i = 0; i < form.catalogType.length; i++)
		{
			if (form.catalogType[i].value == type)
				form.catalogType[i].checked = true;
		} 	
	    form.address.value = decodeParams("address");
	    form.city.value = decodeParams("city");
	    form.state.value = decodeParams("state");
	    form.zip.value = decodeParams("zip");
		form.fax1.value = decodeParams("fax1");
		form.fax2.value = decodeParams("fax2");
		form.fax3.value = decodeParams("fax3");
	}
}