﻿/* ************************************************************************************ */
/* ---> Requires jQuery library                                                         */
/*                                                                                      */
/* Change Log                                                                           */
/*                                                                                      */
/* 30-04-2010  - Richard Chapman - Deltasoft - Added                                    */
/* ************************************************************************************ */
function Bclitimer_init(s,e,interval)
{
// Now set the timer for the rss refresh
Bclitimer.SetInterval(interval);
Bclitimer.SetEnabled(true);
}

function Bclitimer_tick(s,e)
{
// If there are no RSSReader controls present then nothing to do
//if (jQuery('.rssreaderwrapper').length > 0)
var r = jQuery('.rssreaderwrapper');
if (r.length > 0)
    {
    try
        {
        Bclitimer.SetEnabled(false);
        
        var cid = "";        
        var idx = 0;
        for (idx = 0; idx < r.length; idx++)
            {
            cid += (getrssreaderid(r.get(idx).id) + ";");
            }
        
        Bclicallback.PerformCallback('GETRSS;' + cid);
        }
    finally
        {
        Bclitimer.SetEnabled(true);
        }
    }
}

function Bclicallback_complete(s,e)
{
// Each RSSReader will have the following format
// <RSS_{n}><RSSID>{id}</RSSID><RSSDATA>{data}</RSSDATA></RSS_{n}>  where {n} starts at 1 increasing in increments of 1
if (e.result !== '')
    {
    var idx = 1;
    var xmlrec, rssid, rssdata, rid, rdiv;
    do 
        {
        xmlrec = XMLGetElement('RSS_' + idx, e.result);
        if (xmlrec.Success)
            {
            idx += 1;
            rssid = XMLGetElement('RSSID', xmlrec.Data);
            rssdata = XMLGetElement('RSSDATA', xmlrec.Data);
            if (rssid.Success && rssdata.Success)
                {
                rid = '[id^=rssreader_' + rssid.Data + '_]';
                rdiv = jQuery(rid).parent();
                rdiv.html(rssdata.Data);
                }
            }
        }
        while (xmlrec.Success);
    }
}

function getrssreaderid(idtag)
{
// Extract id from RSSReader control id - rssreader_<id>_rsswrapper....
var idval = "";
var prefix = "rssreader_";
if ((idtag.substring(0,prefix.length).toLowerCase()) == prefix)
    {
    var endptr = idtag.indexOf('_',prefix.length);
    if (endptr !== -1)
        {
        idval = idtag.substring(prefix.length,endptr);
        }
    }
    
return idval;
}

// String support
function lefttrim(strvalue)
{
return (strvalue.replace(/^\s+/, ""));
}

function righttrim(strvalue)
{
return (strvalue.replace(/\s+$/, ""));
}

function trim(strvalue)
{
return strvalue.replace(/^\s+|\s+$/,"");
}

// XML Support
function XMLElement(success, data)
{
this.Success = success;
this.Data = data;
}

function XMLBuildElement(tag, data)
{
var element = '<' + trim(tag.toUpperCase()) + '>' + trim(data.toString()) + '</' + trim(tag.toUpperCase()) + '>';
return element;
}

function XMLGetElement(tag, xml)
{
    var starttag = "<" + tag + ">";
    var endtag = "</" + tag + ">";
    var result = new XMLElement(false, '');
    var startidx = xml.indexOf(starttag);
    if (startidx >= 0)
       {
       var endidx = xml.indexOf(endtag);
       if ((endidx >= 0) && (endidx > startidx))
          {
          result.Success = true;
          result.Data = xml.substring(startidx + starttag.length, endidx);
          }
       }
       
    return result;
}
