/*
	#################################################
	#    Auto: Thiago Silva (Pedreiro Digital)      #
	#         www.pedreirodigitalweb.com.br         #       
	#################################################
*/

var caminho;
var editando = false;
var limite = 0;
var pagina = 0;

var enquetes = function()
{
	caminho = host + 'temas/enquetes/index/';
}

enquetes.prototype.get_paginas = function(_limite)
{
	limite = _limite;
}

enquetes.prototype.listar = function()
{
	$("#dados").load(caminho + 'listar.php', {'pagina':pagina},enquetes.prototype.listar_completo);
}

enquetes.prototype.listar_completo = function(data)
{
	$('.formulario :input').attr('disabled', false);
	$('.formulario :button').attr('disabled', false);
	
	enquetes.prototype.resetar();
	editando = false;
	
	limite > 1	? $('#paginas').css({opacity:1}) : $('#paginas').css({opacity:0.2});
	$('#paginas').empty();
	$('#paginas').append((pagina+1)+' de '+limite);
	$('.paginacao').css({display:'block'});

	
	if(pagina >= (limite-1))
	{
		$('.pro').attr('disabled', true);
		$('.pro').css({opacity:0.2});
		$('.pro').css({cursor:'auto'});
	}
	else
	{
		$('.pro').attr('disabled', false);
		$('.pro').css({opacity:1});
		$('.pro').css({cursor:'pointer'});
	}
	if(pagina <= 0)
	{
		$('.ant').attr('disabled', true);
		$('.ant').css({opacity:0.2});
		$('.ant').css({cursor:'auto'});
	}
	else
	{
		$('.ant').attr('disabled', false);
		$('.ant').css({opacity:1});
		$('.ant').css({cursor:'pointer'});
	}
}

enquetes.prototype.paginar = function(acao)
{
	switch(acao.dir)
	{
		case 'ltr':
			pagina--;
			if(pagina<=0)
			{
				pagina=0;
				$('.ant').attr('disabled', true);
				$('.ant').css({opacity:0.2});
			}
			$('.pro').attr('disabled', false);
			$('.pro').css({opacity:1});
			$("#dados").load(caminho + 'listar.php', {'pagina':pagina},enquetes.prototype.listar_completo);
		break;
		case 'rtl':
			pagina++;
			if(pagina>=limite-1)
			{
				pagina = limite-1;
				$('.pro').attr('disabled', true);
				$('.pro').css({opacity:0.2});
			}
			$('.ant').attr('disabled', false);
			$('.ant').css({opacity:1});
			$("#dados").load(caminho + 'listar.php', {'pagina':pagina},enquetes.prototype.listar_completo);
		break;
	}
}

enquetes.prototype.salvar = function()
{
	if(editando)
	{
		$('.formulario :input').attr('disabled', true);
		$('.formulario :button').attr('disabled', true);
		$.ajax
		(
			{
				type: 'POST',
				url: caminho + 'salvar.php',
				data: enquetes.prototype.get_campos () + '&respostas=' + enquetes.prototype.get_respostas(),
				dataType: 'xml',
				success: enquetes.prototype.salvar_completo
			}
		);
	}
	else
	{
		if(class_util.validar_campos(['pergunta','expira']))
		{
			var formulario = document.getElementById("acao");
			if(formulario.respostas.length > 1)
			{
				$('.formulario :input').attr('disabled', true);
				$('.formulario :button').attr('disabled', true);
				$.ajax
				(
					{
						type: 'POST',
						url: caminho + 'salvar.php',
						data: enquetes.prototype.get_campos () + '&respostas=' + enquetes.prototype.get_respostas(),
						dataType: 'xml',
						success: enquetes.prototype.salvar_completo
					}
				);
			}
			else
			{
				class_alertas.confirmacao('adicione resposta a enquete no mínimo de 2 respostas por enquete...');
			}
		}
		else
		{
			class_alertas.confirmacao('(*) preencha os campos em branco!');
		}
	}
}

enquetes.prototype.salvar_completo = function(xml)
{
	$(xml).find('dados').each
	(
		function()
		{
			switch($(this).find('acao').text())
			{
				case 'ok':
					enquetes.prototype.listar();
				break;
			}
			class_alertas.confirmacao($(this).find('mensagem').text());
		}
	);
}

enquetes.prototype.excluir = function(iten)
{
	class_alertas.escolha('Deseja excluir esta enquete?','enquetes.prototype.remover_item('+iten.id+')');
}

enquetes.prototype.remover_item = function(id)
{
	$.ajax
	(
		{
			type: 'POST',
			url: caminho + 'excluir.php',
			data: 'id=' + id,
			dataType: 'xml',
			success: enquetes.prototype.excluido_completo
		}
	);
}

enquetes.prototype.excluido_completo = function(xml)
{
	$(xml).find('dados').each
	(
		function()
		{
			class_alertas.confirmacao($(this).find('mensagem').text());
			enquetes.prototype.listar();
		}
	);
}

enquetes.prototype.editar = function(iten)
{
	editando = true;
	$('#resposta').attr('disabled', true);
	$('#respostas').attr('disabled', true);
	$('#add').attr('disabled', true);
	$('#rem').attr('disabled', true);

	$.ajax
	(
		{
			type: "GET",
			url: caminho + 'editar.php',
			data: 'id=' + iten.id,
			dataType: "xml",
			success:  enquetes.prototype.editar_completo		
		}
	);
}

enquetes.prototype.editar_completo = function(xml)
{
	enquetes.prototype.resetar();
	$(xml).find('dados').each
	(
		function()
		{
			var formulario = document.getElementById('acao');
			formulario.id.value = $(this).find('id').text();
			formulario.pergunta.value = unescape($(this).find('pergunta').text());
			formulario.expira.value  = unescape($(this).find('expira').text());
			class_util.setData('#expira');
			var respostas = $(this).find('respostas').children();
			
			respostas.each
			(
				function()
				{
					formulario.respostas.options[formulario.respostas.length] = new Option(unescape($(this).attr("resposta")),$(this).attr("id"));
				}
			);
		}
	);
}

enquetes.prototype.status = function(iten)
{
	$.ajax
	(
		{
			type: 'POST',
			url: caminho + 'status.php',
			data: 'id=' + iten.name,
			dataType: 'xml',
			success: enquetes.prototype.status_completo
		}
	);
}

enquetes.prototype.status_completo = function(xml)
{
	$(xml).find('dados').each
	(
		function()
		{
			var alvo = "#botao_status_"+$(this).find('id').text();
			$(alvo).removeClass('status_'+$(this).find('atual').text());
			$(alvo).addClass('status_'+$(this).find('status').text());
		}
	);
}

enquetes.prototype.get_campos = function()
{
	var formulario = document.getElementById('acao');
	var campos = 'editando=' + editando;
	for(i=0; i<formulario.length; i++)
	{
		if(formulario[i].type != 'submit' || formulario[i].id == 'respostas')
		{
			campos += '&' + formulario[i].id + '=' + formulario[i].value;
		}
	}
	return campos;
}

enquetes.prototype.get_respostas = function()
{
	var formulario = document.getElementById('acao');
	var resposta = '';
	for(i=0; i<formulario.respostas.length; i++)
	{
		resposta += '|'+formulario.respostas.options[i].value;
	}
	return resposta;
}

enquetes.prototype.resetar = function()
{
	class_util.setData('#expira');
	var formulario = document.getElementById('acao');
	for(i=0; i<formulario.length; i++)
	{
		if(formulario[i].type != 'submit')
		{
			formulario[i].value = '';
		}
	}
	
    var tamanho = formulario.respostas.options.length;
    for (j=tamanho-1; j>=0; j--)
	{
        formulario.respostas.remove(j);
	}
}

enquetes.prototype.adicionar_resposta = function()
{
	var formulario = document.getElementById("acao");
	var limite = 5;
	if (!formulario.resposta.value)
	{
		class_alertas.confirmacao('Preencha o campo resposta para continuar adicionando respostas!');
	}
	else 
	{
		if (formulario.respostas.length < limite) 
		{
			formulario.respostas.options[formulario.respostas.length] = new Option(formulario.resposta.value,formulario.resposta.value);
			formulario.resposta.value = '';
		}
		else
		{
			document.getElementById('error').innerHTML = 'A enquete permite no máximo '+limite+' respostas por pergunta!';
		}
	}
}

enquetes.prototype.remover_resposta = function()
{
	var formulario = document.getElementById("acao");
	if(!formulario.respostas.value)
	{
		class_alertas.confirmacao('selecione uma resposta para remove-lá!');
	}
	else
	{
		formulario.respostas.options[formulario.respostas.selectedIndex] = null;
	}
}


enquetes.prototype.visualizar = function(iten)
{
	$.ajax
	(
		{
			type: "GET",
			url: caminho + 'visualizar.php',
			data: 'id=' + iten.id,
			dataType: "xml",
			success:  enquetes.prototype.visualizar_completo		
		}
	);
}

enquetes.prototype.visualizar_completo = function(xml)
{
	enquetes.prototype.resetar();
	$(xml).find('dados').each
	(
		function()
		{
			var respostas = $(this).find('respostas').children();
			
			var width = 300;
			var height = 260;
			var width_metade = width / 2;
			var height_metade = height / 2;
			
			document.getElementById('conteiner').innerHTML = '';
			document.getElementById('conteiner').innerHTML += '<div class="base_enquete">';
			document.getElementById('conteiner').innerHTML += '<div class="pergunta">' + unescape($(this).find('pergunta').text()) + '</div>';

			respostas.each
			(
				function()
				{
					document.getElementById('conteiner').innerHTML += '<div class="resposta"> ('+$(this).attr("voto")+') votos • ('+$(this).attr("porcentagem") +') - '+ unescape($(this).attr("resposta")) + '</div>';
					document.getElementById('conteiner').innerHTML += '<div class="barra"><div class="borda"><div class="miolo" style="width:' + $(this).attr("escala") + 'px;"></div></div></div>';
				}
			);
			
			document.getElementById('conteiner').innerHTML += '<div class="total"> total de votos registrados até agora: ' + $(this).find('total').text() + ' voto(s).</div>';
			document.getElementById('conteiner').innerHTML += '<div class="datas"> criada em: ' + $(this).find('data').text() + ' | expira em: ' + $(this).find('expira').text() + '</div>';
			document.getElementById('conteiner').innerHTML += '</div>';
			document.getElementById('conteiner').innerHTML += '<div onclick="utils.prototype.cancelar()"><button class="botao_fechar_enquete"></button></div>';
			
			document.getElementById('conteiner').style.width = width+'px';
			document.getElementById('conteiner').style.height = height+'px';
			document.getElementById('conteiner').style.marginLeft = '-'+width_metade+'px';
			document.getElementById('conteiner').style.marginTop = '-'+height_metade+'px';
			document.getElementById('mascara').style.display = '';
			document.getElementById('conteiner').style.display = '';
			
			$("#mascara").show();
			$('#mascara').animate
			(
				{
					opacity: 0.5
				}
				,200,
				function()
				{
					$("#conteiner").fadeIn(600);
				}
			);
		}
	);
}

enquetes.prototype.visualizar_site = function(id)
{
	$.ajax
	(
		{
			type: "GET",
			url: host + 'painel/temas/enquetes/index/visualizar.php',
			data: 'id=' + id,
			dataType: "xml",
			success:  enquetes.prototype.visualizar_completo_site		
		}
	);
}

enquetes.prototype.visualizar_completo_site = function(xml)
{
	$(xml).find('dados').each
	(
		function()
		{
			var respostas = $(this).find('respostas').children();
			
			var width = 300;
			var height = 260;
			var width_metade = width / 2;
			var height_metade = height / 2;
			
			var resultado = '<ul>';
			resultado += '<li><span>' + unescape($(this).find('pergunta').text()) + '</span></li>';
			resultado += '<ul>';
			
			respostas.each
			(
				function()
				{
					resultado += '<li>';
					resultado += '('+$(this).attr("voto")+') votos • ('+$(this).attr("porcentagem") +') <br>'+ unescape($(this).attr("resposta"));
					resultado += '<div style="width:' + $(this).attr("escala") + 'px;  background:#06C; height:8px; "></div>';					
					resultado += '</li>';
				}
			);
			
			resultado += '<li> total de votos registrados até agora: ' + $(this).find('total').text() + ' voto(s).</li>';
			resultado += '</ul>';
			resultado += '</li>';
			resultado += '</ul>';
			
			$('.opcoes').html(resultado);
		}
	);
}

enquetes.prototype.cancelar = function()
{
	$(document).ready
	(
		function()
		{
			$("#foto").fadeOut(200,function(){ $("#mascara").hide(); $("#foto").hide(); });
		}
	);
}

enquetes.prototype.votar = function()
{
	var id_resposta = "";
	var id_enquete = document.getElementById('id_enquete')
	
	$('.radio').each
	(
		function(i)
		{
			if ($(this).is(':checked'))
			{
				id_resposta = $(this).val();
			}
		}
	);
	
	if(id_resposta == "")
	{
		alert("Selecione uma Alternativa");
	}
	else
	{
		$.ajax
		(
			{
				type: "GET",
				url: host + 'painel/temas/enquetes/index/votar.php',
				data: 'id_resposta=' + id_resposta + '&id_enquete=' + id_enquete.value,
				dataType: "xml",
				success:  enquetes.prototype.votar_completo		
			}
		);
	}
}

enquetes.prototype.votar_completo = function(xml)
{
	$(xml).find('dados').each
	(
		function()
		{
			$('.opcoes').empty();
			
			switch($(this).find('acao').text())
			{
				case 'ok':
					enquetes.prototype.visualizar_site($(this).find('id').text());
				break;
				case 'erro':
					$('.opcoes').html('<div style="text-align:center; height:180px;">'+$(this).find('mensagem').text()+'<br><a href="javascript:void(0)" class="res">ver resultados</a></div>');
					
					var _id = $(this).find('id').text();
					$('.res').click
					(
						function()
						{
							enquetes.prototype.visualizar_site(_id);
						}
					);
				break;
			}
		}
	);
}
