// JavaScript Document
var cookie_member_id;
var cookie_member_data;
//
function init(){
	//
	if($('#zoom_query').length > 0){
		$('#zoom_query').bind("click", function(){$(this).val("");});
	}
	//
	if($('#contact').length > 0){
		initContact();
	}
	//
	if($('#login').length > 0){
		initLogin();
	}
	//
	if($('#register').length > 0){
		initRegister();
	}
	//
	if($('#member').length > 0){
		initMember();
	}
	///shopProdListItem
	if($('.shopProdListItem').length > 0){
		Shadowbox.init();
	}
	///
	if($('.galBox').length > 0){
		Shadowbox.init();
	}
	//start newsletter subscription
	if($('#nlsignupForm').length != 0){
		v = jQuery("#nlsignupForm").validate({
			submitHandler: function(form) {
				jQuery(form).ajaxSubmit({
					target: "#nlsignupHolder" 
				});
			}
		});
	}
	//start newsletter with Captcha subscription
	if($('#nlsignupCapForm').length != 0){
		initSubscribeCaptcha();
	}
	//start newsletter unsubscribe
	if($('#nlsubscribeHolder').length != 0){
		v = jQuery("#nlsubscribeForm").validate({
			submitHandler: function(form) {
				jQuery(form).ajaxSubmit({
					target: "#nlsubscribeHolder"
				});
			}
		});
	}
	//
	if($('#refer').length > 0){
		v = jQuery("#referForm").validate({
			submitHandler: function(form) {
				jQuery(form).ajaxSubmit({
					target: "#referReturn"
				});
			}
		});
	}
	//
	if($('.ad-gallery').length > 0){
		//
		var galleries = $('.ad-gallery').adGallery();
		//
		$('#toggle-slideshow').click(
			function() {
				galleries[0].slideshow.toggle();
				return false;
			}
		);
		//
		//galleries[0].settings.effect = 'slide-vert';
		galleries[0].settings.effect = 'fade';
		//
	}
	///
	$('.clearOnClick').bind("click", clearOnClick);
	//start form processor
	if($('#phooFormHolder').length != 0){
		v = jQuery("#phooForm").validate({
			submitHandler: function(form) {
				jQuery(form).ajaxSubmit({
					target: "#phooFormHolder"
				});
			}
		});
	}
}
//
function clearOnClick(e){
	$(this).val('');
	$(this).unbind("click");
}
//
function initSubscribeCaptcha(){
	var validator = $("#nlsignupCapForm").validate({

		rules: {

			e_name: {
				required: true,
				minlength: 1
			},
			e_email: {
				required: true,
				email: true
			},			
			captcha: {
				required: true,
				remote: "scripts/jquery/validate/demo/captcha/process.php"
			}
		},
		messages: {
			
			e_name: {
				required: "Enter a username",
				minlength: jQuery.format("Enter at least {0} characters")				
			},
			e_email: {
				required: "Please enter a valid email address",
				minlength: "Please enter a valid email address"
			},
			captcha: "Correct captcha is required. refresh the page to generate a new one"
			
		},
		// the errorPlacement has to take the table layout into account
		errorPlacement: function(error, element) {

			if ( element.is(":radio") )
				error.appendTo( element.parent().next().next() );
			else if ( element.is(":checkbox") )
				error.appendTo ( element.next() );
			else

				error.appendTo( element.parent() );
		},

               submitHandler: function(form) {
					jQuery(form).ajaxSubmit({
						target: "#nlsignupCapHolder"
					});
		}
	});
}
//
function initMember(){
	var v = jQuery("#memberForm").validate({
			submitHandler: function(form) {
				jQuery(form).ajaxSubmit({
					target: "#member",
					dataType: "json",
					beforeSubmit: function(){$('#memberInfo').html('')},
					success: member_update_callback
				});
			}
		});
	//
	$.post("scripts/ajax_calls/ajax_get_member_cookie.html", {}, function(data){loadCookie_callback(data);}, "json");	
	//
	$('#a_DOB').mask("99/99/9999",{placeholder:"-"});
	$('#a_crb_valid_til').mask("99/99/9999",{placeholder:"-"});
	
};
//
function loadCookie_callback(data)  {
	cookie_member_id = data[0].id;
	$.post("scripts/ajax_calls/ajax_get_member_data.html", {id:cookie_member_id}, function(data){memberLoad_callback(data);}, "json");	
}
//
function memberLoad_callback(data)  {
	//
	cookie_member_data = data[0];
	//
	$('#memberForm').clearForm();
	//
	$('#id').val(cookie_member_data.id);
	//
	$('#a_forename').val(cookie_member_data.a_forename);
	$('#a_surname').val(cookie_member_data.a_surname);
	//
	if (cookie_member_data.a_DOB > ""){
		$('#a_DOB').val(phpDate(cookie_member_data.a_DOB));
	}
	//
	
	$('#a_username').val(cookie_member_data.a_username);
	$('#a_password').val(cookie_member_data.a_password);
	//
	if (cookie_member_data.a_active == 1){
		$('#a_active').attr('checked', 'checked');
	} else {
		$('#a_active').removeAttr('checked');
	}
	//
	if (cookie_member_data.a_email_valid == 1){
		$('#a_email_valid').attr('checked', 'checked');
	} else {
		$('#a_email_valid').removeAttr('checked');
	}
	//
	if (cookie_member_data.i_group.length > 0){
		var t = cookie_member_data.i_group.split(',');
		//	
		$("input[name='i_group[]']").each(function(i){
			 if ($.inArray($(this).val(),t)){
				$(this).attr("checked","checked");
			}
		});
	} else {
		$("input[name='i_group[]']").each(function(i){
			$(this).removeAttr("checked");
		});
	}
	//
	$('#a_email').val(cookie_member_data.a_email);
	$('#a_address1').val(cookie_member_data.a_address1);
	$('#a_address2').val(cookie_member_data.a_address2);
	$('#a_town').val(cookie_member_data.a_town);
	$('#a_county').val(cookie_member_data.a_county);
	$('#a_postcode').val(cookie_member_data.a_postcode);
	//
	$('#a_sport').val(cookie_member_data.a_sport);
	$('#a_why').val(cookie_member_data.a_why);
	$('#a_highest_achieve').val(cookie_member_data.a_highest_achieve);
	//
	$('#a_where_based').val(cookie_member_data.a_where_based);
	//
	if (cookie_member_data.a_crb == 1){
		$('#a_crb').attr('checked', 'checked');
	} else {
		$('#a_crb').removeAttr('checked');
	}
	//
	if (cookie_member_data.a_crb_valid_til > ""){
		$('#a_crb_valid_til').val(phpDate(cookie_member_data.a_crb_valid_til));
	}
	//
}
//
function member_update_callback(responseText, statusText, xhr, $form)  {
	alert("Your information updated");
}
//
function initRegister(){
	var v = jQuery("#registerForm").validate({
			submitHandler: function(form) {
				jQuery(form).ajaxSubmit({
					target: "#register",
					dataType: "json",
					beforeSubmit: function(){$('#registerFail').html('')},
					 success: register_callback
				});
			}
		});
	//
	$('#a_DOB').mask("99/99/9999",{placeholder:"-"});
	$('#a_crb_valid_til').mask("99/99/9999",{placeholder:"-"});
	
};
function register_callback(responseText, statusText, xhr, $form)  {
	//
	if (responseText[0].id > 0){
		$('#register').html('<h2>Registration recieved</h2><p>Please check your email</p>');
		$('#registerFail').html('');
	} else if (responseText[0].id == -1){
		$('#registerFail').html('<h2>Registration failed</h2><p>Please try again</p>');
	} else if (responseText[0].id == -2){
		$('#registerFail').html('<h2>Registration failed</h2><p>The email address you has used is already in our database</p>');
	}
}
//
function initLogin(){
	var v = jQuery("#loginForm").validate({
			submitHandler: function(form) {
				jQuery(form).ajaxSubmit({
					target: "#login",
					dataType: "json",
					beforeSubmit: function(){$('#loginFail').html('')},
					 success: login_callback
				});
			}
		});
};
function login_callback(responseText, statusText, xhr, $form)  {
	//
	if (responseText[0].id > 0){
		location.reload();
	} else {
		$('#loginFail').html('<h2>Your details were not found in our database</h2><p>Please try again</p>');
	}
} 
//
function initContact(){
	var v = jQuery("#contactForm").validate({
			submitHandler: function(form) {
				jQuery(form).ajaxSubmit({
					target: "#contact"
				});
			}
		});
}; 
//
function setupNav(){
	//$("ul.subnav").parent().append("<span></span>"); //Only shows drop down trigger when js is enabled - Adds empty span tag after ul.subnav
	
	$("ul.topnav li").mouseover(function() { //When trigger is clicked...
		
		//Following events are applied to the subnav itself (moving subnav up and down)
		$(this).find("ul.subnav").slideDown(0).show(); //Drop down the subnav on click
		$(this).find(".hasDrop").addClass("hasDropHover");

		$(this).hover(function() {
		}, function(){			
			$(this).find("ul.subnav").slideUp(0); //When the mouse hovers out of the subnav, move it back up
			$(this).find(".hasDrop").removeClass("hasDropHover");
		});

		//Following events are applied to the trigger (Hover events for the trigger)
		}).hover(function() { 
			$(this).addClass("subhover"); //On hover over, add class "subhover"
		}, function(){	//On Hover Out
			$(this).removeClass("subhover"); //On hover out, remove class "subhover"
	});
}

function initContact(){
	var v = jQuery("#contactForm").validate({
			submitHandler: function(form) {
				jQuery(form).ajaxSubmit({
					target: "#contact"
				});
			}
		});
}; 

