/* FUNCOES DA BIBLIOTECA

  .ChangeDisplayDiv(object) 
    -Descrição: 
	  Exibe(caso oculto) ou oculta(caso em exibição)
	  um determinado DIV. 
    
	-Parametros: 
	  object - id do div
  ------------------------------------------------
  .validaForm(id_do_form, id_campos, vStyle) 
    -Descrição: 
	  Varre o formulário e verifica se os campos 
	  descriminados foram preenchidos, e muda o 
	  estilo CSS caso o campo esteja em branco. 
	
	-Parametros: 
	  id_do_form - id do formulário a ser varrido.
	  id_campos  - id cos campos com preenchiento obrigatorio, * para todos.
	  vStyle     - Estilo a ser aplicado.
    
	-Exemplo:
	  <form onsubmit="return(validadeForm('frm', '*', 'css'));">
	  <form onsubmit="return(validadeForm('frm', 'campo1,campo2', 'css'));">
  ------------------------------------------------	  
  .CurrencyFormat
  
   onKeyPress="return(currencyFormat(this,'.',',',event))"
	  
  ------------------------------------------------
  .AllowOnlyNumbers()
    -Descrição: 
	  Permite que sejam digitado apenas números 
	  em um input. 
    
	-Exemplo:
	  <input onkeypress="AllowOnlyNumbers();">
	  
  ------------------------------------------------
  .MascCPF(pForm,pCampo,pTamMax,pPos1,pPos2,pPosTraco,pTeclaPres)
  
  ------------------------------------------------
  .MascCEP(pCampo)
  
  ------------------------------------------------
  .checaEmail(email)
  
  ------------------------------------------------

*/

/**********************************************************************************************/
/**********************************************************************************************/

// Check browser version
var isNav4 = false, isNav5 = false, isIE4 = false
var strSeperator = "."; 
// If you are using any Java validation on the back side you will want to use the / because 
// Java date validations do not recognize the dash as a valid date separator.
var vDateType = 3; // Global value for type of date format
//                1 = mm/dd/yyyy
//                2 = yyyy/dd/mm  (Unable to do date check at this time)
//                3 = dd/mm/yyyy
var vYearType = 4; //Set to 2 or 4 for number of digits in the year for Netscape
var vYearLength = 2; // Set to 4 if you want to force the user to enter 4 digits for the year before validating.
var err = 0; // Set the error code to a default of zero
if(navigator.appName == "Netscape") {
if (navigator.appVersion < "5") {
isNav4 = true;
isNav5 = false;
}
else
if (navigator.appVersion > "4") {
isNav4 = false;
isNav5 = true;
   }
}
else {
isIE4 = true;
}

/**********************************************************************************************/
/**********************************************************************************************/

function validaFormCSS(id_do_form, id_campos, vStyle) {
	var campos = new Array();
	var i=0;
	var j=0;
	var count=0;
	var form = document.getElementById(id_do_form);
	var post=true;
	
	campos[0]='';
	
	for (i=0; i < id_campos.length+1; i++) 
	  if (id_campos.charAt(i) == ',') 
	  {
        count++;
		campos[count] = '';
	  }
	  else
	    campos[count] = campos[count] + id_campos.charAt(i); 
	
	j=0;
    for (j=form.length-1; j >= 0; j--)	
	{
	  form[j].className = '';
	  if (id_campos == '*')
	  { 
	    if (form[j].type != 'hidden' && form[j].type != 'image')	
		{
  	      if (form[j].value =='') 
	      {
	        post = false;
	        if (vStyle != '')
		    {
	          form[j].className = vStyle;
			  form[j].onkeypress = new Function('this.className = "";');
		    }
	        form[j].focus();
	       }
		 }
	   }
	   else
	   {
  	     for (i=0; i < campos.length; i++)
		 {
	       if (form[j].id == campos[i])
           {
  	         if (form[j].value =='') 
	         {
	           post = false;
	           if (vStyle != '')
		       {
	             form[j].className = vStyle;
			     form[j].onkeypress = new Function('this.className = "";');
		       }
	           form[j].focus();
	         }
		   }
		 }
	   } 
	 }
     return post;
	
}

function validaFormIMG(id_do_form, id_campos, vPrefixoIMG,vIMG,vIMGOff) {
	var campos = new Array();
	var i=0;
	var j=0;
	var count=0;
	var form = document.getElementById(id_do_form);
	var post=true;
	var img
	
	campos[0]='';
	
	for (i=0; i < id_campos.length+1; i++) 
	  if (id_campos.charAt(i) == ',') 
	  {
        count++;
		campos[count] = '';
	  }
	  else
	    campos[count] = campos[count] + id_campos.charAt(i); 
	
	j=0;
    for (j=form.length-1; j >= 0; j--)	
	{
	  form[j].className = '';
	  if (id_campos == '*')
	  { 
	    if (form[j].type != 'hidden' && form[j].type != 'image')	
		{
  	      if (form[j].value =='') 
	      {
	        post = false;
	        if (vIMG != '')
		    {
	          img = document.getElementById(vPrefixoIMG + form[j].name);
			  form[j].onchange = new Function(img.src = vIMGOff);
		    }
	        form[j].focus();
	       }
		 }
	   }
	   else
	   {
  	     for (i=0; i < campos.length; i++)
		 {
	       if (form[j].id == campos[i])
           {
			 img = document.getElementById(vPrefixoIMG + form[j].name);
			 img.src = vIMGOff;
			 img.alt = '';
  	         if (form[j].value =='') 
	         {
	           post = false;
	           if (vIMG != '')
		       {
				img.src = vIMG;
				img.alt = 'Campo Obrigatório';
			    form[j].onkeypress = new Function('document.getElementById("'+vPrefixoIMG + form[j].name+'").src ="'+vIMGOff+'"');
		       }
	           form[j].focus();
	         }
		   }
		 }
	   } 
	 }
     return post;
	
}

/**********************************************************************************************/
/**********************************************************************************************/

function AllowOnlyNumbers()
{
   var x =event.keyCode;
   if (!(x>=48 && x <=57))
   {
       event.returnValue=false;
   }
}

/**********************************************************************************************/
/**********************************************************************************************/

function currencyFormat(fld, milSep, decSep, e) {
var sep = '/';
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;  // Enter
key = String.fromCharCode(whichCode);  // Get key value from key code
if (strCheck.indexOf(key) == -1) return false;  // Not a valid key
len = fld.value.length;
for(i = 0; i < len; i++)
if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != sep)) break;
aux = '';
for(; i < len; i++)
if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
aux += key;
len = aux.length;
if (len == 0) fld.value = '';
if (len == 1) fld.value = '0'+ decSep + '0' + aux;
if (len == 2) fld.value = '0'+ decSep + aux;
if (len > 2) {
aux2 = '';
for (j = 0, i = len - 3; i >= 0; i--) {
if (j == 3) {
aux2 += milSep;
j = 0;
}
aux2 += aux.charAt(i);
j++;
}
fld.value = '';
len2 = aux2.length;
for (i = len2 - 1; i >= 0; i--)
fld.value += aux2.charAt(i);
fld.value += decSep + aux.substr(len - 2, len);
}
return false;
}

/**********************************************************************************************/
/**********************************************************************************************/

// Detect if the browser is IE or not.
// If it is not IE, we assume that the browser is NS.
var IE = document.all?true:false

// If NS -- that is, !IE -- then set up for mouse capture
if (!IE) document.captureEvents(Event.MOUSEMOVE)

// Temporary variables to hold mouse x-y pos.s
var tempX = 0
var tempY = 0

// Main function to retrieve mouse x-y pos.s

function getMouseXY(e) {
  if (IE) { // grab the x-y pos.s if browser is IE
    tempX = event.clientX + document.body.scrollLeft
    tempY = event.clientY + document.body.scrollTop
  } else {  // grab the x-y pos.s if browser is NS
    tempX = e.pageX
    tempY = e.pageY
  }  
  // catch possible negative values in NS4
  if (tempX < 0){tempX = 0}
  if (tempY < 0){tempY = 0}  
  // show the position values in the form named Show
  // in the text fields named MouseX and MouseY
  return true
}
/**********************************************************************************************/
/**********************************************************************************************/


function CheckTimeMaskValue()

{

   var x =event.keyCode;
   if (!(x>=48 && x <=57))
   {
       event.returnValue=false;
   }

}

function CheckTimeMaskFormat(maskControl)

{

      var strText = maskControl.value;

      var a = strText.split(':');

      if (isNaN(a[0]))

      {

            maskControl.value = '00:00';

      }

      else if (isNaN(a[1]))

      {

            if ((a[0].length == 5) || (a[0].length == 4))

            {

                  strText = strText.slice(0,2) + ':' + strText.slice(2,4);

                  maskControl.value = strText;

            }

            if (a[0].length == 3)

            {

                  strText = '0' + strText.slice(0,1) + ':' + strText.slice(1,3);

                  maskControl.value = strText;

            }

            if (a[0].length == 2)

            {

                  strText = strText.concat(':00');

                  maskControl.value = strText;

            }

            if (a[0].length == 1)

            {

                  strText = strText.concat(':00');

                  maskControl.value = strText;

            }

      }

      else if (a[1].length == 1)

      {

            strText = strText.concat('0');

            maskControl.value = strText;

            }

      else if (a[0].length == 1)

      {

            strText = '0' + strText;

            maskControl.value = strText;

      }

      strText = maskControl.value;  

      strText = strText.slice(3,5);

      if (strText > 59)

      {

            alert('Número máximo de minutos: 59');

            maskControl.focus();

      }

      strText = maskControl.value;  

      strText = strText.slice(0,2);

      if (strText > 23)

      {

            alert('Número máximo de horas: 23');

            maskControl.focus();

      }

}

/**********************************************************************************************/
/**********************************************************************************************/

function SetPos(obj,div) {
	var curleft = curtop = 0;
	
	if (!obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	//return [curleft,curtop];
	div.style.position = 'absolute';
	div.style.top 	   = obj.style.top;
	div.style.left 	   = obj.style.left;
	
	alert(curleft +' - '+ curtop);
}


function checaEmail(email) {
	if (email.value == "") {
		alert("Informe seu e-mail.");
		email.focus();
		email.select();
		return false;
	} else {
		prim = email.value.indexOf("@")
		if(prim < 2) {
			alert("O e-mail informado parece não estar correto.");
			email.focus();
			email.select();
			return false;
		}
		if(email.value.indexOf("@",prim + 1) != -1) {
			alert("O e-mail informado parece não estar correto.");
			email.focus();
			email.select();
			return false;
		}
		if(email.value.indexOf(".") < 1) {
			alert("O e-mail informado parece não estar correto.");
			email.focus();
			email.select();
			return false;
		}
		if(email.value.indexOf(" ") != -1) {
			alert("O e-mail informado parece não estar correto.");
			email.focus();
			email.select();
			return false;
		}
		if(email.value.indexOf("zipmeil.com") > 0) {
			alert("O e-mail informado parece não estar correto.");
			email.focus();
			email.select();
			return false;
		}
		if(email.value.indexOf("hotmeil.com") > 0) {
			alert("O e-mail informado parece não estar correto.");
			email.focus();
			email.select();
			return false;
		}
		if(email.value.indexOf(".@") > 0) {
			alert("O e-mail informado parece não estar correto.");
			email.focus();
			email.select();
			return false;
		}
		if(email.value.indexOf("@.") > 0) {
			alert("O e-mail informado parece não estar correto.");
			email.focus();
			email.select();
			return false;
		}
		if(email.value.indexOf(".com.br.") > 0) {
			alert("O e-mail informado parece não estar correto.");
			email.focus();
			email.select();
			return false;
		}
		if(email.value.indexOf("/") > 0) {
			alert("O e-mail informado parece não estar correto.");
			email.focus();
			email.select();
			return false;
		}
		if(email.value.indexOf("[") > 0) {
			alert("O e-mail informado parece não estar correto.");
			email.focus();
			email.select();
			return false;
		}
		if(email.value.indexOf("]") > 0) {
			alert("O e-mail informado parece não estar correto.");
			email.focus();
			email.select();
			return false;
		}
		if(email.value.indexOf("(") > 0) {
			alert("O e-mail informado parece não estar correto.");
			email.focus();
			email.select();
			return false;
		}
		if(email.value.indexOf(")") > 0) {
			alert("O e-mail informado parece não estar correto.");
			email.focus();
			email.select();
			return false;
		}
		if(email.value.indexOf("..") > 0) {
			alert("O e-mail informado parece não estar correto.");
			email.focus();
			email.select();
			return false;
		}
	}
		return true;
}

function mascaraCPFCNPJ(Campo, teclapres, cpf_cnpj){

   if(window.event)
     var tecla = teclapres.keyCode;
   else  
     tecla = teclapres.which;

   if (!(tecla>=48 && tecla <=57))
   {
     event.returnValue=false;
   } 
   else 
   {

     var vr = new String(Campo.value);
     vr = vr.replace(".", "");
     vr = vr.replace(".", "");
     vr = vr.replace("/", "");
     vr = vr.replace("-", "");

     tam = vr.length + 1;

      if (cpf_cnpj == 'CNPJ') {  
         
		 Campo.maxLength = 19;
		 
  	     if (tecla != 9 && tecla != 8){
            if (tam > 3 && tam < 7)
              Campo.value = vr.substr(0, 3) + '.' + vr.substr(3, tam);
            if (tam >= 7 && tam < 10)
              Campo.value = vr.substr(0,3) + '.' + vr.substr(3,3) + '.' + vr.substr(6,tam-6);
            if (tam >= 11 && tam < 14)
              Campo.value = vr.substr(0,3) + '.' + vr.substr(3,3) + '.' + vr.substr(6,3) + '/' + vr.substr(9,tam-9);
            if (tam >= 14 && tam < 16)
              Campo.value = vr.substr(0,3) + '.' + vr.substr(3,3) + '.' + vr.substr(6,3) + '/' + vr.substr(9,4)+ '-' + vr.substr(13,tam-13);
      }
      } 
	  else if (cpf_cnpj=='CPF') 
	  {
	    Campo.maxLength = 14;
		
        if (tecla != 9 && tecla != 8){
          if (tam > 3 && tam < 7)
            Campo.value = vr.substr(0, 3) + '.' + vr.substr(3, tam);
          if (tam >= 7 && tam < 10)
            Campo.value = vr.substr(0,3) + '.' + vr.substr(3,3) + '.' + vr.substr(6,tam-6);
          if (tam >= 11 && tam < 14)
            Campo.value = vr.substr(0,3) + '.' + vr.substr(3,3) + '.' + vr.substr(6,3) + '-' + vr.substr(9,tam-9);
        }
      }
   }
}

function ClearStr(str, char)
{
  while((cx=str.indexOf(char))!=-1)
  {		
    str = str.substring(0,cx)+str.substring(cx+1);
  }
  return(str);
}

function ParseNumb(c)
{
  c=ClearStr(c,"-");
  c=ClearStr(c,"/");
  c=ClearStr(c,",");
  c=ClearStr(c,".");
  c=ClearStr(c,"(");
  c=ClearStr(c,")");
  c=ClearStr(c," ");
  if((parseFloat(c) / c != 1))
  {
    if(parseFloat(c) * c == 0)
    {
      return(c);
    }
    else
    {
      return(0);
    }
  }
  else
  {
    return(c);
  }
  return(c);
}

function Verify(CNUMB,CTYPE)
{
  CNUMB=ParseNumb(CNUMB)
  if(CNUMB == 0)
  {
    return(false);
  }
  else
  {
    g=CNUMB.length-2;
    if(TestDigit(CNUMB,CTYPE,g))
    {
      g=CNUMB.length-1;
      if(TestDigit(CNUMB,CTYPE,g))
      {	
        return(true);
      }
      else
      {
        return(false);
      }
    }
    else
    {
      return(false);
    }
  }
}

function TestDigit(CNUMB,CTYPE,g)
{
  var dig=0;
  var ind=2;
  for(f=g;f>0;f--)
  {
    dig+=parseInt(CNUMB.charAt(f-1))*ind;
    if (CTYPE=='CNPJ')
    { if(ind>8) {ind=2} else {ind++} }
    else
    { ind++ }
  }
  dig%=11;
  if(dig<2)
  {
    dig=0;
  }
  else
  {
    dig=11-dig;
  }
  if(dig!=parseInt(CNUMB.charAt(g)))
  {
    return(false);
  }
  else
  {
    return(true);
  }
}

function verificaCPFCNPJ(cp,op) {
  if (!Verify(cp.value,op) && cp.value !='') { 
    alert(op+' inválido');
	cp.value = '';
	cp.focus();
  }
}

function MascCEP(c,e) {

    if (!(e.keyCode>=48 && e.keyCode <=57)){
       event.returnValue=false;
    }else {
	   if(c.value.length == 5) c.value += '-';   
    }
    
	//if(arguments[2]) {
     // var nx = document.getElementById(n);
    //  if(c.value.length == c.maxLength) { nx.focus(); }
    //}
}

function putValue(id,vl,readOnly) { //alert(vl);
	var obj = document.getElementById(id);
	
	if (readOnly == null) readOnly = false;
	
	if ((obj == '[object]')&&(vl != ''))	
		switch(obj.tagName) {
		case "SELECT": 
			obj.value = vl; 
			if (readOnly) obj.disabled = true;
			break;
		case "INPUT":
			obj.value = vl;
			if (readOnly) obj.disabled = true;
			break;
		case "TEXTAREA":
			obj.value = vl;
			if (readOnly) obj.disabled = true;
			break;
		case "RADIO":
			obj.value = vl;
			break;
		case "CHECKBOX":
			obj.value = vl;
			break;
		case "SPAN":
			obj.innerHTML = vl;
			break;
		}
}
