
// CREATED BY DAVID SPERA
// WRITTEN FOR MY TRUE LOVE STEVEN.
// All rights reserved. June2003

var vWhite = " \t\n\r";
var vZipLength = 5;

var vEntryPrompt = "Please enter ";
var vMissingRadio = "Please select ";
var vMissingSuffix = "."; //".\nAll information must be entered to process your request.";

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 vPhoneA = "your Telephone Area Code";
var vPhoneP = "your Telephone Prefix";
var vPhoneS = "your Telephone Suffix";
var vEmail = "your Email Address";
var vccnumber = "your Credit Card Information";
var vccsecurity = "your Credit Card Security Number";
var vexpdate = "your Exp Date";
var vfillin = "your Answer to question 5";
var vhomephone = "your Home Phone Number or Cell Phone or Another Number to Reach you";
var voccupation = "your Occupation";
var vemployer = "your Employer or School";
var vbest = "the Best time to Reach you";
var vage = "your current age";
var vName = "your Name";
var vquestion = "the question or comment you would like to ask the Wayne First Aid Squad";

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 516 803 2300)." + 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 fStripChars (rString, chars)
{   
	var t;
    var tNewString = "";
    for (t = 0; t < rString.length; t++)
    {   
        var tChar = rString.charAt(t);
        if (chars.indexOf(tChar) == -1) tNewString += tChar;
    }
    return (tNewString);
}

function fLeaveChars (rString, chars)
{
	var t;
    var tNewString = "";
    for (t = 0; t < rString.length; t++)
    {   
        var tChar = rString.charAt(t);
        if (chars.indexOf(tChar) != -1) tNewString += tChar;
    }
    return (tNewString);
}

function fStripWhite (rString)
{   
	return fStripChars (rString, vWhite);
}

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 (rFieldA, rFieldP, rFieldS)
{
	if (fRepeatChars(rFieldA.value) &&
		fRepeatChars(rFieldP.value) &&
		fRepeatChars(rFieldS.value))
	{
		rFieldA.value = "";
		rFieldP.value = "";
		rFieldS.value = "";
		return (fAlertInvalid (rFieldA, viPhone));
	}
    else
		return (true);
}

function fValidEmail (rField)
{
	rField.value = fStripWhiteEnds(rField.value);
	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();
	}
}


