﻿// JScript File
var WidgetBackgroundColor = '_grey';

var jsImagePath = '/siteimages/'

function LatestProductsPaging(ClientID, val)
{
    eval('LatestProdsCurrentPage' + ClientID + '=' + val)
    GetLatestProductsInline(ClientID)
}

function GetLatestProductsInline(ClientID)
{
    var current = eval('LatestProdsCurrentPage' + ClientID);
    sndReq('/XML/getLatestProduct.aspx?ClientID=' + ClientID + '&Current=' + current);
}

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 LoadLatestInline(doc)
{
    var x = GetXMLObject(doc).childNodes[0];
    var ClientID = x.getAttribute('ClientID');
    var Current = x.getAttribute('Current');
    var nextNo = x.getAttribute('Next');
    var prevNo = x.getAttribute('Previous');
    var Total = x.getAttribute('Total');
    var cl = document.getElementById('divWidgetContent' + ClientID);
    var html = '';
    var Prod = x.childNodes[0];
    var prev = getInnerText(x.childNodes[1]);
    var next = getInnerText(x.childNodes[2]);
    
    var script = getInnerText(Prod.childNodes[0]);
    var desc = getInnerText(Prod.childNodes[1]);
    var suitable = getInnerText(Prod.childNodes[2]);
    var makes = getInnerText(Prod.childNodes[3]);
    eval('makecount' + ClientID + ' = ' + Prod.childNodes[3].getAttribute('Count'));
    eval('makerunning' + ClientID + ' = 0');
    var url = Prod.getAttribute('URL');
    var name = Prod.getAttribute('Name');
    var img = Prod.getAttribute('Image');
    var id = Prod.getAttribute('ID');
    
    html = '<table cellpadding="0" cellspacing="0" style="width:620px" align="center"><tr><td style="width:100px; padding-left:4px; vertical-align:top"><a href="' + url + '"><img border=\"0\" id="LatestProductImage' + id + '" src="/getfile/' + img + '/Image.aspx?MaxSideSize=250"></a></td>';
    html += '<td style="width:520px; padding-left:10px; vertical-align:top"><div class=\"LatestProductsHeader\"><a href="' + url + '">' + name + '</a></div><p class=\"LatestProductsDescription\">' + desc + '</p><p><b>Also available for:</b></p><p class=\"LatestProductsDescription\">' + suitable + '...&nbsp;<span class="LatestProductMoreLink"><a href="' + url + '">more</a><span></p></td></tr>';
    html += '<tr><td style="width:620px; padding-top:2px; padding-bottom:10px" colspan="2"><p style="padding-left:4px"><b>Browse by bike make...</b></p>' + makes + '</td></tr>';
    html += '</table>';
    cl.innerHTML = html;
    var clPrev = document.getElementById('clWidgetPrevious' + ClientID);
    var clNext = document.getElementById('clWidgetNext' + ClientID);
    var clText = document.getElementById('clWidgetText' + ClientID);
    
    var paging = ((1*Current)+1) + ' of ' + ((1*Total)+1);
    
    var lnk = '<a href="javascript:LatestProductsPaging(\'' + ClientID + '\', ' + prevNo + ')">';
    
    var pText = lnk + '<img style="vertical-align:middle" src="' + jsImagePath + 'Widgets/leftArrow.gif" border="0" ></a>&nbsp;&nbsp;' + lnk + prev + '</a>';
    lnk = '<a href="javascript:LatestProductsPaging(\'' + ClientID + '\', ' + nextNo + ')">'
    var nText = lnk + next + '</a>&nbsp;&nbsp;' + lnk + '<img style="vertical-align:middle" src="' + jsImagePath + 'Widgets/rightArrow.gif" border="0" ></a>';
    clPrev.innerHTML = pText;
    clNext.innerHTML =  nText;
    clText.innerHTML = paging;
    //if (script != '') eval(script);
}

function SetBorder(cntrl, col)
{
    cntrl.style.borderColor = col;
}

function IncrementLatestImageCount(ClientID)
{
    var total = eval('makecount' + ClientID);
    var current = eval('makerunning' + ClientID);
    current++;
    if (total <= current)
        StartWidgetSlide(ClientID);
     eval('makerunning' + ClientID + ' = ' + current);
}

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);
        if (ttl) 
            ttl.style.display = 'none';
        else
        {
            //try and get parent holder
            var sp = WidgetControlID.split('_');
            var parWCID = '';
            for (var i=0; i<sp.length-1; i++)
                parWCID += sp[i] + '_';
            parWCID = parWCID.substr(0, parWCID.length-1);
            ttl = document.getElementById('tblFullWidget' + parWCID);
            if (ttl)
                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 + 'widget_leftArrow_dis.png" />';
        var next = '<img src="' + jsImagePath + 'widget_rightArrow_dis.png" />';
    
        if (PageNumber != 0)
            prev = '<a href="javascript:ChangeWidgetPaging(\'' + WidgetControlID + '\', ' + ((1*PageNumber) - 1) + ', \'' + What + '\')"><img border="0" src="' + jsImagePath + 'widget_leftArrow.png" /></a>';
       
        if (PageNumber != TotalPages)
            next = '<a href="javascript:ChangeWidgetPaging(\'' + WidgetControlID + '\', ' + ((1*PageNumber) + 1) + ', \'' + What + '\')"><img border="0" src="' + jsImagePath + 'widget_rightArrow.png" /></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);
    
    if (current != Target)
    {
        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);
}

function RGWidgetChanged(newvalue, clientid, what)
{
    if (what == 'Make')
    {
        eval('RGWidgetBrowserMake' + clientid + '=' + newvalue);
        eval('RGWidgetBrowserModel' + clientid + '=-1');
        eval('RGWidgetBrowserYear' + clientid + '=-1');
        if (newvalue == -1)
        {
            SetRGDDNone(clientid + '_drpModel', 'Please select a make')
            SetRGDDNone(clientid + '_drpYear', 'Please select a model')
        }
        else
            sndReq('/xml/getRGBrowserWidget.aspx?get=models&MakeID=' + newvalue + '&ClientID=' + clientid);
    }
    else if (what == 'Model')
    {
        eval('RGWidgetBrowserModel' + clientid + '=' + newvalue);
        eval('RGWidgetBrowserYear' + clientid + '=-1');
        if (newvalue == -1)
            SetRGDDNone(clientid + '_drpYear', 'Please select a model')
        else
            sndReq('/xml/getRGBrowserWidget.aspx?get=years&ModelID=' + newvalue + '&ClientID=' + clientid);
    }
    else if (what == 'Year')
    {
        eval('RGWidgetBrowserYear' + clientid + '=' + newvalue);
    }
    
    var make = eval('RGWidgetBrowserMake' + clientid);
    var model = eval('RGWidgetBrowserModel' + clientid)
    var year = eval('RGWidgetBrowserYear' + clientid);
    
    var qs = '?RGMake=' + make;
    if (model != -1) qs += '&RGModel=' + model;
    if (year != -1)  qs += '&RGYear=' + year;
    
    document.getElementById(clientid + '_Link').href = '/Products/Search.aspx' + qs;;
}

function LoadRGBrowserValues(doc)
{
    var xml = GetXMLObject(doc).childNodes[0];
    var cid = xml.getAttribute('ClientID');
    var what = xml.getAttribute('Get');
    var nme = '_drpModel'
    if (what == 'years') nme = '_drpYear';
    var drp = document.getElementById(cid + nme);
    drp.options.length = 0;
    drp.options[0] = new Option('Please select', '-1');
    drp.disabled = false;
    for (var i=0; i<xml.childNodes.length; i++)
        drp.options[drp.options.length] = new Option(getInnerText(xml.childNodes[i]), xml.childNodes[i].getAttribute('id'));
}

function SetRGDDNone(ddid, message)
{
    var dd = document.getElementById(ddid);
    dd.options.length = 0;
    dd.options[0] = new Option(message, '-1');
    dd.disabled = true;
}
