// jsSignup.js

function signupsubmit(){

	empty = false;
	fm 	= document.signupform;
	var username = fm.username.value;
	var password = fm.password.value;
	var email = fm.email.value;
	var website = fm.website.value;
	x_ajax_register(username, password, email, website, register_output);
	
/*	lenchecker(fm.username,"username_hint","Your username must be between 6 and 16 characters","Your username can be between 6 and 16 characters")
	lenchecker(fm.password,"password_hint","Please enter a password between 6 and 16 characters","Your password can be between 6 and 16 characters");
	url_validator(fm.website,"website_hint","You entered an invalid website URL, remember to add the full url including http://","Enter a full url including http://. To use Moop this website will require WordPress be installed.");
	email_validator(fm.email);
	if (empty = false){
		document.signupform.submit()
	}	
*/	
}

function register_output(content){
	fm = document.signupform;
	var errors = content.split(';');

	reset(fm);	
	for (var i = 0; i < errors.length; i++){
		var error = errors[i].split('=');
		switch(error[0]){
			case 'success':
				show_success(error[1]);
				return true;
			case 'user':
				target = "username_hint";
				obj = fm.username;
				break;
			case 'password':
				target = "password_hint";
				obj = fm.password;
				break;
			case 'email':
				obj = fm.email;
				target = "email_hint";
				break;
			case 'url':
				obj = fm.website;
				target = "website_hint";
				break;
			default:
				continue;
				break;
		}
		show_error(obj, target, error[1]);
	}
}
function show_success(msg){
	document.getElementById("title").innerHTML = "<p>Thank you for your registration</p>";
	document.getElementById("signupform").innerHTML = msg + "<a href='\' class='link_150'>Close</a>";
}

function reset(fm){

	document.getElementById("username_hint").innerHTML = "Your username can be between 6 and 16 characters";
	document.getElementById("password_hint").innerHTML = "Your password can be between 6 and 16 characters";
	document.getElementById("website_hint").innerHTML = "Enter a full url including http://. To use Moop this website will require WordPress be installed.";
	document.getElementById("email_hint").innerHTML = "Your email is required to inform you when you account is approved";
	document.getElementById("username_hint").className = "hint";
	document.getElementById("password_hint").className = "hint";
	document.getElementById("website_hint").className = "hint";
	document.getElementById("email_hint").className = "hint";
	fm.username.className = "";
	fm.password.className = "";
	fm.email.className ="";
	fm.website.className = "";
}
function show_error(obj, target, msg){
	document.getElementById(target).innerHTML = msg;
	document.getElementById(target).className = "hint hint_error";
	obj.className = "input_error";
}

function lenchecker(obj,target,msg,orig){
	if((obj.value.length < 6) || (obj.value.length > 16)){
		document.getElementById(target).innerHTML = msg;
		document.getElementById(target).className = "hint hint_error";
		obj.className = "input_error";
		empty = true;
	}else{
		document.getElementById(target).innerHTML = orig;
		document.getElementById(target).className = "hint";
		obj.className = "";
	}
}

function url_validator(obj,target,msg,orig) {
    var v = new RegExp();
    //v.compile("^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$");
	v.compile("^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.){1}([0-9A-Za-z]+\.)");
    if (!v.test(obj.value)) {
        document.getElementById(target).innerHTML = msg;
		document.getElementById(target).className = "hint hint_error";
		obj.className = "input_error";
		empty = true;
    }else{
		document.getElementById(target).innerHTML = orig;
		document.getElementById(target).className = "hint";
		obj.className = "";
	}
} 
	
//Email Validator Functions
function email_validator(obj){
	var emailStr=obj.value;var emailPat=/^(.+)@(.+)$/;
	
	var specialChars="\\(\\)!£$%^&*()+='#~?<>@,;:\\\\\\\"\\.\\[\\]";var validChars="\[^\\s" + specialChars + "\]";var quotedUser="(\"[^\"]*\")";var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+';var word="(" + atom + "|" + quotedUser + ")";var userPat=new RegExp("^" + word + "(\\." + word + ")*$");var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");var matchArray=emailStr.match(emailPat)
	if (obj.value==""){message("You forgot to enter your email address<br /><br />",obj)}
	if ((matchArray==null) && empty==false){message("Email address seems incorrect (check @ and .'s)",obj)}
	if (empty==false){var user=matchArray [1];var domain=matchArray [2];if (user.match(userPat)==null){message("The username doesn't seem to be valid.",obj)}}
	if (empty==false){var IPArray=domain.match(ipDomainPat);if (IPArray!=null){for (var j=1;j<=4;j++){if (IPArray[j]>255){message("Destination IP address is invalid!",obj)}}}}
	if (empty==false){var domainArray=domain.match(domainPat);if (domainArray==null){message("The domain name doesn't seem to be valid.",obj)}}
	if (empty==false){var atomPat=new RegExp(atom,"g");var domArr=domain.match(atomPat);var len=domArr.length;if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3){message("The address must end in a three-letter domain, or two letter country.",obj)}}
	if ((len<2) && empty==false){message("This address is missing a hostname!",obj)}
	
	if(empty == false){
		document.getElementById(target).innerHTML = "Your email is required to inform you when you account is approved";
		document.getElementById(target).className = "hint";
		obj.className = "";
	}
}
	
function message(msg,obj){
	document.getElementById('email_hint').innerHTML = msg;
	document.getElementById('email_hint').className = "hint hint_error";
	obj.className = "input_error";
	empty = true;
}