function isAlpha( val )
{
    // True if val is a single alphabetic character.
    var re = /^([a-zA-Z])$/;
    return (re.test(val));
}

function isValidEmail( val ){

     var re = /^[\w-']+(\.[\w-']+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
     if (!val.match(re)) {
         return false;
     } else {
         return true;
     }
}

function isDateUkValid( val ) {
    var re = /^\d{2}-\d{2}-\d{4}$/;
     if (!val.match(re)) {
         return false;
     } else {
         return true;
     }
}

function validateUserRegForm() {

    var message         = '';

    var user_name       = document.getElementById('user_name').value;
    var user_nickname   = document.getElementById('user_nickname').value;
    var user_email      = document.getElementById('user_email').value; 
    var user_email_confirm = document.getElementById('user_email_confirm').value; 
    var user_ageband    = document.getElementById('user_ageband').selectedIndex; 
    var user_gender     = document.getElementById('user_gender').selectedIndex; 
    var user_postcode   = document.getElementById('user_postcode').value;
    var user_educ       = document.getElementById('user_educ').selectedIndex; 
    var user_employ     = document.getElementById('user_employ').selectedIndex; 
    var user_country    = document.getElementById('user_country').selectedIndex; 
    var user_source     = document.getElementById('user_source').selectedIndex; 
    var user_owncomp    = document.getElementById('user_owncomp').selectedIndex; 
    var user_medication = document.getElementById('user_medication').selectedIndex;     
    var user_interest    = document.getElementById('user_interest').selectedIndex; 
    var recaptcha_response_field = document.getElementById('captcha_value').value;
    
    if ( recaptcha_response_field.length == 0 ) {
        message += 'Please ensure you enter the correct CAPTCHA verification text before submitting.\n';
    }
    
    if ( user_nickname.length < 6 || user_name.length > 40 ) {
        message += '- Please enter a public name, eg. "Joe Bloggs", a minimum of 6 characters, maximum of 40 characters. This name will be used on any public facing section, for example, forums.\n';
    }

    if ( !user_name.match(/^[A-Za-z]+\s+[A-Za-z'\s]+$/) || user_name.length > 40 ) {
        message += '- Please enter your full name, eg. "Joe Bloggs", alphabet characters only, maximum 40 characters.\n';
    }

    if ( !isValidEmail( user_email ) || ( user_email_confirm != user_email ) ) {
        message += '- Please enter and confirm a valid email address.\n';
    }
    
    if ( user_ageband == 0 ) {
        message += '- Please specify your age range from the age bands provided.\n';
    }

    if ( user_gender == 0 ) {
        message += '- Please specify whether you are Male or Female.\n';
    }

    if ( user_postcode.length < 3 || user_postcode.length > 4 ) {
        message += '- Please enter the first part of your postcode eg. LS1.\n';    
    }
    
    if ( user_educ == 0 ) {
        message += '- Please specify your level of education.\n';
    }
    
    if ( user_employ == 0 ) {
        message += '- Please specify your current employment status.\n';
    }
    
    if ( user_country == 0 ) {
        message += '- Please specify the country you live in from the list supplied.\n';
    }

    if ( user_interest == 0 ) {
        message += '- Please specify your main reason for your interest in our website.\n';
    }

    if ( user_source == 0 ) {
        message += '- Please specify how you heard out about our website.\n';
    }

    if ( user_owncomp == 0 ) {
        message += '- Please specify whether you are using your own computer.\n';
    }

    if ( user_medication == 0 ) {
        message += '- Please specify whether you are currently taking any prescribed medication.\n';
    }

    if ( message.length > 0 ) {
        message = 'The following errors have occurred, please fix before submitting:\n\n' + message;
        alert( message );
        return false;    
    } else {
        return true;    
    }    
}
    
function validateRegPract() {

    var message         = '';

    var user_name       = document.getElementById('user_name').value;
    var user_nickname   = document.getElementById('user_nickname').value;
    var user_email      = document.getElementById('user_email').value; 
    var user_ageband    = document.getElementById('user_ageband').selectedIndex; 
    var user_employ     = document.getElementById('user_employ').selectedIndex; 
    var user_country    = document.getElementById('user_country').selectedIndex; 
    var user_source     = document.getElementById('user_source').selectedIndex; 
    var user_selfhelp   = document.getElementById('user_selfhelp').selectedIndex; 
    
    var user_timequal   = document.getElementById('user_timequal').selectedIndex; 
    var user_sector     = document.getElementById('user_sector').selectedIndex; 
    var user_experience = document.getElementById('user_experience').selectedIndex; 
    var user_trained    = document.getElementById('user_trained').selectedIndex; 
    var user_supporting = document.getElementById('user_supporting').selectedIndex; 
      
    if ( user_nickname.length < 6 || user_name.length > 40 ) {
        message += '- Please enter a public name, eg. "Joe Bloggs", a minimum of 6 characters, maximum of 40 characters. This name will be used on any public facing section, for example, forums.\n';
    }

    if ( !user_name.match(/^[A-Za-z]+\s+[A-Za-z']+$/) ) {
        message += '- Please enter your full name, eg. "Joe Bloggs", alphabet characters only.\n';
    }

    if ( !isValidEmail( user_email ) ) {
        message += '- Please enter a valid email address.\n';
    }

    if ( user_ageband == 0 ) {
        message += '- Please specify your age range from the age bands provided.\n';
    }
    
    if ( user_employ == 0 ) {
        message += '- Please specify your current employment status.\n';
    }
    
    if ( user_country == 0 ) {
        message += '- Please specify the country you live in from the list supplied.\n';
    }

    if ( user_source == 0 ) {
        message += '- Please specify how you heard out about our website.\n';
    }

    if ( user_selfhelp == 0 ) {
        message += '- Please specify whether you are currently using any self-help techniques/materials.\n';
    }
    
    if ( user_timequal == 0 ) {
        message += 'Please specify the time you have been qualified.';
    }

    if ( user_sector == 0 ) {
        message += 'Please specify the sector you usually work in.';
    }

    if ( user_experience == 0 ) {
        message += 'Please specify your level of experience.';
    }

    if ( user_trained == 0 ) {
        message += 'Please specify whether you have been trained on Five Materials of the Living Life website.';
    }

    if ( user_supporting == 0 ) {
        message += 'Please specify how you expect to be supporting clients who use this website.';
    }

    if ( message.length > 0 ) {
        message = 'The following errors have occurred, please fix before submitting:\n\n' + message;
        alert( message );
        return false;    
    } else {
        return true;    
    }    

}

// on forms with 'None' as option in checkboxes, toggles the rest if None is chosen
function toggleCBX( nodelist, node ) {

    // nodelist: handle to set of checkboxes
    // node: handle to the checkbox that activated this function
    if ( node.checked == true ) { // node should be the 'None' box

        for ( i = 0; i < nodelist.length; i++ ) {
            if ( nodelist[i].value != 'None' ) {
                nodelist[i].checked = false;
            }
        }
    
    }
    
}


