/* jFeed : jQuery feed parser plugin
 * Copyright (C) 2007 Jean-FranÃ§ois Hovinne - http://www.hovinne.com/
 * Dual licensed under the MIT (MIT-license.txt)
 * and GPL (GPL-license.txt) licenses.
 */

var gShortMonths = new Array('Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic');

jQuery.getFeed = function(options) {

	//alert('getting feed');

    options = jQuery.extend({
    
        url: null,
        data: null,
        idfeed: null,
        success: null
        
    }, options);

    if(options.url) {

//alert('getting feed from '+options.url);

       jQuery.ajax({
            type: 'GET',
            url: options.url,
            data: options.data,
            dataType: 'xml',
            success: function(xml) {
                var feed = new JFeed(xml);
                if(options.idfeed) feed.id = options.idfeed;
                if(jQuery.isFunction(options.success)) options.success(feed);
            }
        });
    }
    
};

function JFeed(xml) {
    if(xml) this.parse(xml);
};

JFeed.prototype = {

    id: '',
    type: '',
    version: '',
    title: '',
    link: '',
    description: '',
    parse: function(xml) {
        
        if(jQuery('channel', xml).length == 1) {
        
            this.type = 'rss';
            var feedClass = new JRss(xml);

        } else if(jQuery('feed', xml).length == 1) {
        
            this.type = 'atom';
            var feedClass = new JAtom(xml);
        }
        
        if(feedClass) jQuery.extend(this, feedClass);
    }
};

function JFeedItem() {};

JFeedItem.prototype = {

    id: '',
    title: '',
    link: '',
    description: '',
    updated: '',
    category: ''
};

function JAtom(xml) {
    this._parse(xml);
};

JAtom.prototype = {
    
    _parse: function(xml) {
    
        var channel = jQuery('feed', xml).eq(0);

        this.version = '1.0';
        this.title = jQuery(channel).find('title:first').text();
        this.link = jQuery(channel).find('link:first').attr('href');
        this.description = jQuery(channel).find('subtitle:first').text();
        this.language = jQuery(channel).attr('xml:lang');
        this.updated = jQuery(channel).find('updated:first').text();
        
        this.items = new Array();
        
        var feed = this;
        
        jQuery('entry', xml).each( function(index) {

            //alert("gMax_num_posts = "+gMax_num_posts+" index = "+index);
            if (gMax_num_posts && gMax_num_posts==(index)) return false;
        
            var item = new JFeedItem();
            
            item.title = jQuery(this).find('title').eq(0).text();
            item.link = jQuery(this).find('link').eq(0).attr('href');
            item.description = jQuery(this).find('content').eq(0).text();
            item.updated = jQuery(this).find('updated').eq(0).text();
            item.category = jQuery(this).find('category').eq(0).text();
            item.id = jQuery(this).find('id').eq(0).text();
            
            feed.items.push(item);
        });
    }
};

function JRss(xml) {
    this._parse(xml);
};

JRss.prototype  = {
    
    _parse: function(xml) {
      

//alert('parsing feed');
    
        if(jQuery('rss', xml).length == 0) this.version = '1.0';
        else this.version = jQuery('rss', xml).eq(0).attr('version');

        var channel = jQuery('channel', xml).eq(0);
    
        this.title = jQuery(channel).find('title:first').text();
        this.link = jQuery(channel).find('link:first').text();
        this.description = jQuery(channel).find('description:first').text();
        this.language = jQuery(channel).find('language:first').text();
        this.updated = jQuery(channel).find('lastBuildDate:first').text();
    
        this.items = new Array();
        
        var feed = this;
        
        jQuery('item', xml).each( function(index) {
        
            //alert("gMax_num_posts = "+gMax_num_posts+" index = "+index);
            if (gMax_num_posts && gMax_num_posts==(index)) return false;
            var item = new JFeedItem();
            
            item.title = jQuery(this).find('title').eq(0).text();
            item.link = jQuery(this).find('link').eq(0).text();
            item.description = jQuery(this).find('description').eq(0).text();
            item.updated = jQuery(this).find('pubDate').eq(0).text();
            item.category = jQuery(this).find('category').eq(0).text();
            item.id = jQuery(this).find('guid').eq(0).text();
            
            feed.items.push(item);
        });
    }
};


function showFeed(feed)
{
    /*jQuery('#'+divTgt).html('');
    jQuery('#'+divTgt).append('<h2>'
    + '<a target="_blank" href="'
    + feed.link
    + '">'
    + feed.title
    + '</a>'
    + '</h2>');*/
    //alert("feed.id = "+feed.id);
    
    var html = '';
    

//alert('showing feed');
    
    for(var i = 0; i < feed.items.length; i++) {
    
        var item = feed.items[i];
        
        var fechaStr = item.updated;
        if (item.updated){
          var fecha = new Date(item.updated);
          if (fecha.valueOf()){
            //alert(fecha.toLocaleString());
            var dia = fecha.getDate();
            if (dia<10) dia = '0'+dia;
            var mes = gShortMonths[fecha.getMonth()];
            var anio = fecha.getFullYear();
            var fechaStr = dia+'/'+mes+'/'+anio;
          }
        }

        html += '<div class="xpostlist-item">'
        //+'      <a href="'+item.link+'" class="readon"> </a>'
        +'<h1 style="padding:6px 0 8px 5px;margin-bottom:0px;"><a target="_blank" href="'+item.link+'">'+item.title+'</a></h1>'
        +'<div class="xpostlist-item-summary">'
        + (fechaStr?fechaStr + '<br/><br/>':'')
        //+'<table class="contentpaneopen">'
        //+'  <tr>'
        //+'    <td valign="top">'
        + item.description
        //+'    </td>'
        //+'  </tr>'
        //+'  <tr>'
        //+'  	<td>'
        //+'      <a href="'+item.link+'" class="readon">Leer más...</a>'
        //+'  	</td>'
        //+'  </tr>'
        //+'</table>'
        +'</div>'
        +'</div>';
    }
    //printPostList(html);
    if (feed.id) jQuery('#'+feed.id).html(html);
	
}


function loadRSS(_url)
{
  jQuery.getFeed({url: _url,success: function(feed) {showFeed(feed);}});
}

/*
var gDivTarget=null;
function printPostList(html)
{
  //alert('printing feed in gDivTarget='+gDivTarget+'='+jQuery('#'+gDivTarget));
  jQuery('#'+gDivTarget).html(html);
  //alert('feed printed in '+gDivTarget+'.html()='+jQuery('#'+gDivTarget).html());
}
*/

function showPostList(urlRSS,divTarget)
{
  //alert(urlRSS + ' ' + divTarget + ' ' +jQuery('#divRssProductos').length);
  if (urlRSS && divTarget && jQuery('#'+divTarget).length>0){
    //alert(urlRSS + ' ' + divTarget + ' ' +jQuery('#divRssProductos').length);
    //gDivTarget = divTarget;
    if (jQuery('#loading-posts').length==1) jQuery('#'+divTarget).html(jQuery('#loading-posts').html());
    urlRSS = 'clases/rssprxy.php?feed='+urlRSS;

    jQuery.getFeed({url: urlRSS, idfeed: divTarget, success: function(feed) {showFeed(feed);}});
  }
}

