
function checkValidUsername(srcObj) {
	$err="";
	if (srcObj.value.length<4) $err="At least 4 letters required";
	if (srcObj.value.length>50) $err="No more than 50 letters allowed";
	nonan=new RegExp(/[^a-zA-Z0-9]/);
	if (nonan.test(srcObj.value)) $err="Alphanumeric chatacters only";
	sIH(srcObj.id+"Alert",$err);
	if ($err=="") {
		srcObj.className="normalinput";
		return true;
	}else{
		srcObj.className="failedinput";
		return false;
	}	
}
var usernameInput=null;
function checkUsername(srcObj) {
	usernameInput=srcObj;
	if (checkValidUsername(srcObj)) {
		sPR("/index.php","cmd=availableUsername&username="+srcObj.value,usernameReceived);
	}
}
function usernameReceived(reply) {
	if (reply=="ok") {
		usernameInput.className="normalinput"
		sIH(usernameInput.id+"Alert","");
	}else{
		usernameInput.className="failedinput"
		sIH(usernameInput.id+"Alert",reply);
	}
}
function verifyLogin() {
	if (checkValidUsername(ob('username')) && checkValidPassword(ob('password'))) {
		sIH("loginMessage","Validating login...");
		var un=ob('username').value;
		var pw=ob('password').value;
		var vars="cmd=loginverify&un="+un+"&pw="+pw;
		if (!ob('remember')) vars+="&linktofacebook=1";
		sPR("/index.php",vars,verifyReceived);
	}
}
function verifyReceived(reply) {
	if (reply.substr(0,1)=="!") {
		sIH("loginMessage",reply.replace("!",""));
	}else{
		sIH("loginMessage","Processing login...");
		var un=ob('username').value;
		var pw=ob('password').value;
		var vars="cmd=login&un="+un+"&pw="+pw+"&sec="+reply;
		rem=ob('remember');
		if (rem) {
			vars+="&remember="+(rem.checked?"on":"off");
		}else{
			vars+="&remember=off&linktofacebook=1";
		}
		//alert(vars);
		sPR("/index.php",vars,loggedin);
	}
}
function loggedin(reply) {
	//alert(reply);
	if (reply=="loggedin") {
		sIH("loginMessage","Logged in...");
		window.location.reload();
	}else{
		//alert(reply);
		sIH("loginMessage","Incorrect login details");
	}
}

function checkValidEmail(val) {	
    alpharegex=new RegExp(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/);
    ok=alpharegex.test(val.value);
	if (ok) {
		val.className="normalinput";
		sIH(val.id+"Alert","");
	}else{
		val.className="failedinput";
		sIH(val.id+"Alert","Not a valid email format");
	}
	return ok;
}
function checkValidPassword(val) {	
    alpharegex=new RegExp(/^([a-zA-Z0-9]{6,11})$/);
    ok=alpharegex.test(val.value);
	if (ok) {
		val.className="normalinput";
		sIH(val.id+"Alert","");
	}else{
		val.className="failedinput";
		sIH(val.id+"Alert","6-11 alphanumeric chars");
	}
	return ok;
}
var emailInput=null;
function validateEmail(src) {
	emailInput=src;
	if (checkValidEmail(src)) sPR("/index.php","cmd=available&email="+src.value,emailChecked);	
}
function emailChecked(reply) {
	if (reply=="ok") {
		emailInput.className="normalinput";
		sIH(emailInput.id+"Alert","");
	}else{
		emailInput.className="failedinput";
		sIH(emailInput.id+"Alert",reply);
	}
}
function register() {
	if (ob("registerpassword").className=="normalinput") {
		if (ob("firstname").className=="normalinput") {
			if (ob("lastname").className=="normalinput") {
				if (ob("registerusername").className=="normalinput") {
					vars="cmd=register";
					vars+="&username="+ob("registerusername").value;
					vars+="&userpw="+ob("registerpassword").value;
					//vars+="&userem="+ob("registeremail").value;
					vars+="&userfn="+ob("firstname").value;
					vars+="&userln="+ob("lastname").value;
					if (ob("registeremail").className=="normalinput") vars+="&userem="+ob("registeremail").value;
					sIH("registerMessage","Registering...");
					sPR("/index.php",vars,registered);
				}
			}
		}
	}
}

function registered(reply) {
	if (reply=="ok") {
		f=null;
		if (ob("newuserform")) {
			f=ob("newuserform");
		}else{
			f=ob("registerform");
		}
		f.innerHTML="<b>Congratulations</b><br />Your are now registered. You are being redirected to the home page";
		window.location="/";
	}else{
		sIH("registerMessage",reply);
	}
}
function isUsernameAvailable(src) {
	un=src.value;
	if (checkvalidinput(src,false,6)) {
		sPR("user.php","cmd=useravailable&usernom="+un,UsernameChecked);
		return true;
	}else{
		return false;
	}
}
function UsernameChecked(reply){
	if (reply=="OK") {
		ob("registerusername").className="normalinput";
		sIH("registerusernameAlert","");
	}else{
		ob("registerusername").className="failedinput";
		sIH("registerusernameAlert",reply);
	}
}
function getPassword() {
	if (checkValidEmail(ob('email'))) {
		sIH("loginMessage","Requesting...");
		sPR("index.php","cmd=forgot&userem="+ob("email").value,forgotReceived);
	}else{
		sIH("loginMessage","Please supply a valid email address");
	}
}
function forgotReceived(reply) {
	sIH("loginMessage",reply);
}

function resendValidation(un) {
	sIH("loginMessage","Resending verification...");
	sPR("/index.php","cmd=resendValidation&un="+un,forgotReceived);
}
function validationSent(reply) {
	sIH("loginMessage",reply);
}
function hideAllBadges() {
	dvs=document.getElementsByTagName("DIV");
	for(i=0;i<dvs.length;i++) {
		if (dvs[i].className=='badgefeature') showOverlay(dvs[i],false);
	}
}