/*********************************************
 * Extensions to js core for old browsers
 *********************************************/
if (typeof Array.prototype.push == 'undefined') {
  Array.prototype.push = ArrayPush;
  function ArrayPush(element) { this[this.length] = element; }
}
if(typeof Array.prototype.pop == 'undefined') {
  Array.prototype.pop = ArrayPop;
  function ArrayPop() {
    var last = this[ this.length - 1 ];
    this.length--;
    return last;
  }
}

/*************************
 * Prototype extensions
 *************************/
 
/**
 * Event#onDOMReady
 * Created by Dean Edwards, implemeted for Prototype by Dan Webb
 * Functions passed to Event#onDOMReady fires as soon as the DOM is ready
 */
Object.extend(Event, {
  _domReady : function() {
    if (arguments.callee.done) { return; }
    arguments.callee.done = true;

    if (this._timer) { clearInterval(this._timer); }
    
    this._readyCallbacks.each(function(f) { f() });
    this._readyCallbacks = null;
  },
  onDOMReady : function(f) {
    if (!this._readyCallbacks) {
      var domReady = this._domReady.bind(this);
      
      if (document.addEventListener) {
        document.addEventListener("DOMContentLoaded", domReady, false);
      }
        
      /*@cc_on @*/
      /*@if (@_win32)
          document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
          document.getElementById("__ie_onload").onreadystatechange = function() {
              if (this.readyState == "complete") domReady(); 
          };
      /*@end @*/
    
      if (/WebKit/i.test(navigator.userAgent)) { 
        this._timer = setInterval(function() {
          if (/loaded|complete/.test(document.readyState)) { domReady(); }
        }, 10);
      }
        
      Event.observe(window, 'load', domReady);
      Event._readyCallbacks =  [];
    }
    Event._readyCallbacks.push(f);
  }
});


Object.extend(Array.prototype, {
  maxHeight: function() {
    var h_max=0;
    var height_rule = (!navigator.appVersion.match(/\bMSIE\b/)) ? 'min-height' : 'height';
    this.each(function(node){
		  h = parseInt(node.getStyle('height') || node.clientHeight);
      if (h > h_max) { h_max=h; }
    });
    this.invoke('setStyle',{height_rule:h_max+'px'});
    return this;
  }
});

Event.onDOMReady(function(){
  myLightbox = new Lightbox();
})