validation_errors = 0;

function clearValidationErrors()
{
	validation_errors = 0;
	$$('.formerror').each(function(item){
		item.remove();
	});
}

function addValidationError(input_el, msg)
{
	validation_errors++;
	var error_el = new Element("div");
	error_el.addClass("formerror");
	error_el.setText(msg);
	error_el.injectAfter(input_el.getParent());
}

function checkRequired(input_el)
{
	if (input_el.value != "") return true;

	addValidationError(input_el, getPrettyName(input_el)+" is required.");
	return false;
}

function validateEmail(value)
{
	var pattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/; 
	return pattern.test(value); 
}

function getPrettyName(input_el)
{
	return input_el.getParent().getText().clean();
}


window.addEvent("domready",function () {

	//alert("New Page Loaded");
	
	if ($('quick_login_form') && $('quick_login_email') && $('quick_login_password'))
	{
		default_email_address = $('quick_login_email').value;
		//default_email_address = "email address";
		default_password_text = "password";
		
		$('quick_login_email').addEvent('focus', function(e) {
			if (this.value==default_email_address) this.value="";
		});
		$('quick_login_email').addEvent('blur', function(e) {
			if (this.value=="") this.value=default_email_address;
		});

		$('quick_login_password').addEvent('focus', function(e) {
			if (this.value==default_password_text) this.value="";
		});
		$('quick_login_password').addEvent('blur', function(e) {
			if (this.value=="") this.value=default_password_text;
		});

		// 'Validation'
		$('quick_login_form').addEvent('submit', function(e) {
			if ($('quick_login_email').value==default_email_address) $('quick_login_email').value = "";
			if ($('quick_login_password').value==default_password_text) $('quick_login_password').value = "";
		});
	}
	
	if ($('login_form'))
	{
		//alert($('login_email').value);


		// Handle show/hide of registration fields
		if ($('registration_fields'))
		{
		
			if ($('registration_fields').hasClass("hidden")) $('registration_fields').removeClass("hidden");
			var registration_fields_slider = new Fx.Slide('registration_fields');
			if ($('show_registration_fields_default').value.toInt() != 1) registration_fields_slider.hide();
			
	/*******************************************************************************
	******************************************************************************
			//////////////////////////////////////////
			// TAKE THIS STUFF OUT UNTIL I CAN FIX BROWSER ISSUES
			//////////////////////////////////////////
			
			
			$('show_registration_fields').addEvent('click', function(e) {
				var e = new Event(e);
				e.stop();
				//registration_fields_slider.toggle();
				//if (this.value != "Hide") this.value = "Hide";
				//else this.value = "Register";
				registration_fields_slider.slideIn().chain(function(e) {
					$('login_buttons').setStyle('display', "none");
				});
			});

	
			$('cancel_register_button').addEvent('click', function(e) {
				var e = new Event(e);
				e.stop();
				//registration_fields_slider.toggle();
				//if (this.value != "Hide") this.value = "Hide";
				//else this.value = "Register";
				$('login_buttons').setStyle('display', "block");
				registration_fields_slider.slideOut().chain(function(e) {
	
				});
			});
	******************************************************************************			
	*******************************************************************************/			
		}

		// Do basic validation for LOGIN
		if ($('login_button'))
		{
			$('login_button').addEvent('click', function(e) {
				var e = new Event(e);
				clearValidationErrors();
		
				if ($('login_email').value == "") addValidationError($('login_email'), "Username (email) is required.");
				else if (!validateEmail($('login_email').value)) addValidationError($('login_email'), "Username (email) must be a valid email address.");
				
				if ($('login_password').value == "") addValidationError($('login_password'), "Password is required.");
				//else if ($('login_password').value.length < 8) addValidationError($('login_password'), "Password must be at least 8 characters in length.");
				//else if ($('login_password').value.length > 20) addValidationError($('login_password'), "Password can not exceed 20 characters in length.");
				else if ($('login_password').value == 'password') addValidationError($('login_password'), 'Password can not be the word "password".');
		
				registration_fields_slider.slideOut();
				if (validation_errors > 0) e.stop();
			});
		}
	
		// Do basic validation for REGISTER
		if ($('register_button')) 
		{
			$('register_button').addEvent('click', function(e) {
				var e = new Event(e);
				clearValidationErrors();
		
				if ($('login_email').value == "") addValidationError($('login_email'), "Username (email) is required.");
				else if (!validateEmail($('login_email').value)) addValidationError($('login_email'), "Username (email) must be a valid email address.");
				
				if ($('login_password').value == "") addValidationError($('login_password'), "Password is required.");
				//else if ($('login_password').value.length < 8) addValidationError($('login_password'), "Password must be at least 8 characters in length.");
				//else if ($('login_password').value.length > 20) addValidationError($('login_password'), "Password can not exceed 20 characters in length.");
				else if ($('login_password').value != $('login_passconf').value) addValidationError($('login_password'), "Password does not match Confirm Password.");
				
				$$('.required').each(function(item) {
					if (item.value == "") addValidationError(item, getPrettyName(item)+" is required.");
					else if (item == $('login_passconf') && $('login_password').value != item.value) addValidationError(item, "Confirm Password does not match Password.");
				});
		
				registration_fields_slider.slideIn();
				if (validation_errors > 0) e.stop();
			});
		}
	}
});
