// JavaScript Document

function callbackEffectTransDiv(Html)
{
	var DivFin   = document.getElementById('divMiniCadastro');	
	var DivInt   = document.getElementById('divMiniCadastroInterna');		
	var DivDados = document.getElementById('divMiniCadastroDados');			

	if ( DivFin!=null && DivInt!=null && DivDados!=null ) 
		document.getElementById('divMiniCadastroDados').innerHTML = Html;
}

function effectTransDiv(ajaxFile, arrPost)
{
	// SE NAO EXISTIR O FUNDO TRANSP, CRIA O FUNDO TRANSPARENTE
	if(!document.getElementById('divMiniCadastro'))
		fundo = exibirFundoAlpha();
	
	if( fundo )
	{
		document.getElementById('divMiniCadastro').style.display = 'block';
		loading(true);
		
		var qtdSelect = document.getElementsByTagName("select").length;
		for (i=0; i<qtdSelect; i++)
			document.getElementsByTagName("select").item(i).style.visibility ='hidden';
		
		if ( ajaxFile != '' )
			criaDivDados(ajaxFile, arrPost);
		
		scroll(0,1);
	}
}
 
function voltaEffectTransDiv(tabela)
{
 	var qtdSelect = document.getElementsByTagName("select").length;
	for (i=0; i<qtdSelect; i++)
		document.getElementsByTagName("select").item(i).style.visibility ='visible';
	
	if ( tabela=='logradouro' )
		reloadSelectLogradouro();
	else if ( tabela=='cidade' || tabela=='bairro' )
	{
		reloadSelectCidade('-1', 'all');
		reloadSelectBairro('-1', 'all');
		
		document.getElementById('estadoComercial').value = '-1';
		document.getElementById('estadoEntrega').value = '-1';
		document.getElementById('estadoResidencial').value = '-1';
		document.getElementById('inpEstado').value = '-1';
	}
	else if ( tabela=='categoria' )
		reloadCategoria(); 
	else if ( tabela=='responsavel' )
		reloadResponsavel(); 
	else if ( tabela=='refugo_categoria_ond' )
		reloadRefugoCategoriaOnd(); 
}

function exibirFundoAlpha()
{
	var DivFundo = document.createElement('div');
	
	// PEGA OS AS DIMENSOES DA PAGINA
	var sizesPage = getPageSize();
	
	DivFundo.setAttribute('id', 'divMiniCadastro');
	DivFundo.style.height = arrayPageSize[1] + 'px';
	DivFundo.style.width = arrayPageSize[0] + 'px';
	DivFundo.className = 'fundo_alpha';
	DivFundo.align = 'center';	
	DivFundo.onclick = function (){removerDivs('all')};		
	DivFundo.title ="Click para Fechar";		
	
	// INSERE O FUNDO COMO PRIMEIRO FILHO DA TAG BODY
	ObjBody = document.getElementsByTagName('body').item(0);
	if( ObjBody.insertBefore(DivFundo, ObjBody.firstChild) )
		return true;
}

function criaDivDados(url, varPost)
{
	var DivDados = document.createElement('div');
	
	// PEGA OS AS DIMENSOES DA PAGINA
	var sizesPage = getPageSize();
	
	DivDados.setAttribute('id', 'divMiniCadastroDados');
	DivDados.className = 'box_flutuante';
	DivDados.align = 'center';	
	
	ObjBody = document.getElementsByTagName('body').item(0);
	ObjBody.insertBefore(DivDados, ObjBody.lastChild);

	postText(url, varPost, retDivFlutuante);
}

function retDivFlutuante(resp)
{
	document.getElementById('divMiniCadastroDados').innerHTML = resp;
	
	loading(false);
	
	document.getElementById('divMiniCadastroDados').style.display = 'block';
	
	if ( document.getElementById('miniCliNomeRazao')!=null )
		document.getElementById('miniCliNomeRazao').focus();
}

function removerDivs(what) 
{
	var bgBody = document.getElementById('divMiniCadastro');
	var boxCad = document.getElementById('divMiniCadastroDados');
	
	if (boxCad!=null && bgBody!=null)
	{
		if( what == 'all' )
		{
			var pai = bgBody.parentNode;
			if (pai)
				pai.removeChild(bgBody);
			
			if (boxCad) 
			{ // Por que ao clicar X (para deletar um registro) cria-se somente o encobridor e não o boxCad	
				boxCad.parentNode.removeChild(boxCad);
			}
		}
		else if( what == 'dados' )
		{
			if (boxCad) 
			{ // Por que ao clicar X (para deletar um registro) cria-se somente o encobridor e não o boxCad	
				boxCad.parentNode.removeChild(boxCad);
			}
		}
	}
}


function getPageSize()
{
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) 
	{	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} 
	else if (document.body.scrollHeight > document.body.offsetHeight)
	{ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} 
	else 
	{ // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) 
	{	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} 
	else if (document.documentElement && document.documentElement.clientHeight) 
	{ // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} 
	else if (document.body) 
	{ // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight)
	{
		pageHeight = windowHeight;
	} 
	else 
	{ 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth)
	{	
		pageWidth = windowWidth;
	} 
	else 
	{
		pageWidth = xScroll;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
}

function postText(url, params, callback) 
{	
	params = escape(params);
	for ( var i=0; i<params.length; i++ )
	{
		params = params.replace('%3D', '=');4
		params = params.replace('%26', '&');
	}
	var ajax = false; // PARA PODER USAR O OBJETO VARIAS VEZES É PRECISO ANULAR O OBJETO ANTES DE CRIA-LO NOVAMENTE
  //verifica se o browser tem suporte a ajax

   try{
      // Firefox, Opera 8.0+, Safari
      ajax=new XMLHttpRequest();
      }
    catch (e){
      // Internet Explorer
      try{
         ajax=new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch (e){
         try{
            ajax=new ActiveXObject("Microsoft.XMLHTTP");
         }
         catch (e){
            alert("Your browser does not support AJAX!");
			ajax = null;
         }
       }
   } 

  //se tiver suporte ajax
  if(ajax) 
  {	   
	 ajax.open("POST", url, true);
     ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); //avisa ao servidor que iremos transmitir dados possivelmente via POST
	 ajax.setRequestHeader('Content-length', params.length );
		
		ajax.onreadystatechange = function() 
		{ 
		  if (ajax.readyState == 4 && ajax.status == 200) 
		  { 
			  callback(ajax.responseText); 
			  delete ajax;
			  ajax = null;  
		  } 
		} 
	 //passa os valores do $_POST
	 ajax.send(params);
  }
}
// Utilizado para criar o efeito de loading
function loading(opt) 
{
	// CRIA
	if (opt == true) 
	{
		// A tag que receberá a img de loading
		var refer = document.getElementsByTagName('body').item(0);
		// O tamanho da referida tag
		var referHeight = refer.offsetHeight;
		// Dizemos que os elementos dentro dela será alinhado ao centro
		refer.style.textAlign = 'center';
		// Criamos uma imagem, img.
		var img = document.createElement('img');
		// Informamos o caminho da img
		img.setAttribute('src','img/img_loading.gif');
		// Setamos um atributo ID na img criada
		img.setAttribute('id','loading');
		// Definimos seu tamanho
		img.setAttribute('width','126');

		img.className = 'box_loading';
		
		// Dizemos que o margin-top será a metada do tamanho da div
		img.style.marginTop = ( (referHeight * 1) / 4) + 'px';
		
		// Evita que seja criada duas ou mais img de loading
		if (!document.getElementById('loading')) 
		{
			// Insere a img na tag informada na variável refer
			refer.insertBefore(img, refer.lastChild);
		}
	} 
	// REMOVE
	else if (opt == false) 
	{
		// Referenciamos a img de login através de seu ID
		var imgLoading = document.getElementById('loading');
		// Removemos a img de loading
		if (imgLoading) 
		{
			imgLoading.parentNode.removeChild(imgLoading);
		}
	}
}

