﻿// JScript File
var WidgetBackgroundColor = '_grey';

function GetWidgetScrollerValue(WidgetControlID, what)
{
    var PageNo = eval('WidgetPageNumber' + WidgetControlID);
    var WidgetID = eval('WidgetID' + WidgetControlID);
    sndReq('/XML/getWidgetContent.aspx?What=' + what + '&WidgetControlID=' + WidgetControlID + '&WidgetID=' + WidgetID + '&PageNo=' + PageNo, 'LoadWidget' + WidgetControlID);
}

function LoadWidgetData(doc)
{
    var x = GetXMLObject(doc).childNodes[0];
    var WidgetID = x.getAttribute('WidgetID');
    var WidgetControlID = x.getAttribute('WidgetControlID');
    var PageNumber = x.getAttribute('PageNumber');
    var TotalPages = x.getAttribute('TotalPages');
    var What = x.getAttribute('What');
    var Content = getInnerText(x.childNodes[0].childNodes[0]);
    
    if (Content == 'EMPTY')
    {
        var ttl = document.getElementById('tblFullWidget' + WidgetControlID);
        ttl.style.display = 'none';
    }
    
    var clContent = document.getElementById('clWidgetContent' + WidgetControlID);
    var divContent = document.getElementById('divWidgetContent' + WidgetControlID);
    var divContentSlider = document.getElementById('divWidgetContentSlider' + WidgetControlID);
    var clPrevious = document.getElementById('clWidgetPrevious' + WidgetControlID);
    var clNext = document.getElementById('clWidgetNext' + WidgetControlID);
    var clText = document.getElementById('clWidgetText' + WidgetControlID);
    
    if (clContent)
        clContent.innerHTML = Content;
    else
    {
        divContent.style.height = '';
        divContent.innerHTML = Content;
    }
    
    if (clNext)
    {
        var prev = '<img src="' + jsImagePath + 'Widgets/leftArrow_dis.gif" />';
        var next = '<img src="' + jsImagePath + 'Widgets/rightArrow_dis.gif" />';
    
        if (PageNumber != 0)
            prev = '<a href="javascript:ChangeWidgetPaging(\'' + WidgetControlID + '\', ' + ((1*PageNumber) - 1) + ', \'' + What + '\')"><img border="0" src="' + jsImagePath + 'Widgets/leftArrow.gif" /></a>';
       
        if (PageNumber != TotalPages)
            next = '<a href="javascript:ChangeWidgetPaging(\'' + WidgetControlID + '\', ' + ((1*PageNumber) + 1) + ', \'' + What + '\')"><img border="0" src="' + jsImagePath + 'Widgets/rightArrow.gif" /></a>';
      
        clNext.innerHTML = next;
        clPrevious.innerHTML = prev;
        
        if (clText)
            clText.innerHTML = '<b>' + (1*PageNumber+1) + '</b> of ' + (1*TotalPages+1);
    }
    StartWidgetSlide(WidgetControlID);
}

function StartWidgetSlide(WidgetControlID)
{
    var FirstLoad = eval('WidgetFirstLoad' + WidgetControlID)
    eval('FadingDirection' + WidgetControlID + ' = 1');
    FadeInOutWidget(WidgetControlID, 10, 100, '');
    var Target = document.getElementById('divWidgetContent' + WidgetControlID).offsetHeight;
    var slider = document.getElementById('divWidgetContentSlider' + WidgetControlID);
    var current = slider.style.height.substr(0, slider.style.height.length-2)*1;
    if (FirstLoad) 
    {
        slider.style.height = Target + 'px';
        eval('WidgetFirstLoad' + WidgetControlID + '=false;')
        return;
    }
    
    var direction = 0;
    if (current > Target) direction = -1;
    if (current < Target) direction = 1;
    var difference = (current - Target) * direction
    
    
    
    //Check we are starting from a position divisble by slider step
    var steps = (((difference/WidgetSliderStep)^2)^0.5) + '';
    var bits = steps.split('.');
    
    if (bits.length > 1)
    {
        var intbit = bits[0];
        if (direction == -1)
            slider.style.height = ((intbit*1) * WidgetSliderStep) + 'px';
        else
            slider.style.height = ((intbit+1) * WidgetSliderStep) + 'px';
    }
    
    setTimeout('SlideWidget("' + WidgetControlID + '", ' + Target + ', ' + direction + ');', WidgetSliderSpeed);
}

function SlideWidget(WidgetControlID, Target, direction)
{
    var doMore = true;
    var slider = document.getElementById('divWidgetContentSlider' + WidgetControlID);
    var current = slider.style.height.substr(0, slider.style.height.length-2);
    
    var SetTo = ((1*current)+(direction*WidgetSliderStep))
    if (((SetTo > Target) && (direction == 1)) || ((SetTo < Target) && (direction == -1)))
    {
        SetTo = Target;
        doMore = false
    }
    
    slider.style.height = SetTo + 'px';
    
    if (doMore)
        setTimeout('SlideWidget("' + WidgetControlID + '", ' + Target + ', ' + direction + ');', WidgetSliderSpeed);

}

function ChangeWidgetPaging(WidgetControlID, PageNumber, what)
{
    eval('WidgetPageNumber' + WidgetControlID + '=' + PageNumber);
    document.getElementById('divWidgetContentLoading' + WidgetControlID).style.backgroundImage = 'url(' + jsImagePath + 'loading_bg' + WidgetBackgroundColor + '.gif)';
    eval('FadingDirection' + WidgetControlID + ' = -1');
    FadeInOutWidget(WidgetControlID, 90, 0, what);
}

function GetRSSContent(FeedID, WidgetControlID, NoItems, ShowSummary, ShowDate, RemoveImages)
{
    sndReq('/XML/getRSS.aspx?FeedID=' + FeedID + '&WidgetControlID=' + WidgetControlID + '&NoItems=' + NoItems + '&ShowSummary=' + ShowSummary + '&ShowDate=' + ShowDate + '&RemoveImages=' + RemoveImages);
}

var FadeInOutTimeOut;

function FadeInOutWidget(WidgetControlID, val, target, what)
{
    var dir = eval('FadingDirection' + WidgetControlID);
    if (val< 0) val = 0;
    SetOpacity('divWidgetContent' + WidgetControlID, val)
    if ((val < target) && (dir == 1))
        FadeInOutTimeOut = setTimeout('FadeInOutWidget("' + WidgetControlID + '", ' + (1*(val + 20)) + ', ' + target + ', "' + what + '")', FadeSpeed);
    else if ((val > 0) && (dir == -1))
        FadeInOutTimeOut = setTimeout('FadeInOutWidget("' + WidgetControlID + '", ' + (1*(val - 20)) + ', ' + target + ', "' + what + '")', FadeSpeed);
    else if ((val >= target) && (dir == 1))
    {
        eval('FadingDirection' + WidgetControlID + ' = 0');
        document.getElementById('divWidgetContentLoading' + WidgetControlID).style.backgroundImage = '';
    }
    else if ((val == 0) && (dir == -1))
    {
        //Call next widget content
        eval('FadingDirection' + WidgetControlID + ' = 0');
        GetWidgetScrollerValue(WidgetControlID, what);
    }
}

function LoadRSSWidget(doc)
{
    var x = GetXMLObject(doc).childNodes[0];
    var WidgetControlID = x.getAttribute('WidgetControlID');
    var Content = getInnerText(x.childNodes[0]);
    var divContent = document.getElementById('divWidgetContent' + WidgetControlID);
    divContent.innerHTML = Content; 
    StartWidgetSlide(WidgetControlID);
}