// JavaScript Document

/******************************************************************************
CORRIGE TRANSPARENCIA PARA IE5.5 & 6
******************************************************************************/
function correctPNG(){
   var arVersion = navigator.appVersion.split("MSIE")
   var version = parseFloat(arVersion[1])
   if ((version >= 5.5) && (document.body.filters)) 
   {
      for(var i=0; i<document.images.length; i++)
      {
         var img = document.images[i]
         var imgName = img.src.toUpperCase()
         if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
         {
            var imgID = (img.id) ? "id='" + img.id + "' " : ""
            var imgClass = (img.className) ? "class='" + img.className + "' " : ""
            var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
            var imgStyle = "display:inline-block;" + img.style.cssText 
            if (img.align == "left") imgStyle = "float:left;" + imgStyle
            if (img.align == "right") imgStyle = "float:right;" + imgStyle
            if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
            var strNewHTML = "<span " + imgID + imgClass + imgTitle
            + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
            + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
            + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
            img.outerHTML = strNewHTML
            i = i-1
         }
      }
   }    
}
//window.attachEvent("onload", correctPNG)


/******************************************************************************
ABRIR LINK EM NOVA JANELA
Utilize: <a href="uppdf/pagina.php" onclick="abreLink(this,'blank')" > link </a>
******************************************************************************/
function abreLink(a,target)  {
	  a.target = '_'+target;
}


/******************************************************************************
VALIDA FORMULÁRIO

Utilize na TAG FORM:  onsubmit="return validaForm(this)"
Formate na TAG INPUT/SELECT: class="classe XVLDemail"
******************************************************************************/
function validaForm(f){
	for(i=0;i<f.length;i++){
		var cTipo = new Array(2);
		cTipo = f.elements[i].className.split(" ");
		if(!cTipo[1]){} //- se n existir tipo
		else{
			var x = cTipo[1];
			var y = f.elements[i]; //- input analizado no momento
			var bgcolorred = '#ffcccc'; //- cor para validaçao certa
			var bgcolorgreen = '#ccffcc'; //- cor para validaçao errada
			if (y.value == ''){
				alert("O campo não foi preenchido corretamente.");
				y.focus();
				y.style.backgroundColor = bgcolorred;
				return false;
			}else{
				switch(x){
					case 'XVLDtudo':
						if (y.value == ''){
							alert("O campo não foi preenchido corretamente.");
							y.select();
							y.style.backgroundColor = bgcolorred;
							return false;
						}else{
							y.style.backgroundColor = bgcolorgreen;
						}
					break;
					
					case 'XVLDtexto': //- Caso tipo seja TEXTOs, NUMEROS, PONTOS e ESPAÇOS
						var expReg = /^[a-zA-Z0-9ÂÊÔâêôÁÉÍÓÚáéíóúÀÈÌÒÙàèìòùÃÕãõÄËÏÖÜäëïöüçÇ\.\-\,\ \_]*$/;
						//var expReg = /^$/;
						if (!y.value.match(expReg)){
							alert("O valor '"+y.value+"' não está corretamente formatado. \r\nUtilize apenas textos e números e/ou os caracteres especificados abaixo: \r\n - ponto\r\n - hífen\r\n - virgula\r\n - espaço\r\n - undeline");
							y.select();
							y.style.backgroundColor = bgcolorred;
							return false;
						}else{
							y.style.backgroundColor = bgcolorgreen;
						}
					break;
					
					case 'XVLDsenha': //- Caso tipo seja SENHA
						var expReg = /^[a-zA-Z0-9.-]+$/;
						if (!y.value.match(expReg)){
							alert("O valor '"+y.value+"' não está corretamente formatado. \r\nUtilize apenas textos, números, pontos e hífens.");
							y.select();
							y.style.backgroundColor = bgcolorred;
							return false;
						}else{
							y.style.backgroundColor = bgcolorgreen;
						}
					break;
					
					case 'XVLDusuario': //- Caso tipo seja TEXTO e/ou NUMEROS em caixa baixa
						var expReg = /^[a-z0-9\.]+$/;
						if (!y.value.match(expReg)){
							alert("O valor '"+y.value+"' não está corretamente formatado. \r\nUtilize apenas textos em caixa baixa, números e ponto[ . ].");
							y.select();
							y.style.backgroundColor = bgcolorred;
							return false;
						}else{
							y.style.backgroundColor = bgcolorgreen;
						}
					break;
					
					case 'XVLDsenhaB': //- Caso tipo seja SENHA (ALTERNATIVA)
						if(y.value != ''){ //- Se estiver vazio passa adiante
							var expReg = /^[a-zA-Z0-9.-]+$/;
							if (!y.value.match(expReg)){
								alert("O valor '"+y.value+"' não está corretamente formatado. \r\nUtilize apenas textos, números, pontos e hífens.");
								y.select();
								y.style.backgroundColor = bgcolorred;
								return false;
							}else{
								y.style.backgroundColor = bgcolorgreen;
							}
						}
					break;
					
					case 'XVLDtxtnum': //- Caso tipo seja TEXTO e/ou NUMEROS
						var expReg = /^\w+$/;
						if (!y.value.match(expReg)){
							alert("O valor '"+y.value+"' não está corretamente formatado. \r\nUtilize apenas textos e números.");
							y.select();
							y.style.backgroundColor = bgcolorred;
							return false;
						}else{
							y.style.backgroundColor = bgcolorgreen;
						}
					break;
					
					case 'XVLDnumero': //- Caso tipo seja NUMERO
						var expReg = /^\d+$/;
						if (!y.value.match(expReg)){
							alert("O valor '"+y.value+"' não está corretamente formatado. \r\nUtilize apenas números.");
							y.select();
							y.style.backgroundColor = bgcolorred;
							return false;
						}else{
							y.style.backgroundColor = bgcolorgreen;
						}
					break;
					
					case 'XVLDdata': //- Caso tipo seja DATA 00/00/0000
						var expReg = /^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[1-2][0-9]\d{2})$/;
						if (!y.value.match(expReg)){
							alert("O valor '"+y.value+"' não está corretamente formatado. \r\nUtilize o padrao: \'dd/mm/aaaa\'");
							y.select();
							y.style.backgroundColor = bgcolorred;
							return false;
						}else{
							y.style.backgroundColor = bgcolorgreen;
						}
					break;
					
					case 'XVLDemail': //- Caso tipo seja EMAIL
						//- ^[\w][\a-z0-9\-\.\_]+@[^\.@][\a-z0-9\-\.\_]+\.[\a-z0-9]{2,4}$
						//- [\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}\])
						var expReg = /^[0-9a-zA-Z]+([_.-]?[0-9a-zA-Z]+)*@[0-9a-zA-Z]+([.-]?[0-9a-zA-Z]+)*([.]{1}[a-zA-Z]{2,4})?([.]{1}[a-zA-Z]{2})?$/;
						if (!y.value.match(expReg)){
							alert("O valor '"+y.value+"' não está corretamente formatado. \r\nUtilize o padrao: \'email@servidor.com\'");
							y.select();
							y.style.backgroundColor = bgcolorred;
							return false;
						}else{
							y.style.backgroundColor = bgcolorgreen;
						}
					break;
					
					case 'XVLDcep': //- Caso tipo seja CEP
						//var expReg = /^[0-9]{2}\.[0-9]{3}-[0-9]{3}$/;
						var expReg = /^[0-9]{5}-[0-9]{3}$/;
						if (!y.value.match(expReg)){
							alert("O valor '"+y.value+"' não está corretamente formatado. \r\nUtilize o padrao: \'99999-999\'");
							y.select();
							y.style.backgroundColor = bgcolorred;
							return false;
						}else{
							y.style.backgroundColor = bgcolorgreen;
						}
					break;
					
					case 'XVLDtelefone': //- Caso tipo seja TELEFONE
						//var expReg = /^[0-9]{2}\.[0-9]{3}-[0-9]{3}$/;
						var expReg = /^\([0-9]{2}\)\ [0-9]{4}-[0-9]{4}$/;
						if (!y.value.match(expReg)){
							alert("O valor '"+y.value+"' não está corretamente formatado. \r\nUtilize o padrao: \'(99)9999-9999\'");
							y.select();
							y.style.backgroundColor = bgcolorred;
							return false;
						}else{
							y.style.backgroundColor = bgcolorgreen;
						}
					break;
					
					case 'XVLDselect': //- Caso tipo seja SELECT
						if (y.selectedIndex == 0){
							alert("Nenhuma das opçoes foram selecionadas.");
							y.focus();
							y.style.backgroundColor = bgcolorred;
							return false;
						}else{
							y.style.backgroundColor = bgcolorgreen;
						}
					break;
					
					case 'XVLDselectMult': //- Caso tipo seja SELECT Multiple
						if (y.selectedIndex == -1){
							alert("Nenhuma das opçoes foram selecionadas.");
							y.focus();
							y.style.backgroundColor = bgcolorred;
							return false;
						}else{
							y.style.backgroundColor = bgcolorgreen;
						}
					break;
				}
			}
		}
	}
}


/******************************************************************************
MASCARA FORMULÁRIO
fonte: http://elcio.com.br/ajax/mascara/
Utilize: <input id="ileech" onkeypress="mascara(this,leech)" />
o nome das funçoes estao em maiúsculas para não serem iguais ao id do input em questao
******************************************************************************/
function mascara(o,f){
    v_obj=o
    v_fun=f
    setTimeout("execMascara()",1)		//chama entao num Timeout a funçao execmascara()
}
function execMascara(){
    v_obj.value=v_fun(v_obj.value)		//executa a funçao v_fun no valor do objeto v_obj
}
function LEECH(v){		//Troca letras por outras
    v=v.replace(/o/gi,"0")
    v=v.replace(/i/gi,"1")
    v=v.replace(/z/gi,"2")
    v=v.replace(/e/gi,"3")
    v=v.replace(/a/gi,"4")
    v=v.replace(/s/gi,"5")
    v=v.replace(/t/gi,"7")
    return v
}
function NUM(v){
    return v.replace(/\D/g,"")
}
function TEL(v){
    v=v.replace(/\D/g,"")                 //Remove tudo o que não é dígito
    v=v.replace(/^(\d\d)(\d)/g,"($1) $2") //Coloca parenteses em volta dos dois primeiros dígitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2")    //Coloca hífen entre o quarto e o quinto dígitos
    return v
}
function MOEDA(v){  
	//v = z.value;
	v=v.replace(/\D/g,"")  //permite digitar apenas números
	v=v.replace(/[0-9]{12}/,"inválido")   //limita pra máximo 999.999.999,99
	v=v.replace(/(\d{1})(\d{8})$/,"$1.$2")  //coloca ponto antes dos últimos 8 digitos
	v=v.replace(/(\d{1})(\d{5})$/,"$1.$2")  //coloca ponto antes dos últimos 5 digitos
	v=v.replace(/(\d{1})(\d{1,2})$/,"$1,$2")        //coloca virgula antes dos últimos 2 digitos
	return v;
}
function CPF(v){
    v=v.replace(/\D/g,"")                    //Remove tudo o que não é dígito
    v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
    v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos de novo (para o segundo bloco de números)
    v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2") //Coloca um hífen entre o terceiro e o quarto dígitos
    return v
}
function DATA(v){
    v=v.replace(/\D/g,"")                    //Remove tudo o que não é dígito
    v=v.replace(/(\d{2})(\d)/,"$1/$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
    v=v.replace(/(\d{2})(\d)/,"$1/$2") 
	return v
}
function CEP(v){
    v=v.replace(/\D/g,"")                	//Remove tudo o que não é dígito
    v=v.replace(/^(\d{5})(\d)/,"$1-$2") 	//Esse é tao fácil que não merece explicaçoes
    return v
}
function HORA(v){
    v=v.replace(/\D/g,"")                	//Remove tudo o que não é dígito
    v=v.replace(/^(\d{2})(\d)/,"$1:$2") 	//Esse é tao fácil que não merece explicaçoes
    return v
}
function HORAH(v){
    v=v.replace(/\D/g,"")                	//Remove tudo o que não é dígito
    v=v.replace(/^(\d{2})(\d)/,"$1h$2") 	//Esse é tao fácil que não merece explicaçoes
    return v
}
function CNPJ(v){
    v=v.replace(/\D/g,"")                           //Remove tudo o que não é dígito
    v=v.replace(/^(\d{2})(\d)/,"$1.$2")             //Coloca ponto entre o segundo e o terceiro dígitos
    v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3") //Coloca ponto entre o quinto e o sexto dígitos
    v=v.replace(/\.(\d{3})(\d)/,".$1/$2")           //Coloca uma barra entre o oitavo e o nono dígitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2")              //Coloca um hífen depois do bloco de quatro dígitos
    return v
}
function ROMANOS(v){
    v=v.toUpperCase()             //Maiúsculas
    v=v.replace(/[^IVXLCDM]/g,"") //Remove tudo o que não for I, V, X, L, C, D ou M
    //Essa é complicada! Copiei daqui: http://www.diveintopython.org/refactoring/refactoring.html
    while(v.replace(/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,"")!="")
        v=v.replace(/.$/,"")
    return v
}
function SITE(v){
    //Esse sem comentarios para que voce entenda sozinho ;-)
    v=v.replace(/^http:\/\/?/,"")
    dominio=v
    caminho=""
    if(v.indexOf("/")>-1)
        dominio=v.split("/")[0]
        caminho=v.replace(/[^\/]*/,"")
    dominio=dominio.replace(/[^\w\.\+-:@]/g,"")
    caminho=caminho.replace(/[^\w\d\+-@:\?&=%\(\)\.]/g,"")
    caminho=caminho.replace(/([\?&])=/,"$1")
    if(caminho!="")dominio=dominio.replace(/\.+$/,"")
    v="http://"+dominio+caminho
    return v
}
