var fmid = 'fbanner';
var fm = {
    targetX: 0,
    targetY: -82,
    hasInner: typeof(window.innerWidth) == 'number',
    hasElement: document.documentElement
        && document.documentElement.clientWidth,
    menu:
        document.getElementById
        ? document.getElementById(fmid)
        : document.all
          ? document.all[fmid]
          : document.layers[fmid]
};

fm.move = function () {
    if (document.layers) {
        fm.menu.left = fm.nextX;
        fm.menu.top = fm.nextY;
    }
    else {
        fm.menu.style.left = fm.nextX + 'px';
        fm.menu.style.top = fm.nextY + 'px';
    }
}

fm.computeShifts = function () {
    var de = document.documentElement;

/*    fm.shiftX =
        fm.hasInner
        ? pageXOffset
        : fm.hasElement
          ? de.scrollLeft
          : document.body.scrollLeft;
    if (fm.targetX < 0) {
        if (fm.hasElement && fm.hasInner) {
            // Handle Opera 8 problems
            fm.shiftX +=
                de.clientWidth > window.innerWidth
                ? window.innerWidth
                : de.clientWidth
        }
        else {
            fm.shiftX +=
                fm.hasElement
                ? de.clientWidth
                : fm.hasInner
                  ? window.innerWidth
                  : document.body.clientWidth;
        }
    }
*/
    fm.shiftY = 
        fm.hasInner
        ? pageYOffset
        : fm.hasElement
          ? de.scrollTop
          : document.body.scrollTop;
    if (fm.targetY < 0) {
        if (fm.hasElement && fm.hasInner) {
            // Handle Opera 8 problems
            fm.shiftY +=
                de.clientHeight > window.innerHeight
                ? window.innerHeight
                : de.clientHeight
        }
        else {
            fm.shiftY +=
                fm.hasElement
                ? document.documentElement.clientHeight
                : fm.hasInner
                  ? window.innerHeight
                  : document.body.clientHeight;
        }
    }
}

fm.doFloat = function() {
    var stepX, stepY;
    fm.computeShifts();
    stepX = (fm.shiftX + fm.targetX - fm.nextX) * .1;
    if (Math.abs(stepX) < .6) {
        stepX = fm.shiftX + fm.targetX - fm.nextX;
    }
    stepY = (fm.shiftY + fm.targetY - fm.nextY) * .1;
    if (Math.abs(stepY) < .6) {
        stepY = fm.shiftY + fm.targetY - fm.nextY;
    }
    if (Math.abs(stepX) > 0 || Math.abs(stepY) > 0) {
        fm.nextX += stepX;
        fm.nextY += stepY;
        fm.move();
    }
    setTimeout('fm.doFloat()', 10);
};

// addEvent designed by Aaron Moore
fm.addEvent = function(element, listener, handler) {
    if(typeof element[listener] != 'function' || typeof element[listener + '_num'] == 'undefined') {
        element[listener + '_num'] = 0;
        if (typeof element[listener] == 'function') {
            element[listener + 0] = element[listener];
            element[listener + '_num']++;
        }
        element[listener] = function(e) {
            var r = true;
            e = (e) ? e : window.event;
            for(var i = element[listener + '_num'] -1; i >= 0; i--) {
                if(element[listener + i](e) == false) r = false;
            }
            return r;
        }
    }
    //if handler is not already stored, assign it
    for(var i = 0; i < element[listener + '_num']; i++)
        if(element[listener + i] == handler) return;
    element[listener + element[listener + '_num']] = handler;
    element[listener + '_num']++;
};

fm.init = function() {
    fm.initSecondary();
    fm.doFloat();
};

// Some browsers init scrollbars only after
// full document load.
fm.initSecondary = function() {
    fm.computeShifts();
    fm.nextX = fm.shiftX +
        fm.targetX;
    fm.nextY = fm.shiftY +
        fm.targetY;
    fm.move();
}

if (document.layers) fm.addEvent(window, 'onload', fm.init);
else {
    fm.init();
    fm.addEvent(window, 'onload', fm.initSecondary);
}

function floatclose() {
	fm.menu.style.display='none';
}