var Aristo = {
  Version: '0.0.1',
  require: function(libraryName) {
    if(libraryName.endsWith(".js")){
      try{
        // inserting via DOM fails in Safari 2.0, so brute force approach
        document.write('<script type="text/javascript" src="'+libraryName+'"><\/script>');
      } catch(e) {
        // for xhtml+xml served content, fall back to DOM methods
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = libraryName;
        document.getElementsByTagName('head')[0].appendChild(script);
      }

    } else {
      try{
        // inserting via DOM fails in Safari 2.0, so brute force approach
        document.write('<link href="'+libraryName+'" media="screen" rel="stylesheet" type="text/css"/>');
      } catch(e) {
        var script = document.createElement('link');
        script.href = libraryName;
        script.media = "screen";
        script.rel = "stylesheet";
        script.type = "text/css";
        document.getElementsByTagName('head')[0].appendChild(script);
      }
    }
  },

  load: function(){
    var js = /aristo\.js(\?.*)?$/;

    $$('head script[src]').findAll(function(s) {
      return s.src.match(js);
    }).each(function(s) {
      var path = s.src.replace(js, ''),
      includes = s.src.match(/\?.*load=([a-z,]*)/);
      
      (includes ? includes[1] : 'aristo.css,controls.js').split(',').each(
       function(include) { 
         Aristo.require(path+include);
       });
      
    });
  }
}

//document.observe("dom:loaded", function(){
  Aristo.load();
//});
