var billing_errors		= false;
var billing_errors		= false;
var delivery_errors		= false;
var persdata_errors		= false;
var payment_errors		= false;
var address_errors		= true;

var basket_product_has_sizes;
var basket_product_has_colors;
var basket_product_size;
var basket_product_color;

var greenbox_running	= false;
var adding_to_basket	= false;
var advsearch_last_id	= null;
var recover_inited		= false;
var postcode_overlay	= false;
var address_edited		= false;
var finder_inited		= false;

var checkout_step = 1;
var checkout_pcode = '';
var checkout_postcode_changes = false;
var checkouting = false;

var intro_h = 0;

function add_to_basket (customized) {
		
		if(adding_to_basket) {
			return false;
		}

		var valid = true;
		var ids = new Array();
		var ids_str = '';
		var i = 0;

		$('.select-size ul').each(function() {
			var buttons = $(this).find('a.on');
			if(buttons.length < 1)
			{
				valid = false;
			}
			else
			{
				ids[i] = buttons.attr('id');
				ids_str += '&product_options[]='+ids[i];
				i++;
			}
		});

		if(!valid) {
			$('#notice-select-size-and-color').show();
			$('#title-select-size-and-color').hide();
			return false;
		}
		
		adding_to_basket = true;
		
		$('#notice-select-size-and-color').hide();
		$('#title-select-size-and-color').show();
		
		var data = 'product_id='+$('#f-product_id').val()+'&product_quantity='+$('#f-product_quantity').val()+'&product_delivery='+$('#f-product_delivery').val()+ids_str;
		if(customized){
				data += '&customized=1&customize_letters='+escape($('#f-letters').val())+'&customize_numbers='+escape($('#f-numbers').val());
		}

		$.post('/basket/add/?ajax', data, function (html) {
			if(customized){
				window.location.href = '/basket/';
			}else{
				$('#cart-summary').load('/basket/cart-summary/?ajax');
				$('#overlay-default').html(html);
				jQuery.overlay($("#overlay-default"));
			}
			setTimeout('adding_to_basket = false', 2000);			
		});
				
}

$(document).ready(function(){
	
	$('.image-tab').click(function () {
		var video_obj = (navigator.appName.indexOf("Microsoft")!=-1 ? window : document)['videoo'];

		if(video_obj && typeof(video_obj.pauseVideo) != "undefined") {
			video_obj.pauseVideo();
		}
	});

// default value in inputs
	$("input.default-value, textarea.default-value").each(function(){
		var val = $(this).val();
		if( val.length ){
			this._val = val;
			$(this).focus(function(){
				if ( $(this).val() == this._val)
					$(this).val("");
			}).blur(function(){
				if ( !$(this).val().length )
					$(this).val(this._val);
			});
		}
	});
// submit buttons
	jsubmit ();
	
	$('#auth input, #register input').keypress(function(e) {
		if(e.keyCode == 13) {
			if ($(this).attr('class') == 'text pwd'){
				$(this).parents("form").submit();
			}else if($(this).attr('class') == 'text default-value mail'){
				if($('.pwd').val().length > 0) $(this).parents("form").submit();
			}else if($(this).attr('class') == 'text pwd default-value'){
				login_overlay();
				return false;
			}
			return false;
		}
	});

	$('#f-promocode').keypress(function(e) {
		if(e.keyCode == 13) {
			if($('#f-promocode').val().length > 0){
				window.location='http://www.activinstinct.com/basket/update/?promocode='+$('#f-promocode').val();
			}
			return false;
		}
	});
	
// add to basket
	$('a.btn-add-to-basket').click(function(){
		add_to_basket();
	});
	
		// customize product
		$('a.button-customize').click(function(){
				
				valid = true;
				$('.select-size ul').each(function() {
					var buttons = $(this).find('a.on');
					if(buttons.length < 1)
					{
						valid = false;
					}
				});
		
				if(!valid) {
					$('#notice-select-size-and-color').show();
					$('#title-select-size-and-color').hide();
					return false;
				}
				
				$('#notice-select-size-and-color').hide();
				$('#title-select-size-and-color').show();							
				
				$.get('/_customize/'+$('#f-product_id').val()+'/?ajax=', function(h) {
						$('#overlay-default').html(h);
						jQuery.overlay($("#overlay-default"));
						$('#f-letters').keypress(function(e){
								if(!(e.which < 40 || (e.which > 64 && e.which < 91) || (e.which > 96 && e.which < 123) || e.which == 8)){
										return false;		
								}
								var v = $(this).val();
								v = v.replace(/\s+/g,' ');
								v = v.replace(/^\s*|\s*$/,'');
								$(this).val(v);
								$(this).parents('tr').removeClass('err');
								$('#customize-error').hide();
						});
						$('#f-numbers').keypress(function(e){
								if(e.which!=8 && e.which!=0 && (e.which<48 || e.which>57)){
										return false;
								}								
								$(this).parents('tr').removeClass('err');
								$('#customize-error').hide();
						});
						$('#f-numbers, #f-letters').keyup(function(){
								customize_price();
						});
						$('.customize-add-to-basket').click(function(){
								
								var v_letters = $('#f-letters').val();
								v_letters = v_letters.replace(' ','');
								var v_numbers = $('#f-numbers').val();
								v_numbers = v_numbers.replace(' ','');
								var len_letters = v_letters.length;
								var len_numbers = v_numbers.length;
								var has_errors = false;
								if(len_letters == 0){
										$('#customize-error').show();
										$('#f-letters').parents('tr').addClass('err');
										has_errors = true;
								}
								if(len_numbers == 0){
										$('#customize-error').show();
										$('#f-numbers').parents('tr').addClass('err');
										has_errors = true;
								}
								if(has_errors){
										return false;
								}
								add_to_basket(true);	
								return false;
						});
				});
				return false;
		});


// product
	$('.select-size li a').click(function(){
		
		if($(this).hasClass('button3-disabled')){
			return false;
		}

		$(this).addClass('button3-on').addClass('on');

		var selected = new Array();

		var attr_id = $(this).attr('id');

		selected[0] = attr_id;

		var siblings = getSiblingAttributes([attr_id]);

		if(has_attribute_rel){

			$('.select-size li a').removeClass('button3').removeClass('button3-unavilable').addClass('button3-unavailable');

			$('.select-size li a.on, .select-size li a.button3-on').each(function () {
				var attr_id = parseInt($(this).attr('id'));
				if($.inArray(attr_id, siblings) == -1)
				{
					$('.select-size li a#'+attr_id).removeClass('on').removeClass('button3-on')
				}
			});

			$.each(siblings, function (i, val) {
				var button = $('.select-size li a#'+val)
				if(!button.hasClass('button3-on')){
					button.removeClass('button3-unavailable').addClass('button3');
				}
			});

			product_attribute_price();
		}

		// add to basket button state
		/*
		if(basket_product_has_colors && basket_product_color){
			$('.btn-add-to-basket').removeClass('disabled');
		}else if(basket_product_has_colors && !basket_product_color){
			$('.btn-add-to-basket').addClass('disabled');
		}else{
			$('.btn-add-to-basket').removeClass('disabled');
		}
		*/
		return false;
	});

	function getSiblingAttributes(attr_ids) {
		var siblings = new Array();
		var i = 0;

		if(has_attribute_rel) {
			jQuery.each(attribute_rel_prices, function (i2, val) {
				var allIn = true;
				jQuery.each(attr_ids, function (ia, val2) {
					var attr_id = parseInt(val2);
					if(jQuery.inArray(attr_id, val['ids']) < 0) {
						allIn = false;
					}
				});

				if(allIn)
				{
					jQuery.each(val['ids'], function(i3, val3) {
						if(jQuery.inArray(val3, siblings) < 0) {
							siblings[i] = val3;
							i++;
						}
					});
				}
			});
		}

		return siblings;
	}
		
// maxlength
	$("textarea.maxlength").each(function() {
		this.__maxlength = 500;
		var html_counter = $("<div class=\"counter\"><em>" + this.__maxlength + "</em> characters left</div>");
		$(this).after(html_counter);
		this.__maxlength_counter = $(html_counter).children('em')[0];
	}).keyup($.textarea_maxlength).change($.textarea_maxlength).focus($.textarea_maxlength);

	// main menu and submenus
	$("#navigator table").css("opacity",0);
	$("#navigator > li").hover(function(){
		$(this).children("a").addClass("on");
		if ( $("table",this).length )
		{
			/*$("table", this).animate({
				opacity: 1,
				queue: false,
				duration: 750
			});*/
			$("table",this).stop().queue([]).css("opacity",0).show().fadeTo("slow",1);
			var w = $("table", this).width();
			var x = $("table", this).x();
			var mx = $(this).parents("ul").x()+$(this).parents("ul").width();
			var dif =0;
			if ( w+x > mx ){
				dif = x - (mx - w);
				$("table",this).css("left", -dif);
			}

		}
	}, function(){
		if ( !$(this).hasClass("on") )
			$(this).children("a").removeClass("on");
		/*$("table", this).animate({
			opacity: 0,
			queue: false,
			duration: 200
		}, function(){
			$(this).hide();
		});*/
		$("table",this).stop().queue([]).customFadeOut("slow");
	});

	if ( $("input.stars") )
	{
		$(".rating-ro input.stars").rating({required:true, readOnly: true, split: 2});
		$(".rating-rw input.stars").rating({required:true, split: 2});
		$(".rating input.stars").rating({required:true, readOnly: true, split: 2});
	}
// orders toggle script
	function orders_toggle (){
		$("table.orders td a.toggle-off, table.orders td a.toggle-on").click(function(){
			var id = $(this).attr('title');
			if(id){
				var trg = $(this).parents("tr").eq(0).next(".toggle")[0];
				if ( trg )
				{
					if ( $(this).is(".toggle-off") )
					{
						$(trg).show();
						$(".x",trg).slideDown("slow");
						$(this).removeClass("toggle-off").addClass("toggle-on");
		
					}else{
						$(".x",trg).slideUp("slow", function(){
							$(trg).hide();
						});
						$(this).removeClass("toggle-on").addClass("toggle-off");
					}
				}else{
					var items = 'table.orders a[title='+id+']';
					var url = $(this).parents('div').children('.url').val();
					$.get(url+id+'?ajax', function (html) {
						$(items).parents("tr").eq(0).after(html);
						var trg = $(items).parents("tr").eq(0).next(".toggle")[0];
						if ( $(items).is(".toggle-off") )
						{
							$(trg).show();
							$(".x",trg).slideDown("slow");
							$(items).removeClass("toggle-off").addClass("toggle-on");
						}
						
						reprint();
						add_review();
					});	
				}
			}else{
				var trg = $(this).parents("tr").eq(0).next(".toggle")[0];
				if ( trg )
				{
					if ( $(this).is(".toggle-off") )
					{
						$(trg).show();
						$(".x",trg).slideDown("slow");
						$(this).removeClass("toggle-off").addClass("toggle-on");
					}else{
						$(".x",trg).slideUp("slow", function(){
							$(trg).hide();
						});
						$(this).removeClass("toggle-on").addClass("toggle-off");
					}
				}
			}
			return false;
		});
	}
	orders_toggle();
	
// general toggle script
	$(".toggle-button").toggle_script();
// delete buttons
	$("table.basket a.button2.delete").click(function(){
		// implement logic(ajax) here
		$(this).parents("tr").customFadeOut("slow", function(){
			$(this).remove();
	});

		return false;
	});
// edit persdata fieldsets
	function persdata () {
		$("#edit_persdata").click(function(){
			$('#persdata-off').hide();
			$('#persdata_form').show();
		});
	}	
	persdata ();
	
// edit addresses 		
	edit_address();
	
	function edit_billing () {
		change_billing ();
		if($('#checkout').attr('method') == 'post'){
			// checkout doesn't need this
			return false;
		}else{		
			if ( $(".edit_billing").length ){
				$(".edit_billing").dview({
					save_label: "Save changes",
					on_save: function(form){
						$(form).children('.post_type').val('update');
						var target = $(form).parent("div");
						var url = $(form).children('.post_url').val();
					    var options = { 
					        target:		target,
					        url:		url,
					        type:		'post',
					        success:	function(){
					        	billing_submitted = true;
					        	edit_billing();
					        	//$('.xaddrid_delivery').change();
					        	finder();
					        },
					        resetForm:	true 
					    };
					    $(form).ajaxSubmit(options);
					    
					    return false; 
					}
				});
			}	
		}
	}
	edit_billing ();
	
	function edit_delivery () {
		change_delivery ();
		same_as_billing ();
		if($('#checkout').attr('method') == 'post'){
			// checkout doesn't need this
			return false;
		}else{
			if ( $(".edit_delivery").length ){
				$(".edit_delivery").dview({
					save_label: "Save changes",
					on_save: function(form){
						$(form).children('.post_type').val('update');
						var target = $(form).parent("div");
						var url = $(form).children('.post_url').val();
					    var options = { 
					        target:		target,
					        url:		url,
					        type:		'post',
					        success:	function(){
					        	delivery_submitted = true;
					        	edit_delivery();
					        	//$('.xaddrid_billing').change();
					        	finder();
					        },
					        resetForm:	true 
					    };
					    $(form).ajaxSubmit(options);
					    
					    return false; 
					}
				});
			}	
		}
	}
	edit_delivery ();
	
	function edit_return_address () {
		change_return_address ();
		if ( $(".edit_return_address").length ){
			$(".edit_return_address").dview({
				save_label: "Save changes",
				on_save: function(form){
					$(form).children('.post_type').val('update');
					var target = $(form).parent("div");
					var url = $(form).children('.post_url').val();
				    var options = { 
				        target:		target,
				        url:		url,
				        type:		'post',
				        success:	function(){
				        	//delivery_submitted = true;
				        	edit_return_address();
				        	//$('.xaddrid_return').change();
				        	finder();
				        },
				        resetForm:	true 
				    };
				    $(form).ajaxSubmit(options);
				    
				    return false; 
				}
			}); 
		}	
	}
	edit_return_address ();
	
	function change_billing () {
		$('.xaddrid_billing').change(function(){
			if($('#checkout').attr('method') == 'post'){
				// checkout uses json addresses
				//billing = '#billing';
				$.getJSON('/account/_address/?json=&id='+$(this).val(), function (json) {
					
					//$('.xaddrid_billing')[0].selectedIndex = json.address_id;
					$('#billing').find('.address1').val(json.address_address_line_1);
					$('#billing').find('.address2').val(json.address_address_line_2);
					$('#billing').find('.city').val(json.address_city);
					$('#billing').find('.county').val(json.address_county);
					$('#billing').find('.postcode').val(json.address_postcode);
					$('#billing').find('.country').val(json.address_country);
					$('.postcode').each(function(){
						var v = $(this).val();
						
						if(v.length > 10){
								v = v.substring(0, 10);
								$(this).val(v);
								$(this).parents('#step1').contents().find('.checkout-errors').text('Please enter a valid postcode.').show();
								$(this).parent('label').addClass('err');
						}else{
								//$(this).parents('#step1').contents().find('.checkout-errors').text('').hide();
								//$(this).parent('label').removeClass('err');
						}
						
					});	
				});
						
						
			}else{
				$(this).parents("form").children('.post_type').val('change');
				var target = $(this).parents("form").parent("div");
				var url =  $(this).parents("form").children('.post_url').val();
			    var options = { 
			        target:		target,
			        url:		url,
			        type:		'post',
			        success:	function(){
						edit_billing();
						finder();
					},
			        resetForm:	true 
			    }; 
			    $(this).parents("form").ajaxSubmit(options);
			}
		    return false; 
		});
	};
	
	function change_delivery () {
		$('.xaddrid_delivery').change(function(){
			
			if($('#checkout').attr('method') == 'post'){
				// checkout uses json addresses
				//delivery = '#delivery';
				$.getJSON('/account/_address/?json=&id='+$(this).val(), function (json) {
					//$('.xaddrid_billing')[0].selectedIndex = json.address_id;
					$('#delivery').find('.title').val(json.address_user_title);
					$('#delivery').find('.forename').val(json.address_user_forename);
					$('#delivery').find('.surname').val(json.address_user_surname);
					$('#delivery').find('.address1').val(json.address_address_line_1);
					$('#delivery').find('.address2').val(json.address_address_line_2);
					$('#delivery').find('.city').val(json.address_city);
					$('#delivery').find('.county').val(json.address_county);
					$('#delivery').find('.postcode').val(json.address_postcode);
					$('#delivery').find('.country').val(json.address_country);
					$('.postcode').each(function(){
						var v = $(this).val();
						
						if(v.length > 10){
								v = v.substring(0, 10);
								$(this).val(v);
								$(this).parents('#step2').contents().find('.checkout-errors').text('Please enter a valid postcode.').show();
								$(this).parent('label').addClass('err');
						}else{
								//$(this).parents('#step2').contents().find('.checkout-errors').text('').hide();
								//$(this).parent('label').removeClass('err');
						}
						
					});	
				});
						
			}else{		
				
				
				$(this).parents("form").children('.post_type').val('change');
				var target = $(this).parents("form").parent("div");
				var url =  $(this).parents("form").children('.post_url').val();
			    var options = {
			        target:		target,
			        url:		url,
			        type:		'post',
			        success:	function(){
						edit_delivery();
						finder();
					},
			        resetForm:	true 
			    };
			    $(this).parents("form").ajaxSubmit(options);
			    
			}
		    return false;
		});
	};
	
	function change_return_address () {
		$('.xaddrid_return').change(function(){
			$.getJSON('/account/_address/?json=&id='+$(this).val(), function (json) {
				//$('.xaddrid_billing')[0].selectedIndex = json.address_id;
				$('#step1').find('.title').val(json.address_user_title);
				$('#step1').find('.forename').val(json.address_user_forename);
				$('#step1').find('.surname').val(json.address_user_surname);
				$('#step1').find('.address1').val(json.address_address_line_1);
				$('#step1').find('.address2').val(json.address_address_line_2);
				$('#step1').find('.city').val(json.address_city);
				$('#step1').find('.county').val(json.address_county);
				$('#step1').find('.postcode').val(json.address_postcode);
				$('#step1').find('.country').val(json.address_country);

			});
		    return false; 
		});
	};
	//$(place).parents('div').contents().find('.address1').val(data);
	function same_as_billing () {
		$('.same_as_billing').click(function(){
			var userdata = $('#persdata').contents();
			var billing = $('#address_billing').contents();
			var delivery = $('#address_delivery').contents();
			if($(this).attr('checked')){
				$('.xaddrid_delivery').val($('.xaddrid_billing').val());
				$(delivery).find('.title').val($(userdata).find('.title').val());
				$(delivery).find('.forename').val($(userdata).find('.forename').val());
				$(delivery).find('.surname').val($(userdata).find('.surname').val());
				$(delivery).find('.address1').val($(billing).find('.address1').val());
				$(delivery).find('.address2').val($(billing).find('.address2').val());
				$(delivery).find('.city').val($(billing).find('.city').val());
				$(delivery).find('.county').val($(billing).find('.county').val());
				$(delivery).find('.postcode').val($(billing).find('.postcode').val());
				$(delivery).find('.country').val($(billing).find('.country').val());
				$(this).attr('checked', 'checked');
			}else{
				$('.xaddrid_delivery').val('');
				$(delivery).find('.title').val('');
				$(delivery).find('.forename').val('');
				$(delivery).find('.surname').val('');
				$(delivery).find('.address1').val('');
				$(delivery).find('.address2').val('');
				$(delivery).find('.city').val('');
				$(delivery).find('.county').val('');
				$(delivery).find('.postcode').val('');
				$(delivery).find('.country').val('221');
				$(this).attr('checked', false);
			}
		});
	}
	same_as_billing ();
	
// help improve form


	function helpImprove () {
		var personalized = false;
		
		$('#f-additional').keypress(function(e) {
			if(e.keyCode == 13) {
				if($(this).val() > ''){
					$(".improve_button").click();
				}
				return false;
			}
		});
		
		$('.improve-item').hover(function(){
			$(this).children('a').show();
		},
		function(){
			$(this).children('a').hide();
		});
		$('.delete_additional_item').click(function(){
			var id = $(this).parent('p').children('input');
			$('#overlay-default').html($('#overlay-temp5').contents().clone());
			$('#overlay-default').addClass('small');
			jQuery.overlay($("#overlay-default"));
			$('.confirm_delete_sport').click(function(){
				personalized = true;
				$(id).attr('checked', false);
				$(".improve_button").click();
			});
			return false;
		});
		$(".improve_button").click(function(){
		    var options = { 
		        target:		'#help_improve',
		        url:		'/account/?ajax',
		        type:		'post',
		        success:	function(){
					if(personalized == false){
						$('#overlay-default').html($('#overlay-temp2').contents().clone());
						$('#overlay-default').addClass('small');
						jQuery.overlay($("#overlay-default"));
					}
					helpImprove();
					$("input.default-value, textarea.default-value").each(function(){
						var val = $(this).val();
						if( val.length ){
							this._val = val;
							$(this).focus(function(){
								if ( $(this).val() == this._val)
									$(this).val("");
							}).blur(function(){
								if ( !$(this).val().length )
									$(this).val(this._val);
							});
						}
					});
				},
		        resetForm:	true 
		    };
		    $('#improve_form').ajaxSubmit(options);
			
		    return false; 
		})
	}
	helpImprove ();

	default_address();
	
	if ( $(".edit_payment").length ){
		$(".edit_payment").dview({
			save_label: "Save changes",
			on_save: function(form){
				//
			}
		});
	}	
			
	function checkout_events () {
		
		$('.country[name=delivery_xcountry]').change(function(){
				if(checkout_step > 2){
						var form = $('#checkout');
						var str = $(form).formSerialize();
						$.post('/checkout/?ajax=&part=step3', str, function(h){
								$('#cart-container').html(h);
								$('a.continue').click(function(){
										return checkout_submit(this);
								});													
						});
				}else{
						return false;
				}
		});
		
		$('.postcode').each(function(){
			var v = $(this).val();
			
			if(v.length > 10){
					v = v.substring(0, 10);
					$(this).val(v);
					$(this).parents('#step1').contents().find('.checkout-errors').text('Please enter a valid postcode.').show();
					$(this).parent('label').parent('div').contents().find('.address-error').text('Please enter a valid postcode.');
					$(this).parent('label').addClass('err');
			}else{
					//$(this).parents('#step1').contents().find('.checkout-errors').text('').hide();
					//$(this).parent('label').parent('div').contents().find('.address-error').text('');
					//$(this).parent('label').removeClass('err');
			}
			
		});		
		$('#postcode').blur(function(){
				if(checkout_step > 2 && checkout_postcode_changes != null && checkout_postcode_changes != $('#postcode').val()){
						var form = $('#checkout');
						var str = $(form).formSerialize();
						$.post('/checkout/?ajax=&part=step3', str, function(h){
								$('#cart-container').html(h);
								$('a.continue').click(function(){
										return checkout_submit(this);
								});								
						});
				}else{
						return false;
				}
		});				
		
		$('a.continue').click(function(){
				return checkout_submit(this);
		});
	}
	
	function checkout_submit (e) {
				if(checkouting){
						return false;
				}
				checkouting = true;
			if($(e).hasClass('force-step2')){
				$('#f-step').val(2);
			}
			$('#overlay-default').remove();
			var form = $('#checkout');
			var target = $(form).parent("div");
			var url = '/checkout/?ajax=';
			var options = { 
		        target:		target,
		        url:		url,
		        type:		'post',
		        success:	function (r){
					
						if(r == '<div style="padding:10px">Please wait...</div>'){
							window.location = secure_domain+'/checkout/completed/';
							return false;
						}
						checkout_step = $('#f-step').val();
						var step3_only = $('#f-step3only').val() > 0 ? true : false;
						if(checkout_step > 1){
								card_type_change();
								card_type_change_rules();
						}
						delivery_submitted = true;
						edit_delivery();
						edit_billing();
						
						recover();
						login_overlay_events();
						//$('.xaddrid_billing').change();
						
						var error_step = $('#f-error_step').val();
						if(error_step > 0){
								$(window).scrollTo($('#step'+error_step+'place'), 1000, 'easeout');
						}else if(checkout_step > 1){
								$(window).scrollTo($('#step'+checkout_step+'place'), 1000, 'easeout');
						}
						
						checkout_events();
						finder();
						
						if($('#overlay-payment-status').html() != null){
							checkout_payment_status();
						}
						checkouting = false;
						return false;
		        	
		        },
		        resetForm:	true 
		    };
		    $(form).ajaxSubmit(options);		
			return false;
	}
	
	function checkout_payment_status () {
		var html = $('#overlay-payment-status').html();
		$('#overlay-default').html(html);
		$('#overlay-default').addClass('normal');
		jQuery.overlay($("#overlay-default"));			
		$(window).scrollTo($('#overlay'), 500, 'easeout');
	}
	
	checkout_events();

	
	function returns_submit () {
		$('.get_return').click(function(){
			$('#overlay-default').remove();
			var form = $('#return');
			var target = $(form).parent("div");
			var url = '/return/'+$('#item_no').val()+'?ajax=';
			var options = { 
		        target:		target,
		        url:		url,
		        type:		'post',
		        success:	function (r){
					if(r == '<div style="padding:10px">Please wait...</div>'){
						window.location = secure_domain+'/account/';
						return false;
					}
					change_return_address();
					returns_submit();
					finder();
					return false;
		        },
		        resetForm:	true 
		    };
		    $(form).ajaxSubmit(options);
			return false;
		});
	}
	returns_submit();
	
// buttons select
	$(".button-list").buttons_select();
// zoom overlay

	$(".zoom-trigger").click(function(){
		$.poverlay($("#zoom"), {
			ready_callback: function(){
				
				var overlay = this;

				$('#poverlay').find('.active_zoomify').each(function () {
					this.initFlash();
				});

				$('#poverlay').find('.zoomify_obj').each(function () {
					var id = $(this).attr('id').replace(/zoomify_/, '');
					
					$(this).addClass('overlay_zoomify_' + id);
				});
				
				$("#thumbs-viewer2").replaceWith($("#thumbs-viewer1").clone().attr('id', 'thumbs-viewer2'));
				$("#thumbs-viewer2").thumbs_list({zoom_level: 1});
				$("#thumbs-viewer2 ul").css("left", 0);

				$("#overlay .drag").addClass("loading").dragable();

				//$("#thumbs-viewer2 a.on",this).click();
			},
			ready2_callback: function(){
				$("#thumbs-viewer2").replaceWith($("#thumbs-viewer1").clone().attr('id', 'thumbs-viewer2'));
				$("#thumbs-viewer2").thumbs_list({zoom_level: 1});
				$("#thumbs-viewer2 ul").css("left", 0);
			},
			close_callback : function(){
				window.location.href = window.location.href;
				$('#zoom .zoomify_obj').each(function () {
					var id = $(this).attr('id').replace(/zoomify\_/, '');
					$(this).html('<div id="zoomify'+id+'c"></div>');
					this.isInited = false;
				});

				return false;
			}
		});
	
		return false;
	})

	
	
// thumbs lis
		$("#thumbs-viewer1").thumbs_list();
		$("#thumbs-viewer1 a").click(function(){
			$(".tabs-product .tab-1 a").click();
			return false;
		});
// recomandations tooltips
		$(".recomandations li a").each(function(){
			var data = $(this).parents("li").children(".tooltip").html();
			$(this).tooltip(data);
		});
// price tooltips
		$('.yonex').each(function(){
			var data = $(this).parents("div").children('.tooltip').html();
			$(this).tooltip(data);
		});
		
// tabs
	tabs();
	
	$(".box-tabs").box_tabs();

	$('a.tab-size-guide').click(function(){
		$('#overlay-default').html($('#size-guide').html());
		jQuery.overlay($('#overlay-default'));
		$('#overlay-default').addClass('wide');
		//$('#overlay-default').height(200);
		return false;
	});

// dragables
	$(".drag").dragable();

	/**
	 * FORM VALIDATIONS
	 */

	if ( $("#register").length )
	{
		$("#register").validate({
			errorPlacement: function(error, element) {
				//console.log(element);
				//error.appendTo( element.parent("label").next("td") );
				element.parents("label").addClass("err").append(error);

			},
			success: function(label, element){
				$(element).parents("label").removeClass("err");
				$(label).remove();
			},
			rules: {
				// normal registration
				xtitle: "required",
				xforename: {
					required: true,
					maxLength: 30
				},
				xsurname: {
					required: true,
					maxLength: 30
				},
				xemail: {
					required: true,
					email: true,
					maxLength: 250
				},
				xemail2:{
					equalTo: "#email",
					maxLength: 250
				},
				xphone1:{ 
					required: true,
					minLength: 10,
					maxLength: 30
				},
				xphone2:{ 
					minLength: 10,
					maxLength: 30
				},
				xpostcode: {
					required: true,
					maxLength: 10
				},
				xaddress1: {
					required: true,
					maxLength: 30
				},
				xaddress2: {
					maxLength: 30
				},
				xcity: {
					maxLength: 30
				},
				xcounty: {
					maxLength: 30
				},
				xpassword: {
					required: true,
					minLength: 6,
					maxLength: 32
				},
				xpassword2: {
					required: true,
					equalTo: "#password"
				},
				// school registration
				institution_name: {
					required: true,
					maxLength: 30
				},
				purchasing_name: {
					maxLength: 30
				},
				purchasing_email: {
					email: true,
					maxLength: 250
				},
				secretary_name:{ 
					maxLength: 30
				},
				secretary_phone:{ 
					minLength: 10,
					maxLength: 30
				},
				secretary_email: {
					email: true,
					maxLength: 250
				},
				xcity: {
					required: true,
					maxLength: 30
				},
				institution_phone:{ 
					minLength: 10,
					maxLength: 30
				},
				institution_fax:{ 
					required: true,
					minLength: 10,
					maxLength: 30
				},
				number_of_students: {
					digits: true,
					maxLength: 30
				},
				institution_website: {
					maxLength: 30
				},
				institution_type: {
					required: true,
					maxLength: 30
				},
				// coaches registration
				sport: {
					required: true
				},
				club_name:{
					required: true,
					maxLength: 30
				},
				club_phone:{
					required: true,
					minLength: 10,
					maxLength: 30
				},
				club_address:{
					required: true,
					maxLength: 30
				},
				club_secretary:{
					required: true,
					maxLength: 30
				},
				number_of_members:{
					digits: true,
					maxLength: 30
				},
				lta_ptr_reg_nr:{
					maxLength: 30
				},
				rating_level:{
					required: true,
					maxLength: 30
				},
				sponsorship:{
					maxLength: 30
				},
				qualifications:{
					maxLength: 30
				}
			}
		});
	}
	if ( $("#tab-rate form").length )
	{
		$("#tab-rate form").validate({
			errorPlacement: function(error, element) {
				//console.log(element);
				//error.appendTo( element.parent("label").next("td") );
				error.appendTo($(element).parents("form").children(".err-container"));
			},
			success: function(label, element){
				$(element).parents("label").removeClass("err");
				$(label).remove();
			},
			rules: {
				title: "required",
				review: "required",
				rating1: "required"
			},
			messages: {
				title: "Please enter a title",
				review: "Please enter a review",
				rating1: "Please select a rating"
			},
			
			submitHandler: function () {
			    var options = { 
			        target:		'#add_review',
			        url:		'/review/?ajax',
			        type:		'post'
			    };
			    $('#review_form').ajaxSubmit(options); 
			}
		});
	}
	if ( $("#edit_review form").length )
	{
		$("#edit_review form").validate({
			errorPlacement: function(error, element) {
				//console.log(element);
				//error.appendTo( element.parent("label").next("td") );
				error.appendTo($(element).parents("form").children(".err-container"));
			},
			success: function(label, element){
				$(element).parents("label").removeClass("err");
				$(label).remove();
			},
			rules: {
				title2: "required",
				review2: "required",
				rating2: "required"
			},
			messages: {
				title2: "Please enter a title",
				review2: "Please enter a review",
				rating2: "Please select a rating"
			},
			
			submitHandler: function () {
			    var options = { 
			        target:		'#edit_review',
			        url:		'/account/?ajax',
			        type:		'post',
			        success:	function(){
			        	$('#overlay-rating').removeClass('normal').addClass('small');
			        	$('.close').click(jQuery.overlay_off());
			        	
			        }
			    };
			    $('#review_edit_form').ajaxSubmit(options); 
			}
		});
	}
	function send_to_friend(){
		$('a.send-to-friend').click(function(){
		    var options = { 
		        target:		'#send_to_friend',
		        url:		'/send-to-friend/?ajax',
		        type:		'post',
		        success:	function(){
		        	send_to_friend();
		        },
		        resetForm:	true
		    };
		    $('#friend_form').ajaxSubmit(options);
		    return false; 
		});
	}
	send_to_friend();
	if ( $("#voucher").length )
	{
		$("#voucher").validate({
			errorPlacement: function(error, element) {
				//console.log(element);
				//error.appendTo( element.parent("label").next("td") );
				element.parents("label").addClass("err").append(error);

			},
			success: function(label, element){
				$(element).parents("label").removeClass("err");
				$(label).remove();
			},
			rules: {
				vn: {
					required: true,
					maxLength: 10,
					minLength: 10
					},
				em: {
					required: true,
					email: true,
					maxLength: 250
				}
			},
			messages: {
				vn: "Please enter a voucher number, this must be 10 digits.",
				em: "Please enter a valid email address."
			}
		});
	}
	if ( $("#ask").length )
	{
		$("#ask").validate({
			errorPlacement: function(error, element) {
				//console.log(element);
				//error.appendTo( element.parent("label").next("td") );
				element.parents("label").addClass("err").append(error);

			},
			success: function(label, element){
				$(element).parents("label").removeClass("err");
				$(label).remove();
			},
			rules: {
				name: "required",
				email: {
					required: true,
					email: true,
					maxLength: 250
				},
				subject: "required",
				message: "required"
			}
		});
	}
	if ( $("#contact").length )
	{
		$("#contact").validate({
			errorPlacement: function(error, element) {
				//console.log(element);
				//error.appendTo( element.parent("label").next("td") );
				element.parents("label").addClass("err").append(error);

			},
			success: function(label, element){
				$(element).parents("label").removeClass("err");
				$(label).remove();
			},
			rules: {
				name: "required",
				email: {
					required: true,
					email: true,
					maxLength: 250
				},
				reference: "required",
				subject: "required",
				message: "required"
			}
		});
	}
	
	function validate_persdata () {
		$('.save_persdata').click(function(){
		    var options = { 
		        target:		'#persdata',
		        url:		'/account/?ajax',
		        type:		'post',
		        success:	function () {
		        	persdata();
		        	validate_persdata();
					$("form a.submit").click(function(){
						$(this).parents("form").submit();
						return false;
					});
		        },
		        resetForm:	true 
		    }; 
		    $('#persdata_form').ajaxSubmit(options); 
		    $('#h-user-forename').text($('#xforename').val());
		    return false; 
		});
	}
	validate_persdata();
	
	//add_address();
	
	// png fix
	if ( $.fn.ifixpng ){
		$("#producer-logo").ifixpng();
	}
	// checkbox lists
	$(".checkbox-list label.all input").check_all();

	// slider
	if ( $.fn.slider ){
		$(".ui-slider").slider({startValue: 50,change: function(e, ui){
			var val = 3;
			if($(this).slider('value') < 12){
				val = 1;
			}else if($(this).slider('value') >= 12 && $(this).slider('value') < 37){
				val = 2;
			}else if($(this).slider('value') >= 37 && $(this).slider('value') < 63){
				val = 3;
			}else if($(this).slider('value') >= 63 && $(this).slider('value') < 87){
				val = 4;
			}else{
				val = 5;
			}
			//var name = ;
			$('input[name='+$(this).attr('id')+']').val(val);
			// console.log(ui.value);
		}});
		var ival = 50;
		var sval = $('input[name='+$('.ui-slider').attr('id')+']').val();
		if(sval == 1) ival = 0; if(sval == 2) ival = 25; if(sval == 3) ival = 50; if(sval == 4) ival = 75; if(sval == 5) ival = 100;
		$(".ui-slider").slider('moveTo', ival);
	}

	// sections
$("ul.sections").sections();
	$("a.guide-jump").click(function(){
		// first, check to see if the right tab is on
		if ( !$("#bguide-tabs li.tab-guide a").is(".on") )
		{
			$("#bguide-tabs li.tab-guide a").click();
			$("#tab-guide").show();
		}
		// now check to see if tha called section is open
		var x = $(this).attr("href");
		if ( !$(x).is(".toggle-on") )
		{
			$(x).click();
		}
	});
	

/*
$('a.tab-buying-guide').click(function(){
		$('#overlay-default').html($('#buying-guide').html());
		jQuery.overlay($('#overlay-default'));
		$('#overlay-default').addClass('wide');
		//$('#overlay-default').height(200);
		return false;
	});
*/
$('div.buying_guide').each(function(){
		var url = document.location.toString();
		if (url.match('#')) {
		  var anchor = '#' + url.split('#')[1];
		  $('div.buying_guide ul li a[href="'+anchor+'"]').click();
		}
	});
	// read more dots
	var more_height = 0;
	$(".read-more").click(function(){
//		$(this).parent().siblings().children(".dots").toggle();
		var div_intro = $(this).parent().parent().children(".intro");
		var div_more = $(this).parent().parent().children(".more");

		if(more_height == 0) {
			div_more.show();
			more_height = div_more.height();
			div_more.hide();
			intro_h = div_intro.height();
		}

		if(div_intro.css('display') == 'none') {
			div_more.animate({height: intro_h}, "slow", "linear", function() {
				div_more.hide();
				div_intro.show();
			});
		}
		else {
			div_intro.hide();
			div_more.show();
			div_more.height(intro_h);
			div_more.animate({height: more_height}, "slow", "linear", function() {
				div_more.css('height', 'auto');
			});
		}
	});
	
	// finder
	finder ();
	
	function reprint () {
		$(".reprint").click(function(){
			var item_id = $(this).parent('td').children('.item_id').val();
			$.get('/return/reprint/'+item_id+'?ajax', function (html) {
				$('#overlay-return').html(html);		
				jQuery.overlay($("#overlay-return"));
				$('.close').click(function(){
					jQuery.overlay_off();
				});
			});	
		});
	}
	reprint();
	
	function edit_review (){
		$('.edit_review').click(function(){
			var rate = $(this).parent('td').children('.review_rate').val();
			$('.review_id2').val($(this).parent('td').children('.review_id').val());
			$('.title2').val($(this).parent('td').children('.review_title').val());
			$('.text2').val($(this).parent('td').children('.review_text').val());
			$('a[title="'+rate+'"]').parent('div').click();
			jQuery.overlay($("#overlay-rating"));
			return false;
		});
	}
	edit_review();
	
	function delete_review (){
		$('.delete_review').click(function(){
			var review_id = $(this).parent('td').children('.review_id').val();
			$('#overlay-default').html($('#overlay-temp').html());
			jQuery.overlay($("#overlay-default"));
			$("#overlay-default").addClass('small');
			$('.confirm_delete').click(function(){
				$.get('/account/delete_review/'+review_id+'?ajax', function (html) {
					$('#user_reviews').html(html);
					orders_toggle();
					edit_review();
					delete_review();
				});	
			});
		});
	}
	delete_review();
	
	function add_review (){
		$('.review_hitem').click(function(){
			var product_id = $(this).parent('td').children('.product_id').val();
			$('.product_id2').val($(this).parent('td').children('.product_id').val());
			jQuery.overlay($("#overlay-rating"));
			return false;
		});
	}
	add_review();
	
	function more_orders (){
		$('.more-orders').click(function(){
			$.get('/account/more_orders?ajax', function (html) {
				$('.orders').html(html);
				$('#more-orders').hide();
				orders_toggle();
				reprint();
				add_review();
			});	
		});
	}
	more_orders();
		
// Advanced search		
	
	function advsearch_category_changed (json) {
		// Performance attributes
		var h = '<div class="item"><input type="checkbox" id="all_performance" name="performance[]" value="all" checked="checked" onclick="var c = $(this).attr(\'checked\'); if(c){ $(\'#advsearch-performance-list input\').attr(\'checked\', \'checked\'); }else{ $(\'#advsearch-performance-list input\').attr(\'checked\', false); }" /> <strong>All</strong></div>';
		$.each(json.performance, function(i, item){
			h += '<div class="item"><input type="checkbox" name="performance[]" value="'+item.attribute_value_id+'" checked="checked" /> '+item.attribute_value+'</div>'
		});
		$('#advsearch-performance-list').html(h);	
		
		
		// Brands
		var h = '<div class="item"><input type="checkbox" id="all_brands" value="all" checked="checked" onclick="var c = $(this).attr(\'checked\'); if(c){ $(\'#advsearch-brand-list input\').attr(\'checked\', \'checked\'); }else{ $(\'#advsearch-brand-list input\').attr(\'checked\', false); }" /> <strong>All</strong></div>';
		if(json.brands.length > 0){
			$.each(json.brands, function(i, item){
				h += '<div class="item"><input type="checkbox" name="brand[]" value="'+item.brand_id+'" checked="checked" /> '+item.brand_name+'</div>'
			});
		}
		$('#advsearch-brand-list').html(h);

		var h = '<option value="">All sizes</option>';
		$('#advsearch-size').html(h).attr('disabled', 'disabled');	
	}

	$('#advsearch-price').change(function(){
//		if($('#advsearch-price').val() == 0){
//			$('#advsearch-category').html('<option value="0">All</option>').attr('disabled', 'disabled');
//			return false;
//		}
//		if($('#advsearch-sport').val() == advsearch_last_id){
//			return false;
//		}
		var advsearch_price = $('#advsearch-price').val()*50;		
		$.getJSON('/search/advanced/_price/?json=&p='+$('#advsearch-price').val()*50, function (json) {
			var h = '';
			$.each(json.prices, function(i, item){
				h += '<option value="'+item.id+'" ';
				if(item-advsearch_price==50){ h+= 'selected="selected"'; var sel = 1; }
				h += '>'+item.name+'</option>';
				});
			var dstate = (json.prices.length > 0) ? false : 'disabled';
			$('#price_max').html(h).change().attr('disabled', dstate);
			advsearch_category_changed(json);
		});		
	});
	
	$('#advsearch-sport').change(function(){
		if($('#advsearch-sport').val() == 0){
			$('#advsearch-category').html('<option value="0">All</option>').attr('disabled', 'disabled');
			return false;
		}
		if($('#advsearch-sport').val() == advsearch_last_id){
			return false;
		}
		advsearch_last_id = $('#advsearch-sport').val();		
		$.getJSON('/search/advanced/_categories/?json=&p='+$('#advsearch-sport').val(), function (json) {
			var h = '<option value="0">All</option>';
			$.each(json.categories, function(i, item){
				h += '<option value="'+item.category_id+'">'+item.category_name+'</option>';
				});
			var dstate = (json.categories.length > 0) ? false : 'disabled';
			$('#advsearch-category').html(h).change().attr('disabled', dstate);
			advsearch_category_changed(json);
		});		
	});

	$('#advsearch-category').change(function(){
		var category_id = $('#advsearch-category').val();
		if($('#advsearch-category').val() == 0){
			category_id = $('#advsearch-sport').val();
			$('#advsearch-type').html('<option value="0">All</option>').attr('disabled', 'disabled');
		}		
		if(category_id == advsearch_last_id){
			return false;
		}
		advsearch_last_id = $('#advsearch-category').val();
		
		$.getJSON('/search/advanced/_categories/?json=&p='+category_id, function (json) {
			if($('#advsearch-category').val() > 0){
				var h = '<option value="0">All</option>';
				$.each(json.categories, function(i, item){
					h += '<option value="'+item.category_id+'">'+item.category_name+'</option>';
				});
				var dstate = (json.categories.length > 0) ? false : 'disabled';			
				$('#advsearch-type').html(h).attr('disabled', dstate);
			}
			advsearch_category_changed(json);
		});
	});

	$('#advsearch-type').change(function(){
		$.getJSON('/search/advanced/_categories/?json=&p='+$('#advsearch-type').val(), function (json) {
			advsearch_category_changed(json);
			
			var h = '<option value="">All sizes</option>';
			if(json.sizes.length > 0){
				$.each(json.sizes, function(i, item){
					h += '<option value="'+item.attribute_value_id+'">'+item.attribute_value+'</option>';
				});
			}
			var dstate = (json.sizes.length > 0) ? false : 'disabled';
			$('#advsearch-size').html(h).attr('disabled', dstate);
		});
	});

	prodlist();	
	
	$('li.women_sizes').hide();
	$('li.junior_sizes').hide();
	$('select[name=who]').change(function(){
		if($('select[name=who]').val() == '1'){
			$('li.men_sizes').show();
			$('li.women_sizes').hide();
			$('li.junior_sizes').hide()
		}else if($('select[name=who]').val() == '2'){
			$('li.men_sizes').hide();
			$('li.women_sizes').show();
			$('li.junior_sizes').hide()
		}else{
			$('li.men_sizes').hide();
			$('li.women_sizes').hide();
			$('li.junior_sizes').show()
		}
	});
	
	$('#f-promocode').bind('keypress', function(e) {
		var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
		if (key === 13) {
			e.preventDefault();
			window.location=secure_domain+'/basket/update/?promocode='+$('#f-promocode').val();
			return false;
		}
	});
	
// Buying Guide Overlay
$('a.product_guide_item').click(function(){
		var id = $('#guide_id').val();
		var item = $(this).attr('href');
		$.get('/guide/_guide_items/'+id+'?ajax', function (html) {
			$('#tab-guide').html(html);
			jQuery.overlay($('#overlay-return'));
			$("ul.sections").sections();
			$(item).click();
			$('#guide_items').scrollTo($(item), 1000);
		});	
		return false;
	});

	login_overlay_events();
	recover ();
 });

	
// prod-list
function prodlist () {
	if ( $(".prod-list").length )
	{
		$(".prod-list li").each(function(){
			var klass = $(this).attr("class").split(" ")[0];
			var i = $("<img src='/images/pbox-t-"+klass+".gif' class='top' />");
			var self = this;
			i.click(function(){
				document.location = $("a", self).attr("href");
			})
			$(this).append(i);
		});
		
		$('.prod-list ul').each(function(){
			var mh = 0;
			var mc = 0;
			
			$(this).find('h2').each(function(){
				var h = $(this).height();
				if(h > mh){ mh = h; }
			});
			$(this).find('h2').height(mh);
			$(this).children('li').each(function(){
				var h = $(this).height();
				if(h > mc){ mc = h;	}
			});
			$(this).children('li').height(mc);
		});

		$('.prod-list ul').each(function(){
			var mh = 0;

			$(this).find('.rrp').each(function(){
				var h = $(this).height();
				if(h > mh){ mh = h; }
			});

			$(this).find('.rrp').each(function(){
				var h = $(this).height();
				if(h < mh){ $(this).height(mh); }
			});
		});

		$('.prod-list ul').each(function(){
			var mh = 0;

			$(this).find('.h3_banner').each(function(){
				var h = $(this).height();
				if(h > mh){ mh = h; }
			});

			$(this).find('.h3_banner').each(function(){
				var h = $(this).height();
				if(h < mh){ $(this).height(mh+6); }
			});
		});

	}	
}

var product_attribute_default_price = false;

function findPriceByAttributes(items) {
	var siblings = new Array();
	var i = 0;
	var toReturn = false;

	if(has_attribute_rel) {
		jQuery.each(attribute_rel_prices, function (i2, val) {
			var allIn = true;
			jQuery.each(items, function (ia, val2) {
				var attr_id = parseInt(val2);
				if(jQuery.inArray(attr_id, val['ids']) < 0) {
					allIn = false;
				}
			});

			if(allIn)
			{
				toReturn = val['price'];
//				$(".debug_block").html("q: " + val['qty'] + " p: " + val['price'] + " idt: " + val['idtext']);
			}
		});
	}
	return toReturn;
}

function findQtyByAttributes(items) {
	var siblings = new Array();
	var i = 0;
	var toReturn = false;

	if(has_attribute_rel) {
		jQuery.each(attribute_rel_prices, function (i2, val) {
			var allIn = true;
			jQuery.each(items, function (ia, val2) {
				var attr_id = parseInt(val2);
				if(jQuery.inArray(attr_id, val['ids']) < 0) {
					allIn = false;
				}
			});

			if(allIn)
			{
				toReturn = val['qty'];
			}
		});
	}

	return toReturn;
}

function product_attribute_price () {
	var selected = new Array();
	var i = 0;
	$('.attribute-list').each(function () {
		var siblings = $(this).find('a.on, a.button3-on');
		if(siblings.length > 0)
		{
			selected[i] = parseInt(siblings.attr('id'));
			i++;
		}
	});

	var price = findPriceByAttributes(selected);

	if(price){
		$('#product-price').html(price);
//		document.writeln(price);
//		$('#product-price').innerHTML = price;
		//Remove all options
	}else if(product_attribute_default_price){
		$('#product-price').html(product_attribute_default_price);
	}

	var qty = findQtyByAttributes(selected);
	
	if(qty){
		$("#f-product_quantity").removeOption(/./);
		var x;
		for(x=1;x<=qty;x++){
			$("#f-product_quantity").addOption(x, x);
		}
		$("#f-product_quantity").selectOptions("1", true);
	}

}

function login_overlay_events () {
	$('#login-overlay-username, #login-overlay-password').keypress(function(e) {
		if(e.keyCode == 13) {
			if ($(this).attr('class') == 'text pwd'){
				$(this).parents("form").submit();
			}else if($(this).attr('class') == 'text default-value mail'){
				if($('.pwd').val().length > 0) $(this).parents("form").submit();
			}else if($(this).attr('class') == 'text pwd default-value'){
				login_overlay();
				return false;
			}
			return false;
		}
	});
	//recover();
	default_values();

	loginboxevents();
}		

function loginboxevents()
{
	var text_cont		= false;
	var default_text	= false;

	$('#login-overlay-toggle, #login-overlay-toggle2').click(function(){
		if(greenbox_running) return false;
		greenbox_running = true;
		setTimeout (function(){ greenbox_running = false; }, 600);
		if($('#login-overlay-inner').hasClass('open')){
			text_cont.html(default_text);
			loginboxevents();

			$('#login-overlay-inner').animate({height: '9px'}, 500).removeClass('open');
		}else{
			if(!default_text)
			{
				text_cont = $('#login-overlay-toggle').parent('p');
				default_text = text_cont.html();
			}

			$('#login-overlay-inner').animate({height: '90px'}, 500).addClass('open');				
		}
 		return false;
	});	
}

function buying_guide (e, page) {
	var url = $(e).attr('href');
	$('#tab-recommendations').load(url+'&ajax=', function(){
		$('#bguide-tabs li').removeClass('on');
		$('#tab-guide').hide();
		$('#tab-recommendations').show();
		$('#tab-recommendations > a').addClass('on');		
		prodlist();
	});
}

function advanced_search (id) {
/*
	if($(id).attr('method') == 'post'){
		var url = '/search/advanced/?ajax';
		var method = 'post';
	}else{
		var url = '/search/?ajax';
		var method = 'get';
	}
    var options = { 
        target:		'#tab-1',
        url:		url,
        type:		method,
        success:	function (){
        	prodlist();
        },
        resetForm:	false
    };
    $(id).ajaxSubmit(options);
    return false;
*/
}

function default_values () {
	$("input.default-value, textarea.default-value").each(function(){
		var val = $(this).val();
		if( val.length ){
			this._val = val;
			$(this).focus(function(){
				if ( $(this).val() == this._val)
					$(this).val("");
			}).blur(function(){
				if ( !$(this).val().length )
					$(this).val(this._val);
			});
		}
	});
		
}

// forgot password
function recover () {
	$("a.recover-pass").click(function(){
		if($('#overlay-default')[0] != null){
			//$('body').append('<div id="overlay-default" style="display: none;"></div>');
		}
		
		$.get('/account/recover/?ajax', function (html) {
			$('#overlay-default').html(html);
			$('#overlay-default').addClass('small');
			if($('.mail').val() != 'Enter email address'){
				$('#f-email').val($('.mail').val());
			}
			jQuery.overlay($("#overlay-default"));
			
			$("a.recoverp").click(function(){
				var options = { 
					target:		'#overlay-default',
					url:		'/account/recover/?ajax',
					type:		'post',
					success:	recover
				};
				$('#forgot').ajaxSubmit(options); 
				return false; 
			});
			
			$('.close').click(function(){
				jQuery.overlay_off();
			});
			
			$('#f-email').keypress(function(e) {
				if(e.keyCode == 13) {
					$("a.recoverp").click();
					return false;
				}
			});
		});	
	});
	
	$("a.recoverp").click(function(){
		var options = { 
			target:		'#overlay-default',
			url:		'/account/recover/?ajax',
			type:		'post',
			success:	recover
		};
		$('#forgot').ajaxSubmit(options); 
	});
	
	$('.close').click(function(){
		jQuery.overlay_off();
	});
	
	$('#f-email').keypress(function(e) {
		if(e.keyCode == 13) {
			$("a.recoverp").click();
			return false;
		}
	});
	return false;
}

function checkout_delivery_change (e, cart_key) {
		var c = $('.country[name=delivery_xcountry]').val();
		var pc = $('.postcode[name=delivery_xpostcode]').val();
		$(e).attr('disabled','disabled');
		$.get('/checkout/_shipping/?json=&cart_key='+cart_key+'&val='+$(e).val()+'&c='+c+'&pc='+escape(pc), function(data){
				$.getJSON('/checkout/_shipping/?json=&u=&cart_key='+cart_key+'&val='+$(e).val()+'&c='+c+'&pc='+escape(pc), function (json) {
					$('#p-shipping').html(json.shipping);
					$('#p-total').html(json.total);
					$(e).attr('disabled',false);
				});				
		});

		
}

function default_address () {
	$('.default_address, .delete_address').click(function(){
		if($(this).attr('name') == 'delete'){
			var id = $(this).parents('div').contents().find('.default_address').val();
				$('#overlay-default').html($('#overlay-temp3').contents().clone());
				jQuery.overlay($("#overlay-default"));
				$("#overlay-default").addClass('small');
				$('.confirm_delete_address').click(function(){
					$.get('/account/delete_address/'+id+'?ajax', function (html) {
						$('#address').html(html);
						default_address();
						edit_address(); 
						finder(); 
						tabs(); 
						$(".box-tabs").box_tabs();
						jsubmit();
					});
				});

		}else{
			var id = $(this).val();
			$.get('/account/default_address/'+id+'?ajax', function (html) {
				$('#address').html(html);
				default_address();
				edit_address(); 
				finder(); 
				tabs(); 
				$(".box-tabs").box_tabs();
				jsubmit();
			});
		}
	});
	return false;
}

function edit_address () {
	var err = false;
	add_address ();

	$('.postcode').each(function(){
		var v = $(this).val();
		
		if(v.length > 10){
				v = v.substring(0, 10);
				$(this).val(v);
				$(this).parent('label').parent('div').contents().find('.address-error').text('Please enter a valid postcode.');
				$(this).parents('#step1').contents().find('.checkout-errors').text('Please enter a valid postcode.').show();
				$('#register').contents().find('.postcode').parent('label').append('<label class="error" for="postcode" generated="true">Please enter a valid postcode.</label>');
				$(this).parent('label').addClass('err');
		}else{
				//$(this).parent('label').parent('div').contents().find('.address-error').text('');
				//$(this).parents('#step1').contents().find('.checkout-errors').text('').hide();
				//$(this).parent('label').removeClass('err');
		}
		
	});
	
	$(".edit_address").click(function(){
		$(this).parent('div').parent('div').hide();
		var key = $(this).parent('div').parent('div').attr('id');
		$('#edit_address_form_'+key).show();
	});
	
	$(".save_address").click(function(){
		    var options = { 
		        target:		'#address',
		        url:		'/account/?ajax',
		        type:		'post',
		        success:	function (){
		        	default_address();
		        	edit_address();
		        	finder();
		        	tabs();
		        	$(".box-tabs").box_tabs();
					jsubmit();
					address_edited = true;
		        },
		        resetForm:	true
		    };
		    $(this).parent('div').parent('div').parent('form').ajaxSubmit(options);
		    return false; 
	});
}

function finder () {
	/*
	$('.postcode').keyup(function(event){
		var p = $(this).val();
		p = p.toUpperCase();	
		$(this).val(p);
	});
	*/
	$("form label a.fl").click(function(){
		if(finder_inited == true){
			return false;
		}
		finder_inited = true;
		if(jQuery.__overlay_inited == true){
			return false;
		}
		var form = $(this).parents('form');
		var code = $(this).parent('label').children('.postcode').val();
		var place = $(this);
		if($(code).val() == '') postcode_overlay = $(this).parent('label').children('.postcode');
		$.get('/register/finder/'+code+'?ajax', function (html) {
			finder_inited = false;
			//jQuery.__overlay_inited = false;
			$('#overlay-default').html(html);
			var c = $('#overlay-default #style').attr('class');
			$('#overlay-default').removeClass('small').removeClass('normal').addClass(c);
			jQuery.overlay($("#overlay-default"));	

			$("#postcode_close").click(function(){
				$(place).parent('label').parent('div, form').contents().find('.postcode').focus();
			});

			$("#postcode_select").click(function(){
				var address = $('#postcode_list').val();
				if(address){
					address = address.split('|');
					var data = '';
					if(address[0]){ data += address[0]+' '; }
					if(address[1]){ data += address[1]+' '; }
					if(address[2]){ data += address[2]+' '; }
					if(address[3]){ data += address[3]+' '; }
					if(address[4]){ data += address[4]+' '; }
					if(address[5]){ data += address[5]; }
					var dd = ''; var ee = ''; var aa = ''; var bb = '';
					if(data.length > 30){
						for(i=0; i<6; i++){
							if(address[i]) dd += address[i]+' ';
							if(dd.length < 30){
								if(address[i]) aa += address[i]+' ';
							}else{
								if(address[i]) ee += address[i]+' ';
								if(ee.length < 30){
									if(address[i]) bb += address[i]+' ';
								}
							}
							
						}
						if(!aa){
							var dd = ''; var ee = ''; var aa = ''; var bb = '';
							data = data.split(' ');
							for(i=0; i<data.length; i++){
								dd += data[i]+' ';
								if(dd.length < 30){
									aa += data[i]+' ';
								} else {
									ee += data[i]+' ';
									if(bb.length < 30){
										bb += data[i]+' ';
									}
								}
							}
						}
					}else{
						aa = data;
					}
					$(place).parent('label').parent('div, form').contents().find('.address1').val(aa);
					$(place).parent('label').parent('div, form').contents().find('.address2').val(bb);
					$(place).parent('label').parent('div, form').contents().find('.city').val(address[6]);
					$(place).parent('label').parent('div, form').contents().find('.county').val(address[7]);

					$(place).parent('label').parent('div, form').contents().find('.postcode').focus();
				}
			});
			
			$('#postcode_list').dblclick(function(){
				$("#postcode_select").click();
			});
			$('#postcode_list').keyup(function(e) {
				if(e.keyCode == 13) {
					$("#postcode_select").click();
					return false;
				};
			});
		});	
	});
	
	$(".postcode, .postcodefind").keyup(function(e){
		if(e.keyCode == 13) {
			if(finder_inited == true){
				return false;
			}
			if(jQuery.__overlay_inited == true){
				return false;
			}
			$(this).parent('label').children('a.fl').click();
		}
	});
	
	$(".postcode").keyup(function(e){
		if($(this).hasClass('postcode')){
			var postdode = $(this).val().toUpperCase();
			$(this).val(postdode.replace(/[^A-Za-z0-9 ]/,''));
		}
	});
}

function tabs () {
	if ( $(".tabs") )
	{
		$(".tabs a").each(function(){
			var c = $(this).parents("li").eq(0).attr("class");
			this.__trg = $("#"+c)[0];
			if ( !$(this).is(".on") ) $(this.__trg).hide();
		}).click(function(){
			if ( $(this).is(".disabled") ) return false;
			if ( $(this).is(".on") ) return false;

			var parent = $(this).parents("ul");
			if($("a.on", parent)[0]) {
				var crt = $("a.on", parent).removeClass("on")[0].__trg;
				var newtab = this.__trg;

				$(crt).hide();
				$(newtab).show();
/*
				$(crt).customFadeOut("slow", function(){
					$(newtab).customFadeIn("slow");
				});
*/
			}
			else {
				var newtab = this.__trg;
//				$(newtab).customFadeIn("slow");
				$(newtab).show();
			}
			$(this).addClass("on");
			return false;
		});
	}
}

function jsubmit () {
	$("form a.submit").click(function(){
		$(this).parents("form").submit();
		return false;
	});
}

function add_address () {
	$(".save_new_address").click(function(){
	    var options = { 
	        target:		'#tab-address',
	        url:		'/account/?ajax',
	        type:		'post',
	        success:	function(){ 
	        	default_address(); 
	        	edit_address(); 
	        	finder(); 
	        	//tabs(); 
	        	//$(".box-tabs").box_tabs();
				jsubmit();
	        },
	        resetForm:	true 
	    }; 
	 
	    $('#new_address_form').ajaxSubmit(options); 
	    return false;
	});
}

function customize_price () {
		var v_letters = $('#f-letters').val();
		for($i=0;$i<17;$i++){
				v_letters = v_letters.replace(' ','');
		}
		var v_numbers = $('#f-numbers').val();
		v_numbers = v_numbers.replace(' ','');
		var len_letters = v_letters.length;
		var len_numbers = v_numbers.length;
		var price = (len_letters * customize_football_shirt_letter) + (len_numbers * customize_football_shirt_number);
		price = price.toFixed(2);
		$('#f-customize-cost').html(customize_football_currency_symbol+price);
}

function dump(arr, add)
{
	if($('#debug_div').length == 0)
	{
		var div = '<div id="debug_div" style="font-size: 10px; text-align: left; position: fixed; bottom: 0; left: 0; background: white; border: 1px solid black; z-index: 170; width: 600px; height: 300px; overflow: scroll; ">';
		$('body').append(div);
	}

	text = dump_el(arr, 0, add);
	if(add)
	{
		$('#debug_div').append(text+'<br/>');
	}
	else
	{
		$('#debug_div').html(text+'<br/>');
	}
}

function advanced_search_submit () {
		//$('#f-advanced-search').submit();
		var str = '?';
		var brand_str = '';
		var performance_str = '';
		$('#f-advanced-search input, #f-advanced-search select').each(function(){
				if($(this).attr('name') == 'brand[]'){
						if($(this).attr('checked') == true){
								if(brand_str != ''){
										brand_str += ',';
								}
								brand_str += $(this).val();
						}
				}else if($(this).attr('name') == 'performance[]' && $(this).attr('checked') == true){
						if($(this).attr('checked') == true){
								if(performance_str != ''){
										performance_str += ',';
								}
								performance_str += $(this).val();
						}
				}else{
						str += '&'+$(this).attr('name')+'='+escape($(this).val());
				}
		});
		str += '&brand='+brand_str+'&performance='+performance_str;		
		window.location.href = '/search/advanced/'+str;
		return false;
}

function dump_el(arr,level, add) {
	var dumped_text = "";
	if(!level) level = 0;

//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) level_padding += "_-";

	if(typeof(arr) == 'object') { //Array/Hashes/Objects
 		for(var item in arr) {
  			var value = arr[item];
 
  			if(typeof(value) == 'object') { //If it is an array,
   				dumped_text += level_padding + "'" + item + "' ...<br/>";
   				dumped_text += dump_el(value,level+1);
			} else {
				dumped_text += level_padding + "'" + item + "' => \"" + value + "\"<br/>";
			}
		}
	} else { //Stings/Chars/Numbers etc.
		dumped_text = ""+arr+" (type: "+typeof(arr)+")<br/>";
	}
	return dumped_text;
}

function initAdminBreadcrumb()
{
	$(document).ready(function () {
		$('.add-more-breadcrumbs a').click(function () {
			var br = $('.breadcrumb:last').get(0);
			var clone = $(br).clone();
			clone.find('input').each(function () {
				$(this).val('');
			});

			$(br).after(clone);

			return false;
		});
	});
}

function postcodeLink(element_postcode, element_country){
	var postcode_array = new Array();
	var x=y=0;
	postcode_array[0] = Array(306, Array("IM"));
	postcode_array[1] = Array(307, Array("PO30", "PO35", "PO36", "PO38", "PO40", "PO34", "PO37"));
	postcode_array[2] = Array(241, Array("JE"));
	postcode_array[3] = Array(305, Array("GY"));
	postcode_array[4] = Array(240, Array("AB3", "AB4", "AB51", "AB52", "AB53", "AB54", "AB55", "AB56", "FK20", "HS1", "HS2", "HS3", "HS4", "HS5", "HS6", "HS7", "HS8", "HS9", "HS1", "HS2", "HS3", "HS4", "HS5", "HS6", "IV1", "IV2", "IV3", "IV4", "IV5", "IV6", "IV7", "IV8", "IV9", "IV1", "IV2", "IV3", "IV4", "IV5", "IV60", "IV61", "IV62", "IV63", "KA27", "KA28", "KW1", "KW2", "KW3", "KW4", "KW5", "KW6", "KW7", "KW8", "KW9", "KW10", "KW11", "KW12", "KW13", "KW14", "KW15", "KW16", "KW17", "PA2", "PA3", "PA4", "PA5", "PA6", "PA70", "PA71", "PA72", "PA73", "PA74", "PA75", "PA76", "PA77", "PH19", "PH2", "PH3", "PH4", "PH50", "TD9", "ZE1", "ZE2", "ZE3", "ZE4", "ZE5", "ZE6", "ZE7", "ZE8", "ZE9"));
	postcode_array[5] = Array(239, Array("BT"));
	var pc_val = document.getElementById(element_postcode).value.toUpperCase();
	pc_val = pc_val.replace(/ /i, "");
	pc_val = pc_val.replace(/\*/i, "");
	for(x=0;x<=postcode_array.length-1;x++){
		var country_code = postcode_array[x][0];
		var check_array = postcode_array[x][1];
		for(y=0;y<=check_array.length-1;y++){
			if(pc_val.substring(0,check_array[y].length)==check_array[y]){
				var country_array=document.getElementById(element_country);
				for (i=0;i<country_array.length;i++){
					if(country_array.options[i].value==country_code){
						document.getElementById(element_country).selectedIndex = i;
					}
				}
			}
		}
	}
}


//Fade In Content Viewer: By JavaScript Kit: http://www.javascriptkit.com

var fadecontentviewer={
	csszindex: 100,
	fade:function($allcontents, togglerid, selected, speed){
		var selected=parseInt(selected)
		var $togglerdiv=$("#"+togglerid)
		var $target=$allcontents.eq(selected)
		if ($target.length==0){ //if no content exists at this index position (ie: stemming from redundant pagination link)
			alert("No content exists at page number "+selected+"!")
			return 
		}
		if ($togglerdiv.attr('lastselected')==null || parseInt($togglerdiv.attr('lastselected'))!=selected){
			var $toc=$("#"+togglerid+" .toc")
			var $selectedlink=$toc.eq(selected)
			$("#"+togglerid+" .next").attr('nextpage', (selected<$allcontents.length-1)? selected+1+'pg' : 0+'pg')
			$("#"+togglerid+" .prev").attr('previouspage', (selected==0)? $allcontents.length-1+'pg' : selected-1+'pg')
			$target.css({zIndex: this.csszindex++, visibility: 'visible'})
			$target.hide()
			$target.fadeIn(speed)
			$toc.removeClass('selected')
			$selectedlink.addClass('selected')
			$togglerdiv.attr('lastselected', selected+'pg')
		}
	},

	setuptoggler:function($allcontents, togglerid, speed){
		var $toc=$("#"+togglerid+" .toc")
		$toc.each(function(index){
				$(this).attr('pagenumber', index+'pg')
		})
		
		var $next=$("#"+togglerid+" .next")
		var $prev=$("#"+togglerid+" .prev")
		$next.click(function(){
			fadecontentviewer.fade($allcontents, togglerid, $(this).attr('nextpage'), speed)
			return false
		})
		$prev.click(function(){
			fadecontentviewer.fade($allcontents, togglerid, $(this).attr('previouspage'), speed)
			return false
		})
		$toc.click(function(){
			fadecontentviewer.fade($allcontents, togglerid, $(this).attr('pagenumber'), speed)
			return false
		})
	},

	init:function(fadeid, contentclass, togglerid, selected, speed){
		$(document).ready(function(){
			var faderheight=$("#"+fadeid).height()
			var $fadecontents=$("#"+fadeid+" ."+contentclass)
			$fadecontents.css({top: 0, left: 0, visibility: 'hidden', position: 'absolute'})
//			$fadecontents.css({top: 0, left: 0, height: faderheight, visibility: 'hidden', position: 'absolute'})
			fadecontentviewer.setuptoggler($fadecontents, togglerid, speed)
			setTimeout(function(){fadecontentviewer.fade($fadecontents, togglerid, selected, speed)}, 100)
			$(window).bind('unload', function(){ //clean up
				$("#"+togglerid+" .toc").unbind('click')
				$("#"+togglerid+" .next", "#"+togglerid+" .prev").unbind('click')
			})
		})
	}
}
// Magazine Launcher
	$(".magazine-trigger").click(function(){
		$.poverlay($("#magazine_window"), {
			ready_callback: function(){
				
				var overlay = this;

				$('#poverlay').find('.active_zoomify').each(function () {
					this.initFlash();
				});

				$('#poverlay').find('.zoomify_obj').each(function () {
					var id = $(this).attr('id').replace(/zoomify_/, '');
					
					$(this).addClass('overlay_zoomify_' + id);
				});
				
				$("#thumbs-viewer2").replaceWith($("#thumbs-viewer1").clone().attr('id', 'thumbs-viewer2'));
				$("#thumbs-viewer2").thumbs_list({zoom_level: 1});
				$("#thumbs-viewer2 ul").css("left", 0);

				$("#overlay .drag").addClass("loading").dragable();

				//$("#thumbs-viewer2 a.on",this).click();
			},
			ready2_callback: function(){
				$("#thumbs-viewer2").replaceWith($("#thumbs-viewer1").clone().attr('id', 'thumbs-viewer2'));
				$("#thumbs-viewer2").thumbs_list({zoom_level: 1});
				$("#thumbs-viewer2 ul").css("left", 0);
			},
			close_callback : function(){
				window.location.href = window.location.href;
				$('#zoom .zoomify_obj').each(function () {
					var id = $(this).attr('id').replace(/zoomify\_/, '');
					$(this).html('<div id="zoomify'+id+'c"></div>');
					this.isInited = false;
				});

				return false;
			}
		});
	
		return false;
	})
