function LoadRelationalList(){
var RelationalList0 = new RelationalList('on1_3', 'on1_6', '/xlf/motosplist.xml', 'xlf/motosplistprice.xml'); }
var RELAT_LIST_XML_NOT_LOADED='The XML file has not been loaded, please verifies the file path.',RELAT_LIST_XML_INVALID='You have inserted a invalid XML file, please verify documentation.',NO_XMLHTTP='Your browser does not support XMLHTTP.',FIRED_RL=[];
function RelationalList(mainNode,subNode,mainXML,subXML,mainNodeIndexSelected,subNodeIndexSelected){this.mainNode=this.getInstance(mainNode);this.mainNodeID=mainNode;this.subNode=this.getInstance(subNode);this.subNodeID=subNode;this.selectIndexs=[[],[]];if(mainNodeIndexSelected){if(mainNodeIndexSelected.push){this.selectIndexs[0]=mainNodeIndexSelected;}else{this.selectIndexs[0][0]=mainNodeIndexSelected;}}if(subNodeIndexSelected){if(subNodeIndexSelected.push){this.selectIndexs[1]=subNodeIndexSelected;}else{this.selectIndexs[1][0]=subNodeIndexSelected;}}function clearList(){FIRED_RL=[];};if(this.mainNode!=null&&this.subNode!=null){this._addEventListener(this.mainNode,'click',clearList);this._addEventListener(this.subNode,'click',clearList);this.readXML(mainXML,'main');this.readXML(subXML,'sub');}}RelationalList.prototype={_inArray:function(array,item){for(var i=0;i<array.length;i++){if(array[i]==item)return true;}return false;},_addEventListener:function(el,evt,fn){if(window.addEventListener){el.addEventListener(evt,fn,false);}else if(window.attachEvent){el.attachEvent("on"+evt,fn);}else{el["on"+evt]=fn;}},_fireEvent:function(e,evt){ua=navigator.userAgent;if(ua.match(/MSIE\s([^;]*)/)){e.fireEvent("on"+evt);}else{var ev=document.createEvent("HTMLEvents");ev.initEvent(evt,true,true);e.dispatchEvent(ev);}},_refreshMaster:function(){if(this.subNode.options[this.subNode.selectedIndex]){var masternode=this.subNode.options[this.subNode.selectedIndex].getAttribute('masternode',true);for(var i=0;i<this.mainNode.options.length;i++){if(this.mainNode.options[i].value==masternode){this.mainNode.selectedIndex=i;break;}}}},_refreshSlave:function(){var toLoad=[];for(var i=0;i<this.mainNode.options.length;i++){if(this.mainNode.options[i].selected){if(this.mainNode.options[i].value=='*'){toLoad=[];break;}toLoad[toLoad.length]=this.mainNode.options[i].value;}}if(toLoad.length==0){this.loadNodes(this.subNode,this.subXML);}else{var optElements=new Array(),groupsNode=this.subXML.getElementsByTagName('group'),groupId;for(var i=0;i<groupsNode.length;i++){groupId=groupsNode[i].getAttribute('id');if(this._inArray(toLoad,groupId)){var temp=this._getElements(groupsNode[i]);for(var j=0,l=temp.length;j<l;++j){temp[j].setAttribute('masternode',groupId);optElements[optElements.length]=temp[j];}}}this.insertOptions(optElements,this.subNode);}},_getElements:function(e){var r=[];if(e.hasChildNodes())for(var i=0,l=e.childNodes.length;i<l;i++){if(e.childNodes[i].nodeType==1){r.push(e.childNodes[i]);}}return r;},getInstance:function(ident){var element=document.getElementById(ident);if(element!=null)return element;element=document.getElementsByName(ident);for(var i=0;i<element.length;i++){if(element[i].tagName.toUpperCase()=='SELECT')return element[i];}return null;},selectElements:function(node,indexs){if(indexs.length>0){for(var i=0;i<node.options.length;i++){for(var j=0;j<indexs.length;j++){if(node.options[i].value==indexs[j]){node.options[i].selected=true;}}}}},state_Change:function(xmlDoc,element){var me=this;if(element=='main'){this.mainXML=xmlDoc;this.loadNodes(this.mainNode,this.mainXML);me.selectElements(me.mainNode,me.selectIndexs[0]);this._addEventListener(this.mainNode,'change',function(){if(!me._inArray(FIRED_RL,me.subNodeID)){FIRED_RL[FIRED_RL.length]=me.mainNodeID;FIRED_RL[FIRED_RL.length]=me.subNodeID;me._refreshSlave();me._fireEvent(me.subNode,'change');}});}else{this.subXML=xmlDoc;this.loadNodes(this.subNode,this.subXML);if(me.selectIndexs[0].length>0){me._refreshSlave();}me.selectElements(me.subNode,me.selectIndexs[1]);if(this.subNode.options.length>=(this.selectIndexs[1]+1)){this.subNode.selectedIndex=this.selectIndexs[1];}this._addEventListener(this.subNode,'change',function(){if(!me._inArray(FIRED_RL,me.mainNodeID)){FIRED_RL[FIRED_RL.length]=me.subNodeID;FIRED_RL[FIRED_RL.length]=me.mainNodeID;me._refreshMaster();me._fireEvent(me.mainNode,'change');}});}},loadNodes:function(selectNode,xml){var me=this,optElements=new Array(),groupsNode=xml.getElementsByTagName('group'),groupId;if(groupsNode.length==0){var n=xml.firstChild;while(n&&n.nodeName&&n.nodeName.toLowerCase()!='list')n=n.nextSibling;if(n)optElements=me._getElements(n);}else{for(var i=0;i<groupsNode.length;i++){groupId=groupsNode[i].getAttribute('id');var temp=me._getElements(groupsNode[i]);for(var j=0,l=temp.length;j<l;++j){temp[j].setAttribute('masternode',groupId);optElements[optElements.length]=temp[j];}}}if(optElements.length==0){alert(RELAT_LIST_XML_INVALID);return;}this.insertOptions(optElements,selectNode);},readXML:function(xmlUrl,element){var xmlHTTP,me=this;xmlUrl+='?'+(new Date()).getTime();if(window.XMLHttpRequest){xmlHTTP=new XMLHttpRequest();xmlHTTP.onreadystatechange=function(){if(xmlHTTP.readyState==4)if(xmlHTTP.status==200){me.state_Change(xmlHTTP.responseXML,element);}else{alert(RELAT_LIST_XML_NOT_LOADED);}};xmlHTTP.open('GET',xmlUrl,true);xmlHTTP.send(null);return true;}else if(window.ActiveXObject){var i,activexlist=['MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP','Microsoft.XMLHTTP','Microsoft.XMLDOM'];for(i=0;i<activexlist.length;i++){try{xmlHTTP=new ActiveXObject(activexlist[i]);break;}catch(e){}};if(xmlHTTP){if(i==activexlist.length-1){xmlHTTP.onreadystatechange=function(){if(xmlHTTP.readyState==4)if(xmlHTTP.status==200){me.state_Change(xmlHTTP,element);}else{alert(RELAT_LIST_XML_NOT_LOADED);}};xmlHTTP.load(xmlUrl);}else{xmlHTTP.onreadystatechange=function(){if(xmlHTTP.readyState==4)if(xmlHTTP.status==200){me.state_Change(xmlHTTP.responseXML,element);}else{alert(RELAT_LIST_XML_NOT_LOADED);}};xmlHTTP.open('GET',xmlUrl,true);xmlHTTP.send(null);}return true;}}alert(NO_XMLHTTP);return false;},clearOptions:function(selectDomElement){while(selectDomElement.firstChild){selectDomElement.removeChild(selectDomElement.firstChild);}},insertOptions:function(optElements,selectDomElement){function _createOpt(e){var optTag,optValue=e.getAttribute('value'),optText=(e.firstChild)?e.firstChild.nodeValue:null;if(optValue!=null&&optText!=null){optTag=document.createElement('OPTION');optTag.appendChild(document.createTextNode(optText));optTag.value=optValue;optTag.setAttribute('masternode',(e.getAttribute('masternode'))?e.getAttribute('masternode'):e.parentNode.getAttribute('masternode'),true);return optTag;}return null;};this.clearOptions(selectDomElement);var optGroupTag,optTag;for(var i=0;i<optElements.length;i++){if(optElements[i].tagName.toUpperCase()=='OPTGROUP'){var label=optElements[i].getAttribute('label');optGroupTag=document.createElement('OPTGROUP');if(label!=null)optGroupTag.setAttribute('label',label);optGroupTag.setAttribute('masternode',optElements[i].getAttribute('masternode'),true);if(optElements[i].hasChildNodes()){for(var j=0,l=optElements[i].childNodes.length;j<l;j++){if(optElements[i].childNodes[j].nodeType==1){optTag=_createOpt(optElements[i].childNodes[j]);if(optTag)optGroupTag.appendChild(optTag);}}}if(navigator.userAgent.indexOf('MSIE')!=-1){selectDomElement.appendChild(optGroupTag);}else{selectDomElement.add(optGroupTag,null);}}else{optTag=_createOpt(optElements[i]);if(optTag){if(navigator.userAgent.indexOf('MSIE')!=-1){selectDomElement.appendChild(optTag);}else{selectDomElement.add(optTag,null);}}}}}};if(document.addEventListener){window.addEventListener('load',function(){LoadRelationalList();},false);}else if(document.attachEvent){window.attachEvent('onload',function(){LoadRelationalList();});}else{window["onload"]=function(){LoadRelationalList();};};
