//////////////////////////////////////////////////////////
//	<JavaScript RSS Reader>				//
//      Modified to be Inserted Embedded Into a Site:	// 
//	Portability/Customization Features Added:	//
//	By Danny Garfield (13/03/04)			//
//	http://www.puuba.com				//
//	http://www.reploid9.com				//
//							//
// 	(c) 2003 Premshree Pillai			//
//	Core Code Written On: 07/06/03 (dd/mm/yy)	//
//	http://www.qiksearch.com/			//
//	http://premshree.resource-locator.com		//
//							//
//////////////////////////////////////////////////////////

/* 
Script Now Supports:
-Variable Number Of Entries Outputted
-Embedding in an HTML File
-Externally Customizable Font/Look

To Use This Script:
	Paste into the <head> section of the HTML page:
		<script src="http://www.puuba.com/team/translator.js"></script>
	
	Then, wherever you want the translated RSS feed to appear, paste:
		<script>
		try {readRSS(unescape("http://www.puuba.com/team/blog.rss"),5);}
		catch(e) {}
		</script>

	Replace the URL with that of the RSS feed you want. Replace the number with
	The max number of entries you want displayed. (posts, on a blog)
	If the number is zero, it means to display ALL available posts.
	If the number is more than the available posts, all available posts will show.

Options:
	NOHR
	NODATE
	  SHOWTIME12
	  SHOWTIME24
	NOAUTHOR
	NODOUBLESPACE
	SHOWBODY
	  TILBR
	NOTITLE
	ALTDATEAUTH
	DATEFIRST


You can customize the colors/styles of the text outputted by this using
a standard style sheet from the outside.
The classes of the words are:
	.rsslink   - the links printed (the titles)
	.rssdate   - the date/time printed
	.rssauthor - the name of the poster.
Normal style declarations (color, size, text decoration, italics, bold, etc) can be
declared in the style sheet as usual. 

*/


function readRSS(URI, number,pColor) {
	var hrSwitch = true, authorSwitch = true, dateSwitch = true, doubleSpace = true, showBody = false, showTime12 = false, showTime24 = false, showTitle = true, altform = false, datefirst = false;


	if (arguments.length > 2)
		for (i=2; i<arguments.length; i++) {
			if (arguments[i] == "NOHR")
				hrSwitch = false;
			if (arguments[i] == "NOAUTHOR")
				authorSwitch = false;
			if (arguments[i] == "NODATE")
				dateSwitch = false;
			if (arguments[i] == "NODOUBLESPACE")
				doubleSpace = false;
			if (arguments[i] == "NOTITLE")
				showTitle = false;
			if (arguments[i] == "SHOWBODY")
				showBody = true;
			if (arguments[i] == "SHOWTIME12")
				showTime12 = true;
			if (arguments[i] == "SHOWTIME24")
				showTime24 = true;
			if (arguments[i] == "ALTDATEAUTH")
				altform = true;
			if (arguments[i] == "DATEFIRST")
				datefirst = true;
		}




	if(window.ActiveXObject) {
		var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async=false;
		while(xmlDoc.readyState!=4) document.write('Loading...');
	}
	else if(document.implementation&&document.implementation.createDocument)
		xmlDoc=document.implementation.createDocument("","doc",null);
	xmlDoc.load(arguments[0]);
	items=xmlDoc;

	function verify() {if(xmlDoc.readyState!=4) return false;}

	function formatRSS(number) {
		var items_count;
		if ((number == 0) || (number > items.getElementsByTagName('item').length))
			items_count=items.getElementsByTagName('item').length;
		else
			items_count=number;
		var date=new Array(), time=new Array(), link=new Array(), title=new Array(), description=new Array(), guid=new Array(), body=new Array(), temp, temp2;
		var mths = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
		for(var i=0; i<items_count; i++) {
			if(items.getElementsByTagName('item')[i].getElementsByTagName('pubDate').length==1)
				date[i]=items.getElementsByTagName('item')[i].getElementsByTagName('pubDate')[0];
			if(items.getElementsByTagName('item')[i].getElementsByTagName('link').length==1)
				link[i]=items.getElementsByTagName('item')[i].getElementsByTagName('link')[0];
			if(items.getElementsByTagName('item')[i].getElementsByTagName('guid').length==1)
				guid[i]=items.getElementsByTagName('item')[i].getElementsByTagName('guid')[0];
			if(items.getElementsByTagName('item')[i].getElementsByTagName('title').length==1)
				title[i]=items.getElementsByTagName('item')[i].getElementsByTagName('title')[0];
			if(items.getElementsByTagName('item')[i].getElementsByTagName('author').length==1)
				description[i]=items.getElementsByTagName('item')[i].getElementsByTagName('author')[0];
			//if(items.getElementsByTagName('item')[i].getElementsByTagName('content:encoded').length==1)
			//	body[i]=items.getElementsByTagName('item')[i].getElementsByTagName('content:encoded')[0];

			temp = date[i].firstChild.nodeValue;
			dt = temp.substring(5,7);
			mon = temp.substring(8,11);
			yr = temp.substring(12,16);
			
			for (var ct = 0; ct < 12; ct++)
			{
			  if (mths[ct] == mon)
			  {
			    mn = ct;
			    break;
			  }
			}
			date[i] = new Date(yr,mn,dt);
			if (showTime24)
				time[i] = temp.substring(temp.indexOf(":")-2,temp.indexOf("Z"));

			else if (showTime12) {
				temp2 = temp.substring(temp.indexOf(":")-2,temp.indexOf("T")+3);
				if (temp2 > 12)
					time[i] = temp2 - 12;
				else	
					time[i] = temp2;
				time[i] = time[i] + temp.substring(temp.indexOf("T")+3,temp.indexOf("Z"));

			}

		}

		if((description.length==0)&&(title.length==0)) return false;
		var one_day=1000*60*60*24;
		var ws=/\S/;
		document.write('<table>');
		for(var i=0; i<items_count; i++) {
			var title_w, link_w;
			if(document.all)
				title_w=(title.length>0)?title[i].text:"<i>Untitled</i>";
			else
				title_w=(title.length>0)?title[i].firstChild.nodeValue:"<i>Untitled</i>";
		
			link_w=(link.length>0)?link[i].firstChild.nodeValue:"";
			if (datefirst && !altform) {
				document.write('<tr><td>');
				document.write('<a class="rssdate">' + date[i]);
				if (showTime12 || showTime24) document.write(' - ' + time[i]);
				document.write(':</a></td></tr>');
			}
			newtag="";
			if (Math.ceil(((new Date()).getTime() - date[i].getTime())/(one_day)) <= 5) newtag="<img src='/images/new.jpg' />";
			
			if(link.length==0) link_w=(guid.length>0)?guid[i].firstChild.nodeValue:"";
			if(title.length>0) title_w=(!ws.test(title_w))?"<i>Untitled</i>":title_w;
			if (showTitle) document.write('<tr><td class="question">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="'+link_w+'" class="question" target="_parent"><font size=1 color="' + pColor +'"><b>'+title_w+'</b></font></a>' + newtag+ '</div>');
			if(showBody) document.write(body[i].firstChild.nodeValue + '<BR>');
			if (dateSwitch & !altform & !datefirst) {
				document.write('<a class="rssdate">(' + date[i]);
				if (showTime12 || showTime24) document.write(' - ' + time[i]);
				document.write(')</a><BR/>');
			}

			if (authorSwitch && description.length>0 &!altform)
				document.write('<a class="rssauthor"> by: '+description[i].firstChild.nodeValue+'</a><BR>');
			document.write('</td></tr>');
			if (altform) {
				if (description[i].firstChild)
					document.write('- <a class="rssauthor">' +description[i].firstChild.nodeValue+ '</a> :: <a class="rssdate">(' +date[i]+ ')</a><BR>');
				else
					document.write('- <a class="rssauthor">No Name In Profile</a> :: <a class="rssdate">(' +date[i]+ ')</a><BR>');
			}
			if (hrSwitch) document.write('<HR>'); if (doubleSpace) document.write('<BR/>');
		}
						document.write('</table>');

	}

	if(typeof(xmlDoc)!="undefined") {
		if(window.ActiveXObject) formatRSS(arguments[1]);
		else xmlDoc.onload=formatRSS;
	}
}