﻿<!--
Function.prototype.bind = function(object) { 
  var method = this; 
  return function() { 
    method.apply(object, arguments); 
  } 
}
// Define Constitution Function
// xmlFile
// formName
// mainClassName
// subClassName
// mainValue
// subValue
function xmlMenu2(xmlFile,formName,mainClassName,subClassName,mainValue,subValue){
	// Input Basic Parameter
	this.formName			= formName;
	this.mainClass			= eval('document.' + formName + '.' + mainClassName);
	this.subClass			= eval('document.' + formName + '.' + subClassName);
	
	this.req				= null;
	
	this.mainClass.objValue	= mainValue;
	this.mainClass.parent 	= this;
	this.mainClass.subCls	= this.subClass;
	this.mainClass.onchange	= this.changeMainClass;
	
	this.subClass.objValue	= subValue;
	this.subClass.parent 	= this;
	this.subClass.subCls	= null;
	this.subClass.onchange 	= this.changeSubClass;
	
	// Init Xml Objects
	this.xmlFile	= xmlFile;
	this.xmlDoc 	= null;
	this.xmlObj 	= null;

	// Other Flag Variables
	this.is_selected	= "";
	this.url			= "";
	this.operClass		= null;
	
	this.strVersion		= 'cn';
}

xmlMenu2.prototype.setVersion = function(sVer){
	this.strVersion = sVer;
}

// Initialization
xmlMenu2.prototype.Init = function (){
	this.xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	this.xmlDoc.async = "false";

	// Clean Selections
	this.deleteSelection(this.mainClass);
	this.deleteSelection(this.subClass);

	// Set Default Value
	this.getXml(this.mainClass,0);	
}

// get Xml Data From XmlHttpRequest
xmlMenu2.prototype.getXml = function(sClass,intID){
	this.xmlDoc.load(this.xmlFile);
	this.xmlDoc.setProperty("SelectionLanguage","XPath");
	var path = "/Website/Catalog/intParentID[text()='"+intID+"']/parent::*";
	this.xmlObj = this.xmlDoc.documentElement.selectNodes(path);
	this.fillXml(sClass);
}

// fill Xml Data to Selection
xmlMenu2.prototype.fillXml = function(sClass){
	this.deleteSelection(sClass);
	if(this.xmlObj){
		for(var i=0;i<this.xmlObj.length;i++){
			if(this.strVersion=='cn')
			{
				labels = this.xmlObj(i).childNodes[0].text;
			}else
			{
				labels = this.xmlObj(i).childNodes[1].text;
			}
			values = this.xmlObj(i).getAttribute("ID");
			this.addSelection(sClass,i,labels,values);
			if(sClass.objValue==values){
				sClass.options[i+1].selected = true;
			}
		}
		if(sClass.subCls&&sClass.objValue){this.getXml(sClass.subCls,sClass.objValue);}
	}
}

// Have a Test
xmlMenu2.prototype.changeMainClass = function(){
	this.parent.deleteSelection(this.parent.subClass);
	this.parent.subClass.objValue = "";
	if(this[this.selectedIndex].value){
		this.objValue = this[this.selectedIndex].value;
		this.parent.getXml(this.parent.subClass,this.objValue);
	}
}
xmlMenu2.prototype.changeSubClass = function(){
}
// Clean Select's Options
xmlMenu2.prototype.deleteSelection = function(objTemp){
	if(objTemp!=null)
	{ 
		for (i=objTemp.options.length;i>=0;i--)
		objTemp.options[i]=null ;
	}
	objTemp.add(document.createElement("OPTION"));
	if(this.strVersion=='cn')
	{
		objTemp.options[0].text="--请选择--";
	}
	else
	{
		objTemp.options[0].text="--Select--";
	}
	objTemp.options[0].value="";
}

// Add Options To Select
xmlMenu2.prototype.addSelection = function(objTemp,i,labels,values)
{
	objTemp.add(document.createElement("OPTION"));
	objTemp.options[i+1].text=labels;
	objTemp.options[i+1].value=values;
}
-->