/*
 * Help popup
 */ 
 
Help = Class.create();
Help.prototype = {

  target : null,
  contentArea : null,
  
  initialize : function() {
    this.target = $('help');
    this.contentArea = $('help_content');
    new Draggable('help');
  },


  center : function() {
    
    var size = getWindowSize(); 
    var scroll = getScrollXY();
    
    this.target.style.left = size[0] / 2 - this.target.getWidth() / 2 + scroll[0]; 
    this.target.style.top = size[1] / 2 - this.target.getWidth() / 2 + scroll[1];
  },

  display : function() {
    this.center();
    new Effect.Appear('help', {duration : 0.5});    
  },


  hide : function() {
    var self = this;
    new Effect.Fade('help', {
      duration : 0.5, 
      afterFinish : function() {self.clearContent()}
    });  
  },
  
  
  setContent : function(content) {
    this.contentArea.innerHTML = content;
  },
  
  
  clearContent : function() {
    this.setContent('');
  },
  
  
  readContent : function(id, display) {
  
    if (display) {
      var self = this;
      new Ajax.Updater(this.contentArea, 'help.php', {
        parameters : {id: id},
        onComplete : function() {self.display()}
      });
    }
    else {
      new Ajax.Updater(this.contentArea, 'help.php', {
        parameters : {id: id}
      });
    }

  },
  
  
  displayHelp: function(id) {
    this.readContent(id, true);
  }
  
};


function getWindowSize() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  
  return [ myWidth, myHeight ];
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}



