var Init = {
  	require: function(libraryName) {
    	// inserting via DOM fails in Safari 2.0, so brute force approach
    	document.write('<script type="text/javascript" src="' + libraryName + '"></script>');
  	},
  
  	REQUIRED_PROTOTYPE: '1.5.0',
  
  	load: function() {
    	function convertVersionString(versionString) {
      		var r = versionString.split('.');
      		return parseInt(r[0]) * 100000 + parseInt(r[1]) * 1000 + parseInt(r[2]);
    	}
 
    	if (	(typeof Prototype=='undefined') || 
       		(typeof Element == 'undefined') || 
       		(typeof Element.Methods=='undefined') ||
       		(convertVersionString(Prototype.Version) < 
        	convertVersionString(Init.REQUIRED_PROTOTYPE))) {
       			throw("JSEngine requires the Prototype JavaScript framework >= " +
        		Init.REQUIRED_PROTOTYPE);
        }
    
    	$A(document.getElementsByTagName("script")).findAll( function(s) {
      		return (s.src && s.src.match(/init\.js(\?.*)?$/))
    	}).each( function(s) {
      		var path = s.src.replace(/init\.js(\?.*)?$/,'');
      		var includes = s.src.match(/\?.*load=([a-z,]*)/);
      		// just add library names as array item
			var libs = [
				'effects',
				'shared'
			];
      		
      		libs.each(function(include) { 
      			Init.require(path+include+'.js');
      		});
    	});
  	}
}

Init.load();