﻿<!-- //
var gc_bDebug = true;
var g_aobjSliderGroups = [];
var g_aobjSliders = [];
var g_nSliderIndex = -1;
var g_bMouseover = false;
var g_nMaxX = 0;
var g_nMaxY = 0;
var g_nLeft = 0;
var g_nTop = 0;
var g_nX = 0;
var g_nY = 0;
var g_objGroupState = null;

var gc_nVertical = 1;
var gc_nHorizontal = 2;
var gc_nDisableOpacity = 4;

function cSliderGroup(strID)
    {
    this.m_strID = strID;
    this.m_anSliderIndexes = [];
    this.m_nGroupValue = 0;
    }
    
function GetSliderGroupIndex(strID)
    {
    for(var nGroupIndex = 0; nGroupIndex < g_aobjSliderGroups.length; nGroupIndex++)
        {
        if(g_aobjSliderGroups[nGroupIndex].m_strID === strID)
            return nGroupIndex;
        }
        
    return -1;
    }
    
function AddSliderGroup(strID, nSliderIndex)
    {
    var nGroupIndex = GetSliderGroupIndex(strID);
    if(nGroupIndex == -1)
        {
        g_aobjSliderGroups[g_aobjSliderGroups.length] = new cSliderGroup(strID);
        nGroupIndex = (g_aobjSliderGroups.length - 1);
        }
        
    var nSlidersAdded = g_aobjSliderGroups[nGroupIndex].m_anSliderIndexes.length;
    g_aobjSliderGroups[nGroupIndex].m_anSliderIndexes[nSlidersAdded] = nSliderIndex;
    return nGroupIndex;
    }

function cSlider(strID, strGroupID, nFlags, nValue, nLength, nFrom, nTo, nCount, nDecimals, strOnChange)
    {
    this.m_strID = strID;
    this.m_bVertical = ((nFlags & gc_nVertical) == gc_nVertical);
    this.m_nLength = nLength;
    this.m_nFrom = nFrom;
    this.m_nTo = nTo;
    this.m_nChange = 0;
    this.m_nScale = 0;
    this.m_nLastValue = 0;
    this.m_nFromValue = 0;
    this.m_nCount = nCount ? nCount - 1 : nLength;
    this.m_nDecimals = nDecimals;
    this.m_nGroupIndex = -1;
    this.m_objOnChange = null;
    this.m_bLock = false;
    this.m_bUseOpacity = !((nFlags & gc_nDisableOpacity) == gc_nDisableOpacity);
    
    if(typeof(strGroupID) == "string" && strGroupID != "")
        {
        this.m_nGroupIndex = AddSliderGroup(strGroupID, g_aobjSliders.length);
        strOnChange = "OnSlideGroup(); " + strOnChange;
        }
        
    if(typeof(strOnChange) == "string" && strOnChange != "")
        this.m_objOnChange = new Function(strOnChange);
    
    if(this.m_bVertical == true)
        {
        this.m_txtTopLeftValue = document.getElementById("txt"+strID+"SliderTopValue");
        // --- If top value exists then we know we're displaying a split value slider.
        if(this.m_txtTopLeftValue)
            this.m_divTopLeftText = document.getElementById("div"+strID+"SliderTopText");
            
        this.m_txtBottomRightValue = document.getElementById("txt"+strID+"SliderBottomValue");
        this.m_divBottomRightText = document.getElementById("div"+strID+"SliderBottomText");
        }
    else
        {
        this.m_txtTopLeftValue = document.getElementById("txt"+strID+"SliderLeftValue");
        // --- If left value exists then we know we're displaying a split value slider.
        if(this.m_txtTopLeftValue)
            {
            this.m_txtBottomRightValue = this.m_txtTopLeftValue;
            this.m_divBottomRightText = document.getElementById("div"+strID+"SliderLeftText");
            
            this.m_txtTopLeftValue = document.getElementById("txt"+strID+"SliderRightValue");
            this.m_divTopLeftText = document.getElementById("div"+strID+"SliderRightText");
            }
        else
            {
            this.m_txtBottomRightValue = document.getElementById("txt"+strID+"SliderRightValue");
            this.m_divBottomRightText = document.getElementById("div"+strID+"SliderRightText");
            }
        }
        
    this.m_divGuide = document.getElementById("div"+strID+"SliderGuide");
    this.m_divTopLeft = document.getElementById("div"+strID+"Slider" + ((this.m_bVertical) ? "Top" : "Left"));
    this.m_divBottomRight = document.getElementById("div"+strID+"Slider" + ((this.m_bVertical) ? "Bottom" : "Right"));
    this.m_divSlider = document.getElementById("div"+strID+"SliderButton");
    
    this.GetLeft = function()
        {
        var nLeft = 0;
        if(this.m_divSlider.style && (typeof(this.m_divSlider.style.left) == "string"))
            nLeft = parseInt(this.m_divSlider.style.left);
        else if(this.m_divSlider.style && this.m_divSlider.style.pixelLeft)
            nLeft = this.m_divSlider.style.pixelLeft;
        if(isNaN(nLeft)) nLeft = 0;
	    return nLeft;
        }

    this.GetTop = function()
        {
        var nTop = 0;
        if(this.m_divSlider.style && (typeof(this.m_divSlider.style.top) == "string"))
            nTop = parseInt(this.m_divSlider.style.top);    
        else if(this.m_divSlider.style && this.m_divSlider.style.pixelTop)
            nTop = this.m_divSlider.style.pixelTop;
        if(isNaN(nTop)) nTop = 0;
	    return nTop;
        }
        
    this.UseOpacity = function(bUseOpacity)
		{
		this.m_bUseOpacity = bUseOpacity;
		}
        
    this.SetDisable = function(bDisable)   
        {
        if(this.m_txtBottomRightValue.disabled == bDisable) return;
        this.m_txtBottomRightValue.disabled = bDisable;
        var strClassName = (this.m_bVertical) ? "vsliderbutton" : "hsliderbutton";
        if(bDisable) strClassName += " sliderbuttondisabled";
        this.m_divSlider.className = strClassName;
        }
        
    this.SetLock = function(bLock)
        {
        if(this.m_bLock == bLock) return;
        this.m_bLock = bLock;
        }
    
    this.SetOpacity = function(nOpacity)
        {
        if(!this.m_bUseOpacity) return;
        
        if(this.m_bVertical)
            {
            this.m_divTopLeft.style.opacity = 1.0 - ((nOpacity - 40) / 100);
            this.m_divTopLeft.style.MozOpacity = 1.0 - ((nOpacity - 40) / 100);
            this.m_divTopLeft.style.KhtmlOpacity = 1.0 - ((nOpacity - 40) / 100);
            this.m_divTopLeft.style.filter = "alpha(opacity=" + (100 - (nOpacity - 40)) + ")";
            
            this.m_divBottomRight.style.opacity = (nOpacity / 100);
            this.m_divBottomRight.style.MozOpacity = (nOpacity / 100);
            this.m_divBottomRight.style.KhtmlOpacity = (nOpacity / 100);
            this.m_divBottomRight.style.filter = "alpha(opacity=" + nOpacity + ")";
            }
        else
            {
            this.m_divTopLeft.style.opacity = (nOpacity / 100);
            this.m_divTopLeft.style.MozOpacity = (nOpacity / 100);
            this.m_divTopLeft.style.KhtmlOpacity = (nOpacity / 100);
            this.m_divTopLeft.style.filter = "alpha(opacity=" + nOpacity + ")";
            
            this.m_divBottomRight.style.opacity = 1.0 - ((nOpacity - 40) / 100);
            this.m_divBottomRight.style.MozOpacity = 1.0 - ((nOpacity - 40) / 100);
            this.m_divBottomRight.style.KhtmlOpacity = 1.0 - ((nOpacity - 40) / 100);
            this.m_divBottomRight.style.filter = "alpha(opacity=" + (100 - (nOpacity - 40)) + ")";
            }
        }
        
    this.SetTop = function(nTop)
        {
        if(isNaN(nTop)) return;
        if(this.m_divSlider.style && (typeof(this.m_divSlider.style.top) == "string"))
            this.m_divSlider.style.top = nTop + "px";
        else if(this.m_divSlider.style && this.m_divSlider.style.pixelTop)
            this.m_divSlider.style.pixelTop = nTop;
        }
        
    this.SetLeft = function(nLeft)
        {
        if(isNaN(nLeft)) return;
        if(this.m_divSlider.style && (typeof(this.m_divSlider.style.left) == "string"))
            this.m_divSlider.style.left = nLeft + "px";
        else if(this.m_divSlider.style && this.m_divSlider.style.pixelLeft)
            this.m_divSlider.style.pixelLeft = nLeft;
        }
        
    this.SetWidth = function(nWidth)
        {
        if(isNaN(nWidth)) return;
        if(this.m_divSlider.style && (typeof(this.m_divSlider.style.width) == "string"))
            {
            this.m_divTopLeft.style.width = nWidth + "px";
            this.m_divBottomRight.style.width = (this.m_nLength - nWidth) + "px";
            }
        else if(this.m_divSlider.style && this.m_divSlider.style.pixelWidth)
            {
            this.m_divTopLeft.style.pixelWidth = nWidth;
            this.m_divBottomRight.style.pixelWidth = (this.m_nLength - nWidth);
            }
        }
        
    this.SetHeight = function(nHeight)
        {
        if(isNaN(nHeight)) return;
        if(this.m_divSlider.style && (typeof(this.m_divSlider.style.height) == "string"))
            {
            this.m_divTopLeft.style.height = nHeight + "px";
            this.m_divBottomRight.style.height = (this.m_nLength - nHeight) + "px";
            }
        else if(this.m_divSlider.style && this.m_divSlider.style.pixelHeight)
            {
            this.m_divTopLeft.style.pixelHeight = nHeight;
            this.m_divBottomRight.style.pixelHeight = (this.m_nLength - nHeight);
            }
        }
        
    this.SetRange = function(nFrom, nTo)
        {
        this.m_nFrom = nFrom;
        this.m_nTo = nTo;
        }
    
    this.SetSlide = function(nValue)
        {
        if(isNaN(nValue)) nValue = this.m_nLastValue;
        if(nValue < this.m_nFrom) nValue = this.m_nFrom;
        if(nValue > this.m_nTo) nValue = this.m_nTo;
        
        this.m_nChange = (nValue - this.m_nLastValue);
        this.m_txtBottomRightValue.value = nValue;
        if(this.m_divBottomRightText) this.m_divBottomRightText.innerHTML = nValue;
        if(this.m_txtTopLeftValue)
            {
            this.m_txtTopLeftValue.value = this.m_nTo - nValue;
            if(this.m_divTopLeftText) this.m_divTopLeftText.innerHTML = this.m_nTo - nValue;
            }
        this.m_nScale = (this.m_nTo - this.m_nFrom) / this.m_nLength;
        
        var nPos = 0;
        if(this.m_bVertical)
            {
            if(this.m_nFrom == this.m_nTo && this.m_txtTopLeftValue)
                nPos = (this.m_nLength / 2);
            else
                {
                this.m_nFromValue = this.m_nTo;
                this.m_nScale = -this.m_nScale;
                nPos = (nValue - this.m_nFromValue) / this.m_nScale;
                }
                
            this.SetTop(nPos);
            this.SetHeight(nPos);
            }
        else
            {
            if(this.m_nFrom == this.m_nTo && this.m_txtTopLeftValue)
                nPos = (this.m_nLength / 2);
            else
                {
                this.m_nFromValue = this.m_nFrom;
                nPos = (nValue - this.m_nFromValue) / this.m_nScale;
                }
                
            this.SetLeft(nPos);
            this.SetWidth(nPos);
            }
            
        var nOpacity = ((nValue * 60) / this.m_nLength) + 40;
        this.SetOpacity(nOpacity);
        this.m_nLastValue = nValue;
        }
        
    this.SetSlide(nValue);
    }
    
function GetSliderIndex(strID)
    {
    for(var nSliderIndex = 0; nSliderIndex < g_aobjSliders.length; nSliderIndex++)
        {
        if(g_aobjSliders[nSliderIndex].m_strID === strID)
            return nSliderIndex;
        }
        
    if(gc_bDebug) alert("SLIDER ERROR!\nUnable to find slider with ID " + strID + ".");
    return -1;
    }
    
function AddSlider(strID, strGroupID, nFlags, nValue, nLength, nFrom, nTo, nCount, nDecimals, strOnChange)
    {
    var nSliderIndex = g_aobjSliders.length;
    g_aobjSliders[nSliderIndex] = new cSlider(strID, strGroupID, nFlags, nValue, nLength, nFrom, nTo, nCount, nDecimals, strOnChange);
    
    var nGroupIndex = g_aobjSliders[nSliderIndex].m_nGroupIndex;
    if(nGroupIndex != -1) g_aobjSliderGroups[nGroupIndex].m_nGroupValue += parseInt(g_aobjSliders[nSliderIndex].m_txtBottomRightValue.value);
    return nSliderIndex;
    }
        
function OnSliderUp(eEvent)
    {
    var nSliderIndex = g_nSliderIndex;
    g_bMouseover = false;
    g_nSliderIndex = -1;
    g_objGroupState = null;
    
    if(nSliderIndex == -1) return false;
    if(g_aobjSliders[nSliderIndex].m_txtBottomRightValue.disabled) return false;
    
    var nValue = (g_aobjSliders[nSliderIndex].m_txtBottomRightValue.value) ? parseInt(g_aobjSliders[nSliderIndex].m_txtBottomRightValue.value) : 0;
    var nPos = (nValue - g_aobjSliders[nSliderIndex].m_nFromValue) / (g_aobjSliders[nSliderIndex].m_nScale);
    if(g_nMaxY == 0)
        {
        g_aobjSliders[nSliderIndex].SetLeft(nPos);
        g_aobjSliders[nSliderIndex].SetWidth(nPos);
        }
    if(g_nMaxX == 0)
        {
        g_aobjSliders[nSliderIndex].SetTop(nPos);
        g_aobjSliders[nSliderIndex].SetHeight(nPos);
        }
            
    if(document.all)
        {
        document.detachEvent("onmousemove", OnSliderMove)
	    document.detachEvent("onmouseup", OnSliderUp)
        }
    else
        {
        document.removeEventListener("mousemove", OnSliderMove, true);
	    document.removeEventListener("mouseup", OnSliderUp, true);
        }
        
     return false
    }
    
function OnSliderMove(eEvent)
    {
    if(g_nSliderIndex == -1) return false;
    if(g_aobjSliders[g_nSliderIndex].m_txtBottomRightValue.disabled) return false;
    if(!eEvent) eEvent = window.event;
    
    if(g_bMouseover)
        {
        var nX = g_nLeft + eEvent.screenX - g_nX;
        var nY = g_nTop + eEvent.screenY - g_nY;
        if(nX > g_nMaxX) nX = g_nMaxX;
        if(nX < 0) nX = 0;
		if(nY > g_nMaxY) nY = g_nMaxY;
		if(nY < 0) nY = 0;
		var nValue = nX + nY;
		var nPos = (g_aobjSliders[g_nSliderIndex].m_nLength / g_aobjSliders[g_nSliderIndex].m_nCount) * Math.round(g_aobjSliders[g_nSliderIndex].m_nCount * nValue / g_aobjSliders[g_nSliderIndex].m_nLength);
		nValue = Math.round((nPos * g_aobjSliders[g_nSliderIndex].m_nScale + g_aobjSliders[g_nSliderIndex].m_nFromValue) * Math.pow(10, g_aobjSliders[g_nSliderIndex].m_nDecimals)) / Math.pow(10, g_aobjSliders[g_nSliderIndex].m_nDecimals);
		
		if(g_objGroupState != null && ((nValue < g_objGroupState.nGroupValue && g_objGroupState.nSlidersUnlocked == 1) || (nValue > g_objGroupState.nGroupValue)))
	        {
	        g_aobjSliders[g_nSliderIndex].SetSlide(g_objGroupState.nGroupValue);
	        if(g_aobjSliders[g_nSliderIndex].m_objOnChange != null) g_aobjSliders[g_nSliderIndex].m_objOnChange();
	        return false;
            }
            
        g_aobjSliders[g_nSliderIndex].m_nChange = (nValue - parseInt(g_aobjSliders[g_nSliderIndex].m_txtBottomRightValue.value));
	    g_aobjSliders[g_nSliderIndex].m_txtBottomRightValue.value = nValue;
        if(g_aobjSliders[g_nSliderIndex].m_divBottomRightText) g_aobjSliders[g_nSliderIndex].m_divBottomRightText.innerHTML = nValue;
        if(g_aobjSliders[g_nSliderIndex].m_txtTopLeftValue)
            {
            g_aobjSliders[g_nSliderIndex].m_txtTopLeftValue.value = g_aobjSliders[g_nSliderIndex].m_nTo - nValue;
            if(g_aobjSliders[g_nSliderIndex].m_divTopLeftText) g_aobjSliders[g_nSliderIndex].m_divTopLeftText.innerHTML = g_aobjSliders[g_nSliderIndex].m_nTo - nValue;
            }
        
        var nLastValue = g_aobjSliders[g_nSliderIndex].m_nLastValue;
	    g_aobjSliders[g_nSliderIndex].m_nLastValue = nValue;
	    g_aobjSliders[g_nSliderIndex].SetLeft(nX);
	    g_aobjSliders[g_nSliderIndex].SetTop(nY);
	    if(g_nMaxY == 0) g_aobjSliders[g_nSliderIndex].SetWidth(nPos);
	    if(g_nMaxX == 0) g_aobjSliders[g_nSliderIndex].SetHeight(nPos);
	    var nOpacity = ((nValue * 60) / g_aobjSliders[g_nSliderIndex].m_nLength) + 40; 
	    g_aobjSliders[g_nSliderIndex].SetOpacity(nOpacity);		
	    if(nLastValue != nValue && g_aobjSliders[g_nSliderIndex].m_objOnChange != null) g_aobjSliders[g_nSliderIndex].m_objOnChange();
		return false;
        }
    }
    
function OnSliderDown(eEvent, strID)
    {
    var nSliderIndex = GetSliderIndex(strID);
    if(nSliderIndex == -1) return false;
    if(g_aobjSliders[nSliderIndex].m_txtBottomRightValue.disabled) return false;
    if(!eEvent) eEvent = window.event;
    
    if(g_aobjSliders[nSliderIndex].m_bVertical)    
        {
        g_nMaxX = 0;
        g_nMaxY = g_aobjSliders[nSliderIndex].m_nLength;
        }
    else
        {
        g_nMaxX = g_aobjSliders[nSliderIndex].m_nLength;
        g_nMaxY = 0;
        }
        
    g_nLeft = g_aobjSliders[nSliderIndex].GetLeft();
    g_nTop = g_aobjSliders[nSliderIndex].GetTop();
    g_nX = eEvent.screenX;
    g_nY = eEvent.screenY;
    g_nSliderIndex = nSliderIndex;
    g_bMouseover = true;
    g_objGroupState = GetSliderGroupState(g_aobjSliders[g_nSliderIndex].m_nGroupIndex);
    
    document.onmousemove = OnSliderMove;
    document.onmouseup = OnSliderUp;
    return false;
    }
    
function OnSliderChange(eEvent, strID)
    {
    if(!eEvent) eEvent = window.event;
    var txtTarget = eEvent.target || eEvent.srcElement;
    g_nSliderIndex = GetSliderIndex(strID);
    if(g_nSliderIndex == -1) return false;
    var nValue = parseInt(txtTarget.value);
    
    if(txtTarget.id != g_aobjSliders[g_nSliderIndex].m_txtBottomRightValue.id && g_aobjSliders[g_nSliderIndex].m_txtTopLeftValue)
        nValue = (g_aobjSliders[g_nSliderIndex].m_nTo - nValue);
        
    var objGroupState = GetSliderGroupState(g_aobjSliders[g_nSliderIndex].m_nGroupIndex);
    if(objGroupState != null)
        {
        var nGroupValue = objGroupState.nGroupValue;
        nGroupValue -= nValue;
        nGroupValue += g_aobjSliders[g_nSliderIndex].m_nLastValue;
        if(g_aobjSliders[g_nSliderIndex].m_nLastValue == nGroupValue && objGroupState.nSlidersUnlocked == 1)
            nValue = g_aobjSliders[g_nSliderIndex].m_nLastValue;
        else if(nValue >= nGroupValue)
            nValue = nGroupValue;
        }
        
    g_aobjSliders[g_nSliderIndex].SetSlide(nValue);
    if(g_aobjSliders[g_nSliderIndex].m_objOnChange != null) g_aobjSliders[g_nSliderIndex].m_objOnChange();
    return false;
    }
    
function SetSliderDisable(strID, bDisable)
    {
    var nSliderIndex = GetSliderIndex(strID);
    if(nSliderIndex == -1) return false;
    g_aobjSliders[nSliderIndex].SetDisable(bDisable);
    return false;
    }
    
function SetSliderLock(strID, bLock)
    {
    var nSliderIndex = GetSliderIndex(strID);
    if(nSliderIndex == -1) return false;
    g_aobjSliders[nSliderIndex].SetLock(bLock);
    return false;
    }
    
function GetSliderGroupState(nGroupIndex)
    {
    if(nGroupIndex == -1) return null;
    var nValue = 0;
    if(nGroupIndex >= 0)
    var nGroupSliderIndex, nUnlocked = 0;
    for(var nSliderIndex = 0; nSliderIndex < g_aobjSliderGroups[nGroupIndex].m_anSliderIndexes.length; nSliderIndex++)
        {
        nGroupSliderIndex = g_aobjSliderGroups[nGroupIndex].m_anSliderIndexes[nSliderIndex];
        if(g_aobjSliders[nGroupSliderIndex].m_txtBottomRightValue.disabled == false && g_aobjSliders[nGroupSliderIndex].m_bLock == false)
            {
            nValue += parseInt(g_aobjSliders[g_aobjSliderGroups[nGroupIndex].m_anSliderIndexes[nSliderIndex]].m_txtBottomRightValue.value);
            nUnlocked++;
            }
        }
    return { nGroupValue:nValue, nSlidersUnlocked:nUnlocked };
    }
        
function GetLowSliderInGroup(nGroupIndex)
    {
    var nLowSlider = -1;
    if(nGroupIndex >= 0)
        {
        var nGroupSlider;
        var nLow;
        var nValue;
        for(var nSliderIndex = 0; nSliderIndex < g_aobjSliderGroups[nGroupIndex].m_anSliderIndexes.length; nSliderIndex++)
            {
            nGroupSlider = g_aobjSliderGroups[nGroupIndex].m_anSliderIndexes[nSliderIndex];
            if(nGroupSlider == g_nSliderIndex || g_aobjSliders[nGroupSlider].m_txtBottomRightValue.disabled || g_aobjSliders[nGroupSlider].m_bLock) continue;
            nValue = parseInt(g_aobjSliders[nGroupSlider].m_txtBottomRightValue.value);
            if(nLowSlider == -1 || nValue < nLow)
                {
                nLowSlider = nGroupSlider;
                nLow = nValue;
                }
            }
        }
    return nLowSlider;
    }
    
function GetHighSliderInGroup(nGroupIndex)
    {
    var nHighSlider = -1;
    if(nGroupIndex >= 0)
        {
        var nGroupSlider;
        var nHigh;
        var nValue;
        for(var nSliderIndex = 0; nSliderIndex < g_aobjSliderGroups[nGroupIndex].m_anSliderIndexes.length; nSliderIndex++)
            { 
            nGroupSlider = g_aobjSliderGroups[nGroupIndex].m_anSliderIndexes[nSliderIndex];
            if(nGroupSlider == g_nSliderIndex || g_aobjSliders[nGroupSlider].m_txtBottomRightValue.disabled || g_aobjSliders[nGroupSlider].m_bLock) continue;
            nValue = parseInt(g_aobjSliders[nGroupSlider].m_txtBottomRightValue.value);
            if(nHighSlider == -1 || nValue > nHigh)
                {
                nHighSlider = nGroupSlider;
                nHigh = nValue;
                }
            }
        }
    return nHighSlider;
    }
    
function OnSlideGroup()
    {
    if(g_nSliderIndex == -1) return;
    var nGroupIndex = g_aobjSliders[g_nSliderIndex].m_nGroupIndex
    if(nGroupIndex == -1) return;    
    var nChange = g_aobjSliders[g_nSliderIndex].m_nChange;
    var nSliderIndex;
    while(nChange != 0)
        {
        if(nChange < 0)
            {
            nChange += 1;
            nSliderIndex = GetLowSliderInGroup(nGroupIndex);
            if(nSliderIndex != -1) g_aobjSliders[nSliderIndex].SetSlide(parseInt(g_aobjSliders[nSliderIndex].m_txtBottomRightValue.value) + 1);
            }
        else
            {
            nChange -= 1;
            nSliderIndex = GetHighSliderInGroup(nGroupIndex);
            if(nSliderIndex != -1) g_aobjSliders[nSliderIndex].SetSlide(parseInt(g_aobjSliders[nSliderIndex].m_txtBottomRightValue.value) - 1);
            }
        }
    g_aobjSliders[g_nSliderIndex].m_nChange = 0;
    }
    
function SetRange(strID, nFrom, nTo)
    {
    var nSliderIndex = GetSliderIndex(strID);
    if(nSliderIndex == -1)
        {
        if(gc_bDebug) alert("SLIDER ERROR!\nUnable to set range of slider with ID " + strID + ".");
        return;
        }
        
    g_aobjSliders[nSliderIndex].SetRange(nFrom, nTo);
    }
    
function SetSlide(strID, nValue)
    {
    var nSliderIndex = GetSliderIndex(strID);
    if(nSliderIndex == -1)
        {
        if(gc_bDebug) alert("SLIDER ERROR!\nUnable to set value of slider with ID " + strID + ".");
        return;
        }
        
    g_aobjSliders[nSliderIndex].SetSlide(nValue);
    }
    
function GetSlide(strID)
    {
    var nSliderIndex = GetSliderIndex(strID);
    if(nSliderIndex == -1)
        {
        if(gc_bDebug) alert("SLIDER ERROR!\nUnable to get slider with ID " + strID + ".");
        return 0;
        }
        
    return g_aobjSliders[nSliderIndex].m_nLastValue;
    }
// -->