﻿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;

/*******判断浏览器类型*******************/
net.BROWSER_IE=100;
net.BROWSER_FIREFOX=110;
net.BROWSER_SAFARI=120;
net.BROWSER_CAMINO=130;
net.BROWSER_GECKO=140;
net.UNKNOWN=150;
net.getOS=function()
{
	var agent=navigator.userAgent;
	if(agent.indexOf("MSIE")>0) 
		return net.BROWSER_IE;
	else if(agent.indexOf("Safari")>0)
		return net.BROWSER_SAFARI;
	else if(agent.indexOf("Firefox")>0)
		return net.BROWSER_FIREFOX;
	else if(agent.indexOf("Camino")>0)
		return net.BROWSER_CAMINO;
	else if(agent.indexOf("Gecko")>0)
		return net.BROWSER_GECKO;
	else
		return net.UNKNOWN;

}
/***********结束浏览器类型判断**************/


net.ContentLoader=function(url,onload,onerror,method,params,contentType){
  this.req=null;
  this.onload=onload;
  this.onerror=(onerror) ? onerror : this.defaultError;
  this.loadXMLDoc(url,method,params,contentType);
}

net.ContentLoader.prototype.loadXMLDoc=function(url,method,params,contentType){
  if (!method){
    method="GET";
  }
  if (!contentType && method=="POST"){
    contentType='application/x-www-form-urlencoded';
  }
  
  var Browser=net.getOS();
  if(Browser!=net.UNKNOWN)
  {
	  if(Browser==net.BROWSER_IE)
	  {
		  this.req=new ActiveXObject("Microsoft.XMLHTTP");
	  }
	  else
	  {
		  this.req=new XMLHttpRequest();
	  }
  }
  
  if (this.req)
  {
    try{
      var loader=this;
      this.req.onreadystatechange=function(){
        net.ContentLoader.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.ContentLoader.onReadyState=function(){
    try
    {
      var req=this.req;
      var ready=req.readyState;
      var httpStatus=req.status;
      if (ready==net.READY_STATE_COMPLETE)
      {
        if (httpStatus==200 || httpStatus==0)
        {        
          this.onload.call(this,req.responseText);
        }else
        {
          this.onerror.call(this);
        }
      }
    }catch(e){}  
}

net.ContentLoader.prototype.defaultError=function(){
  /*alert("error fetching data!"
    +"\n\nreadyState:"+this.req.readyState
    +"\nstatus: "+this.req.status
    +"\nheaders: "+this.req.getAllResponseHeaders());*/
}

function getXmlDocument()
{
    var xDoc=null;
    if(document.implementation
        &&document.implementation.createDocument)
    {
       xDoc=document.implementation.createDocument("","",null);//Mozilla/Safari
    }
    else if(typeof ActiveXObject!="undefined")    
    {
        var msXmlAx=null;
        try
        {
            msXmlAx=new ActiveXObject("Msxml2.DomDocument");//较新版本IE
        }catch(e)
        {
            msXmlAx=new ActiveXObject("Msxml.DomDocument");//较旧版本IE
        }
        xDoc=msXmlAx;
    }
    if( xDoc==null||typeof xDoc.load== "undefined")
    {
        xDoc==null;
    } 
    return xDoc; 
}

function ParseOneResultCode(src)
{
	var xmlDoc = getXmlDocument();		
	xmlDoc.async = false;		
	xmlDoc.loadXML(src);
		
	if (xmlDoc.parseError.errorCode != 0) 
	{
		alert(xmlDoc.parseError);
		return xmlDoc.parseError.errorCode;
	}
	else
	{
		return xmlDoc.childNodes(1).text;
	}
}
//nIndex：代表数组第几个元素
function ParseCodeForArray(src,nIndex)
{
		var xmlDoc = getXmlDocument();

		xmlDoc.async = false;		
		xmlDoc.loadXML(src);
		if (xmlDoc.parseError.errorCode != 0) 
		{
			alert(xmlDoc.parseError);
			return xmlDoc.parseError.errorCode;
		}
		else
		{
			return xmlDoc.childNodes(1).childNodes(nIndex).text;
		}
}
