var submittedAlready = false;
function trySubmit() {
    if(submittedAlready) {
        return false;
    } else {
        submittedAlready = true;
        return true;
    }
}
function emailOk(emailAddr) {
        var i;
        i = emailAddr.indexOf("@");
        if (i == -1) {
                return false;
        }
        var username = emailAddr.substring(0, i);
        var domain = emailAddr.substring(i + 1, emailAddr.length)
        i = 0;
        while ((username.substring(i, i + 1) == " ") && (i < username.length)) {
                i++;
        }
        if (i > 0) {
                username = username.substring(i, username.length);
        }
        i = domain.length - 1;
        while ((domain.substring(i, i + 1) == " ") && (i >= 0)) {
                i--;
        }
        if (i < (domain.length - 1)) {
                domain = domain.substring(0, i + 1);
        }
        if ((username == "") || (domain == "")) {
                return false;
        }
        var ch;
        for (i = 0; i < username.length; i++) {
                ch = (username.substring(i, i + 1)).toLowerCase();
                if (!(((ch >= "a") && (ch <= "z")) ||
                        ((ch >= "0") && (ch <= "9")) ||
                        (ch == "_") || (ch == "-") || (ch == "."))) {
                                return false;
                }
        }

        for (i = 0; i < domain.length; i++) {
                ch = (domain.substring(i, i + 1)).toLowerCase();
                if (!(((ch >= "a") && (ch <= "z")) ||
                        ((ch >= "0") && (ch <= "9")) ||
                        (ch == "_") || (ch == "-") || (ch == "."))) {
                                return false;
                }
        }
        i = domain.indexOf(".");
        if (i == -1) {
                return false;
        }
        return true;
};
function validate(form){
    good = true;
    err = "Missing or incorrect data:\n";


	if (document.getElementsByName("email").length){
		if (!emailOk(form.email.value)){
			good=false;
			err+="E-mail,\n";
		};
	}

	if (document.getElementsByName("username").length){
		if (form.username.value.length<6){
			good=false;
			err+="User Name (at least 6 characters),\n";
		};

		if (form.username.value.length>12){
			good=false;
			err+="User Name must be max 12 symbols,\n";
		};

		us_pass = true;

		for (i = 0; i < form.username.value.length; i++) {
			ch = (form.username.value.substring(i, i + 1)).toLowerCase();
			if (!(((ch >= "a") && (ch <= "z")) || ((ch >= "0") && (ch <= "9")) || (ch == "_") || (ch == "-") || (ch == "."))) {
				us_pass = false;
				good = false;
			}
		}
		if (! us_pass) err+="Username may contain only symbols from a-z, A-Z, 0-9,\n";
	}

	if (document.getElementsByName("password").length && document.getElementsByName("username").length){
		if (form.password.value == form.username.value){
			good=false;
			err+="Password and Username are Too Similar,\n";
		};
	}

	if (document.getElementsByName("password").length){
		if (form.password.value==''){
			good=false;
			err+="Password,\n";
		};
		if (form.password.value.length < 6){
			good=false;
			err+="Password must be at least 6 symbols,\n";
		};
		if (form.password.value.length > 12){
			good=false;
			err+="Password must be max 12 symbols,\n";

		};

		us_pass = true;
		for (i = 0; i < form.password.value.length; i++) {
			ch = (form.password.value.substring(i, i + 1)).toLowerCase();
			if (!(((ch >= "a") && (ch <= "z")) || ((ch >= "0") && (ch <= "9")) || (ch == "_") || (ch == "-") || (ch == "."))) {
				us_pass = false;
				good = false;
			}
		}
		if (! us_pass) err+="Password may contain only symbols from a-z, A-Z, 0-9,\n";
			err+="please correct and fill the data and click Join button again.";
	}

    if (!good) {
        alert(err);
        submittedAlready = false;
    }else{
        exit=false;
        good = trySubmit();
    }

    return good;

}

function ccSubmit(form){
    if (!validate(form)) return false;
    form.submit();
}

function getCheckedValue(radioObj) {
    	if(!radioObj)
    		return "";
    	var radioLength = radioObj.length;
    	if(radioLength == undefined)
    		if(radioObj.checked)
    			return radioObj.value;
    		else
    			return "";
    	for(var i = 0; i < radioLength; i++) {
    		if(radioObj[i].checked) {
    			return radioObj[i].value;
    		}
    	}
    	return "";
}
