
function scroll(obj, oWidth, oHeight, direction, drag, zoom, speed)
{
    var scrollDiv        = obj
    var scrollContent    = document.createElement("span")
    scrollContent.style.position = "absolute"
    scrollDiv.applyElement(scrollContent, "inside")
    var displayWidth    = (oWidth  != "auto" && oWidth ) ? oWidth  : scrollContent.offsetWidth  + parseInt(scrollDiv.currentStyle.borderRightWidth)
    var displayHeight    = (oHeight != "auto" && oHeight) ? oHeight : scrollContent.offsetHeight + parseInt(scrollDiv.currentStyle.borderBottomWidth)
    var contentWidth    = scrollContent.offsetWidth
    var contentHeight    = scrollContent.offsetHeight
    var scrollXItems    = Math.ceil(displayWidth  / contentWidth)  + 1
    var scrollYItems    = Math.ceil(displayHeight / contentHeight) + 1

    scrollDiv.style.width     = oWidth
    scrollDiv.style.height     =oHeight
    scrollDiv.style.overflow = "hidden"
    scrollDiv.setAttribute("state", "stop")
    scrollDiv.setAttribute("drag", drag ? drag : "horizontal")
    scrollDiv.setAttribute("direction", direction ? direction : "left")
    scrollDiv.setAttribute("zoom", zoom ? zoom : 1)
    scrollContent.style.zoom = scrollDiv.zoom

    var scroll_script =    "var scrollDiv = " + scrollDiv.uniqueID                                        +"\n"+
                "var scrollObj = " + scrollContent.uniqueID                                    +"\n"+
                "var contentWidth = " + contentWidth + " * (scrollObj.runtimeStyle.zoom ? scrollObj.runtimeStyle.zoom : 1)"    +"\n"+
                "var contentHeight = " + contentHeight + " * (scrollObj.runtimeStyle.zoom ? scrollObj.runtimeStyle.zoom : 1)"    +"\n"+
                "var scrollx = scrollObj.runtimeStyle.pixelLeft"                                +"\n"+
                "var scrolly = scrollObj.runtimeStyle.pixelTop"                                    +"\n"+

                "switch (scrollDiv.state.toLowerCase())"                                +"\n"+
                "{"                                                    +"\n"+
                    "case ('scroll')    :"                                    +"\n"+
                        "switch (scrollDiv.direction)"                                +"\n"+
                        "{"                                            +"\n"+
                            "case ('left')        :"                            +"\n"+
                                "scrollx = (--scrollx) % contentWidth"                    +"\n"+
                                "break"                                    +"\n"+
                            "case ('right')    :"                                +"\n"+
                                "scrollx = -contentWidth + (++scrollx) % contentWidth"            +"\n"+
                                "break"                                    +"\n"+
                            "case ('up')    :"                                +"\n"+
                                "scrolly = (--scrolly) % contentHeight"                    +"\n"+
                                "break"                                    +"\n"+
                            "case ('down')    :"                                +"\n"+
                                "scrolly = -contentHeight + (++scrolly) % contentHeight"        +"\n"+
                                "break"                                    +"\n"+
                            "case ('left_up')    :"                            +"\n"+
                                "scrollx = (--scrollx) % contentWidth"                    +"\n"+
                                "scrolly = (--scrolly) % contentHeight"                    +"\n"+
                                "break"                                    +"\n"+
                            "case ('left_down')    :"                            +"\n"+
                                "scrollx = (--scrollx) % contentWidth"                    +"\n"+
                                "scrolly = -contentHeight + (++scrolly) % contentHeight"        +"\n"+
                                "break"                                    +"\n"+
                            "case ('right_up')    :"                            +"\n"+
                                "scrollx = -contentWidth + (++scrollx) % contentWidth"            +"\n"+
                                "scrolly = (--scrolly) % contentHeight"                    +"\n"+
                                "break"                                    +"\n"+
                            "case ('right_down')    :"                            +"\n"+
                                "scrollx = -contentWidth + (++scrollx) % contentWidth"            +"\n"+
                                "scrolly = -contentHeight + (++scrolly) % contentHeight"        +"\n"+
                                "break"                                    +"\n"+
                            "default        :"                            +"\n"+
                                "return"                                +"\n"+
                        "}"                                            +"\n"+
                        "scrollObj.runtimeStyle.left = scrollx"                            +"\n"+
                        "scrollObj.runtimeStyle.top = scrolly"                            +"\n"+
                        "break"                                            +"\n"+

                    "case ('stop')    :"                                        +"\n"+
                    "case ('drag')    :"                                        +"\n"+
                    "default    :"                                        +"\n"+
                        "return"                                        +"\n"+
                "}"

    var contentNode = document.createElement("span")
    contentNode.runtimeStyle.position = "absolute"
    contentNode.runtimeStyle.width = contentWidth
    scrollContent.applyElement(contentNode, "inside")
    for (var i=0; i <= scrollXItems; i++)
    {
        for (var j=0; j <= scrollYItems ; j++)
        {
            if (i+j == 0)    continue
            var tempNode = contentNode.cloneNode(true)
            var contentLeft, contentTop
            scrollContent.insertBefore(tempNode)
            contentLeft = contentWidth * i
            contentTop = contentHeight * j
            tempNode.runtimeStyle.left = contentLeft
            tempNode.runtimeStyle.top  = contentTop
        }
    }

    scrollDiv.onpropertychange = function()
    {
        var propertyName = window.event.propertyName
        var propertyValue = eval("this." + propertyName)

        switch(propertyName)
        {
            case "zoom"        :
                var scrollObj = this.children[0]
                scrollObj.runtimeStyle.zoom = propertyValue
                var content_width  = scrollObj.children[0].offsetWidth  * propertyValue
                var content_height = scrollObj.children[0].offsetHeight * propertyValue
                scrollObj.runtimeStyle.left = -content_width  + (scrollObj.runtimeStyle.pixelLeft % content_width)
                scrollObj.runtimeStyle.top  = -content_height + (scrollObj.runtimeStyle.pixelTop  % content_height)
                break
        }
    }

    scrollDiv.onlosecapture = function()
    {
        this.state = this.tempState ? this.tempState : this.state
        this.runtimeStyle.cursor = ""
        this.removeAttribute("tempState")
        this.removeAttribute("start_x")
        this.removeAttribute("start_y")
        this.removeAttribute("default_left")
        this.removeAttribute("default_top")
    }

    scrollDiv.onmousedown = function()
    {
        if (this.state != "drag")    this.setAttribute("tempState", this.state)
        this.state = "drag"
        this.runtimeStyle.cursor = "default"
        this.setAttribute("start_x", event.clientX)
        this.setAttribute("start_y", event.clientY)
        this.setAttribute("default_left", this.children[0].style.pixelLeft)
        this.setAttribute("default_top", this.children[0].style.pixelTop)
        this.setCapture()
    }

    scrollDiv.onmouseup = function()
    {
        this.releaseCapture()
    }
    scrollDiv.onmouseover = function()
    {
    	scrollDiv.state = "stop"
    }
    scrollDiv.onmouseout = function()
    {
    	scrollDiv.state = "scroll"
    }
    scrollDiv.state = "scroll"
	scrollDiv.direction="up"
    setInterval(scroll_script, speed ? speed : 60)
}

function openWin(surl ) {
popup= null; 
popup=window.open(surl, "popupWin",'toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,scrollbars=yes,width=800,height=400 top=100,left=100');
if (popup.opener == null) popup.opener = window;
popup.focus();
}

function openWin1(surl ) {
popup= null; 
popup=window.open(surl, "popupWin",'toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,scrollbars=yes,width=800,height=500 top=100,left=100');
if (popup.opener == null) popup.opener = window;
popup.focus();
}

function openpic(url,width,height,aa) 
{
OpenWindow=window.open("","url","height="+height+",width="+width+",toolbar=no, menubar=no,scrollbars=yes,resizable=no,location=no,status=no,top=200,left=200"); 
OpenWindow.document.write("<HTML>") 
OpenWindow.document.write("<TITLE>"+aa+"</TITLE>") 
OpenWindow.document.write("<BODY leftmargin=0 bottommargin=0 topmargin=0 rightmargin=0>") 
OpenWindow.document.write("<img src=images/"+url+"></img>") 
OpenWindow.document.write("</body>") 
OpenWindow.document.write("</HTML>") 
OpenWindow.document.close() 
} 

function openWin2(surl ) {
popup= null; 
popup=window.open(surl, "popupWin",'toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,scrollbars=yes,width=340,height=400 top=100,left=100');
if (popup.opener == null) popup.opener = window;
popup.focus();
}

function openWin3(surl ) {
popup= null; 
popup=window.open(surl, "popupWin",'toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,scrollbars=yes,width=800,height=480 top=100,left=100');
if (popup.opener == null) popup.opener = window;
popup.focus();
}
