﻿///<reference path="~/js/jquery/jQuery.intellisense.js" />

/**** CONST ****/

/**** END CONST ****/

var SideBar = {
    ID: '#widgetssortable',

    Init: function() {
        this.LoadSidebar();
        this.RestoreOrderBoxes();
        this.BuildPortlets();
        this.RestoreCollapsedBoxes();
        $("#sidebar .widget").show();
    },

    LoadSidebar: function() {

        jQuery(SideBar.ID).sortable({
            placeholder: "ui-sortable-placeholder",
            axis: "y",
            opacity: 0.5,
            update: function() { CookieCP.setOrderBoxes(); }
        });

    },

    BuildPortlets: function() {
        //add header
        //addClass("ui-widget ui-widget-content ui-helper-clearfix ui-corner-all").addClass("ui-widget-header ui-corner-all")
        jQuery(".widget").find(".widget-header").prepend('<span class="ui-icon ui-icon-triangle-1-s"></span>')
				.end()
			.find(".widget-content");
        //add event to toggle button
        jQuery(".widget-header .ui-icon").click(function() {

            jQuery(this).parents(".widget:first").find(".widget-content").slideToggle("blind");

            var idOfBox = jQuery(this).parents(".widget:first").attr("id");

            var collapsedBoxes = CookieObject["collapsedBoxesSideBar"];
            if (!collapsedBoxes)
                collapsedBoxes = new Array();

            //var isVisible = jQuery(this).parents(".portlet:first").find(".portlet-content").is(':visible');

            if (jQuery(this).hasClass("ui-icon-triangle-1-s")) {
                //add to collapsed list
                var index = jQuery.inArray(idOfBox, collapsedBoxes);
                if (index == -1) { // if no exist add to collapsed list from the cookie
                    collapsedBoxes[collapsedBoxes.length] = idOfBox;
                    jQuery(this).addClass("ui-icon-triangle-1-w");
                    jQuery(this).removeClass("ui-icon-triangle-1-s");
                }
            }
            else {
                //remove from collapsed list
                if (jQuery(this).hasClass("ui-icon-triangle-1-w")) {

                    var index = jQuery.inArray(idOfBox, collapsedBoxes);
                    collapsedBoxes[index] = undefined; //remove this item

                    var newValues = new Array();
                    // replace old values  by new values of cookie
                    for (var i = 0; i < collapsedBoxes.length; i++) {
                        if (collapsedBoxes[i] != undefined)
                            newValues[newValues.length] = collapsedBoxes[i];
                    }
                    jQuery(this).addClass("ui-icon-triangle-1-s");
                    jQuery(this).removeClass("ui-icon-triangle-1-w");

                    collapsedBoxes = newValues;
                }
            }

            CookieCP.setCollapsedBoxes(collapsedBoxes);

        });
    },

    // function that restores the list order from a cookie
    RestoreOrderBoxes: function() {
        var list = jQuery(SideBar.ID);
        if (list == null) return

        // fetch the cookie value (saved order)
        var orderBoxes = CookieObject["orderBoxesSideBar"];
        if (!orderBoxes) return;

        // make array from saved order
        //var IDs = cookie.split(",");

        // fetch current order
        var items = list.sortable("toArray");

        // make array from current order
        var rebuild = new Array();
        for (var v = 0, len = items.length; v < len; v++) {
            rebuild[items[v]] = items[v];
        }

        for (var i = 0, n = orderBoxes.length; i < n; i++) {

            // item id from saved order
            var itemID = orderBoxes[i];
            if (itemID != "") {
                if (itemID in rebuild) {

                    // select item id from current order
                    var item = rebuild[itemID];

                    // select the item according to current order
                    var child = jQuery(SideBar.ID).children("#" + item);

                    // select the item according to the saved order
                    var savedOrd = jQuery(SideBar.ID).children("#" + itemID);

                    // remove all the items
                    child.remove();

                    // add the items in turn according to saved order
                    // we need to filter here since the "ui-sortable"
                    // class is applied to all ul elements and we
                    // only want the very first!
                    jQuery(SideBar.ID).filter(":first").append(savedOrd);
                }
            }
        }


    },

    RestoreCollapsedBoxes: function() {
        var collapsedBoxes = CookieObject["collapsedBoxesSideBar"];
        if (collapsedBoxes) {
            for (var i = 0; i < collapsedBoxes.length; i++) {

                var idOfBox = collapsedBoxes[i];
                if (idOfBox != "") {
                    var box = jQuery(SideBar.ID).find("#" + idOfBox);
                    box.children(".widget-content").hide();
                    box.children(".widget-header").children(".ui-icon").removeClass("ui-icon-triangle-1-s"); 
                    box.children(".widget-header").children(".ui-icon").addClass("ui-icon-triangle-1-w");
                }
            }
        }
    }

}


jQuery(document).ready(function () {

    $(".smallUserName").each(function (index) {
        var atext = $(this).text();
        if (atext.length > 20) {
            var cutText = atext.substring(0, 20) + "...";
            $(this).text(cutText);
        }
    });

    $(".lblCashClass").each(function (index) {
        var atext = $(this).text();
        if (atext.length > 11) {
            var cutText = atext.substring(0, 8) + "...";
            $(this).text(cutText);
        }
    });
    $(".smallUserName").mouseover(function () {
        if ($(this).next(".originalName").text().length > 20) {
            $(this).append("<div class='divOriginalName'>" + $(this).next(".originalName").text() + "</div>");
        }
    });

    $(".divCashClass").mouseover(function () {
        $(this).css("cursor", "default");
        if ($(this).children(".originalCashNotVisible").text().length > 10) {
            $(this).append("<div class='divOriginalCash'>" + $(this).children(".originalCashNotVisible").text() + "</div>");
        }
    });

    $(".smallUserName").mouseout(function () {
        $(".divOriginalName").remove();
    });

    $(".divCashClass").mouseout(function () {
        $(".divOriginalCash").remove();
    });
});


