function toggleCategClass(num) {
    if (navigator.userAgent.match('AppleWebKit/[1-4][0-9]{2}')) { return toggleCategClassOldVersion(num) }
    var b = document.body;
    var c = 'cat'+num+'eg';
    var ule = $($('li_'+c).getElementsByTagName('ul')[0]);
    ule.s=ule.s || new Fx.Slide(ule,{mode:'vertical', duration:25 * ule.getChildren().length + 100});
    if (b.hasClass(c)) {
        var fn=function(){
            b.removeClass(c);
            this.removeEvent('onComplete',fn);
        };
        ule.s.addEvent('onComplete',fn);
        ule.s.slideOut();
    } else {
        b.addClass(c);
        var fn=function(){
            this.element.getParent().setStyle('height','auto');
            this.removeEvent('onComplete',fn);
        }
        ule.s.addEvent('onComplete',fn);
        ule.s.hide();
        ule.s.slideIn();
    }
}

/* these pre-date our use of moo.fx */
function toggleCategClassOldVersion(it) {
    c = document.body.className;
    if (c.match('cat'+it+'eg')) {
        c = c.replace('cat'+it+'eg',' ');
        c = c.replace('\s+',' ');
        c = c.replace(/\s+$/,'');
    } else { c += ' cat'+it+'eg'; }
    document.body.className = c;
}
function setSrc(id,url) { document.getElementById(id).src = url; }
function moveElementInto(src,dst) { document.getElementById(dst).appendChild(document.getElementById(src)) }
function toggleClass(it) { toggleCategClass(it) }

