// JavaScript Document
function submitForm() {
	var form = document.getElementById('fmReg');
	
	if (checkForm()) {
		form.action = "do_reg.php";
		form.submit();
	}
}

function checkLoginNameAvailability() {
	var val = document.getElementById('txtLoginName').value;

	document.getElementById('lblLoginNameErr1').className = "redTextHide";
	document.getElementById('lblLoginNameErr2').className = "redTextHide";
	document.getElementById('lblLoginNameErr3').className = "redTextHide";
	document.getElementById('lblLoginNameErr4').className = "redTextHide";
	document.getElementById("lblLoginNameAvailable1").className = "greenTextHide";
	document.getElementById("lblLoginNameAvailable2").className = "redTextHide";
	document.getElementById("lblLoginNameAvailable3").className = "redTextHide";

	if (checkLoginName(val)==0) {
		document.getElementById('ifmCheckLogin').src="check_login_name.php?loginName="+val;
	}
}


function checkForm() {
	var form = document.getElementById('fmReg');
	var err = 0;
	
	document.getElementById('lblNameErr1').className = "redTextHide";
	document.getElementById('lblNameErr2').className = "redTextHide";
	document.getElementById('lblLoginNameErr1').className = "redTextHide";
	document.getElementById('lblLoginNameErr2').className = "redTextHide";
	document.getElementById('lblLoginNameErr3').className = "redTextHide";
	document.getElementById('lblLoginNameErr4').className = "redTextHide";
	document.getElementById('lblPasswordErr1').className = "redTextHide";
	document.getElementById('lblPasswordErr2').className = "redTextHide";
	document.getElementById('lblPasswordErr3').className = "redTextHide";
	document.getElementById('lblPasswordAgainErr1').className = "redTextHide";
	document.getElementById('lblPasswordAgainErr2').className = "redTextHide";
	document.getElementById('lblEmailErr1').className = "redTextHide";
	document.getElementById('lblEmailErr2').className = "redTextHide";
	document.getElementById('lblEmailErr3').className = "redTextHide";
	document.getElementById('lblEmailAgainErr1').className = "redTextHide";
	document.getElementById('lblEmailAgainErr2').className = "redTextHide";
	document.getElementById("lblLoginNameAvailable1").className = "greenTextHide";
	document.getElementById("lblLoginNameAvailable2").className = "redTextHide";
	document.getElementById("lblLoginNameAvailable3").className = "redTextHide";
	
	err = err + checkName(form.txtName.value);
	err = err + checkLoginName(form.txtLoginName.value);
	err = err + checkPassword(form.txtPassword.value);
	err = err + checkPasswordAgain(form.txtPasswordAgain.value, form.txtPassword.value);
	err = err + checkEmail(form.txtEmail.value);
	err = err + checkEmailAgain(form.txtEmail.value, form.txtEmailAgain.value);
	
	if (err!=0) {
		return false;
	}
	else {
		return true;
	}
}


function checkName (val) {
	var err = 0;
	
	if (Trim(val)=="") {
    	document.getElementById('lblNameErr1').className = "redTextShow";
		err=1;
	}

	// allow only letters, numbers, and underscores
	if (!IsValidChar(val) && err==0) {
    	document.getElementById('lblNameErr2').className = "redTextShow";
		err=2;
	}
	
	return err;
}

function checkLoginName (val) {
	var err = 0;
	var illegalChars = /\W/;
	
	if (Trim(val)=="") {
    	document.getElementById('lblLoginNameErr1').className = "redTextShow";
		err=1;
	}

	if ((illegalChars.test(val) || hasWhiteSpace(Trim(val))) && err==0) {
    	document.getElementById('lblLoginNameErr2').className = "redTextShow";
		err=2;
	}

	if (Trim(val).length < 4 &&  err==0) {
    	document.getElementById('lblLoginNameErr3').className = "redTextShow";
		err=3;
	}
	
	return err;
}

function checkPassword(val) {
	var err = 0;
	var illegalChars = /[\W_]/; // allow only letters and numbers

	if (Trim(val)=="") {
    	document.getElementById('lblPasswordErr1').className = "redTextShow";
		err=1;
	}
    
	if (illegalChars.test(val) && err==0) {
    	document.getElementById('lblPasswordErr2').className = "redTextShow";
		err=2;
    }
	
	if (val.length < 6 && err==0) {
		document.getElementById('lblPasswordErr3').className = "redTextShow";
        err=3;
    }
	
	return err;
}

function checkPasswordAgain(val1, val2) {
	var err = 0;

	if (Trim(val1)=="") {
    	document.getElementById('lblPasswordAgainErr1').className = "redTextShow";
		err=1;
	}
    
	if (val1 != val2 && err==0) {
    	document.getElementById('lblPasswordAgainErr2').className = "redTextShow";
		err=2;
    }
	
	return err;
}

function checkEmail (val) {
	var emailFilter=/^.+@.+\..{2,3}$/;
	var err = 0;
	
	if (Trim(val)=="") {
    	document.getElementById('lblEmailErr1').className = "redTextShow";
		err=1;
	}
	
	if (!(emailFilter.test(val)) && err==0) { 
    	document.getElementById('lblEmailErr2').className = "redTextShow";
		err=2;
	}
	
	var illegalChars= /[\(\#\~\)\<\>\,\;\:\\\/\"\[\]]/
	if ((val.match(illegalChars) || hasWhiteSpace(Trim(val))) && err==0) {
	   document.getElementById('lblEmailErr3').className = "redTextShow";
	   err=3;
	}
	
	return err;
}

function checkEmailAgain(val1, val2) {
	var err = 0;

	if (Trim(val1)=="") {
    	document.getElementById('lblEmailAgainErr1').className = "redTextShow";
		err=1;
	}
    
	if (val1 != val2 && err==0) {
    	document.getElementById('lblEmailAgainErr2').className = "redTextShow";
		err=2;
    }
	
	return err;
}
