<html>
<head>
<meta charset="windows-1251" />
</head>
<body>
<div id="selects"></div>
<div id="out"></div>
<script>
SubObject={
clone: function(){
var o=Object.create(this)
if(this.init) this.init.call(o)
return o
},
extend: function(o){
for(var i in o) {if(!o.hasOwnProperty(i)) return this; this[i]=o[i]} return this
}
}
Select=SubObject.clone()
Select.extend({
init: function(){
this.self=document.createElement("select")
this.self.onchange=function(){this.setChild()}.bind(this)
this.parent=selects
},
append: function(){this.parent.appendChild(this.self); return this},
setChild: function(){
if(this.child) this.parent.removeChild(this.child.self)
this.child=Select.clone()
this.child.setValues(window[this.self.value])
this.child.self.onchange=function(){out.innerHTML=this.value}
this.child.self.onchange()
this.child.append()
return this
},
setValues: function(values){
for(var i in values) {
if(!(values.hasOwnProperty(i))) return this; this.self.appendChild(new Option(values[i], i))
}
return this
}
})
main={
hardDrive: "жесткий диск",
videoCard: "видеокарта",
audioCard: "аудиокарта"
}
hardDrive={
"$1": "отремонтировать XHard",
"$2": "отремонтировать YHard",
"$3": "отремонтировать ZHard",
}
videoCard={
"$10": "отремонтировать XVideo",
"$20": "отремонтировать YVideo",
"$30": "отремонтировать ZVideo",
}
audioCard={
"$100": "отремонтировать XAudio",
"$200": "отремонтировать YAudio",
"$300": "отремонтировать ZAudio",
}
select=Select.clone()
select
.setValues(main)
.append()
.setChild()
</script>
</body>
</html>