function RSS2Enclosure(encElement){if(encElement==null){this.url=null;this.length=null;this.type=null}else{this.url=encElement.getAttribute("url");this.length=encElement.getAttribute("length");this.type=encElement.getAttribute("type")}}function RSS2Guid(guidElement){if(guidElement==null){this.isPermaLink=null;this.value=null}else{this.isPermaLink=guidElement.getAttribute("isPermaLink");this.value=guidElement.childNodes[0].nodeValue}}function RSS2Source(souElement){if(souElement==null){this.url=null;this.value=null}else{this.url=souElement.getAttribute("url");this.value=souElement.childNodes[0].nodeValue}}function RSS2Item(itemxml){this.title;this.link;this.description;this.author;this.comments;this.pubDate;this.category;this.enclosure;this.guid;this.source;var properties=new Array("title","link","description","author","comments","pubDate");var tmpElement=null;var length=properties.length;for(var i=0;i<length;i++){tmpElement=itemxml.getElementsByTagName(properties[i])[0];if(tmpElement!=null)eval("this."+properties[i]+"=tmpElement.childNodes[0].nodeValue")}this.category=new RSS2Category(itemxml.getElementsByTagName("category")[0]);this.enclosure=new RSS2Enclosure(itemxml.getElementsByTagName("enclosure")[0]);this.guid=new RSS2Guid(itemxml.getElementsByTagName("guid")[0]);this.source=new RSS2Source(itemxml.getElementsByTagName("source")[0])}function RSS2Category(catElement){if(catElement==null){this.domain=null;this.value=null}else{this.domain=catElement.getAttribute("domain");this.value=catElement.childNodes[0].nodeValue}}function RSS2Image(imgElement){if(imgElement==null){this.url=null;this.link=null;this.width=null;this.height=null;this.description=null}else{imgAttribs=new Array("url","title","link","width","height","description");for(var i=0;i<imgAttribs.length;i++)if(imgElement.getAttribute(imgAttribs[i])!=null)eval("this."+imgAttribs[i]+"=imgElement.getAttribute("+imgAttribs[i]+")")}}var Utf8={encode:function(string){string=string.replace(/\r\n/g,"\n");var utftext="";for(var n=0;n<string.length;n++){var c=string.charCodeAt(n);if(c<128){utftext+=String.fromCharCode(c)}else if((c>127)&&(c<2048)){utftext+=String.fromCharCode((c>>6)|192);utftext+=String.fromCharCode((c&63)|128)}else{utftext+=String.fromCharCode((c>>12)|224);utftext+=String.fromCharCode(((c>>6)&63)|128);utftext+=String.fromCharCode((c&63)|128)}}return utftext},decode:function(utftext){var string="";var i=0;var c=c1=c2=0;while(i<utftext.length){c=utftext.charCodeAt(i);if(c<128){string+=String.fromCharCode(c);i++}else if((c>191)&&(c<224)){c2=utftext.charCodeAt(i+1);string+=String.fromCharCode(((c&31)<<6)|(c2&63));i+=2}else{c2=utftext.charCodeAt(i+1);c3=utftext.charCodeAt(i+2);string+=String.fromCharCode(((c&15)<<12)|((c2&63)<<6)|(c3&63));i+=3}}return string}};function RSS2Channel(rssxml){this.items=new Array();var chanElement=rssxml.getElementsByTagName("channel")[0];var itemElements=rssxml.getElementsByTagName("item");for(var i=0;i<itemElements.length;i++){Item=new RSS2Item(itemElements[i]);this.items.push(Item)}}function getRSS(url,details,nb_items,errormsg){new Ajax.Request(url,{method:'get',onSuccess:function(transport){processRSS(transport.responseXML,details,nb_items,transport.responseText)},onFailure:function(transport){$('rsserror').innerHTML=errormsg;$('rsserror').show()}});return}function processRSS(rssxml,details,nb_items,rsstext){RSS=new RSS2Channel(rssxml);showRSS(RSS,details,nb_items,rsstext)}function showRSS(RSS,details,nb_items,rsstext){$("feed_items").innerHTML="";var length=RSS.items.length;rsstext=rsstext.split('?><')[0];rsstext=rsstext.split('encoding="')[1];var encodage=rsstext.split('"')[0].toLowerCase();if(nb_items<length)length=nb_items;for(var i=0;i<length;i++){item_html='<li>';if(RSS.items[i].title!=null){if(encodage=='utf-8'){RSS.items[i].title=Utf8.decode(RSS.items[i].title)}item_html+='<a href="'+RSS.items[i].link+'" target="_blank" class="title">'+RSS.items[i].title+'</a>'}if(details==1&&RSS.items[i].description!=null){if(encodage=='utf-8'){RSS.items[i].description=Utf8.decode(RSS.items[i].description)}item_html+=' <span>'+RSS.items[i].description+'</span>'}item_html+='</li>';$("feed_items").innerHTML+=item_html}$('rssloader').hide();return true}var xhr;