function conditional_block(cond, id) {
    var true_block = document.getElementById(id);
    var false_block = document.getElementById(id + '_else');
    if (cond) {
        if (true_block) {
            var display = true_block.getAttribute('mt:display_style');
            if (!display && false_block)
                display = false_block.getAttribute('mt:display_style');
            if (!display) display = '';
            true_block.style.display = display;
            DOM.removeClassName(true_block, 'hidden');
        }
        if (false_block) {
            false_block.style.display = 'none';
            DOM.addClassName(false_block, 'hidden');
        }
    }
    else {
        if (true_block) {
            true_block.style.display = 'none';
            DOM.addClassName(true_block, 'hidden');
        }
        if (false_block) {
            var display = false_block.getAttribute('mt:display_style');
            if (!display && true_block)
                display = false_block.getAttribute('mt:display_style');
            if (!display) display = '';
            false_block.style.display = display;
            DOM.removeClassName(false_block, 'hidden');
        }
    }
}





/***
 * Utility functions
 */

req = null;
function getCommenterName() {
    var u = mtGetUser();
    if (u && u.name) return u.name;
    return "";
}

function trimString (str) {
    str = this != window? this : str;
    return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

defined = function( x ) { return x !== undefined; };

if ( !window.Event )
    try { window.Event = {} } catch(e) { };

Event.prep = function( ev ) {
        ev = ev || window.event;
        if( !defined( ev.stop ) )
            ev.stop = this.stop;
        if( !defined( ev.target ) )
            ev.target = ev.srcElement;
        if( !defined( ev.relatedTarget ) ) {
            ev.relatedTarget = (event.type == "mouseover" || event.type == "mouseenter")
                ? ev.fromElement
                : ev.toElement;
        }
        return ev;
    };

if ( !window.DOM )
    DOM = {

        getElement: function( e ) {
            return (typeof e == "string" || typeof e == "number") ? document.getElementById( e ) : e;
        },
    
    
        addEventListener: function( e, en, f, uc ) {
            try {
                if( e.addEventListener )
                    e.addEventListener( en, f, uc );
                else if( e.attachEvent )
                    e.attachEvent( "on" + en, f );
                else
                    e[ "on" + en ] = f;
            } catch( e ) {}
        },

    
        getClassNames: function( e ) {
            if( !e || !e.className )
                return [];
            return e.className.split( /\s+/g );
        },
    
    
        hasClassName: function( e, cn ) {
            e = DOM.getElement( e );
            if( !e || !e.className )
                return false;
            var cs = DOM.getClassNames( e );
            for( var i = 0; i < cs.length; i++ ) {
                if( cs[ i ] == cn )
                    return true;
            }
            return false;
        },
    
    
        addClassName: function( e, cn ) {
            e = DOM.getElement( e );
            if( !e || !cn )
                return false;
            var cs = DOM.getClassNames( e );
            for( var i = 0; i < cs.length; i++ ) {
                if( cs[ i ] == cn )
                    return true;
            }
            cs.push( cn );
            e.className = cs.join( " " );
            return false;
        },
    
    
        removeClassName: function( e, cn ) {
            var r = false;
            e = DOM.getElement( e );
            if( !e || !e.className || !cn )
                return r;
            var cs = (e.className && e.className.length)
                ? e.className.split( /\s+/g )
                : [];
            var ncs = [];
            /* support regex */
            if( cn instanceof RegExp ) {
                for( var i = 0; i < cs.length; i++ ) {
                    if ( cn.test( cs[ i ] ) ) {
                        r = true;
                        continue;
                    }
                    ncs.push( cs[ i ] );
                }
            } else {
                for( var i = 0; i < cs.length; i++ ) {
                    if( cs[ i ] == cn ) {
                        r = true;
                        continue;
                    }
                    ncs.push( cs[ i ] );
                }
            }
            if( r )
                e.className = ncs.join( " " );
            return r;
        },


        getElementsByTagAndClassName: function( tagName, className, root ) {
            root = DOM.getElement( root );
            if( !root )
                root = document;
            var allElements = root.getElementsByTagName( tagName );
            var elements = [];
            for( var i = 0; i < allElements.length; i++ ) {
                var element = allElements[ i ];
                if( !element )
                    continue;
                if( DOM.hasClassName( element, className ) )
                    elements[ elements.length ] = element;
            }
            return elements;
        },


        getElementsByClassName: function( className, root ) {
            return DOM.getElementsByTagAndClassName( "*", className, root );
        }


    };


function switchTabs( id, el ) {
    var hash = document.location.search;
    if ( hash )
        hash = hash.replace( /^\?/, '' );
    
    if ( el === undefined && hash )
        el = hash;
    else if ( el !== undefined )
        el = el.href.match( /\?(.*)/ )[ 1 ];

    var tablist = DOM.getElement( id );
    var es = tablist.getElementsByTagName( "*" );
    var tabContent, tabId;
    for ( var i = 0, len = es.length; i < len; i++ ) {
        if ( es[ i ].href && es[ i ].href.match( /\?.*/ ) ) {
            tabId = es[ i ].href.match( /\?(.*)/ )[ 1 ];
            var tabContent = DOM.getElement( tabId );
            if ( tabContent === undefined )
                continue;

            if ( el ) {
                if ( tabId == el ) {
                    DOM.addClassName( es[ i ], "active" );
                    DOM.removeClassName( tabContent, "hidden" );
                } else {
                    DOM.removeClassName( es[ i ], "active" );
                    DOM.addClassName( tabContent, "hidden" );
                }
            }
        }
    }
}

function hideTabs( id ) {

    var tablist = DOM.getElement( id );
    var es = tablist.getElementsByTagName( "*" );
    var tabContent, tabId;
    for ( var i = 0, len = es.length; i < len; i++ ) {
        if ( es[ i ].href && es[ i ].href.match( /\?.*/ ) ) {
            tabId = es[ i ].href.match( /\?(.*)/ )[ 1 ];
            var tabContent = DOM.getElement( tabId );
            if ( tabContent === undefined )
                continue;
				DOM.removeClassName( es[ i ], "active" );
                DOM.addClassName( tabContent, "hidden" );
            
        }
    }
}

function defaultInputFocus( event ) {
    try {
        event = Event.prep( event );
    } catch( e ) {};

    var el = event.target;
    if ( el.value == el.getAttribute( "mt:default" ) ) {
        el.value = '';
        DOM.removeClassName( el, "input-default" );
    }
}

function defaultInputBlur( event ) {
    try {
        event = Event.prep( event );
    } catch( e ) {};

    var el = event.target;
    if ( el.value == '' ) {
        el.value = el.getAttribute( "mt:default" );
        DOM.addClassName( el, "input-default" );
    }
}

function setupInputDefault() {
    var es = document.getElementsByTagName( "INPUT" );
    for ( var i = 0, len = es.length; i < len; i++ ) {
        if ( !es[ i ].getAttribute )
            continue;
        var val = es[ i ].getAttribute( "mt:default" );
        if ( !val )
            continue;

        if ( es[ i ].value == '' ) {
            DOM.addClassName( es[ i ], 'input-default' );
            es[ i ].value = val;
        }
        DOM.addEventListener( es[ i ], 'focus', defaultInputFocus );
        DOM.addEventListener( es[ i ], 'focusin', defaultInputFocus );
        DOM.addEventListener( es[ i ], 'blur', defaultInputBlur );
    }
}



function mtHide(id) {
    var el = (typeof id == "string") ? document.getElementById(id) : id;
    if (el) el.style.display = 'none';
}


function mtShow(id) {
    var el = (typeof id == "string") ? document.getElementById(id) : id;
    if (el) el.style.display = 'block';
}


function mtAttachEvent(eventName,func) {
    var onEventName = 'on' + eventName;
    var old = window[onEventName];
    if( typeof old != 'function' )
        window[onEventName] = func;
    else {
        window[onEventName] = function( evt ) {
            old( evt );
            return func( evt );
        };
    }
}


function mtFireEvent(eventName,param) {
    var fn = window['on' + eventName];
    if (typeof fn == 'function') return fn(param);
    return;
}



