var ajaxLoad = function(){
	var idAbaSelecionada = J('ul.nav_tabs li.selected').attr('id');
	//Captura o valor do atributo href do link clicado;
	var carga = J(this).attr('href');
	//Captura qual li contem o link clicado;
	var tab = J(this).parent('li');
	
	var classe = J(this).attr('class');

	//Se não possuir a classe, faz uma chacagem para ver se o valor da variavel carga é diferente de '#', 'null' e 'undefined';
	if(carga != '#' && carga !='null' && carga !='undefined'){
	
		J(".list_noticias").html('Carregando...');
		//Carrega a página através do load do jQuery
		J(".list_noticias").loadEncode(carga, 'UTF-8', {ATTRIBUTE_TAGREQUEST:window.location.pathname},function(){
			
			// adicionando formatação
			canalSelecionado = J('#topo').attr('class');
			if(classe!='canal_1' || classe!='canal_2' || classe!='canal_4'){		
				if(canalSelecionado!=''){
					J('div.canais ul li').removeClass('selecionado');
					J('div.canais ul li a.'+canalSelecionado).parent('li').addClass('selecionado');
				}
			}else{
				J('div.canais ul li').removeClass('selecionado');
				J('div.canais ul li:first').addClass('selecionado');
			}
			
			J('.news li').removeClass('selected');								
			J('#'+idAbaSelecionada).addClass('selected');
			
			// adicionando eventos
			J('div.canais ul li a[rel=load]').unbind();
			J('div.canais ul li a[rel=load]').click(function(){
				J('#topo').attr('class',J(this).attr('class'));
			}).click(ajaxLoad);
			J('ul#lista_dia li a[rel=load]').unbind();
			J('ul#lista_dia li a[rel=load]').click(ajaxLoad);
			navegacaoCalendario();
			initModal();
			
			J(".list_noticias").not("#showme").fadeIn();
		});
	}
	return false;
}


function ultimo_dia(mes,ano){
	if(mes==1||mes==3||mes==5||mes==7||mes==8||mes==10||mes==12) return 31;
	if(mes==4||mes==6||mes==9||mes==11) return 30;
	if(mes==2) if(ano%4==0) return 29;	else return 28; 
}

var nomeMes = new Array(13);
nomeMes[1]="Janeiro";
nomeMes[2]="Fevereiro";
nomeMes[3]="Março";
nomeMes[4]="Abril";
nomeMes[5]="Maio";
nomeMes[6]="Junho";
nomeMes[7]="Julho";
nomeMes[8]="Agosto";
nomeMes[9]="Setembro";
nomeMes[10]="Outubro";
nomeMes[11]="Novembro";
nomeMes[12]="Dezembro";		

var hoje = new Date();

var mes = hoje.getMonth() + 1;
var ano = hoje.getFullYear();

var diaOriginal = hoje.getDate();
var mesOriginal = hoje.getMonth() + 1;
var anoOriginal = hoje.getFullYear();

function preencher_calendario(){

	// colocando ou alterando título do calendário
	var titulo = nomeMes[mes]+" "+ano;
	J('p.nome_mes').html(titulo);
	
	// Apagando dias do calendário (caso o usuario esteja avancando / voltando o mes)
	J('ul#lista_dia li.dia_vazio').remove();							
	J('ul#lista_dia li.dia').remove();
	
	// Obtendo o dia da semana do primeiro dia do mês
	var primeiro = new Date();
	primeiro.setFullYear(ano,mes-1,1);
	var inicioSemana = primeiro.getDay();
	
	// Preenchendo dias vazios no calendário
	for(i=0;i<inicioSemana;i++){ J('ul#lista_dia').append("<li class='dia_vazio'>&nbsp;<\/li>"); }
	// preenchendo dias do mes
	for(i=1;i<=ultimo_dia(mes,ano);i++){ 
		J('ul#lista_dia').append("<li class='dia dia_n"+i+"'><\/li>");		
		// verificando se a data preenchida é hoje
		if(i==diaOriginal && mes == mesOriginal && ano == anoOriginal){
			J('ul#lista_dia li.dia_n'+i).addClass('hoje');
		} 
		// adicionando conteudo
		achouDia = false;
		href = '';
		for(cont=0;cont<diasProgramacao.length && achouDia == false; cont++){
			if(i == diasProgramacao[cont][0] && mes == diasProgramacao[cont][1] && ano == diasProgramacao[cont][2]){
				achouDia = true;
				href = diasProgramacao[cont][3];
			}
		}
		if(achouDia==true){
			J('ul#lista_dia li.dia_n'+i).html('<a href="'+href+'" rel="load">'+i+'</a>');
		} else {
			J('ul#lista_dia li.dia_n'+i).html(i);
		}
	}
	
	// Verificando se deve ter o botão "próximo mês"
	if(mes == mesOriginal && ano == anoOriginal){
		if( diaOriginal+7 > ultimo_dia(mes,ano) ){
			J('div#calendario a.bt_avancar_mes').show();
		} else {
			J('div#calendario a.bt_avancar_mes').hide();
		}
	} else { 
		if((mes <= mesOriginal && ano == anoOriginal) || (ano < anoOriginal)){
			J('div#calendario a.bt_avancar_mes').show();
		} else {
			J('div#calendario a.bt_avancar_mes').hide();		
		}
	}
		
	// Verificando se deve ter o botão "mês anterior"
	if((mes < mesOriginal && ano == anoOriginal)|| (ano < anoOriginal)){
		J('div#calendario a.bt_voltar_mes').hide();
	} else { 
		J('div#calendario a.bt_voltar_mes').show();
	}
	J('ul#lista_dia li a[rel=load]').click(ajaxLoad);
}		

function navegacaoCalendario(){
	// FUNCÕES DO CALENDÀRIO
	J('a.outra_data').unbind();
	J('a.outra_data').click(function(){
		J('div#calendario').show();
		return false;
	});
	
	J('div#calendario a.fechar').unbind();
	J('div#calendario a.fechar').click(function(){
		J('div#calendario').hide();
		return false;
	});
	
	J('div#calendario a.bt_voltar_mes').unbind();
	J('div#calendario a.bt_voltar_mes').click(function(){			
		mes--;
		if(mes == 0){
			mes = 12;
			ano--;
		}
		preencher_calendario();
		return false;
	});				
	
	J('div#calendario a.bt_avancar_mes').unbind();
	J('div#calendario a.bt_avancar_mes').click(function(){			
		mes++;
		if(mes == 13){
			mes = 1;
			ano++;
		}
		preencher_calendario();
		return false;
	});	
}



var abaClick = function(){
	J('#topo').removeClass();
	var carga = J(this).attr('href');
	var tab = J(this).parent('li');
	if(!tab.hasClass('selected')){
		if(carga != '#' && carga !='null' && carga !='undefined'){
			J(".list_noticias").html('Carregando...');
			J(".list_noticias").loadEncode(carga, 'UTF-8', {ATTRIBUTE_TAGREQUEST:window.location.pathname},function(){
				
				// adicionando formatação
				canalSelecionado = J('#topo').attr('class');
				if(canalSelecionado!=''){
					J('div.canais ul li').removeClass('selecionado');
					J('div.canais ul li a.'+canalSelecionado).parent('li').addClass('selecionado');
				}
				// adicionando eventos
				J('div.canais ul li a[rel=load]').unbind();
				J('div.canais ul li a[rel=load]').click(function(){
					J('#topo').attr('class',J(this).attr('class'));
				}).click(ajaxLoad);
				
				J('ul#lista_dia li a[rel=load]').unbind();
				J('ul#lista_dia li a[rel=load]').click(ajaxLoad);
				navegacaoCalendario();
				
				J('.news li').removeClass('selected');
				tab.addClass('selected');

			});
		}
	}
	J('.news li a[rel=programacao]').unbind();
	J('.news li a[rel=programacao]').click(abaClick);
	return false;
}




J(document).ready(function(){

	// ABAS 
	J(".list_noticias").hide();	
	J('.tabs_content div:first').show();
	J('.news li:first-child').addClass('selected');
	J('.news li a[rel=programacao]').click(abaClick);	
	
	preencher_calendario(mes,ano);
	navegacaoCalendario();	
	
	J('div.canais ul li a[rel=load]').click(function(){
		J('#topo').attr('class',J(this).attr('class'));
	}).click(ajaxLoad);
	J('ul#lista_dia li a[rel=load]').click(ajaxLoad);
	
	J('a.avise').click(function(){
		J(this).parent().hide();
		J(this).parent().next().show();
		return false;
	});
	
	J('form.aviso').submit(function(){
		var form = J(this);
		var parametros = 'alert.id.grade.id='+J(this).find('.programa').val();
		if(J(this).find('.avise_email').is(':checked')) parametros += '&alert.email=true';
		if(J(this).find('.avise_celular').is(':checked')) parametros += '&alert.sms=true';
		if( J(this).find('.avise_email').is(':checked') || J(this).find('.avise_celular').is(':checked')){
			J.ajax({
				url:'/programacao/alertas.addAlert.ajax.logic',
				type:'GET',
				data: parametros,
				complete: function(msg){
					if (msg.responseText.indexOf('true') > -1) {
						form.hide();
						form.after('<p class="avise_sucesso">Pode ficar despreocupado que a ESPN vai te avisar sobre quando faltar 1 hora para o programa começar.</p>');
						form.remove();
					} else {
						alert('Não foi possível incluir o seu alerta.')
					}	
				}		
			});
		} else {
			alert('Selecione seu e-mail ou celular.');
		}
		return false;
	})
});