//---------------------------------------------------------------------------------------------------------------------
//----------------------------------------- locomotrom - WebSite --------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------
//Funções Javascript Genéricas - Dependem de locomotrom.js
//Desenvolvido por: Gabriel Vasconcellos Guilhem
//Data de Criação: 18/03/2011
//---------------------------------------------------------------------------------------------------------------------
//----------------------------------------- locomotrom - WebSite --------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------

var fechaMask = function (e) {
			e.preventDefault();
			
			$('#dialog').fadeOut().html("");
			
			$('#mask').remove();
			if($(this).attr("name") != ""){
				var url = $(this)[0].href;
				var destino = $(this)[0].name != "" ? $(this)[0].name : "#conteudo";

				AbrePagina2(url,destino);
				ScrollToTop(200);
			}
		};
var fechaMask2 = function (e) {
			e.preventDefault();
			
			$('.dialog').fadeOut().html("");
			
			$('.dialog').parents(".mask").remove();
			if($(this).attr("name") != ""){
				var url = $(this)[0].href;
				var destino = $(this)[0].name != "" ? $(this)[0].name : "#conteudo";

				AbrePagina2(url,destino);
				ScrollToTop(200);
			}
		};


function ajustaDialog(){	
	CentralizaDialog("#dialog");
	CentralizaMask();	
}

function ContainerLoad(pUrl){
	$.history.load(pUrl.substring(pUrl.lastIndexOf("/")+1));
	return false;
}

function AbrePagina(pPagina){
	try{
		if(pPagina != ""){
			$('#clima').height($(window).height());
			var pDiv = "#conteudo";
			
			htmlData = "<img src='img/carregando.gif' \>";
			
			AbreDialog(htmlData, pDiv);
			$.post(pPagina,
			null,
			function(data){
				AbreDialog(data, pDiv);
				AjustaClima();
			});
		}
	}
	catch(e){
		alert(e);
	}
	return false;
}

function AbrePagina2(pPagina,pDiv){
	try{
		if(pPagina != ""){
			$('#clima').height($(window).height());
			htmlData = "<table style='width:100%;height:100%' cellspacing='0px' cellpadding='0px'><tr><td valign='middle' align='center'><img src='img/carregando.gif' \></td></tr></table>";
			
			AbreDialog(htmlData, pDiv);		
			AjustaClima();

			if(pDiv == "#conteudo"){
					ContainerLoad(pPagina);
				}
			else{
				$.post(pPagina,
				null,
				function(data){
					AbreDialog(data, pDiv);
					AjustaClima();
				});
			}
		}
	}
	catch(e){
		alert(e);
	}
	return false;
}
function AbreDialog(data, id){
	$('#clima').height($(window).height());
	$(id).html(data);
	if(id == "#dialog"){
		$(id).prepend("<p align='right' style='background-color:black;'><a href='#' class='close'><img src='img/close.png' /></a></p>");
		
		$("body").append("<div id='mask' ></div>");
		
		$('#dialog .close').bind("click", fechaMask);
		
		CentralizaMask();
		$('#mask').fadeIn(10);	
		$('#mask').fadeTo(200,0.7);	
		CentralizaDialog(id);
		$(id).fadeIn(1000); 
	}
}

function AbreDialog2(data, titulo){
	var id = ".dialog";
	var dialog = "<div class='" + id.replace(".","") + "'></div>";
	
	$(".mask").remove();
	$("body").append("<div class='mask' ></div>");
	
	$(".mask").append(dialog);
	
	$(id).html(data);
	$(id).prepend("<table class='closeCont'><tr><td align='left' width='95%'>"+titulo+"</td><td align='right'><a href='#' onclick='return false;' class='close' ><img src='img/close.png' /></a></td></tr></table>");
	
	$(id).find(".close").bind("click", fechaMask2);
	CentralizaMask2();
	$('.mask').fadeIn(100);	
	CentralizaDialog(id);
	$(id).fadeIn(1000); 
	$(".mask").topZIndex();
}

function AbreDialog3(data, titulo){
	var id = "#dialog";
	
	$(id).html(data);
	$(id).prepend("<table class='closeCont'><tr><td align='left' width='95%'>"+titulo+"</td><td align='right'><a href='#' onclick='return false;' class='close' ><img src='img/close.png' /></a></td></tr></table>");
	
	$(id).find(".close").bind("click", fechaMask);
	CentralizaMask();
	$('#mask').fadeIn(100);	
	CentralizaDialog(id);
	$(id).fadeIn(1000); 
	$(id).topZIndex();
}


function CentralizaMask(){
	try{
		var maskHeight = $(document).height();
		var maskWidth = $(window).width();
		
		$('#mask').css({'width':maskWidth + "px",'height': maskHeight + "px" });
	}catch(e){
		
	}
}

function CentralizaMask2(){
	try{
		var maskHeight = $(document).height();
		var maskWidth = $(window).width();
		
		$('.mask').css({'width':maskWidth + "px",'height': maskHeight + "px" });
	}catch(e){
		
	}
}

function AjustaClima(){
	var maskHeight = $(document).height();
	var maskWidth = $(window).width();
	$('#clima').height(0);
	$('#clima').css({'width':maskWidth + "px",'height': maskHeight + "px" });
}

function CentralizaDialog(id){
	try{
		//Get the window height and width
		var winH = $(window).height();
		var winW = $(window).width();
		var positionTop = $(window).scrollTop();
		
		//Caso Dialog maior que Janela, CENTRALIZA-O
		if($(window).height() > $(id).height())
			positionTop += winH/2-$(id).height()/2;

		positionTop = positionTop > 0 ? positionTop : 0;
		
		$(id).css('top',  positionTop);
		$(id).css('left', winW/2-$(id).width()/2);
	}catch(e){
	
	}
}

function validaPost(pform){
	/*VALIDAÇÕES DE CADASTRO*/
		var Campos = {"value" : "<h2>Campos obrigatórios não informados ou inválidos:</h2> <br /> <br />"};
		var algum = false;
		$.each($(pform).find("input,textarea"),function(){
			var campoDaVez = $(this);
			var validado = validaCampo(campoDaVez,Campos);
			if(validado)
				algum = validado;
		});
		
		if(algum){
			AbreDialog2(Campos.value,"Campos Inválidos");
			$(".invalido").removeClass("invalido");
			return false;
		}
	/*FIM - VALIDAÇÃO DE CADASTRO*/
	return true;
}
function validaCampo(pcampo, msg)
{
	var algum = false;
	if(pcampo.hasClass("obrigatorio")){
		if(isNullOrEmpty(pcampo)){//VAZIO
			pcampo.addClass("invalido");
			algum = true;
			msg.value = msg.value + "- " + pcampo.prev("span").text().replace(":","")+ "<br />";
		
		}else{//Nao está vazio - Consiste informações
			algum = consistir(pcampo, msg);
		}
	}else if(!isNullOrEmpty(pcampo)){
		algum = consistir(pcampo, msg);
	}
	
	return algum;
}
function consistir(pcampo, msg){
	var algum = false;
	
	if(pcampo.hasClass("obrigatorio") && isNullOrEmpty(pcampo)){//VAZIO
		pcampo.addClass("invalido");
		algum = true;
		msg.value = msg.value + "- " + pcampo.prev("span").text().replace(":","")+ " campo obrigatório <br />";
		pcampo.attr("title","Este campo é de preenchimento obrigatório");
	}
	
	if(pcampo.hasClass("data") && !isDate(pcampo)){
		pcampo.addClass("invalido");
		algum = true;
		msg.value = msg.value + "- " + pcampo.prev("span").text().replace(":","")+ " (não é uma data válida) <br />";
		pcampo.attr("title","Informe uma data válida");
	}
	
	if(pcampo.hasClass("email") && !isEmail(pcampo)){
		pcampo.addClass("invalido");
		algum = true;
		msg.value = msg.value + "- " + pcampo.prev("span").text().replace(":","")+ " (não é um email válido) <br />";
		pcampo.attr("title","Informe um email válido");
	}
	
	if(pcampo.hasClass("especiais") && PossuiEspeciais(pcampo)){
		pcampo.addClass("invalido");
		algum = true;
		msg.value = msg.value + "- " + pcampo.prev("span").text().replace(":","")+ " (Não digite caracteres especiais e/ou acentos) <br />";
		pcampo.attr("title","Caractere não permitido!");
	}
	
	if(pcampo.hasClass("link") && !isLink(pcampo)){
		pcampo.addClass("invalido");
		algum = true;
		msg.value = msg.value + "- " + pcampo.prev("span").text().replace(":","")+ " (não é um Link válido) <br />";
		pcampo.attr("title","Informe um Link válido");
	}
	
	
	return algum;
}
function isNullOrEmpty(campo){
	var texto = (typeof campo==="string") ? campo : $(campo).val();
	return replaceAll(texto," ", "") == "";
}
function isDate(pCampo) { 
  var pObj = $(pCampo);
  var expReg = /^((0[1-9]|[12]\d)\/(0[1-9]|1[0-2])|30\/(0[13-9]|1[0-2])|31\/(0[13578]|1[02]))\/(19|20)?\d{2}$/; 
  var aRet = true; 
  if ((pObj) && (pObj.val().match(expReg))) { 
        var dia = pObj.val().substring(0,2); 
        var mes = pObj.val().substring(3,5); 
        var ano = pObj.val().substring(6,10); 
        if ((mes == 4 || mes == 6 || mes == 9 || mes == 11) && dia > 30)  
          aRet = false; 
        else  
          if ((ano % 4) != 0 && mes == 2 && dia > 28)  
                aRet = false; 
          else 
                if ((ano%4) == 0 && mes == 2 && dia > 29) 
                  aRet = false; 
  }  else  
        aRet = false;   
  return aRet; 
}

function isEmail(pCampo){
	var expReg=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
    return expReg.test(pCampo.val());
}

function isLink(pCampo){
	var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
	var addHttp = pCampo.val().substring(0,4) != "http" ? "http://" + pCampo.val() : pCampo.val();
	var retorno = regexp.test(pCampo.val());
	if(!retorno){//Caso não tenha validado o link, verifica se faltou HTTP:
		retorno = regexp.test(addHttp);
		if(retorno)//Se agora é valido, adota como valor
			pCampo.val(addHttp);
	}
	return retorno;
}
function PossuiEspeciais(pCampo){
	var Texto = pCampo.val();
	return Texto.match(['[-@!#$%¨&*+_´`^~;:?áÁéÉíÍóÓúÚãÃçÇ|\?,./{}"<>() ]']);
}

function replaceAll(texto, de, para)
{
	try{
		while(texto.indexOf(de) != -1){
			texto = texto.replace(de,para);
		}
	}catch(e){
	
	}
	
	return texto;
}
function youtubeIDextract(url) 
{ 
	var youtube_id = "";
	var regex = /^[^v]+v.(.{11}).*/;
	
	if(regex.test(url)){
		youtube_id = url.replace(regex,"$1"); 
	}
	return youtube_id; 
}

function ScrollToTop(delay){
	for(var scroll = $("body").scrollTop(); scroll >= 400;){
		scroll -= delay; 
		$("body").scrollTop(scroll);
	}
}
function isScrolledIntoView(elem) {     
	try{
		var docViewTop = $(window).scrollTop();     
		var docViewBottom = docViewTop + $(window).height();      
		var elemTop = $(elem).offset().top;     
		var elemBottom = elemTop + $(elem).height();      
		return ((elemBottom >= docViewTop) && (elemTop <= docViewBottom)&& (elemBottom <= docViewBottom) &&  (elemTop >= docViewTop) ); 
	}catch(e){
		return false;
	}
}
function MudaClima(pClima,pCor)
{
	if($("#clima").length > 0){
		$("#clima").fadeTo(500,pClima).delay(100).css({"background-color": pCor});
	}
}
function AtualizaConteudo()
{
	if(!isNullOrEmpty(conteudoRefresh.html)){
	
		if(conteudoRefresh.container == "window"){
			 AbreDialog2(conteudoRefresh.html, conteudoRefresh.titulo);
			 if(!isNullOrEmpty(conteudoRefresh.proxima)){
				ContainerLoad(conteudoRefresh.proxima);
			 }
		}
		else if(conteudoRefresh.container == "#dialog"){
			AbreDialog3(conteudoRefresh.html, conteudoRefresh.titulo);
			 if(!isNullOrEmpty(conteudoRefresh.proxima)){
				ContainerLoad(conteudoRefresh.proxima);
			 }
		}
		else if($(conteudoRefresh.container).attr("nodeName").toLowerCase() == "div")
			$(conteudoRefresh.container).html(conteudoRefresh.html);
		else
			$(conteudoRefresh.container).val(conteudoRefresh.html);
	}
	else if(!isNullOrEmpty(conteudoRefresh.proxima)){
		if(conteudoRefresh.container != "")
			ContainerLoad(conteudoRefresh.proxima);
		else 
			document.location.href = conteudoRefresh.proxima;
	}
}
function msgbox(titulo, texto){

	conteudoRefresh.container = "#dialog";
	conteudoRefresh.html = texto;
	conteudoRefresh.titulo = titulo;
	AtualizaConteudo();
	
}
function ToggleDiv(id){

	try{
		$(id).stop();
		if(parseInt($(id).css("right").replace("px","")) == 0){
			$(id).animate({right : - $(id+" .caixa").width()},{duration:200});
		}else{
			$(id).animate({right : 0},{duration:200});
		}
	}catch(e){
	
	}
}
function CarregarEnquete(codigoEnquete)
{
	if($("#enquete").length > 0){
		$("#enquete").html("<h1>Loading...</h1>");
		$.get(	"enquete_load.php?e="+codigoEnquete,
				function(data){
					$("#enquete").html(data);
				});
	}
}
function CarregarEnqueteHome(codigoEnquete)
{
	if($("#enquete").length > 0){
		$("#enquete").html("<h1>Loading...</h1>");
		$.get(	"enquete_load.php?e="+codigoEnquete+"&h=1",
				function(data){
					$("#enquete").html(data);
				});
	}
}
function AtualizaItemCorrente(quantidade)
{
	IndiceAtualTrocaItem += quantidade;
	if(IndiceAtualTrocaItem > $('.albumcontainer').length - 1)
		IndiceAtualTrocaItem = 0;
	if(IndiceAtualTrocaItem < 0)
		IndiceAtualTrocaItem = $('.albumcontainer').length - 1;
		
	if($('.albumcontainer').length > 0 && $('.albumcontainer a').length > 0)
	{
		var ProximoItem = $('.albumcontainer')[IndiceAtualTrocaItem];
		$(ProximoItem).find('a')[0].click();
	}
}
