// ==============================================================================
function ContadorDeCaracteres(field, countfield, maxlimit)
{
	if(field.value.length > maxlimit)
		field.value = field.value.substring(0, maxlimit);
	else
		countfield.value = maxlimit - field.value.length;
}
// ==============================================================================
// Função para validação de campos Numéricos.
function ValidaCampoNumerico( campo, nome ){
var temp, ret
var digits="0123456789"

	campo = eval(campo)
	bRet	  = true
	
	for (var i=0;i<campo.value.length;i++){
	  	temp=campo.value.substring(i,i+1)
		if (digits.indexOf(temp)==-1){
       		alert("Por favor, o campo " + nome + " deve ser preenchido apenas com números!")
       		campo.focus()
       		i=campo.value.length+1
       		bRet = false
      		}
     	}
     	
     return bRet
}
     		
// ==============================================================================
// Função para validação do C.P.F.
function ValidarCPF(obj)
{
      var conf=0
      var temp
      var temp1
      var cont
      var dg1
      var dg1_1
      var dg2
      var dg2_2
      var digits="0123456789"

      for (var i=0;i<obj.value.length;i++){
         temp1=temp
         temp=obj.value.substring(i,i+1)
         if (temp==temp1){
            conf=conf+1
         }
         if (digits.indexOf(temp)==-1){
            alert("Por Favor, o Campo CPF deve ser preenchido apenas com números!")
            obj.focus()
            return false;
         }
      }
      if (conf==10){
         alert("Número do CPF Inválido!")
         obj.focus()
         return false;
      }
      cont=0
      for (var i=0;i<obj.value.length;i++){
         temp=obj.value.substring(i,i+1)
         cont=cont+1
      }
      if (cont!=0){
         if (cont!=11){
            alert("Número do CPF Inválido!")
            obj.focus()
            return false;}
         else{
            cont=1
            dg1=0
            dg2=0
            
            for (var i=0;i<obj.value.length;i++){
               temp=Math.abs(obj.value.substring(i,i+1))
               if (cont==1){
                  dg1=dg1+Math.abs(temp*10)}
               if (cont==2){
                  dg1=dg1+Math.abs(temp*9)}
               if (cont==3){
                  dg1=dg1+Math.abs(temp*8)}
               if (cont==4){
                  dg1=dg1+Math.abs(temp*7)}
               if (cont==5){
                  dg1=dg1+Math.abs(temp*6)}
               if (cont==6){
                  dg1=dg1+Math.abs(temp*5)}
               if (cont==7){
                  dg1=dg1+Math.abs(temp*4)}
               if (cont==8){
                  dg1=dg1+Math.abs(temp*3)}
               if (cont==9){
                  dg1=dg1+Math.abs(temp*2)}
               if (cont==10){
                  dg1_1=temp}
               if (cont==11){
                  dg2_2=temp}
               cont=cont+1
            }
            dg1=11-(dg1-((Math.floor(dg1/11))*11))
            if (dg1==10 || dg1==11){
               dg1=0
            }
            if (dg1!=dg1_1){
               alert("Número do CPF Inválido!")
               obj.focus()
               return false;}
            else{
               cont=1
               for (var i=0;i<obj.value.length;i++){
                  temp=Math.abs(obj.value.substring(i,i+1))
                  if (cont==1){
                     dg2=dg2+Math.abs(temp*11)}
                  if (cont==2){
                     dg2=dg2+Math.abs(temp*10)}
                  if (cont==3){
                     dg2=dg2+Math.abs(temp*9)}
                  if (cont==4){
                     dg2=dg2+Math.abs(temp*8)}
                  if (cont==5){
                     dg2=dg2+Math.abs(temp*7)}
                  if (cont==6){
                     dg2=dg2+Math.abs(temp*6)}
                  if (cont==7){
                     dg2=dg2+Math.abs(temp*5)}
                  if (cont==8){
                     dg2=dg2+Math.abs(temp*4)}
                  if (cont==9){
                     dg2=dg2+Math.abs(temp*3)}
                  if (cont==10){
                     dg2=dg2+Math.abs(temp*2)}
                  cont=cont+1
               }
               dg2=11-(dg2-((Math.floor(dg2/11))*11))
               if (dg2==10 || dg2==11){
                  dg2=0
               }
               if (dg2!=dg2_2){
                  alert("Número do CPF Inválido!")
                  obj.focus()
                  return false;
               }
            }
         }
      }
   }

//================================================
function ValidarCNPJ(obj){
   var temp
   var cont
   var dg1
   var dg1_1
   var dg2
   var dg2_2
   var digits="0123456789"


   for (var i=0;i<obj.value.length;i++){
      temp=obj.value.substring(i,i+1)
      if (digits.indexOf(temp)==-1){
         alert("Por Favor, o Campo CNPJ deve ser preenchido apenas com números!")
         obj.focus()
         return
      }
   }
   cont=0
   for (var i=0;i<obj.value.length;i++){
      temp=obj.value.substring(i,i+1)
      cont=cont+1
   }
   if (cont!=0){
      if (cont!=14){
         alert("Número do CNPJ Inválido!")
         obj.focus()}
      else{
         cont=1
         dg1=0
         dg2=0
            
         for (var i=0;i<obj.value.length;i++){
            temp=Math.abs(obj.value.substring(i,i+1))
            if (cont==1){
               dg1=dg1+Math.abs(temp*5)}
            if (cont==2){
               dg1=dg1+Math.abs(temp*4)}
            if (cont==3){
               dg1=dg1+Math.abs(temp*3)}
            if (cont==4){
               dg1=dg1+Math.abs(temp*2)}
            if (cont==5){
               dg1=dg1+Math.abs(temp*9)}
            if (cont==6){
               dg1=dg1+Math.abs(temp*8)}
            if (cont==7){
               dg1=dg1+Math.abs(temp*7)}
            if (cont==8){
               dg1=dg1+Math.abs(temp*6)}
            if (cont==9){
               dg1=dg1+Math.abs(temp*5)}
            if (cont==10){
               dg1=dg1+Math.abs(temp*4)}
            if (cont==11){
               dg1=dg1+Math.abs(temp*3)}
            if (cont==12){
               dg1=dg1+Math.abs(temp*2)}
            if (cont==13){
               dg1_1=temp}
            if (cont==14){
               dg2_2=temp}
            cont=cont+1
         }
         dg1=11-(dg1-((Math.floor(dg1/11))*11))
         if (dg1==10 || dg1==11){
            dg1=0
         }
         if (dg1!=dg1_1){
            alert("Número do CNPJ Inválido!")
            obj.focus()}
         else{
            cont=1
            for (var i=0;i<obj.value.length;i++){
               temp=Math.abs(obj.value.substring(i,i+1))
               if (cont==1){
                  dg2=dg2+Math.abs(temp*6)}
               if (cont==2){
                  dg2=dg2+Math.abs(temp*5)}
               if (cont==3){
                  dg2=dg2+Math.abs(temp*4)}
               if (cont==4){
                  dg2=dg2+Math.abs(temp*3)}
               if (cont==5){
                  dg2=dg2+Math.abs(temp*2)}
               if (cont==6){
                  dg2=dg2+Math.abs(temp*9)}
               if (cont==7){
                  dg2=dg2+Math.abs(temp*8)}
               if (cont==8){
                  dg2=dg2+Math.abs(temp*7)}
               if (cont==9){
                  dg2=dg2+Math.abs(temp*6)}
               if (cont==10){
                  dg2=dg2+Math.abs(temp*5)}
               if (cont==11){
                  dg2=dg2+Math.abs(temp*4)}
               if (cont==12){
                  dg2=dg2+Math.abs(temp*3)}
               if (cont==13){
                  dg2=dg2+Math.abs(temp*2)}
               cont=cont+1
            }
            dg2=11-(dg2-((Math.floor(dg2/11))*11))
            if (dg2==10 || dg2==11){
               dg2=0
            }
            if (dg2!=dg2_2){
               alert("Número do CNPJ Inválido!")
               obj.focus()
            }
         }
      }
   }
}


// ==============================================================================
// Função para validação de campos em branco. Não permite que sejam digitados
// caracteres repetidos.
function CaracterReplicado( str, n ){

	var i, j, nLen, sCaracter

	nLen 	= str.length;
	sChar 	= "";
	sAnte 	= "";
	k	= 1;

	for (i=0;i<(nLen);i++){

		sChar = str.substring(i,i+1);
	
		if (sChar.toUpperCase()==sAnte.toUpperCase()){
			k=k+1;
			}
		else {
			sAnte = sChar;
			k=1;
			}
			
		if (k>=n)
			i = 999;
		}
	if (k>=n)
		return false;
	else
		return true;
}
//*********************************************************************************************
// Muda a cor do background do objeto.
function CursorMenu(obj, cor)
{
	obj.style.backgroundColor=cor;
}

//*********************************************************************************************
//
function PopUpCentraliza(nLargura, nAltura){
var vaxis=((window.screen.height)/2)-(nAltura/2);
var haxis=((window.screen.width)/2)-(nLargura/2);
window.moveTo( haxis, vaxis );
}
//*********************************************************************************************
//
function PopUpAjustaJanela( nLargura, nAltura ){
	var x=(screen.width);
	var y=(screen.height);

	PopUpCentraliza( nLargura, nAltura );
}

//*********************************************************************************************
//
//---------------------------------------------------------
function BannerFechar(idBanner)
{
    idBanner = document.getElementById(idBanner);
	idBanner.style.display = 'none';
}
//*********************************************************************************************
//
function Opacidade(idElemento, opacidade){

	var Navegador = navigator.appName.toLowerCase();

	var isIE = (Navegador.indexOf('microsoft') != -1);

	if (isIE)
		idElemento.style["filter"] = "Alpha(opacity=" + opacidade + ")";
	else
		idElemento.style["opacity"] = opacidade/100;
}


//*********************************************************************************************
// Função para alterar classe CSS em um elemento do tipo "ABA".
function DefinirClasseCSS(idElem, objPai, classePadrao, classeAtiva, tag){
	
	var objPai = document.getElementById(objPai);
	var elem = objPai.getElementsByTagName(tag);

	for (i=0;i<elem.length;i++){
		elem[i].className = classePadrao;
	}
	idElem.className = classeAtiva;
}
//*********************************************************************************************
String.prototype.replaceAll = function( de, para ){
	var str = this;
	var pos = str.indexOf(de);
	while (pos >= 0){
		str = str.replace(de, para);
		pos = str.indexOf(de);
	}
	return (str);
}
sortitems=0;  // Ordena itens nas listas? (1 ou 0)
//*********************************************************************************************
//
function MoveTL(fbox,tbox) {
// Move conteúdo de text para select
  if(fbox.value!="") {
    var no=new Option();
    no.value=fbox.value;
    no.text=fbox.value;
    tbox.options[tbox.options.length]=no;
    fbox.value="";
    if (sortitems) SortD(tbox);
  }
  else {
    alert("Item não preenchido.")
  }
}
//*********************************************************************************************
//
function MoveLT(fbox,tbox) {
// Move conteúdo de select para text
  var Moveu=false;
  for(var i=0;i<fbox.options.length;i++) {
    if(fbox.options[i].selected && fbox.options[i].value!="") {
      tbox.value=fbox.options[i].text;
      fbox.options[i].value="";
      fbox.options[i].text="";
      Moveu=true;
    }
  }
  if(Moveu) {
    BumpUp(fbox);
  }
  else {
    alert("Nenhum item foi selecionado.")
  }
}
//*********************************************************************************************
//
function MoveLL(fbox,tbox) {
// Move conteúdo entre selects
  var Moveu=false;
  for(var i=0;i<fbox.options.length;i++) {
    if(fbox.options[i].selected && fbox.options[i].value!="") {
      var no=new Option();
      no.value=fbox.options[i].value;
      no.text=fbox.options[i].text;
      tbox.options[tbox.options.length]=no;
      fbox.options[i].value="";
      fbox.options[i].text="";
      Moveu=true;

    }
  }
  if(Moveu) {
    BumpUp(fbox);
    if (sortitems) SortD(tbox);
    }
  else {
    alert("Nenhum item foi selecionado.")
  }
}

//*********************************************************************************************
//
function BumpUp(box) {
  for(var i=0;i<box.options.length;i++) {
    if(box.options[i].value=="") {
      for(var j=i;j<box.options.length-1;j++) {
        box.options[j].value=box.options[j+1].value;
        box.options[j].text=box.options[j+1].text;
      }
      var ln=i;
      break;
    } 
  }
  if(ln<box.options.length) {
    box.options.length -= 1;
    BumpUp(box);
  }
}
//*********************************************************************************************
//
function SortD(box)  {
  var temp_opts=new Array();
  var temp=new Object();
  for(var i=0;i<box.options.length;i++) {
    temp_opts[i]=box.options[i];
  }
  for(var x=0;x<temp_opts.length-1;x++) {
    for(var y=(x+1);y<temp_opts.length;y++) {
      if(temp_opts[x].text>temp_opts[y].text) {
        temp=temp_opts[x].text;
        temp_opts[x].text=temp_opts[y].text;
        temp_opts[y].text=temp;
        temp=temp_opts[x].value;
        temp_opts[x].value=temp_opts[y].value;
        temp_opts[y].value=temp;
      }
    }
  }
  for(var i=0;i<box.options.length;i++) {
    box.options[i].value=temp_opts[i].value;
    box.options[i].text=temp_opts[i].text;
  }
}
//*********************************************************************************************
//
function SelectAll(fbox) {
// Seleciona todos os itens do select fbox
  for(var i=0;i<fbox.options.length;i++) {
    fbox.options[i].selected=true;
  }
}
/**************************************************************************
Função para simular um Tab quando for pressionado a tecla Enter
Exemplo: onKeyDown="TABEnter()"
Funciona em TEXT BOX,RADIO BUTTON, CHECK BOX e menu DROP-DOWN
**************************************************************************/
/*
function TABEnter(oEvent){
  var oEvent = (oEvent)? oEvent : event;
  var oTarget =(oEvent.target)? oEvent.target : oEvent.srcElement;
  if(oEvent.keyCode==13)
	{
    oEvent.keyCode = 9;

//	oEvent.keyCode = 0;
//	Perform(WM_NEXTDLGCTL,0,0);
	}
  if(oTarget.type=="text" && oEvent.keyCode==13)
    return false;
    oEvent.keyCode = 9;
  if (oTarget.type=="radio" && oEvent.keyCode==13)
    oEvent.keyCode = 9;

}
*/

/***************************************************************************
Setar apenas um radiobutton em um gridview ou similar.
**/
function SetUniqueRadioButton(frm, current)    
{

    f = document.getElementById( frm );
   
    for(i = 0; i < f.elements.length; i++)
    {
        elm = f.elements[i]
        if (elm.type == 'radio')
        {
            elm.checked = false;
        }
    }
    current.checked = true;
}
//*********************************************************************************************
//
function RetirarCaracter(obj)
{ 
	obj.value = obj.value.replace( /([^0-9])/g,'');
}
//*********************************************************************************************
//
function RetirarCaracterEspecial(obj)
{ 
	obj.value = obj.value.replace( /([^0-9^A-Z^a-z;_;-])/g,'');
}
//*********************************************************************************************
//
function ValidarEmail(idEmail)
{

	idEmail.value = idEmail.value.toLowerCase();

	if (idEmail.value=="")
		return true;

	if (idEmail.value.indexOf( "@" ) < 0 ){
		alert("E-mail inválido!");
		idEmail.focus();
		return false;
		}

	if (idEmail.value.indexOf( "www." ) >= 0 ){
		alert("E-mail inválido!");
		idEmail.focus();
		return false;
		}

	if (idEmail.value.indexOf( "." ) < 0 ){
		alert("E-mail inválido!");
		idEmail.focus();
		return false;
		}

	if (idEmail.value.indexOf( "," ) >= 0 ){
		alert("E-mail inválido!");
		idEmail.focus();
		return false;
		}

	if (idEmail.value.indexOf( "/" ) >= 0 ){
		alert("E-mail inválido!");
		idEmail.focus();
		return false;
		}

	if ((idEmail.value.indexOf( "hotmail.com." ) >= 0 ) || (idEmail.value.indexOf( "gmail.com." ) >= 0)){
		alert("E-mail inválido!");
		idEmail.focus();
		return false;
		}

	if (idEmail.value.length < 4){
		alert("E-mail inválido!");
		idEmail.focus();
		return false;
		}

	return true;
}
//*********************************************************************************************
function MarqueeVelocidade(marquee, numero)
{
	marquee.scrollAmount = numero
}
