/*|---------------------------------->>  <<----------------------------------|

Include para ser usado na estrutura padrão dos sites. deve chamado 
no arquivo head.inc.php.

Sr. Programador, todas as funções em javascript que serão utilizadas no site
deverão serem declaradas apenas neste arquivo.

|---------------------------------->>  <<----------------------------------|*/

// Método inArray para javascript
function inArray(vetor,value)
{
    var i;
    for (i in vetor) {
        if (vetor[i] === value) {
            return true;
        }
    }
    return false;
}

// Método indexOf para javascript
function indexOf(vetor,value)
{
    var i;
    for (i in vetor) {
        if (vetor[i] === value) {
            return i;
        }
    }
    return false;
}

function valida_dinamico(dados, alerta)
{
	for(var i=0; i<dados.length; i++)
	{
		if(dados[i].id == 'true' && !dados[i].value)
		{
			alert(alerta);
			dados[i].focus();
			return false;
		}
	}
	if(dados.name == 'orcamento_aberto' && dados.cli_senha.value != dados.cli_senha1.value)
	{
		alert('As senha estão diferentes, por favor confira');
		dados.cli_senha1.value = '';
		dados.cli_senha1.focus();
		return false;
	}
	
	return true;
}

// Nova valida_dinamico
campos_obrigatorios         = new Array();
campos_inteiros             = new Array();
campos_float                = new Array();
nomes_campos                = new Array();
minimo_caracteres_campos    = new Array();

var er_int          = /[^0-9]/;
var er_float        = /[^0-9,.]/;

function valida_dinamico2(form)
{
    erro = "";
    elemento_foco = "";
    for(n = 0;n < form.elements.length; n++)
	{
        elemento = form.elements[n];

        //alert(elemento.name+": "+campos_obrigatorios.inArray(elemento.name))

        // Campos obrigatórios
        if(inArray(campos_obrigatorios,elemento.name) && elemento.value == "")
        {
            if(nomes_campos[elemento.name])
                nome_campo = nomes_campos[elemento.name];
            else
                nome_campo = elemento.name;

            if(erro != "")
                erro += "\n";

            erro += "- "+nome_campo+": campo obrigatório.";

            if(elemento_foco == "")
                elemento_foco = elemento;
            continue;

        }

        // Campos inteiros
        if(inArray(campos_inteiros,elemento.name) && er_int.test(elemento.value) == true)
        {
            if(nomes_campos[elemento.name])
                nome_campo = nomes_campos[elemento.name];
            else
                nome_campo = elemento.name;

            if(erro != "")
                erro += "\n";

            erro += "- "+nome_campo+": valor inválido digitado. O valor do campo deve ser um número inteiro.";

            if(elemento_foco == "")
                elemento_foco = elemento;
            continue;

        }

        // Campos float
        if(inArray(campos_float,elemento.name) && er_float.test(elemento.value) == true)
        {
            if(nomes_campos[elemento.name])
                nome_campo = nomes_campos[elemento.name];
            else
                nome_campo = elemento.name;

            if(erro != "")
                erro += "\n";

            erro += "- "+nome_campo+": valor inválido digitado. O valor do campo deve ser numérico.";

            if(elemento_foco == "")
                elemento_foco = elemento;
            continue;

        }

        // Mínimo de caracteres
        if(minimo_caracteres_campos[elemento.name] && elemento.value.length < minimo_caracteres_campos[elemento.name])
        {
            if(nomes_campos[elemento.name])
                nome_campo = nomes_campos[elemento.name];
            else
                nome_campo = elemento.name;

            if(erro != "")
                erro += "\n";

            erro += "- "+nome_campo+": o campo deve conter no mínimo "+minimo_caracteres_campos[elemento.name]+" caracteres.";

            if(elemento_foco == "")
                elemento_foco = elemento;
            continue;

        }
	}

    if(erro == "")
    {
        return true;
    }
    else
    {
        try
        {
            elemento_foco.focus();
            elemento_foco.select();
        }
        catch(err)
        {

        }
        alert(erro);
        return false;
    }
}

///////////

function meio_largura(largura)
{ // Parâmetro: númerico, largura da janela pop-up
	var meia_janela = largura/2;
	tamanho_largura = screen.width/2;
	dist_lateral = (tamanho_largura) - meia_janela;
	return dist_lateral;
}

function meio_altura(altura)
{ // Parâmetro: númerico, Altura da janela pop-up
	var meia_janela = altura/2;
	tamanho_altura = screen.height/2;
	dist_topo = (tamanho_altura) - meia_janela;
	return dist_topo;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function abre_popup(end,altura,largura)
{
	var esquerda	= meio_largura(largura);
	var topo 		= meio_altura(altura);

	window.open(end,'galeria','width='+largura+', height='+altura+', top='+topo+', left='+esquerda);
	void(0);
}

function valida_login(form,mensagem)
{
    if(form.login_name.value=="" || form.senha.value=="")
    {
        alert(mensagem);
        form.login_name.focus();
        return false;
    }
    else
        return true;
}

function evita_letra(tecla)
{
     if (tecla.keyCode < 45 || tecla.keyCode > 57 || tecla.keyCode == 47 || tecla.keyCode == 45 || tecla.keyCode == 46)  
          tecla.returnValue = false;  
}

function FormataData2(campo,teclapres)
{ // Máscara para os campos de data
	var tecla = teclapres.keyCode;
	vr = campo.value;
	vr = vr.replace( ".", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	tam = vr.length + 1;

	if ( tecla != 9 && tecla != 8 )
	{
		if ( tam > 2 && tam < 5 )
			campo.value = vr.substr( 0, tam - 2  ) + '/' + vr.substr( tam - 2, tam );
		if ( tam >= 5 && tam <= 10 )
			campo.value = vr.substr( 0, 2 ) + '/' + vr.substr( 2, 2 ) + '/' + vr.substr( 4, 4 ); 
	}
}

//Função pra abrir janela no centro da página
function OpenNewWindow(mypage,w,h,myname){

var winl = (screen.width- w)/2;

var wint = ((screen.height- h)/2)-25;

settings='height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars=yes,toolbar=no,location=no,status=no,menubar=no,resizable=no,dependent=no,nirectories=no,status=no,fullscreen=0'

win=window.open(mypage,myname,settings)

if(parseInt(navigator.appVersion) >= 4){win.window.focus();}

}

// Fade gradativo
//Publicado por Johnathan Cardoso
//djhonyy@hotmail.com
//www.cdsbrasil.com.br
/*************************************************/
// Aperfeiçoado por Adriano de Oliveira Gonçalves
// adriano@ison.com.br
// http://adriano.ison.com.br

var fadeGradativaObjects = new Array();
var fadeGradativaTimers = new Array();

function fadeGradativa(id, destOp, rate, delta){

    if(!fadeGradativaObjects[id])
        fadeGradativaObjects[id]    = new Object();
        
    if(!fadeGradativaTimers[id])
        fadeGradativaTimers[id]     = new Object();
        
    object = document.getElementById(id);

    /*if (object != "[object]"){
        setTimeout("fadeGradativa('"+id+"',"+destOp+","+rate+","+delta+")",0);
        return;
    } */

    clearTimeout(fadeGradativaTimers[object.sourceIndex]);

    bname=navigator.appName;

    if(bname.indexOf("Microsoft")!=-1)
    {
        opacidade = object.filters.alpha.opacity;
        
        diff = destOp-opacidade;
        direction = 1;
        if (opacidade > destOp){
            direction = -1;
        }
        
        delta=Math.min(direction*diff,delta);
        object.filters.alpha.opacity+=direction*delta;
        
        opacidade = object.filters.alpha.opacity;
    }
    else if(bname.indexOf("Netscape")!=-1)
    {
        opacidade = object.style.MozOpacity*100;

        diff = destOp-opacidade;
        direction = 1;
        if (opacidade > destOp){
            direction = -1;
        }

        delta=Math.min(direction*diff,delta);
        object.style.MozOpacity = (opacidade+(direction*delta))/100;

        opacidade = object.style.MozOpacity*100;

    }
    else
        return;
        
    if (opacidade != destOp){
        fadeGradativaObjects[id][object.sourceIndex]=object;
        fadeGradativaTimers[id][object.sourceIndex]=setTimeout("fadeGradativa('"+id+"',"+destOp+","+rate+","+delta+")",rate);
    }
}

function obrigatorio(campo,label)
{
    nomes_campos[campo] = label;
    return campos_obrigatorios.push(campo);
}  