function loadXMLTDoc(fname)
{
var xmlDoc;
// code for IE
if (window.ActiveXObject)
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  }
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation
&& document.implementation.createDocument)
  {
  xmlDoc=document.implementation.createDocument("","",null);
  }
else
  {
  alert('Your browser cannot handle this script');
  }
  
xmlDoc.async=false;
xmlDoc.load(fname);
return(xmlDoc);
}

function loadXMLDoc(dname)
{
if (window.XMLHttpRequest)
  {
  xhttp=new XMLHttpRequest();
  }
else
  {
  xhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xhttp.open("GET",dname,false);
xhttp.send("");
return xhttp.responseXML;
}
/*displayResult 
1, param: xml document
2, param: xsl or xslt document
3, param: result display target <div />
4, param: current page number
5, param: hidden field name of the title name
!importent: dont use javascript function document.write in xslt document
*/

function displayResult(stxml, stxsl, tardiv, pagenum, title)
{
    var stpath,pagelimit,sttitle,startpage,endpage;
    stpath = "./data/" + document.getElementById('hidlang').value + "/";
    // stpath = "./data/eng/";

    stxml = stpath + stxml;
    stxsl = stpath + stxsl;
    
    sttitle = document.getElementById(title).value;
    pagelimit = document.getElementById('hidpagelimit').value;
    pagenum = parseInt(pagenum);
    startpage = (pagenum - 1) * pagelimit + 1;
    endpage = pagenum * pagelimit;
    //check param
    //alert(stxml + '\n ' + stxsl + '\n' + tardiv + '\n' + pagenum + '\n' + title);
    //alert(sttitle + ' ' + pagenum + ' ' + startpage + ' ' + endpage + ' ' + pagelimit);
// code for IE

if (window.ActiveXObject)
  {
    var xslt = new ActiveXObject("Msxml2.XSLTemplate.3.0");
	var xsldoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.3.0");
	var xslproc;
	xsldoc.async = false;
	xsldoc.resolveExternals = false;
	xsldoc.load(stxsl);
	xslt.stylesheet = xsldoc;
	
   		var xmldoc = new ActiveXObject("Msxml2.DOMDocument.3.0");
   		 xmldoc.async = false;
 	     xmldoc.resolveExternals = false;
   		 xmldoc.load(stxml);
   		if (xmldoc.parseError.errorCode != 0)
   		{
      		var myErr = xmldoc.parseError;
      		alert("You have an XML parse error: " + myErr.reason);
   		}
   		else
   		{
      		xslproc = xslt.createProcessor();
      		xslproc.input = xmldoc;

      		xslproc.addParameter("start", startpage);
      		xslproc.addParameter("end", endpage);
			xslproc.addParameter("currentPage", pagenum);
			xslproc.addParameter("pagelimit", pagelimit);
			xslproc.addParameter("title", sttitle);
      		xslproc.transform();
      		document.getElementById(tardiv).innerHTML = xslproc.output;
		}

  }
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
  {
  xml=loadXMLTDoc(stxml);
xsl=loadXMLTDoc(stxsl);
  xsltProcessor=new XSLTProcessor();
  xsltProcessor.importStylesheet(xsl);
  xsltProcessor.setParameter(null, "start", startpage);
  xsltProcessor.setParameter(null, "end", endpage);
  xsltProcessor.setParameter(null, "currentPage", pagenum);
  xsltProcessor.setParameter(null, "pagelimit", pagelimit);
  xsltProcessor.setParameter(null, "title", sttitle);
  var newDocument = xsltProcessor.transformToDocument(xml);
  resultDocument = xsltProcessor.transformToFragment(xml,document);
   var containerElement = document.getElementById(tardiv);

 while (containerElement.hasChildNodes()) 
  {
  containerElement.removeChild(containerElement.lastChild);
  }
  
 containerElement.appendChild(resultDocument); 

  }
  reloaddiv();
}

//add more one param :sectid for 3.0,4.0
function displayResult2(stxml, stxsl, tardiv, pagenum, title,SecID) {
    var stpath, pagelimit, sttitle, startpage, endpage;
    stpath = "./data/" + document.getElementById('hidlang').value + "/";
    // stpath = "./data/eng/";

    stxml = stpath + stxml;
    stxsl = stpath + stxsl;

    sttitle = document.getElementById(title).value;
    pagelimit = document.getElementById('hidpagelimit').value;
    pagenum = parseInt(pagenum);
    startpage = (pagenum - 1) * pagelimit + 1;
    endpage = pagenum * pagelimit;
    //check param
    //alert(stxml + '\n ' + stxsl + '\n' + tardiv + '\n' + pagenum + '\n' + title);
    //alert(sttitle + ' ' + pagenum + ' ' + startpage + ' ' + endpage + ' ' + pagelimit);
    // code for IE

    if (window.ActiveXObject) {
        var xslt = new ActiveXObject("Msxml2.XSLTemplate.3.0");
        var xsldoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.3.0");
        var xslproc;
        xsldoc.async = false;
        xsldoc.resolveExternals = false;
        xsldoc.load(stxsl);
        xslt.stylesheet = xsldoc;

        var xmldoc = new ActiveXObject("Msxml2.DOMDocument.3.0");
        xmldoc.async = false;
        xmldoc.resolveExternals = false;
        xmldoc.load(stxml);
        if (xmldoc.parseError.errorCode != 0) {
            var myErr = xmldoc.parseError;
            alert("You have an XML parse error: " + myErr.reason);
        }
        else {
            xslproc = xslt.createProcessor();
            xslproc.input = xmldoc;

            xslproc.addParameter("start", startpage);
            xslproc.addParameter("end", endpage);
            xslproc.addParameter("currentPage", pagenum);
            xslproc.addParameter("pagelimit", pagelimit);
            xslproc.addParameter("title", sttitle);
            xslproc.addParameter("SectID", SecID);
            xslproc.transform();
            document.getElementById(tardiv).innerHTML = xslproc.output;
        }

    }
    // code for Mozilla, Firefox, Opera, etc.
    else if (document.implementation && document.implementation.createDocument) {
        xml = loadXMLTDoc(stxml);
        xsl = loadXMLTDoc(stxsl);
        xsltProcessor = new XSLTProcessor();
        xsltProcessor.importStylesheet(xsl);
        xsltProcessor.setParameter(null, "start", startpage);
        xsltProcessor.setParameter(null, "end", endpage);
        xsltProcessor.setParameter(null, "currentPage", pagenum);
        xsltProcessor.setParameter(null, "pagelimit", pagelimit);
        xsltProcessor.setParameter(null, "title", sttitle);
        xsltProcessor.setParameter(null, "SectID", SecID);
        var newDocument = xsltProcessor.transformToDocument(xml);
        resultDocument = xsltProcessor.transformToFragment(xml, document);
        var containerElement = document.getElementById(tardiv);

        while (containerElement.hasChildNodes()) {
            containerElement.removeChild(containerElement.lastChild);
        }

        containerElement.appendChild(resultDocument);

    }
	reloaddiv();
}
