/* 
CommunityHealthStudies.org
California Department of Public Health
Environmental Health Investigations Branch
Designed and Created by LaMa Media LLC (LaMaMedia.com)
Copyright (c) 2008 - All rights reserved

*/

var vAt = '@';
var vCdn = 'cdph.ca.gov';
var vCem = (vAt + vCdn);
var vLem = ('ehib' + vAt + 'lamaweb.com');

// CONTACT
var vRecipientsC = ('marilyn.underwood' + vCem + ',' + vLem);
var vSubjectPrefixC = "CHS CONTACT: ";
var vRedirectC = "content/top/contactsent.html";

function fValidateContact(rForm)
{
	if (
		fValidString(rForm.realname, vName) &&
		fValidEmail(rForm.email) &&
		fValidString(rForm.Subject, "the Subject of your Message") &&
		fValidString(rForm.Message, vMessage)
	) {
		fSetContactMeInputs(rForm);
		return(true);
	} else {
		return(false);
	}
}

function fSetContactMeInputs(rForm)
{
	rForm.recipient.value = vRecipientsC;
	rForm.subject.value = (vSubjectPrefixC + rForm.Subject.value);
	rForm.redirect.value = (vURL + vRedirectC);
	rForm.Name.value = rForm.realname.value;
	rForm.Email.value = rForm.email.value;
}

// VALIDATION

var vWhite = " \t\n\r";
var vZipLength = 5;

var vEntryPrompt = "Please enter ";
var vMissingRadio = "Please select ";
var vMissingSuffix = ".";

var vName = "your Name";
var vLastName = "your Last Name";
var vFirstName = "your First Name";
var vAddress = "your Address";
var vCity = "your City";
var vState = "your 2 Letter State Abbreviation";
var vZip = "your 5 Digit Zip Code";
var vPhone = "your Telephone Number";
var vPhoneA = "your Telephone Area Code";
var vPhoneP = "your Telephone Prefix";
var vPhoneS = "your Telephone Suffix";
var vPhone = "your Telephone Number";
var vEmail = "your E-mail Address";
var vMessage = "your Message";
var vComments = "your Comments";

var viPlease = "\nPlease enter it now.";
var viState = "Your state must be a valid two letter abbreviation." + viPlease;
var viZip = "Your Zip Code must be a 5 digit number." + viPlease;
var viPhone = "Your Phone Number must be valid (like 555-1234)." + viPlease;
var viEmail = "Your E-mail Address must be valid (like name@yourisp.com)." + viPlease;

var vUSStateCodes = "AL|AK|AS|AZ|AR|CA|CO|CT|DE|DC|FM|FL|GA|GU|HI|ID|IL|IN|IA|KS|KY|LA|ME|MH|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|MP|OH|OK|OR|PW|PA|PR|RI|SC|SD|TN|TX|UT|VT|VI|VA|WA|WV|WI|WY|AE|AA|AE|AE|AP";


function fEmpty (rString)
{   
	return ((rString == null) || (rString.length == 0));
}

function fWhite (rString)
{   
	var t;
    if (fEmpty(rString)) return (true);
    for (t = 0; t < rString.length; t++)
    {   
        var tChar = rString.charAt(t);
        if (vWhite.indexOf(tChar) == -1) return (false);
    }
    return (true);
}

function fLetter (rChar)
{   
	return (((rChar >= "a") && (rChar <= "z")) || ((rChar >= "A") && (rChar <= "Z")));
}

function fDigit (rChar)
{   
	return ((rChar >= "0") && (rChar <= "9"));
}

function fLetterOrDigit (rChar)
{   
	return (fLetter(rChar) || fDigit(rChar));
}

function fInteger (rString)
{   
    if (fWhite(rString)) return (false);
	var t;
    for (t = 0; t < rString.length; t++)
    {   
        var tChar = rString.charAt(t);
        if (!fDigit(tChar)) return (false);
    }
    return (true);
}

function fAlphabetic (rString)
{   
    if (fWhite(rString)) return (false);
	var t;
    for (t = 0; t < rString.length; t++)
    {   
        var tChar = rString.charAt(t);
        if (!fLetter(tChar))
        return (false);
    }
    return (true);
}

function fAlphanumeric (rString)
{
    if (fWhite(rString)) return (false);
	var t;
    for (t = 0; t < rString.length; t++)
    {   
        var tChar = rString.charAt(t);
        if (!fLetterOrDigit(tChar))
        return (false);
    }
    return (true);
}

function fStripWhite(rString) {
	var tPos, tLen, tStrL, tStrR;
	while ((tPos = rString.indexOf(" ")) >= 0) {
		tLen = rString.length;
		tStrL = rString.substring(0, tPos);
		tStrR = rString.substring(tPos + 1, tLen);
		rString = (tStrL + tStrR);
	}
	return (rString);
}

function fStripWhiteLeading (rString)
{   
	var t = 0;
	while ((t < rString.length) && (vWhite.indexOf(rString.charAt(t)) != -1))
       t++;
    return (rString.substring(t, rString.length));
}

function fStripWhiteTrailing (rString)
{   
	var t = rString.length;
	while ((t > 0) && (vWhite.indexOf(rString.charAt(t)) != -1))
       t--;
    return (rString.substring (0, t+1));
}

function fStripWhiteEnds (rString)
{   
	var tNewString = fStripWhiteLeading(rString);
	return (fStripWhiteTrailing(tNewString));
}

function fRepeatChars (rString)
{
    if (fWhite(rString)) return (false);
	var t;
	var tFirstChar = rString.charAt(0);
    for (t = 1; t < rString.length; t++)
    {   
        var tChar = rString.charAt(t);
        if (tChar != tFirstChar)
        return (false);
    }
    return (true);
}

function fZipCode (rString)
{
	if (fWhite(rString)) return (false);
	return (fInteger(rString) && (rString.length == vZipLength));
}

function fStateCode(rString)
{
	if (fWhite(rString)) return (false);
	return (vUSStateCodes.indexOf(rString) != -1);
}

function fEmail (rString)
{
    if (fWhite(rString)) return (false);
    var t = 1;
    var sLength = rString.length;
    while ((t < sLength) && (rString.charAt(t) != "@")) t++
    if ((t >= sLength) || (rString.charAt(t) != "@")) return (false);
    else t += 2;
    while ((t < sLength) && (rString.charAt(t) != ".")) t++
    if ((t >= sLength - 1) || (rString.charAt(t) != ".")) return (false);
    else return (true);
}

function fPrompt (rString)
{   
	window.status = rString;
}

function fPromptEntry (rString)
{   
	fPrompt(vEntryPrompt + rString + ".");
}

function fAlertEmpty (rField, rAlert)
{   
	rField.focus();
    alert(vEntryPrompt + rAlert + vMissingSuffix);
    return (false);
}

function fAlertInvalid (rField, rAlert)
{   
	rField.focus();
    rField.select();
    alert(rAlert);
    return (false);
}

function fValidString (rField, rAlert)
{
	rField.value = fStripWhiteEnds(rField.value);
    if (fWhite(rField.value)) 
		return fAlertEmpty (rField, rAlert);
    else return (true);
}

function fValidNumber (rField, rDigits, rAlert)
{
	rField.value = fStripWhiteEnds(rField.value);
	if (fInteger(rField.value) && (rField.value.length == rDigits))
		return (true);
	else
	{
		var tAlert = ("Your " + rAlert + " must be a " + rDigits + " digit number." + viPlease);
		return (fAlertInvalid(rField, tAlert));
	}
}

function fValidRadio (rField, rAlert)
{   
	var t;
    for (t = 0; t < rField.length; t++)
    {   
        if (rField[t].checked)
        return (true);
    }
    alert(vMissingRadio + rAlert + vMissingSuffix);
    return (false);
}

function fValidState (rField)
{   
	rField.value = fStripWhiteEnds(rField.value.toUpperCase());
	if (!fStateCode(rField.value, false)) 
		return (fAlertInvalid (rField, viState));
	else
		return (true);
}

function fValidZip (rField)
{
	rField.value = fStripWhiteEnds(rField.value);
	if (!fZipCode(rField.value, false)) 
		return (fAlertInvalid (rField, viZip));
	else
		return (true);
}

function fValidPhone (rField)
{
	var tPrefix, tDash, tSuffix;
	var tPhoneNum = fStripWhiteEnds(rField.value);
	tPrefix = tPhoneNum.substring(0, 3);
	if (tPhoneNum.length == 7) {
		tPhoneNum = (tPrefix + "-" + tPhoneNum.substring(3, 7));
	}
	tDash = tPhoneNum.substring(3, 4);
	tSuffix = tPhoneNum.substring(4, 8);
	if ((fInteger(tPrefix) && (tPrefix.length == 3)) &&
		(tDash == "-") &&
		(fInteger(tSuffix) && (tSuffix.length == 4))) {
		rField.value = tPhoneNum;
		return (true);
    } else {
		rField.value = "";
		return (fAlertInvalid (rField, viPhone));
	}
}

function fValidEmail (rField)
{
	rField.value = fStripWhite(rField.value);
	if (!fEmail(rField.value)) 
		return (fAlertInvalid (rField, viEmail));
    else
		return (true);
}

function fValidEmailLower (rField)
{
	rField.value = fStripWhite(rField.value.toLowerCase());
	if (!fEmail(rField.value)) 
		return (fAlertInvalid (rField, viEmail));
    else
		return (true);
}

function fTabPhone(rWhich, rForm)
{
	if (rWhich == "A")
	{
		if (rForm.PhoneA.value.length == 3) 
			rForm.PhoneP.focus();
	}
	else if (rWhich == "P")
	{
		if (rForm.PhoneP.value.length == 3)
			rForm.PhoneS.focus();
	}
}

