/**
 * @package selftradeuk
 * @subpackage news
 * @modif Emmanuel VAISSE Tue Jun 08 11:37:04 2010
 */


/**
 * AJax news display fetched by id and search parameters.
 * 
 * Get news or quote by id. if it's a new, it's will be
 * writen in #newsContent, if it's a quote will be displayed
 * in #quoteContent
 *
 * @author unknown,evaisse
 * 
 * @param idNews {int}
 * @param symboles {object}
 * @param hash {}
 * @param newsList {string} a php-serialized list of search parameters
 * 
 * @return void
 */
var lastSelected = 1;
function updateNewsContent(idNews, symboles, hash, newsList) {
	var params = {
		"AjaxRequestUniqueId": Math.random(0,1000)*Math.random(0,500)
	};
	
	
	if(hash && hash != ''){
		var tab = hash.substring(1, hash.length).split('&');
						
		for(i=0; i<tab.length; i++){
			var variable = tab[i].split('=');
			if(variable.length == 2){
				if(variable[0] == 'idNews')
					idNews = variable[1];
			}
		}
	}

	if(idNews != '') params.idNews = idNews;
	if(symboles != '') params.symboles = symboles;
	//if( newsList && newsList != '') params +='&'+newsList;
	
	// this is used to highlight the selected news item
	var curr = document.location.hash.substring(1,document.location.hash.length);
	curr = curr.split('&');
	var currId = '';
	
	for(i=0; i<curr.length; i++){
		var variable = curr[i].split('=');
		if(variable.length == 2){
			if(variable[0] == 'idNews')
				currId = variable[1];
		}
	}

	if (document.getElementById('ID'+currId)) {
		document.getElementById('ID'+currId).className = "";
	}
	if (document.getElementById('ID'+idNews)) {
		document.getElementById('ID'+idNews).className = "highlight";
	}
	// END lookup of selected news item
	
	var jsonRequest = new Request({url: '/ajax/news.phtml', onSuccess: function(json){
		var result = false;
		try{ eval("var result = " + json + ""); } catch(e) {}
		if( result && result.news ) {
			$('newsContent').innerHTML=result.news;
			$('newsContent').style.display='block';
		}
		else{
			$('newsContent').innerHTML='';
			$('newsContent').style.display='none';

		}
		if( result && result.quote && $('quoteContent') ) {
			$('quoteContent').innerHTML=result.quote;
			$('quoteContent').style.display='block';
		} else if( $('quoteContent') ) {
			$('quoteContent').innerHTML='';
			$('quoteContent').style.display='none';
		}
		
		document.location.hash = 'idNews=' + idNews;
	}}).get(params);

}

function updateNewsPages(idPage, newsList, market_data) {

	var params = {
		"AjaxRequestUniqueId": Math.random(0,1000)*Math.random(0,500)
	};
	
	if(idPage != '') params.page = idPage;
	
	if (document.getElementById('page-'+lastSelected)) {
		document.getElementById('page-'+lastSelected).innerHTML = '<a href="javascript:updateNewsPages(\'' + lastSelected + '\',\'' + newsList + '\');">' + lastSelected + '</a>';
	}
	if (document.getElementById('page-'+idPage)) {
		document.getElementById('page-'+idPage).innerHTML = idPage;
	}
	// END lookup of selected news page item
		
	var jsonRequest = new Request({url: '?', onSuccess: function(json){
		var result = false;
		try{ eval("var result = " + json + ""); } catch(e) {}
		if( result && result.news ) {
			$('newsList').innerHTML=result.news;
			$('newsList').style.display='block';
		}
		else{
			try {
				$('newsList').innerHTML='';
				$('newsList').style.display='none';
			} catch(e) {}
		}
		if( result && result.idNews){
			if (market_data == true){

				updateMarketDataNewsContent(result.idNews, '', '', newsList);
				
			}
			else {

				if (newsList=="/market-data/etfs/etf-news.php?" || newsList=="/market-data/etcs/etc-news.php?" || newsList=="/market-data/funds/fund-news.php?")
				{
					updateMarketDataNewsContent(result.idNews, '', '', newsList);
				}
				else
				{
					updateNewsContent(result.idNews, '', '', newsList);
				}
				
			}
		} else{
			try {
				$('newsContent').innerHTML='';
				$('newsContent').style.display='none';
			} catch(e) {}
		}
		
		document.location.hash = 'idPage=' + idPage;
	}}).get(params);
	lastSelected = idPage;
}





/**
 * update subcontent of select form elements on click
 *
 */
function updateSelectSubject(category) {

	innerHTML = '<select name="searchNews[subject]" id="searchNews-subject"><option value="">&nbsp;<\/option>';

	if(category == ''){
		for(category in categories){
			innerHTML += '<optgroup label="'+category.charAt(0).toUpperCase()+category.substr(1)+'">';
			for(subject in categories[category])
				innerHTML += '<option value="'+subject+'">'+categories[category][subject]+'<\/option>';
			innerHTML += '<\/optgroup>';
		}
	}
	else{
		for(i in categories[category])
			innerHTML += '<option value="'+i+'">'+categories[category][i]+'<\/option>';

		innerHTML += '<\/select>';
	}

	$('select-subject').innerHTML = innerHTML;
}

/**
 * This function is used to update the content of market data news.
 */
function updateMarketDataNewsContent(idNews, symboles, hash, newsList) {
	var params = {
		"AjaxRequestUniqueId": Math.random(0,1000)*Math.random(0,500)
	};
	
	
	if(hash && hash != ''){
		var tab = hash.substring(1, hash.length).split('&');
						
		for(i=0; i<tab.length; i++){
			var variable = tab[i].split('=');
			if(variable.length == 2){
				if(variable[0] == 'idNews')
					idNews = variable[1];
			}
		}
	}
   
	var url = '?';
	if(idNews != '') params.idNews = idNews;
	if(symboles != '') params.symboles = symboles;
	if( newsList && newsList != '') url = newsList;
	
	// this is used to highlight the selected news item
	var curr = document.location.hash.substring(1,document.location.hash.length);
	curr = curr.split('&');
	var currId = '';
	
	for(i=0; i<curr.length; i++){
		var variable = curr[i].split('=');
		if(variable.length == 2){
			if(variable[0] == 'idNews')
				currId = variable[1];
		}
	}

	if (document.getElementById('ID'+currId)) {
		document.getElementById('ID'+currId).className = "";
	}
	if (document.getElementById('ID'+idNews)) {
		document.getElementById('ID'+idNews).className = "highlight";
	}
	// END lookup of selected news item
	
	var jsonRequest = new Request({url: url, onSuccess: function(json){
		var result = false;
		try{ eval("var result = " + json + ""); } catch(e) {}
		if( result && result.news ) {
			$('newsContent').innerHTML=result.news;
			$('newsContent').style.display='block';
		}
		else{
			$('newsContent').innerHTML='';
			$('newsContent').style.display='none';

		}
		if( result && result.quote && $('quoteContent') ) {
			$('quoteContent').innerHTML=result.quote;
			$('quoteContent').style.display='block';
		} else if( $('quoteContent') ) {
			$('quoteContent').innerHTML='';
			$('quoteContent').style.display='none';
		}
		
		document.location.hash = 'idNews=' + idNews;
	}}).get(params);

}

