Spade
Mini Shell
| Directory:~$ /home/lmsyaran/www/modules/mod_vertical_menu/params/offlajncombine/offlajncombine/ |
| [Home] [System Details] [Kill Me] |
dojo.declare("OfflajnCombine", null, {
constructor: function(args) {
dojo.mixin(this,args);
this.fields = new Array();
this.init();
},
init: function() {
this.hidden = dojo.byId(this.id);
//console.log(this.hidden.value);
dojo.connect(this.hidden, 'onchange', this,
'reset');
for(var i = 0;i < this.num; i++){
this.fields[i] = dojo.byId(this.id+i);
this.fields[i].combineobj = this;
if(this.fields[i].loaded) this.fields[i].loaded();
dojo.connect(this.fields[i], 'change', this,
'change');
}
this.reset();
this.outer = dojo.byId('offlajncombine_outer' + this.id);
this.items = dojo.query('.offlajncombinefieldcontainer',
this.outer);
if(this.switcherid) {
this.switcher = dojo.byId(this.switcherid);
dojo.connect(this.switcher, 'onchange', this,
'hider');
this.hider();
}
},
reset: function(){
this.value = this.hidden.value;
//console.log(this.hidden);
var values = this.value.split('|*|');
for(var i = 0;i < this.num; i++){
if(this.fields[i].value != values[i]){
this.fields[i].value = values[i] === undefined ? '' :
values[i];
OfflajnFireEvent(this.fields[i], 'change');
}
}
},
change: function(){
var value = '';
for(var i = 0;i < this.num; i++){
value+= this.fields[i].value+'|*|';
}
this.hidden.value = value;
OfflajnFireEvent(this.hidden, 'change');
},
hider: function() {
var w = dojo.position(this.outer).w;
if(!this.hiderdiv) {
//this.hiderdiv = dojo.query('.offlajncombine_hider',
this.switcher.parentNode.parentNode.parentNode)[0];
this.hiderdiv = dojo.query('.offlajncombine_hider',
this.switcher.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode)[0];
dojo.style(this.hiderdiv, 'width', w - 38 +
'px');
}
var switcherVal = this.switcher.value;
if(this.islist == 1){
if(switcherVal > 0) {
switcherVal=0;
} else {
switcherVal=1;
}
}
if(switcherVal == 0) {
this.items.forEach(function(item, i){
if(i >= this.hideafter && item !=
this.switcher.parentNode.parentNode) {
item.style.opacity = 0.5;
item.style.pointerEvents = 'none';
}
}, this);
if(this.hideafter == 0)
dojo.style(this.hiderdiv, 'display', 'block');
} else {
this.items.forEach(function(item, i){
if(item != this.switcher.parentNode.parentNode) {
item.style.opacity = '';
item.style.pointerEvents = '';
}
}, this);
if(this.hideafter == 0)
dojo.style(this.hiderdiv, 'display', 'none');
}
}
});