/*=====================================================================
 Filename: spc_form_utils.js -- Written by ndelmedico@waca.com
 Created: 5/17/2004 -- Last Updated: 5/20/2004
 This file contains client-side functions for Sprint PCM forms
======================================================================*/
var sAlpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_ ";
var sNumeric = "1234567890";

/*=====================================================================
Description: Validates Phone Number
======================================================================*/
function isPhone(sValue) {
    var sTest = removeChars(sValue, '[^0-9]');
    var oRegExp  = /\d{10}/;
    return (oRegExp.test(sTest) && sTest.length == 10);
}

/*=====================================================================
Description: Removes specified pattern from a string
======================================================================*/
function removeChars(sValue, sPattern) {
    var oRegExp =  new RegExp(sPattern, 'gi');
    return sValue.replace(oRegExp, '');
}

/*=====================================================================
Description: Trims leading and trailing spaces
======================================================================*/
function Trim(sValue) {
    var oRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
    if (oRegExp.test(sValue)) {sValue = sValue.replace(oRegExp, '$2');}
    return sValue;
}

/*=====================================================================
Description: Checks if a string contains any invalid chars
Parameters: Value to check (sVal), String of valid chars (sValidChars)
Returns: True if valid / False if not
======================================================================*/
function isValidChar(sVal, sValidChars) {
    for (var i = 0; i < sVal.length; i++) {
        if (sValidChars.indexOf(sVal.charAt(i)) == -1) {return false;}
    }
    return true;
}

/*=====================================================================
Description: Validates an email address against most common rules.
======================================================================*/
function isEmail(sEmail) {
    var oRegExp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    return oRegExp.test(sEmail);
}

/*=====================================================================
Description: Displays error message in alert
Parameters: A string of errors (sErrMsg) to be displayed
======================================================================*/
function displayError(sErrMsg) {
    sErrMsg = "        The following errors were found on the form:\n______________________________________________\n" +
    sErrMsg + "\n______________________________________________\n\n        Please correct the errors and submit again!";
    alert(sErrMsg);
}