var RumbleUI = Class.create();
RumbleUI = {
  Version: '1.0.0',
  REQUIRED_SCRIPTACULOUS: '1.8.0',

  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() {
  
    function convertVersionString(versionString){
      var r = versionString.split('.');
      return parseInt(r[0]) * 100000 + parseInt(r[1]) * 1000 + parseInt(r[2]);
    }

    if((typeof Scriptaculous=="undefined") || 
       (typeof Effect == "undefined") || 
       (convertVersionString(Scriptaculous.Version) < 
        convertVersionString(RumbleUI.REQUIRED_SCRIPTACULOUS)))
       throw("RumbleUI requires the script.aculo.us framework >= " +
        RumbleUI.REQUIRED_SCRIPTACULOUS);   
    
    $$("script[src]").findAll( function(s) {
      return (s.src && s.src.match(/rumble\.js(\?.*)?$/))
    }).each( function(s) {
      var path = s.src.replace(/rumble\.js(\?.*)?$/,'');
      var includes = s.src.match(/\?.*load=([a-z\/,]*)/);
      (includes ? includes[1] : "error,extend,ui/page/basic,ui/page/main,ui/page/box,ui/page/thebox,ui/page/dragdrop,ui/form/basic,ui/form/main,ui/form/datetime,ui/form/richtext,ui/embed").split(",").each(
       function(include) { RumbleUI.require(path + include + ".js") });
    });
  }
}
RumbleUI.load();
