document.getElementById('cat').onchange();
function updateClassByValue(srcId, targId) {
    var srcEl = document.getElementById(srcId);
    var targEl = document.getElementById(targId);
    showAllowedOptions(targEl, srcEl.value);
    document.getElementById(targId).onchange();
}
function updateClassByClass(srcId, targId) {
    var srcEl = document.getElementById(srcId);
    var targEl = document.getElementById(targId);
    showAllowedOptions(targEl, getClassFromSelectedOption(srcEl));
}
function getClassFromSelectedOption(el) {
    var selectedOption = '';
    if (el.selectedIndex > -1) {
        selectedOption = el.options[el.selectedIndex].className;
    }
    return selectedOption;
}
function showAllowedOptions(target, allowedClasses) {
    saveOriginalSelect(target);
    var newSelect = getOriginalSelect(target),
        options = newSelect.options,
        option,
        i;
    for (i = options.length - 1; i >= 0; i -= 1) {
        option = options[i];
        if (!optionAllowed(option, allowedClasses)) {
            newSelect.removeChild(option);
        }
    }
    option = createOption('--------------------');
    option = fadedIfEmpty(newSelect, option);
    newSelect.appendChild(option);
    newSelect.selectedIndex = -1;
    newSelect.onchange = target.onchange;
    target.onchange = null;
    target.parentNode.replaceChild(newSelect, target);
}
function saveOriginalSelect(el) {
    if (!el.parentNode.originalSelect) {
        el.parentNode.originalSelect = el.cloneNode(true);
    }
}
function getOriginalSelect(el) {
    return el.parentNode.originalSelect.cloneNode(true);
}
function optionAllowed(option, allowedClasses) {
    return hasOneOfMultipleClasses(option, allowedClasses);
}
function hasOneOfMultipleClasses(el, allowedClasses) {
    var classes = allowedClasses.split(' '),
        i,
        classExists = false;
    for (i = 0; i < classes.length; i += 1) {
        classExists = !!hasClass(el, classes[i]) || classExists;
    }
    return classExists;
}
function hasClass(el, name) {
    return el.className.match(new RegExp('(\\s|^)' + name + '(\\s|$)'));
}
function addClass(el, name) {
    if (!this.hasClass(el, name)) {
        el.className += ' ' + name;
    }
}
function removeClass(el, name) {
    var reg = new RegExp('(\\s|^)' + name + '(\\s|$)');
    if (hasClass(el, name)) {
        el.className = el.className.replace(reg, ' ');
    }
}
function fadedIfEmpty(select, option) {
    if (select.options.length === 0) {
        addClass(option, 'faded');
    }
    return option;
}
function createOption(text, value) {
    var option = document.createElement('option');
    option.appendChild(document.createTextNode(text));
    if (value) {
        option.setAttribute('value', value);
    }
    return option;
}
function MM_jumpmenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}
