//register keypress listener
document.onkeydown = keyListener;

function keyListener(e){
   
   if(!e){e = window.event;}
   
   if(e.keyCode==13) {// Enter/CR
   
        // get the currently active div & click the appropriate button
        if(document.getElementById('divLog')) {
            if(document.getElementById('divLog').style.display == 'block') {
                document.getElementById('btnLogLogin').click();
            }
        }
        
        if(document.getElementById('divReg')) {
            if(document.getElementById('divReg').style.display == 'block') {
                document.getElementById('btnRegRegister').click();    
            }   
        }    
   }
}

function comparePasswords(obj1, obj2) {
    if(obj1 && obj2) {
        if(obj1.value == obj2.value) {
            return true;
        } else {
            alert('Your Password and Password Check do not match, please try again!');
            obj1.focus();
            obj1.select();
            return false;
        }
    }
    return false;
}
function validatePassword(target)
{
var reEx = /\S{8,30}/;
return reEx.test(target.value)
}

function validateLogin() {

    if(document.getElementById('txtLogUserName') && document.getElementById('txtLogPassword')) {
        
        if(document.getElementById('txtLogUserName').value == '') {
            alert('Please enter the User Name you chose when you registered.\nIf you are a new user who has not yet registered, please click on the \'Register\' button.');
            document.getElementById('txtLogUserName').focus();            
            return false;
        }
        
        if(document.getElementById('txtLogPassword').value == '') {
            alert('Please enter the Password you chose when you registered.\nIf you are a new user who has not yet registered, please click on the \'Register\' button.');
            document.getElementById('txtLogPassword').focus();            
            return false;
        }
        
    } else {
        alert('Fields txtLogUserName and/or txtLogPassword missing!')
        return false;
    }
    return true;    
}

function validateRegistration() {

    if(document.getElementById('txtRegUserName') && document.getElementById('txtRegFirstName') && document.getElementById('txtRegSurname') && document.getElementById('txtRegPassword') && document.getElementById('txtRegPasswordCheck') && document.getElementById('txtRegEmail')) {
        
        if(document.getElementById('ddlAuditionLocation'))
        {
			var ddl = document.getElementById('ddlAuditionLocation');
			if(ddl.selectedIndex == 0)
			{
				alert('Please select a venue for your Shipwrecked Audition');
				return false; 
			}
        }
        if(document.getElementById('txtRegUserName').value == '') {
            alert('Please enter a User Name.');
            document.getElementById('txtRegUserName').focus();            
            return false;
        }
        
        if(document.getElementById('txtRegFirstName').value == '') {
            alert('Please enter your first name.');
            document.getElementById('txtRegFirstName').focus();            
            return false;
        }
        
        if(document.getElementById('txtRegSurname').value == '') {
            alert('Please enter your family name.');
            document.getElementById('txtRegSurname').focus();            
            return false;
        }
        if(noSpaces(document.getElementById('txtRegPassword').value)) {
            if(document.getElementById('txtRegPassword').value == '') 
            {
                alert('Please enter a password.');
                document.getElementById('txtRegPassword').focus();            
                return false;
            }
            else
            {
                if(!validatePassword(document.getElementById('txtRegPassword')))
                {
                    alert('Your password must be between 8 and 30 characters.');
                    return false;
                }
                
            }
        } else {
            alert('Sorry, but your password cannot contain spaces.\nPlease enter a password that does not contain any spaces.');
            document.getElementById('txtRegPassword').focus();            
            return false;
        }
        
        if(document.getElementById('txtRegPasswordCheck').value == '') {
            alert('Please enter your password again, so it can be checked.');
            document.getElementById('txtRegPasswordCheck').focus();            
            return false;
        }
        
        if(document.getElementById('txtRegPassword').value != document.getElementById('txtRegPasswordCheck').value) {
            alert('Sorry, but your passwords do not match!\nPlease try entering them again.');
            document.getElementById('txtRegPassword').focus();            
            return false;
        }
        
        if(validateHint()) {
            alert('Sorry, but for security reasons your password hint cannot contain your password!\nPlease choose a different hint.');
            document.getElementById('txtRegPasswordHint').focus();            
            return false;
        }
        
        if(document.getElementById('txtRegEmail').value == '') {
            alert('Please enter your email address.');
            document.getElementById('txtRegEmail').focus();            
            return false;
        }
        
        return validateEmail(document.getElementById('txtRegEmail'));
        
    } else {
        alert('Fields missing!')
        return false;
    }
    return true;    
}

function subStringMatch(strPassword, strHint) {
    
    strHint = stripSpaces(strHint);
    
    //alert('strPassword: '+strPassword+' > strHint: '+strHint);
    
    // this works for a complete string
   if(strPassword.indexOf(strHint) >= 0) {return false;}
	return true;
}

function noSpaces(strIn) {
    if(strIn.indexOf(' ') >= 0) {return false;}
    return true;
}

function stripSpaces(strIn) {
    return strIn.replace(' ', '');    
}

function testHint() {
    if(validateHint()) {
            alert('Sorry, but for security reasons your password hint cannot contain your password!\nPlease choose a different hint.');
            document.getElementById('txtRegPasswordHint').focus();            
            return false;
        }
}

function validateHint() {
        if(subStringMatch(document.getElementById('txtRegPassword').value.toLowerCase(), document.getElementById('txtRegPasswordHint').value.toLowerCase())) {           
            return false;
        }
        return true;
}

function toggleDiv(Id) {
    // reset Msg 
    document.getElementById('divMsg').style.display='none';
    
    if(Id == 'Reg') {    
        document.getElementById('divLog').style.display='none';
        document.getElementById('divReg').style.display='block';        
    } else {
        document.getElementById('divReg').style.display='none';
        document.getElementById('divLog').style.display='block';
    }
}
