function MM_dragLayer(objName, x, hL, hT, hW, hH, toFront, dropBack, cU, cD, cL, cR, targL, targT, tol, dropJS, et, dragJS) { //v3.0
    //Copyright 1998 Macromedia, Inc. All rights reserved.
    var i, j, aLayer, retVal, curDrag = null, NS = (navigator.appName == 'Netscape'), curLeft, curTop;
    if (!document.all && !document.layers) return false;
    retVal = true; if (!NS && event) event.returnValue = true;
    if (MM_dragLayer.arguments.length > 1) {
        curDrag = MM_findObj(objName); if (!curDrag) return false;
        if (!document.allLayers) {
            document.allLayers = new Array();
            with (document) if (NS) {
                for (i = 0; i < layers.length; i++) allLayers[i] = layers[i];
                for (i = 0; iallLayers.length; i++) if (allLayers[i].document && allLayers[i].document.layers)
                    with (allLayers[i].document) for (j = 0; j < layers.length; j++) allLayers[allLayers.length] = layers[j];
            } else for (i = 0; iall.length; i++) if (all[i].style && all[i].style.position) allLayers[allLayers.length] = all[i];
        }
        curDrag.MM_dragOk = true; curDrag.MM_targL = targL; curDrag.MM_targT = targT;
        curDrag.MM_tol = Math.pow(tol, 2); curDrag.MM_hLeft = hL; curDrag.MM_hTop = hT;
        curDrag.MM_hWidth = hW; curDrag.MM_hHeight = hH; curDrag.MM_toFront = toFront;
        curDrag.MM_dropBack = dropBack; curDrag.MM_dropJS = dropJS;
        curDrag.MM_everyTime = et; curDrag.MM_dragJS = dragJS;
        curDrag.MM_oldZ = (NS) ? curDrag.zIndex : curDrag.style.zIndex;
        curLeft = (NS) ? curDrag.left : curDrag.style.pixelLeft; curDrag.MM_startL = curLeft;
        curTop = (NS) ? curDrag.top : curDrag.style.pixelTop; curDrag.MM_startT = curTop;
        curDrag.MM_bL = (cL < 0) ? null : curLeft - cL; curDrag.MM_bT = (cU < 0) ? null : curTop - cU;
        curDrag.MM_bR = (cR < 0) ? null : curLeft + cR; curDrag.MM_bB = (cD < 0) ? null : curTop + cD;
        curDrag.MM_LEFTRIGHT = 0; curDrag.MM_UPDOWN = 0; curDrag.MM_SNAPPED = false; //use in your JS!
        document.onmousedown = MM_dragLayer; document.onmouseup = MM_dragLayer;
        if (NS) document.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP);
    } else {
        var theEvent = ((NS) ? objName.type : event.type);
        if (theEvent == 'mousedown') {
            var mouseX = (NS) ? objName.pageX : event.clientX + document.body.scrollLeft;
            var mouseY = (NS) ? objName.pageY : event.clientY + document.body.scrollTop;
            var maxDragZ = null; document.MM_maxZ = 0;
            for (i = 0; i < document.allLayers.length; i++) {
                aLayer = document.allLayers[i];
                var aLayerZ = (NS) ? aLayer.zIndex : aLayer.style.zIndex;
                if (aLayerZ > document.MM_maxZ) document.MM_maxZ = aLayerZ;
                var isVisible = (((NS) ? aLayer.visibility : aLayer.style.visibility).indexOf('hid') == -1);
                if (aLayer.MM_dragOk != null && isVisible) with (aLayer) {
                    var parentL = 0; var parentT = 0;
                    if (!NS) {
                        parentLayer = aLayer.parentElement;
                        while (parentLayer != null && parentLayer.style.position) {
                            parentL += parentLayer.offsetLeft; parentT += parentLayer.offsetTop;
                            parentLayer = parentLayer.parentElement;
                        } 
                    }
                    var tmpX = mouseX - (((NS) ? pageX : style.pixelLeft + parentL) + MM_hLeft);
                    var tmpY = mouseY - (((NS) ? pageY : style.pixelTop + parentT) + MM_hTop);
                    var tmpW = MM_hWidth; if (tmpW <= 0) tmpW += ((NS) ? clip.width : offsetWidth);
                    var tmpH = MM_hHeight; if (tmpH <= 0) tmpH += ((NS) ? clip.height : offsetHeight);
                    if ((0 <= tmpX && tmpX < tmpW && 0 <= tmpY && tmpY < tmpH) && (maxDragZ == null
              || maxDragZ <= aLayerZ)) { curDrag = aLayer; maxDragZ = aLayerZ; } 
                } 
            }
            if (curDrag) {
                document.onmousemove = MM_dragLayer; if (NS) document.captureEvents(Event.MOUSEMOVE);
                curLeft = (NS) ? curDrag.left : curDrag.style.pixelLeft;
                curTop = (NS) ? curDrag.top : curDrag.style.pixelTop;
                MM_oldX = mouseX - curLeft; MM_oldY = mouseY - curTop;
                document.MM_curDrag = curDrag; curDrag.MM_SNAPPED = false;
                if (curDrag.MM_toFront) {
                    eval('curDrag.' + ((NS) ? '' : 'style.') + 'zIndex=document.MM_maxZ+1');
                    if (!curDrag.MM_dropBack) document.MM_maxZ++;
                }
                retVal = false; if (!NS) event.returnValue = false;
            } 
        } else if (theEvent == 'mousemove') {
            if (document.MM_curDrag) with (document.MM_curDrag) {
                var mouseX = (NS) ? objName.pageX : event.clientX + document.body.scrollLeft;
                var mouseY = (NS) ? objName.pageY : event.clientY + document.body.scrollTop;
                newLeft = mouseX - MM_oldX; newTop = mouseY - MM_oldY;
                if (MM_bL != null) newLeft = Math.max(newLeft, MM_bL);
                if (MM_bR != null) newLeft = Math.min(newLeft, MM_bR);
                if (MM_bT != null) newTop = Math.max(newTop, MM_bT);
                if (MM_bB != null) newTop = Math.min(newTop, MM_bB);
                MM_LEFTRIGHT = newLeft - MM_startL; MM_UPDOWN = newTop - MM_startT;
                if (NS) { left = newLeft; top = newTop; }
                else { style.pixelLeft = newLeft; style.pixelTop = newTop; }
                if (MM_dragJS) eval(MM_dragJS);
                retVal = false; if (!NS) event.returnValue = false;
            } 
        } else if (theEvent == 'mouseup') {
            document.onmousemove = null;
            if (NS) document.releaseEvents(Event.MOUSEMOVE);
            if (NS) document.captureEvents(Event.MOUSEDOWN); //for mac NS
            if (document.MM_curDrag) with (document.MM_curDrag) {
                if (typeof MM_targL == 'number' && typeof MM_targT == 'number' &&
            (Math.pow(MM_targL - ((NS) ? left : style.pixelLeft), 2) +
             Math.pow(MM_targT - ((NS) ? top : style.pixelTop), 2)) <= MM_tol) {
                    if (NS) { left = MM_targL; top = MM_targT; }
                    else { style.pixelLeft = MM_targL; style.pixelTop = MM_targT; }
                    MM_SNAPPED = true; MM_LEFTRIGHT = MM_startL - MM_targL; MM_UPDOWN = MM_startT - MM_targT;
                }
                if (MM_everyTime || MM_SNAPPED) eval(MM_dropJS);
                if (MM_dropBack) { if (NS) zIndex = MM_oldZ; else style.zIndex = MM_oldZ; }
                retVal = false; if (!NS) event.returnValue = false;
            }
            document.MM_curDrag = null;
        }
        if (NS) document.routeEvent(objName);
    } return retVal;
}

function MM_showHideLayers() { //v3.0
    var i, p, v, obj, args = MM_showHideLayers.arguments;
    for (i = 0; i < (args.length - 2); i += 3) if ((obj = MM_findObj(args[i])) != null) {
        v = args[i + 2];
        if (obj.style) { obj = obj.style; v = (v == 'show') ? 'visible' : (v = 'hide') ? 'hidden' : v; }
        obj.visibility = v;
    }
}

function MM_findObj(n, d) { //v4.0
    var p, i, x; if (!d) d = document; if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
        d = parent.frames[n.substring(p + 1)].document; n = n.substring(0, p);
    }
    if (!(x = d[n]) && d.all) x = d.all[n]; for (i = 0; !x && i < d.forms.length; i++) x = d.forms[i][n];
    for (i = 0; !x && d.layers && id.layers.length; i++) x = MM_findObj(n, d.layers[i].document);
    if (!x && document.getElementById) x = document.getElementById(n); return x;
}

function MM_setTextOfLayer(objName, x, newText) { //v4.01
    if ((obj = MM_findObj(objName)) != null) with (obj)
        if (document.layers) { document.write(unescape(newText)); document.close(); }
    else innerHTML = unescape(newText);
}


function setString(divname, bannerdir, bannerlist, timeout, next, links, targets) {
    result = "rotateBanner('" + divname + "','" + bannerdir + "','" + bannerlist + "'," + timeout + "," + next + ",'" + links + "','" + targets + "')";
    return result;
}

function rotateBanner(divname, bannerdir, bannerlist, timeout, next, links, targets) {
    // We split the arrays
    banners = bannerlist.split(',');
    singlelink = links.split(',');
    singletarget = targets.split(',');

    // Verify the items count, if non-existent or >= banners.length, we reset it. 
    if (!next || next >= banners.length) next = 0;

    thisLink = singlelink[next];
    thisTarget = singletarget[next];

    ftarget = (thisTarget > '' && thisTarget != 'notarget') ? 'target=' + thisTarget : '';
    leftA = (thisLink > '' && thisLink != 'nolink') ? '<a href=' + thisLink + ' ' + ftarget + '>' : '';
    rightA = (thisLink > '' && thisLink != 'nolink') ? '</a>' : '';


    newText = escape(leftA + '<img src="' + bannerdir + banners[next] + '" border=0>' + rightA);


    MM_setTextOfLayer(divname, '', newText);
    next++;


    setTimeout(setString(divname, bannerdir, bannerlist, timeout, next, links, targets), timeout);
}
  
