/**
Firefox的写法与IE有很大的区别
最大的问题是当在读取XML节点或子节点的内容时，IE下一般使用selectNodes 、selectSingleNode 这些方法，
而Firefox并没有这些方法，所以不能使用。
因此以下的方法是为了兼容IE和firefox下读取xml文件节点的    
*/
function validate(formObj){
	if(formObj.kw.value.trim().length==0||formObj.kw.value=='请输入关键词'){
		formObj.kw.focus();
		alert('请输入关键词');
		return false;
	}
}
var GetNodeValue = function(obj) {
    var str = "";
    if(window.ActiveXObject) { //IE
        str = obj.text;
    } else { //Mozilla
        try {
            str = obj.childNodes[0].nodeValue;
        } catch(ex) {
            str = "";
        }
    }
    return str;
}
if(document.implementation && document.implementation.createDocument) {
    XMLDocument.prototype.loadXML = function(xmlString) {
        var childNodes = this.childNodes;
        for(var i = childNodes.length - 1; i >= 0; i--)
            this.removeChild(childNodes[i]);

        var dp = new DOMParser();
        var newDOM = dp.parseFromString(xmlString, "text/xml");
        var newElt = this.importNode(newDOM.documentElement, true);
        this.appendChild(newElt);
    };
    // check for XPath implementation
    if(document.implementation.hasFeature("XPath", "3.0") ) {
        // prototying the XMLDocument
        XMLDocument.prototype.selectNodes = function(cXPathString, xNode) {
            if(!xNode) { xNode = this; } 
            var oNSResolver = this.createNSResolver(this.documentElement)
            var aItems = this.evaluate(cXPathString, xNode, oNSResolver,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)
            var aResult = [];
            for(var i = 0; i < aItems.snapshotLength; i++) {
                aResult[i] = aItems.snapshotItem(i);
            }
            return aResult;
        }
        // prototying the Element
        Element.prototype.selectNodes = function(cXPathString) {
            if(this.ownerDocument.selectNodes) {
                return this.ownerDocument.selectNodes(cXPathString, this);
            } else{throw "For XML Elements Only";}
        }
    }
    // check for XPath implementation
    if(document.implementation.hasFeature("XPath", "3.0") ) {
        // prototying the XMLDocument
        XMLDocument.prototype.selectSingleNode = function(cXPathString, xNode) {
            if(!xNode) { xNode = this; } 
            var xItems = this.selectNodes(cXPathString, xNode);
            if( xItems.length > 0 ) {
                return xItems[0];
            } else {
                return null;
            }
        }
        // prototying the Element
        Element.prototype.selectSingleNode = function(cXPathString) {    
            if(this.ownerDocument.selectSingleNode) {
                return this.ownerDocument.selectSingleNode(cXPathString, this);
            } else{throw "For XML Elements Only";}
        }
    }
}
//打开窗口
function openDialog() {
    var msgw=600;//提示窗口的宽度
    var msgh=480;//提示窗口的高度
    var sWidth,sHeight;
    //获取当前窗口尺寸
    sWidth = document.body.offsetWidth;
    sHeight = document.body.scrollHeight;   
    //在页面中隐藏好的一个div
    var contain = document.getElementById("term_layer");
    contain.style.border = "1px solid #B8E7B3";
    contain.style.width = msgw + "px";
    contain.style.height = msgh + "px";
    contain.style.left = "41%";
    contain.style.display = "block";
    //窗口距离左侧和顶端的距离 
    contain.style.marginLeft = "-200px";
    //窗口被卷去的高+（屏幕可用工作区高/2）-250
    contain.style.zIndex = "100";
    contain.style.position = "absolute";
    contain.style.top = document.body.scrollTop+(window.screen.availHeight/2)-250 +"px";
    //顶部的一级分类导航
    var TermL1 = document.createElement("div");
    TermL1.setAttribute("id","TermL1");
    contain.appendChild(TermL1);
    //左侧的二级分类导航
    var TermL2 = document.createElement("div");
    TermL2.setAttribute("id","TermL2");
    TermL2.setAttribute("align","left");
    TermL2.style.cssText = "border-right:1px dashed #CCCCCC;background:#FFFFFA;float:left;width:15%;height:450px;text-align:center;line-height:18px;";
    contain.appendChild(TermL2);
    //右侧的三级分类列表
    var TermL3 = document.createElement("div");
    TermL3.setAttribute("id","TermL3");
    TermL3.setAttribute("align","left");
    TermL3.style.cssText = "padding:2px;background:#FFFFFA;float:left;width:84%;height:420px;";
    contain.appendChild(TermL3);   
    //默认读取L1列表
    getTermData('L1','');
    //默认读取L2的列表
    getTermData('L2','奥运');    
    //默认读取L3的列表
    getTermData('L3','奥运关键词');    
}
//关闭弹出框
function closeiconwin() {
    document.getElementById("term_layer").removeChild(document.getElementById("TermL2"));
    document.getElementById("term_layer").removeChild(document.getElementById("TermL3"));
    var termlayer = document.getElementById("term_layer");
    termlayer.innerHTML = "";
    termlayer.style.display = "none";
}  
//获取xml中的热门词条
function getTermData(lv,nodename) {
    var xmlhttp = "";
    if(window.ActiveXObject) {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } else if(window.XMLHttpRequest) {
        xmlhttp  = new XMLHttpRequest();
    }
    xmlhttp.onreadystatechange = function loadXMLData() {
        if(xmlhttp.readyState == 4 && (xmlhttp.status == 200 || xmlhttp.status == 0)) {
            var xmlDOM = xmlhttp.responseXML;
            var root = xmlDOM.documentElement;
            //获取一级分类列表
            if(lv == 'L1') {
                var termL1 = root.selectNodes("//HOTTERM/TERML1");
                var L1 = document.getElementById("TermL1");
                L1.innerHTML = "<ul>";
                for(var i = 0;i < termL1.length;i++) {
                	var L1list = termL1[i].attributes[0].value;
                    L1.innerHTML += "<li><a href=\"javascript:void(0);\" onclick=\"javascript:getTermData('L2','"+L1list+"');\" title=\""+L1list+"\"><span>"+L1list+"</span></a></li>"; 
                }                
                L1.innerHTML += "</ul><img onclick=\"javascript:closeiconwin();\" style=\"float:right;margin-right:5px;\" src=\"/images/admin/close1.gif\">";
            //获取二级分类列表
            } else if(lv == 'L2') {
                var termL1 = root.selectNodes("//HOTTERM/TERML1");
                for(var i = 0;i < termL1.length;i++) {
                    if(termL1[i].attributes[0].value == nodename) {
                        var termL2 = termL1[i].selectNodes("//HOTTERM/TERML1/TERML2");
                        var termL2list = "<ul>";
                        var L2 = document.getElementById("TermL2");
                        for(var j = 0;j < termL2.length;j++) {
                            if(termL2[j].parentNode.attributes[0].value == nodename) {
                                termL2list += "<li><a onclick=\"javascript:getTermData('L3','"+termL2[j].attributes[0].value+"');\" href=\"javascript:void(0);\"><span>"+termL2[j].attributes[0].value+"</span></a></li>"; 
                            }
                        }
                        termL2list += "</ul>";
                        L2.innerHTML = termL2list;
                    }
                }        
            //获取二级分类下的词条       
            } else if(lv == 'L3') {
                var termL1 = root.selectNodes("//HOTTERM/TERML1");
                for(var i = 0;i < termL1.length;i++) {
                    var termL2 = termL1[i].selectNodes("//HOTTERM/TERML1/TERML2");
                    for(var j = 0;j < termL2.length;j++) {
                        if(termL2[j].attributes[0].value == nodename) {
                            var L3list = GetNodeValue(termL2[j].selectSingleNode("TERM"));
                            var L3array = L3list.split(";");
                            var L3 = document.getElementById("TermL3");
                            var termL3 = "<ul>";
                            for(var k = 0;k < L3array.length;k++) {
                            	termL3 += "<li><a href=\"/s?kw="+L3array[k]+"\"><span>"+L3array[k]+"</span></a></li>";
                            }
                            termL3 += "</ul>";
                            L3.innerHTML = termL3;
                        }                    
                    }
                }
            }
        }
    };
    xmlhttp.open("GET","help/hint.xml",true);
    xmlhttp.send(null);
}    
