
(function($){
    $.fn.rssReader=function(input_base){
        var input_extended=$.extend({
            targeturl:"/uberTemplates/jquery/js/rssreader/class.rssReader.php?xml=http://www.ok.gov/genthree/rss.php?agency_id=0",
            items:5,
            Maxlength:80,
            MaxHeadlineLength:25,
            loadingImg:'/uberTemplates/jquery/images/loader.gif',
            dateFormat: ''
        },input_base);

        var source_info=$.extend(input_extended,input_base);
        //Eventually this will be changed to target_div = $(this)...maybe
        if(source_info.divName){
            target_div='#'+source_info.divName;
        }
        else{
            var target_div = '#'+($(this).attr('id'));
        }
        gatherFeed(source_info,target_div);
    };

    function gatherFeed(source_info,target_div){
        $.ajax({
            type:"get",
            url:source_info.targeturl,
            dataType:"xml",
            processData:false,
            beforeSend:function(){
                $(target_div).css({});
                //If there is an interval, don't show this becuase there is a tendency for it to get stuck'
                if(!source_info.interval){
                    $('<div class="rss_loading_image"><img id="loading" src="'+source_info.loadingImg+'" alt="Loading ..."></div>').css({}).appendTo(target_div)
                }
            },
            success:function(rss_xml){
                $(target_div).text('');
                $(target_div).css({});
                $(target_div + ' .rss_loading_image').remove();
                var i=0;
                var dateFormat = '';
                var prepDate = undefined;
                if(typeof fixDate == 'function' && source_info.dateFormat != ''){
                    dateFormat = source_info.dateFormat
                    prepDate = fixDate
                }
                else{
                    prepDate = function(pubDate, dateFormat){
                        return(pubDate);
                    };
                }

                $(rss_xml).find('item').each(function(i){
                    if(i > source_info.items-1){
                        return;
                    }
                    else{
                        var title= checkLength( $(this).find('title').text(), source_info.MaxHeadlineLength);
                        var pubDate= prepDate($(this).find('pubDate').text(), dateFormat);
                        var link=$(this).find('link').text();
                        var description=$(this).find('description').text();
                        $('<div class="rss_title"><a class="targetblank" href="'+link+'">'+title+'</a></div>').appendTo(target_div);
                        $('<div class="rss_date">'+pubDate+'</div>').html(pubDate).appendTo(target_div);
                        $('<div class="rss_description">'+checkLength(description,source_info.Maxlength)+'</div>').html(checkLength(description,source_info.Maxlength)).appendTo(target_div);
                        $(target_div + ' .description p img').remove();
                        $('<div class="rss_link"><a href="'+link+'">'+"Read More"+'</a></div>').appendTo(target_div)
                    }
                })
            }
        })
    }

    function checkLength(a,b){
        var c=a.split(/\s/);
        if(c.length<=b){
            return a;
        }
        var d='';
        for(var i=0;i<b;i++){
            d+=c[i]+' '
        }
        if(d.length > b){
            d+="..."
        }
        return d
    }
})(jQuery);

