
function tstart_top(){
  CheckInit_top();
  timerID = setInterval(Timer_top,5000);
}
function Timer_top(){
  CheckInit_top();
}
function tstop_top(){
  clearInterval(timerID);
}
function CheckInit_top()
{
  try
  {
    var queryString = "indices=";
    for(var i=0;i<us_symbols.length;i++){
      queryString += us_symbols[i][1]+",";
    }
    for(var i=0;i<cad_symbols.length;i++){
      queryString += cad_symbols[i][1]+",";
    }
    for(var i=0;i<energy_symbols.length;i++){
      queryString += energy_symbols[i][1] + ",";
    }
    for(var i=0;i<commodite_symbols.length;i++){
      queryString += commodite_symbols[i][1];
      if(i< commodite_symbols.length -1){
        queryString += ",";
      }
    }
    queryString = unescape(queryString);
    //alert(top_symbol_url);
    xmlHttpGet(top_symbol_url, queryString, "AJAX_TopProc");
  }
  catch(exception)
  {
  }
}
function AJAX_TopProc(xmlhttp)
{
  var ret = "";
  try{
    if (xmlhttp.readyState == 4)
    {
      if (xmlhttp.status == 200)
      {

        var _ctype = xmlhttp.getResponseHeader("Content-type");
        if(_ctype.indexOf("text/xml") >= 0)
        {
          if(!xmlhttp.responseText){
            return;
          }
          //alert(xmlhttp.responseText);
          jsXmlDom = new REXML(xmlhttp.responseText);
          parseXMLForTop(jsXmlDom);
          xmlhttp.onreadystatechange = null;
          xmlhttp = null;
        }
      }
    }
  }
  catch(exception){
  }
  return false;
}

function parseXMLForTop(xmlDoc)
{
  if(xmlDoc.rootElement == null){
    return;
  }
  var _response = xmlDoc.rootElement;
  var _header = _response.childElement("HEADER");
  var errCode = _header.childElement("ERRCODE").getText();
  if(eval(errCode) > 0){//occur error
    return;
  }
  
  var timeStr = _header.childElement("TIME").getText();

  var can_openclose = _header.childElement("CAN_O_C").getText();
  var us_openclose = _header.childElement("US_O_C").getText();
  var ocString = "";
  if(can_openclose == 'c' && us_openclose == 'c'){
    ocString = "US & Canadian Markets closed.";
  }
  else if(can_openclose == 'o' && us_openclose == 'o'){
    ocString = "US & Canadian Markets open.";
  }
  else if(can_openclose == 'o' && us_openclose == 'c'){
    ocString = "US Markets closed.<br> Canadian Markets open.";
  }
  else if(can_openclose == 'c' && us_openclose == 'o'){
    ocString = "US Markets open.<br> Canadian Markets closed.";
  }
  var _result_items = _response.childElement("RESULT");
  var rpdata = new Array(_result_items.childElements.length);
  for(var i=0; i<_result_items.childElements.length; i++)
  {
    var _nodeList =_result_items.childElements[i];
    var symbol = _nodeList.childElements[0].getText();
    rpdata[symbol] = new Array();
    for(var j=1;j<_nodeList.childElements.length;j++)
    {
      var _node = _nodeList.childElements[j];
      rpdata[symbol][_node.name] = _node.getText();
    }
  }
  showTopData(timeStr,ocString,rpdata);
}

function showTopData(timestr,marketstatus,rpdata)
{
  //document.getElementById("marketstatus_timespan").innerHTML = timestr;
  //document.getElementById("marketstatus_openclose").innerHTML = marketstatus;
  var marketArr = new Array("us_market","can_market","energy","world_market");
  for(var iCnt=0;iCnt<marketArr.length;iCnt++){
	  var market_div = document.getElementById(marketArr[iCnt]);
	  var titleObj = document.getElementById(marketArr[iCnt]+"_title");
	  var symbolListObj = document.getElementById(marketArr[iCnt]+"_symbol");
	  var valueListObj = document.getElementById(marketArr[iCnt]+"_value");
	  titleObj.innerHTML = _titles[iCnt];
	  var _symbols = us_symbols;
	  prev_values = prev_us_values;
	  if(marketArr[iCnt] == 'can_market'){
   	    	_symbols = cad_symbols;
   	    	prev_values = prev_cad_values;
  	  }else if(marketArr[iCnt] == 'energy'){
  	    	_symbols = energy_symbols;
  	    	prev_values = prev_energy_values;
  	  }else if(marketArr[iCnt] == 'world_market'){
   	    	_symbols = commodite_symbols;
   	    	prev_values = prev_commodite_values;
   	  }
	  for(i=0;i<_symbols.length;i++){
    		if(rpdata[_symbols[i][1]]!= null){
		  	  var aliassymbol = _symbols[i][0];
		      var symbol = _symbols[i][1];
	   	      var dispvalue = _symbols[i][2];
		      var company = rpdata[symbol]["COMPANY"];
		      var change = rpdata[symbol]["CHANGE"];//If forex this is bid
		      var percentchange = rpdata[symbol]["CHANGEPERCENT"];//If forex this is ask
		      var title = "Percent Change";
		      
		      emphasis_color = "";
		      if(prev_values[i]){
			    if(prev_values[i] == change)   emphasis_color = "";
			    else emphasis_color = (prev_values[i] < parseFloat(change))? "#75ff46":"#ffb400";
			  }
			  
			  
			  var defaultColour = "#75ff46";//Colour of top symbol values
		      var color = defaultColour;
	
		      if(eval(change) < 0){
		        color = "#ffb400";
		      }else if(eval(change) == 0)  color = "#ffffff";
			  
			  
		      prev_values[i] = parseFloat(change);
		      if(symbol.search("/\//")!= -1 || symbol.search("/USD/")!= -1){
		          title = 'Ask Price';
			      if(dispvalue == 'fb'){ 
			         percentchange = parseFloat(change); title = 'Bid Price';
			      }
			      percentchange = (eval(percentchange) > 0)? "+"+percentchange:percentchange;
		  	  }else {
	  		      if(dispvalue == 'sc'){ 
	 		         percentchange = parseFloat(change); title = 'Change Price';
			         percentchange = (eval(percentchange) > 0)? "+"+percentchange:percentchange;
	  		      }else if(dispvalue == 'sl'){ 
	 		         percentchange = parseFloat(rpdata[symbol]["LAST"]); title = 'Last Price'; //color = defaultColour;
	  		      }
			      if(dispvalue == 'sp'){
			         percentchange = (eval(percentchange) > 0)? "+"+percentchange:percentchange;
	  		         percentchange += '%';
	  		      }
			  }
			  symbolListObj.childNodes[i].innerHTML = "<span style='' title='"+company+"'>"+aliassymbol+"</a></span>";
			  //symbolListObj.childNodes[i].innerHTML = "<span style='' title='"+company+"'><a href='<%=strChartLink %>?Symbol="+symbol+"' class='chartlinkCss'>"+aliassymbol+"</a></span>";
			  valueListObj.childNodes[i].innerHTML = "<span title='"+title+"' style='color:"+color+";border-style:solid;border-width:"+((emphasis_color)?1:0)+"px;border-color:"+emphasis_color+"'>"+percentchange+"</span>";
			  //valueListObj.childNodes[i].style.borderColor = emphasis_color;
			  //valueListObj.childNodes[i].style.borderWidth = (emphasis_color)?1:0;
			  //valueListObj.childNodes[i].style.borderStyle = "solid";
		      //market_div.innerHTML += "<span style='width:40px;line-height:15px;' title='"+company+"'><a href='<%=strChartLink %>?Symbol="+symbol+"' class='chartlinkCss'>"+aliassymbol+"</a></span>&nbsp;&nbsp;<span title='"+title+"' style='position:absolute;left:60px;font-family:Verdana;font-size:10px;color:"+color+";border-style:solid;border-width:"+((emphasis_color)?1:0)+"px;border-color:"+emphasis_color+"'>"+percentchange+"</span><BR>";      
		    }
			if(marketArr[iCnt] == 'can_market'){
		   	    prev_cad_values = prev_values;
		  	}else if(marketArr[iCnt] == 'energy'){
		  	    prev_energy_values = prev_values;
		  	}else if(marketArr[iCnt] == 'world_market'){
		   	    prev_commodite_values = prev_values;
		   	}else {
		 	   	    prev_us_values = prev_values;
		   	}
	  	}
	}
}