var isMozilla = /Mozilla\/5\.0/.test(navigator.userAgent);
if (isMozilla)
   document.write('<script type="text/javascript" src="'+SITE_JS_PATH+'mozillaForIE.js"></sc' + 'ript>');

var m_sXMLNodeNameLink	= "L";
var m_sXMLNodeNameTitle = "T";
var m_sXMLNodeNameId	= "ID";

//控制是否显示标题
var m_bDisplayTitle = false;
//当前文档的ID
var m_oCurrentDocId = 0;


//上一篇链接元素
var m_oPreElementLink = null;
//上一篇标题元素
var m_oPreElementTitle = null;

//下一篇链接元素
var m_oNextElementLink = null;
//下一篇标题元素
var m_oNextElementTitle = null;


//上一篇链接TR
var m_oPreElementOutline = null;
//下一篇标题TR
var m_oNextElementOutline = null;

//所有的节点
var m_arNodes = null;

var m_nLoadCount = 0;
var xmlhttp = null;
var DocumentsDataSrc = null;

function XMLHttpStateChangeForIE(){
	if(xmlhttp.readyState == 4){
		if(DocumentsDataSrc == null){
			DocumentsDataSrc = new ActiveXObject("Microsoft.XMLDOM");
			DocumentsDataSrc.setProperty("SelectionLanguage", "XPath"); 
			DocumentsDataSrc.async=false;
		}
		alert(xmlhttp.responseText);
		DocumentsDataSrc.loadXML(xmlhttp.responseText);
		onXMLLoadReady();		
	}else{
		//alert("服务器出现异常！["+xmlhttp.readyState+"]["+xmlhttp.status+"]");
	}
}


function onXMLLoadReady(){
	loadXMLData("//D");
}



function initDocumentsDataSrc(){
	if (window.ActiveXObject)
	{
		/*
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
		xmlhttp.onreadystatechange=XMLHttpStateChangeForIE;
		xmlhttp.open("GET", XML_FILE + "?rand=" + Math.random(), true)
		xmlhttp.send();
		*/
		DocumentsDataSrc = new ActiveXObject("Microsoft.XMLDOM");
			DocumentsDataSrc.setProperty("SelectionLanguage", "XPath"); 
			DocumentsDataSrc.async=false;
		DocumentsDataSrc.load(XML_FILE + "?rand=" + Math.random());
		onXMLLoadReady();		
		//DocumentsDataSrc.onload=onXMLLoadReady;
	}
	// code for Mozilla, etc.
	else if (document.implementation &&document.implementation.createDocument)
	{
		DocumentsDataSrc= document.implementation.createDocument("","",null);
		DocumentsDataSrc.async=true;
		DocumentsDataSrc.load(XML_FILE + "?rand=" + Math.random());
		//DocumentsDataSrc.setProperty("SelectionLanguage", "XPath"); 
		DocumentsDataSrc.onload=onXMLLoadReady;
	}
	else
	{
		//alert('您的系统不支持XML浏览！');
	}
}


/**
 * 初始化界面元素，校验合理性，发出载入XML的请求
 **/
function initBody(){
	m_oPreElementLink = document.getElementById("PreElementLink");
	if(m_oPreElementLink == null){
		//alert( "没有定义前一篇的A元素！" );
		return false;
	}

	m_oPreElementTitle = document.getElementById("PreElementTitle");
	//if(m_oPreElementTitle == null){
	//	alert( "没有定义前一篇的Title显示元素！" );
	//	return false;
	//}

	m_oNextElementLink = document.getElementById("NextElementLink");
	if(m_oNextElementLink == null){
		//alert( "没有定义前一篇的A元素！" );
		return false;
	}

	m_oNextElementTitle = document.getElementById("NextElementTitle");

	if(m_oCurrentDocId <= 0){
		//alert("没有传入当前文档ID");
	}

	//上一篇链接TR
	m_oPreElementOutline = document.getElementById("PreElementOutline");
	//下一篇标题TR
	m_oNextElementOutline = document.getElementById("NextElementOutline");

	window.setTimeout("initDocumentsDataSrc();", 1000);
}

function loadXMLData(_sPath){
	var sPath = _sPath;
	//提取数据	
	m_arNodes = DocumentsDataSrc.selectNodes(sPath);
	var nSize = m_arNodes.length;

	var nFindIndex = -1;
	for(var i = 0; i<nSize; i++){	
		//获取当前的XML节点
		var xmlNode = null;
		if(isMozilla){
			xmlNode = m_arNodes.array[i];			
		}else{
			xmlNode = m_arNodes[i];
		}
		if(xmlNode == null)break;

		//获取DocId属性
		var sId = "";		
		var xmlNodeTemp = getChildXMLNodeByTagName(xmlNode, m_sXMLNodeNameId);
		if(xmlNodeTemp)sId = getNodeText(xmlNodeTemp);
		if(sId == m_oCurrentDocId){
			nFindIndex = i;
			break;
		}

		//获取Link属性
		var sLink = "";		
		var xmlNodeTemp = getChildXMLNodeByTagName(xmlNode, m_sXMLNodeNameLink);
		if(xmlNodeTemp)sLink = getNodeText(xmlNodeTemp);

		//获取Title属性
		var sTitle = "";		
		var xmlNodeTemp = getChildXMLNodeByTagName(xmlNode, m_sXMLNodeNameTitle);
		if(xmlNodeTemp)sTitle = getNodeText(xmlNodeTemp);
	}

	if(nFindIndex < 0){
		//alert("没有找到指定的ID["+m_oCurrentDocId+"]的文档！");
		return;
	}

	initHTMLElement(nFindIndex-1, m_oPreElementTitle, m_oPreElementLink, m_oPreElementOutline);
	initHTMLElement(nFindIndex+1, m_oNextElementTitle, m_oNextElementLink, m_oNextElementOutline);
}

function initHTMLElement(_nIndex, _oHTMLElementTitle, _oHTMLElementLink, _oHTMLElementOutline){	
	if(_nIndex >= m_arNodes.length){
		_oHTMLElementLink.style.display = "none";
		//alert("传入的Index["+_nIndex+"]不正确！");
		return;
	}

	//获取当前的XML节点
	var xmlNode = null;
	if(isMozilla){
		xmlNode = m_arNodes.array[_nIndex];			
	}else{
		xmlNode = m_arNodes[_nIndex];
	}
	if(xmlNode == null)return;

	//获取Link属性
	var sLink = "";		
	var xmlNodeTemp = getChildXMLNodeByTagName(xmlNode, m_sXMLNodeNameLink);
	if(xmlNodeTemp)sLink = getNodeText(xmlNodeTemp);	

	//获取Title属性
	var sTitle = "";		
	var xmlNodeTemp = getChildXMLNodeByTagName(xmlNode, m_sXMLNodeNameTitle);
	if(xmlNodeTemp)sTitle = getNodeText(xmlNodeTemp);

	
	_oHTMLElementLink.href	= sLink;
	_oHTMLElementLink.title = sTitle;	

	_oHTMLElementOutline.style.display = '';

	if(!m_bDisplayTitle)
		return;
	
	if(_oHTMLElementTitle){
		_oHTMLElementTitle.innerHTML	= sTitle;
	}else{
		_oHTMLElementLink.innerHTML		= sTitle;	
	}
	
	
}

function getElementsByNameFrom(_oElement, _sName){
	var pElements = new Array();
	var arAll = _oElement.all;
	for(var i=0; i<arAll.length; i++){
		if(arAll[i].getAttribute("name") == _sName){
			pElements.push(arAll[i]);
		}
	}
	return pElements;
}

var m_bFirst    = true;

function getChildXMLNodeByTagName(_xmlNode, _sTagName){
	var sTagName = _sTagName.toUpperCase();
	var arChildren = _xmlNode.childNodes;
	var nCount = arChildren.length;
	for(var i=0; i<nCount; i++){
		var node = arChildren[i];
		if(node.nodeName.toUpperCase() == _sTagName){
			return node;		
		}
	}
}

function getNodeText(_node){
	if(_node.childNodes.length==0){
		return _node.nodeValue;
	}

	return getNodeText(_node.childNodes[0]);
}

window.onload = initBody;

//window.setTimeout("initDocumentsDataSrc();", 1000);