var done = {};
var doproceed = false;

function Terms() {
    var Terms = open("/popups/terms/","terms","Height=500,Width=400,scrollbars=yes,resizable=yes");
}
function checkProfButton() {
    if (done['username']) {
        $('createprofile').onclick='';
    }
}

function checkName() {
    setStatus('username', 'clear');
    var button = $('checkname');
    button.disabled = "disabled";
    button.value = STRINGS.checking;
    var username = $F('username');
    if (username !=  null && username.length > 0) {
        // check for invalid names
        if (!username.match(/^[a-z][_a-z0-9\-]{1,14}$/i)) {
            clearField("username");
            setStatus('username', 'bad');
            alert(STRINGS.invalidName);
        } else {
            var myAjax = new Ajax.Request('/ajax/nametaken/', {
                method: 'post',
                parameters: Form.Element.serialize('username'),
                onComplete: nameTaken
            });
      }
    } else {
        alert(STRINGS.desiredName);
        $('username').focus();
    }
}
function checkNameProceed() {
    doproceed = true;
    checkName();
    return false;
}
function checkPasswords(){
    var input1 = $('pword');
    var input2 = $('confirmpw');
    if (input2.value.length > 0 && input2.value.length >= input1.value.length) {
        if (input1.value != input2.value) {
            setStatus('password', 'bad'); setStatus('confirmpw', 'bad');
        } else {
            setStatus('password', 'good'); setStatus('confirmpw', 'good');
        }
    } else {
        setStatus('password', 'clear'); setStatus('confirmpw', 'clear');
    }
    checkProfButton();
}

function checkEmail() {
    var email = $F('email');
    if (email.match(/(gmal)|(hotmai\.)|(gmai\.)|(homail)|(gmaill)|(gmial)|(@otmail)|(hotmaill)|(hotmial)/)) {
        $('email_warn').show();
    } else {
        $('email_warn').hide();
    }
    if (email != null && email.length > 4 && email.match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/)) {
        setStatus('email', 'good');
    } else if (email.length <= 4) {
        clearField('email');
    } else {
        setStatus('email', 'bad');
    }
}

function clearField(fieldname) {
    setStatus(fieldname, 'clear');
    if (fieldname == "username") {
      var button = $('checkname');
      button.value = STRINGS.availability;
      button.disabled = '';
      Element.show(button);
      Element.show(button.parentNode);
    }
}

function setStatus(inputid, status) {
    var indicator = $(inputid+'_status');
    if (indicator) {
        if (status == "good") {
            indicator.style.backgroundImage = "url('" + LFM.Session.staticHost + "/depth/forms/correct.gif')";
            done[inputid] = true;
        } else if (status == "bad") {
            indicator.style.backgroundImage = "url('" + LFM.Session.staticHost + "/depth/forms/incorrect.gif')";
            done[inputid] = false;
       } else {
            indicator.style.backgroundImage = 'none';
       }
    }
}

function nameTaken(response) {
    var button = $('checkname');
    if (response.responseText == 'false') {
        button.style.display = 'none';
        setStatus("username", "good");
        if (doproceed) {
            $('dosignup').submit();
            return false;
        } else  {
            $('email').focus();
        }
    } else if (response.responseText == 'true') {
        button.disabled = "";
        button.value = STRINGS.tryAnother;
            setStatus("username", "bad");
            $('username').focus();
            $('username').select();
            doproceed = false;
    } else {
        button.disabled = "";
        button.value = STRINGS.serverBusy;
        setStatus("username", "bad");
        $('username').focus();
        $('username').select();
        doproceed = false;
    }
    checkProfButton();
}