
var AG = {
  configure: function() {
  		this.basketMessage = new MessageWindow({
  			"timeout": 2000, 
  			"onShow": function(){ AG.basketMessage.modalShow() }, 
  			"onHide": function(){ AG.basketMessage.modalHide() }
  		});
  }
}


function shDeliveryAdd(dsab) {
    if (dsab == true) {
        $$("#ExpressCheckout fieldset")[2].setStyle("display", "none");
        $$("#ExpressCheckout h2")[2].setStyle("display", "none");
    } else {
        $$("#ExpressCheckout fieldset")[2].setStyle("display", "block");
        $$("#ExpressCheckout h2")[2].setStyle("display", "block");
    }
}

window.addEvent("domready", function() {
    AG.configure();
    // Hides the H2's so without JS support, they are shown.
    /* 
    $$('.loginRegisterContainer h2').each(function(el){
    el.setStyles({
    'position': 'absolute',
    'left': '-9999px'
    });
    });
    */

    if ($("DeliverySameAsBilling")) {
        var dsab = $("DeliverySameAsBilling").getProperty('checked');
        $("DeliverySameAsBilling").addEvent("click", function(e) {
            shDeliveryAdd($("DeliverySameAsBilling").getProperty('checked'));
        });
        shDeliveryAdd(dsab);
    }



    new AlphaPng();

    // Homepage banner rotation

    $$(".homeBanner").each(function(el) { new Ticker(el, { "interval": 6000 }) });

    // If Title and Value are equal on text inputs clears the text when field is active

    $$(".volatile").each(function(el) {
        $(el).addEvent("focus", function() {
            if (this.getValue() == this.getProperty("title")) {
                this.value = "";
            }
        });
    });

    // Opens links into a new window

    $$("a[rel*='external']").each(function(a) {
        $(a).setProperty("target", "_blank");
    });

    // 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 == "additionalImages") {
            var visibleItems = 4;
            var scrollAmount = 72;
        }

        $ES(".items ul", el).each(function(elItem) {
            new Carousel(elItem, {
                "autoStyle": true,
                "idPrevious": $ES(".prev", el)[0],
                "idNext": $ES(".next", el)[0],
                "visibleItems": visibleItems,
                "scrollAmount": scrollAmount,
                "scrollInterval": 350
            });
        });

    });

    // Initialize the tabs for login/register
    /*		
    if($("loginRegisterTabs")){
		
			var togglers = $$("#loginRegisterTabs li a");
    var elements = $$(".loginRegisterContainer form");
			
    togglers.addEvent("click", function(e){ 
    new Event(e).stop();
    });
			
    var productTabs = new Accordion(togglers, elements,{
    "onActive": function(tab){
    tab.getParent().addClass("selected");
    },
    "onBackground": function(tab){
    tab.getParent().removeClass("selected");
    },
    "alwaysHide": false,
    "transition": null,
    "duration": 0
    });
			
    // Check whether the register form has any errors and show it otherwise show the login form
    if ($ES(".fielderror, .formerror", $$(".loginRegister")[1]).length > 0) {
    productTabs.display(1);
    } else {
    productTabs.display(0);
    }
			
    }

	// Shows the tabs, so non-JS users do not seem them, as they have no function.

	$$('ul.loginOrRegister').each(function(el){
    el.setStyles({
    'display': 'block'
    });
    });
    */

    // Settings for Multibox
    this.multibox = new MultiBox('multibox', {
        showControls: false,
        useOverlay: true
    });

    if ($("search_keywords")) {
        var mm = new MysticMeg($("search_keywords"), {
            "ajaxUrl": "/product-directory/predictive-search/",
            "listClass": "predictive",
            "leftOffset": -2,
            "topOffset": 25,
            "highlight": false,
            "multipleSelect": false,
            "onSelect": function(v, f, o) {
                o.flush();
                o.hideResults();
                if (v.url != "") {
                    window.location.href = v.url;
                }
            }
        });
    }

    /* AJAX Basket Code */

    $$(".addtobasket").each(function(el) {

        el.addEvent("click", function(e) {

            new Event(e).stop();

            new Ajax("/basket/ajax-add/", {
                data: el.form,
                onError: function() {
                    if ($("addtobasketError")) {
                        $("addtobasketAlert").setStyle("display", "none");
                        $("addtobasketError").setStyle("display", "block");
                    }
                },
                onComplete: function(response) {
                    if (response.indexOf("ajax-error") != -1) {
                        if ($("addtobasketError")) {
                            $("addtobasketAlert").setStyle("display", "none");
                            $("addtobasketError").setStyle("display", "block");
                        }
                    } else {
                        if ($("addtobasketAlert")) {
                            $("addtobasketError").setStyle("display", "none");
                            $("addtobasketAlert").setStyle("display", "block");
                        }
                        if ($("basketOverlay")) {
                            $("basketOverlay").setStyle("display", "none");
                            $("basketOverlay").setStyle("display", "block");
                        }

                        if ($("minibasketContainer")) {
                            $("minibasketContainer").setHTML(response);
                        }
                    }
                }
            }).request();
            //  AG.basketMessage.show("Adding to your basket...");
        });

    });

});

