
var _MLAI_ = {};
_MLAI_.seLoadScript = {

	scriptList:[],
	timeInterval:100,
	scriptCount:0,
	maxLoadCount:10,
	loadCount:0,
	loadDone:false,
	loadQuit:true,
	timeID:-1,
	debug: false,
	
	addScript: function (url, timeInt, sIdPrefix, sID, extraParam) {
		if (timeInt == undefined || timeInt == null) timeInt = _MLAI_.seLoadScript.timeInterval;
		var scriptID = "";
		_MLAI_.seLoadScript.scriptCount++;
		if (sID == undefined || sID == null) {
			scriptID = sIdPrefix + _MLAI_.seLoadScript.scriptCount;
		} else
		{
			scriptID = sIdPrefix + sID;
		}
		
		_MLAI_.seLoadScript.scriptList.push( {"url":url, 
										 "sid":scriptID, 
										 "tint":timeInt, 
										 "extra":extraParam
										 });
	},
	
	begin: function(){
	
		_MLAI_.seLoadScript.loadDone = false;
		_MLAI_.seLoadScript.loadCount = 0;
		_MLAI_.seLoadScript.loadQuit = false;
		
		_MLAI_.seLoadScript.timeID = -1;
		_MLAI_.seLoadScript.loadingData();
	},
	
	clear: function(){
		// clear out the array
		_MLAI_.seLoadScript.scriptList = [];
		_MLAI_.seLoadScript.scriptCount = 0;
		_MLAI_.seLoadScript.loadQuit = true;
	},
	
	loadingData: function(){
	
		if (_MLAI_.seLoadScript.scriptList.length <= 0) return;
		var tempObj = _MLAI_.seLoadScript.scriptList.shift();
		var url = tempObj.url;
		var sid = tempObj.sid;
		var tint = tempObj.tint;
		var extra = (tempObj.extra == undefined)?null:tempObj.extra;
	
		_MLAI_.seLoadScript.loadDone = false;
		_MLAI_.seLoadScript.loadCount = 0;
		_MLAI_.seLoadScript.loadJSLibrary(url, null, sid);
	
		setTimeout(function(){
						_MLAI_.seLoadScript.timeID = setInterval("_MLAI_.seLoadScript.checkLoad('"+sid+"','" + extra +"')", tint);
		
					}, 10);
	},
	
	checkLoad: function (sID, extra) {
		if (_MLAI_.seLoadScript.loadQuit) return;
		if (_MLAI_.seLoadScript.loadDone)
		{
			// now load new data
			clearInterval(_MLAI_.seLoadScript.timeID);

			_MLAI_.seLoadScript.callbackFunc(sID, extra);
			_MLAI_.seLoadScript.loadingData();
		} else
		{
			_MLAI_.seLoadScript.loadCount++;
			if (_MLAI_.seLoadScript.loadCount > _MLAI_.seLoadScript.maxLoadCount)
			{
				clearInterval(_MLAI_.seLoadScript.timeID);
				_MLAI_.seLoadScript.callbackFunc(sID, "FAIL TO LOAD");
				// load next one.
				_MLAI_.seLoadScript.loadingData();
			}	
			// else continue
		}
	},
	
	setLoadDone: function(){
		_MLAI_.seLoadScript.loadDone = true;
	},
	
	loadJSLibrary: function (aUrl, aTag, aSId)
	{	
		var headObj = {};
		if (aTag == null || aTag == "")
		{
			headObj = document.getElementsByTagName("head")[0];
		} else
		{
			headObj = document.getElementById(aTag);
		}
	
		if (aUrl.indexOf(".css") >= 0)
		{
			var node = document.createElement("link");
			if (node.addEventListener)
				node.addEventListener("load", function() { _MLAI_.seLoadScript.setLoadDone(); }, false);
			else
				node.onreadystatechange = function() {
				if (this.readyState == "complete" || this.readyState == "loaded") _MLAI_.seLoadScript.setLoadDone();
			}
			node.setAttribute("rel", "stylesheet");
			node.setAttribute("type", "text/css");
			node.setAttribute("href", aUrl);
			node.setAttribute("id", aSId);
		
		} else
		{
			var node = document.createElement("script");
			if (node.addEventListener)
				node.addEventListener("load", function() { _MLAI_.seLoadScript.setLoadDone(); }, false);
			else
				node.onreadystatechange = function() {
				if (this.readyState == "complete" || this.readyState == "loaded") _MLAI_.seLoadScript.setLoadDone();
			}
			node.src = aUrl;
			node.id = aSId;
		}
		
		headObj.appendChild(node);
	
	},
	
	callbackFunc:function(sID){
		if (_MLAI_.seLoadScript.debug)
		{
			alert("script ID: " + sID + " Src: " + document.getElementById(sID).src);
		}
	}
};

// now calling
_MLAI_.seLoadScript.clear();

/*  Load CSS */
_MLAI_.seLoadScript.addScript("../css/main.css", 10, "mlai_css_", 0, " ");

/* Load JS */
_MLAI_.s_index = 1;

//                             Script Name, minimum Wait time, script ID prefix, script #, extra parameters
_MLAI_.seLoadScript.addScript("s1.js",  10, "mlai_js_", _MLAI_.s_index++, " ");
_MLAI_.seLoadScript.addScript("s2.js",  10, "mlai_js_", _MLAI_.s_index++, " ");
_MLAI_.seLoadScript.addScript("s3.js",  10, "mlai_js_", _MLAI_.s_index++, " ");


// begin loading
_MLAI_.seLoadScript.begin();

