var url = window.location.protocol + "//" + window.location.host + window.location.pathname;

function recover_password(){
    var form=document.getElementById("login_form");
    document.getElementById("error_display").innerHTML="";
    if(checkEmail(form.username.value)){
        var email=document.getElementById("login_username").value;

        var recover = new Ajax.Request(url, {
                parameters: {
                    action: "forgotten_password",
                    forgotten_password: email
                },
                onSuccess: displayRecoverMessage
            });
    }else{
        displayErrorMsg("recover_email_missing");
    }
    return false;
}

function displayRecoverMessage(msg){
    json=eval("("+msg.responseText+")");
    alert(localize.say(json.message));
}

function displayErrorMsg(_msg, _targ){
    if(_targ==undefined){var _targ="error_display"}
    if(document.getElementById(_targ).innerHTML!=""){
        document.getElementById(_targ).innerHTML+="<br />";
    }

    if(_msg!="") document.getElementById(_targ).innerHTML+=localize.say(_msg);
    return false;
}

function check_login_form (form) {
    document.getElementById("error_display").innerHTML="";
    var _submit = true;
    if(form.username.value==""){
        displayErrorMsg("login_no_username");
        _submit=false;
    } else if (!checkEmail(form.username.value) ) {
        displayErrorMsg("login_invalid_username");
        _submit=false;
    }

    if(form.password.value==""){
        displayErrorMsg("login_no_password");
        _submit=false;
    }
    return _submit;
}

function check_create_account_form(form) {
    document.getElementById("create_error_display").innerHTML="";

    var _submit = true;
    var password = form.password.value;

    if (!checkEmail(form.username.value)) {
        displayErrorMsg("login_invalid_username", "create_error_display");
        _submit=false;
    }

    if (password.length <6) {
        displayErrorMsg("create_short_password", "create_error_display");
        _submit=false;
    }
    if (password.match(/\d/) == null || password.match(/[a-z]/i) == null) {
        displayErrorMsg("create_password_format", "create_error_display");
        _submit=false;
    }
    if (password!=form.confirm.value) {
        displayErrorMsg("create_confirm_mismatch", "create_error_display");
        _submit=false;
    }

    return _submit;
}


/* found at http://www.rgagnon.com/jsdetails/js-0045.html */
function checkEmail(str){
  var filter=/^.+@.+\..{2,3}$/
  return (filter.test(str))
}

// For UFT8 encoding in javascript.
function encode_utf8( s ) {
    try{
        return unescape( encodeURIComponent( s ) );
    }
    catch(err){
        return s;
    }
}

// For UTF8 decoding in javascript.
function decode_utf8( s ){
    try{
        return decodeURIComponent( escape( s ) );
    }
    catch(err){
        return s;
    }
}
