//var signedIn = false;
$(document).ready(function() {
	
	//REGISTER REQUIRED FIELDS
	registerField("#sif-email", "email");
	registerField("#sif-password");
	
	//REGISTER BUTTON FUNCTIONS
	continueButtonInit();
	signinRegisterButtonInit();
	signinPanelCloseButtonInit();
	passwordReminderInit();
	
	//SIGN IN PANEL
	sip_state = 0;
	
	initFields("#signin-panel");

	//SIGNED IN STATE
	if(typeof (signedIn) != "undefined") { //Check if signedIn has been declared
		if(signedIn)
			toggleSignInNav();
	}
	
	//toggleSignInNav();
	
});

//SIGN IN/REGISTER BUTTON INIT
function signinRegisterButtonInit() {
	
	$("#nav6 a").unbind("click");
	
	$("#nav6 a").click(
		function() {
			
			signinRegisterPanelOpen();			
			return false;
			
		}
	);
	
	$("#nav6.disabled a").unbind("click");
	
	$("#nav6.disabled a").click(
		function() {
			
			return false;
			
		}
	);
	
}

//SIGN IN/REGISTER PANEL OPEN
function signinRegisterPanelOpen() {
	
	if(sip_state == 0) {
		$("#signin-panel").slideDown(300);
		sip_state = 1;
	} else if(sip_state == 1) {
		$("#password-reminder").remove();
		$("#signin-panel").slideUp(300);
		sip_state = 0;
	}
	
}

//SIGN IN/REGISTER BUTTON INIT
function signinPanelCloseButtonInit() {
	
	$("#signin-panel .close a").unbind("click");
	
	$("#signin-panel .close a").click(
		function() {
			
			if(sip_state == 1) {
				$("#password-reminder").remove();
				$("#signin-panel").slideUp(300);
				sip_state = 0;
			}
			
			return false;
			
		}
	);
	
}

//CONTINUE BUTTON INIT
function continueButtonInit() {
	
	$("#signin-panel .continue").unbind("click");
	$("#sif-email").unbind("keypress");
	
	//CONTINUE CLICK
	$("#signin-panel .continue").click(
		function() {
			
			continueButtonSubmit();
			
			return false;
			
		}
	);
	
	//ENTER PRESS
	$("#sif-email").keypress(
		function(e) {
			
			if(e.which == 13) {
				
				continueButtonSubmit();
				
			}
			
		}
	);
	
}

function continueButtonSubmit() {
	
	thisObject = "#signin-panel .continue";
	
	if(!$(thisObject).hasClass("disabled")) {
		
		//Validate content
		submitInit(thisObject);
		
		var targetForm = "#si-email"; //Set target form if button resides outside form container
		
		if(!targetForm) {
			targetForm = $(thisObject).parent().siblings(".form");
		}
		
		validateForm(targetForm);
		
		//Response okay
		if(validationResult != 0) {
			$("#si-email :input, #si-email .hint").hide();
			$("#si-email label").removeClass("hide");
			$("#si-email label").after("<em>" + $("#sif-email").val() + "</em><span class=\"ok\"></span>");

			$.get(secureSiteRoot + "ajax/SignIn.ashx",
				{
					email: $("#sif-email").val(),
					password: $("#sif-password").val() || ''
				},
				continueButtonSubmitComplete,
				"text"
			);
		}
		
		submitReset();
		
	}
	
	return false;

}

function continueButtonSubmitComplete(data, textStatus) {
	switch(data) {
		case "UserNameIncorrect":
			redirectToRegistrationPage($("#sif-email").val(), $("#sif-password").val());
			break;
		default:
			$("#si-password").show();
			var offsetWidth = $("#si-email").width() + 89;
			$(thisObject).parent().css("margin-left", offsetWidth);
			$(thisObject).parent().html("<a class=\"pill signin\" href=\"#\">Sign In</a>");
			signinButtonInit();
			break;
	}
}

//SIGN IN BUTTON INIT
function signinButtonInit() {
	
	$("#signin-panel .signin").unbind("click");
	$("#sif-password").unbind("keypress");
	
	//SIGN IN CLICK
	$("#signin-panel .signin").click(
		function() {
			
			signinButtonSubmit();
			
			return false;
			
		}
	);
	
	//ENTER PRESS
	$("#sif-password").keypress(
		function(e) {
			
			if(e.which == 13) {
				
				signinButtonSubmit();
				
			}
			
		}
	);
	
	//$("#sif-password").focus();
	
}

function signinButtonSubmit() {
	
	thisObject = "#signin-panel .signin";
	
	if(!$(thisObject).hasClass("disabled")) {

		// reset sign in errors
		signinErrorReset();

		//Validate content
		submitInit(thisObject);
		
		var targetForm = "#si-password"; //Set target form if button resides outside form container
		
		if(!targetForm) {
			targetForm = $(thisObject).parent().siblings(".form");
		}
		
		validateForm(targetForm);
		
		//Response okay
		if(validationResult != 0) {

			$.get(secureSiteRoot + "ajax/SignIn.ashx",
				{
					email: $("#sif-email").val(),
					password: $("#sif-password").val()
				},
				signinButtonSubmitComplete,
				"text"
			);
			//alert("Move along...");
			//completeSignIn();
			
		} else {
			
			submitReset();
			
		}
		
	}
	
	return false;

}

function signinButtonSubmitComplete(data, textStatus) {
	switch(data) {
		case "Success":
			completeSignIn();
			break;
		case "UserNameIncorrect":
			redirectToRegistrationPage($("#sif-email").val(), $("#sif-password").val());
			break;
		case "PasswordIncorrect":
			signinError("Your password was incorrect.");
			break;
		case "UserLocked":
			signinError("Your login has been locked out for security. Please contact support.");
			break;
		case "ServerError":
			signinError("A server error occurred. Please try again later.");
			break;
	}
	submitReset();
}

function signinErrorReset() {
	$("#si-email").siblings(".server-error").remove();
	//$("#si-error").fadeOut();
	//$("#si-error").addClass("hide");
}

function signinError(message) {
	$("#si-email").before("<p class=\"server-error\"></p>");
	$("#si-email").siblings(".server-error").text(message);
	//$("#si-error").fadeOut();
	//$("#si-error").removeClass("hide");
	//$("#si-error").fadeIn();
}

//PASSWORD REMINDER LINK INIT
function passwordReminderInit() {
	
	$(".si-reminder").unbind("click");

	$(".si-reminder").click(
		function() {

		    	        $.post(siteRoot + "ajax/ForgottenPassword.ashx",{ email : $("#sif-email").val() }, 
		    				function(data) {
		    				    
		    				    if(data=="Success") {

		    				        $(".si-reminder").siblings(".hint").after("<div id=\"password-reminder\"><p>Your password has been sent to <em>" + $("#sif-email").val() + "</em></p><h3>Haven't received your email?</h3><ul><li>Check your junk or spam folder</li><li><a href=\"#signin-panel\" onclick=\"launchOverlay('contact'); return false;\">Contact us</a> if you're still experiencing problems</li></ul><p><a href=\"#signin-panel\" class=\"reminder-close\">Close this message</a></div>");
		                    			
		    			            passwordReminderCloseInit();

		    			        } else {
		    				        alert("We are sorry as server error has occured. Please try again later");
		    			            passwordReminderCloseInit();
		    				    }
		    				},
		    				"text"
		    			);

		}

	);
	
}

//PASSWORD REMINDER CLOSE INIT
function passwordReminderCloseInit() {
	
	$(".reminder-close").unbind("click");
	
	$(".reminder-close").click(
		function() {
			
			$("#password-reminder").remove();
			
			return false;
			
		}
	);
	
}


//SIGN OUT BUTTON INIT
function signOutButtonInit() {
	
	$("#signout a").unbind("click");
	
	$("#signout a").click(
		function() {
			
			toggleSignOutNav();
			
			return false;
			
		}
	);
	
}

//MY PROFILE BUTTON INIT
function profileButtonInit() {
	
	$("#profile a").unbind("click");
	
	
	
}

//COMPLETE SIGN IN
function completeSignIn() {
	
	$(".loader").remove();
	toggleSignInNav();
	
	$("#signin-panel").slideUp(300, function() {
		
		submitReset(null, 1);
		
		$("#si-email :input").show();
		$("#si-email label").addClass("hide");
		$("#si-email label").siblings("em, span").remove();
		$("#si-password").hide();
		$("a.signin").parent().removeClass("offset");
		$("a.signin").parent().html("<a class=\"pill continue\" href=\"#\">Continue</a>");
		continueButtonInit();
		
	});
	
	sip_state = 0;
	
}

//SWITCH TO SIGNED IN NAV
function toggleSignInNav() {
	
	$("#nav6").remove();
	$("#global-nav").append("<li id=\"signout\"><a href=\"#signin-panel\">Sign Out</a></li><li id=\"profile\"><a href=\"#content\" class=\"ovl profile\">My Profile</a></li>");
	signOutButtonInit();
	profileButtonInit();
	overlayButtonInit();
	
}

//SWITCHED TO SIGNED OUT NAV
function toggleSignOutNav() {
	
	$("#profile, #signout").remove();
	$("#global-nav").append("<li id=\"nav6\"><a href=\"#\">Sign In/Register</a></li>");
	signinRegisterButtonInit();
	signinPanelCloseButtonInit();


	    $.post(siteRoot + "ajax/SignOut.ashx",
				{},
				function() {
				    window.location = siteRoot;
				
				},
				"text"
			);


	
	
}


function redirectToPage(url) {
	window.location = url;
}

function redirectToRegistrationPage(email, password) {
	redirectToPage(siteRoot + "register/");
	//redirectToPage(siteRoot + "register/?email=" + email + "&password=" + password);
}