function debug(news)
{
    //alert(news);
}
var isIE = navigator.userAgent.indexOf("IE")>0;
var dataready = false;
var xslready = false;
var g_xslproc ;
var g_processor ;
var language_xml ;
var langid = "0";
var LANGUAGE_XML = "/xml/language_utf8_cn.xml";
if(langid == "0")
{
    LANGUAGE_XML = "/xml/language_utf8_cn.xml";
}
else if(langid == "1")
{
    LANGUAGE_XML = "/xml/language_utf8_hk.xml";
}
else if(langid == "2")
{
    LANGUAGE_XML = "/xml/language_utf8_en.xml";
}
else if(langid == "3")
{
    LANGUAGE_XML = "/xml/language_utf8_jp.xml";
}
else if(langid == "4")
{
    LANGUAGE_XML = "/xml/language_utf8_ko.xml";
}
else
{
    LANGUAGE_XML = "/xml/language_utf8_cn.xml";
}
var LANGUAGE_XSL = "/xsl/swift/loadlanguage.xsl";

try
{
    dataready = window.top.dataready; // load xml flg
    xslready = window.top.xslready;  // load xsl flg

    g_xslproc = window.top.g_xslproc;   //for ie
    g_processor = window.top.g_processor; //for mozilla
    language_xml = window.top.language_xml;
}
catch(e)
{
    debug("get top err1! domain.....\n" +e);
    do_reloadlanguage();
}

if( ( !isIE && ( typeof g_processor == "undefined" || g_processor == null ))
    ||
    ( isIE && ( typeof g_xslproc == "undefined" || g_xslproc == null))
    || 
    (typeof language_xml == "undefined" || language_xml == null))
{
    try
    {
        dataready = window.opener.top.dataready; // load xml flg
        xslready = window.opener.top.xslready;  // load xsl flg

        g_xslproc = window.opener.top.g_xslproc;   //for ie
        g_processor = window.opener.top.g_processor; //for mozilla
        language_xml = window.opener.top.language_xml;
    }
    catch(e)
    {
        debug("get top err2! domain.....\n" +e);
    }
    if( ( !isIE && ( typeof g_processor == "undefined" || g_processor == null ))
        ||
        ( isIE && ( typeof g_xslproc == "undefined" || g_xslproc == null))
        || 
        (typeof language_xml == "undefined" || language_xml == null))
    {
        do_reloadlanguage();
    }
}

if(xslready == false || dataready == false)
{
    do_reloadlanguage();
}
function do_reloadlanguage()
{
    dataready = false;
    xslready = false;

    dataready = load_lg_xml();
    xslready = load_lg_xsl();
}

// ---------------------------------------------------------------------------
// 多语言功能函数
// ---------------------------------------------------------------------------
 
// ------------------
// 加载多语言xml数据岛
// ------------------
function load_lg_xml()
{
    try { 
        if(!isIE)
        {
            language_xml = document.implementation.createDocument("", "", null); 
            //language_xml.async = false; 
            language_xml.onload = function()
            {
                dataready = true;
            }
            language_xml.load(LANGUAGE_XML);
        }
        else
        {
            language_xml = new ActiveXObject("MSXML.DOMDocument");
            //language_xml.async = false; 
            /*
            language_xml.onreadystatechange = function()
            {
                //dataready = language_xml.readyState;
                dataready = true;
            }
            */
            language_xml.load(LANGUAGE_XML);
            dataready = true;
        }
    } catch (e) { 
        debug("error: load xml: " + e ); 
        dataready = false;
        return false;
    } 
    return true;
}

// ------------------
// 加载多语言解释xsl
// ------------------
function load_lg_xsl()
{
    try
    {
        if(!isIE)
        {
                g_processor = new XSLTProcessor(); 
                var xsldoc = document.implementation.createDocument("", "", null); 
                //xsldoc.async = false; 
                xsldoc.load(LANGUAGE_XSL);
                g_processor.importStylesheet(xsldoc); 
        }
        else
        {
            var xslt = new ActiveXObject("Msxml2.XSLTemplate.3.0");
            var xsldoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.3.0");
            //xsldoc.async = false;
            xsldoc.async = true;
            xsldoc.onreadystatechange = function () {
                if (xsldoc.readyState == 4) {
                    if (xsldoc.parseError.errorCode != 0)
                    {
                        var myErr = xsldoc.parseError;
                        debug("You have an XSLT parse error: " + myErr.reason);
                    }
                    xslt.stylesheet = xsldoc;

                    g_xslproc = xslt.createProcessor();
                    //setinput(g_xslproc);
                    g_xslproc.input = language_xml;
                }
            }
            xsldoc.load(LANGUAGE_XSL);
        }
    }
    catch(e)
    {
        debug( "load loadlanguage.xsl err2!\n"+e);
        return false;
    }
    return true;
}

// 执行xsl文件解析，返回解析后的html
function getxslParseData()
{
    var l = "";
    try{
        if(!isIE)
        {
            var oFragment = g_processor.transformToFragment(language_xml, document);
            var oSerializer = new XMLSerializer();
            l = oSerializer.serializeToString(oFragment);
        }
        else
        {
            g_xslproc.transform();
            l = g_xslproc.output;
        }
    }
    catch(e)
    {
        debug(" err getxslParseData!\n" + e);
        return "";
    }
    return l;
}

// --------------------
// 设置标签替换参数值
// --------------------
function setitemvalue(x, y)
{
    try
    {
        if(!isIE)
        {
            if(g_processor == null)
            {
                debug("g_processor is null");
                return;
            }
            else
            {
                g_processor.setParameter(null, x, y);
            }
        }
        else
        {
            if(g_xslproc == null)
            {
                debug("g_xslproc is null");
                return;
            }
            else
            {
                g_xslproc.addParameter(x, y);
            }
        }
    }
    catch(e)
    {
        debug(" err setitemvalue!\n" + e);
    }
    return;
}


/*
    根据传入的item，取得alert信息内容
*/
function Set_lg_Alert(item)
{
    if(item == "")
    {
        return null;
    }

    if( xslready == false)
    {
        return null;
    }

    try
    {
        setitemvalue("srhName", item);
        l = getxslParseData();
        if(l == "")
        {
            return null;
        }
        /*
           if(setitemvalue("srhName", item) == 0)
           {
           l = getxslParseData();
           if(l == "")
           {
           return null;
           }
           }
           else
           {
           return null;
           }
         */
    }
    catch(e)
    {
        debug("err 2\n" +e);
        return null;
    }
    return l;
}

/*  function: 根据item名取得对应的文字信息
        item 标签名
        defaultvalue 默认信息,用于取不到item的对应值时
        type : 0: 直接写在页面, null或其他: 返回信息串
*/
function Set_lg_Span( n)
{
    var l = "";
    var num = document.getElementsByName("language_span").length;
    if(num < n)
        return null;
    var item = document.getElementsByName("language_span")[n].innerHTML;
    if(item == "")
    {
        return null;
    }

    if( xslready == false)
    {
        return null;
    }

    try
    {
        setitemvalue("srhName", item);
        l = getxslParseData();
        if(l == "")
        {
            return null;
        }
    }
    catch(e)
    {
        debug("err 2\n" +e);
        return null;
    }
    try{
        l = document.getElementsByName("language_span")[n].innerHTML = l;
    }
    catch(e)
    {
        debug("err 3\n" +e);
        return null;
    }
    return l;
    //return setspaninner(item, l, type);

}

// --------------------------------------------------------
// 各个页面调用接口函数，实现对页面内所有标签的文字替换操作！
// --------------------------------------------------------
function setallparm()
{
    try{
        if(dataready == true)
        {
            var num = document.getElementsByName("language_span").length;
            for(var i=0; i < num; i++)
            {
                Set_lg_Span( i);
            }
        }
        else
        {
            setTimeout('setallparm()', 1000);
        }
    }catch(e)
    {
        debug("load language data error,reload please!\n" +e);
        return;
    }
}
function setcycleparam(param,pvalue)
{
    try{
        if ( typeof param != "undefined" )
	{
	    var bnum = param.length;
	    if(bnum > 0)
	    {
		for (var tt=0;tt<bnum;tt++)
		{
		  param[tt].value = pvalue;
		}
            }
            else
	        param.value = pvalue;
        }
    }catch(e)
    {
        return;
    }
}

