function validationNewsletter()
{
    if(valid())
    {        
        document.frmSubscribe.submit();        
    }
}
function validationBusiness()
{
    if(validSeeYourSelf())
    {       
        document.frmSeeYourSelf.submit();
    }
}
function validationConsumer()
{
    if(validCadioStory())
    {      
        document.frmStory.submit();
    }
}
function valid()
{
    var name = document.frmSubscribe.userName;
    var email =  document.frmSubscribe.email;    
   
    if(!validateEmpty(name,"Please enter Name.\n"))
    {
        return false;
    }
    else if(!validateEmail(email))
    {
        return false;
    }
    else if(!validateRadio("Please select region.\n"))
    {
        return false;
    }
    else
    {
        return true;
    }

}
function validSeeYourSelf()
{
    var name = document.frmSeeYourSelf.userName;
    var email =  document.frmSeeYourSelf.email;
    var company =  document.frmSeeYourSelf.company;
    var position =  document.frmSeeYourSelf.position;
    
    if(!validateEmail(email))
    {
        return false;
    }
    else if(!validateEmpty(name,"Please enter Name.\n"))
    {
        return false;
    }
    else if(!validateEmpty(company,"Please enter Company name.\n"))
    {
        return false;
    }
    else if(!validateEmpty(position,"Please enter Position.\n"))
    {
        return false;
    }
    else
    {
        return true;
    }

}
function validCadioStory()
{
    var name = document.frmStory.userName;
    var email =  document.frmStory.email;
    var carrier =  document.frmStory.carrier;
    var handset =  document.frmStory.handset;    
    var geogarphic =  document.frmStory.geogarphic;
    var mobile =  document.frmStory.mobile;
    
    if(!validateEmail(email))
    {
        return false;
    }
    else if(!validateEmpty(name,"Please enter Name.\n"))
    {
        return false;
    }
    else if(!validateEmpty(carrier,"Please enter mobile carrier.\n"))
    {
        return false;
    }
    else if(!validateEmpty(handset,"Please enter mobile device make and model.\n"))
    {
        return false;
    }
    else if(!validateEmptyRadio("Please select your age.\n"))
    {
        return false;
    }
    else if(!validateEmpty(geogarphic,"Please enter geographic area.\n"))
    {
        return false;
    }
    else if(mobile.value.length >0)
    {
        if(!checkUSPhone (mobile,false))
        {
            return false;
        }
        else
        {
            return true;
        }
    }
    else
    {
        return true;
    }
}


function validateEmpty(name,error)
{    
    if (name.value.length == 0) {
        name.style.background = 'Yellow';        
        alert(error);
        return false;
    } else {
        name.style.background = 'White';
        return true;
    }
   
}
function validateEmptyRadio(error)
{  
    if ( ( document.frmStory.age[0].checked == false )
        && ( document.frmStory.age[1].checked == false ) )
        {
        alert (error);
        return false;
    }
    else
    {
        return true;
    }
}
function validateRadio(error)
{
    if ( ( document.frmSubscribe.region[0].checked == false )
        && ( document.frmSubscribe.region[1].checked == false ) )
        {
        alert (error);
        return false;
    }
    else
    {
        return true;
    }
}
function trim(space)
{
    return space.replace(/^\s+|\s+$/, '');
}

function validateEmail(email) {
    var error="";
    var tfld = trim(email.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;

    if (email.value == "") {
        email.style.background = 'Yellow';
        error = "Please enter email address.\n";
        alert(error);
        return false;
    } else if (!emailFilter.test(tfld)) {              //test email for illegal characters
        email.style.background = 'Yellow';
        error = "Please enter a valid email address.\n";
        alert(error);
        return false;
    } else if (email.value.match(illegalChars)) {
        email.style.background = 'Yellow';
        error = "Please enter a valid email address.\n";
        alert(error);
        return false;
    } else {
        email.style.background = 'White';
        return true;
    }    
}
var phoneNumberDelimiters = "()- .";
var defaultEmptyOK=false;
var digitsInUSPhoneNumber=10;
var iUSPhone = "Please enter a valid US mobile number.";
var pUSPhone = "Please enter a valid US mobile number.";
var pEntryPrompt = "Please enter a valid US mobile number";
var reInteger = /^\d+$/;

function isInteger (s)

{
    var i;

    if (isEmpty(s))
        if (isInteger.arguments.length == 1) return defaultEmptyOK;
        else return (isInteger.arguments[1] == true);

    return reInteger.test(s)
}


function isEmpty(s)
{
    return ((s == null) || (s.length == 0))
}

function promptEntry (s)
{
    window.status = pEntryPrompt + s
}

function warnInvalid (theField, s)
{
    theField.style.background = 'Yellow';
    alert(s)
    return false;
}
// Removes all characters which appear in string bag from string s.

function stripCharsInBag (s, bag)
{
    var i;
    var returnString = "";

    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.

    for (i = 0; i < s.length; i++)
    {
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }

    return returnString;
}

function isUSPhoneNumber (s)
{
    if (isEmpty(s))
        if (isUSPhoneNumber.arguments.length == 1) return defaultEmptyOK;
        else return (isUSPhoneNumber.arguments[1] == true);
    return (isInteger(s) && s.length == digitsInUSPhoneNumber)
}
function checkUSPhone (theField,emptyOK)
{
    if (isEmpty(theField.value)) return warnInvalid (theField, iUSPhone);
    else
    {
        var normalizedPhone = stripCharsInBag(theField.value, phoneNumberDelimiters)
        if(normalizedPhone.charAt(0)==1 || normalizedPhone.charAt(0)==0) return warnInvalid (theField, iUSPhone);
        if (!isUSPhoneNumber(normalizedPhone, false))
            return warnInvalid (theField, iUSPhone);
        
        else
        {  // if you don't want to reformat as (123) 456-789, comment next line out
            theField.value = normalizedPhone;
            return true;
        }
    }
}