// Functions to verify the form inputs

function Trim(text)
{
	return text.replace(/^\s*(\S*?)\s*$/, "$1");
}

function Toggle(element_id)
{
	var Element = document.getElementById(element_id);
	
	if (Element !== undefined)
		if (Element.style.display == "none")
			Element.style.display = "block";
		else
			Element.style.display = "none"
}

function Show(element_id)
{
	var Element = document.getElementById(element_id);
	
	if (Element !== undefined)
		Element.style.visibility = "visible";
}

function Hide(element_id)
{
	var Element = document.getElementById(element_id);
	
	if (Element !== undefined)
		Element.style.visibility = "hidden";
}

function IsEmail(email)
{
	return RegExp("^[^\\s@]+?@([\\w\\-]+\\.)+[a-z]{2,}$", "i").test(email);
}

function IsEmpty(value)
{
	value = Trim(value);
	
	if (value.length == 0)
		return true;
	
	return false;
}

function IsDate(value)
{
	if (!IsEmpty(value))
	{
		var milliseconds = Date.parse(value);
		
		if (!isNaN(milliseconds))
			return true;
	}
	
	return false;
}

function FormatMoney(money)
{
	money = parseFloat(money.toString().replace(/[^\d\.\-]+/g, ""));
	
	if (isNaN(money))
		money = 0.00;
	
	money = Math.round(money * 100);
	
	var sign = (money < 0 ? "-" : "");
	
	money = Math.abs(money).toString();
	
	if (money.length == 1)
		return sign + "0.0" + money;
	else if (money.length == 2)
		return sign + "0." + money;
	else
	{
		var dollars = money.substr(0, money.length - 2);
		var cents = money.substr(money.length - 2);
		var i;
		
		var backward = "";
		
		for (i = dollars.length - 1; i >= 0 ; i--)
			backward += dollars.charAt(i);
		
		var temp = "";
		
		for (i = 0; i < backward.length; i++)
		{
			if (i > 0 && i % 3 == 0)
				temp += ",";
			
			temp += backward.charAt(i);
		}
		
		dollars = "";
		
		for (i = temp.length - 1; i >= 0; i--)
			dollars += temp.charAt(i);
		
		return sign + dollars + "." + cents;
	}
}

function VerifyContactUs(Form)
{
	for (var i = 0; i < Form.elements.length; i++)
		if ((Form.elements[i].type == "text" || Form.elements[i].type == "textarea") && Form.elements[i].name != "phone")
			if (Form.elements[i].value.length == 0)
			{
				alert("A required field has been skipped. Please complete field \"" + Form.elements[i].id + "\" before continuing.");
				Form.elements[i].focus();
				return false;
			}
	
	return true;
}

function VerifyFranchiseInquiry(Form)
{
	if (Form.elements["inquiry[name]"].value.length == 0)
	{
		alert("\"Full Name\" is a required field. Please complete before continuing.");
		Form.elements["inquiry[name]"].focus();
		return false;
	}
	
	if (Form.elements["inquiry[phone]"].value.length == 0)
	{
		alert("\"Business Phone\" is a required field. Please complete before continuing.");
		Form.elements["inquiry[phone]"].focus();
		return false;
	}
	
	var email = Trim(Form.elements["inquiry[email]"].value);
	
	if (email > 0 && !IsEmail(email))
	{
		alert("Your e-mail address is not in proper format. Please double-check and try again.");
		Form.elements["inquiry[email]"].focus();
		return false;
	}
	
	return true;
}

function VerifyResumeUpload(Form)
{
	var rxEmail = new RegExp("^\\s*[^\\s@]+?@([\\w\\-]+.)+[a-z]{2,}\\s*$", "i");
	var rxPath = new RegExp("^(c:)?((\\\\|/)[^\\\\/]+)+$", "i");
	var i;
	var hasJob = false;
	
	for (i = 0; i < Form.elements.length; i++)
	{
		if (Form.elements[i].name == "email")
		{
			if (Form.elements[i].value.length > 0 && Form.elements[i].value.search(rxEmail) == -1)
			{
				alert("E-mail is not in correct format.");
				Form.elements[i].focus();
				return false;
			}
		}
		else if (Form.elements[i].name == "resume")
		{
			if (Form.elements[i].value.search(rxPath) == -1)
			{
				alert("Resume file does not point to a valid path.");
				Form.elements[i].focus();
				return false;
			}
		}
		else if (Form.elements[i].name == "jobs[]")
		{
			if (Form.elements[i].type == "hidden" || (Form.elements[i].type == "checkbox" && Form.elements[i].checked))
				hasJob = true;
		}
		else if (Form.elements[i].type == "text")
		{
			if (Form.elements[i].value.length == 0)
			{
				alert("Required field \"" + Form.elements[i].id + "\" is missing.");
				Form.elements[i].focus();
				return false;
			}
		}
		else if (Form.elements[i].type == "checkbox" && Form.elements[i].name == "i_certify" && !Form.elements[i].checked)
		{
			alert("You have not checked the certification checkbox. You must agree to these terms in order to submit your resume. Please do so now.");
			Form.elements[i].focus();
			return false;
		}
	}
	
	if (!hasJob)
	{
		alert("You have not selected a career choice. Please do so now.");
		return false;
	}
	
	return true;
}
