﻿// JScript source code
function PadLeft(texto, caracter, qtd)
{
    if(typeof(texto) != 'undefined')
    {
        if(texto.length < qtd)
        {
            var i, quantidade = qtd - texto.length;

            for(i = 0; i < quantidade; i++)
                texto = caracter + texto;
        }
    }

    return texto
}

/**
 * Função que verifica se um determinado ano é bisexto
 */
function AnoBisexto(ano)
{
	if(ano % 400 == 0)
		return true;
	else if(ano % 4 == 0 && ano % 100 != 0)
		return true;

	return false;
}

/**
 * Verifica é uma data está no formato dd/mm/aaaa e se a mesma é válida
 */
function VerificarData(data, anoInicio, anoFim)
{
	var datas, formato;
	formato = /^\d{1,2}\/\d{1,2}\/\d{2,4}$/;

	if(!formato.test(data))
		return false;
	else
	{
		datas = data.split('/');

		if(ValidarData(datas[0], datas[1], datas[2], anoInicio, anoFim))
			return true;
	}

	return false;
}

/**
 * Verifica se uma data é válida
 */
function ValidarData(dia, mes, ano, anoInicio, anoFim)
{
	if(!anoInicio)
		anoInicio = 1970;

	if(!anoFim)
	{
		var aux = new Date();
		anoFim  = aux.getFullYear();
	}

	if(IsInteiro(dia) && IsInteiro(mes) && IsInteiro(ano))
	{
		var diaFinal = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
		
		if(AnoBisexto(ano))
			diaFinal[1] = 29;

		data = new Date(ano, mes, dia);

		if(dia < 1 || dia > diaFinal[data.getMonth() - 1])
			return false;
		
		if(mes < 1 || mes > 12)
			return false;
		
		if(ano < anoInicio || ano > anoFim)
			return false;

		return true;
	}

	return false;
}

/**
 * Verifica se um determinado valor contém apenas números
 * @return bool
 */
function IsInteiro(valor)
{
	var digitos = /^\d+$/;

	if(digitos.test(valor))
		return true;

	return false;
}

/**
 * Remove espaços do inicio e fim da string e também remove espaços consecutivos e substitui por um único espaço
 */
function Trim(inputString)
{
	if(typeof inputString != "string")
		return inputString;
	
	var retValue = inputString;
	var ch = retValue.substring(0, 1);
	
	while(ch == " ")//Verifica espaços no inicio da string
	{
		retValue = retValue.substring(1, retValue.length);
		ch = retValue.substring(0, 1);
	}
	
	ch = retValue.substring(retValue.length - 1, retValue.length);
	
	while(ch == " ")//Verifica a existência de espaços no final da string
	{
		retValue = retValue.substring(0, retValue.length - 1);
		ch = retValue.substring(retValue.length - 1, retValue.length);
	}
	
	while(retValue.indexOf("  ") != -1)//Remove espaços consecutivos
	{
		retValue = retValue.substring(0, retValue.indexOf(" ")) +
		retValue.substring(retValue.indexOf(" ") + 1, retValue.length);
	}
	
	return retValue;
}

/**
 * Codifica os dados para envio via post por ajax
 *@version 1.0
 */
function UrlEncode(string) {
    string = string.replace(/\r\n/g,"\n");
    var utftext = "";

    for (var n = 0; n < string.length; n++) {

        var c = string.charCodeAt(n);

        if (c < 128) {
            utftext += String.fromCharCode(c);
        }
        else if((c > 127) && (c < 2048)) {
            utftext += String.fromCharCode((c >> 6) | 192);
            utftext += String.fromCharCode((c & 63) | 128);
        }
        else {
            utftext += String.fromCharCode((c >> 12) | 224);
            utftext += String.fromCharCode(((c >> 6) & 63) | 128);
            utftext += String.fromCharCode((c & 63) | 128);
        }

    }

    return utftext;
}
function UrlDecode(utftext)
{
    var string = "";
    var i = 0;
    var c = c1 = c2 = 0;

    while ( i < utftext.length ) {

        c = utftext.charCodeAt(i);

        if (c < 128) {
            string += String.fromCharCode(c);
            i++;
        }
        else if((c > 191) && (c < 224)) {
            c2 = utftext.charCodeAt(i+1);
            string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
            i += 2;
        }
        else {
            c2 = utftext.charCodeAt(i+1);
            c3 = utftext.charCodeAt(i+2);
            string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
            i += 3;
        }

    }

    return string;
}

function QueryString(variavel)
{
    var variaveis=location.href.replace(/\x3F/,"").replace(/\x2B/g," ").split("&")
    var nvar    
    if(variaveis!="")
    {
       var qs=[]
       for(var i=0;i<variaveis.length;i++)
       {
            nvar=variaveis[i].split("=")
            qs[nvar[0]]=unescape(nvar[1])
       }
       return qs[variavel]
    }
    return null
}
function QueryStringCrypt(variavel)
{
    var variaveis = endecrypt(location.href, false).replace(/\x3F/,"").replace(/\x2B/g," ").split("&")
    var nvar    
    if(variaveis!="")
    {
       var qs=[]
       for(var i=0;i<variaveis.length;i++)
       {
            nvar=variaveis[i].split("=")
            qs[nvar[0]]=unescape(nvar[1])
       }
       return qs[variavel]
    }
    return null
}
function sleep(milliseconds) {
  var start = new Date().getTime();
  for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > milliseconds){
      break;
    }
  }
}

function endecrypt(text,bool)
{
    var char, code, diff=1, temp="";    
    for (var i=0; i<text.length; i++) {
        char = text.charCodeAt(i);
        (bool) ? code=char+diff : code=char-diff;
        temp += String.fromCharCode(code);
    }
    return temp;
}
function RetirarAcentos(palavra) 
{
    com_acento = 'áàãâäéèêëíìîïóòõôöúùûüçÁÀÃÂÄÉÈÊËÍÌÎÏÓÒÕÖÔÚÙÛÜÇ';
    sem_acento = 'aaaaaeeeeiiiiooooouuuucAAAAAEEEEIIIIOOOOOUUUUC';
    nova='';
    for(i=0;i<palavra.length;i++) 
    {
        if (com_acento.indexOf(palavra.substr(i,1))>=0) 
        {
            nova+=sem_acento.substr(com_acento.indexOf(palavra.substr(i,1)),1);
        }
        else {
            nova+=palavra.substr(i,1);
        }
    }
    return nova;
}
function abrirLink(link)
{
    if (window.opener != null)
    {
        if (window.opener.top != null)
            window.opener.top.location = link;
        else
            window.opener.location = link;  
    }
    else
    {
        window.open(link,'_top');
    }
}
function AdicionarEvento(el, func, evento)
{
	if (el.attachEvent)
    {
	    el.attachEvent ("on" + evento, func);
    }              
    else if(el.addEventListener)
    {
	    el.addEventListener (evento, func, false);
    }
}
function TrataApostrofo(palavra)
{
    if (palavra.indexOf("'") > 0)
        palavra = palavra.replace("'", "\'");
    return palavra;
}

function QueryStringInUrl(Url,variavel)
{
    var variaveis=Url.substr(Url.indexOf('?')+1).replace(/\x3F/,"").replace(/\x2B/g," ").split("&")
    var nvar    
    if(variaveis!="")
    {
       var qs=[]
       for(var i=0;i<variaveis.length;i++)
       {
            nvar=variaveis[i].split("=");
            qs[nvar[0]]=unescape(nvar[1]);
       }
       if(qs[variavel] != null)
       {
           return qs[variavel];
       }
    }
    return '';
}

function GetNavegador()
{
    var na = navigator.userAgent;
    var n = na.toLowerCase();

    if (n.indexOf('msie 6.0')>= 0)
        return EnumNavegador.IE6;
    else if (n.indexOf('msie')>= 0)
        return 1;
    else if (n.indexOf('navigator')>= 0)
        return EnumNavegador.NETSCAPE;
    else if (n.indexOf('firefox')>= 0)
        return EnumNavegador.FIREFOX;
    else if (n.indexOf('chrome')>= 0)
        return EnumNavegador.CHROME;
    else if (n.indexOf('safari')>= 0)
        return EnumNavegador.SAFARI;
    else
        return EnumNavegador.OUTRO;
}