var imgPath = '../sys/img/promocoes/';
var regional = getCookie('regional').toLowerCase();
var datetime = new Date();
var dataAtual = parseInt(datetime.getFullYear() + '' + ((datetime.getMonth() + 1) > 9 ? (datetime.getMonth() + 1) : '0' + (datetime.getMonth() + 1)) + '' + (datetime.getDate() > 9 ? datetime.getDate() : '0' + datetime.getDate()));

/***
** Monta Promoções com JSON v1.0
** Author: Marcus Vinicius Corrêa
** Parameters: 	filtraPlataforma = nome da plataforma pela qual sera filtrada as promocoes
**									(se for mais de 1, pode separa-las por VIRGULA. Exemplo: 'Pré,Controle,Concursos')
**				pagina = o numero exato da pagina
***/
function fnPromoDestComJSON(filtraPlataforma,pagina){
	var promocoes = json.promocoes;
	
	var itensPorPag = 8;
	var pag = pagina != undefined && pagina > 0 ? pagina : 1;
	var pagFim = pag * itensPorPag;
	var pagInicio = (pagFim - itensPorPag) + 1;
	
	//-- Remove os elementos da DIV de promoções
	$('#promocoes_content').find('.destaque').remove();
	
	var plataformas = (filtraPlataforma != undefined) && (filtraPlataforma.length > 0) ? filtraPlataforma.split(',') : null;
	
	var cont = 1;
	var first = 0;
	for(i in promocoes){
		//-- Verifica se a promoção pertence a regional do usuario
		if(promocoes[i].regiao != 'all' && promocoes[i].regiao.indexOf(regional) == -1)
			continue;
		
		var dataInicio = new Date(promocoes[i].inicio.split('/')[2],promocoes[i].inicio.split('/')[1]-1,promocoes[i].inicio.split('/')[0]);
		var dataFim = '';
		var inicio = parseInt(dataInicio.getFullYear() + '' + ((dataInicio.getMonth() + 1) > 9 ? (dataInicio.getMonth() + 1) : '0' + (dataInicio.getMonth() + 1)) + '' + (dataInicio.getDate() > 9 ? dataInicio.getDate() : '0' + dataInicio.getDate()));
		var fim = '';
		
		if(promocoes[i].fim.toLowerCase().indexOf('indeterminado') == -1){			
			dataFim = new Date();
			dataFim.setYear(promocoes[i].fim.split('/')[2]);			
			dataFim.setMonth(promocoes[i].fim.split('/')[1]-1,promocoes[i].fim.split('/')[0]);			
			dataFim.setDate(promocoes[i].fim.split('/')[0]);
			dataFim.setHours(12);
			dataFim.setMinutes(0);
			dataFim.setSeconds(0);
			
			//dataFim = new Date(promocoes[i].fim.split('/')[2],promocoes[i].fim.split('/')[1]-1,promocoes[i].fim.split('/')[0]);			
			fim = parseInt(dataFim.getFullYear() + '' + ((dataFim.getMonth() + 1) > 9 ? (dataFim.getMonth() + 1) : '0' + (dataFim.getMonth() + 1)) + '' + (dataFim.getDate() > 9 ? dataFim.getDate() : '0' + dataFim.getDate()));
		}else{
			dataFim = promocoes[i].fim;
			fim = 'Indeterminado';
		}
		
		//-- Se a data final da promoção ja tiver sido ultrapassada, a promoção entrada na categoria de Encerradas
		if(!isNaN(fim) && dataAtual > fim){
			if(!in_array('Encerradas',promocoes[i].plataforma)){
				promocoes[i].plataforma.push('Encerradas');
			}	
		}
		
		if(!in_array('Encerradas',plataformas) && in_array('Encerradas',promocoes[i].plataforma))
			continue;
		
		//-- Verifica se a promoção possui a plataforma passada no filtro
		var estaNoFiltro = false;
		if(plataformas != null){
			for(j in plataformas){
				if(in_array(plataformas[j],promocoes[i].plataforma)){
					estaNoFiltro = true;
					break;
				}
			}
		}else{
			estaNoFiltro = true;
		}
		
		if(estaNoFiltro == false)
			continue;
		
		if(cont < pagInicio || cont > pagFim){
			cont++;
			continue;
		}

		//-- DOM da estrutura de cada promoção
		var destaque = document.createElement('div');
			if(first == 0){
				destaque.setAttribute('class','destaque sem_background');
				destaque.className = 'destaque sem_background';
			}else{
				destaque.setAttribute('class','destaque');
				destaque.className = 'destaque';
			}
		
		var image = document.createElement('div');
			image.setAttribute('class','image');
			image.className = 'image';
		
		//if (!in_array('Encerradas',promocoes[i].plataforma)){
		var img = document.createElement('img');
			img.setAttribute('src',imgPath + 'destaque_' + promocoes[i].id + '.png');
			img.src = (!in_array('Encerradas',promocoes[i].plataforma)) ? imgPath + 'destaque_' + promocoes[i].id + '.png' : imgPath + 'destaque_encerrada.png';
			img.setAttribute('class','png_bg');
			img.setAttribute('title',promocoes[i].titulo);
			img.className = 'png_bg';
		
		var description = document.createElement('div');
			description.setAttribute('class','description');
			description.className = 'description';
		
		var titulo = document.createElement('p');
			titulo.setAttribute('class','titulo');
			titulo.className = 'titulo';
			titulo.innerHTML = '<strong>' + promocoes[i].titulo + '</strong>';
		
		var validade = document.createElement('p');
			validade.setAttribute('class','validade');
			validade.className = 'validade';
			validade.innerHTML  = 'Válida para: ';
			for(j in promocoes[i].plataforma){
				if(j > 0)
					validade.innerHTML += ' / ';
				
				validade.innerHTML += '<strong>' + promocoes[i].plataforma[j] + '</strong>';
			}
		
		var descricao = document.createElement('p');
			descricao.setAttribute('class','descricao');
			descricao.className = 'descricao';
			descricao.innerHTML = promocoes[i].descricao;
			
		var dateLink = document.createElement('div');
			dateLink.setAttribute('class','date_link');
			dateLink.className = 'date_link';
		
		var inicio = document.createElement('p');
			inicio.setAttribute('class','inicio');
			inicio.className = 'inicio';
			inicio.innerHTML = '<strong>Começa em:</strong> ' + (dataInicio.getDate() > 9 ? dataInicio.getDate() : '0' + dataInicio.getDate()) + '/' + ((dataInicio.getMonth() + 1) > 9 ? (dataInicio.getMonth() + 1) : '0' + (dataInicio.getMonth() + 1)) + '/' + (dataInicio.getFullYear());
		
		var adesao = document.createElement('p');
			adesao.setAttribute('class','adesao');
			adesao.className = 'adesao';
			adesao.innerHTML = '<strong>Adesão até:</strong> ' + (!isNaN(fim) ? (dataFim.getDate() > 9 ? dataFim.getDate() : '0' + dataFim.getDate()) + '/' + ((dataFim.getMonth() + 1) > 9 ? (dataFim.getMonth() + 1) : '0' + (dataFim.getMonth() + 1)) + '/' + (dataFim.getFullYear()) : fim);
		
		var links = document.createElement('ul');
			links.setAttribute('class','links');
			links.className = 'links';
		
		
		for(j in promocoes[i].links.url){
			if(promocoes[i].links.regiao[j] == 'all' || promocoes[i].links.regiao[j].indexOf(regional) > -1){
				if(!in_array('Encerradas',promocoes[i].plataforma) || (in_array('Encerradas',promocoes[i].plataforma))){
					//-- RETIRA A OPÇÃO DO SAIBA MAIS DAS PROMOÇÕES DO ANO DE 2009 E INFERIORES
					if(promocoes[i].links.titulo[j].toUpperCase().indexOf('SAIBA MAIS') > -1 && in_array('Encerradas',promocoes[i].plataforma)){
						if(parseInt(promocoes[i].fim.split('/')[2]) <= 2009){
							continue;
						}
					}
					
					var list = document.createElement('li');
					var listLink = document.createElement('a');
						listLink.setAttribute('href',promocoes[i].links.url[j]);
						listLink.setAttribute('target','_blank');
						listLink.href = promocoes[i].links.url[j];
						listLink.innerHTML = '<strong>'+ promocoes[i].links.titulo[j] +'</strong>';
					
					list.appendChild(listLink);
					links.appendChild(list);
			  }
			}
		}
		
		/*for(j in promocoes[i].regulamento.url){
			if(promocoes[i].regulamento.regiao[j] == 'all' || promocoes[i].regulamento.regiao[j].indexOf(regional) > -1){
				var list = document.createElement('li');
				var listLink = document.createElement('a');
					listLink.setAttribute('href',promocoes[i].regulamento.url[j]);
					listLink.href = promocoes[i].regulamento.url[j];
					listLink.innerHTML = '<strong>Regulamento</strong>';
				
				list.appendChild(listLink);
				links.appendChild(list);
			}
		}*/
		
		//-- Inserindo os objetos no html
		description.appendChild(titulo);
		description.appendChild(validade);
		description.appendChild(descricao);
		dateLink.appendChild(inicio);
		dateLink.appendChild(adesao);
		dateLink.appendChild(links);
		image.appendChild(img);
		
		destaque.appendChild(image);
		destaque.appendChild(description);
		destaque.appendChild(dateLink);
		$('#promocoes_content').append(destaque);
		
		cont++;
		first++;
	}
	
	fnMontaPaginacao(pagina,Math.ceil((cont-1)/itensPorPag));
	fnAjustaSombra();
	
	fnMontaMetrica(); //'Metrica'
}

function fnMontaMetrica(){

	//Promoções
	$.each($('#promocoes_content a'), function(key, value) { 

		//Pega o titulo da promoção
		var pTitulo    = $(this).parents('div.destaque').find('p.titulo strong').html();
		var pCategoria = '';

		//Pega a categoria da promoção
		$(this).parents('div.destaque').find('p.validade').find('strong').each(function(pKey, pVal){
			pCategoria += $(this).html();
		});
		
		var sLink = '';
		var param = '';
	
		if( value.toString().indexOf('?') >= 0 ){

			var params = value.toString().split('?');
				sLink  = params[0];			
				params = params[1].toString().split('&');
			
			for(x=0;x<params.length;x++){
				param += ( params[x].toString().indexOf('WT.ac') >= 0 ) ? '' : params[x];
			}
		}else{
			sLink = value;
		}
		
		sLink = ( sLink.toString().substr(-1,1)!='/' && sLink.toString().substr(-4,1)!='.') ? sLink+'/' : sLink;
		param = (param!='') ? '&'+param : param;

		var local = retirarAcento( $(this).find('strong').html() );
		$(this).attr('href', sLink +'?WT.ac=paravoce.promocoes-'+ retirarAcento(pCategoria) +'.' + local + '.' + retirarAcento(pTitulo) + param);
	});
}

function fnMontaPaginacao(pagina,numPaginas){
	if(numPaginas == 1){
		$('#promocoes_paginacao').html('');
		return;
	}
	
	var pag = pagina != undefined && pagina > 0 ? pagina : 1;
	var html = '';
	var pagInicio = (pag - 2) >= 1 ? pag - 2 : 1;
	var pagFim = (pag + 2) <= numPaginas ? pag + 2 : numPaginas;
	
	html	+= '<a href="javascript:void(0);" onclick="fnFiltraPor('+ ((pag > 1) ? (pag-1) : pag) +');" class="button" title="Página anterior"><strong>Anterior</strong></a> | ';
	for(i=1; i<=numPaginas; i++){
		html	+= '<a href="javascript:void(0);" onclick="fnFiltraPor('+ i +');">';
		if(i < (pagInicio) || i > (pagFim))
			continue;
		
		if(i==pag){
			html	+= '<strong>' + i + '</strong>';
		}else{
			html	+= i;
		}
		html	+= '</a> | ';
	}
	html	+= '<a href="javascript:void(0);" onclick="fnFiltraPor('+ ((pag < numPaginas) ? (pag+1) : pag) +');" class="button" title="Próxima página"><strong>Próxima</strong></a>';
	
	$('#promocoes_paginacao').html(html);
}

var filtroAnterior = '';

//-- Função que filtra as promoções, verificando quais estão com 'checked'
function fnFiltraPor(pagina){
	$('html,body').stop().animate({
		scrollTop: $('.box_promocoes_topo').offset().top
	},350);
	
	var cont = 0;
	var filtraPlataforma = '';
	$('.filtros input').each(function(){
		if($(this).attr('checked') == true){
			if(cont > 0)
				filtraPlataforma += ',';
			
			filtraPlataforma += $(this).attr('value');
			cont++;
		}
	});
	
	if(filtroAnterior!=filtraPlataforma){
		filtros = filtroAnterior.split(',');
		categoria = filtraPlataforma;
		for(filtro in filtros){
			categoria = categoria.replace(',','');
			categoria = categoria.replace(filtros[filtro],'');
		}
		
		if(categoria!=''){
			//alert(categoria);
			$.post('/metrica/promocoes.gif?cat='+ retirarAcento(categoria) );
		}
		filtroAnterior = filtraPlataforma;
	}
	
	
	window.setTimeout(function(){
		$('.promocoes_destaques').css('opacity',0);
		fnPromoDestComJSON(filtraPlataforma,pagina);
		$('.promocoes_destaques').animate({ opacity:1 });
	},400);
}

$(document).ready(function(){
	$('.filtros input').attr('checked',false);
	
	fnPromoDestComJSON();
});
