var userlength = 3;
var validuser = "";
var validemail = "";
var validpass = "";
var ajaxing = false;

Event.observe('screen_name','keyup',checkValidUser);
Event.observe('screen_name','blur',checkValidUser);

Event.observe('email','keyup',checkValidEmail);
Event.observe('email','blur',checkValidEmail);

Event.observe('password','keyup',checkValidPassword);
Event.observe('password','blur',checkValidPassword);

Event.observe('confirm_pass','keyup',checkValidPassword);
Event.observe('confirm_pass','blur',checkValidPassword);


function checkValidUser() {
    var user = $('screen_name').value;
    
    if (user.length < userlength) {
    	if (validuser != "false") {
    		new Effect.Morph('screen_name',{ style: 'border-color: #b8293f' });
    		new Effect.Morph('valid_screenname',{ style: 'color: #b8293f' });
    	}
    	validuser = "false";
    	$('valid_screenname').innerHTML = "Screen name must be more than 3 characters.";
    	return false;
    }
    
    ajaxing = true;
    
    new Ajax.Request('http://www.fly-post.com/modules/users/ajax/check-user.php?query=' + escape(user), {
    	onComplete: function(data) {
    		checkValidUserXML(data.responseXML);
    	}
    });
}

function checkValidUserXML(xml) {
    var ok = xmlgetvar(xml,"Ok");
    if (ok == "true") {
    	if (validuser != "true") {
    		new Effect.Morph('screen_name',{ style: 'border-color: #4ab859' });
    		new Effect.Morph('valid_screenname',{ style: 'color: #4ab859' });
    		$('valid_screenname').innerHTML = "Good to go!";
    		validuser = "true";
    	}
    } else {
    	if (validuser != "false") {
    		new Effect.Morph('screen_name',{ style: 'border-color: #b8293f' });
    		new Effect.Morph('valid_screenname',{ style: 'color: #b8293f' });
    	}
    	$('valid_screenname').innerHTML = "Screen Name in use.";
    	validuser = "false";
    }
}

function checkValidEmail() {
    if (checkEmail("email") == false) {
    	if (validemail != "false") {
    		new Effect.Morph('email',{ style: 'border-color: #b8293f' });
    		new Effect.Morph('valid_email',{ style: 'color: #b8293f' });
    	}
    	$('valid_email').innerHTML = "You must enter a valid email address.";
    	validemail = "false";
    } else {
    	if (validemail != "true") {
    		new Effect.Morph('email',{ style: 'border-color: #4ab859' });
    		new Effect.Morph('valid_email',{ style: 'color: #4ab859' });
    	}
    	$('valid_email').innerHTML = "Good to go!";
    	validemail = "true";
    }
}

function checkValidPassword() {
    var pass = $('password').value;
    var cpass = $('confirm_pass').value;
    if (cpass != "") {
    	if (pass != cpass) {
    		if (validpass != "false") {
    			new Effect.Morph('confirm_pass',{ style: 'border-color: #b8293f' });
    			new Effect.Morph('valid_password',{ style: 'color: #b8293f' });
    		}
    		$('valid_password').innerHTML = "Passwords don't match!";
    		validpass = "false";
    	} else {
    		if (validpass != "true") {
    			new Effect.Morph('confirm_pass',{ style: 'border-color: #4ab859' });
    			new Effect.Morph('valid_password',{ style: 'color: #4ab859' });
    		}
    		$('valid_password').innerHTML = "Good to go!";
    		validpass = "true";
    	}
    }
}

function checkValidSubmit() {
    if (validpass != "true")
    	return false;
    if (validemail != "true")
    	return false;
    if (validuser != "true")
    	return false;
    return true;
}


function xmlgetvar(xml,tagname) {
    var x;
    try {
    	x = xml.getElementsByTagName(tagname)[0].firstChild.data;
    } catch (er) {
    	x = "";
    }
    return x;
}

function xmlgetarray(xml,tagname) {
    var x;
    try {	
    	x = xml.getElementsByTagName(tagname);
    } catch (er) {
    	x = "";
    }
    return x;
}

function checkEmail(obj) {
    var o = document.getElementById(obj);
    var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (filter.test(o.value) == false || o.value == "") {
    	return false;
    } else {
    	return true;
    }
}