function addCommas(nStr){
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while(rgx.test(x1)){
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    return x1 + x2;
}



function updateScore(score){
    score = parseInt(score);
    var user = document.getElementById('user-score');
    var high = document.getElementById('hi-score');
    var hiscore = parseInt(high.innerHTML.replace(/,/g,''));
    if(score > hiscore){
        high.innerHTML = addCommas(score);
    }
    user.innerHTML = addCommas(score);
}


function validateRegister(){
    var error = '';
    resetRegister();
    if(password2.value != password.value){
        password2.className = 'error';
        error = 'Your passwords do not match';
    }
    if(!password.value.match(/[0-9]/) || password.value.length < 6){
        password.className = 'error';
        error = 'Your password must be at least 6 characters and contain 1 number';
    }
    if(!email.value.match(/^.+@.+\..+$/)){
        email.className = 'error';
        error = 'Please enter a valid email address';
    }
    if(!nickname.value.match(/^[A-Za-z0-9_]{3,}$/)){
        nickname.className = 'error';
        error = 'Your nickname must be at least 3 characters, and may only consist of letters, numbers and underscores';
    }
    if(error == '')
        return true;
    document.getElementById('new-error').innerHTML = error;
    return false;
}

function resetRegister(){
    email.className = '';
    nickname.className = '';
    password.className = '';
    password2.className = '';
    document.getElementById('new-error').innerHTML = '';
}

function validateForgotten(){
    if(text.value.length < 3){
        text.className = 'error';
        error.innerHTML = 'Invalid E-Mail / Nickname';
        return false;
    }
    return true;
}

function countrySelect(){
    var options = document.getElementById('profile-country').getElementsByTagName('option');
    var i = 0;
    while(i < options.length){
        if(country == options[i].innerHTML){
            document.getElementById('profile-country').selectedIndex = i;
            return;
        }
        i++;
    }
    document.getElementById('profile-country').selectedIndex = 0;
}

function countrySelect2(){
    var options = document.getElementById('profile-country2').getElementsByTagName('option');
    var i = 0;
    while(i < options.length){
        if(country2 == options[i].innerHTML){
            document.getElementById('profile-country2').selectedIndex = i;
            return;
        }
        i++;
    }
    document.getElementById('profile-country2').selectedIndex = 0;
}

function validatePassword(){
    pass0.className = '';
    pass1.className = '';
    pass2.className = '';
    error.innerHTML = '';
    
    if(pass2.value != pass1.value){
        pass2.className = 'error';
        error.innerHTML = 'Your new passwords do not match';
    }
    if(!pass1.value.match(/[0-9]/) || pass1.value.length < 6){
        pass1.className = 'error';
        error.innerHTML = 'Your new password must be at least 6 characters and contain 1 number';
    }
    if(pass0.value == ''){
        pass0.className = 'error';
        error.innerHTML = 'Please enter you current password';
    }
    if(error.innerHTML != '')
        return false;
    return true;
}
