//$.fn.msgDialog('show')
//$.fn.msgDialog('hide')
//$.fn.msgDialog('show', 'ahoj',{mode: 1,timeout: 0,modal: true, buttons: [{action: 'hide',label:'zavřít',callback: ''},{}]})
//mode 1 ok info
//mode 2 ko info
//mode 3 info neutral
//CSS
// .msgDialog
// {
//    position: absolute;
//    top: -100px;
//    width: 600px;
//    height: 60px;
//    display: block;
//    border: 1px solid #333;
//    border-top: 0;
// }
// 
// .md-ok
// {
//    background-color: #ABD953;
//    color: #ffffff;
// }
// 
// .md-ko
// {
//    background-color: red;
//    color: #ffffff;
// }
// 
// .md-text
// {
//    font-size: 15px;
//    padding: 0 10px 0 10px;
// }



jQuery.fn.msgDialog = function(action,value,options) {
  
      var basic_elm = this.children(':first');
      
      
      if ($('.msgDialog').length == 0)
      {
         if (basic_elm.length == 0)
         {
         basic_elm = $('body').children(':first');
         basic_elm.prepend($('<div class="msgDialog"><div class="md-content"><table><tr><td class="md-text"><td><td class="md-buttons"></td></tr></table></div><div class="md-left"></div><div class="md-center"></div><div class="md-right"></div><div style="clear: both;"></div></div>'));
         }
         else
         {
         basic_elm.prepend($('<div class="msgDialog"><div class="md-content"><table><tr><td class="md-text"><td><td class="md-buttons"></td></tr></table></div><div class="md-left"></div><div class="md-center"></div><div class="md-right"></div><div style="clear: both;"></div></div>'));
         }
      }
  return $('.msgDialog').each(function(index, elm){
    msgDialog_rutine(action,value,options,elm);
  });
};



function msgDialog_rutine(action,value,options,element) {
  
  
   var opts = $.extend({}, $.fn.msgDialog.defaults, options);

   var elm = $(element);
   //horizontal center
   var width = parseInt((elm.css('width')).substr(0,elm.css('width').length-2));
   var height = parseInt((elm.css('height')).substr(0,$(element).css('height').length-2))
   elm.css('left',($(window).width() - width)/2);
   if (action != 'hide')
   {
   elm.removeClass('md-ok');
   elm.removeClass('md-ko');
   elm.removeClass('md-ne');
   }
  //change by options mode  
  switch(opts.mode)
  {
      case 1:
         elm.addClass('md-ok');
         
         $('.md-text',elm).css('height',height-15);
         $('.md-center',elm).css('width',width-20);
         $('.md-text',elm).html(value);
      break;
      case 2:
         elm.addClass('md-ko');
         $('.md-text',elm).css('height',height-15);
         $('.md-center',elm).css('width',width-20);
         $('.md-text',elm).html(value);
      break;
      case 3:
         elm.addClass('md-ne');
         $('.md-text',elm).css('height',height-15);
         $('.md-center',elm).css('width',width-20);
         $('.md-text',elm).html(value);
      break;
      
  }

  
  switch(action)
  {
      case 'show':
         if (opts.modal)
         {
            if ($('.md-mask').length == 0)
            $('body').prepend('<div class="md-mask"></div>');
            $('.md-mask').css({'width':$(document).width(),'height':$(document).height()});
            $('.md-mask').fadeTo("slow",0.8);   
         }
         
         //hide all buttons
         $('.md-buttons',elm).html('');
         
         if ((typeof(opts.buttons)!='undefined')&&(opts.buttons.length > 0))
         {
            $.each(opts.buttons,function(i,obj){
               if (typeof(obj.action) != 'undefined')
               {
               var call_back ='';

               if (typeof(obj.callback) != 'undefined')
               call_back = obj.callback; 
               
               switch(obj.action)
               {
                  default:
                  case 'hide':
                     $('.md-buttons',elm).append('<input type="button" onclick="$.fn.msgDialog(\'hide\'); '+call_back+'" class="md-button" value="'+obj.label+'" />')
                  break;
               }
               }
            });
         }
         
         
         elm.show();
         elm.css('top',($(window).scrollTop()-height)); 
         
         elm.animate({top:$(window).scrollTop()+'px'},opts.speed,null,function(){
            //timeout
            if (opts.timeout > 0)
            {
               var t=setTimeout(function(){elm.msgDialog('hide')},opts.timeout*1000);
            }
         });
      break;
      case 'hide':
      {
         
         elm.animate({top:($(window).scrollTop()-height)+'px'},opts.speed,null,function(){$(this).hide()});
         $('.md-mask').fadeTo("slow",0);
      }
      break;
  }
  
  
};

$.fn.msgDialog.defaults = {
   action: 'show',
   mode: 1,
   spedd: 400
  };



jQuery.log = function(message) {
  if(window.console) {
     console.debug(message);
  } else {
     alert(message);
  }
};



