function addEvent (obj, type, fn) {
 if (obj.addEventListener)
    obj.addEventListener (type, fn, false);
    else 
 if (obj.attachEvent) {
    obj["e"+type+fn] = fn;
    obj[type+fn] = function () { obj["e"+type+fn] (window.event); }
    obj.attachEvent ("on"+type, obj[type+fn]);
    }
 }

function removeEvent (obj, type, fn) {
 if (obj.removeEventListener)
    obj.removeEventListener (type, fn, false);
    else 
 if (obj.detachEvent) {
    obj.detachEvent ("on"+type, obj[type+fn]);
    obj[type+fn] = null;
    obj["e"+type+fn] = null;
    }
}


function getRequestParameter (name) {
 var l = ''+document.location;
 if (l.indexOf ('?') == -1) return;
 var params = l.substring (l.indexOf ('?')+1, l.length).split ('&');
 for (var i = 0; i < params.length; i++)
     if (params[i].indexOf (name+'=') != -1) {
        var value = params[i].substring (params[i].indexOf ('=')+1, params[i].length);
        return unescape (value).replace(/\+/g, ' ');
        }
 }