/*****************************************************
*
* JsKit loader
* #author    : AnyRock
* #email     : jiang.edwon@gmail.com
* #homepage  : http://www.mending.cn
* #copyright : Copyright(c)jskit.org,All right reserved
*
******************************************************/
function JskitLoad(){}
JskitLoad.prototype = {
	loadedFiles : new Array(),
	defaultKey  : "/JskitLoad.js",
	totalFils   : 0,
	loadTimer   : null,
	__checkStatus : function(){
		var _info = "["+jskitLoad.loadedFiles.length+"/"+jskitLoad.totalFils+"]";
		if(jskitLoad.loadedFiles.length>=jskitLoad.totalFils){
			_info += "Finished!";
			window.clearInterval(jskitLoad.loadTimer);
		}else{
			_info += jskitLoad.loadedFiles[jskitLoad.loadedFiles.length-1]+"ok";
		}
		window.status = _info;
	},
	check : function(){
		var _str = "";
		for(var i=0;i<this.loadedFiles.length;i++){
			_str += "\n"+this.loadedFiles[i];
		}
		alert(_str);
	},
	path : function(rKey) {
		if(typeof(rKey)!="string"){rKey = this.defaultKey;}
		var _path = "";
		var elements = document.getElementsByTagName("script");
		var len = elements.length;
		//get base url from the 'src' attribute of the script tags
		for (var i=0; i<len; i=i+1) {
			if (typeof(elements[i].src)!="undefined" && elements[i].src.toLowerCase().indexOf(rKey.toLowerCase()) != -1) {
				var src = elements[i].src;
				_path = src.substring(0, src.lastIndexOf('/')+1);
				break;
			}
		}
		//get current broswer fullpath without parms
		var _fullPath = document.location.href;
		if (_fullPath.indexOf('?')!==-1)
			_fullPath = _fullPath.substring(0, _fullPath.indexOf('?'));
		_fullPath = _fullPath.substring(0, _fullPath.lastIndexOf('/'));
		//special url with '://' or '/'
		if (_path.indexOf('://') == -1 && _path.indexOf('/')!=0) {
			var _tail = _path;
			while(_tail.indexOf("../")!=-1){
				_fullPath = _fullPath.substring(0, _fullPath.lastIndexOf('/'));
				_tail = _tail.replace("../","");
			}
			_tail = _tail.replace("./","");
			_path = _fullPath+"/"+_tail;
		}
		return _path;
	},
	loadScript : function(rUrl,rKey) {
		for (var i=0; i<this.loadedFiles.length;i=i+1) {
			if (this.loadedFiles[i] == rUrl){return;}
		}
		var _base = this.path(rKey);
		var _tags = "<script language=\"javascript\" type=\"text/javascript\" src=\""+ _base+rUrl + "\"></script>";
		document.write(_tags);
		this.loadedFiles[this.loadedFiles.length] = _tags;
	},
	loadCss : function(rUrl,rKey) {
		for (var i=0; i<this.loadedFiles.length; i=i+1) {
			if (this.loadedFiles[i] == rUrl){return;}
		}
		var _base = this.path(rKey);
		var _tags = "<link href=\"" + _base+rUrl + "\" rel=\"stylesheet\" type=\"text/css\" />";
		document.write(_tags);
		this.loadedFiles[this.loadedFiles.length] = _tags;
	}
	
}//prototpye end
var jskitLoad = new JskitLoad();
//jskitLoad.totalFils = 10;
//jskitLoad.loadTimer = window.setInterval("jskitLoad.__checkStatus()",100);
//#BEGIN  ==================================================================
// !!! the jskit Base
jskitLoad.loadScript("base/JskitBase.js");
jskitLoad.loadScript("base/JskitUtil.js");
jskitLoad.loadScript("base/JskitXml.js");
jskitLoad.loadScript("base/JskitEvents.js");
jskitLoad.loadScript("base/JskitData.js");
jskitLoad.loadScript("base/JskitDataSet.js");
jskitLoad.loadScript("base/JskitLog.js");
jskitLoad.loadCss("base/style.css");
// !!! important files
jskitLoad.loadScript("page/JskitDynamic.js")
//#END =====================================================================

//#BEGIN  ==================================================================
// for script debug & web design
jskitLoad.loadScript("page/JskitContextMenu.js");
//jskitLoad.loadScript("page/JskitValidation.js");

//#Begin Jskit documents //////////////////////////////////////////////
if(window.location.href.toLowerCase().indexOf("/doc/")!=-1){
	jskitLoad.loadScript("page/JskitTree.js");
	jskitLoad.loadScript("page/JskitToolbar.js");
	jskitLoad.loadScript("page/JskitSpirit.js");
	jskitLoad.loadScript("plugin/syntax/JskitSyntax.js");
	jskitLoad.loadScript("doc/JskitDocument.js");
}
if(window.location.href.toLowerCase().indexOf("/doc/reference")!=-1){
	jskitLoad.loadScript("page/JskitTree.js");
	jskitLoad.loadScript("page/JskitToolbar.js");
	jskitLoad.loadScript("page/JskitSpirit.js");
	jskitLoad.loadScript("page/JskitTable.js");
}
//#End Jskit documents ////////////////////////////////////////////////

//#END =====================================================================
