/*
 * peketec.de
 *
 * Sourcecode, Text, Bilder, Grafiken, Sound, Animationen und Videos der
 * Software unterliegen dem Schutz des Urheberrechts und anderer Schutzgesetze.
 * Übersetzung, Bearbeitung, Arrangement und andere Umarbeitungen der Software,
 * sowie von Teilen davon und die Vervielfältigung der dadurch erzielten
 * Ergebnisse sind nur gestattet, soweit dies für die Nutzung der Software für
 * den Lizenznehmer erforderlich ist. Die Software darf nicht kopiert,
 * verbreitet, verändert oder Dritten zugänglich gemacht werden.
 *
 * @copyright  (c) 2007-2009 peketec GmbH, Deutschland. Alle Rechte vorbehalten.
 * @author     Stefan Müller, crossing media
 */


Ext.onReady(function(){

// Data Store erstellen
var ds = new Ext.data.Store({
	proxy: new Ext.data.HttpProxy({url: 'http://peketec.de/trading/daxgrid.php'}),
	reader: new Ext.data.JsonReader({
		root: 'dax_daten',
		id: 'id'
	},[
		{name: 'wkn', mapping: 'wkn', type: 'string'},
		{name: 'symbol', mapping: 'symbol', type: 'string'},
		{name: 'charts', mapping: 'charts', type: 'string'},
		{name: 'name', mapping: 'name', type: 'string'},
		{name: 'bid', mapping: 'bid', type: 'float'},
		{name: 'ask', mapping: 'ask', type: 'float'},
		{name: 'letzter', mapping: 'letzter', type: 'float'},
		{name: 'change', mapping: 'change', type: 'float'},
		{name: 'zeit', mapping: 'zeit', type: 'string'},
		{name: 'vortagskurs', mapping: 'vortagskurs', type: 'float'}		
	])	

});
ds.setDefaultSort('name', 'asc'); 

// Renderer für Zeit
function renderer_zeit(x) {
x = x.substring(11);
return x; 
}

// Renderer für Kurse
function renderer_bid(x) {
 x = kaufm(x);
 // Punkt zu Komma
 x = x.toString().replace('.', ',');
return x;  
}

// Renderer für prozentuale Differenz
function renderer_change(x) {
x = pctChange(kaufm(x));
// Punkt zu Komma
x = x.toString().replace('.', ',');
 
return x;  
}

//kaufmännisch runden
function kaufm(x) {
  var k = (Math.round(x * 100) / 100).toString();
  k += (k.indexOf('.') == -1)? '.00' : '00';
  k = k.substring(0, k.indexOf('.') + 3);
  return k;  
}


// grün oder rot
function pctChange(val){
    if(val > 0){
        return '<span style="color:green;">+' + val + '%</span>';
    }else if(val < 0){
        return '<span style="color:red;">' + val + '%</span>';
    }
    return val;
}

// Tabelle erstellen
var grid = new Ext.grid.GridPanel({
    store: ds,
    columns: [
        {header: "WKN", width: 50, dataIndex: 'wkn', sortable: true},
        {header: "Symbol", width: 45, dataIndex: 'symbol', sortable: true},
        {header: "Info", width: 35, align: 'center', dataIndex: 'charts', sortable: false},
        {header: "Name", width: 180, dataIndex: 'name', sortable: true},
        {header: "Bid", width: 60, align: 'right', renderer: renderer_bid, dataIndex: 'bid', sortable: true},
        {header: "Ask", width: 60, renderer: renderer_bid, dataIndex: 'ask', sortable: true},
        {header: "Lkurs", width: 60, renderer: renderer_bid, dataIndex: 'letzter', sortable: true},
        {header: "% Diff.", width: 60, align: 'center', renderer: renderer_change, dataIndex: 'change', sortable: true},
        {header: "Zeit", width: 60, align: 'center', renderer: renderer_zeit, dataIndex: 'zeit', sortable: true},
        {header: "Vortag", width: 60, align: 'right', renderer: renderer_bid, dataIndex: 'vortagskurs', sortable: true}
    ],
    height: 700,
    width: 690,
    collapsible: true,
    animCollapse: false,
    title: '<span style="color:#555;">DAX Realtimequotes</span>',  
    frame:true,
    renderTo:'dax_grid'

});  
  
ds.load();

});


