﻿$(document).ready(function () {

    $.fn.addItems = function (data, name) {

        return this.each(function () {
            var list = this;

            $.each(data, function (index, itemData) {

                var optionclasses = itemData.Class;
                if (optionclasses != "") optionclasses = " " + optionclasses;

                var removebtn = "";
                if ($("<a />").attr('class', optionclasses).hasClass('user')) {
                    removebtn = '<a class="remove-btn" rel="' + itemData.Value + '" title="Remove from quick links">x</a>';
                }

                $(list).append(removebtn);
                $(list).append("<div title=\"" + itemData.Text + "\" rel=\"" + itemData.Value + "\" class=\"selectitems" + optionclasses + "\"><span>" + itemData.Text + "</span></div>");

            });

            $("#" + name + "_options").css('height', 'auto');
            var newheight = $("#" + name + "_options").height();

            if (newheight > 200) {
                $("#" + name + "_options").height(200);
            }
            else {
                $("#" + name + "_options").css('height', newheight);
                $("#" + name + "_options").parent('.jScrollPaneContainer').height(newheight);
            }

            //reinitialiseScrollPane();

            $("#" + name + "_options").find(".selectitems").mouseover(function () {
                $(this).addClass("hoverclass");
            });
            $("#" + name + "_options").find(".selectitems").mouseout(function () {
                $(this).removeClass("hoverclass");
            });
            $("#" + name + "_options").find(".selectitems").click(function () {

                $("#" + name + "_options").find(".selectitems").removeClass("selectedclass");
                $(this).addClass("selectedclass");
                var thisselection = "<div class=\"selectbg_lft\"></div><div class=\"selectbg_right\"></div><div class=\"selectbg_middle\"><span>" + $(this).html() + "</span></div>";
                $("#" + name + "_customselect").val($(this).attr("rel"));

                if ($("#" + name + "_iconselect").is('.autosubmit')) {
                    $(this).closest('form').trigger('submit');
                }

                process_cascading_changes(name, $(this).attr("rel"));
                $("#" + name + "_iconselect").html(thisselection);
                $("#" + name + "_iconselect").removeClass('active');
                $("#" + name + "_holder").fadeOut(200);
                $(document).unbind('keyup');
                $(document).unbind('keypress');
                $('body').unbind('click');
            });
        });
    };

    $.fn.clearItems = function () {
        var list = this;
        list.html("");
    };

    process_cascading_changes = function (controlid, valueid) {
        
        switch (controlid) {
            case "categorydd":
                getproducts(valueid, "productdd");
                break;
            case "productdd":
                getproductpublications(valueid, "productpublicationdd");
                break;
            case "productpublicationdd":
                getpublicationissues(valueid, "publicationissuedd");
                break;
            case "footercategorydd":
                getproducts(valueid, "footerproductdd");
                break;
        }
    }

    getproducts = function (sitemapid, target) {
        alert("Ha ha!!");
        cleardropdown(target);
        cleardropdown("publicationdd");
        cleardropdown("publicationissuedd");
        setdropdowntext(target, "Loading...");
        $.getJSON("/ajax/GetProductsForSitemap/" + sitemapid, function (data) {
            $("#" + target + "_options").clearItems();
            $("#" + target + "_options").addItems(data, target);
            setdropdowntext(target, "Select a service...");
        });
    };

    getproductpublications = function (productid, target) {
        cleardropdown(target);
        cleardropdown("publicationissuedd");
        setdropdowntext(target, "Loading...");
        $.getJSON("/ajax/GetProductPublications/" + productid, function (data) {
            $("#" + target + "_options").clearItems();
            $("#" + target + "_options").addItems(data, target);
            setdropdowntext(target, "Select a publication...");
        });
    };

    getpublicationissues = function (publicationid, target) {
        cleardropdown(target);
        setdropdowntext(target, "Loading...");
        $.getJSON("/ajax/GetPublicationIssues/" + publicationid, function (data) {
            $("#" + target + "_options").clearItems();
            $("#" + target + "_options").addItems(data, target);
            setdropdowntext(target, "Issue...");
        });
    };

    setdropdowntext = function (dropdown, text) {
        $("#" + dropdown + "_iconselect div.selectbg_middle").html(text);
    };

    getdropdownvalue = function (dropdown) {
        var id = $("#" + dropdown + "_options div.selectedclass").attr("rel");
        if (typeof (id) == "undefined") {
            id = -1;
        }
        return id;
    };

    cleardropdown = function (dropdown) {
        $("#" + dropdown + "_options").clearItems();
        $("#" + dropdown + "_customselect").val(0);
        setdropdowntext(dropdown, "");
    };
});
