$(document).ready(function () {

    // dropdown modules
    $('#header #primary_navigation li').hover(function () {
        $(this).find('ul').addClass('dropdownHover');
    }, function () {
        $(this).find('ul').removeClass('dropdownHover');
    });


    // Location Change
    $('#location_change, a.panel_flyout, a.change_loc').bind('change_location', function () {

        if ($(this).hasClass('active')) {
            $(this).removeClass('active').slideUp();
        } else {
            $(this).addClass('active').slideDown();
        }

    });

    $('#page_tools .location_change, a.panel_flyout, a.change_loc').bind('click', function (e) {
        e.preventDefault();
        $('#location_change').trigger('change_location');
    });



    // Homepage GB locations/regions
    $('#home.home .locations .content ul li').bind('click', function (e) {
        if ($(this).parent().hasClass('active')) {
            e.stopPropagation();
        } else {
            e.preventDefault();
            if ($(this).children().hasClass('active')) {
                $(this).children().removeClass('active');
            } else {
                $(this).children().addClass('active');
            }
        }
    });

    /* Carousel */
    $('#carousel li a').bind('click', function (e) {

        e.preventDefault();

        if ($(this).parent().hasClass('active')) {
            return false;
        } else {
            $('#carousel li').removeClass('active');

            $($(this).parent('')).addClass('active');
            var posi = ($(this).parent('li').index());

            var newFlash = '<div style="position:relative;"><div style="position:absolute; top:0; left:0; z-index:-1; visibility: hidden;">' + arrCarouselTextBehind[posi] + '</div></div>\n';
            newFlash = newFlash + '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="473" height="264" id="flashContent" align="middle">\n';
            newFlash = newFlash + '<param name="allowScriptAccess" value="sameDomain" />\n';
            newFlash = newFlash + '<param name="movie" value="/media/flash/' + arrCarousel[posi] + '" />\n';
            newFlash = newFlash + '<param name="quality" value="high" />\n';
            //newFlash = newFlash + '<param name="bgcolor" value="#666666" />\n';
            newFlash = newFlash + '<param name="wmode" value="opaque" />\n';
            newFlash = newFlash + '<embed src="/media/flash/' + arrCarousel[posi] + '" wmode="opaque" quality="high" width="473" height="264" name="carouselFlash" class="flashContent" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />\n';
            newFlash = newFlash + '</object>\n';
            $('#contentHolder').html(newFlash);
        }

    });


    // Comments
    $('a.comment_link').bind('click', function (e) {

        e.preventDefault();

        if ($(this).closest('.options').siblings('.comments').length > 0) {
            $(this).closest('.options').siblings('.comments').slideToggle();
        } else {
            $(new_comments).hide();
            $(new_comments).slideToggle();
            $("textarea.expand").TextAreaExpander();
        }
    });


    $('#btnRegister, #btnPromoRegister, #promoRegister, #signupLink, #commentSignupLink').bind('click', function (e) {
        e.preventDefault();
        if ($('#dialog').length < 1) {
            $('body').append('<div id="dialog"></div>');
        }
        $('#dialog').dialog({
            modal: true,
            title: "Becoming a member couldn't be easier...",
            draggable: true,
            resizable: false,
            minHeight: 350,
            width: 331,
            close: function (ev, ui) { $(this).remove(); }
        });
        $('#dialog').load('/Dialog/Register/');
    });

    /*fix activate control hover on flash obj */
    var theObjects = $("object");
    for (var i = 0; i < theObjects.length; i++) {
        theObjects[i].outerHTML = theObjects[i].outerHTML;
    }

    // Add Modal
    $('.pod_add').bind('click', function (e) {
        e.preventDefault();
        var productID = $(this).attr('id');
        if ($('#dialog').length < 1) {
            $('body').append('<div id="dialog"></div>');
        }
        $('#dialog').dialog({
            modal: true,
            title: 'Product Options',
            draggable: false,
            resizable: false,
            minHeight: 350,
            minWidth: 350,
            close: function (ev, ui) { $(this).remove(); }
        });
        $('#dialog').load('/Dialog/ProductVariations/' + productID + '/');
    });

    // Variations Modal
    $('.seeVariations').bind('click', function (e) {
        e.preventDefault();
        var productID = $(this).attr('id');
        if ($('#dialog').length < 1) {
            $('body').append('<div id="dialog"></div>');
        }
        $('#dialog').dialog({
            modal: true,
            title: 'Product Variations',
            draggable: false,
            resizable: false,
            minHeight: 350,
            width: 350,
            close: function (ev, ui) { $(this).remove(); }
        });
        $('#dialog').load('/Dialog/ProductVariationsBasketEdit/' + productID + '/');
    });

    // Tabbed Elements
    $('div.tab:not(:first-child)').hide();
    $('.tabbed_nav').bind('click', function (e) {
        e.preventDefault();
        var clicked = e.target;
        if ($(clicked).is('a')) {
            var index = $('a', this).index(clicked);
            $('li', this).removeClass('active');
            $(clicked).parent().addClass('active');
        }

        var tabs = $(this).next('.tabbed_content');
        $('div.tab', tabs).hide();
        $('div.tab:eq(' + index + ')', tabs).show();
    });



    // 'Whats on' Tab interface
    $('.tabbedList h6').bind('click', function (e) {
        e.preventDefault();
        var clicked = e.target;
        if ($(clicked).is('h6')) {
            var index = $('h6', this).index(clicked);
            var parentList = $(clicked).parent().parent();
            $('li', parentList).removeClass('active');
            $(clicked).parent().addClass('active');
        }

        var tabs = $(this).next('.tabbed_content');
        $('div.tab', tabs).hide();
        $('div.tab:eq(' + index + ')', tabs).show();
    });

    // increment/decrement buttons - number of products
    // replicate any adjust-button amends to product pop-outs for rebinding on display
    $('.adjust').bind('click', function (e) {
        e.preventDefault();
        var clicked = e.target;
        var itemVal = $(clicked).parent().find('input[type=text]');
        var minVal = 1;
        if ($(clicked).parent().find('input[type=hidden]') != null) {
            minVal = parseInt($(clicked).parent().find('input[type=hidden]').val());
        }
        if ($(this).hasClass('less')) {
            if (parseInt(itemVal.val())>0) {
                if ((parseInt(itemVal.val()) - 1) >= minVal) {
                    itemVal.val(parseInt(itemVal.val()) - 1);
                }
                else {
                    itemVal.val(0);
                }
            }
        }
        else if ((parseInt(itemVal.val()) + 1) < minVal) {
            itemVal.val(minVal);
        }
        else {
            itemVal.val(parseInt(itemVal.val()) + 1);
        }
    });

    // Order Delivery Options
    $("input[id=delivery]").bind('click', function (e) {
        var clicked = e.target;
        $(clicked).parent().parent().find('.deliveryDay').addClass('hidden');
        $(clicked).parent().find('.deliveryDay').removeClass('hidden');
    });


    // Editable Profile - remove
    $("a.remove").parent().parent().find('li').bind('mouseleave', function (e) {
        var hoverEl = e.target;
        if (!$(hoverEl).find('.remove').hasClass('hidden')) {
            $(hoverEl).find('.remove').addClass('hidden');
        }
    });

    $("a.remove").parent().parent().find('li').bind('mouseenter', function (e) {
        var hoverEl = e.target;
        if ($(hoverEl).find('.remove').hasClass('hidden')) {
            $(hoverEl).find('.remove').removeClass('hidden');
        }
    });

});


// Flyout Editable Modules Panel
$('#module_changes').hide();
$('#module_changes').bind('configure_page', function(){

	if ($(this).hasClass('active')){
		$(this).removeClass('active').slideUp();
	} else {
		$(this).addClass('active').slideDown();
	}

});

$('#page_tools .configure').bind('click', function(e){
	e.preventDefault();
	$('#module_changes').trigger('configure_page');
});

function loadErrorModal(){
	if ($('#dialog').length < 1) {
		$('body').append('<div id="dialog"></div>');
	}
	$('#dialog').dialog({
		modal	 : true,
		title	 : "There has been an unfortunate occurance...",
		draggable: true,
		resizable: false,
		minHeight: 350,
		width	 : 331,
		close	 : function(ev, ui) { $(this).remove(); }
	});
	$('#dialog').load('/Dialog/Error');
}

function loadBasketUpdateModal() {
    if ($('#dialog').length < 1) {
        $('body').append('<div id="dialog"></div>');
    }
    $('#dialog').dialog({
        modal: true,
        title: "Basket Updated",
        draggable: true,
        resizable: false,
        minHeight: 350,
        width: 331,
        close: function(ev, ui) { $(this).remove(); }
    });
    $('#dialog').load('/Dialog/BasketUpdateConfirm');
	$("#dialog").addClass("basket-updated");
}

$(document).ready(function() {
    $('li.commentCount').bind('click', function(e) {
        e.preventDefault();

        var clicked = $(this).parent().parent();

        if (!$(this).hasClass('inactive')) {

            if ($(clicked).hasClass("closed")) {

                $(clicked).removeClass("closed");
            } else {
                $(clicked).addClass("closed");
                return (false);
            }
        }

        return (false);

    });


    $('textarea.postComment').bind('click', function(e) {
        e.preventDefault();
        if ($(this).hasClass('active') != true) {
            $(this).addClass('active').slideDown("slow");
            $("a.commentButton").removeClass("hidden");
        }
    });

    $('textarea.postComment').autogrow({
        maxHeight: 500,
        minHeight: 18,
        lineHeight: 16
    });

    $('li.favouriteThis').bind('click', function(e) {
        e.preventDefault();
        var GUID = $(this).attr('id');
        var theData = 'guid=' + GUID;
        var cLink = $(this).children(":first");
        // alert(GUID);
        // need to display early, or it seems like it isn't working
        if (!cLink.hasClass('active')) {
            cLink.addClass('active');

            $.ajax({
                type: "GET",
                url: "/handlers/Content/MarkFavourite.aspx",
                data: theData,
                cache: false,
                success: function () {
                    // nothing
                }
            });
            return (false);
        }

        if (cLink.hasClass('active')) {
            cLink.removeClass('active');

            $.ajax({
                type: "GET",
                url: "/handlers/Content/UnMarkFavourite.aspx",
                data: theData,
                cache: false,
                success: function () {
                    // nothing
                }
            });
            return (false);
        }
    });

    $('li.likeThis').bind('click', function(e) {
        e.preventDefault();
        var GUID = $(this).attr('id');
        var theData = 'guid=' + GUID;
        var cLink = $(this).children(":first");
        // alert(GUID);
        // need to display early, or it seems like it isn't working
        if (!cLink.hasClass('active')) {
            cLink.addClass('active');
        }
        $.ajax({
            type: "GET",
            url: "/handlers/Content/MarkLike.aspx",
            data: theData,
            cache: false,
            success: function() {
                // nothing
            }
        });
        return (false);
    });
})
