/**
 * Funções para a página de busca
 */

var MAX_ROWS = 100; // Total de registros retornados na pesquisa.

var inProgressSearch1 = false;
var inProgressSearch2 = false;
var conn;

function getSearchResults(term, genre){
	
	if( (!inProgressSearch1) && (!inProgressSearch2) ){
	
		$("#r_regs").html("0");
		$("#r_total").html("");
		
		var indexHit = 0;
		var indexAlp = 0;
		var qStringHit = '';
		
		/**
		 * XML dos resultados - Ordenação por mais tocados
		 */
		
		qStringHit = "&term=" + term + "&row=" + MAX_ROWS;
		qStringHit += "&order=hit";
		qStringHit += "&genre=" + genre;
		
		conn = $.ajax({
			beforeSend: function(){ arrSearchDataHit = new Array(); inProgressSearch1 = true; },
			type: "GET",
			url: URL_JS + 'apps/search/search.php',
			data: qStringHit,
			dataType: "xml",
			success: function(xml) {
				totalRowsHit = $(xml).find('estaciones').attr('total');
				$(xml).find('estacion').each(function(){
					hashData = new Array();
					hashData['top'] = $(this).attr('top');
					hashData['titulo'] = $(this).find('titulo').text();
					hashData['descricao'] = $(this).find('descricao').text();
					hashData['url'] = $(this).find('url').text();
					
					hashData['generos'] = '';
					$(this).find('genero').each(function(){
						if($(this).attr('id') != ''){
						linkG = "showGenre(" + $(this).attr('id') + ")";
						hashData["generos"] += '<a onclick="'+ linkG +'">' + $(this).text() + '</a>, ';
						}
					});
					hashData['generos'] = hashData['generos'].substr(0,(hashData['generos'].length -2));
					
					hashData['playlist'] = '';
					$(this).find('escuchado').each(function(){
						hashData['playlist'] += '<p>' + $(this).text() + '</p>';
					});
					
					arrSearchDataHit[indexHit] = hashData;
					
					indexHit++;
				});
				
				showResultsSearch(0, totalRowsHit, 0);
				inProgressSearch1 = false;
			},
			complete: function(){ inProgressSearch1 = false; }
		});
		
		/**
		 * XML dos resultados - Ordenação alfabética
		 */
		
		qStringHit = "&term=" + term + "&row=" + MAX_ROWS;
		qStringHit += "&order=alp";
		qStringHit += "&genre=" + genre;
		
		$.ajax({
			beforeSend: function(){ arrSearchDataAlp = new Array(); inProgressSearch2 = true; },
			type: "GET",
			url: URL_JS + 'apps/search/search.php',
			data: qStringHit,
			dataType: "xml",
			success: function(xml) {
				totalRowsAlp = $(xml).find('estaciones').attr('total');
				$(xml).find('estacion').each(function(){
					hashData = new Array();
					hashData['top'] = $(this).attr('top');
					hashData['titulo'] = $(this).find('titulo').text();
					hashData['descricao'] = $(this).find('descricao').text();
					hashData['url'] = $(this).find('url').text();
					
					hashData['generos'] = '';
					$(this).find('genero').each(function(){
						linkG = "showGenre(" + $(this).attr('id') + ")";
						hashData["generos"] += '<a onclick="'+ linkG +'">' + $(this).text() + '</a>, ';
					});
					hashData["generos"] = hashData["generos"].substr(0,(hashData["generos"].length -2));
					
					hashData["playlist"] = "";
					$(this).find("escuchado").each(function(){
						hashData["playlist"] += "<p>" + $(this).text() + "</p>";
					});
					
					arrSearchDataAlp[indexAlp] = hashData;
					
					indexAlp++;
				});
				
				showResultsSearch(0, totalRowsAlp, 1); 
				inProgressSearch2 = false;
			},
			complete: function(){ inProgressSearch2 = false; }
		});
	
	}
}

function showResultsSearch(start,totalRows,arrInfo){
	
	var regsShow 	= 10;	// Nro. de registros exibidos em cada laço
	var html 		= "";
	var info 		= new Array('arrSearchDataHit', 'arrSearchDataAlp');
	var regsTotal 	= totalRows;
	var nextStep	= ((start + regsShow) > regsTotal) ? regsTotal : start + regsShow;
	var regs 		= Number($('#r_regs').html());
	var regsNew 	= ((regs + regsShow) > regsTotal) ? regsTotal : regs + regsShow;
	
	if(start != regsTotal){
		
		$('#r_total').html(regsTotal);
		
		if( (arrSearchDataHit.length > 0) && (arrSearchDataAlp.length > 0) ){
			$('#r_regs').html(regsNew);
		}
		
		// Carrega uma aba separadamente
		if(arrInfo != undefined){
			for(i=0; i<nextStep; i++){
			
				html += '<div class="item">';
				html += '<div class="n"><a onClick="play(' + i + ',\''+info[arrInfo]+'\');">';
				html += '<img src="'+URL_JS+'_img/bg_play.png" alt="play"></div></a>';
				html += '<div class="t">';
				html += '<h2><a onClick="play(' + i + ',\''+info[arrInfo]+'\');">';
				html += eval(info[arrInfo] + '['+ i +']'+'[\'top\']') + '.&nbsp;';
				html += eval(info[arrInfo] + '['+ i +']'+'[\'titulo\']');
				html += '</a></h2>';
				html += eval(info[arrInfo]+'['+ i +']'+'[\'descricao\']');
				html += '<div class="playl">';
				var str = "";
				str = eval(info[arrInfo]+'['+ i +']'+'[\'playlist\']');
				if (str != ""){
					html += '<h3>Playlist:</h3>';
					html += str;
				}
				html += '<div class="sgenres">Genres: ' + eval(info[arrInfo]+'['+ i +']'+'[\'generos\']') + '</div>';
				html += '</div>';
				html += '</div>';
				html += '</div>';
			}
			
			if(nextStep != regsTotal){
				html += '<div class="more">';
				html += '<a onClick="showResultsSearch('+ nextStep +','+ totalRows +');"><img src="'+ URL_JS +'_img/bt_morelist.png" alt="More"/></a>';
				html += '</div>';
			}
			
			if(info[arrInfo] == 'arrSearchDataHit'){
				targetTag = '#sresultli_1';
			} else {
				targetTag = '#sresultli_2';
			}

			$(targetTag).html(html);
		} 
		// Carrega abas simultaneamente
		else {
			for(j=0; j < info.length; j++){
				
				html = '';
				
				for(i=0; i<nextStep; i++){

					html += '<div class="item">';
					html += '<div class="n"><a onClick="play(' + i + ',\''+info[j]+'\');">';
					html += '<img src="'+URL_JS+'_img/bg_play.png" alt="play"></a></div>';
					html += '<div class="t">';
					html += '<h2><a onClick="play(' + i + ',\''+info[j]+'\');">';
					html += eval(info[j] + '['+ i +']'+'[\'top\']') + '.&nbsp;';
					html += eval(info[j]+'['+ i +']'+'[\'titulo\']');
					html += '</a></h2>';
					html += eval(info[j]+'['+ i +']'+'[\'descricao\']');
					html += '<div class="playl">';
					var str = "";
					str = eval(info[j]+'['+ i +']'+'[\'playlist\']');
					if (str != ""){
						html += '<h3>Playlist:</h3>';
						html += str;
					}
					html += '<div class="sgenres">Genres: ' + eval(info[j]+'['+ i +']'+'[\'generos\']') + '</div>';
					html += '</div>';
					html += '</div>';
					html += '</div>';
				}
				
				if(nextStep != regsTotal){
					html += '<div class="more">';
					html += '<a onClick="showResultsSearch('+ nextStep +','+ totalRows +');"><img src="'+ URL_JS +'_img/bt_morelist.png" alt="More"/></a>';
					html += '</div>';
				}
				
				if(info[j] == 'arrSearchDataHit'){
					targetTag = '#sresultli_1';
				} else {
					targetTag = '#sresultli_2';
				}
				
				$(targetTag).html(html);
			}
		}
	}
}

function stop(){
	if(conn){
		conn.abort();
		inProgressSearch1 = false;
	}
}

$(document).ready(function(){		
	$('.itm-countries.itm-layer').mouseover(function(){
		$('.ctn-layer.menu-countries').css({"display":"block"});
	});
	$('.ctn-layer.menu-countries').mouseout(function(){
		$('.ctn-layer.menu-countries').css({"display":"none"});
	});	
});