/*
	Função para validação de campos
	Luiz Cyber
	Parametros : 
		- obj  -> o campo que contém o valor que será validado
		- tipo -> tipo de validação que será efetuada
					'E' : validação de e-mail
					'D' : validação de data
					'F' : validação de telefone (xx)xxxx-xxxx
					'C' : validação de CEP
					'M' : validação de moeda
	Retorno : Retorna true (se validação estiver correta) e false (se validação estiver incorreta)
	Chamada : 
		if(cyValidar(str_valor,'tipo')) 
			alert("Formato válido");
		else
			alert("Formato inválido!!!");
	Atualizações:
		26/09/2008 : - Inclusão de expressão regular para validação de e-mail.
					 - Inclusão de expressão regular para validação de data.
*/
function cyValidar(strValor,tipo){
	switch(tipo){
		case 'E': // Validar campo e-mail
			expR = /^[\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}\])$/;
			break;
		case 'F': // Validar campo telefone
			expR = /^\(\d{2}\)\d{4}-\d{4}$/;
			break;
		case 'C': // Validar campo CEP
			expR = /^[0-9]{2}\.[0-9]{3}-[0-9]{3}$/;
			break;
		case 'M': // Validar campo moeda
			expR = /^([0-9]{1,3}.){1,}[0-9]{2}$/;
			break;
		case 'D': // Validar campo data
			expR = /^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/;
			break;
	}
	return expR.test(trim(strValor)) ? true : false;
}
/*
	Função para validar CNPJ
	Luiz Silva    : 14/07/2008
	Parametros	  : 
		- strCnpj -> string com o número do CNPJ
	Retorno		  : retorna true (se o nº do CNPJ for válido) e false (caso seja invalido)
	Chamada		  : 
		if(valida_cnpj(num_cnpj))
			alert("CNPJ correto!!!");
		else
			alert("CNPJ incorreto!!!");
	Atualilzações :
*/
function valida_cnpj(strCnpj){
    numCnpj = trim(strCnpj);
    var numPeso = new Array(6,5,4,3,2,9,8,7,6,5,4,3,2); // Peso para calculo do digito verificador
    dVer1 = new Number;
    dVer2 = new Number;    
    expCar = /\.|\-|\//g; // expressão para retirar os caracteres (.) (/) (-)
    numCnpj = numCnpj.toString().replace( expCar, "" );
    var digCnpj = new Number(eval(numCnpj.charAt(12)+numCnpj.charAt(13)));
    for(i = 0; i<numPeso.length; i++){
        dVer1 += (i>0 ? (numCnpj.charAt(i-1)*numPeso[i]) : 0);    
        dVer2 += numCnpj.charAt(i)*numPeso[i];    
    }
    dVer1 = (((dVer1%11)<2) ? 0 : (11-(dVer1%11)));
    dVer2 = (((dVer2%11)<2) ? 0 : (11-(dVer2%11)));
    return (((dVer1*10)+dVer2) != digCnpj) ? false : true;
}
/*
	Função para retirar caracteres em branco do inicio e do fim de uma string
*/
function trim(str){
	return str.replace(/^\s+|\s+$/g,"");
}
function retiraAcentos(strMsg){
	var strEr = /\r\n/g; // expressao regular para retirar quebra de linha
	var strCom = new Array("á","à","â","ã","ä","é","è","ê","ë","í","ì","î","ï","ó","ò","ô","õ","ö","ú","ù","û","ü","ç","Á","À", "Â","Ã","Ä","É","È","Ê","Ë","Í","Ì","Î","Ï","Ó","Ò","Ô","Õ","Ö","Ú","Ù","Û","Ü","Ç");
	var strSem = new Array("a","a","a","a","a","e","e","e","e","i","i","i","i","o","o","o","o","o","u","u","u","u","c","A","A", "A","A","A","E","E","E","E","I","I","I","I","O","O","O","O","O","U","U","U","U","C");
	strMsg = str_replace(strCom,strSem,strMsg); // substitui caracteres especiais
	return strMsg.replace(strEr, " ");
}
function str_replace(search, replace, subject) {
    var f = search, r = replace, s = subject;
    var ra = r instanceof Array, sa = s instanceof Array, f = [].concat(f), r = [].concat(r), i = (s = [].concat(s)).length;
    while(j = 0, i--){
        if(s[i])
            while (s[i] = s[i].split(f[j]).join(ra ? r[j] || "" : r[0]), ++j in f){};
    };
    return sa ? s : s[0];
}
function trocaCaracteres(str){
		var arrSearch = new Array ('á', 'à', 'ã', 'â', 'ä', 'õ', 'ò','ó', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'ï', 'ç', 'Á', 'À', 'Ã', 'Â', 'Ä', 'Õ','Ò', 'Ó', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Ï', 'Ç');
		var arrReplace = new Array ('&aacute;','&agrave;', '&atilde;', '&acirc;', '&auml;', '&otilde;', '&ograve;', '&ocirc;', '&egrave;', '&eacute;', '&ecirc;', '&euml;', '&igrave;', '&iacute;', '&iuml;','&ccedil;', '&aacute;','&agrave;', '&atilde;', '&acirc;', '&auml;', '&otilde;', '&ograve;', '&ocirc;', '&egrave;', '&eacute;', '&ecirc;', '&euml;', '&igrave;', '&iacute;', '&iuml;','&ccedil;');
		return str_replace(arrSearch,arrReplace,str);
}
function getScripts(texto){ 
	var ini = 0;
	while (ini!=-1){
		// procura uma tag de script
		ini = texto.indexOf('<script', ini);
		if (ini >=0){
	    	ini = texto.indexOf('>', ini) + 1;
	    	// procura o final do script
	    	var fim = texto.indexOf("<\/script>", ini);
	    	codigo = texto.substring(ini,fim);
	    	var novo = document.createElement("script")
	    	novo.text = codigo;
	    	document.body.appendChild(novo);
		}
	}
}
function char2html(str) { 	
	for(i = 0; i < str.length; i++){
	//str = str.replace(htmlentidade[x],caractere[x]);
		str = str.replace('&','eecm');
		str = str.replace(';','ppta');
	}  
	return str;	
}
