/*----------------------------------------------------------
 * Globals
 *--------------------------------------------------------*/


/*----------------------------------------------------------
 * Namespace: COMMON
 *--------------------------------------------------------*/
var COMMON = function() {

    return {
    
        /*----------------------------------------------------------
         * Function     : selectAll
         * Description  : Used when a user clicks on an input text box
         *                and selects all text within that text box
         *                e.g. used on Newsletter sign up when user 
         *                clicks an entry within it
         * Notes        : 
         *
         * Inputs       : id (id of text box)
         *
         * Outputs      : None
         *
         * Returns      : None
         *
         *---------------------------------------------------------*/
        selectAll : function(id) {
            document.getElementById(id).focus();
            document.getElementById(id).select();
        },
        
        
        /*----------------------------------------------------------
         * Function     : toggle
         * Description  : Used when a user clicks on a read more link
         *                to display more text (hidden text)

         * Notes        : 
         *
         * Inputs       : None
         *
         * Outputs      : None
         *
         * Returns      : None
         *
         *---------------------------------------------------------*/
        toggle : function() {
        
            var ele = document.getElementById("toggleText");
            var text = document.getElementById("displayText");
            
            if(ele.style.display == "block") {
                ele.style.display = "none";
                text.innerHTML = "Read More >>";
            }
            else {
                ele.style.display = "block";
                text.innerHTML = "hide";
            }
        },        
        
        /*----------------------------------------------------------
         * Function     : integerValidator
         * Description  : Checking to see if only numbers has been
         *                entered
         * Notes        : 
         *
         * Inputs       : 
         *
         * Outputs      : None
         *
         * Returns      : None
         *
         *---------------------------------------------------------*/
        integerValidator : function(elem){
	        var numericExpression = /^[0-9.]+$/;

            if(elem.value.match(numericExpression)){
		        return true;
	        }
            else{
                alert('Please enter numbers only');
                elem.focus();
                return false;
	        }
        },
        
        /*----------------------------------------------------------
         * Function     : emailValidator
         * Description  : Validates  an email address
         * Notes        : 
         *
         * Inputs       : 
         *
         * Outputs      : None
         *
         * Returns      : None
         *
         *---------------------------------------------------------*/
        emailValidator : function(elem) {

            var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
            
            if(elem.value.match(emailExp)) {
                return true;
            }
            else {
                elem.focus();
                return false;
            }
        },        
        
        /*----------------------------------------------------------
         * Function     : checkFields
         * Description  : Check each field in the form to see if it
         *                has data in it. If it doesn't, return focus 
         *                to that field so user can enter data.
         * Notes        : 
         *
         * Inputs       : 
         *
         * Outputs      : None
         *
         * Returns      : None
         *
         *---------------------------------------------------------*/
        checkFields : function() {
        
            /*isFrench = document.getElementById('is_french').value;
            if (isFrench) {
                First_Name_Error = "Veuillez entrer le prénom";
                Last_Name_Error = "Veuillez entrer le nom de famille";
                Address_Error = "Veuillez entrer l\'adresse";
                City_Error = "Veuillez entrer le nom de la ville";
                Province_Error = "Veuillez entrer la province";
                Postal_Code_Error = "Veuillez entrer le code postal";
                Country_Error = "Veuillez sélectionner le pays";
                Phone_Error = "Veuillez entrer un numéro de téléphone valide";
                Email_Error = "Veuillez entrer une adresse électronique valide";
            }
            else {
                First_Name_Error = "Please enter the client\'s first name";
                Last_Name_Error = "Please enter the client\'s last name";
                Address_Error = "Please enter the address";
                City_Error = "Please enter the city name";
                Province_Error = "Please enter the province name";
                Postal_Code_Error = "Please enter the postal code";
                Country_Error = "Please select the country";
                Phone_Error = "Please enter a valid phone number";
                Email_Error = "Please enter a valid email address";            
            }        

            if (document.getElementById('first_name').value=="" ) {
                alert(First_Name_Error);
                document.getElementById('first_name').focus();
                return false;
            }
            if (document.getElementById('last_name').value=="" ) {
                alert(Last_Name_Error);
                document.getElementById('last_name').focus();
                return false;
            }            
            if (document.getElementById('address').value=="" ) {
                alert(Address_Error);
                document.getElementById('address').focus();
                return false;
            }
            if (document.getElementById('city').value=="" ) {
                alert(City_Error);
                document.getElementById('city').focus();
                return false;
            }
            if (document.getElementById('province').value=="" ) {
                alert(Province_Error);
                document.getElementById('province').focus();
                return false;
            }
            if (document.getElementById('postcode').value=="" ) {
                alert(Postal_Code_Error);
                document.getElementById('postcode').focus();
                return false;
            }
            if (document.getElementById('country').value=="" ) {
                alert(Country_Error);
                document.getElementById('country').focus();
                return false;
            }                         
            if (document.getElementById('phone_1').value=="" ) {
                alert(Phone_Error);
                document.getElementById('phone_1').focus();
                return false;
            }
            if (!(VALIDATE.integerValidator(document.getElementById('phone_1')))){
                return false;
            }                    
            if (document.getElementById('phone_2').value=="" ) {
                alert(Phone_Error);
                document.getElementById('phone_2').focus();
                return false;
            }
            if (!(VALIDATE.integerValidator(document.getElementById('phone_2')))){
                return false;
            }                              
            if (document.getElementById('phone_3').value=="" ) {
                alert(Phone_Error);
                document.getElementById('phone_3').focus();
                return false;
            }
            if (!(VALIDATE.integerValidator(document.getElementById('phone_3')))){
                return false;
            }             
            if (!(document.getElementById('mobile_1').value=="")){
                if (!(VALIDATE.integerValidator(document.getElementById('mobile_1')))){
                return false;
                }    
            }                           
            if (!(document.getElementById('mobile_2').value=="")){
                if (!(VALIDATE.integerValidator(document.getElementById('mobile_2')))){
                return false;
                }    
            }     
            if (!(document.getElementById('mobile_3').value=="")){
                if (!(VALIDATE.integerValidator(document.getElementById('mobile_3')))){
                return false;
                }    
            }                 
            if (!(document.getElementById('email').value=="")){
                if (!(VALIDATE.emailValidator(document.getElementById('email')))){
                    alert(Email_Error);
                    document.getElementById('email').focus();
                    return false;
                }
            }  */

            return true;
        },


        /*----------------------------------------------------------
         * Function     : checkForm
         * Description  : If all the fields in the form are valid
         *                then this returns true.
         * Notes        : 
         *
         * Inputs       : 
         *
         * Outputs      : None
         *
         * Returns      : None
         *
         *---------------------------------------------------------*/
        checkForm : function (){

            if (COMMON.checkFields()){
                return true;
            }
            else {
                return false;
            }
        }
        
    };
}();        
