// width to resize large images to
var maxWidth=200;
// height to resize large images to
var maxHeight=200;
// valid file types
var fileTypes=["gif","jpg","jpeg"];
// the id of the preview image tag
var outImage="previewField";
// what to display when the image is not valid
var defaultPic="spacer.gif";
// what to display when the image is not valid
var img="";
// 
var globalPic;

function preview(what, ind){
    outImage='';
    outImage="previewField";
   	outImage=outImage+ind;
    var source=what.value;
	var ext=source.substring(source.lastIndexOf(".")+1,source.length).toLowerCase();
	img = what;

	for (var i=0; i<fileTypes.length; i++) if (fileTypes[i]==ext) break;
	     globalPic=new Image();
     if (i<fileTypes.length) 
		 globalPic.src=source;
     else {
	     globalPic.src=defaultPic;
         alert("IMAGEM INVÁLIDA \nPor favor carregue uma imagem com umas das extensões:\n\n"+fileTypes.join(", "));
	 }

     setTimeout("applyChanges()",200);
}

function applyChanges(){
	 var field=document.getElementById(outImage);
	 var x=parseInt(globalPic.width);
	 var y=parseInt(globalPic.height);

	 if (x>maxWidth) {
	 	 y*=maxWidth/x;
         x=maxWidth;
	 }
	 if (y>maxHeight) {
         x*=maxHeight/y;
         y=maxHeight;
	 }

	 field.style.display = (x<1 || y<1)?"none":"";
	 field.src=globalPic.src;
	 field.width=x;
	 field.height=y;
}

/** 
 * Função que formata um campo do formulário de 
 * acordo com a máscara informada... 
 *
 * Parâmetros: 
 *  => objForm (o Objeto Form);
 *  => strField (string contendo o nome do textbox); 
 *  => sMask (mascara que define o formato que o dado será apresentado, 
 *            usando o algarismo "9" para definir números e o símbolo "!" para 
 *            qualquer caracter... 
 *  => evtKeyPress (evento);
 *
 * Uso..: <input type="textbox" name="xxx" 
 * onkeypress="return txtBoxFormat(document.rcfDownload, 'str_cep', '99999-999', event);"> 
 * 
 * Observação: As máscaras podem ser representadas como os exemplos abaixo: 
 * CEP -> 99.999-999  
 * CPF -> 999.999.999-99 
 * RG -> 99.999.999-9
 * CNPJ -> 99.999.999/9999-99 
 * Data -> 99/99/9999 
 * Tel Resid -> (99) 999-9999 
 * Tel Cel -> (99) 9999-9999 
 * Processo -> 99.999999999/999-99 
 * Inscrição Estadual -> 999.999.999-9999
 * C/C -> 999999-! 
 * E por aí vai... 
 **/
function format(field, sMask, evtKeyPress) {
   var i;
   var nCount;
   var sValue;
   var fldLen;
   var mskLen;
   var bolMask;
   var sCod;
   var nTecla;

   if(document.all) { // Internet Explorer
      nTecla = evtKeyPress.keyCode; 
   }
   else 
   if(document.layers) { // Nestcape
      nTecla = evtKeyPress.which;
   }

   sValue = field.value;

   // Limpa todos os caracteres de formatação que
   // já estiverem no campo.
   sValue = sValue.toString().replace( "-", "" );
   sValue = sValue.toString().replace( "-", "" );
   sValue = sValue.toString().replace( ".", "" );
   sValue = sValue.toString().replace( ".", "" );
   sValue = sValue.toString().replace( "/", "" );
   sValue = sValue.toString().replace( "/", "" );
   sValue = sValue.toString().replace( "(", "" );
   sValue = sValue.toString().replace( "(", "" );
   sValue = sValue.toString().replace( ")", "" );
   sValue = sValue.toString().replace( ")", "" );
   sValue = sValue.toString().replace( " ", "" );
   sValue = sValue.toString().replace( " ", "" );
   sValue = sValue.toString().replace( ":", "" );
  
   fldLen = sValue.length;
   mskLen = sMask.length;

   i = 0;
   nCount = 0;
   sCod = "";
   mskLen = fldLen;

   while (i <= mskLen) 
   {
       bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/") || (sMask.charAt(i) == ":"))
       bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))

       if (bolMask) 
	   {  sCod += sMask.charAt(i);
          mskLen++; 
	   }
       else {
         sCod += sValue.charAt(nCount);
         nCount++;
       }
       i++;
   }

   field.value = sCod;
   if (nTecla != 9 && nTecla != 8 && nTecla != 46)  {
       if (sMask.charAt(i-1) == "9")  // apenas números...
	   {   return ((nTecla > 47) && (nTecla < 58)); // números de 0 a 9
	   } 
       else { // qualquer caracter...
         return true;
       } 
   }
   else {
       return true;
   }
}

/**
 *  Função usada para abrir Help dos formulários.
 *  Parametro usado(url) caminho do help.
 **/
function popup(url, w, h) {
    var lado = (screen.width - w) / 2;
    var topo = (screen.height - h) / 2;
    janela = window.open(url, '', 'height='+h+', width='+w+', top='+topo+', left='+lado+', scrollbars=yes');		
	janela.focus();
}

/**
 *
 */
function acender(linha) {
	if ( navigator.appName == "Netscape" ) linha.bgColor = "#e5e5e5"
    else linha.style.backgroundColor = "#e5e5e5";
}

/**
 *
 */
function apagar(linha) {
	if ( navigator.appName == "Netscape" ) linha.bgColor = "#f5f5f5"
    else linha.style.backgroundColor = "#f5f5f5";
}

/**
 *
 */
function mostrarLinhas(obj) {
	if(document.getElementById(obj).style.display == "") {
		document.getElementById(obj).style.display = "none";
	}
	else {
		document.getElementById(obj).style.display = "";
	}
}

/**
 * 
 */
function deletar(on_off) {
    if (on_off == false) {
	    if (!confirm('Caro(a) Usuário, todas as informações deste Registro serão excluídas do Banco de Dados.\n\n\ Confirma a exclusão deste Registro ?')) {
		     return false;
    	}
    }
	else {
	    if (!confirm('Caro(a) Usuário, todas as informações deste Registro serão excluídas do Banco de Dados.\n Caso queira desativar temporariamente utilize a Ação ON/OFF.\n\n\ Confirma a exclusão deste Registro ?')) {
	        return false;
		}
    }
}

/**
 * 
 */
function soNumero(event){
	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	var caract = new RegExp(/^[0-9]+$/i);
	var caract = caract.test(String.fromCharCode(keyCode));

    if (keyCode != 9 && keyCode != 8 && keyCode != 46) // backspace
	if(!caract){
		keyCode=0;
		return false;
	}
}

//-----------------------------------------------------
//Funcao: MascaraMoeda
//Sinopse: Mascara de preenchimento de moeda
//Parametro:
//   objTextBox : Objeto (TextBox)
//   SeparadorMilesimo : Caracter separador de milésimos
//   SeparadorDecimal : Caracter separador de decimais
//   e : Evento
//Retorno: Booleano
//Autor: Gabriel Fróes
//Data Criação: 15/02/2005
//-----------------------------------------------------
function MascaraMoeda(objTextBox, SeparadorMilesimo, SeparadorDecimal, e){
    var sep = 0;
    var key = '';
    var i = j = 0;
    var len = len2 = 0;
    var strCheck = '0123456789';
    var aux = aux2 = '';

    var whichCode = (window.Event) ? e.which : e.keyCode;
    if (whichCode == 13) return true;
    key = String.fromCharCode(whichCode); // Valor para o código da Chave
    if (strCheck.indexOf(key) == -1) return false; // Chave inválida

    len = objTextBox.value.length;
    for(i = 0; i < len; i++)
        if ((objTextBox.value.charAt(i) != '0') && (objTextBox.value.charAt(i) != SeparadorDecimal)) break;
    aux = '';
    for(; i < len; i++)
        if (strCheck.indexOf(objTextBox.value.charAt(i))!=-1) aux += objTextBox.value.charAt(i);
    aux += key;

    len = aux.length;
    if (len == 0) objTextBox.value = '';
    if (len == 1) objTextBox.value = '0'+ SeparadorDecimal + '0' + aux;
    if (len == 2) objTextBox.value = '0'+ SeparadorDecimal + aux;
    if (len > 2) {
        aux2 = '';
        for (j = 0, i = len - 3; i >= 0; i--) {
            if (j == 3) {
                aux2 += SeparadorMilesimo;
                j = 0;
            }
            aux2 += aux.charAt(i);
            j++;
        }
        objTextBox.value = '';
        len2 = aux2.length;
        for (i = len2 - 1; i >= 0; i--)
        objTextBox.value += aux2.charAt(i);
        objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len);
    }
    return false;
}

function dataDiff(dtFim, dtIni) {
	if (!isNull(dtIni)) {  
		if (isDate(dtIni) != false) {
			if (!isNull(dtFim)) {
				if (isDate(dtFim) != false) {
					if (calculaTotalDias(dtIni, dtFim) >= 0) {
						alert("A Data Final deve ser posterior a Data Inícial");
						dtFim.className = 'tfvHighlight';
						dtFim.focus();
						document.forms[0].btnSubmit.disabled=true;
						return false;
					}
				}
			}
		}
	}
	document.forms[0].btnSubmit.disabled=false;
	dtFim.className = 'tfvNormal';
}

function isNull(campo){
	if (campo.value == "" || campo.value.length < 10) 
		return true;
	else
		return false;
}

function isDate(campo){
	var expReg = /^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[1-2][0-9]\d{2})$/;
	var msgErro = 'Formato inválido de data.';

	if ((campo.value.match(expReg)) && (campo.value!='')){
	    barras = campo.value.split("/");
	    var dia = barras[0];
	    var mes = barras[1];
	    var ano = barras[2];

        resultado = ((!isNaN(dia) && (dia > 0) && (dia < 32)) && (!isNaN(mes) && (mes > 0) && (mes < 13)) && (!isNaN(ano) && (ano > 2005) && (ano < 2008)));

        if (!resultado) {
            return false;
	    }
	    else {

			if (mes==4 || mes==6 || mes==9 || mes==11 && dia > 30) {
				return false;
			} 
			else {
				if (ano%4!=0 && mes==2 && dia>28) {
					return false;
				} 
				else {
					if (ano%4==0 && mes==2 && dia>29) {
						return false;
					} 
				}
			}
	    }
	}
	else {
		return false;
	}
}

function calculaTotalDias(dt1, dt2){

    dat1 = dt1.value.split("/");
	dia1 = dat1[0];
	mes1 = dat1[1]-1;
	ano1 = dat1[2];
	var data1 = new Date(ano1, mes1, dia1);

    dat2 = dt2.value.split("/");
	dia2 = dat2[0];
	mes2 = dat2[1]-1;
	ano2 = dat2[2];
	var data2 = new Date(ano2, mes2, dia2);

	var diferenca = data1.getTime() - data2.getTime();
	var diferenca = Math.floor(diferenca / (1000 * 60 * 60 * 24));

	return diferenca;
}
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];}
}




