// script.aculo.us scriptaculous.js v1.7.0, Fri Jan 19 19:16:36 CET 2007

// Copyright (c) 2005, 2006 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
// 
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
// 
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// For details, see the script.aculo.us web site: http://script.aculo.us/

var Scriptaculous = {
  Version: '1.7.0',
  
	// Start with the element "el" and recursively descend the DOM  
	// looking for the scriptaculous.js script element. 
	// 
	// This method is used because getElementsByTagName() doesn't 
	// work twice in Firefox in the head element during load. 
	// So if a a developer tries to clone this script for their own 
	// scripts then things will break in the second use of this type 
	// of loader. 
	search: function(el, name) {
	  if (el.src && el.src.match(new RegExp(name + "\\.js(\\?.*)?$"))) { 
	    return el; 
	  } 
	
	  var kids = el.childNodes, 
	      s; // holds the scriptaculous script element if found 
	
	  for (var i=0; i<kids.length; i++) { 
	    if (s = this.search(kids[i], name)) { // yes just one equals sign 
	      return s; 
	    } 
	  } 
	}, 
	 
	// I think this property should be deleted and this document.write 
	// just inlined where needed. There may be some backwards compatibility problems however. 
	require: function(lib) { 
	  // inserting via DOM fails in Safari 2.0, so use alternate approach 
	  document.write('<script type="text/javascript" src="'+lib+'"></script>'); 
	}, 
	 
	load: function() { 
	  // I think this if block should be removed and the developer should just 
	  // know what version of Prototype is required. If there is a problem 
	  // then there will be errors during development when trying to use 
	  // parts of Scriptaculous. 
	  if (typeof Prototype === 'undefined' &&  
	      typeof Element === 'undefined' &&  
	      typeof Element.Methods === 'undefined' && 
	      parseFloat(Prototype.Version.match(/\d+\.\d+/)) < 1.5) { 
	    throw("script.aculo.us requires the Prototype JavaScript framework >= 1.5.0"); 
	  } 
	
	  var s = this.search(document, 'scriptaculous'), // holds the scriptaculous script element 
	      path = s.src.replace(/scriptaculous\.js(\?.*)?$/, ''), 
	      includes = s.src.match(/\?.*load=([a-z,]*)/);  

	  // include the files specified in the scriptaculous script element src attribute 
	  // or all the scriptaculous element 
	  includes = (includes ? includes[1] : 'builder,effects,dragdrop,controls,slider').split(','); 
	
	  for (var i=0; i<includes.length; i++) { 
	    this.require(path + includes[i] + '.js'); 
	    //document.write('<script type="text/javascript" src="' + path + includes[i] + '.js"></script>'); 
	  } 
	} 
}; 

//Scriptaculous.load();
