google.load("visualization", "1", {packages:["corechart"]});

document.observe("dom:loaded", function() {
	
 	var market_summary_url = "/ws/wp-content/dynamicdata.php"
	new Ajax.Request(market_summary_url, {
                          method: 'get',
                          onSuccess: function(transport) {
				display_data( transport.responseText.evalJSON() );
				
                                }
                        });

	if ($('l_form')) { 
		$('l_form').observe('submit', function(e) {
			Event.stop(e);
			login_client();
			});
		}	
});

function drawChart(gd) {
	var data = new google.visualization.DataTable();
        data.addColumn('string', 'Date');
        data.addColumn('number', 'Index');
        data.addRows(gd.size());
	gd.reverse();
	var nc = 0;
	var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
	gd.each(function(it) {
		var d = new Date(it[0]);
		var da =  months[d.getMonth()] + " " +d.getDate() + ", " + d.getFullYear();
       		data.setValue(nc, 0, da);
	        data.setValue(nc, 1, it[1]);
		nc++;
	});

        var chart = new google.visualization.LineChart(document.getElementById('dyngraph'));
        chart.draw(data, {width: 600, height: 250, title: 'Market Index', hAxis : {showTextEvery: 100, slantedTextAngle:90, slantedText:true }});
}

function display_data(data) {
	console.log(data);
	drawChart(data.graph);
	disp_top('top_gainers', data['top_gainers']);
	disp_top('top_losers', data['top_losers']);
	disp_highlights(data['market_summary']);
	disp_links(data['articles'], 'd_articles');
	disp_links(data['meetings'], 'd_meetings');
}

function disp_links(data, id) {
	tpl = new Template('<div class="llink"><a href="#{url}">#{title}</a></div>');
	data.each(function(it) {
		$(id).insert({bottom: tpl.evaluate(it) });
	});
}
function disp_highlights(data) {
	var t1 = data[1];
	var t2 = data[0];
	var o = "";
	var tri = 1000000000000;
	var bil = 1000000000;
	var mil = 1000000;
	o += '<tr class="mark1"><td class="column1">INDICATORS</td><td>'+t1['Close Date']+'</td><td>'+t2['Close Date']+'</td><td>CHANGE</td></tr>';
	o += highlight_line(t1,t2,'Index', 'Index', 1, "mark2");
	o += highlight_line(t1,t2,'Market Cap (Trillions)', 'Market Cap', tri,"");
	o += highlight_line(t1,t2,'Volume (Millions)', 'Trade Volume', mil,"mark3");
	o += highlight_line(t1,t2,'Value  (Billions)', 'Trade Value', bil);
	$('stockh').insert({bottom:o});
}

function highlight_line(t1,t2,label,key, div, cl) {
	var tpl = new Template('<tr class="#{cl}"><td class="column1">#{name}</td><td>#{v1}</td><td>#{v2}</td><td>#{v3}%</td></tr>');
	return tpl.evaluate({cl: cl, name:label, v1: (parseFloat(t1[key])/div).toFixed(2), v2: (parseFloat(t2[key])/div).toFixed(2), v3: ((parseFloat(t2[key]) - parseFloat(t1[key])) / parseFloat(t1[key])).toFixed(2)  });

}

function disp_top(el, data) {
	el = $(el);
	var htm = "";
	var tpl = new Template('<tr class="uppercase-text #{_extra}"><td>#{symbol}</td><td>&nbsp;#{close_price}</td><td>#{price_change}<span style="color:#777"> (#{change_perc}%)</span></td></tr>');
	var cnt = 1;
	data.each(function(it) {
		cnt++;
		if (cnt%2 == 0) it['_extra'] = 'mark-text';
		htm += tpl.evaluate(it);	
	});

	el.insert({bottom:htm});
}

function login_client() {
	var login = $('l_email').value;
	var pass = $('l_pass').value;
	var login_url = "/core.php?coreName=CmdCore&writer=JSONCmdWriter&module=auth.client&coreClass=ClientAuthCmd&cmd=LOAD&id=&idx=&_dc=1311232633880&email="+escape(login)+"&pass="+escape(pass);

	new Ajax.Request(login_url, {
                          method: 'get',
                          onSuccess: function(transport) {
				var res = transport.responseText.evalJSON();
				var status = res.root.data.status;
				if (status == "NOK") {
					alert('wrong login or password');
					}
				if (status == "OK") {
					window.location = "/cl_client_home"
					}
				
                                }
                        });


}

