IE = navigator.userAgent.indexOf('MSIE') > -1;

var Informers = function() {
	
	// объект соответствия номеров табов и индексов, которые на этих табах надо выводить
	this.vars = {
		
		// индексы
		1: {
			4060: 'RTS',
			4117: 'MICEX'
		},
		
		
		// курсы валют
		2: {
			2789: 'USD',
			2790: 'EUR'
		},
		
		
		// акции
		3: {
			4815: 'GAZP',
			4817: 'GMKN',
			//4862: 'LKOH',
			//4891: 'MSNG',
			//5054: 'RTKM',
			//5657: 'SBER03',
			//5665: 'SIBN',
			//5681: 'SNGS'
		}
	}
}
	
Informers.prototype = {
	
	processData: function() 
	{
		var key, key2, change,
				src_tab, /* номер таба в таблицу которого планируется вставка контента */
				tabnums = {}, /* объект соответствия номера таба и номеров индексов из объекта vars */
				out_data = {},
				str = '', 
				c = 0, zebra = 0;
	
	
		/* получаем объект, ключами которого являются id индексов, 
		а элементами - номера табов, в которых их надо показывать */
		for(key in this.vars) {
			for(key2 in this.vars[key])
				tabnums[key2] = key
		}
	
	
		/* создаём объект где ключами является id индекса,
		а элементами - строки таблицы, которые будут вставлены в соответствующий таб */
		for(key in data)
		{
			c++;
			for(key2 in data[key]) 
			{
				src_tab = tabnums[data[key]['id']]; // номер вкладки
				zebra = ( c%2 ==0 ) ? true : false;
				change = this.formatInt(data[key]['change']);
				change_year = this.formatInt(data[key]['change_year']);
				
				out_data[ data[key]['id'] ] = {
					'col1': '<span class="indicator '+ change +'">'+ this.vars[src_tab][data[key]['id']] +'</span>',
					'col2': data[key]['date'],
					'col3': data[key]['close'],
					'col4': data[key]['change'],
					'col5': data[key]['change_year'],
					'zebra': zebra,
					'change': change,
					'change_year': change_year
				};
				
			}
		}
		
		/* заполняем таблицы табов */
		for(key in out_data)
		{
			src_tab = tabnums[key];
			zebra = ( out_data[key]['zebra'] ) ? 'zebra' : '';
			change = out_data[key]['change'];
			change_year = out_data[key]['change_year'];
			
			tr = add_element('tr', 'table'+src_tab);
			tr.className = zebra;
			add_element('td', tr, {}, out_data[key]['col1'], 'first');
			add_element('td', tr, {}, out_data[key]['col2']);
			add_element('td', tr, {}, out_data[key]['col3']);
			add_element('td', tr, {}, out_data[key]['col4'], change);
			add_element('td', tr, {}, out_data[key]['col5'], 'last '+ change_year);
			change = change_year = '';
		}
	},

	
	
	formatInt: function(num) {
		if(num > 0)
			return 'up';
		else if(num < 0)
			return 'down';
		else
			return '';
	}

}






 



function add_element(ename, parent, attrs, innerHTML, cl) {
	var el = document.createElement(ename);
	var key = null;
	if(typeof(attrs) == 'object') {
		for(key in attrs) {
			//el[key] = attrs[key];
			el.setAttribute(key, attrs[key]);
		}
			
	}
	if(innerHTML) el.innerHTML = innerHTML;
	if(cl)
		el.className = cl;
	
	if(typeof(parent) == 'object')
	    parent.appendChild(el);
	else
	    document.getElementById(parent).appendChild(el);
	return el;
}



function tab(n, obj) {
	
	var display, cl = '', src;
	
	var num = obj.id.substr(3, 4);
	for(var i = 1; i <= 3; i++ ) 
	{
		if(i == num) 
		{
			display = (IE) ? 'block' : 'table-row-group';
			cl = 'active';
		}
		else
			display = 'none';

		document.getElementById('table' + i).style['display'] = display;
		document.getElementById('tab' + i).className = cl;
		
		display = cl = '';
	}

}

