﻿CustomScrollbar = function () {
    var scrollbarID = "";
    var scrollTarget = null;
    var MaxDown = 0;
    var MaxUp = 0;
    var SliderHeight = 30;
    var Dragging = false;
    var Ratio;
    var Increment = 10;
    var CursorOffsetY = 0;
    var scrollBarTrack;

    var isTargetIFrame = false;
    var iFrameName = "";
    var isTargetNestedIFrame = false;
    var nestedIFrameName = "";

    var isTargetIFrame_OLD;
    var iFrameName_OLD;
    var isTargetNestedIFrame_OLD;
    var nestedIFrameName_OLD;

    var iFrameID = "";
    var isDisplay = false;
    var level = "";

    var isSiteOptions = false;

    var SliderGuideTopMouseover = new Image();
    var SliderGuideSpacerMouseover = new Image();
    var SliderGuideBottomMouseover = new Image();

    if (!isHttps()) {
        if (!top.SI) {
            var ipPath = top.document.getElementById("ipPath").value;
            top.SI = new top.SiteImages(ipPath);
        }
    }

    if (isHttps()) {
        SliderGuideTopMouseover.src = document.getElementById("websiteURL").value + "/images/" + MainColor + "/VerticalScrollBarGuideTop-mouseover.png";
        SliderGuideSpacerMouseover.src = document.getElementById("websiteURL").value + "/images/" + MainColor + "/VerticalScrollBarGuideSpacer-mouseover.png";
        SliderGuideBottomMouseover.src = document.getElementById("websiteURL").value + "/images/" + MainColor + "/VerticalScrollBarGuideBottom-mouseover.png";
    }
    else if (isSiteOptions == true) {
        top.SI.src("VerticalScrollBarGuideTopSiteOptions-mouseover.png", SliderGuideTopMouseover, top.SiteImagesType.BaseColorShade);
        top.SI.src("VerticalScrollBarGuideSpacerSiteOptions-mouseover.png", SliderGuideSpacerMouseover, top.SiteImagesType.BaseColorShade);
        top.SI.src("VerticalScrollBarGuideBottomSiteOptions-mouseover.png", SliderGuideBottomMouseover, top.SiteImagesType.BaseColorShade);
    }
    else {
        top.SI.src("VerticalScrollBarGuideTop-mouseover.png", SliderGuideTopMouseover, top.SiteImagesType.BaseColorShade);
        top.SI.src("VerticalScrollBarGuideSpacer-mouseover.png", SliderGuideSpacerMouseover, top.SiteImagesType.BaseColorShade);
        top.SI.src("VerticalScrollBarGuideBottom-mouseover.png", SliderGuideBottomMouseover, top.SiteImagesType.BaseColorShade);
    }

    this.getTrack = function () {
        return scrollBarTrack;
    }

    this.ChangeTarget = function (newTarget) {
        if (isTargetIFrame_OLD && isTargetNestedIFrame_OLD) {
            if (window.frames[iFrameName_OLD].window.frames[nestedIFrameName_OLD]) {
                var ScrollTarget = window.frames[iFrameName_OLD].window.frames[nestedIFrameName_OLD].document.getElementById(scrollTarget);

                if (ScrollTarget) {
                    ScrollTarget.removeEventListener ? ScrollTarget.removeEventListener("DOMMouseScroll", ScrollTarget.wheel, false) : ScrollTarget.onmousewheel = null;
                    ScrollTarget.scrollTop = 0;
                }
            }
        }
        else if (isTargetIFrame_OLD && !isTargetNestedIFrame_OLD) {
            var ScrollTarget = window.frames[iFrameName_OLD].document.getElementById(scrollTarget);

            if (ScrollTarget) {
                ScrollTarget.removeEventListener ? ScrollTarget.removeEventListener("DOMMouseScroll", ScrollTarget.wheel, false) : ScrollTarget.onmousewheel = null;
                ScrollTarget.scrollTop = 0;
            }

        }
        else {
            var ScrollTarget = document.getElementById(scrollTarget);

            if (ScrollTarget) {
                ScrollTarget.removeEventListener ? ScrollTarget.removeEventListener("DOMMouseScroll", ScrollTarget.wheel, false) : ScrollTarget.onmousewheel = null;
                ScrollTarget.scrollTop = 0;
            }
        }

        scrollTarget = newTarget;

        if (isTargetIFrame && isTargetNestedIFrame) {
            ScrollTarget = window.frames[iFrameName].window.frames[nestedIFrameName].document.getElementById(scrollTarget);

            if (ScrollTarget) {
                ScrollTarget.wheel = function (evt) {
                    wheel(evt);
                }

                ScrollTarget.addEventListener ? ScrollTarget.addEventListener("DOMMouseScroll", ScrollTarget.wheel, false) : ScrollTarget.onmousewheel = new Function("this.wheel()");
                //window.onmousewheel = document.onmousewheel = wheel;
            }
        }
        else if (isTargetIFrame && !isTargetNestedIFrame) {
            ScrollTarget = window.frames[iFrameName].document.getElementById(scrollTarget);

            if (ScrollTarget) {
                ScrollTarget.wheel = function (evt) {
                    wheel(evt);
                }

                ScrollTarget.addEventListener ? ScrollTarget.addEventListener("DOMMouseScroll", ScrollTarget.wheel, false) : ScrollTarget.onmousewheel = new Function("this.wheel()");
            }
        }
        else {
            ScrollTarget = document.getElementById(scrollTarget);

            if (ScrollTarget) {
                ScrollTarget.wheel = function (evt) {
                    wheel(evt);
                }

                ScrollTarget.addEventListener ? ScrollTarget.addEventListener("DOMMouseScroll", ScrollTarget.wheel, false) : ScrollTarget.onmousewheel = new Function("this.wheel()");
            }
        }

        if (ScrollTarget) {
            ScrollTarget.style.position = "relative";
        }

        ResetSlider();

        isTargetIFrame_OLD = isTargetIFrame;
        iFrameName_OLD = iFrameName;
        isTargetNestedIFrame_OLD = isTargetNestedIFrame;
        nestedIFrameName_OLD = nestedIFrameName;
    }

    this.GetTarget = function () {
        return scrollTarget;
    }

    this.IsTargetIFrame = function (value) {
        if (isTargetIFrame_OLD)
            isTargetIFrame_OLD = isTargetIFrame;

        isTargetIFrame = value;
    }

    this.IsTargetNestedIFrame = function (value) {
        if (isTargetNestedIFrame_OLD)
            isTargetNestedIFrame_OLD = isTargetNestedIFrame;

        isTargetNestedIFrame = value;
    }

    this.IFrameName = function (value) {
        if (iFrameName_OLD)
            iFrameName_OLD = iFrameName;

        iFrameName = value;
    }

    this.NestedIFrameName = function (value) {
        if (nestedIFrameName_OLD)
            nestedIFrameName_OLD = nestedIFrameName;

        nestedIFrameName = value;
    }

    this.IFrameID = function (value) {
        iFrameID = value;
    }

    this.IsDisplay = function (value) {
        isDisplay = value;
    }

    this.Level = function (value) {
        level = value;
        //SliderGuideTopMouseover.src = level + "images/" + top.MainColor + "/VerticalScrollBarGuideTop-mouseover.png";
        top.SI.src("VerticalScrollBarGuideTop-mouseover.png", SliderGuideTopMouseover, top.SiteImagesType.BaseColorShade);
        //SliderGuideSpacerMouseover.src = level + "images/" + top.MainColor + "/VerticalScrollBarGuideSpacer-mouseover.png";
        top.SI.src("VerticalScrollBarGuideSpacer-mouseover.png", SliderGuideSpacerMouseover, top.SiteImagesType.BaseColorShade);
        //SliderGuideBottomMouseover.src = level + "images/" + top.MainColor + "/VerticalScrollBarGuideBottom-mouseover.png";
        top.SI.src("VerticalScrollBarGuideBottom-mouseover.png", SliderGuideBottomMouseover, top.SiteImagesType.BaseColorShade);
    }

    this.CreateScrollbarDiv = function (commonName, targetDiv, maxHeight) {
        scrollTarget = targetDiv;
        scrollbarID = commonName;

        var ScrollTarget = GetScrollTarget();
        var siteOptions = false;

        if (siteOptions == true) {
            isSiteOptions = true;
        }
        else {
            isSiteOptions = false;
        }

        if (ScrollTarget) {
            ScrollTarget.wheel = function (evt) {
                wheel(evt);
            }

            ScrollTarget.addEventListener ? ScrollTarget.addEventListener("DOMMouseScroll", ScrollTarget.wheel, false) : ScrollTarget.onmousewheel = new Function("this.wheel()");
        }

        var ScrollbarDiv = document.createElement("div");
        ScrollbarDiv.className = "ProfileScrollbar";
        ScrollbarDiv.id = commonName;

        if (isDisplay) {
            ScrollbarDiv.style.display = "none";

            if (ScrollbarDiv.parentNode) ScrollbarDiv.parentNode.style.display = "none";
        }
        else
            ScrollbarDiv.style.visibility = "hidden";

        var MainTable = document.createElement("table");
        MainTable.cellSpacing = "0";
        MainTable.cellPadding = "0";
        MainTable.border = "0";
        MainTable.className = "ProfileSliderTable";
        MainTable.id = commonName + "_MainTable";

        var UpArrowTR = document.createElement("tr");

        var UpArrowTD = document.createElement("td");
        UpArrowTD.className = "ProfileSliderArrow";

        var UpArrowIMG = document.createElement("img");
        UpArrowIMG.style.width = "13px";
        UpArrowIMG.style.height = "12px";
        UpArrowIMG.style.display = "block";

        if (isHttps()) {
            //UpArrowIMG.subfolder = "color";
            UpArrowIMG.setAttribute("subfolder", "color");
            UpArrowIMG.src = document.getElementById("websiteURL").value + "/images/" + MainColor + "/VerticalScrollBarUpArrow.png";
        }
        else if (isSiteOptions == true) {
            top.SI.src("VerticalScrollBarUpArrowSiteOptions.png", UpArrowIMG, top.SiteImagesType.BaseColorShade);
            //UpArrowIMG.setAttribute("subfolder", "shade");
        }
        else {
            top.SI.src("VerticalScrollBarUpArrow.png", UpArrowIMG, top.SiteImagesType.BaseColorShade);
            //UpArrowIMG.setAttribute("subfolder", "shade");
        }

        UpArrowIMG.id = commonName + "_UpArrow";

        UpArrowIMG.onmouseover = function () {
            top.Button_onmouseover(UpArrowIMG);
        }

        UpArrowIMG.onclick = function () {
            MoveUp();
        }

        UpArrowTD.appendChild(UpArrowIMG);

        UpArrowTR.appendChild(UpArrowTD);

        var TrackTR = document.createElement("tr");

        var TrackTD = document.createElement("td");
        TrackTD.vAlign = "top";
        TrackTD.className = "ProfileSliderTrack";
        //

        if (isHttps()) {
            //TrackTD.subfolder = "color";
            TrackTD.setAttribute("subfolder", "color");
            TrackTD.src = document.getElementById("websiteURL").value + "/images/" + MainColor + "/VerticalScrollBarBackground.png";
            //TrackTD.style.backgroundImage = "url(" + document.getElementById("websiteURL").value + "/images/" + MainColor + "/VerticalScrollBarBackground.png)";
        }
        else if (isSiteOptions == true) {
            top.SI.src("VerticalScrollBarBackgroundSiteOptions.png", TrackTD, top.SiteImagesType.BaseColorShade);
        }
        else {
            top.SI.src("VerticalScrollBarBackground.png", TrackTD, top.SiteImagesType.BaseColorShade);
        }

        TrackTD.id = commonName + "_Track";
        TrackTD.style.height = ((parseInt(maxHeight) - 12) < 0 ? 0 : (parseInt(maxHeight) - 12)) + "px";
        TrackTD.align = "center";
        scrollBarTrack = TrackTD;

        MaxDown = parseInt(TrackTD.style.height);

        var SliderDiv = document.createElement("div");
        SliderDiv.style.position = "relative";
        SliderDiv.style.left = "0px";
        SliderDiv.style.top = "0px";
        SliderDiv.targetDiv = targetDiv;
        SliderDiv.id = commonName + "_Slider";
        SliderDiv.style.cursor = "pointer";

        SliderDiv.onmouseover = function () {
            SliderDiv_onmouseover();
        }

        SliderDiv.onmouseout = function () {
            SliderDiv_onmouseout();
        }

        var SliderTable = document.createElement("table");
        SliderTable.border = "0";
        SliderTable.cellSpacing = "0";
        SliderTable.cellPadding = "0";

        var SliderTopTR = document.createElement("tr");

        var SliderTopTD = document.createElement("td");

        var SliderTopIMG = document.createElement("img");
        SliderTopIMG.unselectable = "on";
        SliderTopIMG.style.display = "block";

        if (isHttps()) {
            //SliderTopIMG.subfolder = "color";
            SliderTopIMG.setAttribute("subfolder", "color");
            SliderTopIMG.src = document.getElementById("websiteURL").value + "/images/" + MainColor + "/VerticalScrollBarGuideTop.png";
        }
        else if (isSiteOptions == true) {
            top.SI.src("VerticalScrollBarGuideTopSiteOptions.png", SliderTopIMG, top.SiteImagesType.BaseColorShade);
            //SliderTopIMG.setAttribute("subfolder", "shade");
        }
        else {
            top.SI.src("VerticalScrollBarGuideTop.png", SliderTopIMG, top.SiteImagesType.BaseColorShade);
            //SliderTopIMG.setAttribute("subfolder", "shade");
        }

        SliderTopIMG.className = "ProfileSliderGuide";
        SliderTopIMG.style.height = "12px";
        SliderTopIMG.style.width = "13px";
        SliderTopIMG.id = commonName + "_SliderTop";

        SliderTopTD.appendChild(SliderTopIMG);

        SliderTopTR.appendChild(SliderTopTD);

        var SliderMiddleTR = document.createElement("tr");

        var SliderMiddleTD = document.createElement("td");
        SliderMiddleTD.id = commonName + "_SliderSpacer";

        if (isHttps()) {
            //SliderMiddleTD.subfolder = "color";
            SliderMiddleTD.setAttribute("subfolder", "color");
            //SliderMiddleTD.style.backgroundImage = "url(" + document.getElementById("websiteURL").value + "/images/" + MainColor + "/VerticalScrollBarGuideSpacer.png)";
            SliderMiddleTD.src = document.getElementById("websiteURL").value + "/images/" + MainColor + "/VerticalScrollBarGuideSpacer.png";
        }
        else if (isSiteOptions == true) {
            top.SI.src("VerticalScrollBarGuideSpacerSiteOptions.png", SliderMiddleTD, top.SiteImagesType.BaseColorShade);
            //SliderMiddleTD.setAttribute("subfolder", "shade");
        }
        else {
            top.SI.src("VerticalScrollBarGuideSpacer.png", SliderMiddleTD, top.SiteImagesType.BaseColorShade);
            //SliderMiddleTD.setAttribute("subfolder", "shade");
        }

        SliderMiddleTD.style.backgroundRepeat = "repeat-y";
        SliderMiddleTD.style.backgroundPosition = "left top";

        SliderMiddleTR.appendChild(SliderMiddleTD);

        var SliderBottomTR = document.createElement("tr");

        var SliderBottomTD = document.createElement("td");

        var SliderBottomIMG = document.createElement("img");
        SliderBottomIMG.unselectable = "on";
        SliderBottomIMG.style.display = "block";

        if (isHttps()) {
            //SliderBottomIMG.subfolder = "color";
            SliderBottomIMG.setAttribute("subfolder", "color");
            SliderBottomIMG.src = document.getElementById("websiteURL").value + "/images/" + MainColor + "/VerticalScrollBarGuideBottom.png";
        }
        else if (isSiteOptions == true) {
            top.SI.src("VerticalScrollBarGuideBottomSiteOptions.png", SliderBottomIMG, top.SiteImagesType.BaseColorShade);
            //SliderBottomIMG.setAttribute("subfolder", "shade");
        }
        else {
            top.SI.src("VerticalScrollBarGuideBottom.png", SliderBottomIMG, top.SiteImagesType.BaseColorShade);
            //SliderBottomIMG.setAttribute("subfolder", "shade");
        }

        SliderBottomIMG.className = "ProfileSliderGuide";
        SliderBottomIMG.id = commonName + "_SliderBottom";
        SliderBottomIMG.style.height = "12px";
        SliderBottomIMG.style.width = "13px";

        SliderBottomTD.appendChild(SliderBottomIMG);

        SliderBottomTR.appendChild(SliderBottomTD);

        if ((isHttps() ? DetermineBrowser() == Browsers.IE : top.DetermineBrowser() == top.Browsers.IE)) {
            var SliderTBody = document.createElement("tbody");

            SliderTBody.appendChild(SliderTopTR);
            SliderTBody.appendChild(SliderMiddleTR);
            SliderTBody.appendChild(SliderBottomTR);

            SliderTable.appendChild(SliderTBody);
        }
        else {
            SliderTable.appendChild(SliderTopTR);
            SliderTable.appendChild(SliderMiddleTR);
            SliderTable.appendChild(SliderBottomTR);
        }

        SliderDiv.appendChild(SliderTable);

        SliderDiv.Slider_onmousedown = function (evt) {
            if (!evt) evt = window.event;

            if (evt.preventDefault) {
                evt.preventDefault();
            }

            Slider_onmousedown(evt);
        }

        SliderTopIMG.addEventListener ? SliderTopIMG.addEventListener("mousedown", SliderDiv.Slider_onmousedown, false) : SliderTopIMG.onmousedown = function () { SliderDiv.Slider_onmousedown(); }; ;
        SliderMiddleTD.addEventListener ? SliderMiddleTD.addEventListener("mousedown", SliderDiv.Slider_onmousedown, false) : SliderMiddleTD.onmousedown = function () { SliderDiv.Slider_onmousedown(); }; ;
        SliderBottomIMG.addEventListener ? SliderBottomIMG.addEventListener("mousedown", SliderDiv.Slider_onmousedown, false) : SliderBottomIMG.onmousedown = function () { SliderDiv.Slider_onmousedown(); }; ;

        //SliderDiv.addEventListener ? SliderDiv.addEventListener("mousedown", SliderDiv.Slider_onmousedown, false) : SliderDiv.onmousedown = new Function("this.Slider_onmousedown()");

        TrackTD.appendChild(SliderDiv);

        TrackTR.appendChild(TrackTD);

        var DownArrowTR = document.createElement("tr");

        var DownArrowTD = document.createElement("td");
        DownArrowTD.vAlign = "bottom";
        DownArrowTD.className = "ProfileSliderArrow";

        var DownArrowIMG = document.createElement("img");
        DownArrowIMG.style.width = "13px";
        DownArrowIMG.style.height = "12px";
        DownArrowIMG.style.display = "block";

        if (isHttps()) {
            //DownArrowIMG.subfolder = "color";
            DownArrowIMG.setAttribute("subfolder", "color");
            DownArrowIMG.src = document.getElementById("websiteURL").value + "/images/" + MainColor + "/VerticalScrollBarDownArrow.png";
        }
        else if (isSiteOptions == true) {
            top.SI.src("VerticalScrollBarDownArrowSiteOptions.png", DownArrowIMG, top.SiteImagesType.BaseColorShade);
            //DownArrowIMG.setAttribute("subfolder", "shade");
        }
        else {
            top.SI.src("VerticalScrollBarDownArrow.png", DownArrowIMG, top.SiteImagesType.BaseColorShade);
            //DownArrowIMG.setAttribute("subfolder", "shade");
        }

        DownArrowIMG.id = commonName + "_DownArrow";

        DownArrowIMG.onmouseover = function () {
            top.Button_onmouseover(DownArrowIMG);
        }

        DownArrowIMG.onclick = function () {
            MoveDown();
        }

        DownArrowTD.appendChild(DownArrowIMG);

        DownArrowTR.appendChild(DownArrowTD);

        if ((isHttps() ? DetermineBrowser() == Browsers.IE : top.DetermineBrowser() == top.Browsers.IE)) {
            var MainTableTBody = document.createElement("tbody");

            MainTableTBody.appendChild(UpArrowTR);
            MainTableTBody.appendChild(TrackTR);
            MainTableTBody.appendChild(DownArrowTR);

            MainTable.appendChild(MainTableTBody);
        }
        else {
            MainTable.appendChild(UpArrowTR);
            MainTable.appendChild(TrackTR);
            MainTable.appendChild(DownArrowTR);
        }

        ScrollbarDiv.appendChild(MainTable);

        return ScrollbarDiv;
    }

    this.ResetWheelEvent = function () {
        var ScrollTarget = GetScrollTarget();

        if (ScrollTarget) {
            ScrollTarget.wheel = function (evt) {
                wheel(evt);
            }

            ScrollTarget.addEventListener ? ScrollTarget.addEventListener("DOMMouseScroll", ScrollTarget.wheel, false) : ScrollTarget.onmousewheel = new Function("this.wheel()");
        }
    }

    var Slider_onmousedown = function (evt) {
        if (!evt) evt = window.event;

        if (evt.preventDefault) {
            evt.preventDefault();
        }

        Dragging = true;

        var Slider = document.getElementById(scrollbarID + "_Slider");
        var offsetPointer = Slider;

        CursorOffsetY = 0;

        var y = 0;

        while (offsetPointer) {
            y += offsetPointer.offsetTop;

            offsetPointer = offsetPointer.offsetParent;
        }

        CursorOffsetY = evt.clientY - y;

        var SliderTrack = document.getElementById(scrollbarID + "_Track");
        MaxDown = parseInt(SliderTrack.style.height);

        var ScrollTarget = GetScrollTarget();

        if (!ScrollTarget) return;

        Ratio = (ScrollTarget.scrollHeight - ScrollTarget.clientHeight) / (MaxDown - SliderHeight);

        document.DragSlider = function (evt) {
            if (Dragging)
                DragSlider(evt);
        }

        document.EndDragSlider = function (evt) {
            EndDragSlider(evt);
        }

        document.addEventListener ? document.addEventListener("mousemove", document.DragSlider, false) : document.onmousemove = new Function("this.DragSlider()");
        document.addEventListener ? document.addEventListener("mouseup", document.EndDragSlider, false) : document.onmouseup = new Function("this.EndDragSlider()");

        document.onselectstart = function () { return false; };

        if (document.getElementById("ClientIFrame")) {
            var ClientIFrame = window.frames["ClientIFrame"];

            ClientIFrame.document.EndDragSlider = function (evt) {
                EndDragSlider(evt);
            }

            ClientIFrame.document.DragSliderIFrame = function (evt) {
                if (Dragging)
                    DragSliderIFrame(evt);
            }

            ClientIFrame.document.addEventListener ? ClientIFrame.document.addEventListener("mouseup", ClientIFrame.document.EndDragSlider, false) : ClientIFrame.document.onmouseup = new Function("this.EndDragSlider()");
            ClientIFrame.document.addEventListener ? ClientIFrame.document.addEventListener("mousemove", ClientIFrame.document.DragSliderIFrame, false) : ClientIFrame.document.onmousemove = new Function("this.DragSliderIFrame()");

            if (ClientIFrame.document.getElementById("BlackBookIFrame")) {
                var BlackBookIFrame = ClientIFrame.window.frames["BlackBookIFrame"];

                BlackBookIFrame.document.EndDragSlider = function (evt) {
                    EndDragSlider(evt);
                }

                BlackBookIFrame.document.DragSliderNestedIFrame = function (evt) {
                    if (Dragging)
                        DragSliderNestedIFrame(evt);
                }
                BlackBookIFrame.document.addEventListener ? BlackBookIFrame.document.addEventListener("mouseup", BlackBookIFrame.document.EndDragSlider, false) : BlackBookIFrame.document.onmouseup = new Function("this.EndDragSlider()");
                BlackBookIFrame.document.addEventListener ? BlackBookIFrame.document.addEventListener("mousemove", BlackBookIFrame.document.DragSliderNestedIFrame, false) : BlackBookIFrame.document.onmousemove = new Function("this.DragSliderNestedIFrame()");
            }
        }

        //        var NestedFrames = ScrollTarget.getElementsByTagName("iframe");
        //        
        //        if (NestedFrames.length > 0)
        //        {
        //            for (var i = 0; i <= NestedFrames.length - 1; i++)
        //            {
        //                var NestedFrame = NestedFrames[i];
        //                
        //                NestedFrame.onmousemove = new Function("this.DragSliderNestedFrame()");
        //                
        //                NestedFrame.DragSliderNestedFrame = function(evt)
        //                {
        //                    if (Dragging)
        //                    {
        //                        DragSliderNestedFrame(evt);
        //                    }
        //                }
        //            }
        //        }
    }

    var SliderDiv_onmouseover = function () {
        var SliderTop = document.getElementById(scrollbarID + "_SliderTop");
        var SliderSpacer = document.getElementById(scrollbarID + "_SliderSpacer");
        var SliderBottom = document.getElementById(scrollbarID + "_SliderBottom");

        if (!/\-mouseover/g.test(SliderTop.src)) {
            SliderTop.src = SliderTop.src.replace(/\.png/, "-mouseover.png");
        }

        if (!/\-mouseover/g.test(SliderSpacer.style.backgroundImage)) {
            SliderSpacer.style.backgroundImage = SliderSpacer.style.backgroundImage.replace(/\.png/, "-mouseover.png");
        }

        if (!/\-mouseover/g.test(SliderBottom.src)) {
            SliderBottom.src = SliderBottom.src.replace(/\.png/, "-mouseover.png");
        }
    }

    var SliderDiv_onmouseout = function () {
        var SliderTop = document.getElementById(scrollbarID + "_SliderTop");
        var SliderSpacer = document.getElementById(scrollbarID + "_SliderSpacer");
        var SliderBottom = document.getElementById(scrollbarID + "_SliderBottom");

        if (/\-mouseover/g.test(SliderTop.src)) {
            SliderTop.src = SliderTop.src.replace(/\-mouseover/, "");
        }

        if (/\-mouseover/g.test(SliderSpacer.style.backgroundImage)) {
            SliderSpacer.style.backgroundImage = SliderSpacer.style.backgroundImage.replace(/\-mouseover/, "");
        }

        if (/\-mouseover/g.test(SliderBottom.src)) {
            SliderBottom.src = SliderBottom.src.replace(/\-mouseover/, "");
        }
    }

    var DragSlider = function (evt) {
        if (!evt) evt = window.event;

        if (evt.preventDefault) {
            evt.preventDefault();
        }

        var offsetPointer = document.getElementById(scrollbarID + "_UpArrow");
        var y = 0;

        while (offsetPointer) {
            y += offsetPointer.offsetTop;
            offsetPointer = offsetPointer.offsetParent;
        }

        //var relativePos = evt.clientY - y - (SliderHeight / 2);   
        var UpArrow = document.getElementById(scrollbarID + "_UpArrow");

        var relativePos = evt.clientY - y - CursorOffsetY - UpArrow.offsetHeight;
        MoveSlider(relativePos);
    }

    var DragSliderIFrame = function (evt) {
        if (!evt) evt = window.frames["ClientIFrame"].window.event;

        var offsetPointer = top.document.getElementById(scrollbarID + "_UpArrow");
        var y = 0;

        while (offsetPointer) {
            y += offsetPointer.offsetTop;
            offsetPointer = offsetPointer.offsetParent;
        }

        var DashboardButtons = top.document.getElementById("DashboardButtons");
        var Application_LogoutCell = top.document.getElementById("Application_LogoutCell");
        var UpArrow = document.getElementById(scrollbarID + "_UpArrow");

        var StarCAM_SignUp_Logo = document.getElementById("StarCAM_SignUp_Logo");

        var DashOffsetHeight = 0;
        var LogoutOffsetHeight = 0;
        var LogoOffsetHeight = 0;

        if (DashboardButtons) DashOffsetHeight = DashboardButtons.offsetHeight;
        if (Application_LogoutCell) LogoutOffsetHeight = Application_LogoutCell.offsetHeight;
        if (StarCAM_SignUp_Logo) LogoOffsetHeight = StarCAM_SignUp_Logo.offsetHeight;

        var relativePos = evt.clientY - y - CursorOffsetY - UpArrow.offsetHeight + DashOffsetHeight + LogoutOffsetHeight + LogoOffsetHeight;

        MoveSlider(relativePos);
    }

    var DragSliderNestedIFrame = function (evt) {
        if (!evt) evt = window.frames["ClientIFrame"].window.frames["BlackBookIFrame"].window.event;

        var offsetPointer = top.document.getElementById(scrollbarID + "_UpArrow");
        var y = 0;

        while (offsetPointer) {
            y += offsetPointer.offsetTop;
            offsetPointer = offsetPointer.offsetParent;
        }

        var BlackbookHeaderHeader = window.frames["ClientIFrame"].document.getElementById("BlackbookHeaderHeader");
        var DashboardButtons = top.document.getElementById("DashboardButtons");
        var Application_LogoutCell = top.document.getElementById("Application_LogoutCell");
        var UpArrow = document.getElementById(scrollbarID + "_UpArrow");

        var relativePos = evt.clientY - y - CursorOffsetY - UpArrow.offsetHeight + DashboardButtons.offsetHeight + Application_LogoutCell.offsetHeight + BlackbookHeaderHeader.offsetHeight;

        MoveSlider(relativePos);
    }

    var DragSliderNestedFrame = function (evt) {
        alert("HI");
    }

    var MoveSlider = function (relativePos) {
        var Slider = document.getElementById(scrollbarID + "_Slider");

        //        var TestDiv;
        //        
        //        if (top.document.getElementById("TestDiv"))
        //        {
        //            TestDiv = top.document.getElementById("TestDiv");
        //        }
        //        else
        //        {
        //            TestDiv = top.document.createElement("div");
        //            TestDiv.style.color = "red";
        //            TestDiv.style.backgroundColor = "white";
        //            TestDiv.style.position = "absolute";
        //            TestDiv.style.top = "20px";
        //            TestDiv.style.left = "20px";
        //            TestDiv.id = "TestDiv";
        //            
        //            top.document.body.appendChild(TestDiv);
        //        }
        //        
        //        TestDiv.innerHTML = relativePos;

        var ScrollTarget = GetScrollTarget();

        if (!ScrollTarget) return;

        var SliderPos = relativePos;
        //var SliderPos = (-(MaxDown - MaxUp)) + (relativePos - (SliderHeight / 2));

        if (SliderPos < 0) {
            ScrollTarget.scrollTop = "0px";
            Slider.style.top = "0px";
        }
        else if (SliderPos > (MaxDown - SliderHeight - 1)) {
            ScrollTarget.scrollTop = ScrollTarget.scrollHeight - ScrollTarget.clientHeight - 1;
            Slider.style.top = (MaxDown - SliderHeight) + "px";
        }
        else {
            ScrollTarget.scrollTop = SliderPos * Ratio;
            Slider.style.top = SliderPos + "px";
        }

        //        if (document.getElementById("ClientIFrame"))
        //        {
        //            var ClientIFrame = document.getElementById("ClientIFrame");
        //            
        //            if (/ImageGallery2/g.test(ClientIFrame.src))
        //            {
        //                try
        //                {
        //                    window.frames["ClientIFrame"].ResetAllHorizSliders();
        //                }
        //                catch (e)
        //                {
        //                }
        //            }
        //        }        
    }

    this.ReverseMoveSlider = function () {
        var ScrollBar = document.getElementById(scrollbarID);

        if ((isDisplay ? ScrollBar.style.display != "none" : ScrollBar.style.visibility != "hidden")) {
            var ScrollTarget = GetScrollTarget();

            if (!ScrollTarget) return;

            var Slider = document.getElementById(scrollbarID + "_Slider");
            var SliderTrack = document.getElementById(scrollbarID + "_Track");

            MaxDown = parseInt(SliderTrack.style.height);

            Ratio = (ScrollTarget.scrollHeight - ScrollTarget.clientHeight) / (MaxDown - SliderHeight);

            if (Ratio != 0) {
                Slider.style.top = parseInt(ScrollTarget.scrollTop * (1 / Ratio)) + "px";
            }
        }
    }

    var MoveUp = function () {
        var ScrollTarget = GetScrollTarget();

        if (!ScrollTarget) return;

        var Slider = document.getElementById(scrollbarID + "_Slider");

        var SliderTrack = document.getElementById(scrollbarID + "_Track");
        MaxDown = parseInt(SliderTrack.style.height);

        Ratio = (ScrollTarget.scrollHeight - ScrollTarget.clientHeight) / (MaxDown - SliderHeight);

        Increment = parseInt((1 / Ratio) * 10) + 10;

        var relativePos = parseInt(Slider.style.top) - Increment;

        var ScrollBar = document.getElementById(scrollbarID);

        if ((isDisplay ? ScrollBar.style.display != "none" : ScrollBar.style.visibility != "hidden"))
            MoveSlider(relativePos);
    }

    var MoveDown = function () {
        var ScrollTarget = GetScrollTarget();

        if (!ScrollTarget) return;

        var Slider = document.getElementById(scrollbarID + "_Slider");
        var SliderTrack = document.getElementById(scrollbarID + "_Track");
        MaxDown = parseInt(SliderTrack.style.height);

        Ratio = (ScrollTarget.scrollHeight - ScrollTarget.clientHeight) / (MaxDown - SliderHeight);

        Increment = parseInt((1 / Ratio) * 10) + 10;

        var relativePos = parseInt(Slider.style.top) + Increment;

        var ScrollBar = document.getElementById(scrollbarID);

        if ((isDisplay ? ScrollBar.style.display != "none" : ScrollBar.style.visibility != "hidden"))
            MoveSlider(relativePos);
    }

    var EndDragSlider = function (evt) {
        if (!evt) evt = window.event;

        document.removeEventListener ? document.removeEventListener("mousemove", document.DragSlider, false) : document.onmousemove = null;
        document.removeEventListener ? document.removeEventListener("mouseup", document.EndDragSlider, false) : document.onmouseup = null;

        document.onselectstart = null;

        document.DragSlider = null;
        document.EndDragSlider = null;

        if (document.getElementById("ClientIFrame")) {
            var ClientIFrame = window.frames["ClientIFrame"];

            ClientIFrame.document.removeEventListener ? ClientIFrame.document.removeEventListener("mouseup", ClientIFrame.document.EndDragSlider, false) : ClientIFrame.document.onmouseup = null;
            ClientIFrame.document.removeEventListener ? ClientIFrame.document.removeEventListener("mousemove", ClientIFrame.document.DragSliderIFrame, false) : ClientIFrame.document.onmousemove = null;

            ClientIFrame.document.EndDragSlider = null;
            ClientIFrame.document.DragSliderIFrame = null;

            if (ClientIFrame.document.getElementById("BlackBookIFrame")) {
                var BlackBookIFrame = ClientIFrame.window.frames["BlackBookIFrame"];

                BlackBookIFrame.document.removeEventListener ? BlackBookIFrame.document.removeEventListener("mouseup", BlackBookIFrame.document.EndDragSlider, false) : BlackBookIFrame.document.onmouseup = null;
                BlackBookIFrame.document.removeEventListener ? BlackBookIFrame.document.removeEventListener("mousemove", BlackBookIFrame.document.DragSliderNestedIFrame, false) : BlackBookIFrame.document.onmousemove = null;

                BlackBookIFrame.document.EndDragSlider = null;
                BlackBookIFrame.document.DragSliderNestedIFrame = null;
            }
        }

        Dragging = false;
    }

    this.SliderCheck = function () {
        var ScrollTarget = GetScrollTarget();

        if (!ScrollTarget) return;

        if (parseInt(ScrollTarget.scrollHeight) > parseInt(ScrollTarget.clientHeight)) {
            ShowSlider();
            AdjustSliderSize();
        }
        else {
            ResetSlider();
            HideSlider();
        }
    }

    this.Deactivate = function () {
        ResetSlider();
        HideSlider();
    }

    var AdjustSliderSize = function () {
        var ScrollTarget = GetScrollTarget();

        if (!ScrollTarget) return;

        var SliderSpacer = document.getElementById(scrollbarID + "_SliderSpacer");
        var SliderTop = document.getElementById(scrollbarID + "_SliderTop");
        var SliderBottom = document.getElementById(scrollbarID + "_SliderBottom");
        var Slider = document.getElementById(scrollbarID + "_Slider");

        var SliderTrack = document.getElementById(scrollbarID + "_Track");
        MaxDown = parseInt(SliderTrack.style.height);

        AdjustRatio = MaxDown / ScrollTarget.scrollHeight;

        var NewSliderHeight = parseInt(ScrollTarget.clientHeight * AdjustRatio) - parseInt(SliderTop.offsetHeight) - parseInt(SliderBottom.offsetHeight);

        if (NewSliderHeight <= 1) NewSliderHeight = 1;

        SliderSpacer.style.height = (NewSliderHeight) + "px";
        SliderHeight = parseInt(Slider.offsetHeight);
    }

    var ResetSlider = function () {
        var Slider = document.getElementById(scrollbarID + "_Slider");

        Slider.style.top = "0px";
    }

    var ShowSlider = function () {
        var ScrollBar = document.getElementById(scrollbarID);

        if (isDisplay) {
            ScrollBar.style.display = ""

            if (ScrollBar.parentNode) ScrollBar.parentNode.style.display = "";
        }
        else
            ScrollBar.style.visibility = "";
    }

    var HideSlider = function () {
        var ScrollBar = document.getElementById(scrollbarID);

        if (isDisplay) {
            ScrollBar.style.display = "none"

            if (ScrollBar.parentNode) ScrollBar.parentNode.style.display = "none";
        }
        else
            ScrollBar.style.visibility = "hidden";

    }

    var handle = function (delta) {
        if (delta < 0)
            MoveDown();
        else
            MoveUp();
    }

    /** Event handler for mouse wheel event.
    */
    var wheel = function (event) {
        var delta = 0;
        if (!event) /* For IE. */
        {
            if (isTargetIFrame && isTargetNestedIFrame)
                event = window.frames[iFrameName].window.frames[nestedIFrameName].window.event;
            else if (isTargetIFrame && !isTargetNestedIFrame)
                event = window.frames[iFrameName].window.event;
            else
                event = window.event;
        }
        if (event.wheelDelta) { /* IE/Opera. */
            delta = event.wheelDelta / 120;
            /** In Opera 9, delta differs in sign as compared to IE.
            */
            if (window.opera)
                delta = -delta;
        } else if (event.detail) { /** Mozilla case. */
            /** In Mozilla, sign of delta is different than in IE.
            * Also, delta is multiple of 3.
            */
            delta = -event.detail / 3;
        }
        /** If delta is nonzero, handle it.
        * Basically, delta is now positive if wheel was scrolled up,
        * and negative, if wheel was scrolled down.
        */
        if (delta)
            handle(delta);
        /** Prevent default actions caused by mouse wheel.
        * That might be ugly, but we handle scrolls somehow
        * anyway, so don't bother here..
        */

        var Slider = document.getElementById(scrollbarID + "_Slider");

        if (parseInt(Slider.style.top) != 0) {
            if (parseInt(Slider.style.top) < (MaxDown - SliderHeight)) {
                if (event.preventDefault)
                    event.preventDefault();

                event.returnValue = false;
            }
        }
    }

    this.outerWheel = function (event) {
        var delta = 0;
        if (!event) /* For IE. */
        {
            if (isTargetIFrame && isTargetNestedIFrame)
                event = window.frames[iFrameName].window.frames[nestedIFrameName].window.event;
            else if (isTargetIFrame && !isTargetNestedIFrame)
                event = window.frames[iFrameName].window.event;
            else
                event = window.event;
        }
        if (event.wheelDelta) { /* IE/Opera. */
            delta = event.wheelDelta / 120;
            /** In Opera 9, delta differs in sign as compared to IE.
            */
            if (window.opera)
                delta = -delta;
        } else if (event.detail) { /** Mozilla case. */
            /** In Mozilla, sign of delta is different than in IE.
            * Also, delta is multiple of 3.
            */
            delta = -event.detail / 3;
        }
        /** If delta is nonzero, handle it.
        * Basically, delta is now positive if wheel was scrolled up,
        * and negative, if wheel was scrolled down.
        */
        if (delta)
            handle(delta);
        /** Prevent default actions caused by mouse wheel.
        * That might be ugly, but we handle scrolls somehow
        * anyway, so don't bother here..
        */

        var Slider = document.getElementById(scrollbarID + "_Slider");

        if (parseInt(Slider.style.top) != 0) {
            if (parseInt(Slider.style.top) < (MaxDown - SliderHeight)) {
                if (event.preventDefault)
                    event.preventDefault();

                event.returnValue = false;
            }
        }
    }

    this.ChangeVerticalScrollBarType = function (isCelebrityCard) {

        isSiteOptions = isCelebrityCard;

        var UpArrow = document.getElementById(scrollbarID + "_UpArrow");
        var Track = document.getElementById(scrollbarID + "_Track");
        var SliderTop = document.getElementById(scrollbarID + "_SliderTop");
        var SliderSpacer = document.getElementById(scrollbarID + "_SliderSpacer");
        var SliderBottom = document.getElementById(scrollbarID + "_SliderBottom");
        var DownArrow = document.getElementById(scrollbarID + "_DownArrow");
        var Slider = document.getElementById(scrollbarID + "_Slider");

        if (isSiteOptions == true) {
            top.SI.src("VerticalScrollBarUpArrowSiteOptions.png", UpArrow, top.SiteImagesType.BaseColorShade);
            top.SI.src("VerticalScrollBarBackgroundSiteOptions.png", Track, top.SiteImagesType.BaseColorShade);
            top.SI.src("VerticalScrollBarGuideTopSiteOptions.png", SliderTop, top.SiteImagesType.BaseColorShade);
            top.SI.src("VerticalScrollBarGuideSpacerSiteOptions.png", SliderSpacer, top.SiteImagesType.BaseColorShade);
            top.SI.src("VerticalScrollBarGuideBottomSiteOptions.png", SliderBottom, top.SiteImagesType.BaseColorShade);
            top.SI.src("VerticalScrollBarDownArrowSiteOptions.png", DownArrow, top.SiteImagesType.BaseColorShade);

            //Mouseovers
            top.SI.src("VerticalScrollBarGuideTopSiteOptions-mouseover.png", SliderGuideTopMouseover, top.SiteImagesType.BaseColorShade);
            top.SI.src("VerticalScrollBarGuideSpacerSiteOptions-mouseover.png", SliderGuideSpacerMouseover, top.SiteImagesType.BaseColorShade);
            top.SI.src("VerticalScrollBarGuideBottomSiteOptions-mouseover.png", SliderGuideBottomMouseover, top.SiteImagesType.BaseColorShade);
        }
        else {
            top.SI.src("VerticalScrollBarUpArrow.png", UpArrow, top.SiteImagesType.BaseColorShade);
            top.SI.src("VerticalScrollBarBackground.png", Track, top.SiteImagesType.BaseColorShade);
            top.SI.src("VerticalScrollBarGuideTop.png", SliderTop, top.SiteImagesType.BaseColorShade);
            top.SI.src("VerticalScrollBarGuideSpacer.png", SliderSpacer, top.SiteImagesType.BaseColorShade);
            top.SI.src("VerticalScrollBarGuideBottom.png", SliderBottom, top.SiteImagesType.BaseColorShade);
            top.SI.src("VerticalScrollBarDownArrow.png", DownArrow, top.SiteImagesType.BaseColorShade);

            //Mouseovers
            top.SI.src("VerticalScrollBarGuideTop-mouseover.png", SliderGuideTopMouseover, top.SiteImagesType.BaseColorShade);
            top.SI.src("VerticalScrollBarGuideSpacer-mouseover.png", SliderGuideSpacerMouseover, top.SiteImagesType.BaseColorShade);
            top.SI.src("VerticalScrollBarGuideBottom-mouseover.png", SliderGuideBottomMouseover, top.SiteImagesType.BaseColorShade);
        }

    }

    this.SwapScrollbarColors = function (color, shade) {
        var UpArrow = document.getElementById(scrollbarID + "_UpArrow");
        var Track = document.getElementById(scrollbarID + "_Track");
        var SliderTop = document.getElementById(scrollbarID + "_SliderTop");
        var SliderSpacer = document.getElementById(scrollbarID + "_SliderSpacer");
        var SliderBottom = document.getElementById(scrollbarID + "_SliderBottom");
        var DownArrow = document.getElementById(scrollbarID + "_DownArrow");
        var Slider = document.getElementById(scrollbarID + "_Slider");

        if (!color) color = top.MainColor;
        if (color == "") color = top.MainColor;
        if (!shade) shade = top.MainShade;
        if (shade == "") shade = top.MainShade;

        if (color != "sponsored") {
            UpArrow.src = top.SI.GetRoot() + "/" + top.SI.GetBase() + "/" + color + "/" + shade + "/VerticalScrollBarUpArrow.png";
            Track.src = top.SI.GetRoot() + "/" + top.SI.GetBase() + "/" + color + "/" + shade + "/VerticalScrollBarBackground.png";
            SliderTop.src = top.SI.GetRoot() + "/" + top.SI.GetBase() + "/" + color + "/" + shade + "/VerticalScrollBarGuideTop.png";
            SliderSpacer.style.backgroundImage = "url(" + top.SI.GetRoot() + "/" + top.SI.GetBase() + "/" + color + "/" + shade + "/VerticalScrollBarGuideSpacer.png)";
            SliderBottom.src = top.SI.GetRoot() + "/" + top.SI.GetBase() + "/" + color + "/" + shade + "/VerticalScrollBarGuideBottom.png";
            DownArrow.src = top.SI.GetRoot() + "/" + top.SI.GetBase() + "/" + color + "/" + shade + "/VerticalScrollBarDownArrow.png";

            //Mouseovers
            SliderGuideTopMouseover.src = top.SI.GetRoot() + "/" + top.SI.GetBase() + "/" + color + "/" + shade + "/VerticalScrollBarGuideTop-mouseover.png";
            SliderGuideSpacerMouseover.src = top.SI.GetRoot() + "/" + top.SI.GetBase() + "/" + color + "/" + shade + "/VerticalScrollBarGuideSpacer-mouseover.png";
            SliderGuideBottomMouseover.src = top.SI.GetRoot() + "/" + top.SI.GetBase() + "/" + color + "/" + shade + "/VerticalScrollBarGuideBottom-mouseover.png";
        } else {
            top.SI.src("VerticalScrollBarUpArrow-Sponsored.png", UpArrow, top.SiteImagesType.BaseSiteThemeColorShade);
            top.SI.src("VerticalScrollBarBackground-Sponsored.png", Track, top.SiteImagesType.BaseSiteThemeColorShade);
            top.SI.src("VerticalScrollBarGuideTop-Sponsored.png", SliderTop, top.SiteImagesType.BaseSiteThemeColorShade);
            top.SI.src("VerticalScrollBarGuideSpacer-Sponsored.png", SliderSpacer, top.SiteImagesType.BaseSiteThemeColorShade);
            top.SI.src("VerticalScrollBarGuideBottom-Sponsored.png", SliderBottom, top.SiteImagesType.BaseSiteThemeColorShade);
            top.SI.src("VerticalScrollBarDownArrow-Sponsored.png", DownArrow, top.SiteImagesType.BaseSiteThemeColorShade);

            //Mouseovers
            top.SI.src("VerticalScrollBarGuideTop-Sponsored-mouseover.png", SliderGuideTopMouseover, top.SiteImagesType.BaseSiteThemeColorShade);
            top.SI.src("VerticalScrollBarGuideSpacer-Sponsored-mouseover.png", SliderGuideSpacerMouseover, top.SiteImagesType.BaseSiteThemeColorShade);
            top.SI.src("VerticalScrollBarGuideBottom-Sponsored-mouseover.png", SliderGuideBottomMouseover, top.SiteImagesType.BaseSiteThemeColorShade);
        }
        UpArrow.subfolder = null;
        UpArrow.themeLevel = null;
        Track.subfolder = null;
        Track.themeLevel = null;
        SliderTop.subfolder = null;
        SliderTop.themeLevel = null;
        SliderSpacer.subfolder = null;
        SliderSpacer.themeLevel = null;
        SliderBottom.subfolder = null;
        SliderBottom.themeLevel = null;
        DownArrow.subfolder = null;
        DownArrow.themeLevel = null;
        SliderGuideTopMouseover.subfolder = null;
        SliderGuideTopMouseover.themeLevel = null;
        SliderGuideSpacerMouseover.subfolder = null;
        SliderGuideSpacerMouseover.themeLevel = null;
        SliderGuideBottomMouseover.subfolder = null;
        SliderGuideBottomMouseover.themeLevel = null;
    }

    this.RevertToNormalColors = function () {
        var UpArrow = document.getElementById(scrollbarID + "_UpArrow");
        var Track = document.getElementById(scrollbarID + "_Track");
        var SliderTop = document.getElementById(scrollbarID + "_SliderTop");
        var SliderSpacer = document.getElementById(scrollbarID + "_SliderSpacer");
        var SliderBottom = document.getElementById(scrollbarID + "_SliderBottom");
        var DownArrow = document.getElementById(scrollbarID + "_DownArrow");
        var Slider = document.getElementById(scrollbarID + "_Slider");

        top.SI.src("VerticalScrollBarUpArrow.png", UpArrow, top.SiteImagesType.BaseColorShade);
        top.SI.src("VerticalScrollBarBackground.png", Track, top.SiteImagesType.BaseColorShade);
        top.SI.src("VerticalScrollBarGuideTop.png", SliderTop, top.SiteImagesType.BaseColorShade);
        top.SI.src("VerticalScrollBarGuideSpacer.png", SliderSpacer, top.SiteImagesType.BaseColorShade);
        top.SI.src("VerticalScrollBarGuideBottom.png", SliderBottom, top.SiteImagesType.BaseColorShade);
        top.SI.src("VerticalScrollBarDownArrow.png", DownArrow, top.SiteImagesType.BaseColorShade);

        //Mouseovers
        top.SI.src("VerticalScrollBarGuideTop-mouseover.png", SliderGuideTopMouseover, top.SiteImagesType.BaseColorShade);
        top.SI.src("VerticalScrollBarGuideSpacer-mouseover.png", SliderGuideSpacerMouseover, top.SiteImagesType.BaseColorShade);
        top.SI.src("VerticalScrollBarGuideBottom-mouseover.png", SliderGuideBottomMouseover, top.SiteImagesType.BaseColorShade);
    }

    var GetScrollTarget = function () {
        var ScrollTarget;

        if (isTargetIFrame && isTargetNestedIFrame)
            ScrollTarget = window.frames[iFrameName].window.frames[nestedIFrameName].document.getElementById(scrollTarget);
        else if (isTargetIFrame && !isTargetNestedIFrame)
            ScrollTarget = window.frames[iFrameName].document.getElementById(scrollTarget);
        else
            ScrollTarget = document.getElementById(scrollTarget);

        if (ScrollTarget) {
            ScrollTarget.style.position = "relative";
        }

        return ScrollTarget;
    }

    var GetTargetWindow = function () {
        var TargetWindow;

        if (isTargetIFrame && isTargetNestedIFrame)
            TargetWindow = window.frames[iFrameName].window.frames[nestedIFrameName];
        else if (isTargetIFrame && !isTargetNestedIFrame)
            TargetWindow = window.frames[iFrameName];
        else
            TargetWindow = window;

        return TargetWindow;
    }
}

CustomHorizontalScrollbar = function () {
    var scrollbarID = "";
    var scrollTarget = null;
    var MaxRight = 0;
    var MaxLeft = 0;
    var SliderWidth = 30;
    var Dragging = false;
    var Ratio;
    var Increment = 10;
    var CursorOffsetX = 0;

    var isTargetIFrame = false;
    var iFrameName = "";
    var isTargetNestedIFrame = false;
    var nestedIFrameName = "";

    var isTargetIFrame_OLD;
    var iFrameName_OLD;
    var isTargetNestedIFrame_OLD;
    var nestedIFrameName_OLD;

    var iFrameID = "";
    var isDisplay = false;
    var level = "";

    var SliderSpacerMouseover = new Image();
    //SliderSpacerMouseover.src = level + "images/" + top.MainColor + "/HorizScrollBarGuideSpacer-mouseover.gif";
    top.SI.src("HorizScrollBarGuideSpacer-mouseover.png", SliderSpacerMouseover, top.SiteImagesType.BaseColorShade);

    var SliderGuideLeftMouseover = new Image();
    //SliderGuideLeftMouseover.src = level + "images/" + top.MainColor + "/HorizScrollBarGuideLeft-mouseover.png";
    top.SI.src("HorizScrollBarGuideLeft-mouseover.png", SliderGuideLeftMouseover, top.SiteImagesType.BaseColorShade);

    var SliderGuideRightMouseover = new Image();
    //SliderGuideRightMouseover.src = level + "images/" + top.MainColor + "/HorizScrollBarGuideRight-mouseover.png";
    top.SI.src("HorizScrollBarGuideRight-mouseover.png", SliderGuideRightMouseover, top.SiteImagesType.BaseColorShade);

    this.ChangeTarget = function (newTarget) {
        if (isTargetIFrame_OLD && isTargetNestedIFrame_OLD) {
            if (window.frames[iFrameName_OLD].window.frames[nestedIFrameName_OLD]) {
                var ScrollTarget = window.frames[iFrameName_OLD].window.frames[nestedIFrameName_OLD].document.getElementById(scrollTarget);

                if (ScrollTarget) {
                    ScrollTarget.removeEventListener ? ScrollTarget.removeEventListener("DOMMouseScroll", ScrollTarget.wheel, false) : ScrollTarget.onmousewheel = null;
                    ScrollTarget.scrollLeft = 0;
                }
            }
        }
        else if (isTargetIFrame_OLD && !isTargetNestedIFrame_OLD) {
            var ScrollTarget = window.frames[iFrameName_OLD].document.getElementById(scrollTarget);

            if (ScrollTarget) {
                ScrollTarget.removeEventListener ? ScrollTarget.removeEventListener("DOMMouseScroll", ScrollTarget.wheel, false) : ScrollTarget.onmousewheel = null;
                ScrollTarget.scrollLeft = 0;
            }

        }
        else {
            var ScrollTarget = document.getElementById(scrollTarget);

            if (ScrollTarget) {
                ScrollTarget.removeEventListener ? ScrollTarget.removeEventListener("DOMMouseScroll", ScrollTarget.wheel, false) : ScrollTarget.onmousewheel = null;
                ScrollTarget.scrollLeft = 0;
            }
        }

        scrollTarget = newTarget;

        if (isTargetIFrame && isTargetNestedIFrame) {
            ScrollTarget = window.frames[iFrameName].window.frames[nestedIFrameName].document.getElementById(scrollTarget);

            if (ScrollTarget) {
                ScrollTarget.wheel = function (evt) {
                    wheel(evt);
                }

                ScrollTarget.addEventListener ? ScrollTarget.addEventListener("DOMMouseScroll", ScrollTarget.wheel, false) : ScrollTarget.onmousewheel = new Function("this.wheel()");
            }
        }
        else if (isTargetIFrame && !isTargetNestedIFrame) {
            ScrollTarget = window.frames[iFrameName].document.getElementById(scrollTarget);

            if (ScrollTarget) {
                ScrollTarget.wheel = function (evt) {
                    wheel(evt);
                }

                ScrollTarget.addEventListener ? ScrollTarget.addEventListener("DOMMouseScroll", ScrollTarget.wheel, false) : ScrollTarget.onmousewheel = new Function("this.wheel()");
            }
        }
        else {
            ScrollTarget = document.getElementById(scrollTarget);

            if (ScrollTarget) {
                ScrollTarget.wheel = function (evt) {
                    wheel(evt);
                }

                ScrollTarget.addEventListener ? ScrollTarget.addEventListener("DOMMouseScroll", ScrollTarget.wheel, false) : ScrollTarget.onmousewheel = new Function("this.wheel()");
            }
        }

        if (ScrollTarget) {
            ScrollTarget.style.position = "relative";
        }

        ResetSlider();

        isTargetIFrame_OLD = isTargetIFrame;
        iFrameName_OLD = iFrameName;
        isTargetNestedIFrame_OLD = isTargetNestedIFrame;
        nestedIFrameName_OLD = nestedIFrameName;
    }

    this.GetTarget = function () {
        return scrollTarget;
    }

    this.IsTargetIFrame = function (value) {
        if (isTargetIFrame_OLD)
            isTargetIFrame_OLD = isTargetIFrame;

        isTargetIFrame = value;
    }

    this.IsTargetNestedIFrame = function (value) {
        if (isTargetNestedIFrame_OLD)
            isTargetNestedIFrame_OLD = isTargetNestedIFrame;

        isTargetNestedIFrame = value;
    }

    this.IFrameName = function (value) {
        if (iFrameName_OLD)
            iFrameName_OLD = iFrameName;

        iFrameName = value;
    }

    this.NestedIFrameName = function (value) {
        if (nestedIFrameName_OLD)
            nestedIFrameName_OLD = nestedIFrameName;

        nestedIFrameName = value;
    }

    this.IFrameID = function (value) {
        iFrameID = value;
    }

    this.IsDisplay = function (value) {
        isDisplay = value;
    }

    this.Level = function (value) {
        level = value;

        //SliderSpacerMouseover.src = value + "images/" + top.MainColor + "/HorizScrollBarGuideSpacer-mouseover.gif";
        top.SI.src("HorizScrollBarGuideSpacer-mouseover.png", SliderSpacerMouseover, top.SiteImagesType.BaseColorShade);
        //SliderGuideLeftMouseover.src = level + "images/" + top.MainColor + "/HorizScrollBarGuideLeft-mouseover.gif";
        top.SI.src("HorizScrollBarGuideLeft-mouseover.png", SliderGuideLeftMouseover, top.SiteImagesType.BaseColorShade);
        //SliderGuideRightMouseover.src = level + "images/" + top.MainColor + "/HorizScrollBarGuideRight-mouseover.gif";
        top.SI.src("HorizScrollBarGuideRight-mouseover.png", SliderGuideRightMouseover, top.SiteImagesType.BaseColorShade);
    }

    this.CreateScrollbarDiv = function (commonName, targetDiv, maxWidth) {
        scrollTarget = targetDiv;
        scrollbarID = commonName;

        var ScrollTarget = GetScrollTarget();

        if (ScrollTarget) {
            ScrollTarget.wheel = function (evt) {
                wheel(evt);
            }

            ScrollTarget.addEventListener ? ScrollTarget.addEventListener("DOMMouseScroll", ScrollTarget.wheel, false) : ScrollTarget.onmousewheel = new Function("this.wheel()");
        }

        var ScrollbarDiv = document.createElement("div");
        ScrollbarDiv.className = "ProfileScrollbar";
        ScrollbarDiv.id = commonName;

        if (isDisplay) {
            ScrollbarDiv.style.display = "none";

            if (ScrollbarDiv.parentNode) ScrollbarDiv.parentNode.style.display = "none";
        }
        else
            ScrollbarDiv.style.visibility = "hidden";

        var MainTable = document.createElement("table");
        MainTable.cellSpacing = "0";
        MainTable.cellPadding = "0";
        MainTable.border = "0";
        MainTable.className = "ProfileSliderTable";
        MainTable.style.width = "auto";
        MainTable.id = commonName + "_MainTable";

        var MainTR = document.createElement("tr");

        var LeftArrowTD = document.createElement("td");
        LeftArrowTD.style.width = "12px";
        LeftArrowTD.style.height = "13px";
        //LeftArrowTD.className = "ProfileSliderArrow";

        var LeftArrowIMG = document.createElement("img");
        //LeftArrowIMG.src = level + "images/" + top.MainColor + "/HorizScrollBarLeftArrow.gif";
        top.SI.src("HorizScrollBarLeftArrow.png", LeftArrowIMG, top.SiteImagesType.BaseColorShade);
        LeftArrowIMG.id = commonName + "_LeftArrow";

        LeftArrowIMG.onmouseover = function () {
            top.Button_onmouseover(LeftArrowIMG);
        }

        LeftArrowIMG.onclick = function () {
            MoveLeft();
        }

        LeftArrowTD.appendChild(LeftArrowIMG);

        MainTR.appendChild(LeftArrowTD);

        var TrackTD = document.createElement("td");
        TrackTD.align = "left";
        TrackTD.className = "ProfileSliderTrack";
        //TrackTD.style.backgroundImage = "url(" + level + "images/" + top.MainColor + "/HorizScrollBarBackground.gif)";
        top.SI.src("HorizScrollBarBackground.png", TrackTD, top.SiteImagesType.BaseColorShade);
        TrackTD.id = commonName + "_Track";
        TrackTD.style.width = (parseInt(maxWidth) - 12) + "px";
        TrackTD.vAlign = "middle";
        TrackTD.style.height = "13px";
        TrackTD.style.backgroundRepeat = "repeat-x";

        MaxRight = parseInt(TrackTD.style.width);

        var SliderDiv = document.createElement("div");
        SliderDiv.style.position = "relative";
        SliderDiv.style.left = "0px";
        SliderDiv.style.top = "0px";
        SliderDiv.targetDiv = targetDiv;
        SliderDiv.id = commonName + "_Slider";
        SliderDiv.style.cursor = "pointer";

        SliderDiv.onmouseover = function () {
            SliderDiv_onmouseover();
        }

        SliderDiv.onmouseout = function () {
            SliderDiv_onmouseout();
        }

        var SliderTable = document.createElement("table");
        SliderTable.border = "0";
        SliderTable.cellSpacing = "0";
        SliderTable.cellPadding = "0";

        var SliderTR = document.createElement("tr");

        var SliderLeftTD = document.createElement("td");

        var SliderLeftIMG = document.createElement("img");
        SliderLeftIMG.unselectable = "on";
        //SliderLeftIMG.src = level + "images/" + top.MainColor + "/HorizScrollBarGuideLeft.gif";
        top.SI.src("HorizScrollBarGuideLeft.png", SliderLeftIMG, top.SiteImagesType.BaseColorShade);
        SliderLeftIMG.className = "ProfileSliderGuide";
        SliderLeftIMG.id = commonName + "_SliderLeft";

        SliderLeftTD.appendChild(SliderLeftIMG);

        SliderTR.appendChild(SliderLeftTD);

        var SliderMiddleTD = document.createElement("td");
        SliderMiddleTD.id = commonName + "_SliderSpacer";
        //SliderMiddleTD.style.backgroundImage = "url(" + level + "images/" + top.MainColor + "/HorizScrollBarGuideSpacer.gif)";
        top.SI.src("HorizScrollBarGuideSpacer.png", SliderMiddleTD, top.SiteImagesType.BaseColorShade);
        SliderMiddleTD.style.backgroundRepeat = "repeat-x";
        SliderMiddleTD.style.backgroundPosition = "left top";

        SliderTR.appendChild(SliderMiddleTD);

        var SliderRightTD = document.createElement("td");

        var SliderRightIMG = document.createElement("img");
        SliderRightIMG.unselectable = "on";
        //SliderRightIMG.src = level + "images/" + top.MainColor + "/HorizScrollBarGuideRight.gif";
        top.SI.src("HorizScrollBarGuideRight.png", SliderRightIMG, top.SiteImagesType.BaseColorShade);
        SliderRightIMG.className = "ProfileSliderGuide";
        SliderRightIMG.id = commonName + "_SliderRight";

        SliderRightTD.appendChild(SliderRightIMG);

        SliderTR.appendChild(SliderRightTD);

        if (top.DetermineBrowser() == top.Browsers.IE) {
            var SliderTBody = document.createElement("tbody");

            SliderTBody.appendChild(SliderTR);

            SliderTable.appendChild(SliderTBody);
        }
        else {
            SliderTable.appendChild(SliderTR);
        }

        SliderDiv.appendChild(SliderTable);

        SliderDiv.Slider_onmousedown = function (evt) {
            Slider_onmousedown(evt);
        }

        SliderDiv.addEventListener ? SliderDiv.addEventListener("mousedown", SliderDiv.Slider_onmousedown, false) : SliderDiv.onmousedown = new Function("this.Slider_onmousedown()");

        TrackTD.appendChild(SliderDiv);

        MainTR.appendChild(TrackTD);

        var RightArrowTD = document.createElement("td");
        RightArrowTD.align = "right";
        RightArrowTD.style.width = "12px";
        RightArrowTD.style.height = "13px";
        RightArrowTD.className = "ProfileSliderArrow";

        var RightArrowIMG = document.createElement("img");
        //RightArrowIMG.src = level + "images/" + top.MainColor + "/HorizScrollBarRightArrow.gif";
        top.SI.src("HorizScrollBarRightArrow.png", RightArrowIMG, top.SiteImagesType.BaseColorShade);
        RightArrowIMG.id = commonName + "_RightArrow";

        RightArrowIMG.onmouseover = function () {
            top.Button_onmouseover(RightArrowIMG);
        }

        RightArrowIMG.onclick = function () {
            MoveRight();
        }

        RightArrowTD.appendChild(RightArrowIMG);

        MainTR.appendChild(RightArrowTD);

        if (top.DetermineBrowser() == top.Browsers.IE) {
            var MainTableTBody = document.createElement("tbody");

            MainTableTBody.appendChild(MainTR);

            MainTable.appendChild(MainTableTBody);
        }
        else {
            MainTable.appendChild(MainTR);
        }

        ScrollbarDiv.appendChild(MainTable);

        return ScrollbarDiv;
    }

    this.ResetWheelEvent = function () {
        var ScrollTarget = GetScrollTarget();

        if (ScrollTarget) {
            ScrollTarget.wheel = function (evt) {
                wheel(evt);
            }

            ScrollTarget.addEventListener ? ScrollTarget.addEventListener("DOMMouseScroll", ScrollTarget.wheel, false) : ScrollTarget.onmousewheel = new Function("this.wheel()");
        }
    }

    var Slider_onmousedown = function (evt) {
        if (!evt) evt = window.event;

        Dragging = true;

        var Slider = document.getElementById(scrollbarID + "_Slider");
        var offsetPointer = Slider;

        CursorOffsetX = 0;

        var x = 0;

        while (offsetPointer) {
            x += offsetPointer.offsetLeft;

            offsetPointer = offsetPointer.offsetParent;
        }

        CursorOffsetX = evt.clientX - x;

        var SliderTrack = document.getElementById(scrollbarID + "_Track");
        MaxRight = parseInt(SliderTrack.style.width);

        var ScrollTarget = GetScrollTarget();

        if (!ScrollTarget) return;

        Ratio = (ScrollTarget.scrollWidth - ScrollTarget.clientWidth) / (MaxRight - SliderWidth);
        //alert(ScrollTarget.scrollWidth + " " + ScrollTarget.clientWidth + " " + MaxRight + " " + SliderWidth);

        //Ratio = (MaxRight - SliderWidth) / (ScrollTarget.scrollWidth - ScrollTarget.clientWidth);       

        document.DragSlider = function (evt) {
            if (Dragging)
                DragSlider(evt);
        }

        document.EndDragSlider = function (evt) {
            EndDragSlider(evt);
        }

        document.addEventListener ? document.addEventListener("mousemove", document.DragSlider, false) : document.onmousemove = new Function("this.DragSlider()");
        document.addEventListener ? document.addEventListener("mouseup", document.EndDragSlider, false) : document.onmouseup = new Function("this.EndDragSlider()");

        document.onselectstart = function () { return false; };

        if (document.getElementById("ClientIFrame")) {
            var ClientIFrame = window.frames["ClientIFrame"];

            ClientIFrame.document.EndDragSlider = function (evt) {
                EndDragSlider(evt);
            }

            ClientIFrame.document.DragSliderIFrame = function (evt) {
                if (Dragging)
                    DragSliderIFrame(evt);
            }

            ClientIFrame.document.addEventListener ? ClientIFrame.document.addEventListener("mouseup", ClientIFrame.document.EndDragSlider, false) : ClientIFrame.document.onmouseup = new Function("this.EndDragSlider()");
            ClientIFrame.document.addEventListener ? ClientIFrame.document.addEventListener("mousemove", ClientIFrame.document.DragSliderIFrame, false) : ClientIFrame.document.onmousemove = new Function("this.DragSliderIFrame()");

            if (ClientIFrame.document.getElementById("BlackBookIFrame")) {
                var BlackBookIFrame = ClientIFrame.window.frames["BlackBookIFrame"];

                BlackBookIFrame.document.EndDragSlider = function (evt) {
                    EndDragSlider(evt);
                }

                BlackBookIFrame.document.DragSliderNestedIFrame = function (evt) {
                    if (Dragging)
                        DragSliderNestedIFrame(evt);
                }

                BlackBookIFrame.document.addEventListener ? BlackBookIFrame.document.addEventListener("mouseup", BlackBookIFrame.document.EndDragSlider, false) : BlackBookIFrame.document.onmouseup = new Function("this.EndDragSlider()");
                BlackBookIFrame.document.addEventListener ? BlackBookIFrame.document.addEventListener("mousemove", BlackBookIFrame.document.DragSliderNestedIFrame, false) : BlackBookIFrame.document.onmousemove = new Function("this.DragSliderNestedIFrame()");
            }
        }

        //        var NestedFrames = ScrollTarget.getElementsByTagName("iframe");
        //        
        //        if (NestedFrames.length > 0)
        //        {
        //            for (var i = 0; i <= NestedFrames.length - 1; i++)
        //            {
        //                var NestedFrame = NestedFrames[i];
        //                
        //                NestedFrame.onmousemove = new Function("this.DragSliderNestedFrame()");
        //                
        //                NestedFrame.DragSliderNestedFrame = function(evt)
        //                {
        //                    if (Dragging)
        //                    {
        //                        DragSliderNestedFrame(evt);
        //                    }
        //                }
        //            }
        //        }
    }

    var SliderDiv_onmouseover = function () {
        var SliderLeft = document.getElementById(scrollbarID + "_SliderLeft");
        var SliderSpacer = document.getElementById(scrollbarID + "_SliderSpacer");
        var SliderRight = document.getElementById(scrollbarID + "_SliderRight");

        if (!/\-mouseover/.test(SliderLeft.src)) {
            SliderLeft.src = SliderLeft.src.replace(/\.png/, "-mouseover.png");
        }

        if (!/\-mouseover/.test(SliderSpacer.style.backgroundImage)) {
            SliderSpacer.style.backgroundImage = SliderSpacer.style.backgroundImage.replace(/\.png/, "-mouseover.png");
        }

        if (!/\-mouseover/.test(SliderRight.src)) {
            SliderRight.src = SliderRight.src.replace(/\.png/, "-mouseover.png");
        }
    }

    var SliderDiv_onmouseout = function () {
        var SliderLeft = document.getElementById(scrollbarID + "_SliderLeft");
        var SliderSpacer = document.getElementById(scrollbarID + "_SliderSpacer");
        var SliderRight = document.getElementById(scrollbarID + "_SliderRight");

        if (/\-mouseover/.test(SliderLeft.src)) {
            SliderLeft.src = SliderLeft.src.replace(/\-mouseover/, "");
        }

        if (/\-mouseover/.test(SliderSpacer.style.backgroundImage)) {
            SliderSpacer.style.backgroundImage = SliderSpacer.style.backgroundImage.replace(/\-mouseover/, "");
        }

        if (/\-mouseover/.test(SliderRight.src)) {
            SliderRight.src = SliderRight.src.replace(/\-mouseover/, "");
        }
    }

    var DragSlider = function (evt) {
        if (!evt) evt = window.event;

        var offsetPointer = document.getElementById(scrollbarID + "_LeftArrow");
        var x = 0;

        while (offsetPointer) {
            x += offsetPointer.offsetLeft;
            offsetPointer = offsetPointer.offsetParent;
        }

        //var relativePos = evt.clientY - y - (SliderHeight / 2);   
        var LeftArrow = document.getElementById(scrollbarID + "_LeftArrow");
        var RightArrow = document.getElementById(scrollbarID + "_RightArrow");

        var relativePos = evt.clientX - x - CursorOffsetX - LeftArrow.offsetWidth - RightArrow.offsetWidth;
        MoveSlider(relativePos);
    }

    var DragSliderIFrame = function (evt) {
        if (!evt) evt = window.frames["ClientIFrame"].window.event;

        var offsetPointer = top.document.getElementById(scrollbarID + "_LeftArrow");
        var x = 0;

        while (offsetPointer) {
            x += offsetPointer.offsetLeft;
            offsetPointer = offsetPointer.offsetParent;
        }

        //        var DashboardButtons = top.document.getElementById("DashboardButtons");
        //        var Application_LogoutCell = top.document.getElementById("Application_LogoutCell");
        //        var LeftArrow = document.getElementById(scrollbarID + "_LeftArrow");
        //        
        //        var StarCAM_SignUp_Logo = document.getElementById("StarCAM_SignUp_Logo");
        //        
        //        var DashOffsetHeight = 0;
        //        var LogoutOffsetHeight = 0;
        //        var LogoOffsetHeight = 0;

        //        if (DashboardButtons) DashOffsetHeight = DashboardButtons.offsetHeight;
        //        if (Application_LogoutCell) LogoutOffsetHeight = Application_LogoutCell.offsetHeight;   
        //        if (StarCAM_SignUp_Logo) LogoOffsetHeight = StarCAM_SignUp_Logo.offsetHeight;    
        //           
        var LeftArrow = document.getElementById(scrollbarID + "_LeftArrow");
        var RightArrow = document.getElementById(scrollbarID + "_RightArrow");

        var relativePos = evt.clientX - x - CursorOffsetX - LeftArrow.offsetWidth; // + DashOffsetHeight + LogoutOffsetHeight + LogoOffsetHeight;   

        MoveSlider(relativePos);
    }

    var DragSliderNestedIFrame = function (evt) {
        if (!evt) evt = window.frames["ClientIFrame"].window.frames["BlackBookIFrame"].window.event;

        var offsetPointer = top.document.getElementById(scrollbarID + "_LeftArrow");
        var x = 0;

        while (offsetPointer) {
            x += offsetPointer.offsetLeft;
            offsetPointer = offsetPointer.offsetParent;
        }

        //        var BlackbookHeaderHeader = window.frames["ClientIFrame"].document.getElementById("BlackbookHeaderHeader");
        //        var DashboardButtons = top.document.getElementById("DashboardButtons");
        //        var Application_LogoutCell = top.document.getElementById("Application_LogoutCell");
        var LeftArrow = document.getElementById(scrollbarID + "_LeftArrow");
        var RightArrow = document.getElementById(scrollbarID + "_RightArrow");

        var relativePos = evt.clientX - x - CursorOffsetX - LeftArrow.offsetWidth - RightArrow.offsetWidth; // + DashboardButtons.offsetHeight + Application_LogoutCell.offsetHeight + BlackbookHeaderHeader.offsetHeight;   

        MoveSlider(relativePos);
    }

    var DragSliderNestedFrame = function (evt) {
        alert("HI");
    }

    var MoveSlider = function (relativePos) {
        var Slider = document.getElementById(scrollbarID + "_Slider");

        //        var TestDiv;
        //        
        //        if (top.document.getElementById("TestDiv"))
        //        {
        //            TestDiv = top.document.getElementById("TestDiv");
        //        }
        //        else
        //        {
        //            TestDiv = top.document.createElement("div");
        //            TestDiv.style.color = "red";
        //            TestDiv.style.backgroundColor = "white";
        //            TestDiv.style.position = "absolute";
        //            TestDiv.style.top = "20px";
        //            TestDiv.style.left = "20px";
        //            TestDiv.id = "TestDiv";
        //            
        //            top.document.body.appendChild(TestDiv);
        //        }
        //        
        //        TestDiv.innerHTML = relativePos;

        var ScrollTarget = GetScrollTarget();

        if (!ScrollTarget) return;

        var SliderPos = relativePos;
        //var SliderPos = (-(MaxDown - MaxUp)) + (relativePos - (SliderHeight / 2));

        if (SliderPos < 0) {
            ScrollTarget.scrollLeft = "0px";
            Slider.style.left = "0px";
        }
        else if (SliderPos > (MaxRight - SliderWidth - 1)) {
            ScrollTarget.scrollLeft = ScrollTarget.scrollWidth - ScrollTarget.clientWidth - 1;
            Slider.style.left = (MaxRight - SliderWidth) + "px";
        }
        else {
            ScrollTarget.scrollLeft = SliderPos * Ratio;
            Slider.style.left = SliderPos + "px";
        }
    }

    this.ReverseMoveSlider = function () {
        var ScrollBar = document.getElementById(scrollbarID);

        if ((isDisplay ? ScrollBar.style.display != "none" : ScrollBar.style.visibility != "hidden")) {
            var ScrollTarget = GetScrollTarget();

            if (!ScrollTarget) return;

            var Slider = document.getElementById(scrollbarID + "_Slider");
            var SliderTrack = document.getElementById(scrollbarID + "_Track");

            MaxRight = parseInt(SliderTrack.style.width);

            Ratio = (ScrollTarget.scrollWidth - ScrollTarget.clientWidth) / (MaxRight - SliderWidth);

            if (Ratio != 0) {
                Slider.style.left = parseInt(ScrollTarget.scrollLeft * (1 / Ratio)) + "px";
            }
        }
    }

    var MoveLeft = function () {
        var ScrollTarget = GetScrollTarget();

        if (!ScrollTarget) return;

        var Slider = document.getElementById(scrollbarID + "_Slider");

        var SliderTrack = document.getElementById(scrollbarID + "_Track");
        MaxRight = parseInt(SliderTrack.style.width);

        Ratio = (ScrollTarget.scrollWidth - ScrollTarget.clientWidth) / (MaxRight - SliderWidth);

        Increment = parseInt((1 / Ratio) * 10) + 10;

        var relativePos = parseInt(Slider.style.left) - Increment;

        var ScrollBar = document.getElementById(scrollbarID);

        if ((isDisplay ? ScrollBar.style.display != "none" : ScrollBar.style.visibility != "hidden"))
            MoveSlider(relativePos);
    }

    var MoveRight = function () {
        var ScrollTarget = GetScrollTarget();

        if (!ScrollTarget) return;

        var Slider = document.getElementById(scrollbarID + "_Slider");
        var SliderTrack = document.getElementById(scrollbarID + "_Track");

        MaxRight = parseInt(SliderTrack.style.width);

        Ratio = (ScrollTarget.scrollWidth - ScrollTarget.clientWidth) / (MaxRight - SliderWidth);

        Increment = parseInt((1 / Ratio) * 10) + 10;

        var relativePos = parseInt(Slider.style.left) + Increment;

        var ScrollBar = document.getElementById(scrollbarID);

        if ((isDisplay ? ScrollBar.style.display != "none" : ScrollBar.style.visibility != "hidden"))
            MoveSlider(relativePos);
    }

    var EndDragSlider = function (evt) {
        if (!evt) evt = window.event;

        document.removeEventListener ? document.removeEventListener("mousemove", document.DragSlider, false) : document.onmousemove = null;
        document.removeEventListener ? document.removeEventListener("mouseup", document.EndDragSlider, false) : document.onmouseup = null;

        document.onselectstart = null;

        document.DragSlider = null;
        document.EndDragSlider = null;

        if (document.getElementById("ClientIFrame")) {
            var ClientIFrame = window.frames["ClientIFrame"];

            ClientIFrame.document.removeEventListener ? ClientIFrame.document.removeEventListener("mouseup", ClientIFrame.document.EndDragSlider, false) : ClientIFrame.document.onmouseup = null;
            ClientIFrame.document.removeEventListener ? ClientIFrame.document.removeEventListener("mousemove", ClientIFrame.document.DragSliderIFrame, false) : ClientIFrame.document.onmousemove = null;

            ClientIFrame.document.EndDragSlider = null;
            ClientIFrame.document.DragSliderIFrame = null;

            if (ClientIFrame.document.getElementById("BlackBookIFrame")) {
                var BlackBookIFrame = ClientIFrame.window.frames["BlackBookIFrame"];

                BlackBookIFrame.document.removeEventListener ? BlackBookIFrame.document.removeEventListener("mouseup", BlackBookIFrame.document.EndDragSlider, false) : BlackBookIFrame.document.onmouseup = null;
                BlackBookIFrame.document.removeEventListener ? BlackBookIFrame.document.removeEventListener("mousemove", BlackBookIFrame.document.DragSliderNestedIFrame, false) : BlackBookIFrame.document.onmousemove = null;

                BlackBookIFrame.document.EndDragSlider = null;
                BlackBookIFrame.document.DragSliderNestedIFrame = null;
            }
        }

        Dragging = false;
    }

    this.SliderCheck = function () {
        var ScrollTarget = GetScrollTarget();

        if (!ScrollTarget) return;

        if (parseInt(ScrollTarget.scrollWidth) > parseInt(ScrollTarget.clientWidth)) {
            ShowSlider();
            AdjustSliderSize();
        }
        else {
            ResetSlider();
            HideSlider();
        }
    }

    var AdjustSliderSize = function () {
        var ScrollTarget = GetScrollTarget();

        if (!ScrollTarget) return;

        var SliderSpacer = document.getElementById(scrollbarID + "_SliderSpacer");
        var SliderLeft = document.getElementById(scrollbarID + "_SliderLeft");
        var SliderRight = document.getElementById(scrollbarID + "_SliderRight");
        var Slider = document.getElementById(scrollbarID + "_Slider");

        var SliderTrack = document.getElementById(scrollbarID + "_Track");
        MaxRight = parseInt(SliderTrack.style.width);

        AdjustRatio = MaxRight / ScrollTarget.scrollWidth;

        var NewSliderWidth = parseInt(ScrollTarget.clientWidth * AdjustRatio) - parseInt(SliderLeft.offsetWidth) - parseInt(SliderRight.offsetWidth);

        if (NewSliderWidth <= 1) NewSliderWidth = 1;

        Slider.style.width = (parseInt(SliderLeft.offsetWidth) + parseInt(SliderRight.offsetWidth) + NewSliderWidth) + "px";

        SliderSpacer.style.width = (NewSliderWidth) + "px";
        SliderWidth = parseInt(Slider.offsetWidth);
    }

    var ResetSlider = function () {
        var Slider = document.getElementById(scrollbarID + "_Slider");

        Slider.style.left = "0px";
    }

    var ShowSlider = function () {
        var ScrollBar = document.getElementById(scrollbarID);

        if (isDisplay) {
            ScrollBar.style.display = "";

            if (ScrollBar.parentNode) ScrollBar.parentNode.style.display = "";
        }
        else
            ScrollBar.style.visibility = "";
    }

    var HideSlider = function () {
        var ScrollBar = document.getElementById(scrollbarID);

        if (isDisplay) {
            ScrollBar.style.display = "none";

            if (ScrollBar.parentNode) ScrollBar.parentNode.style.display = "none";
        }
        else
            ScrollBar.style.visibility = "hidden";

    }

    var handle = function (delta) {
        if (delta < 0)
            MoveRight();
        else
            MoveLeft();
    }

    /** Event handler for mouse wheel event.
    */
    var wheel = function (event) {
        var delta = 0;
        if (!event) /* For IE. */
        {
            if (isTargetIFrame && isTargetNestedIFrame)
                event = window.frames[iFrameName].window.frames[nestedIFrameName].window.event;
            else if (isTargetIFrame && !isTargetNestedIFrame)
                event = window.frames[iFrameName].window.event;
            else
                event = window.event;
        }
        if (event.wheelDelta) { /* IE/Opera. */
            delta = event.wheelDelta / 120;
            /** In Opera 9, delta differs in sign as compared to IE.
            */
            if (window.opera)
                delta = -delta;
        } else if (event.detail) { /** Mozilla case. */
            /** In Mozilla, sign of delta is different than in IE.
            * Also, delta is multiple of 3.
            */
            delta = -event.detail / 3;
        }
        /** If delta is nonzero, handle it.
        * Basically, delta is now positive if wheel was scrolled up,
        * and negative, if wheel was scrolled down.
        */
        if (delta)
            handle(delta);
        /** Prevent default actions caused by mouse wheel.
        * That might be ugly, but we handle scrolls somehow
        * anyway, so don't bother here..
        */

        var Slider = document.getElementById(scrollbarID + "_Slider");

        if (parseInt(Slider.style.left) != 0) {
            if (parseInt(Slider.style.left) < (MaxRight - SliderWidth)) {
                if (event.preventDefault)
                    event.preventDefault();

                event.returnValue = false;
            }
        }
    }

    this.outerWheel = function (event) {
        var delta = 0;
        if (!event) /* For IE. */
        {
            if (isTargetIFrame && isTargetNestedIFrame)
                event = window.frames[iFrameName].window.frames[nestedIFrameName].window.event;
            else if (isTargetIFrame && !isTargetNestedIFrame)
                event = window.frames[iFrameName].window.event;
            else
                event = window.event;
        }
        if (event.wheelDelta) { /* IE/Opera. */
            delta = event.wheelDelta / 120;
            /** In Opera 9, delta differs in sign as compared to IE.
            */
            if (window.opera)
                delta = -delta;
        } else if (event.detail) { /** Mozilla case. */
            /** In Mozilla, sign of delta is different than in IE.
            * Also, delta is multiple of 3.
            */
            delta = -event.detail / 3;
        }
        /** If delta is nonzero, handle it.
        * Basically, delta is now positive if wheel was scrolled up,
        * and negative, if wheel was scrolled down.
        */
        if (delta)
            handle(delta);
        /** Prevent default actions caused by mouse wheel.
        * That might be ugly, but we handle scrolls somehow
        * anyway, so don't bother here..
        */

        var Slider = document.getElementById(scrollbarID + "_Slider");

        if (parseInt(Slider.style.left) != 0) {
            if (parseInt(Slider.style.left) < (MaxRight - SliderWidth)) {
                if (event.preventDefault)
                    event.preventDefault();

                event.returnValue = false;
            }
        }
    }


    var GetScrollTarget = function () {
        var ScrollTarget;

        if (isTargetIFrame && isTargetNestedIFrame)
            ScrollTarget = window.frames[iFrameName].window.frames[nestedIFrameName].document.getElementById(scrollTarget);
        else if (isTargetIFrame && !isTargetNestedIFrame)
            ScrollTarget = window.frames[iFrameName].document.getElementById(scrollTarget);
        else
            ScrollTarget = document.getElementById(scrollTarget);

        if (ScrollTarget) {
            ScrollTarget.style.position = "relative";
        }

        return ScrollTarget;
    }

    var GetTargetWindow = function () {
        var TargetWindow;

        if (isTargetIFrame && isTargetNestedIFrame)
            TargetWindow = window.frames[iFrameName].window.frames[nestedIFrameName];
        else if (isTargetIFrame && !isTargetNestedIFrame)
            TargetWindow = window.frames[iFrameName];
        else
            TargetWindow = window;

        return TargetWindow;
    }
}

Button_onmouseover = function (e) {
    e.style.cursor = "pointer";

    if (!/\-mouseover/.test(e.src) && !/\-active/.test(e.src)) {
        if (/\.jpg/.test(e.src)) {
            e.src = e.src.replace(/\.jpg/g, "-mouseover.jpg");
        }
        else if (/\.gif/.test(e.src)) {
            e.src = e.src.replace(/\.gif/g, "-mouseover.gif");
        }
        else if (/\.png/.test(e.src)) {
            e.src = e.src.replace(/\.png/g, "-mouseover.png");
        }
        else
            return;
    }

    e.onmouseout = function () {
        if (/\-mouseover/.test(e.src))
            e.src = e.src.replace(/\-mouseover/g, "");
    }
}
