$(document).ready(function(){
	//jGrowl notifications
	if ($(".flash").length > 0 || $("#errorExplanation").length > 0){
		$(".flash, #errorExplanation li").each(function(){
			var words = $(this).text();
			if (words.length > 0){
				if ($(this).hasClass("errors") || $(this).parents("#errorExplanation").hasClass("errorExplanation")){
					$.jGrowl(words,{theme:"jgrowl-errors",sticky:true});
				} else {
					$.jGrowl(words,{life:2500});
				}
			}
		});
	}
	
	//these only apply to the main login page
	$("#login-form input:eq(0)").focus();
	
	$("#login-form input").bind("keypress",function(e){
		var code = (e.keyCode ? e.keyCode : e.which);
 		if(code == 13) { //Enter keycode
 			$("#login-form form").submit();
		}
	});
	
	$("#login-form form").submit(function(){
		var countee = 0;
		var deps = $(this).find("input[type='text'],input[type='password']");
		for (dd=0;dd<deps.length;dd++){
			if (deps.eq(dd).val() == ""){
				countee++;
			}
		}
		//alert(countee);
		if (countee > 0){
			$.jGrowl("Username AND Password are required",{theme:"jgrowl-errors",life:2500});
			return false;
		} else {
			return true;
		}
	});
	$("#faux-login-submit").click(function(){
		$(this).parents("form").submit();
		return false;
	});
	$("#request-a-password a:eq(0)").click(function(){		
		if (!$(this).hasClass("dont-click-me")){
			$("#login-container").animate({marginLeft: "-640px"},300);
			$(this).parent("div").animate({marginLeft: "160px"},300);
			$(this).addClass("dont-click-me");
			$(this).siblings("a").show();
		}
		return false;
	});
	$("#request-a-password a:eq(1)").click(function(){		
		$("#login-container").animate({marginLeft: "0"},300);
		$(this).parent("div").animate({marginLeft: 0},300);
		$("#account-options").animate({marginRight: "330px"},300);
		$(".dont-click-me").removeClass("dont-click-me");
		$(this).hide();
		return false;
	});
	$("#account-options a:eq(0)").click(function(){		
		if (!$(this).hasClass("dont-click-me")){
			$("#account-options").animate({marginRight: "20px"},300);
			$("#request-a-password").animate({marginLeft: 0},300);
			$(this).addClass("dont-click-me");
		}
		return false;
	});
	$("#account-options a").not(":eq(0)").click(function(){
		$("#request-a-password").animate({marginLeft: "160px"},300);
		$("#account-options").animate({marginRight: "330px"},300,function(){
			$("#account-options a:eq(0)").removeClass("dont-click-me");
			return true;
		});
	});
	
	//general forms processing
	
	$("#user_business_type_selector").change(function(){
		
		var targetCont = $(this).parent("div").next("div");
		var input = targetCont.find("input");
		var label = targetCont.find("label");
		
		if($(this).find("option:last").is(":selected")){
			input.addClass("required");
			$("<span class='require-me'>*</span>").insertAfter(label);
		} else {
			input.removeClass("required");
			targetCont.find("span").remove();
		}
	});
	
	var passwordsMatch = false;
	var requiredFieldsAreComplete = false;
	var inventoryNumGood = true;
	
	function checkPasswords(){
		if ($(".check-password").length > 0){
			var pw1 = $(".check-password:eq(0)").val();
			var pw2 = $(".check-password:eq(1)").val();
			if (pw1 != pw2 || pw1.length < 4){
				$(".check-password").addClass("error");
				passwordsMatch = false;
			} else {
				passwordsMatch = true;
			}
			return passwordsMatch;
		}
	}
	
	function checkInvoice(){
		if ($(".check-invoice").length > 0){
			var inv = $(".check-invoice").val().replace(/\D/g,"");
			if (inv.length < 6 || inv.length > 6) {
				$(".check-invoice").addClass("error");
				inventoryNumGood = false;
			} else {
				inventoryNumGood = true;
			}
		}
		return inventoryNumGood;
	}
	
	function checkRequiredFields(){
		var reqInputs = $(".sign-up input.required");
		var counter = 0;
		for (d=0;d<reqInputs.length;d++){
			if (reqInputs.eq(d).val() == "") {
				reqInputs.eq(d).addClass("error");
				counter++;
			} else {
				//alert("FILLED!!");
			}
		}
		if (counter > 0){
			requiredFieldsAreComplete = false;
		} else {
			requiredFieldsAreComplete = true;
		}
		return requiredFieldsAreComplete;
	}
	
	$(".form-layout input").focus(function(){
		if ($(this).hasClass("error")){
			$(this).removeClass("error");
		}
	});
	
	$(".form-layout form").not("#login-form form").submit(function(){
		
		checkPasswords();
		checkRequiredFields();
		checkInvoice();
		if (!inventoryNumGood) {
			$.jGrowl("Your most recent invoice number is not valid.",{theme:"jgrowl-errors",life:5500});
		}
		if (!passwordsMatch){
			$.jGrowl("Your passwords must match exactly AND must contain a minimum of four (4) characters.",{theme:"jgrowl-errors",life:5500});
		}
		if (!requiredFieldsAreComplete) {
			$.jGrowl("Please complete ALL required fields. Required fields are marked with an asterisk.",{theme:"jgrowl-errors",life:5500});
		} 
		if (!inventoryNumGood || !passwordsMatch || !requiredFieldsAreComplete) {
			return false;
		} else {
			return true;
		}
	});
	
	$("#form-submit").click(function(){
		$(".form-layout form").submit();
		return false;
	});
});
