﻿/* 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;
var unSYSpagenum = 0;
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;
          
          //获得页面标签的数组
          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];
          			}	
          		}
          }
	  
	  for (var i=0; i < unSYSpagenum; i++){
	        num = i + 1; 
	        if (pagets[i] != ""){
	  		if (i == 0)
	  			buttonnodes += "<span id='zpartsign"+num+"'><a href='#' title='"+pagets[i]+"' class='selected'>"+pagets[i]+"</a> |</span> ";
	  	        else
	  	        	buttonnodes += "<span id='zpartsign"+num+"'><a href='javascript:submitpagevalue("+num+",0);' title='"+pagets[i]+"'>"+pagets[i]+"</a> |</span> ";
	  	}
	  }
	  
      if (buttonnodes=="")buttonnodes = "<font style='color:#aaa'><strong>The lesson not bookmark!</strong></font>";

      document.getElementById("leftpagebutton").innerHTML=buttonnodes;
}

//实现翻页功能的操作
var partnumspan = 0, partnumone = 0, partmidsign = 0;
function submitpagevalue(showtitle,showsign){
	        if (document.getElementById("zpartsign1") != null)
	        	document.getElementById("zpartsign1").innerHTML = "<span id='zpartsign1'><a href='javascript:submitpagevalue("+1+",0);' title='"+pagets[0]+"'>"+pagets[0]+"</a> |</span> ";
	        
	        
	        partmidsign = "zpartsign"+showtitle;
	        
	    	if (partnumone != 0)
	    		document.getElementById(partnumspan).innerHTML = "<span id='zpartsign"+partnumone+"'><a href='javascript:submitpagevalue("+partnumone+",0);' title='"+pagets[partnumone-1]+"'>"+pagets[partnumone-1]+"</a> |</span> ";
	    		
	    	//分块的明显标志	
	    	if (document.getElementById(partmidsign) == null){
	    		for (var i=showtitle; i > 0; i--){
	    			var showtimesign = "zpartsign"+i;
	    			if (document.getElementById(showtimesign) != null){
	    				document.getElementById(showtimesign).innerHTML = "<span id='zpartsign"+i+"'><a href='javascript:submitpagevalue("+i+",0);' title='"+pagets[i-1]+"' class='selected'>"+pagets[i-1]+"</a> |</span> ";
	    				break;
	    			}
	    		}
	    	}
	    	
	   	if (document.getElementById(partmidsign) != null){
	   		partnumspan = "zpartsign"+showtitle;
	   		partnumone = showtitle;
	    		document.getElementById(partnumspan).innerHTML = "<span id='zpartsign"+partnumone+"'><a href='javascript:submitpagevalue("+partnumone+",0);' title='"+pagets[partnumone-1]+"' class='selected'>"+pagets[partnumone-1]+"</a> |</span> ";
	    		parent.frames['contentFramename'].scroll(0,pagepost_y[showtitle - 1]-20); 
	     	}
	    
	    if (showsign == 0)
	    	parent.frames['titleFramename'].submitpagevalue(showtitle,1);
}
