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_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_findObj(n, d) { //v3.0
  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); 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];}
}

var preload=new Array();    // array que guarda as imagens que devem ser carregadas no preload
function preloadImages() {
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length; for(i=0; i<preload.length; i++)
    if (preload[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=preload[i];}}
}

var inicializa="";          // string que guarda os comandos que devem ser executados ao carregar a pagina


function AnoBissexto(Ano)
{
  var DifAno = (Ano/4) - Math.ceil(Ano/4)
  if (DifAno != 0)
    return (false);

  return (true);
}

// Funcao que faz validacao de data

function ValidaData(CampoData)
{
  inStr = CampoData.value;

  var ok = true;
  var ch =  inStr.substring(0,2)
  var i = 0;
  AnoBiss = (AnoBissexto(inStr.substring(6,10)))
  
  while ( i < 6)
  {
    i++;

    if (i == 1)
    {
      Dia = ch;

      if (isNaN(Dia) || ((Dia < 1) || (Dia > 31)))
        ok = false
      else
        ch = inStr.substring(2,3);
    }

    if (i == 2)
      if (ch != "/")
        ok = false
      else
        ch = inStr.substring(3,5);

    if (i == 3)
    {
      Mes = ch;

      if (isNaN(Mes) || ((Mes < 1) || (Mes > 12)))
        ok = false
      else

        if (((! AnoBiss) && Mes == 2 && Dia > 28) || ((AnoBiss) && Mes == 2 && Dia > 29) || (Dia > 30 && (Mes == 4 || Mes == 6 || Mes == 9 || Mes == 11))) 
          ok = false
        else
          ch = inStr.substring(5,6);
    }

    if (i == 4)
      if (ch != "/")
        ok = false
      else
        ch = inStr.substring(6,10);

    if (i == 5)
    {
      Ano = ch;

      if (isNaN(Ano) || Ano < 1990)
        ok = false;
    }
  }
  return (ok);
}

// Funcao que faz validacao de data

function ValidaHora(CampoHora)
{
  inStr = CampoHora.value;

  var ok = true;
  var ch =  inStr.substring(0,2)
  var i = 0;
  var tam = inStr.length;

  if (tam != 5)
    ok = false
  else {
    while ( i < 3)
    {
      i++;
  
      if (i == 1)
      {
        Hora = ch;

        if (isNaN(Hora) || ((Hora < 0) || (Hora > 23)))
          ok = false
        else
          ch = inStr.substring(2,3);
      }

      if (i == 2)
        if (ch != ":")
          ok = false
        else
          ch = inStr.substring(3,5);

      if (i == 3)
      {
        Min = ch;
  
        if (isNaN(Min) || ((Min < 0) || (Min > 59)))
          ok = false
      }
    }
  }
  return (ok);
}


function isFloat(CampoFloat)
{
  inStr = CampoFloat.value;
  inAux = "";
  inLen = inStr.length;
  var cont = 0;

  if (inStr == ".")
    return (false);
    
  if (inStr == ",")
    return (false);
    
  for(var i = 0; i < inLen; i++)
  {
    var ch = inStr.substring(i, i+1)

    if ((ch < "0") || (ch > "9"))
      if ((ch != ".") && (ch != ","))
        return (false);

    if ((ch == ".") || (ch == ","))
      cont++;

    if (cont >= 2)
      return (false);

    if (ch == ".")
      inAux = inAux + ","
    else 
      inAux = inAux + ch;
  }
  
  CampoFloat.value = inAux;
  return (true);
}

function CampoBranco(theField)
{
  inStr = theField.value;
  inLen = inStr.length;
      
  for(var i = 0; i < inLen; i++)
  {
    var ch = inStr.substring(i, i+1)

    if (ch != " ")
      return (false);   
  }

  theField.Value = "";
  return (true);
}

function criaArray(n)
{
  this.length = n
}

function isInteger(CampoInt)
{
  inStr = CampoInt.value;
  inAux = "";
  inLen = inStr.length;
  var cont = 0;

  for(var i = 0; i < inLen; i++)
  {
    var ch = inStr.substring(i, i+1)

    if ((ch < "0") || (ch > "9"))
       return (false);

    if (cont >= 2)
      return (false);

 }
  
  return (true);
}


function CampoBranco(theField)
{
  var inStr = theField.value;
  var inLen = inStr.length;
      
  for(var i = 0; i < inLen; i++)
  {
    var ch = inStr.substring(i, i+1)

    if (ch != " ")
      return (false);   
  }

  //Permissoes de seguranca nao deixavam a atribuicao funcionar 
  inStr = "";
  return (true);
}

function CampoNumero(theNumber)
{
  inStr = theNumber.value;
  inLen = inStr.length;

  for(var i = 0; i < inLen; i++)
  {
    var ch = inStr.substring(i, i+1)
  
    if ((ch < "0") || (ch > "9"))
      return (false);
  }
  
  return (true);
}

function CampoData(data,formato)
{
  if (data.length < 10) 
  {   
    return (false);
  }
  myRe = new RegExp;

  if (formato == 1)
    myRe=/([0-2][0-9]|3[01])\/(0[1-9]|1[0-2])\/([12][0-9]{3,3})/ig;
  else if (formato == 2)
    myRe=/(0[1-9]|1[0-2])\/([0-2][0-9]|3[01])\/([12][0-9]{3,3})/ig;
  else if (formato == 3)
    myRe=/([12][0-9]{3,3})\/(0[1-9]|1[0-2])\/([0-2][0-9]|3[01])/ig;
  else
    return(false);
    
  if (! eval("myRe.exec(data)"))
  {
    return false;
  }
  myRe.exec(data)
  
  if (formato == 1)
  {
    var dia = RegExp.$1;
    var mes = RegExp.$2;
    var ano = RegExp.$3;
  }
  else if (formato == 2)
  {
    var mes = RegExp.$1;
    var dia = RegExp.$2;
    var ano = RegExp.$3;
  }
  else if (formato == 3)
  {
    var ano = RegExp.$1;
    var mes = RegExp.$2;
    var dia = RegExp.$3;
  }
  
  if (dia.charAt(0) == "0")
  {
    dia = dia.charAt(1);
  }  
  
  if (mes.charAt(0) == "0")
  {
    mes = mes.charAt(1);
  }  
  
  dia = parseInt(dia);  
  mes = parseInt(mes);    
  ano = parseInt(ano);     

  if ((ano%400==0) || ((ano%4==0) && (ano%100!=0))) 
  {
    var DiasMes=new Array(31,29,31,30,31,30,31,31,30,31,30,31);
  }
  else
  {
    var DiasMes=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
  }

  if (dia > DiasMes[mes-1])
  {
    return (false);
  }
  return (true);
}  

function CampoHora(hora)
{
  if (hora.length < 5)
  {
    return (false);
  }
  myRe = new RegExp;

  myRe = /^([0-1][0-9]|2[0-4]):([0-5][0-9])$/ig;

  if (! eval("myRe.exec(hora)"))
  {
    return false;
  }
  myRe.exec(hora);
  myRe = null;
  return (true);
}

function CampoEmail(mail)
{
  if (mail.value.length < 6)
  {
    return (false);
  }
  myRe = new RegExp;
  
  RegExp.lastIndex = 0;

  myRe = /([_a-zA-Z\d\-\.][_a-zA-Z\d\-\.]+)@([_a-zA-Z\d\-][_a-zA-Z\d\-]+(\.[_a-zA-Z\d\-][_a-zA-Z\d\-]+))/;

  if (! myRe.test(mail.value))
  {
    return false;
  }
  
  myRe.exec(mail);

  myRe = null;

  return (true);
}

function ComparaData(CampoDataInicio, CampoDataFim)
{
  Dia = CampoDataInicio.value.substring(0,2);
  Mes = CampoDataInicio.value.substring(3,5);
  Ano = CampoDataInicio.value.substring(6,10);
  var DataInicioConvert = Ano + Mes + Dia;

  Dia = CampoDataFim.value.substring(0,2);
  Mes = CampoDataFim.value.substring(3,5);
  Ano = CampoDataFim.value.substring(6,10);
  var DataFimConvert = Ano + Mes + Dia;

  if (DataFimConvert < DataInicioConvert){
    return (false);
  }
  return (true);
}  

function SelectedCombo(Objeto)
{
  return Objeto[Objeto.selectedIndex].value
}

function floatFix(Val, Decimais)
{
	var neg = Val < 0;
	if ( neg ) {
	 Val = Val * -1;
	}
  var Res = "" + Math.round(Val * Math.pow(10, Decimais));
  var Dec = Decimais - Res.length;
  var Zer = Res.length - Decimais;
  var StrZero = "0.";

  if (Decimais != 0)
  {
    if (Val < 1)
    {
   	  for (Count=0; Count<=Dec-1; Count+= 1) 
      {	
    	  StrZero += "0";
      }
      if (Res < 1 * Math.pow(10, Decimais))
      {
        OutString = StrZero + Res;
      }
      else
      {
        OutString = Res.substring(0, Zer) + "." + Res.substring(Zer, Res.length);
      }
    }
    else
    {
      OutString = Res.substring(0, Zer) + "." + Res.substring(Zer, Res.length);
    }
  }
  else
  {
      OutString = Res.substring(0, Zer);
  }
  if ( neg ) {
	  OutString = "-" + OutString;
  }
  return (OutString);
}

function TrocaLetra(sValor, sLetra1, sLetra2) {
	var sIndex = sValor.indexOf(sLetra1);
	
	if (sIndex == -1)
	  return sValor
  else
	  return sValor.substring(0,sValor.indexOf(sLetra1)) + sLetra2 + sValor.substring(sValor.indexOf(sLetra1)+1,sValor.length);
}


function isFieldBlank(theField)
{
  inStr = theField.value;
  inLen = inStr.length;
      
  for(var i = 0; i < inLen; i++)
  {
    var ch = inStr.substring(i, i+1)

    if (ch != " ")
      return (false);   
  }

  theField.Value = "";
  return (true);
}

function trim(palavra){
	var aux;
	var espaco = /^\s+|\s+$/g;

	aux = palavra.replace(espaco, "");
	palavra = aux;

	return palavra;
}

/******************************************************************************************************
*@Função:    abrePopUp(url, features)                                                                 *
*@param:     url, name, features                                                                      *
*@url:       página que sera aberta no pop up, o parâmetro deve ser passado mesmo que vazio           *
*@name:      nome do pop-up, o parâmetro deve ser passado mesmo que vazio                             *
*@features:  parâmetros opcionais para configuração do pop-up, uma ou mais poderão ser omitidos       *
*@descrição: Função criar um pop-up                                                                   * 
*@sintaxe:   abrePopUp(url , {name:valor, toolbar:yes|no, location:yes|no, directories:yes|no         *
*	  												  status:yes|no, menubar:yes|no, scrollbars:yes|no|auto, resizable:yes|no,*
*  													  w:px, h:px, screenx:px, screeny:px; left:px, top:0} )                   *
*******************************************************************************************************/

function abrePopUp(url, name, features){	
	//Pega os paramêtros opcionais
	var toolbar     = (features.toolbar)? features.toolbar : 'no';
	var location    = (features.location)? features.location : 'no';
	var directories = (features.directories)? features.directories: 'no';
	var status      = (features.status)?features.status: 'no';
	var menubar     = (features.menubar)?features.menubar: 'no';
	var scrollbars  = (features.scrollbar)?features.scrollbar: 'auto';
	var resizable   = (features.resizable)? features.resizable: 'no';
	var width       = (features.w)?features.w: '300';
	var height      = (features.h)?features.h: '300';
	var scrX        = (features.screenx)?features.screenx: '0';
	var scrY        = (features.screeny)?features.screeny: '0';
	var left        = (features.left)?features.left: '0';
	var top				  = (features.top)?features.top: '0';
	
	window.open(url, name, 'toolbar=' + toolbar + 
												 ',location=' + location + 
												 ',directories='+ directories +
												 ',status=' + status + 
												 ',,menubar='+ menubar + 
												 ',scrollbars=' + scrollbars + 
												 ',resizable=' + resizable + 
												 ',screenx=' + scrX +
												 ',screeny=' + scrY +
												 ',left=' + left +
												 ',top=' + top +
												 ',width=' + width + 
												 ',height=' + height );
}


