﻿// JScript 文件

//调用示例：
//<script language="javascript" type="text/javascript" src="xmlhttp.js"></script>
//XMLHttp.setHtml('GET','http://URL/','',true,'gb2312',document.getElementById("Div1"));

//setHtml(method, url, data, byAsyn,charcode, DOMObj)方法：获取目标的Text并绑定HTML元素；
//method：方法[post,get]；url：目标地址；data：发送数据；
//byAsyn：是否采用异步模式[false,true]；charcode：字符编码；DOMObj：具有innerHTML属性的HTML元素。



//定义 XMLHttp 池；
var XMLHttp = {
    xmlHttpsPool:new Array(),  //XMLHttpRequest池；
    getxmlHttp:function(){      //获取一个有效的 XMLHttpRequest ；
        for(var i=0;i<this.xmlHttpsPool.length;i++){
//            if(this.xmlHttpsPool[i].readyState==0||this.xmlHttpsPool[i].readyState==4){                
//                return this.xmlHttpsPool[i];
//            }  
            if (this.xmlHttpsPool[i] = null ){
                this.xmlHttpsPool[i] = this.getNewHttprequest() ;
                return this.xmlHttpsPool[i];
            }  
        }
        //没有空闲的XMLHttpRequest，新建一个；
        
        this.xmlHttpsPool[this.xmlHttpsPool.length] = this.getNewHttprequest() ; 
        return this.xmlHttpsPool[this.xmlHttpsPool.length-1];       
    },
    //获取广告。
    setAD:function(url,DOMObj){
        var objXMLHttp = this.getxmlHttp();
        
        if(objXMLHttp == null){//不支持XMLHttpRequest。
            DOMObj.innerHTML = '<iframe allowtransparency="true" frameborder="no" width="100%" height="100%" src="' 
                + url + '"marginheight="0" marginwidth="0" scrolling="no" ></iframe>';         
        }else{//支持    
            DOMObj.style.display = "none" ;
            with(objXMLHttp){
                try{// 加随机数防止缓存
                    if (url.indexOf("?") > 0){url += "&randnum=" + Math.random();
                    }else{url += "?randnum=" + Math.random();}
                    
                    //alert(url);
                                       
                    onreadystatechange = function (){
                        //alert(objXMLHttp.readyState);
                        //判断是否是完成状态
                        if (objXMLHttp.readyState == 4){
                            //判断是否执行成功
                            if (objXMLHttp.status == 200 || objXMLHttp.status == 304){
                                //更新页面上的某元素                                                              
                                DOMObj.innerHTML = objXMLHttp.responseText ;
                                DOMObj.innerHTML =DOMObj.innerHTML.replace(/(^\s*)|(\s*$)/g, ""); 
                                //alert(DOMObj.innerHTML);
                                if (DOMObj.innerHTML.toLowerCase().indexOf("<font") > 0 ){
                                    DOMObj.style.display = "";  
                                }
                            }else{
                                DOMObj.innerHTML = "HTML Eorr:" + objXMLHttp.status ;
                            }
                            objXMLHttp = null;
                        }
                    }
                    objXMLHttp.open("GET", url, true);                    
                    // 设定请求编码方式
                    setRequestHeader('Content-Type', 'text/html;charset=UTF-8'); 
                    setRequestHeader('Cache-Control', 'No-Cache' );
                    //alert(method + url + byAsyn);
                    send(null);
                }catch(e){DOMObj.innerHTML ="<font color='red'>" + e.name + ":" + e.message + "</font>";}
            }
        }
    },
    
    //setHtml(method, url, data, byAsyn,charcode, DOMObj)方法：获取目标的Text并绑定HTML元素；
    //method：方法[post,get]；url：目标地址；data：发送数据；
    //byAsyn：是否采用异步模式[false,true]；charcode：字符编码；DOMObj：具有innerHTML属性的HTML元素。
    setHtml:function(method, url, data, byAsyn,charcode, DOMObj){
        var objXMLHttp = this.getxmlHttp();
        
        if(objXMLHttp == null){//不支持XMLHttpRequest。
            DOMObj.innerHTML = '<iframe allowtransparency="true" frameborder="no" width="100%" height="100%" src="' 
                + url + '"marginheight="0" marginwidth="0" scrolling="no" ></iframe>';         
        }else{   
            with(objXMLHttp){
                try{// 加随机数防止缓存
                    if (url.indexOf("?") > 0){url += "&randnum=" + Math.random();
                    }else{url += "?randnum=" + Math.random();}
                    
                    //alert(url);
                                       
                    onreadystatechange = function (){
                        //alert(objXMLHttp.readyState);
                        //判断是否是完成状态
                        if (objXMLHttp.readyState == 4){
                            //判断是否执行成功
                            if (objXMLHttp.status == 200 || objXMLHttp.status == 304){
                                //更新页面上的某元素                                
                                DOMObj.innerHTML = objXMLHttp.responseText ;
                            }else{
                                DOMObj.innerHTML = "HTML Eorr:" + objXMLHttp.status ;
                            }
                            objXMLHttp = null;
                        }else if(objXMLHttp.readyState == 0){DOMObj.innerHTML = "<img border='0' src='style/image/indicator_medium.gif' width='24px' height='24px' /><font color='green'>正在载入数据……1%</font>";
                        }else if(objXMLHttp.readyState == 1){DOMObj.innerHTML = "<img border='0' src='style/image/indicator_medium.gif' width='24px' height='24px' /><font color='green'>正在载入数据……25%</font>";
                        }else if(objXMLHttp.readyState == 2){DOMObj.innerHTML = "<img border='0' src='style/image/indicator_medium.gif' width='24px' height='24px' /><font color='green'>正在载入数据……50%</font>";
                        }else if(objXMLHttp.readyState == 3){DOMObj.innerHTML = "<img border='0' src='style/image/indicator_medium.gif' width='24px' height='24px' /><font color='green'>正在载入数据……75%</font>";}
                    }
                    objXMLHttp.open(method, url, byAsyn);                    
                    // 设定请求编码方式
                    setRequestHeader('Content-Type', 'text/html;charset=' + charcode ); 
                    setRequestHeader('Cache-Control', 'No-Cache' );
                    //alert(method + url + byAsyn);
                    send(data);
                }catch(e){DOMObj.innerHTML ="<font color='red'>" + e.name + ":" + e.message + "</font>";}
            }
        }
   
    },
    //新建一个XMLHttpRequest。
    getNewHttprequest:function(){
        if (window.XMLHttpRequest){
            var objXMLHttp = new XMLHttpRequest();
        }else{
            var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 
                'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
            for(var n = 0; n < MSXML.length; n ++){
                try{
                    var objXMLHttp = new ActiveXObject(MSXML[n]);
                    break;
                }catch(e){}
            }
        }
        // mozilla某些版本没有readyState属性
        if (objXMLHttp.readyState == null){
            objXMLHttp.readyState = 0;
            objXMLHttp.addEventListener("load", function(){
                objXMLHttp.readyState = 4;
                if (typeof objXMLHttp.onreadystatechange == "function"){
                    objXMLHttp.onreadystatechange();
                }
            },  false);
        }
        return objXMLHttp ;
    }
};


function getBindDoor(objName,index){
    
    var nObj1 = document.getElementById(tagID[objName][index]) ;
    var nObj2 = document.getElementById(titleID[objName][index]) ;
    //alert(tagID[objName].length);
    if (UrlPage[objName][index] != null && nObj1 != null && nObj2 !=null ){
    
        for (i=0;i<titleID[objName].length; i++){
            //alert(tagID[objName][i]);
            document.getElementById(titleID[objName][i]).className = "doorde" ;
        }
        nObj2.className = "dooren";
        for (i=0;i<tagID[objName].length; i++){
            //alert(tagID[objName][i]);
            document.getElementById(tagID[objName][i]).style.display = "none" ;
        }
        nObj1.style.display = "" ;
        //alert(nObj1.innerHTML);
        if (nObj1.innerHTML == "" ){
            XMLHttp.setHtml("GET", UrlPage[objName][index], null, true,"UTF-8", nObj1);
        }
    }

}



function getBindURL(objName,index){   
    var nObj = document.getElementById(tagID[objName][index]) ;
    //alert(tagID[objName].length);
    if (UrlPage[objName][index] != null && nObj != null ){
        for (i=0;i<tagID[objName].length; i++){
            //alert(tagID[objName][i]);
            document.getElementById(tagID[objName][i]).style.display = "none" ;
        }
        nObj.style.display = "" ;
        //alert(nObj.innerHTML);
        if (nObj.innerHTML == "" ){
            XMLHttp.setHtml("GET", UrlPage[objName][index], null, true,"UTF-8", nObj);
        }
    }

}

function getAd(objName){
    var nObj = document.getElementById(ADsTag[objName]) ;
    if (ADsURL[objName] != null && nObj != null ){
        XMLHttp.setAD(ADsURL[objName], nObj);
    }
    //alert(nObj.innerHTML);
}




