jQuery(function(B){B(".welcome-message").after(B(".dashboard-calendar-container").children());
var A=B(".dashboard-calendar-loader");
if(A.length){B.ajax({cache:false,data:{decorator:"none"},dataType:"html",error:function(){A.empty().addClass("hidden");
B(".dashboard-calendar .error").removeClass("hidden")
},success:function(C){A.empty().html(C);
B(".dashboard-calendar .event .description").each(function(){var E=B(this);
E.ThreeDots({max_rows:3});
E.attr("title",E.attr("threedots"))
});
B(".dashboard-calendar .event").each(function(G,F){var E=B(F);
if(G>=10&&!E.prev().length){var H=E.closest(".event-group");
if(!H.hasClass("toggleable")){H.addClass("toggleable")
}}});
var D=B(".dashboard-calendar .toggleable").addClass("hidden");
if(D.length){B(".dashboard-calendar .events-container").after(B(".dashboard-calendar .more-events").removeClass("hidden").click(function(){D.removeClass("hidden");
B(this).addClass("hidden");
return false
}))
}B(".dashboard-calendar .event-name-collapse").click(function(){B(this).parent().html(B(".full-event-name").html());
return false
})
},type:"GET",url:B("#confluence-context-path").attr("content")+"/calendar/dashboardcalendar.action"})
}});
(function(E){E.fn.ThreeDots=function(H){var G=this;
if((typeof H=="object")||(H==undefined)){E.fn.ThreeDots.the_selected=this;
var G=E.fn.ThreeDots.update(H)
}return G
};
E.fn.ThreeDots.update=function(U){var K,T=null;
var M,J,S,Q,O;
var L,I;
var R,H,N;
if((typeof U=="object")||(U==undefined)){E.fn.ThreeDots.c_settings=E.extend({},E.fn.ThreeDots.settings,U);
var P=E.fn.ThreeDots.c_settings.max_rows;
if(P<1){return E.fn.ThreeDots.the_selected
}var G=false;
jQuery.each(E.fn.ThreeDots.c_settings.valid_delimiters,function(V,W){if(((new String(W)).length==1)){G=true
}});
if(G==false){return E.fn.ThreeDots.the_selected
}E.fn.ThreeDots.the_selected.each(function(){K=E(this);
if(E(K).children("."+E.fn.ThreeDots.c_settings.text_span_class).length==0){return true
}L=E(K).children("."+E.fn.ThreeDots.c_settings.text_span_class).get(0);
var Y=A(K,true);
var X=E(L).text();
D(K,L,Y);
var V=E(L).text();
if((H=E(K).attr("threedots"))!=undefined){E(L).text(H);
E(K).children("."+E.fn.ThreeDots.c_settings.e_span_class).remove()
}R=E(L).text();
if(R.length<=0){R=""
}E(K).attr("threedots",X);
if(A(K,Y)>P){curr_ellipsis=E(K).append('<span style="white-space:nowrap" class="'+E.fn.ThreeDots.c_settings.e_span_class+'">'+E.fn.ThreeDots.c_settings.ellipsis_string+"</span>");
while(A(K,Y)>P){I=B(E(L).text());
E(L).text(I.updated_string);
T=I.word;
N=I.del;
if(N==null){break
}}if(T!=null){var W=C(K,Y);
if((A(K,Y)<=P-1)||(W)||(!E.fn.ThreeDots.c_settings.whole_word)){R=E(L).text();
if(I.del!=null){E(L).text(R+N)
}if(A(K,Y)>P){E(L).text(R)
}else{E(L).text(E(L).text()+T);
if((A(K,Y)>P+1)||(!E.fn.ThreeDots.c_settings.whole_word)||(V==T)||W){while((A(K,Y)>P)){if(E(L).text().length>0){E(L).text(E(L).text().substr(0,E(L).text().length-1))
}else{break
}}}}}}}if(X==E(E(K).children("."+E.fn.ThreeDots.c_settings.text_span_class).get(0)).text()){E(K).children("."+E.fn.ThreeDots.c_settings.e_span_class).remove()
}else{if((E(K).children("."+E.fn.ThreeDots.c_settings.e_span_class)).length>0){if(E.fn.ThreeDots.c_settings.alt_text_t){E(K).children("."+E.fn.ThreeDots.c_settings.text_span_class).attr("title",X)
}if(E.fn.ThreeDots.c_settings.alt_text_e){E(K).children("."+E.fn.ThreeDots.c_settings.e_span_class).attr("title",X)
}}}})
}return E.fn.ThreeDots.the_selected
};
E.fn.ThreeDots.settings={valid_delimiters:[" ",",","."],ellipsis_string:"...",max_rows:2,text_span_class:"ellipsis_text",e_span_class:"threedots_ellipsis",whole_word:true,allow_dangle:false,alt_text_e:false,alt_text_t:false};
function C(K,H){if(E.fn.ThreeDots.c_settings.allow_dangle==true){return false
}var L=E(K).children("."+E.fn.ThreeDots.c_settings.e_span_class).get(0);
var G=E(L).css("display");
var I=A(K,H);
E(L).css("display","none");
var J=A(K,H);
E(L).css("display",G);
if(I>J){return true
}else{return false
}}function A(I,J){var G=typeof J;
if((G=="object")||(G==undefined)){return E(I).height()/J.lh
}else{if(G=="boolean"){var H=F(E(I));
return{lh:H}
}}}function B(K){var J;
var I=E.fn.ThreeDots.c_settings.valid_delimiters;
K=jQuery.trim(K);
var G=-1;
var H=null;
var L=null;
jQuery.each(I,function(M,O){if(((new String(O)).length!=1)||(O==null)){return false
}var N=K.lastIndexOf(O);
if(N!=-1){if(N>G){G=N;
H=K.substring(G+1);
L=O
}}});
if(G>0){return{updated_string:jQuery.trim(K.substring(0,G)),word:H,del:L}
}else{return{updated_string:"",word:jQuery.trim(K),del:null}
}}function F(H){E(H).append("<div id='temp_ellipsis_div' style='position:absolute; visibility:hidden'>H</div>");
var G=E("#temp_ellipsis_div").height();
E("#temp_ellipsis_div").remove();
return G
}function D(K,L,M){var Q=E(L).text();
var I=Q;
var O=E.fn.ThreeDots.c_settings.max_rows;
var H,G,N,R,J;
var P;
if(A(K,M)<=O){return 
}else{P=0;
curr_length=I.length;
curr_middle=Math.floor((curr_length-P)/2);
H=Q.substring(P,P+curr_middle);
G=Q.substring(P+curr_middle);
while(curr_middle!=0){E(L).text(H);
if(A(K,M)<=(O)){J=Math.floor(G.length/2);
N=G.substring(0,J);
P=H.length;
I=H+N;
curr_length=I.length;
E(L).text(I)
}else{I=H;
curr_length=I.length
}curr_middle=Math.floor((curr_length-P)/2);
H=Q.substring(0,P+curr_middle);
G=Q.substring(P+curr_middle)
}}}})(jQuery);
(function ($) {
    var pageDialog,blogPostDialog,
        dialogOptions = {
            hideCallback: hideCallback,
            width: 270,
            offsetY: 15,
            hideDelay: 36e5
        },

    loadTemplates = function(spaceKey) {
        $.getJSON(contextPath + "/plugins/dashboard/getTemplates.action?spaceKey=" + spaceKey, function(data) {
            var $spaceOptGroup = $("#spacePageTemplates").empty(),
                $globalOptGroup = $("#globalPageTemplates").empty(),
                that;

            data.spaceTemplates.length ? $spaceOptGroup.show() : $spaceOptGroup.hide();
            data.globalTemplates.length ? $globalOptGroup.show() : $globalOptGroup.hide();

            for (var i = 0, ii = data.spaceTemplates.length; i < ii; i++) {
                that = data.spaceTemplates[i];
                $("<option></option>").attr("value", that.id).text(that.name).appendTo($spaceOptGroup);
            }
            for (var i = 0, ii = data.globalTemplates.length; i < ii; i++) {
                that = data.globalTemplates[i];
                $("<option></option>").attr("value", that.id).text(that.name).appendTo($globalOptGroup);
            }
        });
    };

    var onContentsLoaded = function (shouldLoadTemplates, dialog, $contents) {
        var $spaceSelect = $(".space-key-selector", dialog), oneOptionSelected = false;
        var previousSpaceSelection = getCookie("dashboard-actions-space");
        if (previousSpaceSelection) {
            $spaceSelect.val(previousSpaceSelection);

            // if cookie value does not match any space in the drop down then ensure at least one option is selected
            $spaceSelect.each(function () {
                if (this.selected) {
                    oneOptionSelected = true;
                    return false;
                }
            });
            !oneOptionSelected && ($spaceSelect[0].selectedIndex = 0);
        }
        shouldLoadTemplates && loadTemplates($spaceSelect.val());
        $(".cancel-link", dialog).click(function (e) {
            dialog.hide();
            return AJS.stopEvent(e);
        });

        $(".expand-explanation-link", dialog).click(function (e) {
            $(this).parent().siblings(".explanation").slideToggle();
            return AJS.stopEvent(e);
        });

        $spaceSelect.change(function () {
            var selectedValue = $(this).val();
            setCookie("dashboard-actions-space", selectedValue);
            shouldLoadTemplates && loadTemplates(selectedValue);
        });
        dialog.refresh();
    };

    var hideCallback = function () {
        $(".dashboard-actions .explanation").hide();
    };

    var generatePopupDisplayCoordinator = function (type) {
        var dialog = type == "page" ? pageDialog : blogPostDialog;
        return function ($contents, trigger, doShowPopup) {
            $contents.html('<div style="padding: 15px 10px; text-align: center"><img style="vertical-align: middle" src="' + contextPath + '/images/icons/wait.gif"/></div>');
            doShowPopup();
            $.ajax({url: contextPath + "/plugins/dashboard/add.action?type=" + type, type: "GET", dataType: "html",success: function(data) {
                $contents.html(data);
                if(type =="page") {
                    onContentsLoaded(true,pageDialog,$contents);
                } else {
                    onContentsLoaded(false,blogPostDialog,$contents);
                }
            } });
       
        };
    };

    AJS.toInit(function ($) {
        pageDialog = AJS.InlineDialog($("#addPageLink"), "addPagePopup", generatePopupDisplayCoordinator("page"), dialogOptions);
        blogPostDialog = AJS.InlineDialog($("#addBlogLink"), "addBlogPopup", generatePopupDisplayCoordinator("blogpost"), dialogOptions);
    });
})(AJS.$);


