var LayoutConfiguration = {categories : [],initialized : false,loadingImage : null,menu : null,menuDiv : null,menuIframe : null,portlets : [],showTimer : 0,offsetMenu: true,init : function () {var instance = this;var menu = jQuery('#portal_add_content');instance.menu = menu;instance._isFreeform = themeDisplay.isFreeformLayout();if (menu.length) {var list = menu.childNodes;instance.menuDiv = menu.find('.portal-add-content');instance.menuIframe = menu.find('iframe');instance.portlets = menu.find('.lfr-portlet-item');instance.categories = menu.find('.lfr-content-category');instance.categoryContainers = menu.find('.lfr-add-content');instance.initialized = true;jQuery('#layout_configuration_content').trigger('focus').addClass('focus');jQuery('#layout_configuration_content').keyup(function(event) {instance.startShowTimer(event, this);});}if (instance._isFreeform) {instance._grid = jQuery('body .freeform #column-1:first');instance._offsetL = instance._grid[0].offsetLeft;instance._offsetT = instance._grid[0].offsetTop;}},toggle : function (plid, ppid, doAsUserId) {var instance = this;if (!instance.menu) {var url = themeDisplay.getPathMain() + "/portal/render_portlet?p_l_id=" + plid + "&p_p_id=" + ppid + "&doAsUserId=" + doAsUserId + "&p_p_state=exclusive";var popupWidth = 250;if (instance.offsetMenu) {var body = jQuery('body');var originalPadding = body.css('padding-left');body.css('padding-left', popupWidth + 10);}var popup = Liferay.Popup({width: popupWidth,noCenter: true,title: Liferay.Language.get("add-application"),onClose: function() {instance.menu = null;if (instance.offsetMenu) {body.css('padding-left', originalPadding);}}});AjaxUtil.update(url, popup,{onComplete: function() {instance._loadContent();}});}},searchField: function(event, obj) {var instance = this;var word = jQuery.trim(obj.value).toLowerCase();var portlets = instance.portlets;var categories = instance.categories;var categoryContainers = instance.categoryContainers;if (word != '*' && word.length) {word = word.match(/[a-zA-Z0-9]*/g).join("");portlets.hide();categories.hide();categoryContainers.hide();portlets.each(function(i) {var name = this.id.toLowerCase();if (name.indexOf(word) > -1) {var portlet = jQuery(this);portlet.show();portlet.parents('.lfr-content-category').addClass('visible').removeClass('hidden').show();portlet.parents('.lfr-add-content').addClass('expanded').removeClass('collapsed').show();}});}else {if (!word.length) {categories.addClass('hidden').removeClass('visible').css('display', '');categoryContainers.addClass('collapsed').removeClass('expanded').css('display', '');portlets.css('display', '');}else if (word == '*') {categories.addClass('visible').removeClass('hidden');categoryContainers.addClass('expanded').removeClass('collapsed');portlets.show();}}},startShowTimer : function (event, obj) {var instance = this;if (instance.showTimer) {clearTimeout(instance.showTimer);instance.showTimer = 0;}instance.showTimer = setTimeout(function() {instance.searchField(event, obj);},250);},_loadContent: function() {var instance = this;instance.init();Liferay.Util.addInputType();Liferay.Util.addInputFocus();Liferay.Publisher.subscribe('closePortlet', instance._onPortletClose, instance);var clicked = false;var portlets = jQuery('.lfr-portlet-item');var options = {threshold: 10,onStart: function(s) {var event = s.browserEvent;var originalTarget = jQuery(event.originalTarget || event.srcElement);if (!originalTarget.is('a')) {Liferay.Columns._onStart(s);}else {clicked = true;var portlet = originalTarget.parents('.lfr-portlet-item:first');if (!portlet.is('.lfr-portlet-used')) {var plid = portlet.attr('plid');var portletId = portlet.attr('portletId');var isInstanceable = (portlet.attr('instanceable') == 'true');addPortlet(plid, portletId, themeDisplay.getDoAsUserIdEncoded());if (!isInstanceable) {portlet.addClass('lfr-portlet-used');portlet.unbind('mousedown');}}}},onMove: function(s) {if (!instance._isFreeform) {Liferay.Columns._onMove(s);}},onComplete: function(s) {if (!clicked) {var container = s.container;var plid = container.getAttribute('plid');var portletId = container.getAttribute('portletId');if (plid && portletId) {var portlet = jQuery(s.container);var isInstanceable = (container.getAttribute('instanceable') == 'true');var doAsUserId = themeDisplay.getDoAsUserIdEncoded();var portletBound = addPortlet(plid, portletId, doAsUserId, true);if (!isInstanceable) {if (portletBound) {portlet.addClass('lfr-portlet-used');portlet.unbind('mousedown');}}else {Liferay.Columns.add(portlet, options);}portlet.css({top: 0,left: 0});s.container = portletBound;var completed = Liferay.Columns._onComplete(s);if (!instance._isFreeform) {if (!completed) {if (isInstanceable) {portletId = portletBound.id;portletId = portletId.replace(/^p_p_id_(.*)_$/, '$1');}closePortlet(plid, portletId, doAsUserId, true);}}if (completed || instance._isFreeform) {portlet.Highlight(750, '#ffe98f');}if (instance._isFreeform) {var jPortlet = jQuery(portletBound);jPortlet.css({left: (mousePos.x - instance._offsetL) + 'px',top: (mousePos.y - instance._offsetT) + 'px'});}}}clicked = false;}};instance._layoutOptions = options;portlets.each(function() {if (this.className.indexOf('lfr-portlet-used') == -1) {Liferay.Columns.add(this, options);}});if (Liferay.Browser.is_ie) {portlets.hover(function() {this.className += ' over';},function() {this.className = this.className.replace('over', '');});}jQuery('.lfr-add-content > h2').click(function() {var heading = jQuery(this).parent();var category = heading.find('> .lfr-content-category');category.toggleClass('hidden').toggleClass('visible');heading.toggleClass('collapsed').toggleClass('expanded');});},_onPortletClose: function(portletData) {var instance = this;var popup = jQuery('#portal_add_content');var item = popup.find('.lfr-portlet-item[@plid=' + portletData.plid + '][@portletId=' + portletData.portletId + '][@instanceable=false]');if (item.is('.lfr-portlet-used')) {item.removeClass('lfr-portlet-used')Liferay.Columns.add(item[0], instance._layoutOptions);}}};