/*!
 
  Flash message widget for Musopen
 
  Copyright (c) 2011, Musopen (http://musopen.org)
  
  Requires  : jQuery v1.3.2 or later
  Author  : f0t0n
  
 */var FlashMessageType={MSG:'msg',ERR:'error'};var FlashMessageIcon={SUCCESS:'f0-flash-message-success0',WARNING:'f0-flash-message-warning0',ERROR:'f0-flash-message-error0'};function FlashMessage(cssClass,message,progressBarCssClass){this.cssClass=cssClass===undefined?FlashMessageType.MSG:cssClass;this.message=message===undefined?'':message;this.id='flashMsg_'+new Date().getTime();this.containerID=this.id+'_container';this.html='<div id="'+this.containerID+'" \
    style="display: none; width: 100%; z-index: 9999;\
      position: fixed; left: 0; top: 0;" \
      class="zz-fm-container">\
   <div id="'+this.id+'" style="\
    overflow: hidden;\
    border-top: none;\
    width: 618px;\
    margin: 0 auto;\
    border-radius: 0px 0px 5px 5px;\
    -moz-border-radius: 0px 0px 5px 5px;\
    -webkit-border-radius: 0px 0px 5px 5px;"\
    class="zz-fm-element '+this.cssClass+'">'+this.message
+'</div>\
  </div>';this.progressBarCssClass=progressBarCssClass===undefined?'f0-flash-message-progress default':progressBarCssClass;this.progressBar='<div class="'+this.progressBarCssClass+'"></div>';this.body=$('body');this.body.prepend(this.html);this.container=$('#'+this.containerID);this.element=$('#'+this.id);this.icon=null;return this;}FlashMessage.prototype.setToShowProgress=function(){return this.setMessage(this.progressBar);};FlashMessage.prototype.destroy=function(){this.container.remove();return this;};FlashMessage.prototype.addClass=function(cssClass){this.element.addClass(cssClass);return this;};FlashMessage.prototype.removeClass=function(cssClass){this.element.removeClass(cssClass);return this;};FlashMessage.prototype.setClass=function(cssClass){this.element.attr('class',cssClass);return this;};FlashMessage.prototype.setMessage=function(message){this.message=message;this.element.html(this.message);if(this.icon!==null)this.setIcon(this.icon);return this;};FlashMessage.prototype.setIconSuccess=function(){return this.setIcon(FlashMessageIcon.SUCCESS);};FlashMessage.prototype.setIconWarning=function(){return this.setIcon(FlashMessageIcon.WARNING);};FlashMessage.prototype.setIconError=function(){return this.setIcon(FlashMessageIcon.ERROR);};FlashMessage.prototype.removeIcon=function(){$('#f0-flashmessage-icon'+this.id).remove();this.icon=null;return this;};FlashMessage.prototype.setIcon=function(flashMessageIcon){if(flashMessageIcon===null||flashMessageIcon===undefined)return this;this.removeIcon().element.append('<div id="f0-flashmessage-icon'+this.id+'" class="f0-flash-message-icon '+flashMessageIcon+'"></div>');this.icon=flashMessageIcon;return this;};FlashMessage.prototype.show=function(callback){if(this.container.is(':visible')){var self=this;this.hide(function(){self._show(callback);});}else
this._show(callback);return this;};FlashMessage.prototype._show=function(callback){var self=this;var h=self.container.height()+'px';self.container.css('top','-'+h).show('fast',function(){self.container.animate({top:'0px'},'slow','swing',callback===undefined?function(){}:callback);});};FlashMessage.prototype.autoHide=function(timeout,callback){var self=this;window.setTimeout(function(){self.hide(function(){self.removeClass(FlashMessageType.ERR).removeIcon();});},timeout);return this;};FlashMessage.prototype.hide=function(callback){var container=this.container;var h=container.height();container.animate({top:'-'+h+'px'},'slow','swing',function(){container.hide('fast',callback===undefined?function(){}:callback);});return this;};
