/*
 * Variaveis globais
 **/
//CARACTERES DIVERSOS
var letrasmai = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var letrasmin = "abcdefghijklmnopqrstuvwxyz";
var numeros   = "0123456789";
var emails    = letrasmin+"_."+numeros;
var telefones = "()-x "+numeros;
//CARACTERES ÚNICOS
var emailsc   = "@";
var moeda     = ",";
//MÁSCARAS
var datas     = "  /  /    ";
var horas     = "  :  ";

/*
 * Tipo do navegador
 **/
var agt = navigator.userAgent.toLowerCase();
var is_ie	    = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_opera  = (agt.indexOf("opera") != -1);
var is_mac    = (agt.indexOf("mac") != -1);
var is_mac_ie = (is_ie && is_mac);
var is_win_ie = (is_ie && !is_mac);
var is_gecko  = (navigator.product == "Gecko");

/*
 * Abre uma janela pop-up no centro da tela
 **/
function abrePop(pPagina,pLargura,pAltura,pScroll,pResize,autoClose) {
  var name = pPagina.substr(pPagina.lastIndexOf("/")+1,pPagina.lastIndexOf(".")-pPagina.lastIndexOf("/")-1);
  var posX = (window.screen.width - pLargura - 16) / 2;
  var posY = (window.screen.height - pAltura) / 2;
  var win = window.open(pPagina,name,"width=" + pLargura + ",height=" + pAltura + ",top=" + posY + ",left=" + posX + ",scrollbars=" + pScroll + (pResize ? ",resizable=yes" : ""));
  if(win){
    win.focus();
    if (autoClose){
      if (is_ie) {
        attachEvent("onunload", function(){closePop(win)});
      } else {
        addEventListener("unload", function(){closePop(win)}, true);
      }
    }
  }
}

/*
 * Testa se a popup existe e fecha a mesma
 **/
function closePop(obj){
  if(!isEmpty(obj))
    if(!obj.closed)
      obj.close();
  return true;
}

function abreNews(id){
	
	abrePop('adm/news/newsletter.php?id='+id+'&us=1','700','800','1','1','0');
	
	
	}

/*
 * Executa o metodo submit do formulario
 **/
function doSubmit(tform){
  if (tform && isUndefined(tform.name)) tform = document.getElementById(tform);
  if (tform) {
    if (!tform.onsubmit || tform.onsubmit()){
      tform.submit();
    }
  } else {
    alert("Formulário não encontrado!");
  }
}

/*
 * Verifica se a tecla pressionada pode ser incluida no campo
 **/
function testaMascara(obj,mykey,mask,str,strone){
  //SE O CAMPO EH READONLY CAI FORA
  if (obj.readOnly) return false;

  if (document.selection){
      document.selection.createRange().text = "";
  }else if (obj.selectionStart || obj.selectionStart == "0"){
    var selectionStart = obj.selectionStart;
    var selectionEnd = obj.selectionEnd;
    obj.value = obj.value.substring(0, selectionStart) + obj.value.substring(selectionEnd);
    obj.setSelectionRange(selectionStart, selectionStart);
  }

  //VERIFICA TECLA EH IGUAL A MASCARA OU VALIDA EM "str" E "strone"
  if (mykey == mask.charAt(obj.value.length) && mykey != "0" && mykey != "#") return true;
  if ((str+strone)!="" && (str+strone).indexOf(mykey) ==-1) return false;
  if (strone!="" && obj.value.indexOf(mykey)!=-1 && strone.indexOf(mykey)!=-1) return false;

  //VERIFICA MASCARA
  if(mask.charAt(0)=="#"){
    var mylength=0;
    var i=mask.length;
    while(i>0 && mylength==0){
      i--;
      if(obj.value.lastIndexOf(mask.charAt(i))!=-1) mylength=i;
    }
    obj.value=obj.value.substr(0,obj.value.length-mylength)+mykey+mask.substr(1,mask.length);
    return false;
  }

  if(mask.charAt(mask.length-1)=="#"){
    if(obj.value=="") obj.value=mask.substr(0,mask.indexOf("#"));
    return true;
  }

  var tam=obj.value.length;
  while (mask.charAt(tam) && mask.charAt(tam)!="0" && tam<=mask.length){
    if(mask.charAt(tam)!="0") obj.value+=mask.charAt(tam);
    tam++;
  }
  if(mask.substr(tam+1,mask.length-tam).indexOf("0")==-1 && tam<mask.length && mask.length-tam!=1){
    obj.value+=mykey+mask.substr(tam+1,mask.length-tam);
    return false;
  }

  if(obj.value.length<mask.length || mask.length==0) return true;
  if(obj.value.length>mask.length) obj.value=obj.value.substr(0,mask.length);
  return false;
}

/*
 * Verifica a mascara e retorna se a tecla pressionada pode ser incluida no campo
 **/
function maskedit(eve,obj,mask,str,strone) {
  var codesIE = new Array(8,9,13);
  var codesMZ = new Array(8,9,13,33,35,36,37,38,39,40,46,112,113,114,115,116,117,118,119,120,121,122,123);
  if (!eve) eve = window.event;
  var code;
  var li;
  if (is_gecko){
    code = eve.keyCode;
    for (li=0; li<codesMZ.length; li++) if(code == codesMZ[li]) return true;
    code = eve.charCode;
  }else{
    code = eve.keyCode ? eve.keyCode : eve.which ? eve.which : void 0;
    for (li=0; li<codesIE.length; li++) if(code == codesIE[li]) return true;
  }
  return testaMascara(obj,String.fromCharCode(code),mask,str,strone);
}

/*
 * Verifica se o valor eh valido
 **/
function isNull(str){ return (str+"" == "null"); }
function isUndefined(str){ return (str+"" == "undefined"); }
function isEmpty(str){
  return (str+"" == "") || (str+"" == ".") || (str+"" == " ");
/*
  var invalid = " .\n\t";
  for(var li=0;li<str.length;li++) {
    if(invalid.indexOf(str.charAt(li)) != -1) return false;
  }
  return true;
*/
}

/*
 * Retorna se o campo TEXT foi preenchido
 **/
function okText(obj,desc,value){
  if (isEmpty(obj.value) || isUndefined(obj.value) || ""+obj.value == "" || obj.value == value) {
    alert("Preencha o campo "+desc+"!");
    obj.focus();
    return false;
  }
  if (isEmpty(obj.value)) {
    alert("Preencha corretamente o campo "+desc+"!");
    obj.focus();
    return false;
  }
  return true;
}

/*
 * Verifica se o numero de caracteres nao excede o limite
 **/
function okLeng(obj,desc,tam){
  if (obj.value.length>tam) {
    alert("O número de caracteres excedeu o limite no campo "+desc+"!");
    obj.focus();
    return false;
  } else return true;
}
function okLessLeng(obj,desc,tam){
  if(!obj) return true;
  if (obj.value.length < tam) {
    alert("O campo "+desc+" deve ter no minimo "+tam+" digitos!");
    obj.focus();
    return false;
  } else return true;
}

/*
 * Retorna se o campo SELECT foi selecionado
 **/
function okList(obj,desc){
  if (isEmpty(obj.value)) {
    alert("Selecione o campo "+desc+"!");
    obj.focus();
    return false;
  } else return true;
}

/*
 * Retorna se o campo RADIO foi marcado
 **/
function okRadio(obj,desc){
  for(var li=0;li<obj.length;li++){
    if(obj[li].checked) return true;
  }
  alert("Selecione o campo "+desc+"!");
  obj[0].focus();
  return false;
}

/*
 * Retorna se o campo DATA foi preenchido corretamente
 **/
function okDate(obj,desc) {
  if (obj.value == "") return true;
  
  var meses = new Array(31,29,31,30,31,30,31,31,30,31,30,31);

  if (obj.value.length==5) obj.value = obj.value + "/2004";
  if (obj.value.length<10 && obj.value.substr(1,1)=="/") obj.value = "0"+obj.value;
  if (obj.value.length<10 && obj.value.substr(4,1)=="/") obj.value = obj.value.substr(0,3)+"0"+obj.value.substr(3);
  if (obj.value.length==8 && obj.value.substr(2,1)=="/" && obj.value.substr(5,1)=="/") obj.value = obj.value.substr(0,6)+"20"+obj.value.substr(6);

  if (obj.value.substr(2,1)!="/" || obj.value.substr(5,1)!="/" || isNaN(obj.value.substr(0,2)) || isNaN(obj.value.substr(3,2)) || isNaN(obj.value.substr(6,4))){
    alert("Preencha corretamente o campo "+desc+"!");
    obj.focus();
    obj.select();
    return false;
  }
  
  if (0+obj.value.substr(6,4)<1900 || 0+obj.value.substr(6,4)>2050){
    alert("Ano inválido no campo "+desc+"!");
    obj.focus();
    obj.select();
    return false;
  }
  
  if (0+obj.value.substr(3,2)<1 || 0+obj.value.substr(3,2)>12){
    alert("Mês inválido no campo "+desc+"!");
    obj.focus();
    obj.select();
    return false;
  }
  
  if (0+obj.value.substr(0,2)<1 || 0+obj.value.substr(0,2)>31 || 0+obj.value.substr(0,2) > meses[obj.value.substr(3,2)-1]){
    alert("Dia inválido para o mês especificado no campo "+desc+"!");
    obj.focus();
    obj.select();
    return false;
  }
  
  return true;
}

function okDataNasc(obj,desc) {
	if (okDate(obj,desc)) {
		hoje = new Date();
		ano = 1900+hoje.getYear();
    if (0+obj.value.substr(6,4)<1900 || 0+obj.value.substr(6,4)>0+ano){
      alert("Ano inválido no campo "+desc+"!");
      obj.focus();
      return false;
    }
    return true;
	}
	return false;
}
/*
 * Retorna se o campo EMAIL foi preenchido corretamente
 **/
function okEmail(obj,desc,value) {
  if (!okText(obj,desc,value)) {
    return false;
  } else
  if((obj.value.indexOf("@")<2)||(obj.value.substring(obj.value.indexOf("@")+1,obj.value.length).indexOf(".")<2) ||
     (obj.value.indexOf("@") != obj.value.lastIndexOf("@"))||(obj.value.lastIndexOf(".")>=obj.value.length-2)){
       alert("Preencha corretamente o campo "+desc+"!");
       obj.focus();
       obj.select();
       return false;
  } else return true;
}

/*
 * Verifica se o digito de um CPF/CNPJ é válido
 */
function okCPFCNPJ(NumeroCPF_CNPJ, desc) {
	if (NumeroCPF_CNPJ == null  || NumeroCPF_CNPJ.value.length == 0) return true;
	
	var result = true;
	if (NumeroCPF_CNPJ.value.length != 11 && NumeroCPF_CNPJ.value.length != 14) result = false;
	if (result) {
		var d, n;
		d = NumeroCPF_CNPJ.value.substring(NumeroCPF_CNPJ.value.length - 2);
		n = NumeroCPF_CNPJ.value.substring(0, NumeroCPF_CNPJ.value.length - 2);
		result = (checkCNPJ(n) == d);
	}
	if (!result) {
       alert(desc+" inválido!");
       NumeroCPF_CNPJ.focus();
       NumeroCPF_CNPJ.select();
	}
	return result;
}
/*
 * Calcula o digito verificador de um CNPJ ou CPF (nao use separadores)
 */
function checkCNPJ(NumeroCPF_CNPJ) {
	var i, j, k, Soma, Digito;
	var CNPJ;
	CNPJ = NumeroCPF_CNPJ.length == 12;
	var Result = NumeroCPF_CNPJ;
	for (j = 1; j <= 2; j++) {
		k = 2;
		Soma = 0;
		for (i = Result.length - 1; i >= 0; i--) {
			Soma += 1 * eval(Result.charAt(i) + "*" + k);
			k++;
			if (k > 9 && CNPJ)
				k = 2;
		}
		Digito = 11 - Soma % 11;
		if (Digito >= 10)
			Digito = 0;
		Result += "" + Digito;
	}
	return Result.substring(Result.length - 2);
}

/*
 * Muda o location da pagina para o endereco informado
 */
function redirect(url) {
	document.location.href=url;
}

/*
 * Transforma uma string em data
 */
function parseDate(_str){
   var br1 = _str.indexOf("/");
   var br2 = _str.indexOf("/",br1+1);
   var dia = _str.substring(0,br1);
   var mes = _str.substring(br1+1,br2);
   var ano = _str.substring(br2+1);
   return (new Date(parseFloat(ano),parseFloat(mes)-1,parseFloat(dia)));
}

/*
 * Diferenca entre a data1(menor) para a data2 (maior)
 */
function y2k(number){
   return (number < 1000) ? number + 1900 : number;
}
function diffDate(date1,date2){
   var difference =
      Date.UTC(y2k(date2.getYear()),date2.getMonth(),date2.getDate(),0,0,0) -
      Date.UTC(y2k(date1.getYear()),date1.getMonth(),date1.getDate(),0,0,0);
   return difference/1000/60/60/24;
}

/*
 * Verifica se a data1 eh menor que a data2
 */
function okDates(date1,date2) {
  if(diffDate(parseDate(date1.value),parseDate(date2.value))<0){
    alert("A data de término não podem ser menor que a data de início!");
    date2.focus();
    date2.select();
    return false;
  }
  return true;
}

/*
 * Recorta a enesima parte da string
 */
function cut(p_string, p_delimit, p_posicao){
  if(!p_posicao) p_posicao=0;
  var v_index = p_string.toUpperCase().indexOf(p_delimit.toUpperCase());
  if(v_index<0){
    if(p_posicao == 0){
      return p_string;
    }else{
      return "";
    }
  }else
  if(p_posicao<0){
    return p_string.substring(0,p_string.toUpperCase().indexOf(p_delimit.toUpperCase(),p_posicao));
  }else
  if(p_posicao==0){
    return p_string.substring(0,v_index);
  }else{
    return cut(p_string.substring(v_index+p_delimit.length),p_delimit,p_posicao-1);
  }
}

/*
 * Limpa o html dos campos
 */
function clearValue(v){
  var i = v.indexOf("<");
  var r = v.substring(0,i);
  var p = v.substring(i);
  var s = "";
  while(i > -1){
    i = p.indexOf("<",1);
    if(i>-1){
      s = p.substring(0,i);
      p = p.substring(i);
    }else{
      s = p;
      p = "";
    }
    var u = s.toUpperCase();
    //OPTION DO SELECT
    if(u.indexOf("<OPTION ") >= 0){
      ind = u.indexOf(" SELECTED");
      if (ind < 0) r += s;
      else r += s.substring(0,ind) + s.substring(ind+9);
    }else
    //CHECKBOX
    if(u.indexOf(" TYPE=\"CHECKBOX\"") >= 0 || u.indexOf(" TYPE=CHECKBOX") >= 0){
      ind = u.indexOf(" CHECKED");
      if (ind < 0) r += s;
      else r += s.substring(0,ind) + s.substring(ind+8);
    }else
    //TEXT
    if(u.indexOf(" TYPE=\"TEXT\"")   >= 0 || u.indexOf(" TYPE=TEXT")   >= 0 ||
       u.indexOf(" TYPE=\"HIDDEN\"") >= 0 || u.indexOf(" TYPE=HIDDEN") >= 0 ||
       u.indexOf(" TYPE=")           == -1){
      ind = u.indexOf(" VALUE=");
      if (ind >= 0) {
        r += s.substring(0, ind);
        s = s.substring(ind+7);
        if (s.substring(0,1) == "'"){
          s = s.substring(s.indexOf("'",1)+1);
        }else
        if (s.substring(0,1) == "\""){
          s = s.substring(s.indexOf("\"",1)+1);
        }else
        if(s.indexOf(">") < s.indexOf(" ")){
          s = s.substring(s.indexOf(">"));
        }else{
          s = s.substring(s.indexOf(" "));
        }
      }
      r += s;
    }else{
    //OUTROS (select,button,radio,etc)
      r += s;
    }
  }
  return r;
}

/*
 * Duplica a linha da tabela
 */
function copyLine(ptable){
  if (isUndefined(ptable.rows)) ptable = document.getElementById(ptable);
  var g_linhas=ptable.rows.length;
  ptable.insertRow(g_linhas);
  ptable.rows[g_linhas].bgColor=ptable.rows[g_linhas-1].bgColor;
  for(var li=0;li<ptable.rows[g_linhas-1].cells.length;li++){
    ptable.rows[g_linhas].insertCell(li);
    ptable.rows[g_linhas].cells[li].className=ptable.rows[g_linhas-1].cells[li].className;
    ptable.rows[g_linhas].cells[li].align    =ptable.rows[g_linhas-1].cells[li].align;
    ptable.rows[g_linhas].cells[li].innerHTML=clearValue(ptable.rows[g_linhas-1].cells[li].innerHTML);
  }
  return ptable.rows[g_linhas];
}

/*
 * Duplica a coluna da tabela
 */
function copyCols(ptable){
  if (isUndefined(ptable.rows)) ptable = document.getElementById(ptable);
  var v_linhas=ptable.rows.length-1;
  var v_colunas=ptable.rows[1].cells.length;
  ptable.rows[0].cells[ptable.rows[0].cells.length-1].colSpan++;
  ptable.rows[v_linhas].cells[ptable.rows[v_linhas].cells.length-1].colSpan++;
  for(var li=1;li<=v_linhas-1;li++){
    ptable.rows[li].insertCell(v_colunas);
    ptable.rows[li].cells[v_colunas].className=ptable.rows[li].cells[v_colunas-1].className;
    ptable.rows[li].cells[v_colunas].align    =ptable.rows[li].cells[v_colunas-1].align;
    ptable.rows[li].cells[v_colunas].innerHTML=clearValue(ptable.rows[li].cells[v_colunas-1].innerHTML);
  }
}

/*
 * Exclui a linha da tabela
 */
function delLine(eve,pmin){
  if(!pmin) pmin = 1;
  if(is_ie){
    var vrow=window.event.srcElement;
    while ((vrow=vrow.parentElement)&&vrow.tagName!="TR");
    var vtable = vrow;
    while ((vtable=vtable.parentElement)&&vtable.tagName!="TABLE");
    if(vtable.rows.length>pmin) vrow.parentElement.removeChild(vrow);
  }else{
    var vrow=eve.target;
    while ((vrow=vrow.parentNode)&&vrow.tagName!="TR");
    var vtable = vrow;
    while ((vtable=vtable.parentNode)&&vtable.tagName!="TABLE");
    if(vtable.rows.length>pmin) vrow.parentNode.removeChild(vrow);
  }
}

/*
 * Remove o html da string
 */
function removeHTML(st){
  return st.replace(/(\< *[^\>]*\>|\&nbsp\;)/g, "");
}

/*
 * Funcao trim
 */
function trim(st){
  return st.replace(/^\s*|\s*$/g, "");
}
