﻿if(typeof(cn)=="undefined")
{
    var cn = new Object();
};
if(typeof(cn.liusoft)=="undefined")
{
    cn.liusoft = new Object();
};




/*创建XmlHttp对象*/
cn.liusoft.createXmlHttpRequest = function()
{
	var XmlHttp = false;

	/*FireFox等其他浏览器对象*/
	if( window.XMLHttpRequest )
	{
		XmlHttp = new XMLHttpRequest();
	}
	
	/*IE浏览器对象*/
	else if ( window.ActiveXObject )
	{

		var MSXML = ["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0","Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP.2.6","Microsoft.XMLHTTP.1.0","Microsoft.XMLHTTP.1","Microsoft.XMLHTTP"];

		for(var n = 0; n < MSXML.length; n ++)
		{
			try
			{
				XmlHttp = new ActiveXObject(MSXML[n]);
				break;
			}
			catch(e){}
		}
	}
	return XmlHttp;
};


cn.liusoft._scripts = document.getElementsByTagName("SCRIPT");/*页面中当前脚本块及以上的脚本块*/

cn.liusoft.kernelRoot = cn.liusoft._scripts[cn.liusoft._scripts.length - 1].getAttribute("src").replace(/\\/g, "/").replace(/[^\/]*$/, "");/*获取当前脚本块的目录，例如：［http://www.abc.com/js/cn/liusoft/］*/

cn.liusoft.importJSList = new Array();/*记录页面中已经加载过的脚本*/

/*根据路加载脚本，并执行脚本中的代码*/
cn.liusoft.loadJS = function(src)
{
	try
	{
		var xmlHttp = cn.liusoft.createXmlHttpRequest();
		xmlHttp.open("GET", src, false);
		xmlHttp.send(null);
		var st = xmlHttp.status;
		if (st == 200 || st == 0 || st == 304)
		{
			eval(xmlHttp.responseText);
		}
	}
	catch (ex)
	{
	    alert("脚本：［"+src+"］加载失败！");
		return;
	}
	finally
	{
		xmlHttp = null;
	}
};

/*导入此命名空间下的脚本*/
cn.liusoft.importJS = function(nameSpace)
{
    for(var i=0;i<cn.liusoft.importJSList.length;i++)
    {
        if(cn.liusoft.importJSList[i]==nameSpace) return;
    }	
	
    var nameSpaceSrc = nameSpace;
    if(window.location.protocol=="http:"||window.location.protocol=="https:")
    {
        nameSpaceSrc = cn.liusoft.kernelRoot + nameSpace.replace("cn.liusoft.","").replace(".","/") + ".js";
    }
    else
    {
        nameSpaceSrc = cn.liusoft.kernelRoot + "./" + nameSpace.replace("cn.liusoft.","").replace(".","/") + ".js";
    }
    cn.liusoft.loadJS(nameSpaceSrc);    
    cn.liusoft.importJSList.push(nameSpace);
};

/*此函数可能创建以点号（.）隔开的对象，用作处理对象的命名空间*/
cn.liusoft.createNameSpace = function(nameSpace)
{
    var nameSpaceArray = nameSpace.split(".");
    for(var i=0;i<nameSpaceArray.length;i++)
    {
        var s = "";
        for(var j=0;j<=i;j++)
        {
            s = s + "."+nameSpaceArray[j];
        }
        if(s.length>0){
            s = s.substring(1,s.length);
            var js = "if(typeof("+s+")=='undefined') "+s+" = new Object();";
            eval(js);           
        }
    }
};


/*设置页面dom加载完后调用的入口方法*/
cn.liusoft.domLoaded = function()
{    
   /* for Internet Explorer */
    var ie_dom_onload_js_url = "";
    if(window.location.protocol=="http:"||window.location.protocol=="https:")
    {
        ie_dom_onload_js_url = cn.liusoft.kernelRoot + "dom/loaded.js";
    }
    else
    {
        ie_dom_onload_js_url = cn.liusoft.kernelRoot + "./" + "dom/loaded.js";
    }
   /*@cc_on @*/
   /*@if (@_win32)
       document.write("<script defer src='"+ie_dom_onload_js_url+"'><"+"/script>");
       return;
   /*@end @*/
   
   /* for Mozilla */
   if (document.addEventListener)
   {
       document.addEventListener("DOMContentLoaded", cn.liusoft.dom.loaded, null);
       return;
   }

   /* for other browsers */
   window.onload = cn.liusoft.dom.loaded;

};

cn.liusoft.createNameSpace("cn.liusoft.dom");
cn.liusoft.dom.loadedEventListeners = new Array();
cn.liusoft.dom.addLoadedEventListener = function(listener)
{
    cn.liusoft.dom.loadedEventListeners[cn.liusoft.dom.loadedEventListeners.length] = listener;
};
cn.liusoft.dom.loaded = function()
{
    for(var i=0;i<cn.liusoft.dom.loadedEventListeners.length;i++)
    {
        eval(cn.liusoft.dom.loadedEventListeners[i]);
    }
};
cn.liusoft.domLoaded();