    
// 

var Register = {
    
    emailRegex: new RegExp( 
        '^[a-z0-9\_][[a-z0-9\.\+\_\-]*[@](([a-z0-9]([a-z0-9]|[-])*)[.])+([a-z]{2}|'
        + 'aero|biz|com|coop|edu|info|int|mil|museum|name|net|org|pro)$', "i"),
        
    postcodeRegex: new RegExp(
        'GIR 0AA|[A-PR-UWYZ]([0-9]{1,2}|([A-HK-Y][0-9]|[A-HK-Y][0-9]([0-9]|[ABEHMNPRV-Y]))|[0-9][A-HJKS-UW]) ?[0-9][ABD-HJLNP-UW-Z]{2}'),
          

    isAlphaNumeric: function(txt) { 
        return ( /^[a-zA-Z0-9]*$/.test(txt));
    },

    validateLoginNameAndPassword: function() { 
    
       var loginName = $F('login_name'); 
       
       if ( loginName == '' | $F('pwd') == '') 
       {
            alert('Both email address and password need to be filled in');
            return false;
       }
       
       if (!this.emailRegex.test(loginName)){
	        alert( loginName + ": email address is not valid");	
		    return false;
	   }  
       
       return true;
    },
     
    deleteRegistration: function() {
        return confirm('Are you sure you want to delete your account? Note: all your adverts will be removed.');
    },
    
    forgotPasswordTextBox: function()
    {
        var emailInput = $('forgot_password').email;
    
        if(emailInput.value == 'Enter your email address here')
        {
            emailInput.value = '';
        }
    },
    
    
    forgotPassword: function() {
    
        var email = $('forgot_password').email.value;
        
        if (email == '')
        {
            alert('Email is required');
            return false;
        }
        
        if (!Register.emailRegex.test(email)){
		    alert(email + ": email address is not valid");	
		    return false;
		}
    
    },
    
    validatePasswordChange: function()
    {    
       return this.validateNewPassword( $('change_password_form') );
    },
    
    validateNewPassword: function( form ) {
    
       var password = form.pw.value;
       var repeatPassword = form.rppw.value;
    
       if (password == '')
       {
            alert('Password is required');
            return false;
       }
       
       if (repeatPassword == '')
       {
            alert('Repeat password is required');
            return false;
       }
       
       if (repeatPassword != password)
       {
            alert('Password and repeat password are not identical');
            return false;
       }
       
       if (password.length < 6)
        {   
            alert('Password has a minimum of 6 characters');
            return false;
        }
    
        if ( !this.isAlphaNumeric( password ) ) { 
            alert('Password cannot contain special characters or spaces');
            return false;
        }
        
    },
   
   validateEditRegistration: function() 
   {
        return this.validateNameAndEmail( $('edit_register_form') );	       
   },
    
   validateNewRegistration: function() 
   { 
    var form = $('register_form');
           
    if(this.validateNameAndEmail(form))
    {
        return this.validateNewPassword(form);
    }
    else
    {
        return false;
    }
   },
    
    validateNameAndEmail: function( form ) { 
   
        var firstName = form.first_name.value;
        var lastName = form.last_name.value;
        var email = form.email.value;
        var postcode = form.postcode.value.toUpperCase();
        var phonebox = form.opt_phone.checked;
        var mobile = form.dayphone.value;
        var phone = form.mobile.value;
              
        if (firstName == '')
        {
            alert('First name is required');
            return false;
        }
        
        else if(firstName.length < 2)
        {
            alert('First name must be at least 2 characters');
            return false;
        }
        
        else if (lastName == '')
        {
            alert('Surname is required');
            return false;
       }
       
       else if(lastName.length < 2)
       {
            alert('Surname must be at least 2 characters');
            return false;
       }
       else if ( postcode == '')
       {
           alert('Postcode is required');
           return false;
       }     
       else if ( $F('ccode') == 'GBR' && !this.postcodeRegex.test( postcode ) )
       {
            
            alert('Postcode is not a valid UK postcode');
            return false;
       }
              
       else if ( email == '')
       {
           alert('Email address is required');
           return false;
       }
       
       else if(! this.emailRegex.test( email ))
       {
	        alert( email + ": email address is not valid");	
			return false;
	   }
		
		else if(phonebox == 'true')
		{
		    if(mobile =='' && phone== '')
		    {
		        alert('One phone number is required');
		        return false;
		    }
		}
		else
		{ 
    		return true;
		}
    
    }
         
}
