/* JavaScript Document */
//功能描述：关于xml文件的转换

/********************************************************************
 功能： 类的初始化
 类型： 初始化变量
 参数：	name:  实例名称 xmlfile  :  xml文件名称
 返回值: 无
 创建人: zxw			更改时间：06/06/08 10:43
********************************************************************/
function getPage(name,xmlFile){
        this.name = name;      
	this.xmlFile = xmlFile; 
}

/********************************************************************
 功能： 创建 document 对象
 类型： 
 参数：	 无
 返回值: 无
 创建人: zxw			更改时间：06/06/08 10:43
********************************************************************/
getPage.prototype.createXMLDOM = function(fileRoute){ //生成XMLDOM对象
	/*var xmldom;
	if (window.ActiveXObject){
		var xmldom = new ActiveXObject("Microsoft.XMLDOM");
	} else {
		if (document.implementation && document.implementation.createDocument) {
			var xmldom = document.implementation.createDocument("","doc",null);
		}
	}
	xmldom.async = false;
	xmldom.resolveExternals = false;
	xmldom.validateOnParse = false;
	xmldom.preserveWhiteSpace = true;
	return xmldom; */
    var agt = navigator.userAgent.toLowerCase();
        newword_is_ie = (agt.indexOf("msie")!=-1 && document.all);
            
    xmlhttp=null;
    if (window.XMLHttpRequest)
    { // code for all new browsers
       xmlhttp=new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {// code for IE5 and IE6
       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (xmlhttp!=null)
    {
      //xmlhttp.onreadystatechange=state_Change;
      xmlhttp.open("GET",fileRoute,false);
      xmlhttp.send(null);
      xmlDoc = xmlhttp.responseXML;//.documentElement;
    }
    else
    {
      alert("Your browser does not support XMLHTTP.");
      xmlDoc = null;
    }  
    return xmlDoc;  
}

/********************************************************************
 功能： 创建生成HTML
 类型：  createCourse() 读取课程的xml文件并把它转换成html
 				 getElementById(String elementId) 根据给定的id去找对应的元素
 参数：	 无
 返回值: 无
 创建人: zxw			更改时间：06/06/08 10:43
********************************************************************/
getPage.prototype.createHtml = function() { //生成并打印
	var xmldom = this.createXMLDOM(this.xmlFile);
	if (xmldom) {
		this.createCourse(xmldom);
	} else {
		this.html = 'Load XML Error';
	}
}

/********************************************************************
 功能： 课程内容的生成
 类型： 接口函数
 参数：	obj: 需要读取的xml文件的对象
        id： 判断传入的节点 id为null时为根节点 
        getElementsByTagName(String tagname) 返回标签名字为tagname的所有元素
        item(i)  按照给定的索引返回节点
 返回值: 无
 创建人: zxw			更改时间：06/06/08 10:43
********************************************************************/
var buttonnodes = "";
var num = 0, tnewpage = 1, showNum = 4;
var unSYSpagenum = 0, stratnum = 0, endnum = 4;
var pagenodes;
var pagesx = new Array(); //页面标签顺序
var pagets = new Array(); //页面标签提示
var pagepost_x = new Array(); //页面左上角坐标
var pagepost_y = new Array(); //页面左上角坐标
var pagelsx = 0, pagelts = ""; //临时数据
var pagepostls_x = 0, pagepostls_y = 0; //页面左上角临时坐标
getPage.prototype.createCourse = function(obj, id) {
	//生成指定编号节点的html信息
	if (typeof(id) == 'undefined') id = null;
	  //如果没有id传入则为根节点
	  var unSYSnodes = ""; //根节点的获取
	  
	   //获取整个xml文件的子元素  
	   unSYSnodes = obj.getElementsByTagName('Page');
	   
	  //获取分页标签2007-06-11
	  pagenodes = obj.getElementsByTagName('pagebox'); 
	  unSYSpagenum = pagenodes.length;
	  if (pageNum > unSYSpagenum){
	  	showNum = unSYSpagenum;
	  	endnum = unSYSpagenum;
	  }
          
          //获得页面标签的数组
          for (var t=0; t < unSYSpagenum; t++){
          	pagelsx = parseInt(pagenodes.item(t).getAttribute("tabindex"));
          	pagelts = pagenodes.item(t).getAttribute("tabtext");
          	pagepostls_x = pagenodes.item(t).getAttribute("left");
          	pagepostls_y = pagenodes.item(t).getAttribute("top");
          	


          		for (var x=t; x	>= 0; x--){
          		        if (x == 0){
          		        	pagesx[x] = pagelsx;
          				pagets[x] = pagelts;
          				pagepost_x[x] = pagepostls_x;
          				pagepost_y[x] = pagepostls_y;
          				break;
          		        }
          		        
          			if (pagelsx > pagesx[x-1]){
          				pagesx[x] = pagelsx;
          				pagets[x] = pagelts;
          				pagepost_x[x] = pagepostls_x;
          				pagepost_y[x] = pagepostls_y;
          				break;
          			}
          			
          			if (pagelsx < pagesx[x-1]){
          				pagesx[x] = pagesx[x-1];
          				pagets[x] = pagets[x-1];
          				pagepost_x[x] = pagepost_x[x-1];
          				pagepost_y[x] = pagepost_y[x-1];
          			}	
          		}
          }
         
	  buttonnodes += "<span id='Prevstr' class='AtStart'>&lt;&lt;Prev</span>&nbsp;";
	  
	  for (var i=0; i < showNum; i++){
	        num = i + 1; 
	        if (i == 0)
	        	buttonnodes += "<span id='zpagesign"+num+"'>"+num+"</span>&nbsp;";
		else
	  		buttonnodes += "<span id='zpagesign"+num+"'><a href='javascript:submitpagevalue("+num+",0);' title='"+pagets[i]+"'>"+num+"</a></span>&nbsp;";
	  }

	  if (pageNum+1 < unSYSpagenum){
	  	num = unSYSpagenum - 1;
	  	buttonnodes += "<span class='break'>...</span>";
	  	buttonnodes += "<span id='zpagesign"+num+"'><a href='javascript:submitpagevalue("+unSYSpagenum+",0);' title='"+pagets[num]+"'>"+unSYSpagenum+"</a></span>&nbsp;";
	  }
	  
	  if (unSYSpagenum == 1)
	  	buttonnodes += "<span id='Nextend' class='AtStart'>Next>></span>";
	  else
	  	buttonnodes += "<span id='Nextend'><a href='javascript:showChangeNum(1);' class='Next'>Next>></a></span>";
	 
	  document.getElementById("titlebutton").innerHTML=buttonnodes;
}


function showChangeNum(sign){
	if (sign == 1){
	  tnewpage = tnewpage + 1;
	  if (tnewpage >= unSYSpagenum)
	  	tnewpage = unSYSpagenum;
	  submitpagevalue(tnewpage,0);
	}
	if (sign == 0){
	  tnewpage = tnewpage - 1;
	  if (tnewpage <= 0)
	  	tnewpage = 1;
	  submitpagevalue(tnewpage,0);
	}
}
	

//实现翻页功能的操作
var partnumspan = 0, partnumone = 0;
function submitpagevalue(showtitle,showsign){
	if (showsign == 0)
	    	parent.frames['pageFramename'].submitpagevalue(showtitle,1);
		
	if (partnumone != 0)
		document.getElementById(partnumspan).innerHTML = "<span id='zpagesign"+partnumone+"'><a href='javascript:submitpagevalue("+partnumone+",0);' title='"+pagets[partnumone-1]+"'>"+partnumone+"</a></span>";
	    			
	var num = 0;
		endnum = showtitle + pageNum - 2;
        	stratnum = showtitle - 2;
        	if (endnum > unSYSpagenum){
        	 	stratnum = unSYSpagenum - pageNum;
        	 	endnum = unSYSpagenum;
        	}
        	
        	if (stratnum < 0) stratnum = 0;	
        	
        	buttonnodes = "";
        	
        	if (showtitle <= 1)
        		buttonnodes += "<span id='Prevstr' class='AtStart'>&lt;&lt;Prev</span>&nbsp;";
        	else
        		buttonnodes += "<a href='javascript:showChangeNum(0,0);' class='Next'>&lt;&lt;Prev</a>&nbsp;";
	        
	  	for (var i=stratnum; i < endnum; i++){
	        	num = i + 1; 
	  		buttonnodes += "<span id='zpagesign"+num+"'><a href='javascript:submitpagevalue("+num+",0);' title='"+pagets[i]+"'>"+num+"</a></span>&nbsp;";
	  	}
	  
	  	if (endnum+1 < unSYSpagenum){
	  		num = unSYSpagenum;
	  		buttonnodes += "<span class='break'>...</span>";
	  		buttonnodes += "<span id='zpagesign"+num+"'><a href='javascript:submitpagevalue("+num+",0);' title='"+pagets[unSYSpagenum-1]+"'>"+num+"</a></span>&nbsp;";
	  	}
	  	
	  	if (endnum >= unSYSpagenum + 1){
	  		num = unSYSpagenum;
	  		buttonnodes += "<span id='zpagesign"+num+"'><a href='javascript:submitpagevalue("+num+",0);' title='"+pagets[unSYSpagenum-1]+"'>"+num+"</a></span>&nbsp;";
	  	}
	  	
	  	if (showtitle < unSYSpagenum && unSYSpagenum > 1)
	  		buttonnodes += "&nbsp;<a href='javascript:showChangeNum(1,0);' class='Next'>Next&gt;&gt;</a>&nbsp;";
	  	else
	  		buttonnodes += "<span id='Nextend' class='AtStart'>Next>></span>";
	        
	  	document.getElementById("titlebutton").innerHTML=buttonnodes;
	  	
        tnewpage = showtitle;
	
	partnumspan = "zpagesign"+showtitle;
	partnumone = showtitle;
	document.getElementById(partnumspan).innerHTML = "<span id='zpagesign"+partnumone+"' class='this-page'>"+partnumone+"</span>";
	    
	parent.frames['contentFramename'].scroll(0,pagepost_y[showtitle - 1]-20); 
}

