/******************************************************************************************
* JAVASCRIPT GLOBALS FUNCTIONS
******************************************************************************************/
function getObj(id, framename)
{
 if (framename && top[framename]) { myDocument = top[framename].document; } else { myDocument = document; }
 
 if (myDocument.getElementById)
 {
  myObj = myDocument.getElementById(id);
 }
 else if (myDocument.all)
 {
  myObj = myDocument.all[id];
 }
 else if (myDocument.layers)
 {
  myObj = myDocument.layers[id];
  myObj.style = myDocument.layers[id];
 }
 return myObj;
}


function showAttributes(myObj)
{
 var output;
 for (var key in myObj)
 {
  output += key + '=>' + myObj[key] + '\n';
 }
 alert(output);
}


/******************************************************************************************
* COUNTERS
******************************************************************************************/
function getParameters(parameters)
{
 // Split arguments into pair values
 var myArray = new Array();
 var parameters = parameters.split('&');
 for (var i in parameters) 
 {
  parameter = parameters[i].split('='); // sell=xxx
  myArray[parameter[0]] = parameter[1]; 
 }
 return myArray;
}

function fetchPricefeed()
{
 var ajaxObj = new Ajax();
 var feeddata;
 var url = "data.php";	
	var parameters = new Array();
	
 ajaxObj.onreadystatechange = function()
 {
  if (ajaxObj.readyState==4 && ajaxObj.status==200)
  {
   feeddata = innerHTML = ajaxObj.responseText;
   updatePrices(feeddata);
  }
 }

 if (feedkey)	{  parameters.push("feedkey=" + feedkey);	}
 if (system) { parameters.push("system=" + system); }
	parameters.push("nocache=" + Math.random());
	if (parameters)
	{
		url += '?' + parameters.join('&');
	}
 ajaxObj.open("GET",url,true); 
 ajaxObj.send(null);
}

function showRotation()
{
	getObj('pricefeedpanel').innerHTML = "<div style='font: 8pt Arial; padding: 30px; text-align: center;'><b>Price feed has expired.</b><br><br>Please refresh the browser window to obtain live feed prices.</div>";
}

function updatePrices(feeddata)
{
	// code for IE
	var matches;
	
	if (!feeddata) { return; }
 if (feeddata.match(/feedkey/))
	{
  showRotation();
		return;
	}

	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');
		var	duration = 10000;			

		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';",duration);
   }
		}
	}
	
	// Update Total Users
	var totalusers = xmlObj.getElementsByTagName('totalusers');
	if (getObj('totalusers'))
	{
	 getObj('totalusers').innerHTML = totalusers[0].childNodes[0].nodeValue;
	}
}


/******************************************************************************************
* AJAX CLASS
******************************************************************************************/
function Ajax()
{
 var ajaxObj;
 try
 {
  // Firefox, Opera 8.0+, Safari
  ajaxObj=new XMLHttpRequest();
 }
 catch (e)
 {
  // Internet Explorer
  try
  {
   ajaxObj=new ActiveXObject("Msxml2.XMLHTTP");
  }
  catch (e)
  {
   ajaxObj=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
 return ajaxObj;
}

/******************************************************************************************
* START
******************************************************************************************/
function startPricefeed()
{
	pricefeedtimer = setInterval('fetchPricefeed()',10000);
}
var pricefeedtimer;

