
	usernameStatus=0;
	emailStatus=0;
	mobileStatus=0;
	passwordStatus=0;
	firstNameStatus=0;
	lastNameStatus=0;
	genderStatus=0;
	tocStatus=0;

function username_check(username) {
	document.getElementById('username_status').innerHTML = '<div class="form-checking">Checking... Refresh if this appears for long time.</div>';
    
	handle1 = document.getElementById(username);
	
	var illegalChars = /\W/;

	if ((handle1.value.length < 5) || (handle1.value.length > 15)) {
        document.getElementById('username_status').innerHTML = '<div class="form-error">Username must be 5 or more characters and less than 15 characters.</div>';
		usernameStatus=0;
    } else if (illegalChars.test(handle1.value)) {
        document.getElementById('username_status').innerHTML = '<div class="form-error">The username contains illegal characters.</div>';
		usernameStatus=0;
    } else {
	
		if (window.XMLHttpRequest) {
			http = new XMLHttpRequest();
		} else if (window.ActiveXObject) {
			http = new ActiveXObject("Microsoft.XMLHTTP");
		}

		var url = '/register/check.php?';
		if(handle1.value.length > 0) {
			var fullurl = url + 'do=check_username_exists&username=' + encodeURIComponent(handle1.value);
			http.open("GET", fullurl, true);
			http.send(null);
			http.onreadystatechange = statechange_username;
		}else{
			document.getElementById('username_status').innerHTML = '<div class="form-error">Please enter a username.</div>';
			usernameStatus=0;
		}
	
	}
}
function statechange_username() {
    if (http.readyState == 4) {
        var xmlObj = http.responseXML;
        var ruserStatus = xmlObj.getElementsByTagName('result').item(0).firstChild.data;
		if (ruserStatus==0) {
		usernameStatus=0;
        document.getElementById('username_status').innerHTML = '<div class="form-error">Username already taken! Please try another.</div>';
		} else if (ruserStatus==1) {
        document.getElementById('username_status').innerHTML = '<div class="form-ok">Username <i>'+handle1.value+'</i> is Available.</div>';
		usernameStatus=1;
		}
    }
}
function email_check(email) {
	document.getElementById('email_status').innerHTML = '<div class="form-checking">Checking... Refresh if this appears for long time.</div>';
    handle2 = document.getElementById(email);

   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   var address = handle2.value;
   if(reg.test(address) == false) {
	  document.getElementById('email_status').innerHTML = '<div class="form-error">Invalid Email</div>';
      return false;
   }

    if (window.XMLHttpRequest) {
        http = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        http = new ActiveXObject("Microsoft.XMLHTTP");
    }
    var url = '/register/check.php?';
    if(handle2.value.length > 0) {
        var fullurl = url + 'do=check_email_exists&email=' + encodeURIComponent(handle2.value);
        http.open("GET", fullurl, true);
        http.send(null);
        http.onreadystatechange = statechange_email;
    }else{
        document.getElementById('email_status').innerHTML = '<div class="form-error">Please enter your email.</div>';
		emailStatus=0;
    }
}
function statechange_email() {
    if (http.readyState == 4) {
        var xmlObj2 = http.responseXML;
        var remailStatus = xmlObj2.getElementsByTagName('result').item(0).firstChild.data;
        if (remailStatus==0) {
		emailStatus=0;
        document.getElementById('email_status').innerHTML = '<div class="form-error">Email already registered! <a href="/forgot/">Forgot you password?</a></div>';
		} else if (remailStatus==1) {
        document.getElementById('email_status').innerHTML = '<div class="form-ok">Email <i>'+handle2.value+'</i> Accepted. Please note that you need to confirm this email before accessing your account. A verification mail will be sent to you for verifying it.</div>';
		emailStatus=1;
		} else if (remailStatus==3) {
		emailStatus=0;
		alert('Are you trying to be oversmart?');
		}
    }
}

function mobile_check() {
	document.getElementById('mobile_status').innerHTML = '<div class="form-checking">Checking... Refresh if this appears for long time.</div>';
	mobile = document.getElementById('mobile').value;
	
	var valid = "0123456789";
    for (var i=0; i < mobile.length; i++)
		{
		temp = "" + mobile.substring(i, i+1);
		if (valid.indexOf(temp) == "-1")
		{
			document.getElementById('mobile_status').innerHTML = '<div class="form-error">Invalid Mobile number.</div>';
			mobileStatus=0;
			return false;
		}
	}
	if (mobile.length !=10 || mobile <=8000000000 || mobile >=9999999999 ) {
		document.getElementById('mobile_status').innerHTML = '<div class="form-error">Invalid Mobile number.</div>';
		mobileStatus=0;
		return false;
		} else {
		
		if (window.XMLHttpRequest) {
			http = new XMLHttpRequest();
		} else if (window.ActiveXObject) {
			http = new ActiveXObject("Microsoft.XMLHTTP");
		}

		var url = '/register/check.php?';
		if(mobile.length > 0) {
			var fullurl = url + 'do=check_mobile_exists&mobile=' + encodeURIComponent(mobile);
			http.open("GET", fullurl, true);
			http.send(null);
			http.onreadystatechange = statechange_mobile;
		}else{
			document.getElementById('mobile_status').innerHTML = '<div class="form-error">Please enter a mobile.</div>';
			mobileStatus=0;
		}
		}
	}
		function statechange_mobile() {
    if (http.readyState == 4) {
        var xmlObj = http.responseXML;
        var ruserStatus = xmlObj.getElementsByTagName('result').item(0).firstChild.data;
		if (ruserStatus==0) {
		mobileStatus=0;
        document.getElementById('mobile_status').innerHTML = '<div class="form-error">Mobile already registered! </div><strong><a href="/forgot/">Forgot your password?</a></strong>';
		} else if (ruserStatus==1) {
        document.getElementById('mobile_status').innerHTML = '<div class="form-ok">Mobile number <i>'+mobile+'</i> has been accepted. Please make sure you enter correct mobile number. A verification SMS will be sent to you for verifying it.</div>';
		mobileStatus=1;
		return true;
		}
    }
}


function password_check() {
	document.getElementById('password_status').innerHTML = '<div class="form-checking">Checking... Refresh if this appears for long time.</div>';
    pass1 = document.getElementById('password').value;
	pass2 = document.getElementById('password2').value;
		if (pass1.length == 0) {
		document.getElementById('password_status').innerHTML = '<div class="form-error">Please enter a password.</div>';
		passwordStatus=0;
		return false;
		} else if (pass1.length < 8) {
		document.getElementById('password_status').innerHTML = '<div class="form-error">Password length should be more than 8 characters.</div>';
		passwordStatus=0;
		return false;
		} else if (pass1.length >= 8) {
			if (pass2.length==0) {
			document.getElementById('password_status').innerHTML = '<div class="form-error">Please enter confirm password.</div>';
			passwordStatus=0;
			return false;
			} else if (pass1==pass2) {
			document.getElementById('password_status').innerHTML = '<div class="form-ok">Passwords Matched.</div>';
			passwordStatus=1;
			return true;
			} else if (pass1!=pass2) {
			passwordStatus=0;
			document.getElementById('password_status').innerHTML = '<div class="form-error">Password and confirm password do not match. Please enter again.</div>';
			return false;
			} else {
			document.getElementById('password_status').innerHTML = '<div class="form-error">Some error occured!</div>';
			alert('Some error occured!');
			return false;
			}
		}
}

function fname_check() {
	document.getElementById('fname_status').innerHTML = '<div class="form-checking">Checking... Refresh if this appears for long time.</div>';
	fname = document.getElementById('fname').value;
	if(fname<=0) {
		firstNameStatus=0;
		document.getElementById('fname_status').innerHTML = '<div class="form-error">Please enter your First Name.</div>';
	} else {
		firstNameStatus=1;
		document.getElementById('fname_status').innerHTML = '<div class="form-ok">Hey '+fname+'! You have a lovely name!</div>';
	}
}

function lname_check() {
	document.getElementById('lname_status').innerHTML = '<div class="form-checking">Checking... Refresh if this appears for long time.</div>';
	lname = document.getElementById('lname').value;
	if(lname<=0) {
		lastNameStatus=0;
		document.getElementById('lname_status').innerHTML = '<div class="form-error">Please enter your Last Name.</div>';
	} else {
		lastNameStatus=1;
		document.getElementById('lname_status').innerHTML = '<div class="form-ok">'+lname+' sounds quite good!</div>';
	}
}

function gender_check() {
	document.getElementById('gender_status').innerHTML = '<div class="form-checking">Checking... Refresh if this appears for long time.</div>';
	if((document.getElementById('male').checked == false) && (document.getElementById('female').checked == false))	 {
		genderStatus=0;
		document.getElementById('gender_status').innerHTML = '<div class="form-error">Please select you gender.</div>';
	} else {
		genderStatus=1;
		document.getElementById('gender_status').innerHTML = '<div class="form-ok"></div>';
	}
}

function toc_check() {	
	document.getElementById('toc_status').innerHTML = '<div class="form-checking">Checking... Refresh if this appears for long time.</div>';
	if(document.getElementById('toc').checked == false) {
		tocStatus=0;
		document.getElementById('toc_status').innerHTML = '<div class="form-error">Please check Terms & Conditions.</div>';
	} else {
		tocStatus=1;
		document.getElementById('toc_status').innerHTML = '<div class="form-ok"></div>';
	}
}


function register_check() {

	username_check('username');
	password_check();
	email_check('email');
    mobile_check();
	fname_check();
	lname_check();
	gender_check();
	toc_check();
	
	if (usernameStatus==0) {
					alert("Please check username.");
                    return false;
                }
	
	if (passwordStatus==0) {
					alert("Please check passwords.");
                    return false;
                }
	
	if (emailStatus==0) {
					alert("Please check your email.");
                    return false;
                }

	if (mobileStatus==0) {
					alert("Please check your mobile.");
                    return false;
                }

	if (firstNameStatus==0) {
					alert("Please enter your First Name.");
                    return false;
                }
				
	if (lastNameStatus==0) {
					alert("Please enter your Last Name.");
                    return false;
                }

	if (genderStatus==0) {
					alert("Please select your Gender.");
                    return false;
                }
	
	if (tocStatus==0) {
					alert("Please check Terms & Conditions.");
                    return false;
                }
	var rform = document.getElementById("registerform");
	rform.password.value = $.sha1(rform.password.value);
	rform.password2.value = $.sha1(rform.password2.value);
}