/*
建立日期:2010/5
修改日期:2010/8
COPYRIGHT © Colin
colin1124x@gmail.com

說明
 - 核心物件
*/
(function(){
	var scripts = document.getElementsByTagName('script');
	var scriptSelf = scripts[scripts.length-1];
	var jsPath = scriptSelf.src.replace(/\/colin\.js|\/\?api=\w+(\.\w+)*/, ''), programs = [], 
		readyTimer;
	window.Colin = {};
	Colin.imported = [];
	Colin.jsPath = jsPath;
	Colin.lang = window.navigator.language || window.navigator.userLanguage;
	if (Colin.lang) {Colin.lang = Colin.lang.toLowerCase();}
	Colin.Import = function(str)
	{
		if (this.imported[str]) {return;}
		var o = (function(){
			o = Colin.allowDomain;
			if (typeof o == typeof undef) {return false;}
			for (var i=0,L=o.length; i<L; i++)
			{
				var _RE = new RegExp(o[i].replace(/\./ig, '\\.'));
				if (window.location.href.match(_RE)) {return true;}
			}
		})();
		if (str.match(/^(config|funs|copyright|browser|support)$/) || o)
		{
			this.imported[str] = true;
			str = str.replace(/\./g, '/');
			document.write("<script type=\"text/javascript\" src=\"" + jsPath + "/" + str + ".js\"></\script>");
		}
	}
	Colin.addProgram = function()
	{
		for (var i=0, L=arguments.length; i<L; i++)
		{
			programs[programs.length] = arguments[i];
		}
	}
	Colin.ready = function()
	{
		if (!window.onload)
		{window.onload = ready;}
		else if (!readyTimer)
		{
			readyTimer = setTimeout(function(){
				if (document.body)
				{ clearTimer();ready(); }
				else 
				{ readyTimer = setTimeout(arguments.callee, 10); }
			}, 10);
		}
	}
	function clearTimer(){readyTimer = clearTimeout(readyTimer);}
	function ready()
	{
		var allScripts = document.getElementsByTagName('script');
		for (var i=allScripts.length-1; i>=0; i--)
		{
			var _script = allScripts[i];
			if (_script.src.indexOf(jsPath) != -1 || _script.src.indexOf('colin.js') != -1) {_script.parentNode.removeChild(_script);}
		}
		for (var x in programs)
		{
			var prog = programs[x];
			if (prog instanceof Function) 
			{
				/*
				prog();/*/
				try{prog();}catch(e){alert(e);}//*/
			}
		}
		programs = [];
	}
})();
Colin.Import('config');
Colin.Import('funs');
Colin.Import('support');
Colin.Import('browser');
Colin.Import('copyright');

