// JScript source code

function selectstart()
{   //禁止点击鼠标选择
     if (event.srcElement.tagName != "INPUT" && event.srcElement.tagName != "TEXTAREA")
     {
        alert("对不起！鼠标选择已屏蔽！");
        return false; 
     }
      else
          return true; 
}
function rf()
{//屏蔽右键菜单
	if (event.srcElement.tagName!= "INPUT" && event.srcElement.tagName != "TEXTAREA")
	{
	    alert("欢迎访问！");
	    return false; 
	}
}
//document.oncontextmenu =rf;
//document.onselectstart=selectstart; 

function hiddenstatus(){
  for (var i=0;i<document.links.length;i++)
  {
    document.links[i].onmouseover=setstatus;
    document.links[i].onmouseup=setstatus;
    document.links[i].onfocus=setstatus;
  }	
}
function setstatus(str){
    status="您好，欢迎访问！";
    status="欢迎光临！";
    return true;
}

//回车仿TAB
function newinfo_form_onkeyup()
{ 
  key=window.event.keyCode; 
  if(key==0xD)
  { 
    if (event.srcElement.tabIndex!=0)
    {
		CurTabIndex=event.srcElement.tabIndex+1;
		for (n=0;n<Form1.elements.length;n++) 
		{
			if (Form1.elements[n].tabIndex==CurTabIndex) 
			{
				if (Form1.elements[n].type=="button")
				{
					Form1.elements[n].click();	
				}
				else
				{
					Form1.elements[n].focus(); 
					return true;
				}
			}
		}
    }
  }
}     
//去空格函数
function lTrim(str)
{
  if (str.charAt(0) == " ")
  {
    str = str.slice(1);
    str = lTrim(str);//递归调用 
  }
  return str;
}
function rTrim(str)
{
  var iLength;
  iLength = str.length;
  if (str.charAt(iLength - 1) == " ")
  {
    str = str.slice(0, iLength - 1);
    str = rTrim(str); //递归调用
  }
  return str;
}
function trim(str)
{
  return lTrim(rTrim(str));
} 
function numkey()
{
  if (!(event.keyCode>=48 && event.keyCode<=57))
  {
    return false;
  }
}
function floatkey()
{	 
  if ((!(event.keyCode>=48 && event.keyCode<=57)) && (event.keyCode!=46) && (event.keyCode!=45) )
  {
    return false;
  }
}

function showrec(tblname,infoid){
      if (tblname=="article") {
          window.open("/article/view.asp?infoid="+infoid).focus();
      }else if (tblname=="product") {
          window.open("/product/view.asp?infoid="+infoid).focus();
      }else if (tblname=="gqinfo") {
          window.open("/gqinfo/view.asp?infoid="+infoid).focus();
      }else if (tblname=="kjcg") {
          window.open("/kjcg/view.asp?infoid="+infoid).focus();
      }
} 
	//控制textarea输入长度 参数 textname:textarea名, strlength：控制字个数
    function textareaMaxlength(textname,strlength)
	{
     var str=document.getElementById(textname).value;
     if(trim(str).length>strlength)
     {
        document.getElementById(textname).value=str.substring(0,strlength);
     }    
    }
    
//设置显示或隐藏节点,如果没有子节点，将自动创建子节点
function sethv1(menuitem,m_param1,m_param,tblname,codefield,namefield,levefield,typevalue)
{
	if (document.getElementById("c"+menuitem).style.display=='')
	{
		document.getElementById("c"+menuitem).style.display='none';
		document.getElementById("p"+menuitem).src = '/images/closed.gif';
	}
	else
	{
		document.getElementById("c"+menuitem).style.display='';
		document.getElementById("p"+menuitem).src = '/images/opened.gif';
		if (document.getElementById("c"+menuitem).innerHTML=='')
		{        
			var args;
			args = "<args>\n" ;
		    args = args + "<operate>getNtree</operate>\n";
		    args = args + "<m_param1>"+m_param1+"</m_param1>\n";
		    args = args + "<m_param>"+m_param+"</m_param>\n";
			args = args + "<codevalue>"+menuitem+"</codevalue>\n";
			args = args + "<codefield>"+codefield+"</codefield>\n";
			args = args + "<tblname>"+tblname+"</tblname>\n";
			args = args + "<namefield>"+namefield+"</namefield>\n";
			args = args + "<levefield>"+levefield+"</levefield>\n";		
			args = args + "<typevalue>"+typevalue+"</typevalue>\n";	
			args = args + "</args>\n";	 
			var resultstr = sendmsg(args); 
            if(resultstr!="") 
	            document.getElementById("c"+menuitem).innerHTML=resultstr; 
		}
	}   
}

//设置显示或隐藏节点,如果没有子节点，将自动创建子节点   学科分类使用
function sethv2(menuitem,m_tag,m_param1,m_param2)
{
	  var cid,p_node;
	  if (document.getElementsByName("menu".concat(menuitem)).item(0).childNodes.length<=m_param2)
	  {
        	var args;
			args = "<args>\n" ;
			switch(m_tag){
			case 7:
			    args = args + "<operate>getnextxkfl</operate>\n";  //取得专家档案学科分类
			    args = args + "<m_param1>"+m_param1+"</m_param1>\n"; 
				break;					
			}  
			args = args + "<code>"+menuitem+"</code>\n";
			args = args + "</args>\n";	  
			var resultstr = sendmsg(args);
			p_node=document.getElementById("menu".concat(menuitem));
			p_node.innerHTML=p_node.innerHTML+resultstr;
	  }
	  
	  for (var i=0;i<document.getElementsByName("menu".concat(menuitem)).item(0).childNodes.length;i++)
	  {
	    cid=document.getElementsByName("menu".concat(menuitem)).item(0).childNodes[i].id;
	    if (cid!=null)
	    {
    	    if (cid.indexOf("menu")!=-1)
	        {
				if (eval(cid).style.display=="none")
				  eval(cid).style.display="";
				else
				  eval(cid).style.display="none";
			}
	    }
	  }
	  if (document.images["img"+menuitem]!=null)
	  {
		if (document.images["img"+menuitem].src.indexOf("midplus")!=-1)
			document.images["img"+menuitem].src="/images/midminus.gif";
		else
			document.images["img"+menuitem].src="/images/midplus.gif";
	  }
	  
}

  function seltree(type,dc)     //**选择树：添加分录方式一 参数 type：类名 dc：1必选到最底层2可以不选到底层
  {
       	p=window.showModalDialog("/manage/treelist/default.asp?type="+type+"&dc="+dc,"treelist","center:yes;dialogHeight:350px;dialogWidth:300px;help:yes;status:no;scrollbars=yes");
	    if (p!=null)
	    {
	       var sarray;
	       sarray=p.split(" ");
	       document.Form1.cnsiteclass.value=sarray[1];
	       document.Form1.CMsiteclass.value=sarray[0];
	    }
  }
  
 //向服务器端发送信息
 // JScript source code
/*
url-loading object and a request queue built on top of it
*/

/* namespacing object */
var xml=new Array();

/*--- content loader object for cross-browser requests ---*/
xml.xmlDocHelp=function()
{
}
/* create Document */
xml.xmlDocHelp.prototype.createDocument=function(onload, onloadXmlError)
{
    var oXmlDom = null;
    if(document.implementation && document.implementation.createDocument)
    {
        oXmlDom = document.implementation.createDocument("", "", null);
        oXmlDom.parseError = {
            valueOf: function () { return this.errorCode; },
            toString: function () { return this.errorCode.toString() }
        };
        
        oXmlDom.__initError__();
                
        oXmlDom.addEventListener("load", function () {
            this.__checkForErrors__();
            this.__changeReadyState__(net.READY_STATE_COMPLETE);
        }, false);
    }
    else
    {
        var aVersions = ["MSXML2.DOMDocument.6.0","Msxml2.DOMDocument.5.0","MSXML2.DOMDocument.4.0","MSXML2.DOMDocument.3.0","MSXML2.DOMDocument","Microsoft.XMLDom"];
        for (var i = 0; i < aVersions.length; i++) 
        {
           try 
           {
             oXmlDom = new ActiveXObject(aVersions[i]);
           } 
           catch (oError) {}
        }
    }
    
    if(oXmlDom != null && typeof(onload) == "function")
    {
        oXmlDom.onreadystatechange = function()
        {
            var loader = this; 
            var onerror=(typeof(onloadXmlError) == "function") ? onloadXmlError : xml.xmlDocHelp.defaultError;
            xml.xmlDocHelp.onReadyState.call(loader, oXmlDom, onload, onerror);
        }
    }
       
    return oXmlDom;
}

xml.xmlDocHelp.onReadyState=function(oXmlDom, onload, onerror)
{
    if(oXmlDom.readyState == net.READY_STATE_COMPLETE)
    {
        onload.call(this);
        if(oXmlDom.parseError.errorCode != 0)
        {
            onerror.call(this, oXmlDom);
        }
    }
}

xml.xmlDocHelp.defaultError=function(oXmlDom)
{
  alert("error xml data!"
   + "\n\nfilepos: " + oXmlDom.parseError.filepos
   + "\n\line: " + oXmlDom.parseError.nline
   +"\n\linepos: " + oXmlDom.parseError.linepos 
   +"\nreason: " + oXmlDom.parseError.reason 
   +"\n\srcText: " + oXmlDom.parseError.srcText
   +"\n\\url: " + oXmlDom.parseError.url
   );
}

//Code to make Mozilla DOM documents act more like MS DOM documents.
var oMozDocument = null;
if (typeof XMLDocument != "undefined") {
    oMozDocument = XMLDocument;
} else if (typeof Document != "undefined") {
    oMozDocument = Document;
}

if (oMozDocument && !window.opera) {

    oMozDocument.prototype.readyState = 0;
    oMozDocument.prototype.onreadystatechange = null;

    oMozDocument.prototype.__changeReadyState__ = function (iReadyState) {
        this.readyState = iReadyState;

        if (typeof this.onreadystatechange == "function") {
            this.onreadystatechange();
        }
    };

    oMozDocument.prototype.__initError__ = function () {
        this.parseError.errorCode = 0;
        this.parseError.filepos = -1;
        this.parseError.line = -1;
        this.parseError.linepos = -1;
        this.parseError.reason = null;
        this.parseError.srcText = null;
        this.parseError.url = null;
    };
    
    oMozDocument.prototype.__checkForErrors__ = function () {

        if (this.documentElement.tagName == "parsererror") {

            var reError = />([\s\S]*?)Location:([\s\S]*?)Line Number (\d+), Column (\d+):<sourcetext>([\s\S]*?)(?:\-*\^)/;

            reError.test(this.xml);
            
            this.parseError.errorCode = -999999;
            this.parseError.reason = RegExp.$1;
            this.parseError.url = RegExp.$2;
            this.parseError.line = parseInt(RegExp.$3);
            this.parseError.linepos = parseInt(RegExp.$4);
            this.parseError.srcText = RegExp.$5;
        }
    };
            
    oMozDocument.prototype.loadXML = function (sXml) {
    
        this.__initError__();
    
        this.__changeReadyState__(1);
    
        var oParser = new DOMParser();
        var oXmlDom = oParser.parseFromString(sXml, "text/xml");
 
        while (this.firstChild) {
            this.removeChild(this.firstChild);
        }

        for (var i=0; i < oXmlDom.childNodes.length; i++) {
            var oNewNode = this.importNode(oXmlDom.childNodes[i], true);
            this.appendChild(oNewNode);
        }
        
        this.__checkForErrors__();
        
        this.__changeReadyState__(net.READY_STATE_COMPLETE);

    };
    
    oMozDocument.prototype.__load__ = oMozDocument.prototype.load;

    oMozDocument.prototype.load = function (sURL) {
        this.__initError__();
        this.__changeReadyState__(net.READY_STATE_LOADING);
        this.__load__(sURL);
    };
    
    Node.prototype.__defineGetter__("xml", function () {
        var oSerializer = new XMLSerializer();
        return oSerializer.serializeToString(this, "text/xml");
    });

    Node.prototype.__defineGetter__("text", function () {
        var sText = "";
        for (var i = 0; i < this.childNodes.length; i++) {
            if (this.childNodes[i].hasChildNodes()) {
                sText += this.childNodes[i].text;
            } else {
                sText += this.childNodes[i].nodeValue;
            }
        }
        return sText;

    });
}

/*
url-loading object and a request queue built on top of it
*/

/* namespacing object */
var net=new Object();

net.READY_STATE_UNINITIALIZED=0;
net.READY_STATE_LOADING=1;
net.READY_STATE_LOADED=2;
net.READY_STATE_INTERACTIVE=3;
net.READY_STATE_COMPLETE=4;


/*--- content loader object for cross-browser requests ---*/
net.xmlHttp=function(url, onload, params, method, contentType, onerror){
  this.req=null;
  this.onload=onload;
  this.onerror=(onerror) ? onerror : this.defaultError;
  if(typeof(method) == "undefined" || method == null)
  {
    method = "POST";
  }
  this.loadXMLDoc(url, params, method, contentType);
}
/* create xmlHttp */
net.xmlHttp.prototype.createXmlHttp=function()
{
    if (window.XMLHttpRequest)
    {
       return new XMLHttpRequest();
    }
    else
    {
        var aVersions = ["MSXML2.XmlHttp.6.0", "MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];
        for (var i = 0; i < aVersions.length; i++) 
        {
           try 
           {
             var oXmlHttp = new ActiveXObject(aVersions[i]);
             return oXmlHttp;
           } 
           catch (oError) {}
        }
    }
}
net.xmlHttp.prototype.loadXMLDoc=function(url, params, method, contentType){
  if (!method){
    method="GET";
  }
  if (!contentType && method=="POST"){
    contentType='application/x-www-form-urlencoded';
  }
  
  this.req = this.createXmlHttp();

  if (this.req){
    try{
      var loader=this;
      this.req.onreadystatechange=function(){
        net.xmlHttp.onReadyState.call(loader);
      }
      this.req.open(method,url,true);
      if (contentType){
        this.req.setRequestHeader('Content-Type', contentType);
      }
      this.req.send(params);
    }catch (err){
      this.onerror.call(this);
    }
  }
}


net.xmlHttp.onReadyState=function(){
  var req=this.req;
  var ready=req.readyState;
  if (ready==net.READY_STATE_COMPLETE){
    var httpStatus=req.status;
    if (httpStatus==200 || httpStatus==0){
      this.onload.call(this);
    }else{
      this.onerror.call(this);
    }
  }
}

net.xmlHttp.prototype.defaultError=function(){
  alert("error fetching data!"
    +"\n\nreadyState:"+this.req.readyState
    +"\nstatus: "+this.req.status
    +"\nheaders: "+this.req.getAllResponseHeaders());
}


/*
add some useful methods to the javascript array class. All operating on the built-in Array class, so no
need for any namespacing object.

Dave Crane 2005
*/

/*
append to end of array, optionally checking for duplicates
*/
Array.prototype.append=function(obj,nodup){
  if (!(nodup && this.contains(obj))){
    this[this.length]=obj;
  }
}

/*
return index of element in the array
*/
Array.prototype.indexOf=function(obj){
  var result=-1;
  for (var i=0;i<this.length;i++){
    if (this[i]==obj){
      result=i;
      break;
    }
  }
  return result;
}

/*
return true if element is in the array
*/
Array.prototype.contains=function(obj){
  return (this.indexOf(obj)>=0);
}

/*
empty the array
*/
Array.prototype.clear=function(){
  this.length=0;
}

/*
insert element at given position in the array, bumping all
subsequent members up one index
*/
Array.prototype.insertAt=function(index,obj){
  this.splice(index,0,obj);
}

/*
remove element at given index
*/
Array.prototype.removeAt=function(index){
  this.splice(index,1);
}

/*
return index of element in the array
*/
Array.prototype.remove=function(obj){
  var index=this.indexOf(obj);
  if (index>=0){
    this.removeAt(index);
  }
}

if (!Object.prototype.toJSONString) {
    Array.prototype.toJSONString = function () {
        var a = ['['], b, i, l = this.length, v;

        function p(s) {
            if (b) {
                a.push(',');
            }
            a.push(s);
            b = true;
        }

        for (i = 0; i < l; i += 1) {
            v = this[i];
            switch (typeof v) {
            case 'undefined':
            case 'function':
            case 'unknown':
                break;
            case 'object':
                if (v) {
                    if (typeof v.toJSONString === 'function') {
                        p(v.toJSONString());
                    }
                } else {
                    p("null");
                }
                break;
            default:
                p(v.toJSONString());
            }
        }
        a.push(']');
        return a.join('');
    };

    Boolean.prototype.toJSONString = function () {
        return String(this);
    };

    Date.prototype.toJSONString = function () {

        function f(n) {
            return n < 10 ? '0' + n : n;
        }

        return '"' + this.getFullYear() + '-' +
                f(this.getMonth() + 1) + '-' +
                f(this.getDate()) + 'T' +
                f(this.getHours()) + ':' +
                f(this.getMinutes()) + ':' +
                f(this.getSeconds()) + '"';
    };

    Number.prototype.toJSONString = function () {
        return isFinite(this) ? String(this) : "null";
    };

    Object.prototype.toJSONString = function () {
        var a = ['{'], b, i, v;

        function p(s) {
            if (b) {
                a.push(',');
            }
            a.push(i.toJSONString(), ':', s);
            b = true;
        }

        for (i in this) {
            if (this.hasOwnProperty(i)) {
                v = this[i];
                switch (typeof v) {
                case 'undefined':
                case 'function':
                case 'unknown':
                    break;
                case 'object':
                    if (v) {
                        if (typeof v.toJSONString === 'function') {
                            p(v.toJSONString());
                        }
                    } else {
                        p("null");
                    }
                    break;
                default:
                    p(v.toJSONString());
                }
            }
        }
        a.push('}');
        return a.join('');
    };


    (function (s) {
        var m = {
            '\b': '\\b',
            '\t': '\\t',
            '\n': '\\n',
            '\f': '\\f',
            '\r': '\\r',
            '"' : '\\"',
            '\\': '\\\\'
        };

        s.parseJSON = function (hook) {
            try {
                if (/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.
                        test(this)) {
                    var j = eval('(' + this + ')');
                    if (typeof hook === 'function') {
                        function walk(v) {
                            if (v && typeof v === 'object') {
                                for (var i in v) {
                                    if (v.hasOwnProperty(i)) {
                                        v[i] = walk(v[i]);
                                    }
                                }
                            }
                            return hook(v);
                        }
                        return walk(j);
                    }
                    return j;
                }
            } catch (e) {
            }
            throw new SyntaxError("parseJSON");
        };

        s.toJSONString = function () {
            if (/["\\\x00-\x1f]/.test(this)) {
                return '"' + this.replace(/([\x00-\x1f\\"])/g, function(a, b) {
                    var c = m[b];
                    if (c) {
                        return c;
                    }
                    c = b.charCodeAt();
                    return '\\u00' +
                        Math.floor(c / 16).toString(16) +
                        (c % 16).toString(16);
                }) + '"';
            }
            return '"' + this + '"';
        };
    })(String.prototype);
}   
     
//向服务器端发送信息
function sendmsg(msg)
{    
	 var xmlDocHelp = new xml.xmlDocHelp();  
     var xmlArgs = xmlDocHelp.createDocument();
     var xmlHttp=net.xmlHttp.prototype.createXmlHttp();
	var xmlReturn;
	var args;
	args=msg;
	xmlArgs.loadXML(args);
	xmlHttp.open("post","/public/action.asp",false);
	xmlHttp.send(xmlArgs);
	xmlReturn = xmlHttp.responseXML;
	var moz = (typeof document.implementation != 'undefined') && (typeof
            document.implementation.createDocument != 'undefined');
    var resultstr;
   if(!moz)
    {
        resultstr = xmlReturn.selectSingleNode("//resultstr").text;
    }
	else
	{   
       resultstr=xmlReturn.getElementsByTagName("resultstr")[0].childNodes[0].nodeValue;   
	}
    return resultstr;   
}	
function getsubdir()
{
   	var dir=window.location.pathname;
   	if (dir.substr(0,1)!="/")
   	  dir="/"+dir;
	var dirarray=dir.split("/");
	var resultstr="";
	for (var i=2;i<dirarray.length;i++)
        resultstr+="../";
    return resultstr;	
}