$(document).ready(function(){
	
	// create validator
	$("#register_form").validator({errorInputEvent: 'change'});
	var register = $("#register_overlay");
	var register_form = $("#register_form").data("validator");
	var section1 = true;
	var section2 = true;
	var section3 = true;
	var section4 = true;

	// create tabs
	$("ul.tabs").tabs(".panes > div");
	var tabs = $("ul.tabs", register).data("tabs");

	// on success change color back
	$(register_form).bind("onSuccess", function(e, passed)  {
		passed.css({borderColor: '#444', backgroundColor:'#c3c9d5'});
		$("#submit_Registration").removeAttr('disabled');
	});
	

	// on validity fail
	$(register_form).bind("onFail", function(e, errors)  {
		section1 = true;
		section2 = true;
		section3 = true;
		section4 = true;
		
		$.each(errors, function()  {
			var input = this.input;
			if (input.attr("part") == "1") { section1 = false; }
			if (input.attr("part") == "2") { section2 = false; }
			if (input.attr("part") == "3") { section3 = false; }
			if (input.attr("part") == "4") { section4 = false; }
			input.css({borderColor: 'red', backgroundColor:'#d5c3c3'});
		});
		
		$("#submit_Registration").attr('disabled','disabled'); 
		
		// don't print error text
		return false;
	});

	// custom error checking

	// password check
	$.tools.validator.fn("[data-equals]", "Value not equal with the $1 field", function(input) {
		var name = input.attr("data-equals"),
			 field = this.getInputs().filter("[name=" + name + "]"); 
		return input.val() == field.val() ? true : [name]; 
	});

		
	// check login name
	$.tools.validator.fn("[check-login]", "Checking login name", function(input) {
		var login = input.attr("value");		
		if (login.length > 0) {
		var testresult = true;
		$.ajax({
			url: 'index.php?page=checkbandemail',
			data: ({email: login}),
			async: false,
			dataType: 'json',
			success: function(json) {
				testresult = json.result;
			}
		});
		
		if (testresult === false) { alert("Band Email address has already been used.\n\nPlease enter a different one and continue."); }		
		return testresult;
		} else { return false; }
	});

	// check band name
	$.tools.validator.fn("[check-band]", "Checking band name", function(input) {
		var bandname = input.attr("value");	
		if (bandname.length > 0) {
		var testresult = true;
		$.ajax({
			url: 'index.php?page=checkbandname',
			data: ({name: bandname}),
			async: false,
			dataType: 'json',
			success: function(json) {
				testresult = json.result;
			}
		});
		
		if (testresult === false) { alert("Band Name has already been used.\n\nPlease enter a different one and continue."); }
		return testresult;
		} else { return false; }
	});

	

	// tabs navigation
	tabs.onBeforeClick(function(event,NewTab) {
	
		var CurrentTab = tabs.getIndex();
		var success = true;
		
		if (register_form.checkValidity() == false) {
			if (NewTab == 1 && section1 == false) { success = false; }
			if (NewTab == 2 && section2 == false) { success = false; }
			if (NewTab == 2 && section1 == false) { success = false; }
			if (NewTab == 3) { if (section1 + section2 + section3 < 3) { success = false; } }
		}
		if (!success) {
			register.parent().addClass("error");
			return false;
		} else {
			register.parent().removeClass("error");
			return true;
		}
	});

	// tab buttons
	$("#next", register).click(function(e) { tabs.next(); e.preventDefault(); return false; });
	$("#prev", register).click(function(e) { tabs.prev(); e.preventDefault(); return false; });

	// submit registration
	$("#submit_Registration").click(function(e) {

			
		// submit the data to the server with AJAX
		var formdata = $("#register_form").serialize();
		$.getJSON("index.php?" + formdata, function(json) {
		

			// everything is ok. (the server returned true)
			if (json.result === true)  {
				//form.load("success.php");
				$("#register_form").html(json.message);

			// server-side validation failed. use invalidate() to show errors
			} else {
				alert(json.message);
			}
		});

		e.preventDefault();
		return false;
	});
	
	// cancel button
	$("#cancel").click(function() {
		$("img[rel]").each(function() {
			$(this).overlay().close();			
		});		
	});	
	
	$("#login_submit").click(function() {
		var user = $("#login_username").val();
		var pass = $("#login_password").val();
		var testresult = false;
		$.ajax({
			url: 'index.php?page=checklogin',
			data: ({username: user, password: pass}),
			async: false,
			dataType: 'json',
			success: function(json) {
				testresult = json.result;
				message = json.msg;
			}
		});
		if (testresult === false) { $("#login_error").html(message); }
		if (testresult === true) { 
			$("img[rel]").each(function() {
				$(this).overlay().close();
			});	
			document.location.replace('index.php?page=login'); 
		}
		
	});
	
 });
