2erlei/public/js/dropdown.js

60 lines
1.5 KiB
JavaScript

// <script>
/* dd = DropDown
*
* @version 0.1
* @author Matthias Viehweger <kronn@kronn.de>
*/
var dd = {
faw: '',
addEvent: function(elm, evType, fn, useCapture) {
// cross-browser event handling for IE5+, NS6 and Mozilla
// By Scott Andrew
if (elm.addEventListener) {
elm.addEventListener(evType, fn, useCapture);
return true;
} else if (elm.attachEvent) {
var r = elm.attachEvent('on' + evType, fn);
return r;
} else {
elm['on' + evType] = fn;
}
},
init: function() {
// auf Funktionen prüfen
if (!document.getElementsByTagName) return;
if (!document.getElementById) return;
// firmenartwaehler anzeigen
dd.faw = $('firmenartwaehler');
dd.faw.className = '';
// firmenartwaehler mit event verknuepfen
dd.addEvent(dd.faw, 'change', dd.show, false);
// firmenfelder verstecken
dd.hideAll();
// ausgewähltes Firmenfeld anzeigen
dd.show();
},
hideAll: function() {
// alle firmenfelder verstecken
var firmentypen = $('firmenauswahl').getElementsByTagName('div')
for( var i = 0; i < firmentypen.length; i++ ) {
if (firmentypen[i].className.substr(0,5) != 'firma') continue;
firmentypen[i].className = 'hidden';
}
},
show: function() {
// ein firmenfeld anzeigen ( class="firma" )
dd.hideAll();
var dropdown = dd.faw.getElementsByTagName('select')[0];
var wert = dropdown.options[dropdown.options.selectedIndex].value;
$('typ-' + wert).className = 'firma';
}
}
dd.addEvent(window, 'load', dd.init, false);