function fetchPricefeed()
{
 var ajaxObj = new Ajax();
 var feeddata;
 var url = "pricefeed.php";	
	
 ajaxObj.onreadystatechange = function()
 {
  if (ajaxObj.readyState==4 && ajaxObj.status==200)
  {
   feeddata = innerHTML = ajaxObj.responseText;
			updatePrices(feeddata);
  }
 }

 ajaxObj.open("GET",url+"?nocache="+Math.random(),true); 
 ajaxObj.send(null);
}

function updatePrices(feeddata)
{
	// code for IE
	if (!feeddata) { clearInterval(pricefeedtimer); alert('Price feed session has timed out. Please reload the page.'); }
	if (window.ActiveXObject)
	{
		var doc=new ActiveXObject("Microsoft.XMLDOM");
		doc.async="false";
		doc.loadXML(feeddata);
	}
	// code for Mozilla, Firefox, Opera, etc.
	else
	{
		var parser=new DOMParser();
		var doc=parser.parseFromString(feeddata,"text/xml");
	}
	var xmlObj=doc.documentElement;
	
 var counters = xmlObj.getElementsByTagName('counter');
 
	for (var i=0; i<counters.length; i++)
	{
		var counterid = counters[i].getAttribute('counterid');

		for (var j=0; j<counters[i].childNodes.length; j++)
		{
			var item = counters[i].childNodes[j];
			if (getObj(item.nodeName + '[' + counterid + ']'))
			{
				var target = getObj(item.nodeName + '[' + counterid + ']');
				var itemvalue = item.childNodes[0].nodeValue;
				target.className = 'price';
				if (target.getAttribute('arrow')=='yes')
				{
					if (target.innerHTML != itemvalue && target.innerHTML != 'loading..')
					{
					 target.className = itemvalue > target.innerHTML ? 'priceUp' : 'priceDown';
					}
				}
				target.innerHTML = itemvalue;
    setTimeout("getObj('"+target.id+"').className = 'price';",1000);
   }
		}
	}
	
	// Update Total Users
	var totalusers = xmlObj.getElementsByTagName('totalusers');
	if (getObj('totalusers'))
	{
	 getObj('totalusers').innerHTML = totalusers[0].childNodes[0].nodeValue;
	}
}

var pricefeedtimer = setInterval('fetchPricefeed()',5000)