/**
 * @author dondon
 */
function refreshEmailField(err, val){
    var fld = "";
    var tmp = document.getElementById('email').value;
    if (err == 1) {
        fld = "<div style=\"opacity: 1;\" class=\"fValidator-msg\" id=\"err_email_msg\">Email is required</div><input type=\"text\" name=\"email\" id=\"email\" size=\"25\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"1\" onchange=\"checkEmail();\">";
    }
    else if (err == 2) {
            fld = "<div style=\"opacity: 1;\" class=\"fValidator-msg\" id=\"err_email_msg\">Email not valid</div><input type=\"text\" name=\"email\" id=\"email\" size=\"25\" value=\"" + tmp + "\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"1\" onchange=\"checkEmail();\">";
    }
	else if (err == 3) {
    		fld = "<div style=\"opacity: 1;\" class=\"fValidator-msg\" id=\"err_email_msg\">Email is already in use</div><input type=\"text\" name=\"email\" id=\"email\"  value=\"" + tmp + "\" size=\"25\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"1\" onchange=\"checkEmail();\">";
    } else if (err == 4){
		tmp = document.getElementById('email2').value;
		fld = "<div style=\"opacity: 1;\" class=\"fValidator-msg\" id=\"err_email_msg\">Emails dont match</div><input type=\"text\" name=\"email2\" id=\"email2\"  value=\"" + tmp + "\" size=\"25\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"1\" onchange=\"checkEmail2();\">";
		document.getElementById("emailcontainer2").innerHTML = fld;
		return false;
	} else if (err == 5) {
		tmp = document.getElementById('email2').value;
		fld = "<input type=\"text\" name=\"email2\" id=\"email2\" size=\"25\" value=\"" + tmp + "\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"1\" onchange=\"checkEmail2();\">";
		document.getElementById("emailcontainer2").innerHTML = fld;
		return true;
	}
    else {		
            fld = "<input type=\"text\" name=\"email\" id=\"email\" size=\"25\" value=\"" + tmp + "\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"1\" onchange=\"checkEmail();\">";
    }
    document.getElementById("emailcontainer").innerHTML = fld;
}

function checkEmail(){
    aemailCheck = 0;
    var email = document.getElementById('email');
	var email2 = document.getElementById('email2');
	aemailCheck2 = 1;
	email2.value = "";
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (email.value.length <= 0) {
        refreshEmailField(1);
        email.focus
        aemailCheck = 1;
        return false;
    }
    else if (!filter.test(email.value)) {
            refreshEmailField(2);
            email.focus
            aemailCheck = 1;
            return false;
	}else {
            checkEmailAjax();
    }	 
    return true;
}

function checkEmail2(){
	aemailCheck2 = 0;
	var email = document.getElementById('email');
	var email2 = document.getElementById('email2');
	if (email.value != email2.value){
			refreshEmailField(4);
            email2.focus
            aemailCheck2 = 1;
            return false;
	}else {
		refreshEmailField(5);
	}
	return true;
}
function refreshNickField(err){
    var fld = "";
    if (err == 1) {
        fld = "<div style=\"opacity: 1;\" class=\"fValidator-msg\" id=\"err_avatar_msg\">Nickname is required</div><input type=\"text\" name=\"avatarname\" id=\"avatarname\" size=\"15\"  maxlength=\"7\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"2\" onchange=\"checkNickname();\">&nbsp;<span id=\"checkavailabilityresult\"></span>";
    }
    else if (err == 2) {
         fld = "<div style=\"opacity: 1;\" class=\"fValidator-msg\" id=\"err_avatar_msg\">Nickname is invalid. Only 0-9 and a-z is valid.</div><input type=\"text\" name=\"avatarname\" id=\"avatarname\" size=\"15\"  maxlength=\"7\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"2\" onchange=\"checkNickname();\">&nbsp;<span id=\"checkavailabilityresult\"></span>";
    }
     else if (err == 3) {
         fld = "<div style=\"opacity: 1;\" class=\"fValidator-msg\" id=\"err_avatar_msg\">Nickname too short.</div><input type=\"text\" name=\"avatarname\" id=\"avatarname\" size=\"15\"  maxlength=\"7\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"2\" onchange=\"checkNickname();\">&nbsp;<span id=\"checkavailabilityresult\"></span>";
    }
    else if (err == 4) {
         fld = "<div style=\"opacity: 1;\" class=\"fValidator-msg\" id=\"err_avatar_msg\">Nickname too long, maximum 7 chars.</div><input type=\"text\" name=\"avatarname\" id=\"avatarname\" size=\"15\"  maxlength=\"7\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"2\" onchange=\"checkNickname();\">&nbsp;<span id=\"checkavailabilityresult\"></span>";
    } else {
         var tmp = document.getElementById('avatarname').value;
         fld = "<input type=\"text\" name=\"avatarname\" id=\"avatarname\" value=\"" + tmp + "\" size=\"15\"  maxlength=\"7\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"2\" onchange=\"checkNickname();\">&nbsp;<span id=\"checkavailabilityresult\"></span>";
    }
    document.getElementById("nickcontainer").innerHTML = fld;
}

function checkNickname(){
    aavatarCheck = 0;
    var illegalChars = /^([a-zA-Z0-9_-]+)$/;
    var nick = document.getElementById("avatarname");
    if (nick.value.length <= 0) {
        refreshNickField(1);
        nick.focus
        aavatarCheck = 1;
        return false;
    }
    else if ((nick.value.length < 3)) {
    	refreshNickField(3);
    	nick.focus
    	aavatarCheck = 1;
    	return false;
	}else if ((nick.value.length > 7)) {
    	refreshNickField(4);
    	nick.focus
    	aavatarCheck = 1;
    	return false;
	}else if (illegalChars.test(nick.value) == false) {
    	refreshNickField(2);
    	nick.focus
    	aavatarCheck = 1;
    	return false;
	} else {
        refreshNickField(0);
        checkUnameIsAvailable();
    }
    return true;
}

function refreshReferrerField(err){
    var fld = "";
    if (err == 1) {
        fld = "<div style=\"opacity: 1;\" class=\"fValidator-msg\" id=\"err_avatar_msg\">Referrer is required</div><input type=\"text\" name=\"referrer\" id=\"referrer\" size=\"25\"  maxlength=\"7\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"2\" onchange=\"checkReferrer();\">";
    }
    else if (err == 2) {
         fld = "<div style=\"opacity: 1;\" class=\"fValidator-msg\" id=\"err_avatar_msg\">Referrer is invalid. Only 0-9 and a-z is valid.</div><input type=\"text\" name=\"referrer\" id=\"referrer\" size=\"25\"  maxlength=\"7\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"2\" onchange=\"checkReferrer();\">";
    }
     else if (err == 3) {
         fld = "<div style=\"opacity: 1;\" class=\"fValidator-msg\" id=\"err_avatar_msg\">Referrer too short.</div><input type=\"text\" name=\"referrer\" id=\"referrer\" size=\"25\"  maxlength=\"7\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"2\" onchange=\"checkReferrer();\">";
    }
    else if (err == 4) {
         fld = "<div style=\"opacity: 1;\" class=\"fValidator-msg\" id=\"err_avatar_msg\">Referrer too long, maximum 7 chars.</div><input type=\"text\" name=\"referrer\" id=\"referrer\" size=\"25\"  maxlength=\"7\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"2\" onchange=\"checkReferrer();\">";
    } else {
         var tmp = document.getElementById('referrer').value;
         fld = "<input type=\"text\" name=\"referrer\" id=\"referrer\" value=\"" + tmp + "\" size=\"25\"  maxlength=\"7\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"2\" onchange=\"checkReferrer();\">";
    }
    document.getElementById("invitecontainer").innerHTML = fld;
}

function checkReferrer(){
    aavatarCheck = 0;
    var illegalChars = /^([a-zA-Z0-9_-]+)$/;
    var nick = document.getElementById("referrer");
    if (nick.value.length <= 0) {
        refreshReferrerField(1);
        nick.focus
        aavatarCheck = 1;
        return false;
    }
    else if ((nick.value.length < 3)) {
    	refreshReferrerField(3);
    	nick.focus
    	aavatarCheck = 1;
    	return false;
	}else if ((nick.value.length > 7)) {
    	refreshReferrerField(4);
    	nick.focus
    	aavatarCheck = 1;
    	return false;
	}else if (illegalChars.test(nick.value) == false) {
    	refreshReferrerField(2);
    	nick.focus
    	aavatarCheck = 1;
    	return false;
	} else {
        refreshReferrerField(0);
    }
    return true;
}
function refreshPassField(err){
    var fld = "";
    if (err == 1) {
        fld = "<div style=\"opacity: 1;\" class=\"fValidator-msg\" id=\"err_pass_msg\">Password is required</div><input type=\"password\" name=\"pass\" id=\"pass\" size=\"25\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"3\" onblur=\"checkPassword();\">";
    }
    else if (err == 2) {
            fld = "<div style=\"opacity: 1;\" class=\"fValidator-msg\" id=\"err_pass_msg\">Password too short</div><input type=\"password\" name=\"pass\" id=\"pass\" size=\"25\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"3\" onblur=\"checkPassword();\">";
	}else if (err == 3) {
           fld = "<div style=\"opacity: 1;\" class=\"fValidator-msg\" id=\"err_pass_msg\">Password too long</div><input type=\"password\" name=\"pass\" id=\"pass\" size=\"25\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"3\" onblur=\"checkPassword();\">";
	}else if (err == 4) {
           fld = "<div style=\"opacity: 1;\" class=\"fValidator-msg\" id=\"err_pass_msg\">Password is invalid. Only 0-9 and a-z is valid.</div><input type=\"password\" name=\"pass\" id=\"pass\" size=\"25\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"3\" onblur=\"checkPassword();\">";
	} else {
           var tmp = document.getElementById('pass').value;
           fld = "<input type=\"password\" name=\"pass\" id=\"pass\" size=\"25\" value=\"" + tmp + "\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"3\" onblur=\"checkPassword();\">";
    }
    document.getElementById("passcontainer").innerHTML = fld;
}

function checkPassword(){
    var pass = document.getElementById("pass");
    var illegalChars = /^([a-zA-Z0-9_-]+)$/;
    if (pass.value == "") {
        refreshPassField(1);
        pass.focus
        return false;
    }
    else if ((pass.value.length < 5)) {
        refreshPassField(2);
        pass.focus
        return false;
	} else if ((pass.value.length > 12)) {
        refreshPassField(3);
        pass.focus
        return false;
    } else if (illegalChars.test(pass.value) == false) {
        refreshPassField(4);
        pass.focus
        return false;
    } else {
        refreshPassField(0);
        return true;
    }
}

function refreshCPassField(err){
    var fld = "";
    if (err == 1) {
        fld = "<div style=\"opacity: 1;\" class=\"fValidator-msg\" id=\"err_cpass_msg\">Password is incorrect</div>";
        fld = fld + "<input type=\"password\" id=\"cpass\" name=\"cpass\" size=\"25\" style=\"border:2px solid #000000; font-size: 18pt; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" onchange=\"checkCPassword();\">";
    }
    else {
        var tmp = document.getElementById('cpass').value;
        fld = "<input type=\"password\" id=\"cpass\" name=\"cpass\" size=\"25\" style=\"border:2px solid #000000; font-size: 18pt; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" onchange=\"checkCPassword();\">";
    }
    document.getElementById("currentpasscontainer").innerHTML = fld;
}

function checkCPassword(){
    var pass = document.getElementById("cpass");
    var truepass = document.getElementById("password");
    if (pass.value.length <= 0) {
        refreshCPassField(0);
        return true;
    }
    else if ((pass.value != truepass.value)) {
            refreshCPassField(1);
            pass.focus
            return false;
	}else {
     		refreshCPassField(0);
            return true;
    }
}

function refreshPass2Field(err){
    var fld = "";
    if (err == 1) {
        fld = "<div style=\"opacity: 1;\" class=\"fValidator-msg\" id=\"err_pass2_msg\">Password is required</div><input type=\"password\" name=\"pass2\" id=\"pass2\" size=\"25\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"4\" onblur=\"checkPassword2();\">";
    }
    else if (err == 2) {
            fld = "<div style=\"opacity: 1;\" class=\"fValidator-msg\" id=\"err_pass2_msg\">Passwords do not match</div><input type=\"password\" name=\"pass2\" id=\"pass2\" size=\"25\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"4\" onblur=\"checkPassword2();\">";
    }else {
            var tmp = document.getElementById('pass2').value;
            fld = "<input type=\"password\" name=\"pass2\" id=\"pass2\" size=\"25\" value=\"" + tmp + "\" style=\"font-size: 12pt; border: 2px solid #000000; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px\" tabindex=\"4\" onblur=\"checkPassword2();\">";
	}
    document.getElementById("pass2container").innerHTML = fld;
}

function checkPassword2(){
    var pass = document.getElementById("pass");
    var pass2 = document.getElementById("pass2");
    if ((pass2.value == "") || (pass2.value.length <= 0)) {
        refreshPass2Field(1);
        pass2.focus
        return false;
    }
    else if (pass.value != pass2.value) {
        refreshPass2Field(2);
        pass2.focus
        return false;
	} else {
        refreshPass2Field(0);
        return true;
	}
}

function refreshSecField(err){
    var fld = "";
    var ssc = document.getElementById("err_seccode_msg");
    if (err == 1) {
        fld = "Security code is required";
        ssc.innerHTML = fld;
        ssc.style.visibility = "visible";
    }
    else if (err == 2) {
       fld = "Please enter the correct security code.";
       ssc.innerHTML = fld;
       ssc.style.visibility = "visible";
	} else {
       fld = "";
       ssc.innerHTML = fld;
	}
}

function checkCaptcha(){
    secCheck = 0;
    var secCode = document.getElementById("secCode");
    if ((secCode.value == "") || (secCode.value.length <= 0)) {
        refreshSecField(1);
        secCode.focus
        secCheck = 1;
        return false;
    }
    else {
        checkSec();
        return true;
    }
}

function tncOnClick(){
    var flag = checkTnC();
    if (flag) {
        setTnCErrorMessage(false);
    }
    else {
        setTnCErrorMessage(true);
    }
}

function ageOnClick(){
    var flag = checkAgeRef();
    if (flag) {
        setAgeErrorMessage(false);
    }
    else {
        setAgeErrorMessage(true);
    }
}

function checkTnC(){
    var agree = document.getElementById("termsnconditions");
    if (agree.checked == true) {
        return true;
    }
    else {
        return false;
    }
}

function checkAgeRef(){
    var age = document.getElementById("ageref");
    if (age.checked == true) {
        return true;
    }
    else {
        return false;
    }
}

function setAgeErrorMessage(hasError){
    if (hasError) {
		document.getElementById('ageerrmsg').style.height = "13px";
        document.getElementById('ageerrmsg').innerHTML = "<font class=\"errMssg\"><b>Please check to continue.</b></font>";
    }
    else {
		document.getElementById('ageerrmsg').style.height = "0px";		
        document.getElementById('ageerrmsg').innerHTML = "";
    }
}

function setTnCErrorMessage(hasError){
    if (hasError) {
		document.getElementById('tncerrmsg').style.height = "13px";
        document.getElementById('tncerrmsg').innerHTML = "<font class=\"errMssg\"><b>Please check to continue.</b></font>";
    }
    else {
		document.getElementById('tncerrmsg').style.height = "0px";		
        document.getElementById('tncerrmsg').innerHTML = "";
    }
}

function refreshAvatarTitle(type){
    if (type) {
        var tpl = "<span><font size=\"2\" face=\"Arial Black\"><b>Click to choose your Avatar</b></font></span><br /><span valign='bottom' class=\"fValidator-msg\">Click on the avatar you select so that the gray border turns green.<span></font>";
        document.getElementById("avatartitle").innerHTML = tpl;
    }
    else {
        var tpl = "<span><font size=\"2\" face=\"Arial Black\"><b>Click to choose your Avatar</b></font></span>";
        document.getElementById("avatartitle").innerHTML = tpl;
    }
}

function checkAvatar(){
    var avatar = document.getElementById("character");
    if ((avatar.value == "") || (avatar.value.length <= 0)) {
        refreshAvatarTitle(true);
        return false;
    }
    else {
        refreshAvatarTitle(false);
        return true;
    }
}

function checkAvatar2(){
    var avatar = document.getElementById("character");
    if ((avatar.value == "") || (avatar.value.length <= 0)) {
        //refreshAvatarTitle(true);
        return false;
    }
    else {
        //refreshAvatarTitle(false);
        return true;
    }
}

function pausecomp(millis){
    var date = new Date();
    var curDate = null;
    do {
        curDate = new Date();
    }
    while (curDate - date < millis);
}

var submitEventId = null;
function doSubmit(){
    //checkRequiredFields();
    showModalSubmit();		
	submitEventId = window.setInterval("checkRequiredFields()",2000);
}

function checkRequiredFields(){
    var errorFlag = false;
    if (aemailCheck == 0) {
        checkEmail();
    }
	if(aemailCheck2 == 0){
		checkEmail2();
	}
    if (aavatarCheck == 0) {
        checkNickname();
    }
    if ((secCheck == 0)) {
        checkCaptcha();
    }
    checkPassword();
    checkPassword2();
    
    //check if there are errors with email,uname or sec code
    if ((aemailCheck == 1) || (aemailCheck2 == 1) || (aavatarCheck == 1) || (secCheck == 1)) {
        errorFlag = true;
    }
    if (!checkTnC()) {
        setTnCErrorMessage(true);
        errorFlag = true;
        //return false;
    }
    
    if (!checkAgeRef()) {
        setAgeErrorMessage(true);
        errorFlag = true;
        //return false;
    }
    
    if (checkAvatar2()) {
        refreshAvatarTitle(false);
    }
    else {
        refreshAvatarTitle(true);
        errorFlag = true;
    }
    
    if (errorFlag) {
		if (submitEventId) {
			window.clearInterval(submitEventId);
		}		
        hideModal('modalProgress');
        //clear timed event
        
        //return false;
        return false;
    }
    pausecomp(1000);
    //var er = checkPassword() & checkPassword2();		
    if ((secCheck == 3) || (aemailCheck == 3) || (aavatarCheck == 3)) {
		
    }
    else {
		if (submitEventId) {
			window.clearInterval(submitEventId);
		}
        hideModal('modalProgress');
        //document.regform.submit();
		//document.form.submit();
		document.forms[0].submit();
		//alert(document.forms[0]);
    }
}
