// JavaScript Document

cont = 1; //- contador inicial universal para as funçoes, seus valores podem ser alterados mediante a execuçao das funçoes

/******************************************************************************
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
         }
      }
   }    
}
if(window.attachEvent && typeof(window.attachEvent === 'function')) window.attachEvent("onload", correctPNG)


/******************************************************************************
ADICIONAR SWF
Utilize:
<script type="text/javascript">
	addSWF('../swf/lousa.swf', 425, 250, true);
	//addSWF('Caminho e arquivo a ser chamado', Largura , altura , true ou false para transparente)
</script>
******************************************************************************/
// JavaScript Document

function addSWF   (URL, WIDTH, HEIGHT, TRANSPARENT)
	{
	document.write (' <object type="application/x-shockwave-flash" data="'+ URL +'"');
	document.write (' width="'+ WIDTH +'" height="'+ HEIGHT +'">');
	document.write (' <param name="movie" value="'+ URL +'" />');
	document.write (' <param name="quality" value="high" />');
	
	if ( TRANSPARENT ) {
	  document.write (' <param name="Wmode" value="Transparent" />');
	}
	
	document.write (' <embed src="'+ URL +'" quality="high" ');
	
	if ( TRANSPARENT ) {
	document.write (' Wmode = "transparent" ');
	}
	
	document.write (' pluginspage="http://www.macromedia.com/go/getflashplayer" ');
	document.write (' type="application/x-shockwave-flash" width="'+ WIDTH +'" height="'+ HEIGHT +'"></embed> ');
	document.write (' </object>');
	
	}


/******************************************************************************
MOSTRA ID QUE ESTÁ COM DISPLAY NONE
id			= Elemento que aparecerá
idButtom	= Botao de açao que desaparecerá
qtde		= Qtde de elementos q serao exibidos (por sequencia de cliques)

	Utilize no ID oculto: 
	<div id="nome1" style="display:none;">
	</div>
	<div id="nome2" style="display:none;">
	</div>
	...etc
******************************************************************************/
function mostra(id,idButton,qtde){
	idButt = idButton.split(":"); //- separa string em array - sao os ID que serae ocultados
	document.getElementById(id+cont).style.display = 'block';
	if(cont<qtde)
		{cont++;}
	else{
		if(idButt[0] != ''){
			for(i=0 ; i<idButt.length ; i++){
				//alert(idButt);
				document.getElementById(idButt[i]).style.display = 'none';
			}
		}
	}
}

function esconde(id,qtde){
	document.getElementById(id+cont).style.display = 'none';
	if(cont<qtde)
		{cont++;}
}


/******************************************************************************
CAIXA DE DIÁLOGO DE CONFIRMAÇAO
******************************************************************************/
function confirmaAcao(url){
	if(confirm("Tem certeza que deseja executar esta açao?")){
		//alert(url);
		window.location=url;
	}
}

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

Utilize na TAG FORM:  onsubmit="return validaForm(this)"
Formate na TAG INPUT/SELECT: class"classe XVLDemail"
******************************************************************************/
function validaForm(f){
	for(var i=0;i<f.length;i++){
	    var c = f.elements[i].className;
		if(c) {
		    var cTipo = c.split(" ");
		    for(var j = 0; j < cTipo.length; j++) {
			    if(!cTipo[j]) continue;
				var x = cTipo[j];
				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
				switch(x){
					case 'XVLDrequired':
						if (y.value == ''){
							alert("O preenchimeto deste campo é obrigatorio.");
							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 - virgula\r\n - espaço\r\n - ponto\r\n - hífen\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 'XVLDnumdoc': //- Caso tipo seja NUMEOS DE DOCUMENTO (0-9, /, -, .)
						if(y.value != ''){ //- Se estiver vazio passa adiante
							var expReg = /^[0-9\.\-\/\\\s]+$/;
							if (!y.value.match(expReg)){
								alert("O valor '"+y.value+"' não está corretamente formatado. \r\nUtilize apenas números, pontos, barras 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 && !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 && !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
						var expReg = /^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$/;
						if (y.value && !y.value.match(expReg)){
							alert("O valor '"+y.value+"' não está corretamente formatado. \r\nUtilize o padrao: \'email@servidor.extencao\'");
							y.select();
							y.style.backgroundColor = bgcolorred;
							return false;
						}else{
							y.style.backgroundColor = bgcolorgreen;
						}
					break;
					
					case 'XVLDurl': //- Caso tipo seja URL
						var expReg = /^((https?|ftp|news):\/\/)?([a-z]([a-z0-9\-]*\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)|(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))(\/[a-z0-9_\-\.~]+)*(\/([a-z0-9_\-\.]*)(\?[a-z0-9+_\-\.%=&amp;]*)?)?(#[a-z][a-z0-9_]*)?$/;
						if (y.value && !y.value.match(expReg)){
							alert("O valor '"+y.value+"' não está corretamente formatado. \r\nUtilize o padrao: \'http:\/\/nomedosite'");
							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 && !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}\)[\s]*[0-9]{4}-[0-9]{4}$/;
						if (y.value && !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;
					
					default:
				}
			}
		}
	}
}

/******************************************************************************
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
}


/******************************************************************************
TROCA VALORES
Funçao que troca VALORes da PROPriedade do elemento enviado no ID e executa AÇAO
******************************************************************************/
function trocaValor(id,prop,valor,acao){
	var a = document.getElementById(id);
	a[prop] = valor;
	switch(acao){
		case 'submit':
		a.submit();
		break;
	}
}


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


/**********************************************************************************/
/***     								FADE FX									***/
/***     APLICA O EFEITO FADE NO OBJETO PASSADO (cross-browser)					***/
/***     AUTOR : RAFAEL CORREIA											        ***/
/***     rafael.ja.tinha@gmail.com										        ***/
/**********************************************************************************/
/***	 UI:																	***/
/***	 $FADE([obj], [string : direcao("in"/"out")], [number : duracao])		***/
/**********************************************************************************/

var $FADE = function (obj, direcao, time) {
	var obj = obj, delay = Math.ceil(time / 25), countIni, countFim, algorit, add, visibility;
	
	if(direcao == 'in') {
		countIni = 0; countFim = 100; add = 5; visib = 'visible';
	}
	else {
		countIni = 100; countFim = 0; add = -5;  visib = 'hidden';
	}
	
	function setFinalStatus() {
		obj.style.visibility = visib;
		obj.style.opacity = 1;
		obj.style.filter = 'alpha(opacity=100)';
	}
	
	function fade () {
		var opacidade = countIni ;
		obj.style.opacity = (opacidade * .01);
		obj.style.filter = 'alpha(opacity=' + opacidade + ')';
		if (countIni == countFim) {
			setFinalStatus();
		}
		else {
			countIni += add;
			window.setTimeout(fade, delay);
		}
	}
	window.setTimeout(fade, delay);
}



