var checkemail = function (emailSTR){
	var testresults = false; // init
	var str=$.trim( emailSTR );
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (filter.test(str) ){
		testresults=true;
	}
	return (testresults);
}




var userOK = false; 
var passOK = false; 
var fnameOK = false; 
// var lnameOK = false; 
var lnameOK = true; 
var emailOK = false; 
var registerFormOK = false;



var checkForm = function(){
	if( userOK && passOK && fnameOK && lnameOK && emailOK ){
		registerFormOK = true;
		$('#appButton').attr("disabled", false ).html("Submit Registration");
	}else{
		registerFormOK = false;
		$('#appButton').attr("disabled", true ).html("Please Complete Registration Form");
	}
}

var validate = function(){
	if( registerFormOK ){
		$('#registerForm').submit();
	}else{
		return false;
	}
}

$(document).ready( function(){ 
// Document Ready Scripts
	

	
	
	$('#appButton').attr("disabled", true ).html("Please Complete Registration Form"); // Form Button Is Disabled At First
	
	
	
 // USER NAME METHODS
 
 $('#uname').blur( function(){ 
 	$(this).val( $.trim( $(this).val() ) );
 	
	if( $(this).val().length < 6 ){ 
		$(this).removeClass("register_input").addClass("appInputError");
		$('#unameERROR').addClass("appError").html("User name must be between 6 and 16 characters.");
		userOK = false;
		
	}else{
		$(this).removeClass("appInputError").addClass("register_input");
		$('#unameERROR').html("").removeClass("appError");
		userOK = true;
	}
	
	// Now Check if user is available
	if( userOK ){
		$.get("ajax.user.available.php",{uname:$('#uname').val()}, function( data ) {
			// alert( data );
			var avail = eval( data );
			// alert( avail );
			
			if( !avail ){
				$('#unameERROR').addClass("appError").html("This username is unavailable.");
				userOK = false;
			}
			
		});
	}
	
	checkForm();
 });


// PASSWORD FUNCTIONS
var passChk = false;
$('#upass').focus( function(){
	passChk = $(this).val();
}).blur( function(){
	$(this).val( $.trim( $(this).val() ) );
	if($(this).val() != passChk ){ $('#upass2').val(""); } 
	if( $(this).val().length < 6 ){
		$(this).removeClass("register_input").addClass("appInputError");
		$('#upassERROR').addClass("appError").html("Password must be between 6 and 16 characters.");
		$('#upass2').attr("disabled", true ).addClass("register_input_disabled");
		passOK = false;
	}else{
		$(this).removeClass("appInputError").addClass("register_input");
		$('#upassERROR').html("").removeClass("appError");
		$('#upass2').attr("disabled", false ).removeClass("register_input_disabled").focus();
	}
	checkForm();
});

$('#upass2').attr("disabled", true ).addClass("register_input_disabled");
$('#upass2').blur( function(){
	$(this).val( $.trim( $(this).val() ) );
	if( $(this).val() != $('#upass').val() ){
		$(this).removeClass("register_input").addClass("appInputError");
		$('#upass2ERROR').addClass("appError").html("Password confirmation does not match.");
		passOK = false;
	}else{
		$(this).removeClass("appInputError").addClass("register_input");
		$('#upass2ERROR').html("").removeClass("appError");
		passOK = true;
	}
	checkForm();
});


// FIRST NAME
$('#fname').blur( function(){ 
	$(this).val( $.trim( $(this).val() ) );
 	if( $(this).val() == "" ){ 
		$(this).removeClass("register_input").addClass("appInputError");
		$('#fnameERROR').addClass("appError").html("First name is required.");
		fnameOK = false;
	}else{
		$(this).removeClass("appInputError").addClass("register_input");
		$('#fnameERROR').html("").removeClass("appError");
		fnameOK = true;
	}
	checkForm();
 });


// LAST NAME
$('#lname').blur( function(){ 
	$(this).val( $.trim( $(this).val() ) );
 	if(  $(this).val()  == "" ){ 
		$(this).removeClass("register_input").addClass("appInputError");
		$('#lnameERROR').addClass("appError").html("Last name is required.");
		lnameOK = false;
		
	}else{
		$(this).removeClass("appInputError").addClass("register_input");
		$('#lnameERROR').html("").removeClass("appError");
		lnameOK = true;
	}
	checkForm();
 });



// EMAIL FUNCTIONS
$('#email').blur( function(){ 
	$(this).val( $.trim( $(this).val() ) );
 	if( !checkemail( $(this).val()  ) ){ 
		$(this).removeClass("register_input").addClass("appInputError");
		$('#emailERROR').addClass("appError").html("Email address is required.");
		emailOK = false;
	}else{
		$(this).removeClass("appInputError").addClass("register_input");
		$('#emailERROR').html("").removeClass("appError");
		emailOK = true;
	}
	checkForm();
 });
 
 
 // ADDRESS FUNCTIONS
 
$('#addr2').attr("disabled", true ).addClass("register_input_disabled");
$('#addr').blur( function(){ 
	$(this).val( $.trim( $(this).val() ) );
	if( $(this).val() == "" ){
		$('#addr2').attr("disabled", true ).addClass("register_input_disabled");
	}else{
		$('#addr2').attr("disabled", false ).removeClass("register_input_disabled");
		$('#addr2').focus();
	}
});

$('#addr2').blur( function(){ $(this).val( $.trim( $(this).val() ) ); } );
 $('#city').blur( function(){ $(this).val( $.trim( $(this).val() ) );  $('#state').focus(); } );
$('#phone').blur( function(){ $(this).val( $.trim( $(this).val() ) ); } );



$('#zip').blur( function(){ 
	$(this).val( $.trim( $(this).val() ) ); 
	$.get( 'ajax.register.lookup.php?zip='+$(this).val(), '', function(data){
		data = eval( data );
		if( data ){
			$('#city').val( data[2] );
			$('#state').val( data[0] );
			$('#email').focus()	;
		}else{
			$('#city').focus()	;
		}
	}); // End Ajax Lookup
});


 
 
 // SUBMIT BUTTON 
 $('#appButton').click( function(){
 	validate();
 });
 

$('#formHELP').hide();
$('#shadowHELP').hide();

// LOAD HELP DATA
var emailHelpHTML  = false; $.get('ajax.register.help.php?type=email','', function(data){ emailHelpHTML = data; });
var lnameHelpHTML  = false; $.get('ajax.register.help.php?type=lname','', function(data){ lnameHelpHTML = data; });
var fnameHelpHTML  = false; $.get('ajax.register.help.php?type=fname','', function(data){ fnameHelpHTML = data; });
var passHelpHTML   = false; $.get('ajax.register.help.php?type=upass','',  function(data){ passHelpHTML  = data; });
var pass2HelpHTML  = false; $.get('ajax.register.help.php?type=upass2','', function(data){ pass2HelpHTML  = data; });
var userHelpHTML   = false; $.get('ajax.register.help.php?type=uname','',  function(data){ userHelpHTML  = data; });
var addrHelpHTML   = false; $.get('ajax.register.help.php?type=addr','',  function(data){ addrHelpHTML  = data; });
var zipHelpHTML    = false; $.get('ajax.register.help.php?type=zip','',   function(data){ zipHelpHTML   = data; });
var cityHelpHTML   = false; $.get('ajax.register.help.php?type=city','',  function(data){ cityHelpHTML  = data; });
var stateHelpHTML  = false; $.get('ajax.register.help.php?type=state','', function(data){ stateHelpHTML = data; });
var phoneHelpHTML  = false; $.get('ajax.register.help.php?type=phone','', function(data){ phoneHelpHTML = data; });
var weeklyHelpHTML = false; $.get('ajax.register.help.php?type=weekly','', function(data){ weeklyHelpHTML = data; });
// HELP ICONS
$('#userHelpDIV').mouseover( function(){ showHelp( userHelpHTML, $(this), 300, 80 ); }).mouseout( function(){ hideHelp(); });
$('#upassHelpDIV').mouseover( function(){ showHelp( passHelpHTML, $(this), 300, 95 ); }).mouseout( function(){ hideHelp(); });
$('#upass2HelpDIV').mouseover( function(){ showHelp( pass2HelpHTML, $(this), 300, 80 ); }).mouseout( function(){ hideHelp(); });
$('#fnameHelpDIV').mouseover( function(){ showHelp( fnameHelpHTML, $(this), 300, 60 ); }).mouseout( function(){ hideHelp(); });
$('#lnameHelpDIV').mouseover( function(){ showHelp( lnameHelpHTML, $(this), 300, 60 ); }).mouseout( function(){ hideHelp(); });
$('#addrHelpDIV').mouseover( function(){ showHelp( addrHelpHTML, $(this), 300, 125 ); }).mouseout( function(){ hideHelp(); });
$('#zipHelpDIV').mouseover( function(){ showHelp( zipHelpHTML, $(this), 300, 85 ); }).mouseout( function(){ hideHelp(); });
$('#cityHelpDIV').mouseover( function(){ showHelp( cityHelpHTML, $(this), 300, 85 ); }).mouseout( function(){ hideHelp(); });
$('#stateHelpDIV').mouseover( function(){ showHelp( stateHelpHTML, $(this), 300, 80 ); }).mouseout( function(){ hideHelp(); });
$('#emailHelpDIV').mouseover( function(){ showHelp( emailHelpHTML, $(this), 300, 125 ); }).mouseout( function(){ hideHelp(); });
$('#phoneHelpDIV').mouseover( function(){ showHelp( phoneHelpHTML, $(this), 300, 50 ); }).mouseout( function(){ hideHelp(); });
$('#weeklyHelpDIV').mouseover( function(){ showHelp( weeklyHelpHTML, $(this), 300, 70 ); }).mouseout( function(){ hideHelp(); });


var showHelp = function( html, obj, wd, ht ){
	var h = $('#formHELP');
	var s = $('#shadowHELP');
	var loc = obj.offset();
	var x = ( loc.left - wd ) - 50;
	var y = ( loc.top - ht ) + (ht*.5);
	
	
	h.width(wd).height(ht).css({"left":x , "top":y}).html( html ).show();
	
	var sw = h.width();
	var sh = h.height();
	var sx = x+15;
	var sy = y+15;
	
	
	s.width(sw).height(sh).css({"left":sx , "top":sy}).html( "&nbsp;" ).show().fadeTo( 1, 0.33 );

}

var hideHelp = function( ){
	$('#formHELP').html( "" ).hide();
	$('#shadowHELP').hide();
}


});
