function wo_Pws(wo_Url)
{
    try
    {
        var wo_Random = Math.floor(Math.random() * 9999999999);
        var wo_Image = new Image(1, 1);
        wo_Image.src = wo_Url + '&r=' + wo_Random;
        wo_Image.onload = function() { };
    }
    catch (wo_Err)
    {
    }

    return true;
}

function wo_TrackWidgetClick(wo_Anchor, wo_Source)
{
    try
    {
        if (wo_Anchor.href.indexOf("source=") == -1)
        {
            var wo_Query = wo_Anchor.href.indexOf("?") > -1 ? "&" : "?";
            wo_Anchor.href += wo_Query + "source=" + wo_Source;
        }
    }
    catch (wo_Err)
    {
    }

    return true;
}

function wo_TrackWidgetClickEmbedded(wo_Anchor, wo_Source)
{
    try
    {
        if (wo_Anchor.href.indexOf("source=") == -1)
        {
            var wo_Query = wo_Anchor.href.split("?").length > 2 ? "&" : "?";
            wo_Anchor.href += wo_Query + "source=" + wo_Source;
        }
    }
    catch (wo_Err)
    {
    }

    return true;
}

function wo_ShowTab(wo_TabIndex)
{
    try
    {
        for (var wo_Temp = 0; wo_Temp < _wo_Tabs; wo_Temp++)
        {
            var wo_Tab = document.getElementById("wo-widget-tab-" + wo_Temp);
            if (wo_Tab != null)
            {
                wo_Tab.className = wo_Temp == wo_TabIndex ? "wo-active" : "";
            }
            var wo_TabContent = document.getElementById("wo-widget-tab-content-" + wo_Temp);
            if (wo_TabContent != null)
            {
                wo_TabContent.className = wo_Temp == wo_TabIndex ? "" : "wo-widget-hide";
            }
        }

        // Show a random deal if carousel
        if (_wo_Carousel[wo_TabIndex] > 0)
        {
            var wo_CarouselIndex = wo_GetRandomIndex(_wo_CarouselWeightings[wo_TabIndex]);
            wo_ShowCarouselItem(wo_TabIndex, wo_CarouselIndex);
        }


    }
    catch (wo_Err)
    {
    }
}

function wo_IsTabVisible(wo_TabIndex)
{
    var wo_Tab = document.getElementById("wo-widget-tab-" + wo_Temp);
    return wo_Tab.className == "wo-active";
}

function wo_ShowCarouselItem(wo_TabIndex, wo_Index)
{
    try
    {
        _wo_Carousel_Visible[wo_TabIndex] = wo_Index;

        for (var wo_Temp = 0; wo_Temp < _wo_Carousel[wo_TabIndex]; wo_Temp++)
        {
            var wo_Selector = document.getElementById("wo-widget-carousel-" + wo_TabIndex + "-" + wo_Temp);
            if (wo_Selector != null)
            {
                wo_Selector.className = wo_Temp == wo_Index ? "wo-widget-carousel-on" : "";
            }
            var wo_Item = document.getElementById("wo-widget-carousel-item-" + wo_TabIndex + "-" + wo_Temp);
            if (wo_Item != null)
            {
                wo_Item.className = wo_Temp == wo_Index ? "" : "wo-widget-hide";
            }
        }
        wo_UpdateCarouselStatus(wo_TabIndex);

        if (_wo_PI && _wo_PI[wo_TabIndex][wo_Index] != "")
        {
            var r = Math.floor(Math.random() * 9999999999);
            var wo_Image = new Image(1, 1);
            wo_Image.src = _wo_PI[wo_TabIndex][wo_Index] + "&r=" + r;
            wo_Image.onload = function() { };
        }
    }
    catch (wo_Err)
    {
    }
}

function wo_NextCarouselItem(wo_TabIndex)
{
    try
    {
        var wo_Index = _wo_Carousel_Visible[wo_TabIndex] + 1;
        if (wo_Index == _wo_Carousel[wo_TabIndex])
        {
            wo_Index = 0;
        }
        wo_ShowCarouselItem(wo_TabIndex, wo_Index);
    }
    catch (wo_Err)
    {
    }
}

function wo_PreviousCarouselItem(wo_TabIndex)
{
    try
    {
        var wo_Index = _wo_Carousel_Visible[wo_TabIndex] - 1;
        if (wo_Index < 0)
        {
            wo_Index = _wo_Carousel[wo_TabIndex] - 1;
        }
        wo_ShowCarouselItem(wo_TabIndex, wo_Index);
    }
    catch (wo_Err)
    {
    }
}

function wo_UpdateCarouselStatus(wo_TabIndex)
{
    try
    {
        var wo_Status = document.getElementById("wo-carousel-status-" + wo_TabIndex);
        if (wo_Status != null)
        {
            var wo_Index = _wo_Carousel_Visible[wo_TabIndex] + 1;
            wo_Status.innerHTML = "<strong>" + wo_Index + " <span>of</span> " + _wo_Carousel[wo_TabIndex] + "</strong>";
        }
    }
    catch (wo_Err)
    {
    }
}

function wo_Randomise()
{

    try
    {

        // Show a random tab
        var wo_TabIndex = wo_GetRandomIndex(_wo_TabWeightings);
        wo_ShowTab(wo_TabIndex);

    }
    catch (wo_Err)
    {
    }

}

function wo_GetRandomIndex(wo_Weightings)
{
    var wo_Pegs = new Array();
    var wo_Max = 0;
    for (var wo_Temp = 0; wo_Temp < wo_Weightings.length; wo_Temp++)
    {
        if (wo_Weightings[wo_Temp] == 0)
        {
            wo_Pegs[wo_Temp] = 0;
        }
        else
        {
            wo_Max += wo_Weightings[wo_Temp];
            wo_Pegs[wo_Temp] = wo_Max;
        }
    }

    var wo_Random = Math.ceil(Math.random() * wo_Max);
    for (var wo_Temp = 0; wo_Temp < wo_Pegs.length; wo_Temp++)
    {
        if (wo_Random <= wo_Pegs[wo_Temp])
        {
            return wo_Temp;
        }
    }

    return 0;
}

function wo_GetCarouselWeightings()
{
    var wo_Weightings = new Array();

    for (var wo_Temp = 0; wo_Temp < _wo_Carousel.length; wo_Temp++)
    {
        if (_wo_Carousel[wo_Temp] > 0)
        {
            wo_Weightings[wo_Temp] = new Array();
            for (var wo_Temp2 = 0; wo_Temp2 < _wo_Carousel[wo_Temp]; wo_Temp2++)
            {
                wo_Weightings[wo_Temp][wo_Temp2] = 1;
            }
        }
    }

    return wo_Weightings;
}

function wo_GetPI()
{
    var wo_PI = new Array();

    for (var wo_Temp = 0; wo_Temp < _wo_Carousel.length; wo_Temp++)
    {
        if (_wo_Carousel[wo_Temp] > 0)
        {
            wo_PI[wo_Temp] = new Array();
            for (var wo_Temp2 = 0; wo_Temp2 < _wo_Carousel[wo_Temp]; wo_Temp2++)
            {
                wo_PI[wo_Temp][wo_Temp2] = '';
            }
        }
    }

    return wo_PI;
}

