var find = false;
var numParametros = 0;

function QueryString(parametro) {
	var posInt = window.location.href.indexOf('?', 0);

	//Pegando a parte da string que possui os parâmetros (após o ?);
	var strGets = window.location.href.slice(posInt + 1);

	//Verificando se foram passados parâmetros para a string;
	//Se posIgual for maior ou igual a 1, foram passados parâmetros via GET: (Pelo menos uma letra: p=);

	var posIgual = strGets.indexOf('=', 0);
	//E o código a seguir será executado:
	if (posIgual >= 1) {


		strParam = new Array();
		//alert(strGets);
		//Contando quantos parâmetros foram passados via GET;
		//Para isso, vamos contar quantos "&" existem na string;
		//Se não houver "&": apenas um parâmetro foi passado!
		if (strGets.indexOf("&", 0) == -1) {
			//Pegando o parâmetro e seu valor:
			strParam[0] = new Array();
			strParam[0] = strGets.split("=");
			numParametros = 1;

			if (strParam[0][0] == parametro) {
				find = true;
				//Verficando se o parâmetro contém algum valor:
				if (strParam[0][1].length > 0) {
					//alert(strParam[0][0]+" = "+strParam[0][1]);
					return strParam[0][1];
				} else {
				//	alert("O parâmetro " + parametro + " não contém valor.");
				}
			}

			//Se houver um ou mais "&", mais de um parâmetro foi passado:
		} else {
			//Quebrando a string strGets em array através do delimitador "&";
			strParametros = strGets.split("&");
			numParametros = strParametros.length;

			//Ex: strParamTotais[0]="p1=valor1"; strParamTotais[1]="p2=valor2";
			for (var i = 0; i < strParametros.length; i++) {
				strParam[i] = new Array();
				strParam[i] = strParametros[i].split("=");

				if (strParam[i][0] == parametro) {
					find = true;

					//Verficando se o parâmetro contém algum valor:
					if (strParam[i][1].length > 0) {
						//alert(strParam[i][0]+" = "+strParam[i][1]);

						return strParam[i][1];
					} else {
					//	alert("O parâmetro " + parametro + " não contém valor.");
					}
				}
			}
		}
		if (find == false) {
			//alert("O parâmetro '" + parametro + "' não foi localizado!");
		}
	}

}

function ParList() {
	var lPar = "";
	var posInt = window.location.href.indexOf('?', 0);

	//Pegando a parte da string que possui os parâmetros (após o ?);
	var strGets = window.location.href.slice(posInt + 1);
	var strParametros = strGets.split("&");

	for (var iLoop = 0; iLoop < strParametros.length; iLoop++) {
		lPar += strParametros[iLoop] + "<br>\n";
	}
	return lPar;
}

// Função que verifica a versão do browser
function VerifyBrowser() {
  
   //Tenta verificar qual é a versão do browser  
     try {
           // Retorna versão do browser a partir da biblioteca JQuery 
           var CurrentVersion = $.browser.name;

           // Formata o nome que vai ser retornado somando as iniciais do browser e a versão
           switch (CurrentVersion) {
            case "msie":
                var VersionName = 'ie' + $.browser.versionNumber;
                break
            case "firefox":
                var VersionName = 'ff' + $.browser.versionNumber;
                break
            case "safari":
                var VersionName = 'sf' + $.browser.versionNumber;
                break
            case "chrome":
                var VersionName = 'ch' + $.browser.versionNumber;
                break
            default:
                var VersionName = 'nd';
            }


            return VersionName;
		   
     } 
	 catch (oError) {
	     return 'nd';
        throw new Error("Ocorreu um erro durante a execução.");
    }
}

   function PrintElementID(id) {
       var oPrint, oJan;

oPrint = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'
        +'<html xmlns="http://www.w3.org/1999/xhtml">'
        +'<head>'
        + window.document.getElementById('head').innerHTML
        +'</head>'
        +'<body id="interna">'
        + window.document.getElementById(id).innerHTML
        +'</body>'
        +'</html>';

//       oPrint = '<style type="text/css">@import url("../_conteudo/css/reset.css");</style>';
//       oPrint = oPrint + '<style type="text/css">@import url("../_conteudo/css/text.css");</style>';
//       oPrint = oPrint + '<style type="text/css">@import url("../_conteudo/css/screen.css");</style>';
//       oPrint = oPrint + '<body id="interna">';
//       oPrint = oPrint + window.document.getElementById(id).innerHTML;
       oJan = window.open('../_conteudo/html/nova_janela.html');
       oJan.document.write(oPrint);
       oJan.history.go();
       oJan.print();
   }


// ****************************************** Rolar produtos da home *****************
   
   function direita() {
       var el = document.getElementById("carroussel");
       if (el.scrollLeft < 520) {
           el.scrollLeft += 270;
       }
       
       if (el.scrollLeft == 520) {
           document.getElementById("lnk_anterior").className = 'on';
           document.getElementById("lnk_posterior").className = 'off';
       }
       else if (el.scrollLeft < 520 && el.scrollLeft > 0) {
           document.getElementById("lnk_anterior").className = 'on';
           document.getElementById("lnk_posterior").className = 'on';
       }
       else if (el.scrollLeft == 0) {
           document.getElementById("lnk_anterior").className = 'off';
           document.getElementById("lnk_posterior").className = 'on';
       }

       if (el.scrollLeft >= 520) {
           document.getElementById("lnk_anterior").className = 'on';
           document.getElementById("lnk_posterior").className = 'off';
       }
   }

   function esquerda() {
       var el = document.getElementById("carroussel");
           el.scrollLeft -= 270;

       if (el.scrollLeft == 520) {
           document.getElementById("lnk_anterior").className = 'on';
           document.getElementById("lnk_posterior").className = 'off';
       }
       else if (el.scrollLeft < 520 && el.scrollLeft > 0) {
           document.getElementById("lnk_anterior").className = 'on';
           document.getElementById("lnk_posterior").className = 'on';
       }
       else if (el.scrollLeft == 0) {
           document.getElementById("lnk_anterior").className = 'off';
           document.getElementById("lnk_posterior").className = 'on';
       }
       
       if (el.scrollLeft >= 520) {
           document.getElementById("lnk_anterior").className = 'on';
           document.getElementById("lnk_posterior").className = 'off';
       }
   }


// Início do código de Aumentar/ Diminuir a letra
 
// Para usar coloque o comando: "javascript:mudaTamanho('tag_ou_id_alvo', -1);" para diminuir
// e o comando "javascript:mudaTamanho('tag_ou_id_alvo', +1);" para aumentar

   var tagAlvo = new Array('p', 'li', 'span', 'div', 'b', 'input'); //pega todas as tags p//
 
// Especificando os possíveis tamanhos de fontes, poderia ser: x-small, small...
   var tamanhos = new Array('9px', '10px', '11px', '12px', '13px', '14px', '15px', '16px', '17px', '18px', '19px', '20px');
var tamanhoInicial = 2;
 
function mudaTamanho( idAlvo,acao ){
  if (!document.getElementById) return
  var selecionados = null,tamanho = tamanhoInicial,i,j,tagsAlvo;
  tamanho += acao;
  if ( tamanho < 0 ) tamanho = 0;
  if (tamanho > 6) tamanho = 6;
  
  tamanhoInicial = tamanho;
  
  //if ( !( selecionados = document.getElementById( idAlvo ) ) ) selecionados = document.getElementsByTagName( idAlvo )[ 0 ];
  
  //selecionados.style.fontSize = tamanhos[ tamanho ];
  
  for ( i = 0; i < tagAlvo.length; i++ ){
    tagsAlvo = document.getElementsByTagName( tagAlvo[ i ] );
    for ( j = 0; j < tagsAlvo.length; j++ ) tagsAlvo[ j ].style.fontSize = tamanhos[ tamanho ];
  }
}
// Fim do código de Aumentar/ Diminuir a letra
 
// ****************************************** Função valida formulário *****************
function validaFormulario(IdObjeto, TextoCampo, maxItens, mensagem1, mensagem2) {

    var campo = document.getElementById(IdObjeto);

    if (campo.value == '' || campo.value == TextoCampo) {
        campo.focus();
        alert(mensagem1);
        alert(campo.value);
        return false;
    }
    
    if (maxItens =! false) {
        if (campo.value.length > maxItens) {
            campo.focus();
            alert(mensagem2);
            return false;
        }
    }
}


// ****************************************** Pegar opção radio formulário *****************
function retornaValorRadio(Campo) {

    var opcao = '';
    var c = document.getElementsByTagName("body")[0].getElementsByTagName("input");

    for (i = 0; i < c.length; i++) {
        if (c[i].name == Campo) {
            if (c[i].checked == true) {
                opcao = c[i].value;
            }
        }
    }
    return opcao;
} 

// ****************************************** Pegar opção radio formulário *****************
function retornaValorCheckbox(Campo) {

    var opcao = '';
    var obj = document.getElementById(Campo);

    if ((obj == '[object HTMLInputElement]' || obj == '[object]') && obj.checked == true) {
        opcao = obj.value;
    }
    return opcao;
}
function retornaValorGrupo(obj) {

    var opcao = '';

    if ((obj == '[object HTMLInputElement]' || obj == '[object]') && obj.checked == true) {
        opcao = obj.value;
    }
    return opcao;
}

// ****************************************** Pegar opção radio formulário *****************
function ImprimirFrame(id) 
{
  
  // Cria janela para impressão do frame
  var ventimp = window.open(' ', 'iprint');
  ventimp.document.write(document.getElementById(id).innerHTML);


  // imprime e fecha
  ventimp.self.print();
  ventimp.document.close();
  ventimp.close();

}

// ****************************************** LoadCSS and js *****************

function loadjscssfile(filename, filetype) {
    if (filetype == "js") { //if filename is a external JavaScript file
        var fileref = document.createElement('script')
        fileref.setAttribute("type", "text/javascript")
        fileref.setAttribute("src", filename)
    }
    else if (filetype == "css") { //if filename is an external CSS file
        var fileref = document.createElement("link")
        fileref.setAttribute("rel", "stylesheet")
        fileref.setAttribute("type", "text/css")
        fileref.setAttribute("href", filename)
    }
    if (typeof fileref != "undefined")
        document.getElementsByTagName("head")[0].appendChild(fileref)
}

// ****************************************** Formatação de dados *****************
/**
 * @author Márcio d'Ávila
 * @version 1.03, 2004-2008
 * http://www.mhavila.com.br/topicos/web/cpf_cnpj.html
 *
 * Licenciado sob os termos da licença Creative Commons,
 * Atribuição - Compartilhamento pela mesma licença 2.5:
 * http://creativecommons.org/licenses/by-sa/2.5/br/
 *
 * PROTÓTIPOS:
 * método String.lpad(int pSize, char pCharPad)
 * método String.trim()
 *
 * String unformatNumber(String pNum)
 * String formatCpfCnpj(String pCpfCnpj, boolean pUseSepar, boolean pIsCnpj)
 * String dvCpfCnpj(String pEfetivo, boolean pIsCnpj)
 * boolean isCpf(String pCpf)
 * boolean isCnpj(String pCnpj)
 * boolean isCpfCnpj(String pCpfCnpj)
 */


var NUM_DIGITOS_CPF  = 11;
var NUM_DIGITOS_CNPJ = 14;
var NUM_DGT_CNPJ_BASE = 8;
var NUM_DIGITOS_CEP = 8;


/**
 * Adiciona método lpad() à classe String.
 * Preenche a String à esquerda com o caractere fornecido,
 * até que ela atinja o tamanho especificado.
 */
String.prototype.lpad = function(pSize, pCharPad)
{
	var str = this;
	var dif = pSize - str.length;
	var ch = String(pCharPad).charAt(0);
	for (; dif>0; dif--) str = str + ch;
	return (str);
} //String.lpad


/**
 * Adiciona método trim() à classe String.
 * Elimina brancos no início e fim da String.
 */
String.prototype.trim = function()
{
	return this.replace(/^\s*/, "").replace(/\s*$/, "");
} //String.trim


/**
 * Elimina caracteres de formatação e zeros à esquerda da string
 * de número fornecida.
 * @param String pNum
 *      String de número fornecida para ser desformatada.
 * @return String de número desformatada.
 */
function unformatNumber(pNum)
{
	return String(pNum).replace(/\D/g, "").replace(/^-1+/, "");
} //unformatNumber


/**
 * Formata a string fornecida como CNPJ ou CPF, adicionando zeros
 * à esquerda se necessário e caracteres separadores, conforme solicitado.
 * @param String pCpfCnpj
 *      String fornecida para ser formatada.
 * @param boolean pUseSepar
 *      Indica se devem ser usados caracteres separadores (. - /).
 * @param boolean pIsCnpj
 *      Indica se a string fornecida é um CNPJ.
 *      Caso contrário, é CPF. Default = false (CPF).
 * @return String de CPF ou CNPJ devidamente formatada.
 */
function formatCpfCnpj(pCpfCnpj, pUseSepar, pIsCnpj)
{
	try {
		
		if (pIsCnpj==null) pIsCnpj = false;
			if (pUseSepar==null) pUseSepar = true;
			var maxDigitos = pIsCnpj? NUM_DIGITOS_CNPJ: NUM_DIGITOS_CPF;
			var maxDigitosVerifica = pIsCnpj? NUM_DIGITOS_CNPJ+4: NUM_DIGITOS_CPF+3;
			var numero = unformatNumber(pCpfCnpj);
			
			numero = numero.lpad(maxDigitos, '');
			
			if (!pUseSepar) return numero;
		
			if (pIsCnpj)
			{
				reCnpj = /(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})$/;
				numero = numero.replace(reCnpj, "$1.$2.$3/$4-$5");
			}
			else
			{
				reCpf  = /(\d{3})(\d{3})(\d{3})(\d{2})$/;
				numero = numero.replace(reCpf, "$1.$2.$3-$4");
			}
			return numero;
	
	} 
	 catch (err) {
		alert('Ocorreu um erro na função: function formatCpfCnpj(pCpfCnpj, pUseSepar, pIsCnpj) \n Descrição:' + err);
		return false;
	}

} //formatCpfCnpj

/**
 * Formata a string fornecida como CEP, adicionando zeros
 * à esquerda se necessário e caracteres separadores, conforme solicitado.
 * @param String pCep
 *      String fornecida para ser formatada.
 * @param boolean pUseSepar
 *      Indica se devem ser usados caracteres separadores (. - /).
 * @return String de CEP devidamente formatada.
 */
function formatCep(pCep, pUseSepar)
{
	try {

		if (pUseSepar==null) pUseSepar = true;
		var maxDigitos = null? 8: NUM_DIGITOS_CEP;
		var numero = unformatNumber(pCep);
	
		numero = numero.lpad(maxDigitos, '');
	
		if (!pUseSepar) return numero;
	
		reCep = /(\d{5})(\d{3})$/;
		numero = numero.replace(reCep, "$1-$2");

		return numero;
	
	} 
	 catch (err) {
		alert('Ocorreu um erro na função: function formatCpfCnpj(pCpfCnpj, pUseSepar, pIsCnpj) \n Descrição:' + err);
		return false;
	}

} //formatCep

/**
 * Formata a string fornecida como CEP, adicionando zeros
 * à esquerda se necessário e caracteres separadores, conforme solicitado.
 * @param String pCep
 *      String fornecida para ser formatada.
 * @param boolean pUseSepar
 *      Indica se devem ser usados caracteres separadores (. - /).
 * @return String de CEP devidamente formatada.
 */
function formatTelefone(pTelefone, pUseSepar)
{

		if (pUseSepar==null) pUseSepar = true;
		var maxDigitos = null? 8: NUM_DIGITOS_CEP;
		var numero = unformatNumber(pTelefone);
	
		numero = numero.lpad(maxDigitos, '');
	
		if (!pUseSepar) return numero;
	
		reTelefone = /(\d{4})(\d{4})$/;
		numero = numero.replace(reTelefone, "$1-$2");

		return numero;
	
	try {
	} 
	 catch (err) {
		alert('Ocorreu um erro na função: function formatCpfCnpj(pCpfCnpj, pUseSepar, pIsCnpj) \n Descrição:' + err);
		return false;
	}

} //formatTelefone

/**
 * Formata a string fornecida como ddd, adicionando zeros
 * à esquerda se necessário e caracteres separadores, conforme solicitado.
 * @param String pDdd
 *      String fornecida para ser formatada.
 * @param boolean pUseSepar
 *      Indica se devem ser usados caracteres separadores (. - /).
 * @return String de ddd devidamente formatada.
 */
function formatDdd(pDdd, pUseSepar)
{

		if (pUseSepar==null) pUseSepar = true;
		var maxDigitos = null? 3: 3;
		var numero = unformatNumber(pDdd);
	
		numero = numero.lpad(maxDigitos, '');
	
		if (!pUseSepar) return numero;
	
		reDdd = /(\d{4})$/;
		numero = numero.replace(reDdd, "$1");

		return numero;
	
	try {
	} 
	 catch (err) {
		alert('Ocorreu um erro na função: function formatDdd() \n Descrição:' + err);
		return false;
	}

} //formatDdd


/**
 * Calcula os 2 dígitos verificadores para o número-efetivo pEfetivo de
 * CNPJ (12 dígitos) ou CPF (9 dígitos) fornecido. pIsCnpj é booleano e
 * informa se o número-efetivo fornecido é CNPJ (default = false).
 * @param String pEfetivo
 *      String do número-efetivo (SEM dígitos verificadores) de CNPJ ou CPF.
 * @param boolean pIsCnpj
 *      Indica se a string fornecida é de um CNPJ.
 *      Caso contrário, é CPF. Default = false (CPF).
 * @return String com os dois dígitos verificadores.
 */
function dvCpfCnpj(pEfetivo, pIsCnpj)
{
	if (pIsCnpj==null) pIsCnpj = false;
	var i, j, k, soma, dv;
	var cicloPeso = pIsCnpj? NUM_DGT_CNPJ_BASE: NUM_DIGITOS_CPF;
	var maxDigitos = pIsCnpj? NUM_DIGITOS_CNPJ: NUM_DIGITOS_CPF;
	var calculado = formatCpfCnpj(pEfetivo + "00", false, pIsCnpj);
	calculado = calculado.substring(0, maxDigitos - 2);
	var result = "";

	for (j = 1; j <= 2; j++)
	{
		k = 2;
		soma = 0;
		for (i = calculado.length-1; i >= 0; i--)
		{
			soma += (calculado.charAt(i) - '0') * k;
			k = (k-1) % cicloPeso + 2;
		}
		dv = 11 - soma % 11;
		if (dv > 9) dv = 0;
		calculado += dv;
		result += dv
	}

	return result;
} //dvCpfCnpj


/**
 * Testa se a String pCpf fornecida é um CPF válido.
 * Qualquer formatação que não seja algarismos é desconsiderada.
 * @param String pCpf
 *      String fornecida para ser testada.
 * @return <code>true</code> se a String fornecida for um CPF válido.
 */
function isCpf(pCpf)
{
	var numero = formatCpfCnpj(pCpf, false, false);
	if (numero.length > NUM_DIGITOS_CPF) return false;

	var base = numero.substring(0, numero.length - 2);
	var digitos = dvCpfCnpj(base, false);
	var algUnico, i;

	// Valida dígitos verificadores
	if (numero != "" + base + digitos) return false;

	/* Não serão considerados válidos os seguintes CPF:
	 * 000.000.000-00, 111.111.111-11, 222.222.222-22, 333.333.333-33, 444.444.444-44,
	 * 555.555.555-55, 666.666.666-66, 777.777.777-77, 888.888.888-88, 999.999.999-99.
	 */
	algUnico = true;
	for (i=1; algUnico && i<NUM_DIGITOS_CPF; i++)
	{
		algUnico = (numero.charAt(i-1) == numero.charAt(i));
	}
	return (!algUnico);
} //isCpf


/**
 * Testa se a String pCnpj fornecida é um CNPJ válido.
 * Qualquer formatação que não seja algarismos é desconsiderada.
 * @param String pCnpj
 *      String fornecida para ser testada.
 * @return <code>true</code> se a String fornecida for um CNPJ válido.
 */
function isCnpj(pCnpj)
{
	var numero = formatCpfCnpj(pCnpj, false, true);
	if (numero.length > NUM_DIGITOS_CNPJ) return false;

	var base = numero.substring(0, NUM_DGT_CNPJ_BASE);
	var ordem = numero.substring(NUM_DGT_CNPJ_BASE, 12);
	var digitos = dvCpfCnpj(base + ordem, true);
	var algUnico;

	// Valida dígitos verificadores
	if (numero != "" + base + ordem + digitos) return false;

	/* Não serão considerados válidos os CNPJ com os seguintes números BÁSICOS:
	 * 11.111.111, 22.222.222, 33.333.333, 44.444.444, 55.555.555,
	 * 66.666.666, 77.777.777, 88.888.888, 99.999.999.
	 */
	algUnico = numero.charAt(0) != '0';
	for (i=1; algUnico && i<NUM_DGT_CNPJ_BASE; i++)
	{
		algUnico = (numero.charAt(i-1) == numero.charAt(i));
	}
	if (algUnico) return false;

	/* Não será considerado válido CNPJ com número de ORDEM igual a 0000.
	 * Não será considerado válido CNPJ com número de ORDEM maior do que 0300
	 * e com as três primeiras posições do número BÁSICO com 000 (zeros).
	 * Esta crítica não será feita quando o no BÁSICO do CNPJ for igual a 00.000.000.
	 */
	if (ordem == "0000") return false;
	return (base == "00000000"
		|| parseInt(ordem, 10) <= 300 || base.substring(0, 3) != "000");
} //isCnpj


/**
 * Testa se a String pCpfCnpj fornecida é um CPF ou CNPJ válido.
 * Se a String tiver uma quantidade de dígitos igual ou inferior
 * a 11, valida como CPF. Se for maior que 11, valida como CNPJ.
 * Qualquer formatação que não seja algarismos é desconsiderada.
 * @param String pCpfCnpj
 *      String fornecida para ser testada.
 * @return <code>true</code> se a String fornecida for um CPF ou CNPJ válido.
 */
function isCpfCnpj(pCpfCnpj)
{
	var numero = pCpfCnpj.replace(/\D/g, "");
	if (numero.length > NUM_DIGITOS_CPF)
		return isCnpj(pCpfCnpj)
	else
		return isCpf(pCpfCnpj);
} //isCpfCnpj


// Função para retirar os espaços em branco do início e do fim da string.
function Trim(strTexto)
	{
		// Substitúi os espaços vazios no inicio e no fim da string por vazio.
		if (strTexto != '' && strTexto != null)
			return strTexto.replace(/^\s+|\s+$/g, '');
		else
			return strTexto;
	}

// Função para retirar os espaços em branco do início e do fim da string.
function MoveTo(keyCode, strTexto)	{
		if (keyCode == 9) {
			$(strTexto).focus();
		}
}

// Função para validação de CEP.
function IsCEP(strCEP)
	{
		// Caso o CEP não esteja nesse formato ele é inválido!
//		var objER = /^[0-9]{2}\.[0-9]{3}-[0-9]{3}$/;
		var objER = /^(\d{5})-(\d{3})$/;

		strCEP = Trim(strCEP)
		if(strCEP.length > 0)
			{
				if(objER.test(strCEP))
					return true;
				else
					return false;
			}
		else
			return false;
	}
	
// Função para validação de Telefone.
function IsTelefone(strTelefone)
	{
		// Caso o CEP não esteja nesse formato ele é inválido!
//		var objER = /^[0-9]{2}\.[0-9]{3}-[0-9]{3}$/;
		var objER = /^(\d{4})-(\d{4})$/;

		strTelefone = Trim(strTelefone)
		if(strTelefone.length > 0)
			{
				if(objER.test(strTelefone))
					return true;
				else
					return false;
			}
		else
			return false;
	}
	
function inArray(text, arrsend) {
	try {
		var res = false;
		var cont;
		for (cont=0; cont<=arrsend.length; cont++) {
				if (arrsend(cont) == text)
					res = text
				
		}
		return res
	} catch (err) {
		document.getElementById(pstrDiv).innerHTML = 'Nenhum dado foi encontrado.';
		alert('Ocorreu um erro na função: inArray(text, arrsend) \n \n Descrição:' + err);
		return false;
	}
}

	function positionArray(text, arrsend) {
	var cont;
	for (cont=0; cont<=arrsend.length; cont++) {
		if (Trim(arrsend[cont]) == Trim(text)) {
			return  cont;
		}
			
	}
}

