// Copyright (c) 2005 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.
//
// Loads rules/behaviours for any page using behaviour.js
// By Foxxyz/tivo

var Ruleset = {
	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("behaviour requires the Prototype JavaScript framework >= 1.5.0");
		}
		$A(document.getElementsByTagName("*")).findAll( function(s) {
			return (s.src && s.src.match(/behaviours\.js(\?.*)?$/))
		}).each( function(s) {
			var path = s.src.replace(/behaviours\.js(\?.*)?$/,'');
			var includes = s.src.match(/\?.*load=([a-z_,]*)/);
			(includes ? includes[1] : 'general').split(',').each(
			function(include) { 
				Ruleset.require(path+'rules/'+include+'.js');
			});
		});
	}
}

Ruleset.load();