var Boot = {
	_load_path: null,
	_required:  {},
	path: function ()
	{
		if (this._load_path == null)
		{
			var arr = document.getElementsByTagName( 'script' );
			for ( var i=0, n=arr.length; i < n; i++ )
			{
				if ( arr[i].src && arr[i].src.match(/site_boot\.js(\?.*)?$/) )
				{
					this._load_path = arr[i].src.replace(/site_boot\.js(\?.*)?$/,'');
				}
			}
		}
		return this._load_path;
	},
	require: function ( name )
	{
		if ( this._required[name] ) return;
		document.write('<script type="text/javascript" src="'+ this.path() + name +'"></script>');
		this._required[name] = true;
	}
}

// core prototype and scriptaculous libs
Boot.require( 'lib/core/prototype.js' );
Boot.require( 'lib/core/scriptaculous.js' );
Boot.require( 'lib/core/dragdrop.js' );
Boot.require( 'lib/core/effects.js' );
Boot.require( 'lib/core/builder.js' );
Boot.require( 'lib/core/validation.js' );

// helper functions for the site application
Boot.require( 'site_application.js' );
