Namespace.Register("ponte.ajaxdata.TransactionData");

/**
 * A TransactionData portlet Ajax valasza alapjan valo kitoltesenek fuggvenyei.
 * 
 * @argument {Node} portletNode - 
 * @argument {HttpRequest} xmlData - A portlet xml tartalma.
 */

/** Ez a script első futása-e */
transaction_data_firstRun = true;
/** Az alapértelmezett sorok (ez alapján tartja meg a sorok designját */
transaction_data_rows = null;

transaction_data_detailed_firstRun = true;
transaction_data_detailed_section1_header = null;
transaction_data_detailed_section2_header = null;
transaction_data_detailed_section3_header = null;
transaction_data_detailed_section1_row = null;
transaction_data_detailed_section2_row = null;
transaction_data_detailed_section3_row = null;

ponte.ajaxdata.TransactionData.RowFiller = function(portletNode, xmlData) {
	// táblázat cseréje
	var tBodyElement = portletNode.getElementsByTagName('TBODY')[0];
	
	var xmlTBodyElement = xmlData.getElementsByTagName('tbody')[0];
	
	var rowElements = tBodyElement.getElementsByTagName('TR');
	if(transaction_data_firstRun) {
		transaction_data_rows = new Array();
	}
	
	var rowCounter = 0;
	for(var i=0; i < rowElements.length; i++) {
		if(rowElements[i].getElementsByTagName('TD').length == 0) {
			continue;
		}
		if(transaction_data_firstRun) {
			transaction_data_rows[rowCounter++] = rowElements[i].cloneNode(true);
		}
		tBodyElement.removeChild(rowElements[i]);
		i--;
	}
	
	var xmlRowElements = xmlTBodyElement.getElementsByTagName('tr');
	for(var j=0; j < xmlRowElements.length; j++) {
		var xmlCellElements = xmlRowElements[j].getElementsByTagName('td');
		
		var cell_0 = "";
		var cell_1 = "";
		var cell_2 = "";

		cell_0 = xmlCellElements[0].firstChild.nodeValue + xmlCellElements[3].firstChild.nodeValue;
		cell_1 = xmlCellElements[1].firstChild.nodeValue;
		cell_2 = xmlCellElements[2].firstChild.nodeValue;
		
		var thisRow = transaction_data_rows[ (j % transaction_data_rows.length) ].cloneNode(true);

		// HTML link
		var link = '';
		var linkUrl = '';

		if (cell_0.indexOf('Részvény szekció') == 0)
			linkUrl = 'bet.hu/topmenu/kereskedesi_adatok/azonnali_piac/reszvenyek';

		if (cell_0.indexOf('Hitelpapír szekció') == 0)
			linkUrl = 'bet.hu/topmenu/kereskedesi_adatok/azonnali_piac';

		if (cell_0.indexOf('Származékos szekció') == 0)
			linkUrl = 'bet.hu/topmenu/kereskedesi_adatok/szarmazekos_piac';

		if (cell_0.indexOf('Áru szekció') == 0)
			linkUrl = 'bet.hu/topmenu/kereskedesi_adatok/arupiac/hataridos_gabonatermek';

		if (cell_0.indexOf('BÉTa Piac') == 0)
			linkUrl = 'bet.hu/topmenu/beta_piac/BETa_keradatok';

		if (cell_0.indexOf('BETa Market') == 0)
			linkUrl = 'www.bse.hu/topmenu/beta_market/BETa_trading_data';

		if (linkUrl != '')
			link = '<a href="http://'+linkUrl+'">' + cell_0 + '</a>';
		else
			link = cell_0;
		
		var thisInnerElements = thisRow.getElementsByTagName('DIV');

		thisInnerElements[0].innerHTML = link;
//		thisInnerElements[0].innerHTML = cell_0;
		thisInnerElements[1].innerHTML = cell_1;
		thisInnerElements[2].innerHTML = cell_2;
		
		tBodyElement.appendChild(thisRow);
	}
	
	if(transaction_data_firstRun) {
		
		// láblécbeli link cseréje
		var linkForDetailed = xmlTBodyElement.getAttribute('link4detailed');
		
		var footerDiv = portletNode.nextSibling;
		if(footerDiv.nodeType != 1) {
			footerDiv = footerDiv.nextSibling;
		}
		
		var footerLink = footerDiv.getElementsByTagName('A')[0];
		footerLink.href += linkForDetailed;
		
	}
	
	transaction_data_firstRun = false;
}

ponte.ajaxdata.TransactionData.DetailedRowFiller = function(portletNode, xmlData) {
	var tBodyElement = portletNode.getElementsByTagName('TBODY')[0];
	
	var xmlTBodyElements = xmlData.getElementsByTagName('tbody');
	
	var rowElements = tBodyElement.getElementsByTagName('TR');
	if(transaction_data_detailed_firstRun) {
		transaction_data_detailed_section1_header = rowElements[0];
		transaction_data_detailed_section2_header = rowElements[1];
		transaction_data_detailed_section3_header = rowElements[2];
		transaction_data_detailed_section1_row = rowElements[3];
		transaction_data_detailed_section2_row = rowElements[4];
		transaction_data_detailed_section3_row = rowElements[5];
	}
	
	while(tBodyElement.firstChild != null) {
		tBodyElement.removeChild(tBodyElement.firstChild);
	}
	
	for(var i=0; i < xmlTBodyElements.length; i++) {
		var xmlTBodyElement = xmlTBodyElements[i];
		var sectionType = xmlTBodyElement.getAttribute('sectiontype');
		var sectionName = xmlTBodyElement.getAttribute('sectionname');
		
		var headerRow = null;
		if(sectionType == '1') {
			headerRow = transaction_data_detailed_section1_header.cloneNode(true);
		} else if(sectionType == '2') {
			headerRow = transaction_data_detailed_section2_header.cloneNode(true);
		} else if(sectionType == '3') {
			headerRow = transaction_data_detailed_section3_header.cloneNode(true);
		}
		
		headerRow.getElementsByTagName('DIV')[0].innerHTML = sectionName;
		
		tBodyElement.appendChild(headerRow);
		
		var xmlRowElements = xmlTBodyElement.getElementsByTagName('tr');
		for(var j=0; j < xmlRowElements.length; j++) {
			var xmlCellElements = xmlRowElements[j].getElementsByTagName('td');
			
			var instrGrpName 	= xmlCellElements[0].firstChild.nodeValue;
			var sumFt 			= xmlCellElements[1].firstChild.nodeValue;
			var sumEu		 	= xmlCellElements[2].firstChild.nodeValue;
			var avg			 	= xmlCellElements[3].firstChild.nodeValue;
			
			var thisRow = null;
			if(sectionType == '1') {
				thisRow = transaction_data_detailed_section1_row.cloneNode(true);
			} else if(sectionType == '2') {
				thisRow = transaction_data_detailed_section2_row.cloneNode(true);
			} else if(sectionType == '3') {
				thisRow = transaction_data_detailed_section3_row.cloneNode(true);
			}
			
			var thisInnerElements = thisRow.getElementsByTagName('DIV');
			if(sectionType == '1' || sectionType == '3') {
				thisInnerElements[0].innerHTML = instrGrpName;
				thisInnerElements[1].innerHTML = sumFt;
				thisInnerElements[2].innerHTML = sumEu;
				thisInnerElements[3].innerHTML = avg;
			} else if(sectionType == '2') {
				thisInnerElements[0].innerHTML = instrGrpName;
				thisInnerElements[1].innerHTML = sumFt;
				thisInnerElements[2].innerHTML = avg;
			}
			
			thisRow.className = 'BG_' + ((j+1) % 2);
			
			tBodyElement.appendChild(thisRow);
		}
	}
	
	transaction_data_detailed_firstRun = false;
}

