$(document).ready(function () { // COLLAPSABLE WIDGETS (on Dashboard & Profile pages) // toggle widget box contents $('a.toggle_box_contents').bind('click', toggleContent); // toggle widget box edit panel $('a.toggle_box_edit_panel').click(function () { $(this.parentNode.parentNode).children("[class=collapsable_box_editpanel]").slideToggle("fast"); return false; }); // toggle customise edit panel $('a.toggle_customise_edit_panel').click(function () { $('div#customise_editpanel').slideToggle("fast"); return false; }); // toggle plugin's settings nad more info on admin tools admin $('a.pluginsettings_link').click(function () { $(this.parentNode.parentNode).children("[class=pluginsettings]").slideToggle("fast"); return false; }); $('a.manifest_details').click(function () { $(this.parentNode.parentNode).children("[class=manifest_file]").slideToggle("fast"); return false; }); // reusable generic hidden panel $('a.collapsibleboxlink').click(function () { $(this.parentNode.parentNode).children("[class=collapsible_box]").slideToggle("fast"); return false; }); // WIDGET GALLERY EDIT PANEL // Sortable widgets var els = ['#leftcolumn_widgets', '#middlecolumn_widgets', '#rightcolumn_widgets', '#widget_picker_gallery' ]; var $els = $(els.toString()); $els.sortable({ items: '.draggable_widget', handle: '.drag_handle', cursor: 'move', revert: true, opacity: 1.0, appendTo: 'body', placeholder: 'placeholder', connectWith: els, start:function(e,ui) { }, stop: function(e,ui) { // refresh list before updating hidden fields with new widget order $(this).sortable( "refresh" ); var widgetNamesLeft = outputWidgetList('#leftcolumn_widgets'); var widgetNamesMiddle = outputWidgetList('#middlecolumn_widgets'); var widgetNamesRight = outputWidgetList('#rightcolumn_widgets'); document.getElementById('debugField1').value = widgetNamesLeft; document.getElementById('debugField2').value = widgetNamesMiddle; document.getElementById('debugField3').value = widgetNamesRight; } }); // bind more info buttons - called when new widgets are created widget_moreinfo(); // set-up hover class for dragged widgets $("#rightcolumn_widgets").droppable({ accept: ".draggable_widget", hoverClass: 'droppable-hover' }); $("#middlecolumn_widgets").droppable({ accept: ".draggable_widget", hoverClass: 'droppable-hover' }); $("#leftcolumn_widgets").droppable({ accept: ".draggable_widget", hoverClass: 'droppable-hover' }); }); // List active widgets for each page column function outputWidgetList(forElement) { return( $("input[@name='handler'], input[@name='guid']", forElement ).makeDelimitedList("value") ); } // Make delimited list jQuery.fn.makeDelimitedList = function(elementAttribute) { var delimitedListArray = new Array(); var listDelimiter = "::"; // Loop over each element in the stack and add the elementAttribute to the array this.each(function(e) { var listElement = $(this); // Add the attribute value to our values array delimitedListArray[delimitedListArray.length] = listElement.attr(elementAttribute); } ); // Return value list by joining the array return(delimitedListArray.join(listDelimiter)); } // Read each widgets collapsed/expanded state from cookie and apply function widget_state(forWidget) { var thisWidgetState = $.cookie(forWidget); if (thisWidgetState == 'collapsed') { forWidget = "#" + forWidget; $(forWidget).find("div.collapsable_box_content").hide(); $(forWidget).find("a.toggle_box_contents").html('+'); $(forWidget).find("a.toggle_box_edit_panel").fadeOut('medium'); }; } // Toggle widgets contents and save to a cookie var toggleContent = function(e) { var targetContent = $('div.collapsable_box_content', this.parentNode.parentNode); if (targetContent.css('display') == 'none') { targetContent.slideDown(400); $(this).html('-'); $(this.parentNode).children("[class=toggle_box_edit_panel]").fadeIn('medium'); // set cookie for widget panel open-state var thisWidgetName = $(this.parentNode.parentNode.parentNode).attr('id'); $.cookie(thisWidgetName, 'expanded', { expires: 365 }); } else { targetContent.slideUp(400); $(this).html('+'); $(this.parentNode).children("[class=toggle_box_edit_panel]").fadeOut('medium'); // make sure edit pane is closed $(this.parentNode.parentNode).children("[class=collapsable_box_editpanel]").hide(); // set cookie for widget panel closed-state var thisWidgetName = $(this.parentNode.parentNode.parentNode).attr('id'); $.cookie(thisWidgetName, 'collapsed', { expires: 365 }); } return false; }; // More info tooltip in widget gallery edit panel function widget_moreinfo() { $("img.more_info").hover(function(e) { var widgetdescription = $("input[@name='description']", this.parentNode.parentNode.parentNode ).attr('value'); $("body").append("
"+ widgetdescription +"
"); if (e.pageX < 900) { $("#widget_moreinfo") .css("top",(e.pageY + 10) + "px") .css("left",(e.pageX + 10) + "px") .fadeIn("medium"); } else { $("#widget_moreinfo") .css("top",(e.pageY + 10) + "px") .css("left",(e.pageX - 210) + "px") .fadeIn("medium"); } }, function() { $("#widget_moreinfo").remove(); }); $("img.more_info").mousemove(function(e) { // action on mousemove }); }; // COOKIES jQuery.cookie = function(name, value, options) { if (typeof value != 'undefined') { // name and value given, set cookie options = options || {}; if (value === null) { value = ''; options.expires = -1; } var expires = ''; if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) { var date; if (typeof options.expires == 'number') { date = new Date(); date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000)); } else { date = options.expires; } expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE } // CAUTION: Needed to parenthesize options.path and options.domain // in the following expressions, otherwise they evaluate to undefined // in the packed version for some reason. var path = options.path ? '; path=' + (options.path) : ''; var domain = options.domain ? '; domain=' + (options.domain) : ''; var secure = options.secure ? '; secure' : ''; document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join(''); } else { // only name given, get cookie var cookieValue = null; if (document.cookie && document.cookie != '') { var cookies = document.cookie.split(';'); for (var i = 0; i < cookies.length; i++) { var cookie = jQuery.trim(cookies[i]); // Does this cookie string begin with the name we want? if (cookie.substring(0, name.length + 1) == (name + '=')) { cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); break; } } } return cookieValue; } }; // ELGG TOOLBAR MENU $.fn.elgg_topbardropdownmenu = function(options) { options = $.extend({speed: 350}, options || {}); this.each(function() { var root = this, zIndex = 5000; function getSubnav(ele) { if (ele.nodeName.toLowerCase() == 'li') { var subnav = $('> ul', ele); return subnav.length ? subnav[0] : null; } else { return ele; } } function getActuator(ele) { if (ele.nodeName.toLowerCase() == 'ul') { return $(ele).parents('li')[0]; } else { return ele; } } function hide() { var subnav = getSubnav(this); if (!subnav) return; $.data(subnav, 'cancelHide', false); setTimeout(function() { if (!$.data(subnav, 'cancelHide')) { $(subnav).slideUp(100); } }, 250); } function show() { var subnav = getSubnav(this); if (!subnav) return; $.data(subnav, 'cancelHide', true); $(subnav).css({zIndex: zIndex++}).slideDown(options.speed); if (this.nodeName.toLowerCase() == 'ul') { var li = getActuator(this); $(li).addClass('hover'); $('> a', li).addClass('hover'); } } $('ul, li', this).hover(show, hide); $('li', this).hover( function() { $(this).addClass('hover'); $('> a', this).addClass('hover'); }, function() { $(this).removeClass('hover'); $('> a', this).removeClass('hover'); } ); }); }; var submenuLayer = 1000; function setup_avatar_menu(parent) { if (!parent) { parent = document; } // avatar image menu link $(parent).find("div.usericon img").mouseover(function() { // find nested avatar_menu_button and show $(this.parentNode.parentNode).children(".avatar_menu_button").show(); $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow"); //$(this.parentNode.parentNode).css("z-index", submenuLayer); }) .mouseout(function() { if($(this).parent().parent().find("div.sub_menu").css('display')!="block") { $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow"); $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_on"); $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover"); $(this.parentNode.parentNode).children(".avatar_menu_button").hide(); } else { $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow"); $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_on"); $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover"); $(this.parentNode.parentNode).children(".avatar_menu_button").show(); $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow"); } }); // avatar contextual menu $(".avatar_menu_button img").click(function(e) { var submenu = $(this).parent().parent().find("div.sub_menu"); // close submenu if arrow is clicked & menu already open if(submenu.css('display') == "block") { //submenu.hide(); } else { // get avatar dimensions var avatar = $(this).parent().parent().parent().find("div.usericon"); //alert( "avatarWidth: " + avatar.width() + ", avatarHeight: " + avatar.height() ); // move submenu position so it aligns with arrow graphic if (e.pageX < 840) { // popup menu to left of arrow if we're at edge of page submenu.css("top",(avatar.height()) + "px") .css("left",(avatar.width()-15) + "px") .fadeIn('normal'); } else { submenu.css("top",(avatar.height()) + "px") .css("left",(avatar.width()-166) + "px") .fadeIn('normal'); } // force z-index - workaround for IE z-index bug avatar.css("z-index", submenuLayer); avatar.find("a.icon img").css("z-index", submenuLayer); submenu.css("z-index", submenuLayer+1); submenuLayer++; // change arrow to 'on' state $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow"); $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover"); $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow_on"); } // hide any other open submenus and reset arrows $("div.sub_menu:visible").not(submenu).hide(); $(".avatar_menu_button").removeClass("avatar_menu_arrow"); $(".avatar_menu_button").removeClass("avatar_menu_arrow_on"); $(".avatar_menu_button").removeClass("avatar_menu_arrow_hover"); $(".avatar_menu_button").hide(); $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow_on"); $(this.parentNode.parentNode).children("div.avatar_menu_button").show(); //alert("submenuLayer = " +submenu.css("z-index")); }) // hover arrow each time mouseover enters arrow graphic (eg. when menu is already shown) .mouseover(function() { $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_on"); $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow"); $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow_hover"); }) // if menu not shown revert arrow, else show 'menu open' arrow .mouseout(function() { if($(this).parent().parent().find("div.sub_menu").css('display')!="block"){ $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover"); $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow"); $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow"); } else { $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow_hover"); $(this.parentNode.parentNode).children("div.avatar_menu_button").removeClass("avatar_menu_arrow"); $(this.parentNode.parentNode).children("div.avatar_menu_button").addClass("avatar_menu_arrow_on"); } }); // hide avatar menu if click occurs outside of menu // and hide arrow button $(document).click(function(event) { var target = $(event.target); if (target.parents(".usericon").length == 0) { $(".usericon div.sub_menu").fadeOut(); $(".avatar_menu_button").removeClass("avatar_menu_arrow"); $(".avatar_menu_button").removeClass("avatar_menu_arrow_on"); $(".avatar_menu_button").removeClass("avatar_menu_arrow_hover"); $(".avatar_menu_button").hide(); } }); } $(document).ready(function() { setup_avatar_menu(); }); function elggUpdateContent(content, entityname) { content = ' ' + content + ' '; if(window.tinyMCE) window.tinyMCE.execCommand("mceInsertContent",true,content); $.facebox.close(); } (function($) { $.facebox = function(data, klass) { $.facebox.loading() if (data.ajax) fillFaceboxFromAjax(data.ajax) else if (data.image) fillFaceboxFromImage(data.image) else if (data.div) fillFaceboxFromHref(data.div) else if ($.isFunction(data)) data.call($) else $.facebox.reveal(data, klass) } $.extend($.facebox, { settings: { opacity : 0.7, overlay : true, loadingImage : 'https://web.archive.org/web/20110203074014/http://freevermontradio.org/mod/embed/images/loading.gif', closeImage : 'https://web.archive.org/web/20110203074014/http://freevermontradio.org/mod/embed/images/button_spacer.gif', imageTypes : [ 'png', 'jpg', 'jpeg', 'gif' ], faceboxHtml : '\ ' }, loading: function() { init() if ($('#facebox .loading').length == 1) return true showOverlay() $('#facebox .content').empty() $('#facebox .body').children().hide().end(). append('