var Airfix = {
	configure: function(){
		new SmoothScroll({"transition": Fx.Transitions.Quad.easeOut,"duration": 1000});
		new Lightbox();
		new Tips($$(".tooltip"), { "offsets":{ "x":-0, "y":-130 } });
		
		if($("advancedSearch")) {
			var slideOptions = new Fx.Slide("advancedOptions",{ "duration":1200, "transition": Fx.Transitions.Bounce.easeOut });
			slideOptions.hide();
			$("advancedSearch").addEvent("click", function(e){
				new Event(e).stop();
				slideOptions.toggle();
			});
		}
		
		if($("faqlist")) {
			new Accordion($$("#faqlist li h2"), $$("#faqlist li div"), { "alwaysHide":true, "show":-1 });
		}
		
		if($("carousel")) {
			new Carousel($("carousel"), { 
				"autoStyle":true,
				"idPrevious": $("goleft"),
				"idNext": $("goright"),
				"visibleItems": 1,
				"scrollAmount": 430,
				"scrollInterval": 500,
				"fxTransition": Fx.Transitions.Quad.easeOut
			});
		}

		if($("productform")) {
			new BasketCalculator("productform");
		}
		
		$$("a[rel*='external']").each(function(a){ 
			$(a).setProperty("target", "_blank"); }
		);
		
		$$("a[rel*='terms_popup']").each(function(a){
            $(a).addEvent("click", function(e){
                new Event(e).stop();
                window.open(a.href, "terms_and_conditions", "menubar=no,width=500,height=500,resizable=no,scrollbars=yes");
                return false;
            });
		});

		$$(".fade").each(function(el){
			new ListItemSelector($(el),{ "fxMin": 0.85, "fxMax": 0.99 });
		});
		
		$$(".volatile").each(function(el){
			$(el).addEvent("focus", function(){
				if(this.getValue() == this.getProperty("title")) {
					this.value = "";
				}
			});
		});
		
		$$("input[value=selectall]").each(function(el){
			var formID = el.id.substr(10, el.id.length);
			if($(formID)){
				el.addEvent("click", function(){
					$ES("input[type=checkbox]",$(formID)).each(function(checkBox){
						if($(checkBox).getProperty("value") != "selectall") {
							$(checkBox).checked = $(el).checked;
							$(checkBox).fireEvent("click");
						}
					});
				});
			}
		});
		
		if($("second_level_rid")){
			$("second_level_rid").addEvent("change",function(){
				this.form.submit();
			});
		}
		
		if($("third_level_rid")){
			$("third_level_rid").addEvent("change",function(){
				this.form.submit();
			});
		}
		
		var rightColFX = new Fx.Style($("rightcol"), "opacity", {
			"duration":1000,
			"wait":false,
			"transition":Fx.Transitions.Quad.easeOut

		});
		
		var basketMessage = new MessageWindow({
			"timeout": 2500,
			"onShow": function(){ basketMessage.modalShow() },
			"onHide": function(){ basketMessage.modalHide() }
		});

    // Create a new multibox and assign it to the Scalextric object
		function initMultibox(){
			this.multibox = new MultiBox('multibox', {
				showControls: false,
				useOverlay: true
			});		
		}
		
		initMultibox();	
		
		$$(".addtobasketform").addEvent("submit", function(e){
			new Event(e).stop();
			if($("glue")) $("glue").setStyle("display", "none");
			if($("tubeofglue")) $("tubeofglue").setStyle("background", "none");
			rightColFX.start(0);	
			var form = this;
			new Ajax("/_colony/ecommerce/basket/ajaxadd.asp",{
				data: form,
				onError: function(){
					rightColFX.start(1);
					basketMessage.show("There was a problem adding to your basket. Please try again.");
					initMultibox();	
				},
				onComplete: function(response){
					$("rightcol").setHTML(response);
					rightColFX.start(1);
					basketMessage.show("Items were successfully added to your basket.");
				  initMultibox();	
				}
			}).request();
			return false;
		});
		
		$$(".club-type-selector").each(function(el){
			
			el.addEvent("change", function(e){
				
				var pid = el.getProperty("id").substring(el.getProperty("id").indexOf("_") + 1);
				
				if (el.value == 'Renew') {
					$("MembershipDetails_" + pid).setStyle("display", "block");
					$("AddToBasket_" + pid).setStyle("display", "none");
				} else {
					$("AddToBasket_" + pid).setStyle("display", "block");
					$("MembershipDetails_" + pid).setStyle("display", "none");
				}
				
			});
			
		});
		
		//Product image carousel
		$$(".productImgThumb").each(function(el){
			
			el.addEvent("click", function(e){
			
				new Event(e).stop();
				
				var selImage = el.getFirst();
				var largeLink = $("productImgMain");
				var largeImage = $ES(".image", largeLink);
				var largeSpan = $ES("span", largeLink);
				
				var selImageSrc = selImage.getProperty("src");
				
				var selFilename = selImageSrc.substring(selImageSrc.lastIndexOf("/") + 1);
				var selName = selImage.getProperty("alt");
				
				// Set the large image properties
				largeImage.setProperty("src", "/_images/assets/product-directory/product-detail-thumbnail/" + selFilename);
				largeSpan.setStyle("background-image", "url('/_images/assets/product-directory/product-detail-thumbnail/" + selFilename + "')");
				largeImage.setProperty("alt", selName);
				
				// Set the large link properties
				largeLink.setProperty("href", "/_images/assets/product-directory/product-full/" + selFilename);
				largeLink.setProperty("title", selName);
				largeLink.setProperty("rel", "lightbox");
				
				//Lightbox.init();
				
			});
			
		});
		
		// Generic code for carousels
		$$(".genericCarousel").each(function(el){
			
			var togglers = $ES(".toggler", el);
			
			togglers.addEvent("click", function(e){ 
				new Event(e).stop();
			});
			
			var carouselID = el.id;
			
			if (carouselID == "productcarousel") {
				var visibleItems = 3;
				var scrollAmount = 95;
			}
			
			if (carouselID == "genericcarousel") {
				var visibleItems = 2;
				var scrollAmount = 150;
			}
			
			if (carouselID == "imgGallery") {
				var visibleItems = 2;
				var scrollAmount = 210;
			}
			
			$ES(".items ul", el).each(function(elItem){
				new Carousel(elItem,{
					"autoStyle": true,
					"idPrevious": $ES(".prevbutton", el)[0],
					"idNext": $ES(".nextbutton", el)[0],
					"visibleItems": visibleItems,
					"scrollAmount": scrollAmount,
					"scrollInterval": 350
				});
			});
			
		});
	}
};

window.addEvent("domready", function(){
	Airfix.configure();
});

