// JavaScript Document


//var ff=(typeof document.implementation!='undefined')&&(typeof document.implementation.createDocument!='undefined');
var ie=(typeof window.ActiveXObject!='undefined');
if(ie)
{ 
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false; 
window.onload = showClass1;
xmlDoc.load("chart/ClassInfo.xml");
} 
else
{ 
var xmlDoc=document.implementation.createDocument("","",null) 
xmlDoc.onload = showFFClass1;
xmlDoc.load("chart/ClassInfo.xml");
}
if(document.implementation && document.implementation.createDocument)
{
    if( document.implementation.hasFeature("XPath", "3.0") )
    {
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;
}
Element.prototype.selectNodes = function(cXPathString)
       {
          if(this.ownerDocument.selectNodes)
          {
             return this.ownerDocument.selectNodes(cXPathString, this);
          }
          else{throw "For XML Elements Only";}
       }
    }
    if( document.implementation.hasFeature("XPath", "3.0") )
    {
       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;
          }
       }
       Element.prototype.selectSingleNode = function(cXPathString)
       {    
          if(this.ownerDocument.selectSingleNode)
          {
             return this.ownerDocument.selectSingleNode(cXPathString, this);
          }
          else{throw "For XML Elements Only";}
       }
    }
}
//FF列表1
function showFFClass1() 
{ 
var selectIndex = 0;
var firstValue = 0;
var xmlNodes = xmlDoc.getElementsByTagName("Class1"); 
for(i = 0;i <xmlNodes.length;i++)
{
//创建一个select的option元素
var selectOption = document.createElement("option");
//设置option元素的value属性为Class1节点的ID属性的值
selectOption.value = xmlNodes[i].getAttribute("ID");
//设置option元素显示的信息为Class1节点的ClassName属性的值
selectOption.text = xmlNodes[i].getAttribute("ClassName");
//获取默认显示的option的选中索引值
if (firstValue == selectOption.value) selectIndex = i;
//向表单中名字(id)为Class1的select对象追加新的Opiton元素
document.getElementById("Class1").options.add(selectOption);
}
}
//IE列表1
function showClass1()
{
var selectIndex = 0;
var firstValue = 0;
//IE下定位根元素下的子节点(Class1)
var xmlNodes = xmlDoc.documentElement.selectSingleNode("ClassInfos").childNodes;
//遍历所有节点(每一个Class1)
for(var i = 0; i < xmlNodes.length; i++)
{
var selectOption = document.createElement("option");
selectOption.value = xmlNodes[i].getAttribute("ID");
selectOption.text = xmlNodes[i].getAttribute("ClassName");
if (firstValue == selectOption.value) selectIndex = i;
document.getElementById("Class1").options.add(selectOption);
}
//document.getElementById("Class1").selectedIndex = selectIndex;     //索引定位，用于修改信息时使用
//showClass2(1);
}
//列表2
function showClass2(isFirst)
{
var selectIndex = 0;
//判断是不是第一次初始化列表
if(isFirst == 1) var firstValue = 0;
//移除原来列表数据
document.getElementById("Class2").options.length = 0;
//获取类别一选中的索引值
var ClassIndex = document.getElementById("Class1").selectedIndex;
//获得第一个类别当前值
var selectValue = document.getElementById("Class1").options[ClassIndex].value;

//查找对应的满足条件的下一层次的数据
var updateNodes = xmlDoc.documentElement.selectNodes("//Class1[@ID='" + selectValue +"']/Class2");
for(var i = 0; i < updateNodes.length; i++)
{
var selectOption = document.createElement("option");
selectOption.value = updateNodes[i].getAttribute("ID");
selectOption.text = updateNodes[i].getAttribute("ClassName");
if (firstValue == selectOption.value) selectIndex = i;
document.getElementById("Class2").options.add(selectOption);
}
showClass3(1);
}
//列表3 
function showClass3(isFirst)
{
	//var selectIndex = 0;
	//判断是不是第一次初始化列表
	if(isFirst == 0) var firstValue = 1;
	//移除原来列表数据
//document.getElementById("Class3").options.length = 0;
 document.getElementById("show_city").innerHTML=""
	//获取类别一选中的索引值
var ClassIndex = document.getElementById("Class2").selectedIndex;
//获得第一个类别当前值
var selectValue = document.getElementById("Class2").options[ClassIndex].value;
var updateNodes = xmlDoc.documentElement.selectNodes("//Class2[@ID='" + selectValue + "']/Class3");
	//alert(updateNodes.length)
	for(var i = 0; i < updateNodes.length; i++)
	{
		//var selectOption = document.createElement("option");
		//selectOption.value = updateNodes[i].getAttribute("ID");
		//selectOption.text = updateNodes[i].getAttribute("ClassName");
		//if (firstValue == selectOption.value) selectIndex = i;
		//document.getElementById("Class3").options.add(selectOption);
		 citysdiv=document.getElementById("show_city")
		if (i%3==0) {
		   citysdiv.innerHTML+="<br/>"
		} 
	citysdiv.innerHTML+=""+updateNodes[i].getAttribute("ClassName")+"<input type='checkbox'  value='"+updateNodes[i].getAttribute("ClassName")+"'  id='Class3' name='Class3' />";
	}
	
}

