Liferay.PortletCSS = {init: function(portletId) {var instance = this;var curPortletBoundaryId = 'p_p_id_' + portletId + '_';var obj = jQuery('#' + curPortletBoundaryId);var tabTrigger = 1;instance._portletId = portletId;instance._curPortlet = obj.find('.portlet');instance._curPortletWrapperId = instance._curPortlet.attr('id');instance._portletBoundaryId = curPortletBoundaryId;instance._newPanel = jQuery('#portlet-set-properties');if (!instance._curPortlet.length) {instance._curPortlet = obj;instance._curPortletWrapperId = curPortletBoundaryId;}var newPanel = instance._newPanel;if (instance._curPortlet.length) {if (!instance._newPanel.is('.instantiated')) {instance._newPanel.addClass('instantiated');instance._portletBoundaryIdVar = jQuery('#portlet-boundary-id');// Portlet configinstance._customTitleInput = jQuery('#custom-title');instance._defaultPortletTitle = instance._curPortlet.find('.portlet-title').text();instance._customTitleCheckbox = jQuery('#use-custom-title-checkbox');instance._showBorders = jQuery('#show-borders');instance._borderNote = jQuery('#border-note');instance._portletLanguage = jQuery('#lfr-portlet-language');instance._portletLinksTarget = jQuery('#lfr-point-links');// Textinstance._fontFamily = jQuery('#lfr-font-family');instance._fontWeight = jQuery('#lfr-font-bold');instance._fontStyle = jQuery('#lfr-font-italic');instance._fontSize = jQuery('#lfr-font-size');instance._fontColor = jQuery('#lfr-font-color');instance._textAlign = jQuery('#lfr-font-align');instance._textDecoration = jQuery('#lfr-font-decoration');instance._wordSpacing = jQuery('#lfr-font-space');instance._leading = jQuery('#lfr-font-leading');instance._tracking = jQuery('#lfr-font-tracking');// Backgroundinstance._backgroundColor = jQuery('#lfr-bg-color');instance._useBgImage = jQuery('#lfr-use-bg-image');instance._bgImageProperties = jQuery('.lfr-bg-image-properties');instance._bgRepeating = jQuery('#lfr-bg-repeat');instance._bgPosTop = jQuery('#lfr-bg-top-int');instance._bgPosTopUnit = jQuery('#lfr-bg-top-unit');instance._bgPosLeft = jQuery('#lfr-bg-left-int');instance._bgPosLeftUnit = jQuery('#lfr-bg-left-unit');// Borderinstance._ufaBorderWidth = jQuery('#lfr-use-for-all-width');instance._ufaBorderStyle = jQuery('#lfr-use-for-all-style');instance._ufaBorderColor = jQuery('#lfr-use-for-all-color');instance._borderTopInt = jQuery('#lfr-border-width-top');instance._borderTopUnit = jQuery('#lfr-border-width-top-unit');instance._borderRightInt = jQuery('#lfr-border-width-right');instance._borderRightUnit = jQuery('#lfr-border-width-right-unit');instance._borderBottomInt = jQuery('#lfr-border-width-bottom');instance._borderBottomUnit = jQuery('#lfr-border-width-bottom-unit');instance._borderLeftInt = jQuery('#lfr-border-width-left');instance._borderLeftUnit = jQuery('#lfr-border-width-left-unit');instance._borderTopStyle = jQuery('#lfr-border-style-top');instance._borderRightStyle = jQuery('#lfr-border-style-right');instance._borderBottomStyle = jQuery('#lfr-border-style-bottom');instance._borderLeftStyle = jQuery('#lfr-border-style-left');instance._borderTopColor = jQuery('#lfr-border-color-top');instance._borderRightColor = jQuery('#lfr-border-color-right');instance._borderBottomColor = jQuery('#lfr-border-color-bottom');instance._borderLeftColor = jQuery('#lfr-border-color-left');// Spacinginstance._ufaPadding = jQuery('#lfr-use-for-all-padding');instance._ufaMargin = jQuery('#lfr-use-for-all-margin');instance._paddingTopInt = jQuery('#lfr-padding-top');instance._paddingTopUnit = jQuery('#lfr-padding-top-unit');instance._paddingRightInt = jQuery('#lfr-padding-right');instance._paddingRightUnit = jQuery('#lfr-padding-right-unit');instance._paddingBottomInt = jQuery('#lfr-padding-bottom');instance._paddingBottomUnit = jQuery('#lfr-padding-bottom-unit');instance._paddingLeftInt = jQuery('#lfr-padding-left');instance._paddingLeftUnit = jQuery('#lfr-padding-left-unit');instance._marginTopInt = jQuery('#lfr-margin-top');instance._marginTopUnit = jQuery('#lfr-margin-top-unit');instance._marginRightInt = jQuery('#lfr-margin-right');instance._marginRightUnit = jQuery('#lfr-margin-right-unit');instance._marginBottomInt = jQuery('#lfr-margin-bottom');instance._marginBottomUnit = jQuery('#lfr-margin-bottom-unit');instance._marginLeftInt = jQuery('#lfr-margin-left');instance._marginLeftUnit = jQuery('#lfr-margin-left-unit');// Advanced CSSinstance._customCSS = jQuery('#lfr-custom-css');instance._saveButton = jQuery('#lfr-lookfeel-save');instance._resetButton = jQuery('#lfr-lookfeel-reset');newPanel.show();newPanel.tabs({tabStruct: 'form>fieldset',selectedClass: 'current'});instance._currentPopup = Liferay.Popup({width: 800,message: newPanel[0],modal: false,noCenter: true,onClose: function() {instance._newPanel.removeClass('instantiated');jQuery(newPanel[0]).hide().appendTo('body');if (Liferay.Browser.is_ie_6) {window.location.reload(true);}}});}newPanel.find('.lfr-color-picker-img').remove();instance._portletMsgResponse = jQuery('#lfr-portlet-css-response');instance._portletMsgResponse.hide();var defaultData = {advancedData: {customCSS: ''},bgData: {backgroundColor: '',backgroundImage: '',useBgImage: false,backgroundRepeat: '',backgroundPosition: {left: {value: '',unit: 'px'},top: {value: '',unit: 'px'}}},borderData: {borderWidth: {bottom: {value: '',unit: 'px'},left: {value: '',unit: 'px'},right: {value: '',unit: 'px'},top: {value: '',unit: 'px'},sameForAll: true},borderStyle: {bottom: '',left: '',right: '',top: '',sameForAll: true},borderColor: {bottom: '',left: '',right: '',top: '',sameForAll: true}},portletData: {language: 'en_US',portletLinksTarget: '',showBorders: true,title: '',titles: {},useCustomTitle: false},spacingData: {margin: {bottom: {value: '',unit: 'px'},left: {value: '',unit: 'px'},right: {value: '',unit: 'px'},top: {value: '',unit: 'px'},sameForAll: true},padding: {bottom: {value: '',unit: 'px'},left: {value: '',unit: 'px'},right: {value: '',unit: 'px'},top: {value: '',unit: 'px'},sameForAll: true}},textData: {textAlign: '',color: '',fontFamily: '',fontSize: '',fontStyle: '',fontWeight: '',letterSpacing: '',lineHeight: '',textDecoration: '',wordSpacing: ''}};var objectData = jQuery.ajax({url: themeDisplay.getPathMain() + '/portlet_configuration/get_look_and_feel',data: {p_l_id: themeDisplay.getPlid(),doAsUserId: themeDisplay.getDoAsUserIdEncoded(),portletId: instance._portletId},async: false,dataType: 'json',type: "POST"});if (objectData.responseText.length) {objectData = jQuery.parseJSON(objectData.responseText);instance._objData = objectData;}else {instance._objData = defaultData;}instance._assignColorPickers();instance._portletBoundaryIdVar.val(curPortletBoundaryId);instance._setDefaults();instance._portletConfig();instance._textStyles();instance._backgroundStyles();instance._borderStyles();instance._spacingStyles();instance._cssStyles();var currentTab = newPanel.find('li.current');newPanel.triggerTab(tabTrigger);if (currentTab.length > 1) {currentTab.not(':first').removeClass('current');}var useForAll = newPanel.find('.lfr-use-for-all');var handleForms = function() {var checkBox = jQuery(this);var otherHolders = checkBox.parents('fieldset:first').find('.ctrl-holder:gt(1)');var otherForms = otherHolders.find('input, select');var colorPickerImages = otherHolders.find('.lfr-color-picker-img');if (this.checked) {otherHolders.fadeTo('fast', 0.3);otherForms.attr('disabled', true);colorPickerImages.hide();}else {otherHolders.fadeTo('fast', 1);otherForms.attr('disabled', false);colorPickerImages.show();}};useForAll.unbind('click', handleForms).click(handleForms);useForAll.each(handleForms);var saveHandler = function(xHR, type) {var ajaxResponseMsg = instance._portletMsgResponse;var ajaxResponseHTML = '<div id="lfr-portlet-css-response"></div>';var message = '';var messageClass = '';if (type == 'success') {message = Liferay.Language.get('your-request-processed-successfully');messageClass = 'portlet-msg-success';}else {message = Liferay.Language.get('your-settings-could-not-be-saved');messageClass = 'portlet-msg-error';}if (!ajaxResponseMsg.length) {ajaxResponse = jQuery(ajaxResponseHTML);instance._newPanel.find('form').prepend(ajaxResponse);instance._portletMsgResponse = ajaxResponse;}ajaxResponse.hide();ajaxResponse.attr('class', messageClass);ajaxResponse.empty();ajaxResponse.html(message);ajaxResponse.fadeIn('normal');};instance._saveButton.unbind().click(function() {instance._objData.advancedData.customCSS = instance._customCSS.val();jQuery.ajax({url: themeDisplay.getPathMain() + '/portlet_configuration/update_look_and_feel',data: {p_l_id: themeDisplay.getPlid(),doAsUserId: themeDisplay.getDoAsUserIdEncoded(),portletId: instance._portletId,css: jQuery.toJSON(instance._objData)},complete: saveHandler,type: "POST"});});instance._resetButton.unbind().click(function() {instance._curPortlet.attr('style', '');jQuery('#lfr-custom-css-block-' + instance._curPortletWrapperId).remove();instance._objData = defaultData;instance._setDefaults();});Liferay.Util.addInputFocus(instance._newPanel[0]);jQuery(instance._currentPopup).parents('.popup').ScrollTo(800);}},_assignColorPickers: function() {var instance = this;instance._newPanel.find('.use-color-picker').each(function() {new Liferay.ColorPicker({context: jQuery('#portlet-set-properties')[0],item: this});});},_backgroundStyles: function() {var instance = this;var bgData = instance._objData.bgData;var portlet = instance._curPortlet;// Background colorvar backgroundColor = instance._backgroundColor;var setColor = function(obj){var color = obj.value;var cssColor = color;if ((color == '') || (color == '#')) {cssColor = 'transparent';color = '';}portlet.css('background-color', cssColor);bgData.backgroundColor = color;};var colorPicker = new Liferay.ColorPicker({context: instance._newPanel[0],item: backgroundColor[0],onChange: function() {setColor(backgroundColor[0]);}});backgroundColor.unbind().blur(function() {setColor(this);});// Background imagevar useBgImage = instance._useBgImage;var useBg = useBgImage.is(':checked');var bgImageProperties = instance._bgImageProperties;bgData.useBgImage = useBg;if (useBg) {bgImageProperties.show();}useBgImage.unbind().click(function() {bgImageProperties.toggle();bgData.useBgImage = this.checked;});// Background repeatingvar bgRepeating = instance._bgRepeating;bgRepeating.unbind().change(function() {var backgroundRepeat = this.options[this.selectedIndex].value;portlet.css('background-repeat', backgroundRepeat);bgData.backgroundRepeat = backgroundRepeat;});// Background positionvar bgPosTop = instance._bgPosTop;var bgPosTopUnit = instance._bgPosTopUnit;var bgPosLeft = instance._bgPosLeft;var bgPosLeftUnit = instance._bgPosLeftUnit;var updatePos = function() {var topPos = instance._getCombo(bgPosTop, bgPosTopUnit);var leftPos = instance._getCombo(bgPosLeft, bgPosLeftUnit);portlet.css('background-position', leftPos.both + ' ' + topPos.both);bgData.backgroundPosition.top.value = topPos.input;bgData.backgroundPosition.top.unit = topPos.selectBox;bgData.backgroundPosition.left.value = leftPos.input;bgData.backgroundPosition.left.unit = leftPos.selectBox;};bgPosTop.unbind().blur(updatePos);bgPosLeft.unbind().blur(updatePos);bgPosTop.unbind().keyup(updatePos);bgPosLeft.unbind().keyup(updatePos);bgPosTopUnit.unbind().change(updatePos);bgPosLeftUnit.unbind().change(updatePos);},_borderStyles: function() {var instance = this;var portlet = instance._curPortlet;var ufaWidth = instance._ufaBorderWidth;var ufaStyle = instance._ufaBorderStyle;var ufaColor = instance._ufaBorderColor;var borderData = instance._objData.borderData;// Border widthvar wTopInt = instance._borderTopInt;var wTopUnit = instance._borderTopUnit;var wRightInt = instance._borderRightInt;var wRightUnit = instance._borderRightUnit;var wBottomInt = instance._borderBottomInt;var wBottomUnit = instance._borderBottomUnit;var wLeftInt = instance._borderLeftInt;var wLeftUnit = instance._borderLeftUnit;var changeWidth = function() {var styling = {};var borderWidth = {};borderWidth = instance._getCombo(wTopInt, wTopUnit);styling = {borderWidth: borderWidth.both};var ufa = ufaWidth.is(':checked');borderData.borderWidth.top.value = borderWidth.input;borderData.borderWidth.top.unit = borderWidth.selectBox;borderData.borderWidth.sameForAll = ufa;if (!ufa) {var extStyling = {};extStyling.borderTopWidth = styling.borderWidth;var right = instance._getCombo(wRightInt, wRightUnit);var bottom = instance._getCombo(wBottomInt, wBottomUnit);var left = instance._getCombo(wLeftInt, wLeftUnit);extStyling.borderRightWidth = right.both;extStyling.borderBottomWidth = bottom.both;extStyling.borderLeftWidth = left.both;styling = extStyling;borderData.borderWidth.right.value = right.input;borderData.borderWidth.right.unit = right.selectBox;borderData.borderWidth.bottom.value = bottom.input;borderData.borderWidth.bottom.unit = bottom.selectBox;borderData.borderWidth.left.value = left.input;borderData.borderWidth.left.unit = left.selectBox;}portlet.css(styling);changeStyle();changeColor();};wTopInt.unbind().blur(changeWidth);wTopInt.unbind().keyup(changeWidth);wRightInt.unbind().blur(changeWidth);wRightInt.unbind().keyup(changeWidth);wBottomInt.unbind().blur(changeWidth);wBottomInt.unbind().keyup(changeWidth);wLeftInt.unbind().blur(changeWidth);wLeftInt.unbind().keyup(changeWidth);wTopUnit.unbind().change(changeWidth);wRightUnit.unbind().change(changeWidth);wBottomUnit.unbind().change(changeWidth);wLeftUnit.unbind().change(changeWidth);ufaWidth.unbind().click(changeWidth);// Border stylevar sTopStyle = instance._borderTopStyle;var sRightStyle = instance._borderRightStyle;var sBottomStyle = instance._borderBottomStyle;var sLeftStyle = instance._borderLeftStyle;var changeStyle = function() {var styling = {};var borderStyle = {};borderStyle = sTopStyle.find('option:selected').val();styling = {borderStyle: borderStyle};var ufa = ufaStyle.is(':checked');borderData.borderStyle.top = borderStyle;borderData.borderStyle.sameForAll = ufa;if (!ufa) {var extStyling = {};extStyling.borderTopStyle = styling.borderStyle;var right = sRightStyle.find('option:selected').val();var bottom = sBottomStyle.find('option:selected').val();var left = sLeftStyle.find('option:selected').val();extStyling.borderRightStyle = right;extStyling.borderBottomStyle = bottom;extStyling.borderLeftStyle = left;styling = extStyling;borderData.borderStyle.right = right;borderData.borderStyle.bottom = bottom;borderData.borderStyle.left = left;}portlet.css(styling);};sTopStyle.unbind().change(changeStyle);sRightStyle.unbind().change(changeStyle);sBottomStyle.unbind().change(changeStyle);sLeftStyle.unbind().change(changeStyle);ufaStyle.unbind().click(changeStyle);// Border colorvar cTopColor = instance._borderTopColor;var cRightColor = instance._borderRightColor;var cBottomColor = instance._borderBottomColor;var cLeftColor = instance._borderLeftColor;var changeColor = function() {var styling = {};var borderColor = {};borderColor = cTopColor.val();styling = {borderColor: borderColor};var ufa = ufaColor.is(':checked');borderData.borderColor.top = borderColor;borderData.borderColor.sameForAll = ufa;if (!ufa) {var extStyling = {};extStyling.borderTopColor = styling.borderColor;var right = cRightColor.val();var bottom = cBottomColor.val();var left = cLeftColor.val();extStyling.borderRightColor = right;extStyling.borderBottomColor = bottom;extStyling.borderLeftColor = left;styling = extStyling;borderData.borderColor.right = right;borderData.borderColor.bottom = bottom;borderData.borderColor.left = left;}portlet.css(styling);};var colorPickerTop = new Liferay.ColorPicker({context: jQuery('#portlet-set-properties')[0],item: cTopColor[0],onChange: changeColor});var colorPickerRight = new Liferay.ColorPicker({context: jQuery('#portlet-set-properties')[0],item: cRightColor[0],onChange: changeColor});var colorPickerBottom = new Liferay.ColorPicker({context: jQuery('#portlet-set-properties')[0],item: cBottomColor[0],onChange: changeColor});var colorPickerLeft = new Liferay.ColorPicker({context: jQuery('#portlet-set-properties')[0],item: cLeftColor[0],onChange: changeColor});cTopColor.unbind().blur(changeColor);cRightColor.unbind().blur(changeColor);cBottomColor.unbind().blur(changeColor);cLeftColor.unbind().blur(changeColor);cTopColor.unbind().keyup(changeColor);cRightColor.unbind().keyup(changeColor);cBottomColor.unbind().keyup(changeColor);cLeftColor.unbind().keyup(changeColor);ufaColor.unbind().click(changeColor);},_cssStyles: function() {var instance = this;var portlet = instance._curPortlet;var customCSS = jQuery('#lfr-custom-css');var customCSSContainer = customCSS.parents('.ctrl-holder');var customPortletNoteHTML = '<p class="portlet-msg-info form-hint"></p>';var customPortletNote = jQuery('#lfr-portlet-info');var refreshText = '';var portletId = instance._curPortletWrapperId;var portletClasses = portlet.attr('class');portletClasses = jQuery.trim(portletClasses).replace(/(\s)/g, '$1.');var portletInfoText =Liferay.Language.get('your-current-portlet-information-is-as-follows') + ':<br />' +Liferay.Language.get('portlet-id') + ': <strong>#' + portletId + '</strong><br />' +Liferay.Language.get('portlet-classes') + ': <strong>.' + portletClasses + '</strong>';var customNote = jQuery('#lfr-refresh-styles');if (!customNote.length) {customNote = jQuery(customPortletNoteHTML);customNote.attr({'class': '',id: 'lfr-refresh-styles'});}if (!customPortletNote.length) {customPortletNote = jQuery(customPortletNoteHTML);customCSSContainer.before(customPortletNote);customPortletNote.attr({id: 'lfr-portlet-info'});}customPortletNote.html(portletInfoText);customCSS.EnableTabs();if (!jQuery.browser.safari) {refreshText = Liferay.Language.get('update-the-styles-on-this-page');var refreshLink = jQuery('<a href="javascript:;">' + refreshText + '</a>');var customStyleBlock = jQuery('#lfr-custom-css-block-' + portletId);if (!customStyleBlock.length) {// Do not modify. This is a workaround for an IE bug.var styleEl = document.createElement('style');styleEl.id = 'lfr-custom-css-block-' + portletId;styleEl.className = 'lfr-custom-css-block';styleEl.setAttribute('type', 'text/css');document.getElementsByTagName('head')[0].appendChild(styleEl);}else {styleEl = customStyleBlock[0];}var refreshStyles = function() {var customStyles = customCSS.val();customStyles = customStyles.replace(/<script[^>]*>([\u0001-\uFFFF]*?)<\/script>/gim, '');customStyles = customStyles.replace(/<\/?[^>]+>/gi, '');if (styleEl.styleSheet) { // for IE onlyif (customStyles == '') {// Do not modify. This is a workaround for an IE bug.customStyles = '<!---->';}styleEl.styleSheet.cssText = customStyles;}else {jQuery(styleEl).html(customStyles);}};refreshLink.unbind().click(refreshStyles);customNote.empty().append(refreshLink);}else {refreshText = Liferay.Language.get('please-press-the-save-button-to-view-your-changes');customNote.empty().text(refreshText);}var insertContainer = jQuery('#lfr-add-rule-container');var addIdLink = jQuery('#lfr-add-id');var addClassLink = jQuery('#lfr-add-class');var updateOnType = jQuery('#lfr-update-on-type');if (!insertContainer.length) {insertContainer = jQuery('<div id="lfr-add-rule-container"></div>');addIdLink = jQuery('<a href="javascript:;" id="lfr-add-id">' + Liferay.Language.get('add-a-css-rule-for-just-this-portlet') + '</a>');addClassLink = jQuery('<a href="javascript:;" id="lfr-add-class">' + Liferay.Language.get('add-a-css-rule-for-all-portlets-like-this-one') + '</a>');var updateOnTypeHolder = jQuery('<div class="ctrl-holder"></div>');var updateOnTypeLabel = jQuery('<label>' + Liferay.Language.get('update-my-styles-as-i-type') + ' </label>');updateOnType = jQuery('<input id="lfr-update-on-type" type="checkbox" />');updateOnTypeLabel.append(updateOnType);updateOnTypeHolder.append(updateOnTypeLabel);customCSSContainer.after(insertContainer);insertContainer.append(addIdLink);insertContainer.append('<br />');insertContainer.append(addClassLink);insertContainer.append(updateOnTypeHolder);insertContainer.after(customNote);}updateOnType.click(function() {if (this.checked) {customNote.hide();customCSS.keyup(refreshStyles);}else {customNote.show();customCSS.unbind('keyup', refreshStyles);}});addIdLink.unbind().click(function() {customCSS[0].value += '\n#' + portletId + '{\n\t\n}\n';});addClassLink.unbind().click(function() {customCSS[0].value += '\n.' + portletClasses.replace(/\s/g, '') + '{\n\t\n}\n';});},_getCombo: function(input, selectBox) {var instance = this;var inputVal = input.val();var selectVal = selectBox.find('option:selected').val();inputVal = instance._getSafeInteger(inputVal);return {input: inputVal, selectBox: selectVal, both: inputVal + selectVal};},_getSafeInteger: function(input) {var instance = this;var output = parseInt(input);if (output == '' || isNaN(output)) {output = 0;}return output;},_languageClasses: function(key, value, removeClass) {var instance = this;var option = instance._portletLanguage.find('option[@value=' + key + ']');if (removeClass) {option.removeClass('focused');}else {option.addClass('focused');}},_portletConfig: function() {var instance = this;var portletData = instance._objData.portletData;var customTitleInput = instance._customTitleInput;var customTitleCheckbox = instance._customTitleCheckbox;var showBorders = instance._showBorders;var language = instance._portletLanguage;var borderNote = instance._borderNote;var portletLinksTarget = instance._portletLinksTarget;// Use custom titlecustomTitleCheckbox.unbind().click(function() {var title;portletData.useCustomTitle = this.checked;if (this.checked) {customTitleInput.attr('disabled', false);language.attr('disabled', false);title = jQuery.trim(customTitleInput.val());if (title == '') {title = instance._curPortlet.find('.portlet-title').text();title = jQuery.trim(title);customTitleInput.val(title);}portletData.title = title;instance._portletTitles(false, title);}else {customTitleInput.attr('disabled', true);language.attr('disabled', true);title = instance._defaultPortletTitle;}instance._curPortlet.find('.portlet-title').text(title);});customTitleInput.unbind().keyup(function() {if (!portletData.useCustomTitle) {return;}instance._curPortlet.find('.portlet-title').text(this.value);portletData.title = this.value;instance._portletTitles(false, this.value);});// Show bordersshowBorders.unbind().click(function() {borderNote.toggle();portletData.showBorders = this.checked;});language.change(function() {portletData.language = this.options[this.selectedIndex].value;var title = instance._portletTitles(portletData.language);if (portletData.useCustomTitle) {customTitleInput.val(title);}});// Point target links toportletLinksTarget.change(function() {portletData.portletLinksTarget = instance._getSafeInteger(this.options[this.selectedIndex].value);});},_portletTitles: function(key, value) {var instance = this;var portletLanguage = instance._portletLanguage;if (!instance._objData.portletData.titles) {instance._objData.portletData.titles = {};}var portletTitles = instance._objData.portletData.titles;if (!key) {key = instance._portletLanguage.find('option:selected').val();}if (value == null) {var portletTitle = portletTitles[key];if (portletTitle) {return portletTitle;}return '';}else {portletTitles[key] = value;if (value == '') {instance._languageClasses(key, null, true);}else {instance._languageClasses(key);}}},_setCheckbox: function(obj, value) {var instance = this;obj.attr('checked', value);},_setDefaults: function() {var instance = this;var objData = instance._objData;var portletData = objData.portletData;var textData = objData.textData;var bgData = objData.bgData;var borderData = objData.borderData;var spacingData = objData.spacingData;var portletTitles = portletData.titles;var portletTitle = instance._portletTitles(portletData.language);var fontStyle = false;var fontWeight = false;if (textData.fontStyle != 'normal') {fontStyle = true;}if (textData.fontWeight != 'normal') {fontWeight = true;}// Portlet configinstance._setInput(instance._customTitleInput, portletTitle);instance._setCheckbox(instance._customTitleCheckbox, portletData.useCustomTitle);instance._setCheckbox(instance._showBorders, portletData.showBorders);instance._setSelect(instance._portletLanguage, portletData.language);instance._setSelect(instance._portletLinksTarget, portletData.portletLinksTarget);if (!portletData.useCustomTitle) {instance._customTitleInput.attr('disabled', true);instance._portletLanguage.attr('disabled', true);}if (portletData.titles) {jQuery.each(portletData.titles,function(key, value) {instance._languageClasses(key);});}// Textinstance._setSelect(instance._fontFamily, textData.fontFamily);instance._setCheckbox(instance._fontWeight, fontWeight);instance._setCheckbox(instance._fontStyle, fontStyle);instance._setSelect(instance._fontSize, textData.fontSize);instance._setInput(instance._fontColor, textData.color);instance._setSelect(instance._textAlign, textData.textAlign);instance._setSelect(instance._textDecoration, textData.textDecoration);instance._setSelect(instance._wordSpacing, textData.wordSpacing);instance._setSelect(instance._leading, textData.lineHeight);instance._setSelect(instance._tracking, textData.letterSpacing);// Backgroundinstance._setInput(instance._backgroundColor, bgData.backgroundColor);instance._setCheckbox(instance._useBgImage, bgData.useBgImage);instance._setSelect(instance._bgRepeating, bgData.backgroundRepeat);instance._setInput(instance._bgPosTop, bgData.backgroundPosition.top.value);instance._setSelect(instance._bgPosTopUnit, bgData.backgroundPosition.top.unit);instance._setInput(instance._bgPosLeft, bgData.backgroundPosition.left.value);instance._setSelect(instance._bgPosLeftUnit, bgData.backgroundPosition.left.unit);// Borderinstance._setCheckbox(instance._ufaBorderWidth, borderData.borderWidth.sameForAll);instance._setCheckbox(instance._ufaBorderStyle, borderData.borderStyle.sameForAll);instance._setCheckbox(instance._ufaBorderColor, borderData.borderColor.sameForAll);instance._setInput(instance._borderTopInt, borderData.borderWidth.top.value);instance._setSelect(instance._borderTopUnit, borderData.borderWidth.top.unit);instance._setInput(instance._borderRightInt, borderData.borderWidth.right.value);instance._setSelect(instance._borderRightUnit, borderData.borderWidth.right.unit);instance._setInput(instance._borderBottomInt, borderData.borderWidth.bottom.value);instance._setSelect(instance._borderBottomUnit, borderData.borderWidth.bottom.unit);instance._setInput(instance._borderLeftInt, borderData.borderWidth.left.value);instance._setSelect(instance._borderLeftUnit, borderData.borderWidth.left.unit);instance._setSelect(instance._borderTopStyle, borderData.borderStyle.top);instance._setSelect(instance._borderRightStyle, borderData.borderStyle.right);instance._setSelect(instance._borderBottomStyle, borderData.borderStyle.bottom);instance._setSelect(instance._borderLeftStyle, borderData.borderStyle.left);instance._setInput(instance._borderTopColor, borderData.borderColor.top);instance._setInput(instance._borderRightColor, borderData.borderColor.right);instance._setInput(instance._borderBottomColor, borderData.borderColor.bottom);instance._setInput(instance._borderLeftColor, borderData.borderColor.left);// Spacinginstance._setCheckbox(instance._ufaPadding, spacingData.padding.sameForAll);instance._setCheckbox(instance._ufaMargin, spacingData.margin.sameForAll);instance._setInput(instance._paddingTopInt, spacingData.padding.top.value);instance._setSelect(instance._paddingTopUnit, spacingData.padding.top.unit);instance._setInput(instance._paddingRightInt, spacingData.padding.right.value);instance._setSelect(instance._paddingRightUnit, spacingData.padding.right.unit);instance._setInput(instance._paddingBottomInt, spacingData.padding.bottom.value);instance._setSelect(instance._paddingBottomUnit, spacingData.padding.bottom.unit);instance._setInput(instance._paddingLeftInt, spacingData.padding.left.value);instance._setSelect(instance._paddingLeftUnit, spacingData.padding.left.unit);instance._setInput(instance._marginTopInt, spacingData.margin.top.value);instance._setSelect(instance._marginTopUnit, spacingData.margin.top.unit);instance._setInput(instance._marginRightInt, spacingData.margin.right.value);instance._setSelect(instance._marginRightUnit, spacingData.margin.right.unit);instance._setInput(instance._marginBottomInt, spacingData.margin.bottom.value);instance._setSelect(instance._marginBottomUnit, spacingData.margin.bottom.unit);instance._setInput(instance._marginLeftInt, spacingData.margin.left.value);instance._setSelect(instance._marginLeftUnit, spacingData.margin.left.unit);// Advanced CSSvar customStyleBlock = jQuery('#lfr-custom-css-block-' + instance._curPortletWrapperId);var customStyles = customStyleBlock.html();if (customStyles == '' || customStyles == null) {customStyles = objData.advancedData.customCSS;}instance._setTextarea(instance._customCSS, customStyles);},_setInput: function(obj, value) {var instance = this;obj.val(value);},_setSelect: function(obj, value) {var instance = this;if (value != '') {obj.find('option[@value=' + value + ']').attr('selected', 'selected');}},_setTextarea: function(obj, value) {var instance = this;instance._setInput(obj, value);},_spacingStyles: function() {var instance = this;var portlet = instance._curPortlet;var ufaPadding = instance._ufaPadding;var ufaMargin = instance._ufaMargin;var spacingData = instance._objData.spacingData;// Paddingvar pTop = instance._paddingTopInt;var pTopUnit = instance._paddingTopUnit;var pRight = instance._paddingRightInt;var pRightUnit = instance._paddingRightUnit;var pBottom = instance._paddingBottomInt;var pBottomUnit = instance._paddingBottomUnit;var pLeft = instance._paddingLeftInt;var pLeftUnit = instance._paddingLeftUnit;var changePadding = function() {var styling = {};var padding = instance._getCombo(pTop, pTopUnit);styling = {padding: padding.both};var ufa = ufaPadding.is(':checked');spacingData.padding.top.value = padding.input;spacingData.padding.top.unit = padding.selectBox;spacingData.padding.sameForAll = ufa;if (!ufa) {var extStyling = {};extStyling.paddingTop = styling.padding;var right = instance._getCombo(pRight, pRightUnit);var bottom = instance._getCombo(pBottom, pBottomUnit);var left = instance._getCombo(pLeft, pLeftUnit);extStyling.paddingRight = right.both;extStyling.paddingBottom = bottom.both;extStyling.paddingLeft = left.both;styling = extStyling;spacingData.padding.right.value = right.input;spacingData.padding.right.unit = right.selectBox;spacingData.padding.bottom.value = bottom.input;spacingData.padding.bottom.unit = bottom.selectBox;spacingData.padding.left.value = left.input;spacingData.padding.left.unit = left.selectBox;}portlet.css(styling);};pTop.unbind().blur(changePadding);pRight.unbind().blur(changePadding);pBottom.unbind().blur(changePadding);pLeft.unbind().blur(changePadding);pTop.unbind().keyup(changePadding);pRight.unbind().keyup(changePadding);pBottom.unbind().keyup(changePadding);pLeft.unbind().keyup(changePadding);pTopUnit.unbind().change(changePadding);pRightUnit.unbind().change(changePadding);pBottomUnit.unbind().change(changePadding);pLeftUnit.unbind().change(changePadding);ufaPadding.unbind().click(changePadding);// Marginvar mTop = instance._marginTopInt;var mTopUnit = instance._marginTopUnit;var mRight = instance._marginRightInt;var mRightUnit = instance._marginRightUnit;var mBottom = instance._marginBottomInt;var mBottomUnit = instance._marginBottomUnit;var mLeft = instance._marginLeftInt;var mLeftUnit = instance._marginLeftUnit;var changeMargin = function() {var styling = {};var margin = instance._getCombo(mTop, mTopUnit);styling = {margin: margin.both};var ufa = ufaMargin.is(':checked');spacingData.margin.top.value = margin.input;spacingData.margin.top.unit = margin.selectBox;spacingData.margin.sameForAll = ufa;if (!ufa) {var extStyling = {};extStyling.marginTop = styling.margin;var right = instance._getCombo(mRight, mRightUnit);var bottom = instance._getCombo(mBottom, mBottomUnit);var left = instance._getCombo(mLeft, mLeftUnit);extStyling.marginRight = right.both;extStyling.marginBottom = bottom.both;extStyling.marginLeft = left.both;styling = extStyling;spacingData.margin.right.value = right.input;spacingData.margin.right.unit = right.selectBox;spacingData.margin.bottom.value = bottom.input;spacingData.margin.bottom.unit = bottom.selectBox;spacingData.margin.left.value = left.input;spacingData.margin.left.unit = left.selectBox;}portlet.css(styling);};mTop.unbind().blur(changeMargin);mRight.unbind().blur(changeMargin);mBottom.unbind().blur(changeMargin);mLeft.unbind().blur(changeMargin);mTop.unbind().keyup(changeMargin);mRight.unbind().keyup(changeMargin);mBottom.unbind().keyup(changeMargin);mLeft.unbind().keyup(changeMargin);mTopUnit.unbind().change(changeMargin);mRightUnit.unbind().change(changeMargin);mBottomUnit.unbind().change(changeMargin);mLeftUnit.unbind().change(changeMargin);ufaMargin.unbind().click(changeMargin);},_textStyles: function() {var instance = this;var portlet = instance._curPortlet;var fontFamily = instance._fontFamily;var fontBold = instance._fontWeight;var fontItalic = instance._fontStyle;var fontSize = instance._fontSize;var fontColor = instance._fontColor;var textAlign = instance._textAlign;var textDecoration = instance._textDecoration;var wordSpacing = instance._wordSpacing;var leading = instance._leading;var tracking = instance._tracking;var textData = instance._objData.textData;// Font familyfontFamily.unbind().change(function(){var fontFamily = this.options[this.selectedIndex].value;portlet.css('font-family', fontFamily);textData.fontFamily = fontFamily;});// Font stylefontBold.unbind().click(function(){var style = 'normal';if (this.checked){style = 'bold';}portlet.css('font-weight', style);textData.fontWeight = style;});fontItalic.unbind().click(function(){var style = 'normal';if (this.checked){style = 'italic';}portlet.css('font-style', style);textData.fontStyle = style;});// Font sizefontSize.unbind().change(function(){var fontSize = this.options[this.selectedIndex].value;portlet.css('font-size', fontSize);textData.fontSize = fontSize;});// Font colorvar setColor = function(obj){var color = obj.value;if (color != '') {portlet.css('color', color);textData.color = color;}};var colorPicker = new Liferay.ColorPicker({context: jQuery('#portlet-set-properties')[0],item: fontColor[0],onChange: function() {setColor(fontColor[0]);}});fontColor.unbind().blur(function() {setColor(this);});// Text alignmenttextAlign.unbind().change(function(){var textAlign = this.options[this.selectedIndex].value;portlet.css('text-align', textAlign);textData.textAlign = textAlign;});// Text decorationtextDecoration.unbind().change(function(){var decoration = this.options[this.selectedIndex].value;portlet.css('text-decoration', decoration);textData.textDecoration = decoration;});// Word spacingwordSpacing.unbind().change(function(){var spacing = this.options[this.selectedIndex].value;portlet.css('word-spacing', spacing);textData.wordSpacing = spacing;});// Line heightleading.unbind().change(function(){var leading = this.options[this.selectedIndex].value;portlet.css('line-height', leading);textData.lineHeight = leading;});// Letter spacingtracking.unbind().change(function(){var tracking = this.options[this.selectedIndex].value;portlet.css('letter-spacing', tracking);textData.letterSpacing = tracking;});}};