/*
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
   Autor                Vitor Lopes - vitorlopes@brascobra.com.br
   Ultima modificação   06/08/2004
   © 2004 - BRASCOBRA CENTER LTDA - TODOS OS DIREITOS RESERVADOS
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*/

var isIE = (navigator.appName.indexOf("Microsoft") !=-1);

document.onkeypress = validarInputs;

function validarInputs(){
	/*
	* 34  = ["]
	* 60  = [<]
	* 62  = [>]
	* 124 = [|]
	* 39  = [']
	* 37  = [%]
	*/
	var key = window.event.keyCode;
	if(key == 34 || key == 60 || key == 62 || key == 124 || key == 39 || key == 37 ){window.event.returnValue = null;}
}

function validar(args) {
   var strmsg = ""
   var erro=0
   var objField = null
   
   for(y=0;y<validar.arguments.length;y++) {
      temp = arguments[y].split("|")
	  
      if ((obj=MM_findObj(temp[1]))!=null) {
         switch (temp[0]) {
            case 's':
               if (obj.options.length > 0) {
                  if (obj.options[obj.selectedIndex].value < 1) {
                     strmsg += (temp.length > 2) ?  '- '+ temp[2] + ' deve ser selecionado\n' : '- '+ obj.id + ' deve ser selecionado\n';
                     erro++;
                  }
               } else {
                  strmsg += (temp.length > 2) ?  '- '+ temp[2] + ' deve ser selecionado\n' :'- '+ obj.id + ' deve ser selecionado\n';
                  erro++; 
               }
               break;
            case 't':
               if (obj.value.length < 1) {
                  strmsg += (temp.length > 2) ?  '- '+ temp[2] + ' é requerido\n' : '- '+ obj.id + ' é requerido\n';
                  erro++;
               }
               break;
            case 'e':
			   if (obj.value.length >= 1) {
				   	/**
						Aceita como "nome-local" uma ou mais palavras separadas por ponto ([\w-]+(\.[\w-]+)*), onde cada palavra é definida por [\w-]+ 
						permitindo assim letra, dígito, sublinhado e hífen. Também limita o tamanho de nomes de domínio entre 2 e 63 caracteres 
						[A-Za-z\d][A-Za-z\d-]{0,61}.não permiti o sublinhado e garante que não há hífen nem na primeira nem na última
						posição, conforme RFC 1034/1035 
						* Referência: http://www.mhavila.com.br/topicos/web/valform.html acessado em 01/02/2010.
					*/
                  	var regexEmail = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
					if(!regexEmail.test(obj.value)) { 
					  strmsg += (temp.length > 2) ?  '- '+ temp[2] + ' NÂO é um e-mail válido\n' : '- '+ obj.value + ' NÂO é um e-mail válido\n';
					  erro++;
					}
               }
               break;
            case 'n':
               if (obj.value.length < 1) {
                  strmsg += (temp.length > 2) ?  '- '+ temp[2] + ' é requerido\n' : '- '+ obj.id + ' é requerido\n';
                  erro++;
               } else if (/[^0-9]/g.test(obj.value)) {
                  strmsg += (temp.length > 2) ?  '- '+ temp[2] + ' deve conter somente números\n' : '- '+ obj.id + ' deve conter somente números\n';
                  erro++;
               }
               break;
            case 'd':
               if (obj.value.length < 1) {
                  strmsg += (temp.length > 2) ?  '- '+ temp[2] + ' é requerido\n' : '- '+ obj.id + ' é requerido\n';
                  erro++;
               } else if(!isDate(obj.value)) {
                  strmsg += (temp.length > 2) ?  '- '+ temp[2] + ' deve conter uma data valida\n' : '- '+ obj.id + ' deve conter uma data valida\n';
                  erro++;
               }
               break;
         }
		
         if (null == objField && 1 == erro) objField = obj;
      }
	  
   }
   if (erro > 0)  { 
      alert((erro==1) ? 'Foi encontrado ' + erro + ' erro:\n' + strmsg : 'Foram encontrados ' + erro + ' erros:\n' + strmsg);
      if (typeof(objField) == 'object' ) {
		 objField.style.borderColor = "red";
		 objField.onblur = function(){ objField.style.borderColor= "#FFFFFF"; };
		 objField.focus();
      }   
	 
      return false;
   } else {
      return true; 
   }
}

// EXEMPLO: setarCombo(document.forms[0].select1, 'fiat') / setarCombo('select1', 'fiat')
function setarCombo(obj, val) {
   if(val.length == 0) return
   obj = (typeof(obj)=='string') ? obj=MM_findObj(obj) : obj = eval(obj);

   if(obj!=null)
      for (i=0;i<obj.options.length;i++)
         if(obj.options[i].value == val) { obj.options[i].selected = true; break }
}
// EXEMPLO: onkeypress="CheckNumber()"
function CheckNumber() {
   var key     = window.event.keyCode;
   var obj     = MM_findObj(event.srcElement.name);
   var num_vir = 0;
   if ( key > 47 && key < 58) {
      return;
   } else {
   
      if (key==46 || key==44) { 
         for (i=0; i<obj.value.length;i++)
            if (obj.value.charAt(i) == ",") num_vir++;

         if (num_vir > 0) {
            window.event.returnValue = null;
         } else { 
            window.event.keyCode = 44;
         }
      
      } else {
         window.event.returnValue = null;
      }
   }
}

function CheckNumberOnly() {
   var key = window.event.keyCode;
   if (key > 47 && key < 58) {
      return
   } else {
      window.event.returnValue = null;
   }
}

// EXEMPLO: onkeypress="CheckNumber();formataData(this)"

function formataData(obj) {
	var temp = obj.value
	CheckNumber();
	if(temp.length == 2) obj.value = obj.value + "/" ;
	if(temp.length == 5) obj.value = obj.value + "/"; 
}

function formataDataMA(obj) {
	var temp = obj.value
	CheckNumber();
	if(temp.length == 2) obj.value = obj.value + "/" ;
	if(temp.length == 3) obj.value = obj.value + "/"; 
}

function formataTel(obj) {
	var temp = obj.value
	if(temp.length == 1) obj.value = "(" + obj.value;
	if(temp.length == 3) obj.value = obj.value + ") "; 
	if(temp.length == 9) obj.value = obj.value + "-";
}

function formataCep(obj) {
	if(obj.value.length == 5) obj.value = obj.value + "-" ;
}

// EXEMPLO: onkeydown="LimitarChar(this,100)"

function LimitarChar(obj, imax) {
   var val = parseFloat(obj.value.length);
   if (val >= imax) { 
      if (window.event.keyCode == 8) {
         val--;
         return;
      } else {
         window.event.returnValue = null;
      }
   }
}

// EXEMPLO onmouseout=showdiv('divhelp', 'hidden')

function showdiv(objName, val) {
   if ((obj=MM_findObj(objName))!=null)
      obj.style.visibility = val;
}


function mO(src,scor) {
   src.bgColor = scor;
   src.style.cursor = 'hand';
}


function mO2(src,scor) {
   src.bgColor = scor;
}

function mU(src,scor) {
   src.bgColor = scor;
}

function Link(sURL) {
	location.href = sURL;
}


// EXEMPLO: LockAll(document.frmEnviar)
function LockAll(frm) {
   for (i=0;i<frm.elements.length;i++) {
      if ((frm.elements[i].type=="text") || (frm.elements[i].type=="textarea")) frm.elements[i].readOnly = "true";
      if (frm.elements[i].type=="select-one") frm.elements[i].disabled = true;
      if (frm.elements[i].type=="checkbox") frm.elements[i].disabled = true;
   }
}

// EXEMPLO: setarCampo('txtComarca|comarca deprecada', 'txtProcesso|78787')

function setarCampo(args) {
	for(i=0;i<setarCampo.arguments.length;i++) {
		temp = setarCampo.arguments[i].split("|");
		if(temp[0]=="") return(0);
		obj = MM_findObj(temp[0]);
		if (obj!=null)
			if(obj.type =="text" || obj.type == "textarea" || obj.type=="hidden") obj.value = unescape(String(temp[1].replace(/\+/g, " "))); 		
	}
}

function changeBg(myId,newColor) {
	myId.style.backgroundColor = newColor;
}

function Capitalizar() {
   var f=document.forms;
   if(f) {
      for(i=0;i<f.length;i++) {
         for(y=0;y<f[i].elements.length;y++) {
            f[i].elements[y].value = f[i].elements[y].value.toUpperCase();
         }
      }
   }
}


function checkMoeda(obj) {
   CheckNumber();
   if(obj.value.indexOf(",") != -1) {
      if (obj.value.substr(obj.value.indexOf(","), obj.value.length).length>2) window.event.returnValue = null;
   }
}

function isDate(pStr) {
   var regExpDate = /^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(19|20)?\d{2}$/;
   if (regExpDate.test(pStr)) {
      return true;
   } else if (pStr != null && pStr != "") {
      return false;
   }
}

function DateDiff(intervalo, data1, data2) {
   data1                = data1.split("/")
   data2                = data2.split("/")
   var oDate1           = new Date(data1[2], data1[1]-1, data1[0])
   var oDate2           = new Date(data2[2], data2[1]-1, data2[0])	   
   var lastDayOfMonth   = new Date(data1[2], data1[1], 1)
    
   lastDayOfMonth.setDate(-1)

   switch(intervalo) {
      case "S" : calc = new Number(1000); break;
      case "MM": calc = new Number(60000); break;
      case "H" : calc = new Number(3600000); break;
      case "D" : calc = new Number(86400000); break;
      case "M" : calc = new Number(86400000*lastDayOfMonth.getDate()); break;
   }
   return Math.floor((oDate2 - oDate1)/calc)
}

function formataMoeda() {
   var campo   = window.event.srcElement;
   var key     = window.event.keyCode;
   var tammax  = campo.maxLength
   var vr      = campo.value;
   vr          = vr.replace(/\//g, "");
   vr          = vr.replace(/\,/g, "");
   vr          = vr.replace(/\./g, "");
   tam         = vr.length;

   if (tam < tammax && key != 8)
      tam = vr.length + 1

   if (8 == key)
      --tam;

   if (key == 8 || key >= 48 && key <= 57 || key >= 96 && key <= 105) {
      if (tam  <= 2)  campo.value = vr;
      if ((tam >  2)  && (tam <= 5))   campo.value = vr.substr(0, tam - 2 ) + ',' + vr.substr(tam - 2 , tam);
      if ((tam >= 6)  && (tam <= 8))   campo.value = vr.substr(0, tam - 5 ) + '.' + vr.substr(tam - 5 , 3  ) + ',' + vr.substr(tam - 2 , tam);
      if ((tam >= 9)  && (tam <= 11))  campo.value = vr.substr(0, tam - 8 ) + '.' + vr.substr(tam - 8 , 3  ) + '.' + vr.substr(tam - 5 , 3) + ',' + vr.substr(tam - 2, tam);
      if ((tam >= 12) && (tam <= 14))  campo.value = vr.substr(0, tam - 11) + '.' + vr.substr(tam - 11, 3  ) + '.' + vr.substr(tam - 8 , 3) + '.' + vr.substr(tam - 5, 3 ) + ',' + vr.substr(tam - 2, tam);
      if ((tam >= 15) && (tam <= 17))  campo.value = vr.substr(0, tam - 14) + '.' + vr.substr(tam - 14, 3  ) + '.' + vr.substr(tam - 11, 3) + '.' + vr.substr(tam - 8, 3 ) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
   }
}
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 doNotBack() {
	var oHref=window.event.srcElement;
	//alert('tagName ' + oHref.tagName);
	if (oHref !=null && oHref.tagName == 'A') {
		if (event.srcElement.IsBack == 'no') {
			location.replace(oHref.href); event.returnValue=false;
		}	
	}
}

function rFalse() {
	return false;
}
function blockKey() {
	// block backspace
	var key = window.event.keyCode;


	if (8 == key) {
	   if (null != (oHTML = window.event.srcElement))
	      if (oHTML.tagName == 'TEXTAREA' || oHTML.tagName == 'INPUT' )
	         return;
		
		return false;
	}
		
	// block alt+<-
	if (window.event.altKey)
		if (37 == key )
			return false;

	// block ctrl+n
	if (window.event.ctrlKey)
		if (78 == key )
			return false;
}

document.oncontextmenu = rFalse;
document.onselectstart = rFalse;
document.onkeydown = blockKey;
	
document.onclick = doNotBack;
*/

   function ValidarCPFCNPJ(obj) {
      if(obj.value.length>0) {
         obj.value = obj.value.replace(/\./g, ""); obj.value = obj.value.replace(/\-/g, ""); obj.value = obj.value.replace(/\//g, "")
         sError    = obj.value
         sTemp     = "00000000000" 
         obj.value = sTemp + obj.value
         obj.value = obj.value.substring(obj.value.length - sTemp.length, obj.value.length)

         if (!ConfereCIC(obj)) {
            obj.value = sError
            obj.style.color = '#FF0000'
			document.getElementById("imageField").disabled = true;
            return false
         }
         obj.style.color = '#000000'
		 document.getElementById("imageField").disabled = false;
         return true
      }			
   }
