/*
    @description BSE dashborad javascript
    @createdBy http://www.bhavyait.co.in
    @createdOn 09-10-2007
    @notes This JS is for displaying BSE data using ajax
*/

function init(){
	fetchChartData();
}

function fetchChartData(){
	setTimeout('sendAjaxRequest()', 60*1000);
}

function sendAjaxRequest(){
	try {
          var currDate= new Date();		
          getAjaxRequest("bse30.php","time="+currDate.getTime(),fetchChartDataCallback);
	} catch (e){
	  document.getElementById("bseindexdata").innerHTML = e.message;
	}
}

function getAjaxRequest(url, data, callback) {
	var aj = new Ajax.Request(
	url,
	{
	method: 'get',
        parameters: data,
	onComplete: callback
	});
	aj = null;
}

function fetchChartDataCallback(request){
	var response = request.responseText;
	var dataString = parse_feed(response);
var currentTagTokens = dataString.split( "|" );        
var tableData = "";
	
	tableData = "<table border='1'>";
	tableData = tableData + "<tr>";
	for ( var i = 0; i < 3; i++ ){
	tableData = tableData + "<td><font size='1'><b>EQUITY</b></font></td><td><font size='1'><b>CURRENT</b></font></td><td><font size='1'><b>% CHANGE</b></font></td>";
	}
	tableData = tableData + "</tr>";

	var tds = 0;
	var dataTimeStamp;
	for ( var i = 0; i < currentTagTokens.length; i++ )
	{
	if(tds == 0)
	tableData = tableData + "<tr>";

	if(currentTagTokens[i].indexOf(",") > 0){
	tds++;
	var vals = currentTagTokens[i].split(",");
	if(vals[2].indexOf("-") == 0)
	tableData = tableData + "<td><font size='1'>"+vals[0]+"</font></td><td><font size='1'>"+vals[1]+"</font></td><td><font size='1' color='red'>"+vals[2]+"&nbsp;<img src='../images/down.gif'  border='0' valign='middle'>"+"</font></td>";
	else
	tableData = tableData + "<td><font size='1'>"+vals[0]+"</font></td><td><font size='1'>"+vals[1]+"</font></td><td><font size='1' color='green'>"+vals[2]+"&nbsp;<img src='../images/up.gif'  border='0' valign='middle'>"+"</font></td>";
	}
	if(tds == 3) {
	tds = 0;
	tableData = tableData + "</tr>";
	}
	if(i == 1)
	dataTimeStamp = currentTagTokens[1];
	}
	tableData = tableData + "<tr><td colspan='9' align='right'><font size='1'>"+dataTimeStamp+"</font></td></tr>";
	tableData = tableData + "</table>";

        document.getElementById("instruction").innerHTML = "";
	document.getElementById("bseindexdata").innerHTML = tableData;
	fetchChartData();
}

function parse_feed(responseText){
	var date_string = responseText.match(/Last updated on (.*?)</);
	var pattern1 = /<td class=tbmain align=center valign=top>(.*?)<\/td><\/tr>/g;
	var pattern2 = /valign=top>(.*?)<\/td>/g;
	var raw_string = responseText.match(/<td class=tbmain align=center valign=top>(.*?)<\/td><\/tr>/g);
	var ticker_string = "s|"+date_string[1]+"|30";
	for (i = 0; i < raw_string.length; i++) {
		raw_string2 = raw_string[i].match(/valign=top>(.*?)<\/td>/g);
		ticker_string = ticker_string + "|" + raw_string2[1].split(/valign=top>(.*?)<\/td>/)[1].split(/>(.*?)</)[1];
		ticker_string = ticker_string + "," + (raw_string2[2].split(/valign=top>(.*?)<\/td>/)[1]).replace(","," ");
		ticker_string = ticker_string + "," + (raw_string2[4].split(/valign=top>(.*?)<\/td>/)[1]).replace(","," ");
	}
	ticker_string = ticker_string + "";
	return ticker_string;
}

