
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;
	for (var i=0; i<properties.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]+")");
	}
}


function RSS2Channel(rssxml,containerId)
{

	this.title;
	this.link;
	this.description;

	this.items = new Array();

	//optional vars
	//this.language;
	//this.copyright;
	//this.managingEditor;
	//this.webMaster;
	this.pubDate;
	//this.lastBuildDate;
	//this.generator;
	//this.docs;
	//this.ttl;
	//this.rating;

	//optional objects
	this.category;
	this.image;

	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);
	}

	var properties = new Array("title", "link", "description", "pubDate");
	var properties_startup = new Array("title", "link", "media:description", "pubDate");
	var tmpElement = null;
	for (var i=0; i<properties.length; i++)
	{
		if(containerId=="rsscontainer_dealsnews") {

			tmpElement = chanElement.getElementsByTagName(properties[i])[0];
			if (tmpElement!= null)
				eval("this."+properties[i]+"=tmpElement.childNodes[0].nodeValue");
		}
		else {
			tmpElement = chanElement.getElementsByTagName(properties_startup[i])[0];
			if (tmpElement!= null)
				eval("this."+properties[i]+"=tmpElement.childNodes[0].nodeValue");
		}
	}

	this.category = new RSS2Category(chanElement.getElementsByTagName("category")[0]);
	this.image = new RSS2Image(chanElement.getElementsByTagName("image")[0]);
}

function getRSS(feedURL,containerId)
{
	if (window.ActiveXObject)
		xhr = new ActiveXObject("Microsoft.XMLHTTP");
	else if (window.XMLHttpRequest)
		xhr = new XMLHttpRequest();
	else
		alert("not supported");
		
	xhr.open("GET",feedURL,true);

	xhr.setRequestHeader("Cache-Control", "no-cache");
	xhr.setRequestHeader("Pragma", "no-cache");
	xhr.onreadystatechange = function() {
		if (xhr.readyState == 4)
		{
			if (xhr.status == 200)
			{
				if (xhr.responseText != null) 
					processRSS(xhr.responseText,containerId);
				else
				{
					alert("Failed to receive RSS file from the server - file not found.");
					return false;
				}
			}
			else
				alert("Error code " + xhr.status + " received: " + xhr.statusText);
		}
	}
	xhr.send(null);
}

function processRSS(rssxml,containerId)
{
	rssxml="<?xml version=\"1.0\" encoding=\"UTF-8\"?><rss xmlns:feedburner=\"http://rssnamespace.org/feedburner/ext/1.0\" version=\"2.0\">"+rssxml.substr(rssxml.indexOf("<channel>")-1);

	RSS = new RSS2Channel(parseXML(rssxml),containerId);
	showRSS(RSS,containerId);
}
function parseXML(txt) {
	try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async="false";
  xmlDoc.loadXML(txt);
  return xmlDoc;
  }
catch(e)
  {
  parser=new DOMParser();
  xmlDoc=parser.parseFromString(txt,"text/xml");
  return xmlDoc;
  }
}

function showRSS(RSS,containerId)
{
	var startItemTag1 = "<div class=\"virtualpage hidepiece\"><div id=\"rs_box_inner\">";
	var startItemTag2 = "<div id=\"gal_1\">";
	var startTitle = "<span style=\"color:#cc0000; font-weight:bold;\">";
	var startPubDate ="<span style=\"color:#999999;\">Posted: "
	var startLink = "<span style=\"color:#cc0000; font-size:10px;\">&nbsp;&nbsp;&nbsp;&nbsp;<a href='";
	var itemBreaker = "<div id=\"gal_line_vertic\"><img src=\"images/line_vertical.jpg\" /></div>"
	var endItemTag1 = "</div></div>";
	var endItemTag2 = "</div>";
	var endTitle = "</span><br />";
	var endPubDate = "</span><br /><br />";
	var endLink1 = "' class='one' target='_blank' onClick='return popitup(\"";
	var endLink2 =" \")'>More</a></span>";
	
	document.getElementById(containerId).innerHTML = "";
	var item_html="";
	var rssContent=new Array();

	for (var i=0; i<RSS.items.length; i++)
	{
		var rssItem=new Array();
		rssItem[0]= (RSS.items[i].title == null) ? "" : RSS.items[i].title;
		rssItem[1]= (RSS.items[i].pubDate == null) ? "" : RSS.items[i].pubDate;

		if(RSS.items[i].description != null && RSS.items[i].description.indexOf("<div class=\"feedflare\">")!=-1) 
			rssItem[2]= (RSS.items[i].description == null) ? "" : RSS.items[i].description.substr(0,RSS.items[i].description.indexOf("<div class=\"feedflare\""));
		else
			rssItem[2]= (RSS.items[i].description == null) ? "" : RSS.items[i].description;

		rssItem[3]= (RSS.items[i].link == null) ? "" : RSS.items[i].link;

		rssContent[i]=rssItem;
	}
	for (var i=0;i<rssContent.length;i++)
	{
		for (var j=i+1;j<rssContent.length;j++)
		{
			var tmp1=rssContent[i];
			var tmp2=rssContent[j];
			if((new Date(tmp1[1]))<(new Date(tmp2[1])))
			{
				var temp=rssContent[i];
				rssContent[i]=rssContent[j];
				rssContent[j]=temp;
			}
		}
	}
	
	for (var i=0; i<rssContent.length; i++)
	{
		if(i%3==0)
		item_html += endItemTag1+startItemTag1;
		
		if(i%3!=0)
		item_html += itemBreaker;
		
		var tmp1=rssContent[i];
		
		item_html += startItemTag2;
		item_html += (tmp1[0] == null) ? "" : startTitle + tmp1[0] + endTitle;
		item_html += (tmp1[1] == null) ? "" : startPubDate + tmp1[1] + endPubDate;
		item_html += (tmp1[2] == null) ? "" : tmp1[2];
		item_html += (tmp1[3] == null) ? "" : startLink + tmp1[3] + endLink1 + tmp1[3]+ endLink2;
		item_html += endItemTag2;
	}
	document.getElementById(containerId).innerHTML += item_html;

	var gallery=new virtualpaginate({
	piececlass: "virtualpage", //class of container for each piece of content
	piececontainer: 'div', //container element type (ie: "div", "p" etc)
	pieces_per_page: 1, //Pieces of content to show per page (1=1 piece, 2=2 pieces etc)
	defaultpage: 0, //Default page selected (0=1st page, 1=2nd page etc). Persistence if enabled overrides this setting.
	persist: false //Remember last viewed page and recall it when user returns within a browser session?
	});

	gallery.buildpagination(["gallerypaginate"]);
	
	return true;
}

var xhr;


function popitup(url,height,width) {
	newwindow=window.open(url,"name","height=500px,width=600px,scrollbars=1");
	if (window.focus) {newwindow.focus()}
	return false;
}
