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("fname").length){
		if (form.fname.value==''){
			good=false;
			err+="First name,\n";
		};
	}

	if (document.getElementsByName("lname").length){
		if (form.lname.value==''){
			good=false;
			err+="Last name,\n";
		};
	}
	
	if (document.getElementsByName("city").length){
		if (form.city.value==''){
			good=false;
			err+="City,\n";
		};
	}
	
	if (document.getElementsByName("zip").length){
		if (form.zip.value==''){
			good=false;
			err+="ZIP code,\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;
	
	

}