/**
 * @author Brian Sage
 * @projectDescription Requires jQuery JS library
 */
/*
Copyright 2009  Brian Sage  (email : brian at sagehome dot com)

All rights are reserved by the author. 

This program is NOT for redistribution, customization, nor modification.
If you have obtained this program for free, please contact the author. A
reward may be issued for information regarding piracy.

======================

WordPress-Mu is distributed under the GNU General Public License.

You should have received a copy of the GNU General Public License
along with your distribution of WordPress; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/




//Failsafe console object
if (typeof console == 'undefined') var console = {log:function(){}};

//Failsafe multiplus object
if (typeof multiplus == 'undefined') var multiplus = [];
if (typeof multiplus.plugins == 'undefined') multiplus.plugins = [];

//Multiplus Revisions Plugin
if (typeof multiplus.plugins.revisions == 'undefined') {


  multiplus.plugins.revisions = {
  
  
  
  
    init: function(){
      console.log('multiplus.plugins.revisions.init()');
      
      multiplus.plugins.revisions.bind();
    },
    
    
    
    
    list: function(data){
    //console.log("multiplus.plugins.revisions.list()\n\n");
    //console.log(data);
    },
    
    
    
    
    menu: {
      timer: false,
      off: function(){
        console.log('off');
        jQuery('.page_revisions_menu').hide();
      },
      on: function(menuObj){
        console.log('on');
        jQuery(menuObj).parent().children('.page_revisions_menu').show();
      },
      over: function(menuObj){
        console.log('over');
        clearTimeout(multiplus.plugins.revisions.menu.timer);
        if (menuObj) {
          multiplus.plugins.revisions.menu.on(menuObj);
        }
      },
      out: function(menuObj){
        console.log('out');
        multiplus.plugins.revisions.menu.timer = setTimeout(function(){
          multiplus.plugins.revisions.menu.off();
        }, 1000);
      }
    },
    
    
    
    
    bind: function(){
      //console.log('multiplus.plugins.revisions.bind()');
      
      jQuery('.page_revisions_button').unbind('mouseover').unbind('click').bind('click', function(){
        multiplus.plugins.revisions.menu.over(this);
      }).bind('mouseout', function(){
        multiplus.plugins.revisions.menu.out(this);
      }).bind('click', function(){
        return false;
      });
      
      jQuery('.page_revisions_menu').bind('mouseover', function(){
        multiplus.plugins.revisions.menu.over();
      }).bind('mouseout', function(){
        multiplus.plugins.revisions.menu.out();
      });
    },
    
    
    
    
    // CMS Plugin Hooked Functions
    
    _onsubmit: function(data){
      console.log('multiplus.plugins.revisions._onsubmit()');
      drdata = {};
      for (dataObject in data) {
        
        // only Dr _onsubmit parameters
        if (dataObject == '_onsubmit') {
          drdata[dataObject] = {};
          for (datum in data[dataObject]) {
            
            //keep only the fields that are wanted
            switch (datum) {
              case 'content':
              case 'autosavenonce':
              case 'catslist':
              case 'post_ID':
              case 'post_author':
              case 'post_name':
              case 'post_title':
              case 'post_type':
              case 'user_ID':
                drdata[dataObject][datum] = data[dataObject][datum];
                break;
              default:
                break;
            }
            
          }
          // Dr a few specific parameters
          drdata[dataObject].autosave = '1';
          drdata[dataObject].action = 'autosave';
        } else {
          drdata[dataObject] = data[dataObject];
        }
        
      }
      return drdata;
    },




    _onsubmit_ajax_url: function(data){
      console.log('multiplus.plugins.revisions._onsubmit_ajax_url()');
      drdata = {};
      for(dataObject in data){
        console.log('  dataObject = '+dataObject);

        // only Dr _onsubmit_ajax_url parameters
        if (dataObject == '_onsubmit_ajax_url') {
          drdata[dataObject] = {};
          drdata[dataObject]._onsubmit_ajax_url = '/wp-admin/admin-ajax.php';
        }
        else {
          drdata[dataObject] = data[dataObject];
        }
        
      }
      return drdata;
    }
    
    
    
    
  }
  
  
  jQuery(function(){
    multiplus.plugins.revisions.init();
  });
}