Namespace.Register("ponte.ajaxdata.MostTradedEquities");

/**
 * A MostTradedEquities portlet Ajax valasza alapjan valo kitoltesenek fuggvenyei.
 * 
 * @argument {Node} portletNode - 
 * @argument {HttpRequest} xmlData - A portlet xml tartalma.
 */

/** Ez a script első futása-e */
most_traded_firstRun = true;
/** Az alapértelmezett sorok (ez alapján tartja meg a sorok designját */
most_traded_rows = null;
/** A táblázat láblécében szereplő lokalizált szöveg */
most_traded_footer = null;

ponte.ajaxdata.MostTradedEquities.RowFiller = function(portletNode, xmlData) {
	// táblázat cseréje
	var tBodyElement = portletNode.getElementsByTagName('TBODY')[0];
	
	var hiddenParametersDiv = portletNode.previousSibling;
	while(hiddenParametersDiv.className != 'MostTradedEquitiesParameters') {
		hiddenParametersDiv = hiddenParametersDiv.previousSibling;
	}
	
	var hiddenParametersDivChilds = hiddenParametersDiv.getElementsByTagName('DIV');
	var arfolyam_up = null;
	var arfolyam_down = null;
	var arfolyam_stagn = null;
	var _urlprefix = null;
	
	for(var h=0; h < hiddenParametersDivChilds.length; h++) {
		var child = hiddenParametersDivChilds[h];
		if(child.className == '_urlprefix') {
			_urlPrefix = child.getElementsByTagName('INPUT')[0].value;
		} else if(child.className == 'arfolyam_stagn') {
			arfolyam_stagn = child.getElementsByTagName('IMG')[0]; 
		} else if(child.className == 'arfolyam_up') {
			arfolyam_up = child.getElementsByTagName('IMG')[0];
		} else if(child.className == 'arfolyam_down') {
			arfolyam_down = child.getElementsByTagName('IMG')[0];
		}  
	}
	
	var xmlTBodyElement = xmlData.getElementsByTagName('tbody')[0];
	
	var rowElements = tBodyElement.getElementsByTagName('TR');
	if(most_traded_firstRun) {
		most_traded_rows = new Array();
	}
	
	var rowCounter = 0;
	for(var i=0; i < rowElements.length; i++) {
		if(rowElements[i].getElementsByTagName('TD').length == 0) {
			continue;
		}
		if(most_traded_firstRun) {
			most_traded_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 secCode			=  xmlCellElements[0].firstChild.nodeValue;
		var tickerURL		=  xmlCellElements[1].firstChild.nodeValue;
		var securityID		=  xmlCellElements[2].firstChild.nodeValue;
		var lastTradedPrice	=  xmlCellElements[3].firstChild.nodeValue;
		var currencyID		=  xmlCellElements[4].firstChild.nodeValue;
		var changePctg		=  xmlCellElements[5].firstChild.nodeValue;
		var valueToday		=  xmlCellElements[6].firstChild.nodeValue;
		
		var parsedChange = parseFloat(changePctg.replace(',', '.'));
		
		var cell_0 = null;
		if(parsedChange > 0) {
			cell_0 = arfolyam_up;
		} else if(parsedChange < 0) {
			cell_0 = arfolyam_down;
		} else {
			cell_0 = arfolyam_stagn;
		}
		
		var cell_1 = secCode;
		var cell_1_aElement = document.createElement('A');
		cell_1_aElement.href = _urlPrefix + tickerURL + '?security=' + securityID + '&action=CompanyProfileAction';
		cell_1_aElement.appendChild(document.createTextNode(cell_1));
		
		var cell_2 = lastTradedPrice;
		
		var cell_3 = ((parsedChange > 0) ? "+" : "") + changePctg;
		
		var cell_4 = valueToday;
		
		var thisRow = most_traded_rows[ (j % most_traded_rows.length) ].cloneNode(true);
		
		var thisInnerElements = thisRow.getElementsByTagName('DIV');
		thisInnerElements[0].appendChild(cell_0.cloneNode(true));
		thisInnerElements[1].appendChild(cell_1_aElement);
		thisInnerElements[2].innerHTML = cell_2;
		thisInnerElements[3].innerHTML = cell_3;
		thisInnerElements[4].innerHTML = cell_4;
		
		if(parsedChange > 0) {
			thisInnerElements[2].parentNode.className = 'green';
			thisInnerElements[3].parentNode.className = 'green';
			thisInnerElements[4].parentNode.className = 'green';
		} else if(parsedChange < 0) {
			thisInnerElements[2].parentNode.className = 'red';
			thisInnerElements[3].parentNode.className = 'red';
			thisInnerElements[4].parentNode.className = 'red';
		}
		
		tBodyElement.appendChild(thisRow);
	}
	
	// táblázat alján lévő összesített forgalom
	if(xmlData.getElementsByTagName('tbody').length > 1) {
		var sumVolumeToday = xmlData.getElementsByTagName('tbody')[1].getElementsByTagName('td')[0].firstChild.nodeValue;
		
		var footerDiv = portletNode.nextSibling;
		if(footerDiv.nodeType != 1) {
			footerDiv = footerDiv.nextSibling;
		}
		
		var footerInnerDivElements = footerDiv.getElementsByTagName('DIV');
		for(var k=0; k < footerInnerDivElements.length; k++) {
			if(footerInnerDivElements[k].className == 'FootDataSumVolume1') {
				if(most_traded_footer == null) {
					most_traded_footer = footerInnerDivElements[k].innerHTML; 
				}
				footerInnerDivElements[k].innerHTML = most_traded_footer.replace('%%value%%', sumVolumeToday);
				footerInnerDivElements[k].style.display = '';
			}
		}
	}
	
	most_traded_firstRun = false;
}