window.onunload = function() { submittedAlready = false; };
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+="Username must be at least 6 characters long.\n";
		};
		
		if (form.username.value.length>12){
			good=false;
			err+="Username must not exceed 12 characters.\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 characters long.\n";
		};
		if (form.password.value.length > 10){
			good=false;
			err+="Password must not exceed 10 characters.\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 GeneratePassword() {
    
    var sPassword = "";
    
    var noPunction = 1;
    var length = Math.random(); 
    
    length = parseInt(length * 100);
    length = (length % 7) + 6;

    chars = "abcdefghijklmnopqrstuvwxyz1234567890";
    length = 10;
    //alert((10 % 7)+4);
    //console.log((0 % 7)+4 +'|'+(100 % 7)+4)
    
    
    pass = "";
    for(x=0;x<length;x++)
    {
        i = Math.floor(Math.random() * 36);
        pass += chars.charAt(i);
    }
    return pass;
    /*
    for (i=0; i < length; i++) {
    
        numI = getRandomNum();
        if (noPunction) { while (checkPunc(numI)) { numI = getRandomNum(); } }
        
        sPassword = sPassword + String.fromCharCode(numI);
    }
    
    return sPassword;
    */
}

function getRandomNum() {
        
    // between 0 - 1
    var rndNum = Math.random()

    // rndNum from 0 - 1000    
    rndNum = parseInt(rndNum * 1000);

    // rndNum from 33 - 127        
    rndNum = (rndNum % 94) + 33;
            
    return rndNum;
}

function checkPunc(num) {
    
    if ((num >=33) && (num <=47)) { return true; }
    if ((num >=58) && (num <=64)) { return true; }    
    if ((num >=91) && (num <=96)) { return true; }
    if ((num >=123) && (num <=126)) { return true; }
    
    return false;
}


function setCheckedValue(radioObj, newValue) {
	if(!radioObj)
		return;
	var radioLength = radioObj.length;
	if(radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for(var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		if(radioObj[i].value == newValue.toString()) {
			radioObj[i].checked = true;
		}
	}
}
