123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- /*
- Script: Builder.js
- Automatically includes MooTools files right from the project folder.
- License:
- MIT-style license.
- Note:
- If you use this script in your own page, you must be out of your mind.
- */
- var Builder = {
- root: '../',
- paths: {
- source: 'Source',
- docs: 'Source'
- },
- included: {
- source: {},
- docs: {}
- },
- scripts: {
- source: {
- 'Core' : ['Mif.Tree', 'Mif.Tree.Node', 'Mif.Tree.Hover', 'Mif.Tree.Selection', 'Mif.Tree.Load', 'Mif.Tree.Draw'],
- 'More' : ['Mif.Tree.KeyNav', 'Mif.Tree.Sort', 'Mif.Tree.Transform', 'Mif.Tree.Drag', 'Mif.Tree.Drag.Element', 'Mif.Tree.Checkbox', 'Mif.Tree.Rename', 'Mif.Tree.CookieStorage']
- },
- docs: {
- 'Core' : ['Mif.Tree', 'Mif.Tree.Node', 'Mif.Tree.Hover', 'Mif.Tree.Selection', 'Mif.Tree.Load', 'Mif.Tree.Draw'],
- 'More' : ['Mif.Tree.KeyNav', 'Mif.Tree.Sort', 'Mif.Tree.Transform', 'Mif.Tree.Drag', 'Mif.Tree.Checkbox', 'Mif.Tree.Rename', 'Mif.Tree.CookieStorage']
- }
- },
- initialize: function(root){
- if (root) this.root = root;
- this.includeType('source');
- return this;
- },
- getFolder: function(type, file){
- var scripts = this.scripts[type];
- for (var folder in scripts){
- for (var i = 0; i < scripts[folder].length; i++){
- var script = scripts[folder][i];
- if (script == file) return folder;
- }
- }
- return false;
- },
- getRequest: function(){
- var pairs = window.location.search.substring(1).split('&');
- var obj = {};
- for (var i = 0, l = pairs.length; i < l; i++){
- var pair = pairs[i].split('=');
- obj[pair[0]] = pair[1];
- }
- return obj;
- },
- includeFile: function(type, folder, file){
- folder = folder || this.getFolder(type, file);
- if (!folder) return false;
- this.included[type][folder] = this.included[type][folder] || [];
- var files = this.included[type][folder];
- for (var i = 0; i < files.length; i++){
- if (files[i] == file) return false;
- }
- this.included[type][folder].push(file);
- return document.writeln('\t<script type="text/javascript" src="' + this.root + this.paths[type] + '/' + folder + '/' + file + '.js"></script>');
- },
- includeFolder: function(type, folder){
- var scripts = this.scripts[type][folder];
- for (var i = 0, l = scripts.length; i < l; i++) this.includeFile(type, folder, scripts[i]);
- },
- includeType: function(type){
- for (var folder in this.scripts[type]) this.includeFolder(type, folder);
- },
- includeRequest: function(type){
- var req = this.getRequest();
- if (!req.files && !req.folders) return false;
- var files = (req.files) ? req.files.split('+') : [];
- var folders = (req.folders) ? req.folders.split('+') : [];
- for (var j = 0; j < files.length; j++) this.includeFile(type, null, files[j]);
- for (var i = 0; i < folders.length; i++) this.includeFolder(type, folders[i]);
- return true;
- }
- };
|