var activeBox = null;
function activate(trigger){
	if(activeBox != trigger){
		if(activeBox != null){
			if(activeBox.hide){
				activeBox.hide();
			}else{
				Element.hide(activeBox);
			}
		}
		activeBox = trigger;		
	}
}
var firstClick = true;
Event.observe(document, 'click', clickHandler, false);
function clickHandler(event) {	
	if(firstClick){
		activate(null);
	} 
	firstClick = true;
}
var Importer = {
  path: '',
  require: function(libraryName) {
    // inserting via DOM fails in Safari 2.0, so brute force approach
    document.write('<script type="text/javascript" src="'+libraryName+'"></script>');
  },
  load: function() {
    if((typeof Prototype=='undefined') || 
       (typeof Element == 'undefined') || 
       (typeof Element.Methods=='undefined') ||
       parseFloat(Prototype.Version.split(".")[0] + "." +
                  Prototype.Version.split(".")[1]) < 1.5)
       throw("script.aculo.us requires the Prototype JavaScript framework >= 1.5.0");
    var match =null;
    $A(document.getElementsByTagName("script")).findAll( function(s) {

      return (s.src && s.src.match(/importer\.js(\?.*)?$/))
    }).each( function(s) {
      var path = s.src.replace(/importer\.js(\?.*)?$/,'');
      Importer.path =path;
      var mod = s.src.match(/\?.*mod=([\d]*)/);
      var includeFiles = 'scriptaculous/builder,scriptaculous/effects,scriptaculous/dragdrop,scriptaculous/controls,scriptaculous/slider,de/producto/core/HashMap,de/producto/core/KeyListener,de/producto/gui/LimitedTextarea,de/producto/gui/DropDownBox,de/producto/gui/InfoBox,de/producto/gui/ListSelector,de/producto/gui/DatasheetSearch';
      if(mod){
	      switch(mod[1]){
	      	case '1': includeFiles = 'scriptaculous/builder,scriptaculous/effects,scriptaculous/dragdrop,scriptaculous/controls,scriptaculous/slider'; break;
	      	case '2': includeFiles = 'scriptaculous/effects,de/producto/core/HashMap,de/producto/core/KeyListener,de/producto/gui/LimitedTextarea,de/producto/gui/ListSelector,de/producto/gui/DropDownBox,de/producto/gui/DatasheetSearch,de/producto/gui/InfoBox'; break;
	      }
      }
      var includes = s.src.match(/\?.*load=([a-z,]*)/);
      (includes ? includes[2] : includeFiles).split(',').each(
       function(include) { Importer.require(path+include+'.js') });
    });
  }
}
Importer.load();
