String.prototype.Trim = function () {
    var str = this.replace( /(^\s*)|(\s*$)/g, '' );
    return str;
}


function ValidateContactUs( form )
{
    var submit = true;
    var elem;
    var val;

    elem = form.name;
    if( ! CheckMandatory( elem, "Please enter your name." ) )
        return false;

    elem = form.email;
    if( ! CheckMandatory( elem, "Plese enter your e-mail address." ) )
        return false;

    elem = form.commentType;
    if( elem ) {
        switch ( elem.selectedIndex ) {
            case 1:
                var ph1 = form.phone1;
                var ph2 = form.phone2;
                var ph3 = form.phone3;

                if( ! ph1 || !ph2 || !ph3 )
                    return false;

                val = ph1.value.Trim();
                if( (val == "") || (val.length < 3) ) {
                    ph1.focus();
                    alert( "Please enter your complete phone number." );
                    return false;
                }
                else
                    ph1.value = val;

                val = ph2.value.Trim();
                if( (val == "") || (val.length < 3) ) {
                    ph2.focus();
                    alert( "Please enter your complete phone number." );
                    return false;
                }
                else
                    ph2.value = val;

                val = ph3.value.Trim();
                if( (val == "") || (val.length < 4) ) {
                    ph3.focus();
                    alert( "Please enter your complete phone number." );
                    return false;
                }
                else
                    ph3.value = val;


                break;

            case 2:
            case 3:
            case 4:
                elem = form.message;
                
                if( elem ) {
                    val = elem.value.Trim();
                    if( val == "" ) {
                        elem.focus();
                        alert( "Please enter a comment or message." );
                        return false;
                    }
                    else
                        elem.value = val;
                    
                }
                else
                    return false;
                    
                break;

            default:
                elem.focus();
                alert( "Please select a Question or Comment Type." );
                return false;
        }
    }
    else
        return false;

    elem = form.message;
    if( (form.commentType.selectedIndex > 1) && ! ValidateTextArea( elem, "Please enter a comment or message." ) )
        return false;

    return submit;

}

function CheckMandatory( elem, errorText )
{
    var ret = true;
    var val;
    
    if( elem ) {
        val = elem.value.Trim();
        
        if( val == "" ) {
            elem.focus();
            ret = false;
            alert( errorText );
        }
        else
            elem.value = val;
    }
    else
        ret = false;
    
    return ret;    
}

function ValidateJobApp( form )
{
    var submit = true;
    var elem;
    var val;
    
    elem = form.txtFirstName;
    if( ! CheckMandatory( elem, "Please enter your first name." ) )
        return false;
    
    elem = form.txtLastName;
    if( ! CheckMandatory( elem, "Please enter your last name." ) )
        return false;
    
    elem = form.txtEmail;
    if( ! CheckMandatory( elem, "Please enter your e-mail address." ) )
        return false;
        
    elem = form.txtPhoneNum;
    if( ! CheckMandatory( elem, "Please enter your phone number." ) )
        return false;
        
    elem = form.txtEduLvl;
    if( elem ) {
        if( elem.selectedIndex == 0 ) {
            elem.focus();
            alert( "Please choose your education level." );
            return false;
        }
    }
    else
        return false;

    elem = form.txtQualify;
    if( ! ValidateTextArea( elem, "Please enter your qualifications." ) )
        return false;
        
    elem = form.txtExperience;
    if( ! ValidateTextArea( elem, "Please summarize your experience." ) )
        return false;
        
    return submit;
}

function ValidateTextArea( elem, errorMessage )
{
    var ret = true;
    var val;
    
    if( elem ) {
        val = elem.value.Trim();

        if( val == "" ) {
            elem.focus();
            alert( errorMessage );
            ret = false;
        }
        else if( val.length > 1024 )
            elem.value = str.substr( 0, 1023 );
        else
            val = elem.value.Trim();
    }
    else
        ret = false;
        
    return ret;
}

window.onload = 
    function()
    {
        var ary = document.getElementsByTagName( "TEXTAREA" );
        if( ary && (ary.length > 0) )
        {
            for( var i = 0; i < ary.length; i++ ) {
                var ta = ary[i];
                
                ta.onkeyup = 
                    function()
                    {
                        var maxLength = 1024;
                        if( this.value.length > maxLength ) {
                            alert( "Please enter a message that is less than " + maxLength + " characters." );
                            this.value = this.value.substring( 0, maxLength );
                        }
                    };
            }
        }
    };
