﻿// JScript 文件

var _isIe = navigator.appName == "Microsoft Internet Explorer" ? true : false;

LocalTimeZone();
//===========================================================================================
/// <summary>设置本地的现在时区</summary>
function LocalTimeZone()
{
    var date = new Date();
    var timeZone = date.getTimezoneOffset();
    var s = timeZone != 0 ? timeZone / 60 : 0;
    document.cookie = "uo="+ s +"; path=/";
}
//===========================================================================================


//===========================================================================================
/// <summary>与当前时间比较</summary>
/// <param name="compareDate">比较时间。</param>
/// <param name="endDate">结束时间。</param>
/// <returns>bool类型，如果大于当前时间返回true；否则返回false；</returns>
function compareCurrentDate(compareDate)
{
    var compareResult = false;   
	var currentDate = new Date();
	var i = Number(compareDate.substring(0,4)) - Number(currentDate.getYear());
	var j = Number(compareDate.substring(5,7)) - Number(currentDate.getMonth()) - 1;
	var k = Number(compareDate.substring(8,10)) - Number(currentDate.getDate());
	var m = Number(compareDate.substring(11,13)) - Number(currentDate.getHours());
	var n = Number(compareDate.substring(14,16)) - Number(currentDate.getMinutes());
	
	if ( i != 0)
	{
	    compareResult = i > 0 ? true : false;
	}
	else if (j != 0)
	{
	    compareResult = j > 0 ? true : false;
	}
	else if (k != 0)
	{
	    compareResult = k > 0 ? true : false;
	}
	else if (m != 0)
	{
	    compareResult = m > 0 ? true : false;
	}
	else if (n != 0)
	{
	    compareResult = n > 0 ? true : false;
	}
	else
	{
	    compareResult = true;
	}
	
	return compareResult;
}
//===========================================================================================


//===========================================================================================
/// <summary>比较时间</summary>
/// <param name="beginDate">开始时间。</param>
/// <param name="endDate">结束时间。</param>
/// <returns>bool类型，如果beginDate大于endDate返回true；否则返回false；</returns>
function compareDate(beginDate, endDate)
{
    var compareResult = false;   
	
	var i = Number(beginDate.substring(0,4)) - Number(endDate.substring(0,4));
	var j = Number(beginDate.substring(5,7)) - Number(endDate.substring(5,7));
	var k = Number(beginDate.substring(8,10)) - Number(endDate.substring(8,10));
	var m = Number(beginDate.substring(11,13)) - Number(endDate.substring(11,13));
	var n = Number(beginDate.substring(14,16)) - Number(beginDate.substring(14,16));
	
	if ( i != 0)
	{
	    compareResult = i > 0 ? true : false;
	}
	else if (j != 0)
	{
	    compareResult = j > 0 ? true : false;
	}
	else if (k != 0)
	{
	    compareResult = k > 0 ? true : false;
	}
	else if (m != 0)
	{
	    compareResult = m > 0 ? true : false;
	}
	else if (n != 0)
	{
	    compareResult = n > 0 ? true : false;
	}
	else
	{
	    compareResult = true;
	}
	
	return compareResult;
}
//===========================================================================================




//===========================================================================================
/// <summary>获取当前页面上的指定ID的对象。</summary>
/// <param name="id">指定ID。</param>
/// <returns>object，页面上指定ID的对象。</returns>
function $(id)
{
   return document.getElementById ? document.getElementById(id) : null;
}
function _get(id)
{
   return $(id);
}
//===========================================================================================


//===========================================================================================
/// <summary>获取当前页面Top页面上指定ID的对象。</summary>
/// <param name="id">指定ID。</param>
/// <returns>object，页面上指定ID的对象。</returns>
function T$(id)
{
    return top.document.getElementById ? top.document.getElementById(id) : null;
}
//===========================================================================================

//===========================================================================================
/// <summary>获取当前页面父页面上指定ID的对象。</summary>
/// <param name="id">指定ID。</param>
/// <returns>object，页面上指定ID的对象。</returns>
function P$(id)
{
    return parent.document.getElementById ? parent.document.getElementById(id) : null;
}
//===========================================================================================



//===========================================================================================
/// <summary>
/// 获取制定编号的控件对象。
/// </summary>
/// <param name="objectId">控件ID号。</param>
/// <param name="objectType">控件类型。</param>
/// <returns>返回当前选中的值。</returns>
function _getObj(objectId, objectType)
{
    var object = null;
    var coll = document.getElementsByTagName(objectType);//document.all; 
    //alert("所有对象集合" + coll);
    if(coll != null)
    {        
        //alert("符合" + objectType + "的个数为" +coll.length);
        for(var i = 0; i < coll.length; i++)
        {
            //if (coll.item(i).tagName.toLowerCase() == objectType.toLowerCase())
            //{ 
//                alert(objectId);
//                alert(objectId.length);
//                alert(coll[i].id);
//                alert(coll[i].id.length);                
                if (coll[i].id.length >= objectId.length)
                {                    
                    if (coll[i].id.substring(coll[i].id.length - objectId.length, coll[i].id.length).toLowerCase() == objectId.toLowerCase())
                    {
                        object = coll[i];
                        break;
                    }
                }
            //}
        }
    }
    return object;
}
//===========================================================================================

//===========================================================================================
/// <summary>
/// 获取制定编号的RadioButtonList的值。
/// </summary>
/// <param name="objectId">控件ID号。</param>
/// <returns>返回当前选中的值。</returns>
function GetRadioButtonListValue(objectId)
{
    var value = 0;
    var coll = document.all;
    if (coll != null)
    {
        for (i = 0; i < coll.length; i++)
        {
            if (coll.item(i).type == "radio")
            {
                if (coll.item(i).id.toLowerCase().indexOf(objectId.toLowerCase()) >= 0)
                {
                    if (coll.item(i).checked == true) { value = coll.item(i).value; break; }
                }
            }
        }
    }
    return value;
}
//===========================================================================================


//===========================================================================================
/// <summary>
/// 获取制定编号的RadioButtonList的值。
/// </summary>
/// <param name="objectId">控件ID号。</param>
/// <returns>返回当前选中的值。</returns>
function clearRadioButtonListValue(objectId)
{
    var value = 0;
    var coll = document.all;
    if (coll != null)
    {
        for (i = 0; i < coll.length; i++)
        {
            if (coll.item(i).type == "radio")
            {
                if (coll.item(i).id.toLowerCase().indexOf(objectId.toLowerCase()) >= 0)
                {
                    coll.item(i).checked = false;                   
                }
            }
        }
    }    
}
//===========================================================================================


//===========================================================================================
/// <summary>
/// 获取制定编号的DropDownList的值。
/// </summary>
/// <param name="objectId">控件ID号。</param>
/// <returns>返回当前选中的值。</returns>
function GetDropDownListType(objectId)
{
    var value = 0;
    var coll = document.all;
    if (coll != null)
    {
        for (i = 0; i < coll.length; i++)
        {
            if (coll.item(i).tagName.toLowerCase() == "select")
            {
                if (coll.item(i).id.toLowerCase().indexOf(objectId.toLowerCase()) >= 0)
                {
                    value = coll.item(i).options[coll.item(i).selectedIndex].value;
                    break;
                }
            }
        }
    }
    return value;
}
//===========================================================================================


//===========================================================================================
/// <summary>
/// The handle for document submit event.
/// 是否提交的句柄函数。
/// </summary>
/// <param name="value">is submit. if "true" then submit document form.</param>
function submitHandle(value)
{
    if (!value)
    {
        $("aspnetForm").onsubmit = function stopSubmit(){ return false;}
    }
    else
    {
        $("aspnetForm").onsubmit = function stopSubmit(){ }
    }
}
//===========================================================================================

//===========================================================================================
/// <summary>
/// Retrieve the value of the cookie with the specified name.
/// 根据指定的名称获取cookie值。
/// </summary>
/// <param name="sName">指定的cookie名称</param>
function GetCookie(sName)
{
  // cookies are separated by semicolons
  var aCookie = document.cookie.split("; ");
  for (var i=0; i < aCookie.length; i++)
  {
    // a name/value pair (a crumb) is separated by an equal sign
    var aCrumb = aCookie[i].split("=");
    if (sName == aCrumb[0]) 
      return unescape(aCrumb[1]);
  }

  // a cookie with the requested name does not exist
  return null;
}

//function GetCookie(name)
//{
//    var nameEQ = name + "=";
//    var ca = document.cookie.split(';');
//    for(var i=0;i < ca.length;i++)
//    {
//    var c = ca[i];
//    while (c.charAt(0)==' ') c = c.substring(1,c.length);
//    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
//    }
//    return null;
//}
//===========================================================================================

//===========================================================================================
/// <summary>
/// Set the value of the cookie with the specified name.
/// 设定cookie值。
/// </summary>
/// <param name="name">指定的cookie名称</param>
/// <param name="value">要保存在cookie里的值</param>
/// <param name="days">cookie有效的天数</param>
function SetCookie(name,value,days)
{
    if (days)
    {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"=" + value + expires + "; path=/";
}

//===========================================================================================


//===========================================================================================
/// <summary>
/// Delete the value of the cookie with the specified name.
/// 根据指定的名称删除cookie值。
/// </summary>
/// <param name="name">指定的cookie名称</param>
function delCookie(name)
{
    var exp = new Date();
    exp.setTime (exp.getTime() - 1);
    var cval = GetCookie (name);
    document.cookie = name + "=" + cval + "; expires="+ exp.toGMTString();
}
//===========================================================================================

//===========================================================================================
/// <summary>
/// 当选项值无效时，默认选第一项
/// </summary>
/// <param name="obj">选择控件对象</param>
function ValidSelected(obj)
{
    if(obj.value == -1)
    {
        obj.options[0].selected = true;//; alert("error");
    }
}
//===========================================================================================

//===========================================================================================
/// <summary>
/// 清除字符串两端的空格
/// </summary>
/// <param name="s">要处理的字符串</param>
function Trim(s)
{
  return(s.replace(/(^\s+|\s+$)/g,''));
}
//===========================================================================================

//===========================================================================================
/// <summary>
/// 限制文本输入框的文字长度
/// </summary>
/// <param name="obj">文本输入框的对象实例</param>
/// <param name="count">限制的字符长度</param>
function CheckTextNum(obj,count)
{
    obj.focus();
	var  slct = document.selection;  
 	var  rng = slct.createRange();//obj.createTextRange();  
	obj.select();
	rng.setEndPoint("StartToStart", slct.createRange()); 
    var cursor = rng.text.length; 
    rng.collapse(false); 
    rng.select();

	if(obj.innerHTML.length>count)
	{
	    var overLength = (obj.innerHTML.length - count);
	    var strart = cursor-overLength;
		var result = obj.innerHTML.substring(0, strart);
		result += obj.innerHTML.substring(cursor, obj.innerHTML.length);
		obj.innerHTML = result;		
	}
}
//===========================================================================================

//===========================================================================================
/// <summary>
/// 生成验证码
/// </summary>
function CheckCode()
{
	var numkey = Math.random();
	numkey = Math.round(numkey*10000);
	var Obj = document.getElementById("objCheckCode");
	Obj.innerHTML = "<img src=\"../Common/CheckCode.aspx?numkey=" + numkey +"\">";
}
//===========================================================================================

//===========================================================================================
/// <summary>
/// 新开窗口不跳转原界面
/// </summary>
function newWindow(url)
{
    window.open(url);
    return;
}
//===========================================================================================

//===========================================================================================
/// <summary>设置界面语言</summary>
/// <param name="language">语言代号</param>
/// <returns>无</returns>
function BuildCulture(language,domain)
{
    document.cookie = "Language=" +language+";domain="+domain;
}
//===========================================================================================

//===========================================================================================
/// <summary>切换面板</summary>
/// <param name="obj">当前点击的菜单项</param>
/// <param name="showIndex">点击后显示的内容层位置索引，从0起</param>
/// <param name="containerIdx">内容容器标识</param>
/// <param name="showClassName">当前菜单项样式名</param>
/// <param name="hideClassName">非激活菜单项样式名</param>
/// <returns>无</returns>
function showDiv(obj, showIndex, containerIdx, showClassName, hideClassName)
{    
    var count = 0;
    
    // 修改li的样式    
    var lis = obj.parentNode.childNodes;
    var startIndex = _isIe ? 0 : 1;    
    
    for(var i = startIndex; i < lis.length; i++)    
    {
        if(lis[i].nodeType != 3)
        {   
            lis[i].className = hideClassName;
        }
    }
    
    obj.className = showClassName;
    
    // 控制内容层的显示
    var contentDivs = document.getElementById(containerIdx).childNodes;

    for(var j = startIndex ; j < contentDivs.length; j++)
    {       
        // 查找有效节点    
        if(contentDivs[j].nodeType != 3)
        {   
            if(count == showIndex)
            {
                contentDivs[j].style.display = "";
            }
            else
            {
                contentDivs[j].style.display = "none";
            }            
            count++;
        }        
    }
}
//===========================================================================================

//===========================================================================================
function SwitchDiv(pannelIdx, obj)
{
    var divPanel = $(pannelIdx);    
			
    if(divPanel.style.display == "")
    {        
        divPanel.style.display = "none";
		obj.className = "CollectArt_p";
    }
    else
    {     
        divPanel.style.display = "";
		obj.className = "CollectArt";
    }
    return false;
}
//===========================================================================================
/// <summary>展开/收拢文章</summary>
/// <param name="obj">当前点击的层</param>
/// <param name="showIndex">点击后显示/关闭的内容层位置索引，从1起</param>
/// <returns>无</returns>
function SwitchArticleList(obj, showIndex)
{    
    //alert(obj.id);
    var lis = obj.parentNode.childNodes;
    var startIndex = _isIe ? 0 : 1;
    //alert("clickme");
//    var hideBtn = lis[startIndex]; 
//    //alert(hideBtn.id);
//    
//    if(hideBtn != null)
//    {   
//        //alert(hideBtn.id);
//        hideBtn.click();
//    } 
    
     // 修改div的样式    
    var divs = obj.parentNode.childNodes;
    var startIndex = _isIe ? 0 : 1;    
    
    var index = 0;
    for(var i = startIndex; i < divs.length; i++)
    {
        if(divs[i].nodeType != 3)
        {   
            index += 1;
            if(index == showIndex)
            {
            //alert(divs[i].outerHTML);
                var imgs = obj.getElementsByTagName("img")                   
                
                if(divs[i].style.display == "")
                {
                    divs[i].style.display = "none";
                    if(imgs != null)
                    {                           
                        // 收缩
                        imgs[0].src = "/Skin/Images/plus.gif";                                                
                    }
                }
                else
                {
                    divs[i].style.display = "";
                    if(imgs != null)
                    {                           
                        // 收缩
                        imgs[0].src = "/Skin/Images/subtract.gif";                                                
                    }
                }
            }
        }
    }
}

function showBtnDetail(obj)
{
    //alert(obj);
    var divDetails = obj.parentNode.getElementsByTagName("div");
    //alert(divDetails);
//    alert(divDetails.length);
    if(divDetails != null)
    {
        divDetails[0].style.display = "";
    }    
}

function closeDetail(obj)
{
    var divDetails = obj.parentNode.getElementsByTagName("div");
    if(divDetails != null)
    {
        divDetails[0].style.display = "none";
    }
}

function getRadioValueByName(name)
{
    var contols = document.getElementsByName(name);   
    var value = -1;
   for(var i= 0; i < contols.length; i++)
   {
        if(contols[i].checked)
        {
            value = contols[i].value;
        }        
   }
   return value;
}

//===================================================================
if (!_isIe){
    var  ex;
    XMLDocument.prototype.__proto__.__defineGetter__("xml" ,function (){
         try {
             return  new XMLSerializer().serializeToString(this);
        } catch (ex){
             var  d  =  document.createElement("div");
            d.appendChild(this.cloneNode( true ));
             return  d.innerHTML;
        }
    });
    Element.prototype.__proto__.__defineGetter__("xml",  function (){
         try {
             return   new  XMLSerializer().serializeToString(this);
        } catch (ex){
             var  d  =  document.createElement("div");
            d.appendChild(this.cloneNode(true));
             return  d.innerHTML;
        }
    });
    XMLDocument.prototype.__proto__.__defineGetter__("text",  function (){
         return   this.firstChild.textContent;
    });
    Element.prototype.__proto__.__defineGetter__("text",  function (){
         return   this.textContent;
    });

    XMLDocument.prototype.selectSingleNode = Element.prototype.selectSingleNode = function (XPath){
        alert("selectSingleNode");
         var  x = this.selectNodes(xpath);
         alert(x);
         alert(x.length);
         if ( !x || x.length < 1 ) return  null;
         return  x[0];
    }
    XMLDocument.prototype.selectNodes = Element.prototype.selectNodes = function (xpath){       
     alert("selectNodes");
        var xpe = new XPathEvaluator();
     alert("1");         
      var nsResolver = xpe.createNSResolver(this.ownerDocument == null ? this.documentElement : this.ownerDocument.documentElement);       
         alert("2");    
           var result = xpe.evaluate(xpath, this, nsResolver, 0, null);
         alert("3");    
         var  found =  [];
         var  res;         
         while (res = result.iterateNext())
        found.push(res);
        return found;
    }
    
    Node.prototype.transformNode = function (oXslDom) { 
                 
        var oProcessor = new XSLTProcessor(); 
        oProcessor.importStylesheet(oXslDom); 
     
        var oResultDom = oProcessor.transformToDocument(this); 
        var sResult = oResultDom.xml; 
     
        if (sResult.indexOf(" <transformiix:result") >  -1) { 
            sResult = sResult.substring(sResult.indexOf("> ") + 1, sResult.lastIndexOf(" <")); 
        } 
     
        return sResult;                 
    };
}

function closetag(sourceContent)
{      
   var tempDiv = document.createElement("div");
   tempDiv.innerHTML = sourceContent;       
   return tempDiv.innerHTML;
}

function findNodeByIdx(nodes, index)
{
    var intCount = 0;
    for(var i = 0; i < nodes.length; i++)
    {
        if(nodes[i].nodeType != 3)
        {
            intCount += 1;
            if(intCount == index)
            {
                return nodes[i];
            }
        }
    }
}

//===========================================================================================
/// <summary>展开/收拢文章</summary>
/// <param name="obj">当前点击的层</param>
/// <param name="showIndex">点击后显示/关闭的内容层位置索引，从1起</param>
/// <returns>无</returns>
function SwitchArticle(obj, id)
{       
    var divs = obj.parentNode.childNodes;
    var div = findNodeByIdx(divs, 2);
    if(div != null)
    {   
        var td = $("tdFold_" + id);        
        var spanDown = findNodeByIdx(td.childNodes, 1);
        var spanUp = findNodeByIdx(td.childNodes, 2);
        //var imgs = obj.getElementsByTagName("img")                   
                
        if(div.style.display == "")
        {
            div.style.display = "none";
            spanDown.style.display = "";
            spanUp.style.display = "none";
//            if(imgs != null)
//            {                           
//                // 收缩
//                imgs[0].src = "/Skin/Images/down.gif";                                                
//            }
        }
        else
        {
            div.style.display = "";
            spanDown.style.display = "none";
            spanUp.style.display = "";
//            if(imgs != null)
//            {                           
//                // 展开
//                imgs[0].src = "/Skin/Images/up.gif";                                                
//            }
            var loadState = findNodeByIdx(div.childNodes, 1);
            if(loadState.innerHTML == "")
            {
                // 第一次加载xml
                //alert("first load");
                setTimeout("loadXmlContent('" + id + "')",0);
            }
        }
    }   
}

function showStatus(state, id, compareUrl)
{
    // alert(state + " || " + id + " || " + compareUrl);
    // 加载翻译状态
    var stateSpan = $("translationState_" + id);
    if(stateSpan != null)
    {   
        switch(state)
        {
            case "claim":
                var spanClaim = findNodeByIdx(stateSpan.childNodes, 2);
                spanClaim.style.display = "";
//                var spanDig = $("spanDig_" + id);
//                //alert(spanDig.innerHTML);
//                var digTxt = findNodeByIdx(spanDig.childNodes, 1).innerHTML;
//                //alert(digTxt);
//                var digControl = findNodeByIdx(spanDig.childNodes, 2);
//                //alert(digControl);
//                if(digControl != null)
//                {                    
//                    if(digControl.type == "image")
//                    {
//                        digControl.title = digTxt;
//                    }                   
//                }            
                break;
            case "translated":
                var spanCompare = findNodeByIdx(stateSpan.childNodes, 3);
                spanCompare.style.display = "";
                var divTemp = findNodeByIdx(spanCompare.childNodes, 1);
                var compareLink = findNodeByIdx(divTemp.childNodes, 1);
                compareLink.href = compareUrl;
                break;        
            case "translating":
                var spanTranslating = findNodeByIdx(stateSpan.childNodes, 4);
                spanTranslating.style.display = "";
                break;
            case "approving":
                var spanApproving = findNodeByIdx(stateSpan.childNodes, 5);
                spanApproving.style.display = "";
                break;
            case "translation":
                var spanTranslation = findNodeByIdx(stateSpan.childNodes, 6);
                spanTranslation.style.display = "";
                break;
            default:
                break;
        }
    }
}

function loadXmlContent(id)
{
    var xmlArticle = createDomDoc();
    loadByUrl(xmlArticle, "/ArticleModule/xmlArticle.aspx?idx=" + id, afterLoadContent);    
}

function afterLoadContent(xmlArticle)
{    
    var node = selectNodes(xmlArticle, "/Article/Html")[0];
    var id = selectNodes(xmlArticle, "/Article/Idx")[0].text;
    var divContent = $("divFulContent_" + id);
    var loadState = findNodeByIdx(divContent.parentNode.childNodes, 1);
    loadState.innerHTML = "true";//xmlArticle.loadSucc;       
    //alert(node.text);
    //divContent.innerHTML = node.text;
    setInnerHTML(divContent, node.text);
    //alert(divContent.innerHTML);
    //showStatus(selectNodes(xmlArticle, "/Article/State")[0].text, id, selectNodes(xmlArticle, "/Article/CompareReadUrl")[0].text);
}  

function loadXmlStatus(id)
{    
    //var xmlArticle = createDomDoc();
    //loadByUrl(xmlArticle, "/ArticleModule/xmlArticle.aspx?idx=" + id + "&t=status", afterLoadStatus);    
}

function afterLoadStatus(xmlArticle)
{   
    var id = selectNodes(xmlArticle, "/Article/Idx")[0].text;
    showStatus(selectNodes(xmlArticle, "/Article/State")[0].text, id, selectNodes(xmlArticle, "/Article/CompareReadUrl")[0].text);
}

function postDig(obj)
{    
    var spanDiggedCount = findNodeByIdx(obj.parentNode.childNodes, 1);
    // 当前叫好数量加1;
    var diggedCount = parseInt(spanDiggedCount.innerHTML, 10);
    diggedCount += 1;
    spanDiggedCount.innerHTML = diggedCount;
    var spanDigged = findNodeByIdx(obj.parentNode.childNodes, 2);
    spanDigged.style.display = "";
    obj.style.display = "none";
    return false;
}

function CloseStackDiv(obj)
{
    //alert('hide');
    if(_showFloatStack == false)
    {
        //var obj = $("<%=divCollectedStack.ClientID%>");
        _currentStacksDiv.style.display="none";
    }        
    _showFloatStack = false;
}

function ShowStackDiv(id)
{
    //alert(id);
    _currentStacksDiv = $(id);
    //alert(obj);
    _currentStacksDiv.style.display="";
    
    //divHearders.style.position="absolute";//,relative,static
    document.body.onclick=CloseStackDiv;
}

function checkSubmit(keyId)
{
    var key = $(keyId);        
    if(Trim(key.value) != "")
    {
        return true;
    }
    return false;
}

//===========================================================================================
/// <summary>
/// 显示遮罩层时隐藏掉不能被遮住的html控件
/// </summary>
function HideElement(elmID)
{
	if(document.all) 
	{
		for(i = 0; i < document.all.tags( elmID ).length; i++) 
		{
			obj = document.all.tags( elmID )[i];
			if(!obj||obj.style.display=="none"||obj.className.toLowerCase()) continue;
			if(obj.parentNode.firstChild.tagName!=null&&obj.parentNode.firstChild.tagName.toLowerCase()=="span")
			{
			    obj.parentNode.firstChild.innerText=obj.options[obj.selectedIndex].text;
			}
			obj.style.visibility  = "hidden";
		}
	}
}
//===========================================================================================

//===========================================================================================
/// <summary>
/// 隐藏遮罩层时显示隐藏的不能被遮住的html控件
/// </summary>
function ShowElement(elmID) 
{
	if(document.all) 
	{
		for(i = 0; i < document.all.tags( elmID ).length; i++)
		 {
			obj = document.all.tags(elmID)[i];
			if(!obj) continue;
			if(obj.parentNode.firstChild.tagName!=null&&obj.parentNode.firstChild.tagName.toLowerCase()=="span")
			{
			    obj.parentNode.firstChild.innerText="";
			}
			obj.style.visibility = "";
		}
	}
}
//===========================================================================================

function change_hidden(id){
   var obj = $(id);
    obj.style.display="none";  
}

function showMarkDiv(cientId, id){  
    var div = $("divMark_" + cientId);
    div.style.display="";    
    var ifm = $("ifmBookMark_" + cientId);//findNodeByIdx(div.childNodes, 2);
    if(ifm.src == "")
    {        
        ifm.src = "/ArticleModule/WebBookMark.aspx?Idx=" + id;
    }
}

//控制change_hidden()行为
function hidden(id){   
   window.setTimeout("change_hidden('" + id + "')",100);   
}

/// <summary>创建xml对象</summary>
/// <returns>返回创建成功的xml对象</returns>
function createDomDoc()
{        
    if(_isIe)
    {
        var signatures=["Msxml2.DOMDocument.5.0","Msxml2.DOMDocument.4.0","Msxml2.DOMDocument.3.0","Msxml2.DOMDocument","Microsoft.XmlDom"];
	    for(var i=0;i<signatures.length;i++){try{ this.domDoc=new ActiveXObject(signatures[i]);return this.domDoc;}catch(e){}}
	    return null;
	}
	else
	{
	    return document.implementation.createDocument("","",null);
	}
}

/// <summary>根据xpath取符合条件的节点集合</summary>
/// <param name="domDoc">xml对象</param>
/// <param name="xpath">xpath语句</param>
/// <returns>返回符合条件的节点集合</returns>
function selectNodes(domDoc, xpath)
{
    if (_isIe)
		return domDoc.selectNodes(xpath) ;
	else{
		var aNodeArray = new Array();
		var xPathResult = domDoc.evaluate(xpath, domDoc, domDoc.createNSResolver(domDoc.documentElement), XPathResult.ORDERED_NODE_ITERATOR_TYPE, null) ;
		if (xPathResult){
			var oNode = xPathResult.iterateNext() ;
			while(oNode){
				aNodeArray[aNodeArray.length] = oNode ;
				oNode = xPathResult.iterateNext();
			}
		}
		return aNodeArray ;
	}
}

/// <summary>返回xml对象的内容字符串</summary>
/// <param name="domDoc">xml对象</param>
/// <returns>返回xml对象的内容字符串</returns>
function lookXml(domDoc){
	if(_isIe){return domDoc.xml;}
	else{
		var serializer=new XMLSerializer();
		var xml=serializer.serializeToString(domDoc);
		return xml;
	}
}

/// <summary>根据url异步加载xml对象</summary>
/// <param name="domDoc">传入创建好的xml对象</param>
/// <param name="url">xml文件存在的地址（有人说此方法只能访问本服务器上的文件，尚未验证）</param>
/// <param name="fun">加载成功后执行的函数名（带一个xml对象参数）</param>
/// <returns>无</returns>
function loadByUrl(domDoc, url, fun)
{
    domDoc.async = true;
    if(_isIe)
    {
        domDoc.onreadystatechange = function() 
        { 
            //alert(domDoc.readyState);
            if (domDoc.readyState == 4) 
            {
   		        //alert("readyState载入完毕!");
   		        fun(domDoc);
            } 
        } 
    }
    else
    {
        domDoc.onload = function(success)
        {
            if(success)
            {
                //alert("onload加载完成。");
                fun(domDoc);
            }
        }
    }
    domDoc.load(url);
}

/// <summary>获取节点的内容</summary>
/// <param name="obj">xml节点对象</param>
/// <returns>返回节点内的值</returns>
function getText(obj)
{
    return obj.firstChild.nodeValue;
}

/// <summary>获取节点属性</summary>
/// <param name="obj">xml节点对象</param>
/// <param name="key">属性名</param>
/// <returns>返回节点指定属性的值</returns>
function getKey(obj, key)
{
    var o=obj.getAttribute(key);
    return o==null?"":o;
}

/// <summary>设置节点的内容</summary>
/// <param name="obj">xml节点对象</param>
/// <param name="text">要写入节点的内容</param>
/// <returns>无</returns>
function setText(obj, text)
{
    obj.firstChild.nodeValue=text;
}

/// <summary>设置节点的属性</summary>
/// <param name="obj">xml节点对象</param>
/// <param name="key">属性名</param>
/// <param name="text">要写入节点属性的内容</param>
/// <returns>无</returns>
function setKey(obj, key, text)
{
    obj.setAttribute(key,text);
}

/*
* 描述：跨浏览器的设置 innerHTML 方法
*       允许插入的 HTML 代码中包含 script 和 style
* 作者：kenxu <kenxu at ajaxwing dot com>
* 日期：2006-09-01
* 参数：
*    el: 合法的 DOM 树中的节点
*    htmlCode: 合法的 HTML 代码
* 经测试的浏览器：ie5+, firefox1.5+, opera8.5+
*/
var setInnerHTML = function (el, htmlCode) {
    var ua = navigator.userAgent.toLowerCase();
    if (ua.indexOf('msie') >= 0 && ua.indexOf('opera') < 0) {
        htmlCode = '<div style="display:none">for IE</div>' + htmlCode;
        htmlCode = htmlCode.replace(/<script([^>]*)>/gi,
                                    '<script$1 defer>');
        el.innerHTML = '';
        el.innerHTML = htmlCode;
        el.removeChild(el.firstChild);
    } else {
        var el_next = el.nextSibling;
        var el_parent = el.parentNode;
        el_parent.removeChild(el);
        el.innerHTML = htmlCode;
        if (el_next) {
            el_parent.insertBefore(el, el_next)
        } else {
            el_parent.appendChild(el);
        }
    }
}

function showObj(id, isHide)
{
    var obj = $(id);
    if(obj != null)
    { obj.style.display= isHide ? 'none' : 'block';}
}

function closeParentLoading(ifmID)
{
    var ifm = parent.document.getElementById(ifmID);     
    ifm.style.display = "";    
    findNodeByIdx(ifm.parentNode.childNodes, 1).style.display = "none";    
//    ifm.height = "0px";
//    var hig = ifm.contentDocument ? ifm.contentDocument.documentElement.scrollHeight : this.document.body.scrollHeight;
//    alert(hig);    
//    ifm.height = hig < 200 ? "200px" : hig + "px";
    
   
//            var subWeb = document.frames ? ifm.document : ifm.contentDocument;           
//                   ifm.style.height="0px";//初始化一下,否则会保留大页面高度
//                   ifm.style.height = subWeb.documentElement.scrollHeight+"px"; 
//                   ifm.style.width = subWeb.documentElement.scrollWidth+"px"; 
//                   subWeb.body.style.overflowX="auto";
//                   subWeb.body.style.overflowY="auto";
}
 function visitArticle(id)
{
    ElansoArticle.AddVisited(id, OnVisitSucceeded);
}

// This is the callback function that
// processes the Web Service return value.
function OnVisitSucceeded(result)
{    
   //alert(result);
}

function enableButton(txtObj, btnContainerID)
{    
    var btn = findNodeByIdx($(btnContainerID).childNodes, 1);
    if(Trim(txtObj.value).length <= 0)
    {
        btn.disabled = "disabled";
    }
    else
    {
        btn.disabled = "";
    }
}

function previewImgUrl(obj)
{    
    var picWidth=60;
    var picHeight=58;
    
    var pic = findNodeByIdx($("divLogo").childNodes, 1);
    pic.src = obj.value;
        
    var imgWidth = pic.width;
    var imgHeight = pic.height;
    var percentageWidth =imgWidth/picWidth;
    var percentageHeight =imgHeight/picHeight;
    if(percentageWidth>percentageHeight)
    {
        pic.width=picWidth;
    }
    else
    {
        pic.height=picHeight;
    }    
}

function limitTextBox(obj, maxLength)
{   
   if(obj.value.length > maxLength)
   {
       obj.value = obj.value.substr(0, maxLength);
   }
}

function SearchValidate(tbxCtl, btnCtl)
{   
    var txt = findNodeByIdx($(tbxCtl).childNodes, 1);
    var btn = findNodeByIdx($(btnCtl).childNodes, 1);
    
    if(Trim(txt.value).split(/%+/m).join("").length > 1)
    {
        return true;
    }
    return false;
}   

function SearchValidateCheck(tbxCtl, btnCtl)
{   
    var txt = findNodeByIdx($(tbxCtl).childNodes, 1);
    var btn = findNodeByIdx($(btnCtl).childNodes, 1);
    
    if(Trim(txt.value).split(/%+/m).join("").length > 1)
    {
        btn.disabled = "";
    }
    else
    {
        btn.disabled = "disabled";
    }
}   

function alertConfirm(text)
{
    if(confirm(text))
    {
        return true;
    }
    return false;
}

function compareLn(source, target)
{
   var sourceObj = findNodeByIdx($(source).childNodes, 1);
   var targetObj = findNodeByIdx($(target).childNodes, 1);  
   if(sourceObj.value == targetObj.value)
   {          
        var textObj = $("spanSameLnError");
        if(textObj != null)
        {
            alert(textObj.innerHTML);        
        }
        return false;
   }
   return true;
}  

function showClaimDiv(id)
{
    $("MultiLnDiv_" + id).style.display = "";
    return false;
}


function resizeImgUrl(limitWidth)
{    
    //alert(limitWidth);
    var contentArea = $("article_content");
    var imgs = contentArea.getElementsByTagName("img");
    if(imgs.length > 0)
    {
        for(var i=0;i<imgs.length;i++)
        {
            var obj = imgs[i];
            if(obj.width > limitWidth)
            {
                //alert("src=" + obj.src + " width=" + obj.width + " height=" + obj.height);
                var picWidth=limitWidth;
                var picHeight=limitWidth;
                    
                var imgWidth = obj.width;
                var imgHeight = obj.height;
		        picHeight = picWidth * imgHeight / imgWidth;

		        obj.width = picWidth;
		        obj.height = picHeight;
//                if(percentageWidth>percentageHeight)
//                {
//                    obj.width=picWidth;
//                }
//                else
//                {
//                    obj.height=picHeight;
//                }    
            }
        }
    }    
}

function switchDivShow(id)
{
    var obj = $(id);
    if(obj.style.display == "none")
    {
        obj.style.display = "block";
    }
    else
    {
        obj.style.display = "none";
    }    
}