// JavaScript Document
var $j = jQuery.noConflict();

function chkField(obj_value,obj_name){
	
	if(obj_name=="full_name"){
		
		if(trim(obj_value)=="")	{
			hideAllFullnameError();
			$("fullname_instruction").style.display="block";
		}else{
			hideAllFullnameError();
			$("fullname_success").style.display="block";
		}
	}
	
	
	if(obj_name=="user_email"){
		
		if(trim(obj_value)==""){
			hideAllEmailError();
			$("email_instruction").style.display="block";
		}else{
			if(checkMail(obj_value)){
				checkEmailAvailability(obj_value);
			}else{
				hideAllEmailError();
				$("email_error").innerHTML="Invalid email";
				$("email_error").style.display="block";
			}
		}
	}
	
	
	if(obj_name=="user_name"){
		//Put value in url string
		$("signup_username_url").innerHTML=trim(obj_value);
		
		if(trim(obj_value)=="")	{
			hideAllUsernameError();
			$("username_instruction").style.display="block";
		}else{
			if( isUsername(obj_value) ){
				//Check availability
				checkUsernameAvailability(obj_value);
			}else{
				hideAllUsernameError();
				$("username_invalid").style.display="block";	
			}
		}
	}
	
	
	if(obj_name=="user_password"){
		
		if(trim(obj_value)==""){
			hideAllPasswordError();
			$("password_instruction").style.display="block";
		}else{
			
			if( isPassword(obj_value) ){
				
				if( obj_value.length>=6 && obj_value.length<12 ){
					hideAllPasswordError();
					$("password_weak").style.display="block";
				}
				
				if( obj_value.length>11 ){
					hideAllPasswordError();
					$("password_good").style.display="block";
				}
				
				if( obj_value.length>15 ){
					hideAllPasswordError();
					$("password_strong").style.display="block";
				}
				
				if( obj_value.length>20 ){
					hideAllPasswordError();
					$("password_very_strong").style.display="block";
				}
			
			}else{
				hideAllPasswordError();
				$("password_invalid").style.display="block";		
			}
			
			
		}
	}
}

function hideAllPasswordError(){
	$("password_weak").style.display="none";
	$("password_good").style.display="none";
	$("password_strong").style.display="none";
	$("password_very_strong").style.display="none";
	$("password_invalid").style.display="none";	
	$("password_instruction").style.display="none";
}

function hideAllUsernameError(){
	$("username_instruction").style.display="none";
	$("username_error").style.display="none";
	$("username_success").style.display="none";
	$("avail_screenname_check_indicator").style.display="none";
	$("username_invalid").style.display="none";
}

function hideAllEmailError(){
	$("email_instruction").style.display="none";
	$("avail_email_check_indicator").style.display="none";
	$("email_success").style.display="none";
	$("email_error").style.display="none";
}
function hideAllFullnameError(){
	$("fullname_instruction").style.display="none";
	$("fullname_success").style.display="none";
	$("fullname_error").style.display="none";
}

function checkUsernameAvailability(obj_value,obj_name){
	
	hideAllUsernameError();
	
	var url = "ajax.php?do=checkUsername&user_name=" + trim(obj_value);
	$('signupbtn').disabled = true;
	new Ajax.Request(url,{
	 method: 'get',
	 onLoading: function(transport){
		$("avail_screenname_check_indicator").style.display="block";
		$('signupbtn').disabled = true;
	 },
	 onSuccess: function(transport){
		
		hideAllUsernameError();
		
		$('signupbtn').disabled = true;
		
		var dr = transport.responseText;
		dr     = dr.split("^");
		
		if(dr[1]==1){
			$("username_error").style.display="block";
			$("username_error").innerHTML="Username already exist.";
		}else{
			if( $('user_name').value != ''){
				$("username_success").style.display="block";
				$('signupbtn').disabled = false;
			}
			else
				$("username_instruction").style.display="block";
		}
		
	 },
	 onFailure: function(transport){
		 // when the request fails
		 alert('The request failed..');
	 },
	 onException: function(err){
		 // When an exception is encountered while executing the callbacks
		 alert('here Exception');
	 }
	 }); 
}

function checkEmailAvailability(obj_value){
	
	hideAllEmailError();
	
	var url = "ajax.php?do=checkEmail&email=" + trim(obj_value);
	$('signupbtn').disabled = true;
	new Ajax.Request(url,{
	 method: 'get',
	 onLoading: function(transport){
		$('avail_email_check_indicator').style.display="block";
		$('signupbtn').disabled = true;
	 },
	 onSuccess: function(transport){
		
		hideAllEmailError();
		
		$('signupbtn').disabled = true;
		
		var dr = transport.responseText;
		dr     = dr.split("^");
		//alert(dr);
		if(dr[1]==1){
			$("email_error").innerHTML="Email has already been taken.";
			$("email_error").style.display="block";
		}else{
			if( $('user_email').value != '' ){
				$("email_success").style.display="block";
				$('signupbtn').disabled = false;
			}
			else
				$("email_instruction").style.display="block";
		}
		
	 },
	 onFailure: function(transport){
		 // when the request fails
		 alert('The request failed..');
	 },
	 onException: function(err){
		 // When an exception is encountered while executing the callbacks
		 alert('here Exception');
	 }
	 }); 
}

function chkSignup(){
	
	var error_msg;
	
	if (document.formSignup.full_name.value.search(/\S/) == -1){ 
		error_msg = 'Please enter your fullname.';
		$("errSignupMsgArea").innerHTML = error_msg;
		$("errSignupMsgArea").className = "msg_area";
		document.formSignup.full_name.select();
		document.formSignup.full_name.focus();
		return false;
	}
	if (document.formSignup.user_name.value.search(/\S/) == -1){ 
		error_msg = 'Please enter your username.';
		$("errSignupMsgArea").innerHTML = error_msg;
		$("errSignupMsgArea").className = "msg_area";
		document.formSignup.user_name.select();
		document.formSignup.user_name.focus();
		return false;
	}
	
	if($("username_invalid").style.display=="block"){
		error_msg = 'Please enter a valid username.';
		$("errSignupMsgArea").innerHTML = error_msg;
		$("errSignupMsgArea").className = "msg_area";
		return false;
	}
	
	if($("username_error").style.display=="block"){
		error_msg = 'Please enter a unique username.';
		$("errSignupMsgArea").innerHTML = error_msg;
		$("errSignupMsgArea").className = "msg_area";
		return false;
	}
	
	if (document.formSignup.user_password.value.search(/\S/) == -1){ 
		error_msg = 'Please enter your password.';
		$("errSignupMsgArea").innerHTML = error_msg;
		$("errSignupMsgArea").className = "msg_area";
		document.formSignup.user_password.select();
		document.formSignup.user_password.focus();
		return false;
	}
	
	if($("password_invalid").style.display=="block"){
		error_msg = 'Please enter a valid password.';
		$("errSignupMsgArea").innerHTML = error_msg;
		$("errSignupMsgArea").className = "msg_area";
		return false;
	}
	if(!checkMail(document.formSignup.user_email.value)){
		error_msg = 'Please enter a valid email address.';
		$("errSignupMsgArea").innerHTML = error_msg;
		$("errSignupMsgArea").className = "msg_area";
		document.formSignup.user_email.select();
		document.formSignup.user_email.focus();
		return false;
	}
	if($("email_error").style.display=="block"){
		error_msg = 'Please enter an unique email address.';
		$("errSignupMsgArea").innerHTML = error_msg;
		$("errSignupMsgArea").className = "msg_area";
		return false;
	}
	return true;
}