Liferay.Notice = new Class({
/* Options:
closeText: (String) the text to use for the "close" button. Set to false to not have a close button
content: (String) the HTML or text to insert into.
toggleText: (Object) the text to use for the "hide" and "show" button. Set to false to not have a hide button
noticeClass: (String) class to add to the notice toolbar.
onClose: (fn) a callback to execute when the toolbar is closed
type: (String) either 'notice' or 'warning', depending on the type of the toolbar. Defaults to notice.
*/
initialize: function(params) {
var instance = this;
params = params || {};
instance._noticeType = params.type || 'notice';
instance._noticeClass = 'popup-alert-notice';
instance._useCloseButton = true;
instance._onClose = params.onClose;
if (params.closeText !== false) {
instance._closeText = params.closeText || Liferay.Language.get('close');
} 
else {
instance._useCloseButton = false;
instance._closeText = '';
}
instance._useToggleButton = false;
instance._hideText = '';
instance._showText = '';
if (params.toggleText !== false) {
params.toggleText = jQuery.extend(
{
hide: null, 
show: null
}, 
params.toggleText);
instance._hideText = params.toggleText.hide || Liferay.Language.get('hide');
instance._showText = params.toggleText.show || Liferay.Language.get('show');
instance._useToggleButton = true;
} 
if (instance._noticeType == 'warning') {
instance._noticeClass = 'popup-alert-warning';
}
if (params.noticeClass) {
instance._noticeClass += ' ' + params.noticeClass;
}
instance._content = params.content || '';
instance._createHTML();
return instance._notice;
},
_createHTML: function() {
var instance = this;
var notice = jQuery('<div class="' + instance._noticeClass + '"><div class="popup-alert-content"></div></div>');
notice.html(instance._content);
if (instance._useToggleButton) {
var toggleButton = jQuery('<a class="toggle-button" href="javascript:;"><span>' + instance._hideText + '</span></a>');
var toggleSpan = toggleButton.find('span');
var height = 0;
toggleButton.toggle(
function() {
notice.slideUp();
toggleSpan.text(instance._showText);
},
function() {
notice.slideDown();
toggleSpan.text(instance._hideText);
}
);
notice.append(toggleButton);
}
if (instance._useCloseButton) {
var html = '<input class="submit popup-alert-close" type="submit" value="' + instance._closeText + '" />';
notice.append(html);
var closeButton = notice.find('.popup-alert-close');
closeButton.click(
function() {
notice.slideUp('normal', 
function() {
notice.remove();
}
);
if (instance._onClose) {
instance._onClose();
}
}
);
}
notice.appendTo('body');
instance._notice = notice;
}
});