
/**
 * Arrays com as listas de valores dos XMLs
 * 
 * arrPlayNow => Valores das últimas estações escutadas (todos os usuários)
 * arrGridTop => Valores das estações top 10 (faves most played)
 * arrListCookie => Valores das últimas estações escutadas do próprio usuário, via cookie
 * arrListFavorites => Valores das estações favoritas do usuário
 * arrSpecialStation => Contém uma única estação, utilizado nas páginas da estação e popup.
 *
 */


CONFIRM_DELETE_STATION = "Are you sure you want to remove this station from your favorites?";
 
function startGridHome(){
	
	$(document).ready(function(){
		$.ajax({
			type: "GET",
			cache: false,
			url: URL_JS + "xml/genres_all_hit.xml",
			dataType: "xml",
			success: function(xml) {
				montaGridTop(xml,'#top10li_1');
			}
		});
	});

	$(document).ready(function(){
		$.ajax({
			type: "GET",
			cache: false,
			url: URL_JS + "xml/genres_all_fav.xml",
			dataType: "xml",
			success: function(xml) {
				montaGridTop(xml,"#top10li_2");
			}
		});
	});
}

var indexTop10 = 0;
var arrGridTop = new Array();
function montaGridTop(xml,id){
	var html = "";
	
	var top = 1;
	
	$(xml).find('estacion').each(function(){
		
		hashData = new Array(); // Reset array
		hashData['url'] = $(this).find('url').text();
		hashData['titulo'] = $(this).find('titulo').text();
		arrGridTop[indexTop10] = hashData;
				
		html += '<li><span>' + top + '</span>';
		html += '<a onClick="play(' + indexTop10 + ',\'arrGridTop\')">';
		html += $(this).find('titulo').text();
		html += '</a></li>';
		html += "\n";
		
		top++;
		indexTop10++;
		if(top > 10){
			return false;
		}
	});
	
	$(id).html(html);
}

function changeGridTop(xmlName){

	loading("#top10li_1");
	loading("#top10li_2");
	
	indexTop10 = 0; // Reinicia o indice do array top10
	
	var fileHit = URL_JS + "xml/top_" + xmlName + ".xml";
	var fileTop = URL_JS + "xml/fav_" + xmlName + ".xml";
	
	var idGridHit = "#top10li_1";
	var idGridTop = "#top10li_2";
	
	// Grid dos mais tocados
	$.ajax({
		type: "GET",
		cache: false,
		url: fileHit,
		dataType: "xml",
		success: function(xml) {
			montaGridTop(xml,idGridHit);
		}
	});
	
	// Grid dos mais favoritos
	$.ajax({
		type: "GET",
		cache: false,
		url: fileTop,
		dataType: "xml",
		success: function(xml) {
			montaGridTop(xml,idGridTop);
		}
	});
}

var nextStepPL;
function changePL(i){
	
	var totalPL = arrPlayNow.length;
	var prev = 0;
	var next = 0;
	var myFunction = "play(" + i + ",'arrPlayNow');";
	
	try{
		$("#alsop_info").html("<a onClick=\"" + myFunction + "\">" +
										arrPlayNow[i]["cancion"] + "<i> by " +
										arrPlayNow[i]["artista"] + " in " +
										arrPlayNow[i]["titulo"] + "</i> </a>"
										);
		
		prev = (i-1 < 0) ? totalPL-1 : i-1;
		next = (i+1 >= totalPL) ? 0 : i+1 ;
	
		document.getElementById("playing_p").onclick = function(){changePL(prev);};
		document.getElementById("playing_n").onclick = function(){changePL(next);};
	} catch(e){}
	
	nextStepPL = next;
}

function changePLAuto(){
	try {
		typeof(document.getElementById("playing_p").innerHTML);
		changePL(nextStepPL);
	} 
	catch (e){}
}

function playNow(){
	
	arrPlayNow = new Array(); // Reset array

	index1 = 0;
	$.ajax({
		async: false,
		cache: false,
		type: "GET",
		url: URL_JS + "xml/play_now.xml",
		dataType: "xml",
		success: function(xml) {
			$(xml).find('estacion').each(function(){
				hashData = new Array();
				hashData['cancion'] = $(this).find('cancion').text();
				hashData['artista'] = $(this).find('artista').text();
				hashData['url'] = $(this).find('url').text();
				hashData['titulo'] = $(this).find('titulo').text();
				arrPlayNow[index1] = hashData;
				index1++;
			});
		}
	});
	
	changePL(0); // Insere o primeiro resultado
}

var timeGoFirstStation = 1000;
function goStation(str, str2, str3) {

	goDown();
	setTimeout("station('" + str + "','" + str2 + "','" + str3 + "')", timeGoFirstStation);
	timeGoFirstStation = 1;
	//loadSkin(str3);
}


function play(i,arrVar){
	
	var url = eval(arrVar + "[" + i + "]['url']");
	
	var start    = url.search('play.php')+9;
	var host     = url.substr(0,(start-1));
	var qString  = '&' + url.substr(start);
	
	$.ajax({
		type: "GET",
		url: URL_JS + 'apps/xml/play.php',
		data: qString,
		dataType: "xml",
		success: function(xml) {
			$(xml).find('estacion').each(function(){
				idStation  	= $(this).find('id').text();
				playlist 	= $(this).find('playlist').text();
				title    	= $(this).find('title').text();
				title_url   = $(this).find('title_url').text();
				locationOk	= $(this).find('ubicacionpermitida').text();
			});
			
			// Inicializa o player
			goStation(title,playlist,idStation);
			sk_referrer = document.location.href;
			updateStats("station/" + title_url + "/" + idStation);
			
			// Add a referencia da estação no link do registro.terra.com
			linkRegister(idStation,title);
			//setTimeout("showStationByCookie()",2000);
		}
	});
}

function setSearchValue(str,target){
	$(target).attr('value',str);
}

var arrListCookie = new Array();
function showStationByCookie(){
	
	loading("#myradli_1");
	
	html = '';
	var ck = MyCookie.getCookie('radio_station');
	
	if(ck == ''){
		$('#myradli_1').html("");
		return false;
	}
	var qString = '&ids=' + escape(ck);
	index2 = 0;
	
	$.ajax({
		type: "GET",
		url: URL_JS + 'apps/xml/station_by_id.php',
		data: qString,
		cache: false,
		dataType: "xml",
		success: function(xml) {
			$(xml).find('estacion').each(function(){
				hashData = new Array();
				hashData['url'] = $(this).find('url').text();
				hashData['title'] = $(this).find('titulo').text();
				arrListCookie[index2] = hashData;
				
				html += '<li onmouseover="showbt(\'recent' + index2 + '\')"';
				html += 'onmouseout="hidebt(\'recent' + index2 + '\')">';
				html += '<a onclick="play(' + index2 + ',\'arrListCookie\')">';
				html += $(this).find('titulo').text();
				html += '</a>';
				html += '<img src="'+ URL_JS +'_img/bt_del.gif" id="recent' + index2 + '" class="delete" alt="Remove"';
				html += 'onclick="removeCookie(\''+ $(this).find('id').text() +'\');"/>';
				html += "</li>\n";
				
				index2++;
			});
			
			$('#myradli_1').html(html);
		}
	});
}

var arrSpecialStation = new Array();
function startSpecialStation(id){
	
	var qString = '&ids=' + id;
	
	$.ajax({
		type: "GET",
		url: URL_JS + 'apps/xml/station_by_id.php',
		data: qString,
		dataType: "xml",
		success: function(xml) {
			$(xml).find('estacion').each(function(){
				hashData = new Array();
				hashData['url'] = $(this).find('url').text();
				arrSpecialStation[0] = hashData;
			});
			
		play(0,'arrSpecialStation');
		
		}
	});
}

function userLogon(form){
	
	var rUser = form.user.value;
	var rPass = form.pass.value;
	var textDefault = "Haz login para grabar tus estaciones favoritas";
	var textInvalid = "<br /><strong style=\"color: red;\">User or password invalid.</strong>";
	
	$.ajax({
		type: "POST",
		url: URL_JS + "loginSUAT",
		data: "&user=" + rUser + "&pass=" + rPass,
		dataType: "xml",
		success: function(xml) {
			if($(xml).find('status').text() == 'OK'){
				isLogged();
			} else {
				form.user.value = "";
				form.pass.value = "";
				
				$("#myradli_2 > p").html(textDefault + textInvalid);
			}
		}
	});

	return false;
}


function userLogout(){
	
	var html = "";
	
	$.ajax({
		type: "POST",
		url: URL_JS + "logoutSUAT",
		dataType: "text",
		success: function(text) {
			if($("#myrad_2a").css("display") == "block"){
				style = "block";
			} else {
				style = "none";
			}

			html += '<div id="myradli_2" class="login" style="margin-bottom:0; display:'+ style +';">';
			html += '<p>Haz login para grabar tus estaciones favoritas</p>';

			html += '<form action="#1" method="post" onsubmit="return userLogon(this);">';
			html += '<table cellspacing="0">';
			html += '<tr>';
			html += '<th>Usu&aacute;rio:</th>';
			html += '<th>Contrase&ntilde;a:</th>';
			html += '</tr>';
			html += '<tr>';
			html += '<td><input type="text" name="user" class="cp"/></td>';
			html += '<td><input type="password" name="pass" class="cp"/></td>';
			html += '</tr>';
			html += '<tr>';
			html += '<td colspan="2"><br>';
			html += '<input type="image" src="'+URL_JS+'_img/bt_login.png" />';
			html += '</td>';
			html += '</tr>';
			html += '</table>';
			html += '</form>';
			html += '<br>Not registered? <a href="http://php.terra.com/registro">Sign up!</a>';
			html += '</div>';
			
			$("#myradli_2").replaceWith(html);
		}
	});
}

var arrListFavorites = new Array();
function isLogged(){
	
	var userLogged = "";
	var index3 = 0;
	var html = "";
	var style = "";
	
	$.ajax({
		type: "GET",
		async: false,
		cache: false,
		url: URL_JS + 'apps/userinfo.php',
		dataType: "xml",
		success: function(xml) {
			if($(xml).find('status').text() == 'Y'){
				userLogged = $(xml).find('login').text();
			} else {
				userLogged = false;
			}
		}
	});
	
	if(userLogged != false){
		
		loading("#myradli_2");
		
		var qString = '&login=' + userLogged;
	
		$.ajax({
			type: "GET",
			cache: false,
			url: URL_JS + 'apps/favorites/fav_stations_by_login.php',
			data: qString,
			dataType: "xml",
			success: function(xml) {
				if($("#myrad_2a").css("display") == "block"){
					style = "block";
				} else {
					style = "none";
				}
				
				html += '<ul id="myradli_2" style="display: '+ style +';">';
				html += "If you&#039;re not "+ userLogged +", ";
				html += "<a onclick=\"userLogout();\" style=\"text-decoration: underline;\">click here</a> to log out.<br /><br />";
				
				if($(xml).find('titulo').text() != ""){
					
					$(xml).find('estacion').each(function(){
						hashData = new Array();
						hashData['url'] = $(this).find('url').text();
						hashData['title'] = $(this).find('titulo').text();
						arrListFavorites[index3] = hashData;
						
						html += '<li onmouseover="showbt(\'fav' + index3 + '\')"';
						html += 'onmouseout="hidebt(\'fav' + index3 + '\')">';
						html += '<a onclick="play(' + index3 + ',\'arrListFavorites\')">';
						html += $(this).find('titulo').text();
						html += '</a>';
						html += '<img src="'+ URL_JS +'_img/bt_del.gif" id="fav' + index3 + '" class="delete" alt="Remove"';
						html += 'onclick="removeFavorite(\''+ $(this).find('id').text() +'\', \''+ userLogged + '\');"/>';
						html += "</li>\n";
						
						index3++;
					});
				} else {
					html += "You have no favorite stations yet.";
				}
				
				html += '</ul>';
				
				$("#myradli_2").replaceWith(html);
				//mudatab("myrad");
			}
		});
	}
}

function linkFriendly(str){
	patterns = new Array('/', '&amp;', '&', ' ', '*');
	
	for(i=0;i<patterns.length;i++){
		str = str.replace(patterns[i], '-');
	}
	return str.toLowerCase();
}

function linkRegister(idStation, strStation){
	
	var link;
	
	link  = "http://php.terra.com/registro/?l=en&service=Radio%20Terra";
	link += "&cb=http://radio.terra.com/station" + "/" + linkFriendly(strStation) + "/" + idStation;
	
	$("#a_reg").attr("href",link);
}

function removeCookie(idStation){
	
	var ck = MyCookie.getCookie("radio_station");
	var ckNew = "";
	var arrValues = ck.split(";");
	
	for(var i=0; i<arrValues.length; i++){
		if(arrValues[i] == idStation){
			arrValues.splice(i,1);
		}
	}
	
	ckNew = escape(arrValues.join(";"));
	MyCookie.setCookie("radio_station", ckNew, 30);

	showStationByCookie();
}

function removeFavorite(idStation, user){
	
	if(confirm(CONFIRM_DELETE_STATION)){
		var qString = "&station=" + idStation + "&user=" + user + "&type=d";
		
		$.ajax({
			type: "GET",
			url: URL_JS + 'apps/favorites/favorites.php',
			dataType: "xml",
			data: qString,
			success: function(xml) {

			}
		});
		
		isLogged();
	}
}

function loading(DOMelement){
	var load = "<div class=\"tgloading\"></div>";
	$(DOMelement).html(load);
}

/**
 * Funções para carregar o conteúdo na div principal
 */

var inProgress = false;

function showGenre(idGenre){
	if(!inProgress){
	
		loading(".cleft-full");
		
		$.ajax({
			beforeSend: function(){ inProgress = true; },
			type: "GET",
			url: URL_JS + "genres.php/none/" + idGenre + "/a?div=Y",
			dataType: "text",
			success: function(html) {
				$(".cleft-full").html(html);
				getGenresResults(idGenre);
				updateStats("genres/genre/" + idGenre);
				inProgress = false;
			}
		});
	}
}

function showGenrePop(idGenre){
	if(!inProgress){
	
		loading(".columns");
		
		$.ajax({
			beforeSend: function(){ inProgress = true; },
			type: "GET",
			url: URL_JS + "genres.php/none/" + idGenre + "/a?div=Y&popup=Y",
			dataType: "text",
			success: function(html) {
				$(".columns").html(html);
				getGenresResults(idGenre);
				updateStats("genres/genre/" + idGenre);
				inProgress = false;
			}
		});
	}
}

function showSpecials(){
	if(!inProgress){
	
		loading(".cleft-full");
		
		$.ajax({
			beforeSend: function(){ inProgress = true; },
			type: "GET",
			url: URL_JS + "specials/a?div=Y",
			dataType: "text",
			success: function(html) {
				$(".cleft-full").html(html);
				if(!$(".mmusic300").html()){
					$.get(URL_JS+"specials/a?div=R", function(data){
						$(".cright").append(data);
					});
				}
				updateStats("specials");
				inProgress = false;
			}
		});
	}
}

function showSpecial(titleUrl, specialId){
	if(!inProgress){
	
		loading(".cleft-full");
		
		$.ajax({
			beforeSend: function(){ inProgress = true; },
			type: "GET",
			url: URL_JS + "special/" + titleUrl + "/" + specialId + "/a?div=Y",
			dataType: "text",
			success: function(html) {
				var recPlayed = $('#myradli_1').html();
				$(".cleft-full").html(html);
				updateStats("special/" + titleUrl + "/" + specialId);
				inProgress = false;
			}
		});
	}
}

function submitSearchForm(form){
	
	var divMain;
	var popUpFlag;

	if(form.from_popup == undefined){
		divMain = ".cleft-full";
		popUpFlag = "";
	} else {
		divMain = ".columns";
		popUpFlag = "&popup=Y";
	}
	
	loading(divMain);
	
	if(!inProgress){
		
		var termSearch  = form.sradios.value;
		try{
			var genreSearch = form.value_genre_search.value;
		} catch(e){
			var genreSearch = form.value_genre_search_2.value;
		}
		
		$.ajax({
			beforeSend: function(){ inProgress = true; },
			type: "GET",
			url: URL_JS + "search.php/" + termSearch + "/" + genreSearch + "/a?div=Y" + popUpFlag,
			dataType: "text",
			success: function(html) {
				$(divMain).html(html);
				getSearchResults(termSearch,genreSearch);
				updateStats("search/" + termSearch + "/" + genreSearch);
				inProgress = false;
			}
		});
	}
	
	return false;
}

function closePainel(){
		
		if(!inProgress){
		
		loading(".cleft-full");
		
		$.ajax({
			beforeSend: function(){ inProgress = true; },
			type: "GET",
			url: URL_JS + "portada.php/a?div=Y",
			dataType: "text",
			success: function(html) {
				$(".cleft-full").html(html);
				$(".mmusic300").remove();
				$(".combobox").combobox();
				$(".scrolling").scrolling();
				$(".clickout, .cmb-value").initClickOut();
				$(".tabs").tabs();
				isLogged();
				startGridHome();
				playNow();
				updateStats();
				loadPLBehavior();
				inProgress = false;
			}
		});
	}
}

function closePainelPop(){
		
		if(!inProgress){
		
		loading(".columns");
		
		$.ajax({
			beforeSend: function(){ inProgress = true; },
			type: "GET",
			url: URL_JS + "pop.php",
			dataType: "html",
			success: function(htm) {
				$(".columns").html($(htm).find(".columns").html());
				startGridHome();
				updateStats("pop");
				inProgress = false;
			}
		});
	}
}

function loadSkin(idStation){
	
	var style = "";
	$.ajax({
		type: "GET",
		url: URL_JS + "_skin/skin_" + idStation + ".css",
		dataType: "text",
		success: function(text) {
			$("#skin").html("<style> " + text + " </style>");
		},
		error: function() {
			style  = "<style> ";
			style += "body { background: #fff; }";
			style += ".flash { background: url("+ URL_JS +"_img/bg_player.png) repeat-x; }";
			style += " </style>";
			$("#skin").html(style);
		}
	});
}

var sk_url
function updateStats(page){

	/** Terra Stats **/
	if(page != undefined){
		sk_url = URL_JS + page;
	} else {
		sk_url = document.location.href;
	}
	
	$.getScript(URL_JS + "_js/skstats_terraus.js");
	
	/** Comscore **/
	/* var __cs_c1 = 2;
	var __cs_c2 = "3000033";
	var __cs_c3 = "";
	var __cs_c4 = document.location.href;
	var __cs_c5 = "";
	var __cs_c6 = "";
	var __cs_c15 = "";
	var __cs_params = ["c1=", __cs_c1, "&c2=", __cs_c2, "&c3=", __cs_c3, "&c4=", __cs_c4, "&c5=", __cs_c5, "&c6=",__cs_c6, "&c15=", __cs_c15].join('');
	$.getScript("http://b.scorecardresearch.com/beacon.js?"+ __cs_params); */
	
	/** Quantcast **/
	_qoptions={
		qacct:"p-70Xy1oKB4EpuQ"
	};
	$.getScript("http://edge.quantserve.com/quant.js");

	/** Google Analytics **/
	$.getScript("http://www.google-analytics.com/ga.js");
	try {
		var pageTracker = _gat._getTracker("UA-5622546-29");
		pageTracker._trackPageview();
	} catch(err) {}
	
	/** Certifica **/
	/*var terra_info_service = "PubUS";
	var terra_info_channel = "us.entretenimiento.musica";
	var terra_info_type = "cap";
	var terra_info_channeldetail = "radio";
	var terra_info_id = "home";
	var terra_stats_idCrtfc = 26252;
	var terra_stats_regCLK = 0;
	
	$.getScript("http://rtsmoc.terra.com.mx/js/metrics_begin.js");
	$.getScript("http://rtsmoc.terra.com.mx/js/metrics_end.js");*/
}


function loadPLBehavior(){
	$(".l a").mouseover(function(){
		clearInterval(PLIntervalId);
	});
	$(".l a").mouseout(function(){
		PLIntervalId = setInterval("changePLAuto()",6000); // 6 seg
	});

	$("#alsop_info").mouseover(function(){
		clearInterval(PLIntervalId);
	});
	$("#alsop_info").mouseout(function(){
		PLIntervalId = setInterval("changePLAuto()",6000); // 6 seg
	});
}

loadPLBehavior();
showStationByCookie();
