// JavaScript Document

/**
 * SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 */
if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\"";_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";var _1a=this.getParams();for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}var _1c=this.getVariablePairs().join("&");if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\">";_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";var _1d=this.getParams();for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.major<fv.major){return false;}if(this.major>fv.major){return true;}if(this.minor<fv.minor){return false;}if(this.minor>fv.minor){return true;}if(this.rev<fv.rev){return false;}return true;};deconcept.util={getRequestParameter:function(_2b){var q=document.location.search||document.location.hash;if(_2b==null){return q;}if(q){var _2d=q.substring(1).split("&");for(var i=0;i<_2d.length;i++){if(_2d[i].substring(0,_2d[i].indexOf("="))==_2b){return _2d[i].substring((_2d[i].indexOf("=")+1));}}}return "";}};deconcept.SWFObjectUtil.cleanupSWFs=function(){var _2f=document.getElementsByTagName("OBJECT");for(var i=_2f.length-1;i>=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject;


// GALERIA DE IMAGENS
<!-- Begin
var tempo = new Array();
var current = new Array();
current[0] = 0;
function next(img, linker, form, form_on, img_array, link_array, target_array, index) {
	var imgs = new Array(); var links = new Array(); var target = new Array();
	imgs = img_array; links = link_array; target = target_array;
	if(!index){ index = 0;}
	var crt = current[index] + 1;
	if((!form_on) || (form_on == "off")){
		if(current[index] == (imgs.length - 1)){ current[index] = -1; }
		img.src = imgs[crt];
		// link
		if(linker){	linker.href = links[crt]; }
		if(target){	linker.target = target[crt]; }
		(current[index] == imgs.length-1) ? current[index] = 0 : current[index]++;
	} else {
		if (form[crt]) {
			img.src = form[crt].value;
			// link 
			if(linker){	linker.href = links[crt]; }
			if(target){	linker.target = target[crt]; }
			form.selectedIndex = ++current[index];
   		}
		else first(img, linker, form, form_on, img_array, link_array, target_array, index);
	}
}
function previous(img, linker, form, form_on, img_array, link_array, target_array, index) {
	var imgs = new Array(); var links = new Array(); var target = new Array();
	imgs = img_array; links = link_array; target = target_array;
	if(!index){ index = 0;}
	var crt = current[index] - 1;
	if((!form_on) || (form_on == "off")){
		if(current[index] == 0){ current[index] = imgs.length; }
		img.src = imgs[crt];
		// link
		if(linker){	linker.href = links[crt]; }
		if(target){	linker.target = target[crt]; }
		(current[index] == 0) ? current[index] = imgs.length-1 : current[index]--;
	} else {
		if (current[index]-1 >= 0) {
		img.src = form[crt].value;
		// link
		if(linker){	linker.href = links[crt]; }
		if(target){	linker.target = target[crt]; }
		form.selectedIndex = --current[index];
   		}
		else last(img, linker, form, form_on, img_array, link_array, target_array, index);
	}
}
function first(img, linker, form, form_on, img_array, link_array, target_array, index) {
	var imgs = new Array(); var links = new Array(); var target = new Array();
	imgs = img_array; links = link_array; target = target_array;
	if(!index){ index = 0;}
	current[index] = 0;
	var crt = current[index];
	if((!form_on) || (form_on == "off")){
		img.src = imgs[crt];
		// link
		if(linker){	linker.href = links[crt]; }
		if(target){	linker.target = target[crt]; }
	} else {
		img.src = form[0].value;
		// link
		if(linker){	linker.href = links[crt]; }
		if(target){	linker.target = target[crt]; }
		form.selectedIndex = 0;
	}
}
function last(img, linker, form, form_on, img_array, link_array, target_array, index) {
	var imgs = new Array(); var links = new Array(); var target = new Array();
	imgs = img_array; links = link_array; target = target_array;
	if(!index){ index = 0;}
	var crt = current[index];
	if((!form_on) || (form_on == "off")){
		current[index] = imgs.length-1;
		img.src = imgs[crt];
		// link
		if(linker){	linker.href = links[crt]; }
		if(target){	linker.target = target[crt]; }
	} else {
		current[index] = form.length-1;
		img.src = form[crt].value;
		// link
		if(linker){	linker.href = links[crt]; }
		if(target){	linker.target = target[crt]; }
		form.selectedIndex = current[index];
	}
}
function ap(text, img, linker, form_btn, form_btn_on, form, form_on, img_array, link_array, target_array, intervalo, index) {
	if(form_btn_on == "on"){ form_btn.value = (text == "  Parar  ") ? "  Iniciar  " : "  Parar  "; }
	if(tempo){ 	clearTimeout(tempo); }
	rotate(img, linker, form_btn, form_btn_on, form, form_on, img_array, link_array, target_array, intervalo, index);
}
function change(img, linker, form, link_array, target_array, index) {
	var links = new Array(); var target = new Array();
	if(!index){ index = 0;}
	var crt = current[index];
	links = link_array; target = target_array;
	crt = form.selectedIndex;
	img.src = form[crt].value;
	// link
	if(linker){	linker.href = links[crt]; }
	if(target){	linker.target = target[crt]; }
	current[index] = crt;
}

 //rotate(img, form_btn, form_btn_on, form, form_on, img_array);
 // img: nome da tag que irá mostrar as imagens
 // form_btn: botão para ativar o slide
 // form_btn_on: indica se tem o 'form_btn'
 // form: select com o nome das images
 // form_on: indica se tem o 'form'
 // img_array: array com os nomes das imagens
 // img array deve ser usado quando não tiver o 'form'
function rotate(img, linker, form_btn, form_btn_on, form, form_on, img_array, link_array, target_array, intervalo, index) {
	var imgs = new Array(); var links = new Array(); var target = new Array();
	imgs = img_array; links = link_array; target = target_array;
	if(!index){ index = 0;}
	var crt = current[index];
	if((!form_btn_on) || (form_btn_on == "off")){
		if((!form_on) || (form_on == "off")){
			// imagem
			img.src = imgs[crt];
			// link
			if(linker){ linker.href = links[crt]; }
			if(target){	linker.target = target[crt]; }
			(crt == imgs.length-1) ? crt = 0 : crt++;
			current[index] = crt;
		} else {
			crt = (crt == form.length-1) ? 0 : crt+1;
			form.selectedIndex = crt;
			// imagem
			img.src = form[crt].value;
			// link
			if(linker){ linker.href = links[crt];  }
			if(target){	linker.target = target[crt]; }
			current[index] = crt;
		}
	} else {
		if (form_btn.value == "  Parar  ") {
			if((!form_on) || (form_on == "off")){
				// imagem
				img.src = imgs[crt];
				// link
				if(linker){ linker.href = links[crt]; }
				if(target){	linker.target = target[crt]; }
				(crt == imgs.length-1) ? crt = 0 : crt++;
				current[index] = crt;
			} else {
				crt = (crt == form.length-1) ? 0 : crt+1;
				form.selectedIndex = crt;
				// imagem
				img.src = form[crt].value;
				// link
				if(linker){ linker.href = links[crt]; }
				if(target){	linker.target = target[crt]; }
				current[index] = crt;
			}
		}
   	}
	tempo[index] = window.setTimeout(function(){ rotate(img, linker, form_btn, form_btn_on, form, form_on, img_array, link_array, target_array, intervalo, index) }, intervalo);
}
//  End -->


/**
 * MASCARAS #########################################################
 */
// Função para mascarar Telefone 9999-9999 
// Criado por: Eduardo Y. Palomba (eduardo@linkecerebro.com.br) 
// Criado em : 25 de abril de 2003 - 11h40 
function mascara_FONE(Campo, teclapres){ 
	var tecla = teclapres.keyCode; 
	var vr = new String(Campo.value); 
	vr = vr.replace("-", "");
	vr = vr.replace(".", ""); 
	vr = vr.replace("/", ""); 
	vr = vr.replace("-", "");
	tam = vr.length + 1 ; 
	if (tam > 4) Campo.value = vr.substr(0, 4) + "-" + vr.substr(4, tam); 
}
//Função para mascarar CEP 99999-999 
// Criado por: Eduardo Y. Palomba (eduardo@linkecerebro.com.br) 
// Criado em : 21 de maio de 2004 - 13h04 
function mascara_CEP(Campo, teclapres){ 
	var tecla = teclapres.keyCode; 
	var vr = new String(Campo.value); 
	vr = vr.replace("-", ""); 
	vr = vr.replace(".", ""); 
	vr = vr.replace(".", ""); 
	vr = vr.replace("/", ""); 
	vr = vr.replace("-", ""); 
	tam = vr.length + 1 ; 
	if (tam > 5) Campo.value = vr.substr(0, 5) + '-' + vr.substr(5, tam); 
}
//mascarar DATA DD/MM/AAAA 
// Criado por: Eduardo Y. Palomba (eduardo@linkecerebro.com.br) 
// Criado em : 24 de abril de 2003 - 17h20 
function mascara_DATA(Campo, teclapres){ 
	var tecla = teclapres.keyCode; 
	var vr = new String(Campo.value); 
	vr = vr.replace(".", ""); 
	vr = vr.replace("/", ""); 
	vr = vr.replace("/", ""); 
	vr = vr.replace("/", ""); 
	vr = vr.replace("-", ""); 
	tam = vr.length + 1; 
	if (tecla != 9 && tecla != 8){ 
		if (tam > 2 && tam < 4) Campo.value = vr.substr(0, 2) + '/' + vr.substr(3, tam); 
		if (tam > 4 && tam < 6) Campo.value = vr.substr(0,2) + '/' + vr.substr(2,2) + '/'; 
		if (tam > 6) Campo.value = vr.substr(0,2) + '/' + vr.substr(2,2) + '/' + vr.substr(4,tam);
	}
} 
//Função para mascarar HORA HH:MM 
// Criado por: Eduardo Y. Palomba (eduardo@linkecerebro.com.br) 
// Criado em : 21 de maio de 2004 - 13h04 
function mascara_HORA(Campo, teclapres){ 
	var tecla = teclapres.keyCode; 
	var vr = new String(Campo.value); 
	vr = vr.replace(".", ""); 
	vr = vr.replace("/", ""); 
	vr = vr.replace("-", ""); 
	vr = vr.replace(":", ""); 
	vr = vr.replace(":", ""); 
	tam = vr.length + 1 ; 
	if (tam > 2) Campo.value = vr.substr(0, 2) + ':' + vr.substr(2, tam); 
}
// Função para mascarar CNPJ 
// Criado por: Eduardo Y. Palomba (eduardo@linkecerebro.com.br) 
// Criado em : 24 de abril de 2003 - 17h20 
function mascara_CNPJ(Campo, teclapres){ 
	var tecla = teclapres.keyCode; 
	var vr = new String(Campo.value); 
	vr = vr.replace(".", ""); 
	vr = vr.replace(".", ""); 
	vr = vr.replace(".", ""); 
	vr = vr.replace(".", ""); 
	vr = vr.replace("/", ""); 
	vr = vr.replace("/", ""); 
	vr = vr.replace("-", ""); 
	vr = vr.replace("-", ""); 
	tam = vr.length + 1 ; 
	if (tecla != 9 && tecla != 8){ 
		if (tam > 2 && tam < 6) Campo.value = vr.substr(0, 2) + '.' + vr.substr(2, tam); 
		if (tam >= 6 && tam < 9) Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,tam-5); 
		if (tam >= 9 && tam < 13) Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,3) + '/' + vr.substr(8,tam-8); 
		if (tam >= 13) Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,3) + '/' + vr.substr(8,4)+ '-' + vr.substr(12,tam-12); 
	}
} 
// Função para mascarar CPF 
// Criado por: Eduardo Y. Palomba (eduardo@linkecerebro.com.br) 
// Criado em : 24 de abril de 2003 - 17h20 
function mascara_CPF(Campo, teclapres){ 
	var tecla = teclapres.keyCode; 
	var vr = new String(Campo.value); 
	vr = vr.replace(".", ""); 
	vr = vr.replace(".", ""); 
	vr = vr.replace(".", ""); 
	vr = vr.replace(".", ""); 
	vr = vr.replace("/", ""); 
	vr = vr.replace("-", ""); 
	vr = vr.replace("-", ""); 
	tam = vr.length + 1; 
	if (tecla != 9 && tecla != 8){ 
		if (tam > 3 && tam < 7) Campo.value = vr.substr(0, 3) + '.' + vr.substr(3, tam); 
		if (tam >= 7 && tam <10) Campo.value = vr.substr(0,3) + '.' + vr.substr(3,3) + '.' + vr.substr(6,tam-6); 
		if (tam >= 10 && tam < 12) Campo.value = vr.substr(0,3) + '.' + vr.substr(3,3) + '.' + vr.substr(6,3) + '-' + vr.substr(9,tam); 
	}
}


/**
 * Função AUTO TAB
 * Chamada diretamente no campo que antecede o próximo campo que receberá o foco
 * Chamada: ->  onKeyUp="return autoTab(this, Quant. máx de caracteres, event);"
 * Ps.: Essa função deve ser colocada dentro das tags <header></header>
 */
 var isNN = (navigator.appName.indexOf("Netscape")!=-1);
 function autoTab(input,len, e) {
	var keyCode = (isNN) ? e.which : e.keyCode;
	var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
	if(input.value.length >= len && !containsElement(filter,keyCode)) {
	input.value = input.value.slice(0, len);
	input.form[(getIndex(input)+1) % input.form.length].focus();
 }
 function containsElement(arr, ele) {
	var found = false, index = 0;
	while(!found && index < arr.length)
		if(arr[index] == ele)
			found = true;
		else
			index++;
		return found;
 }
 function getIndex(input) {
	var index = -1, i = 0, found = false;
	while (i < input.form.length && index == -1)
		if (input.form[i] == input)index = i;
		else i++;
		return index;
	}
	return true;
 }

/**
 * Função COUNT TEXTAREA
 * Determina e mostra no display a quantidade máxima de caracteres no campo textarea
 */
function textCounter(field, countfield, maxlimit) {
	if (field.value.length > maxlimit){ // if too long...trim it!
		field.value = field.value.substring(0, maxlimit);
		alert('VOCÊ JÁ ALCANÇOU O LIMITE DE CARACTERES PERMITIDOS!');
		// otherwise, update 'characters left' counter
	} else { 
		countfield.value = maxlimit - field.value.length;
	}
}
/**
 * VALIDAÇÕES #########################################################
 */

/*    ********************************************************************
    ####################################################################
    Assunto = Validação de CPF e CNPJ
    Autor = Marcos Regis
    Data = 24/01/2006
    Versão = 1.0
    Compatibilidade = Todos os navegadores.
    Pode ser usado e distribuído desde que esta linhas sejam mantidas
    ====------------------------------------------------------------====

    Funcionamento = O script recebe como parâmetro um objeto por isso
    deve ser chamado da seguinte forma:
    E.: no evento onBlur de um campo texto
    <input name="cpf_cnpj" type="text" size="40" maxlength="18"
    onBlur="validar(this);">
    Ao deixar o campo o evento é disparado e chama validar() com o
    argumento "this" que representa o próprio objeto com todas as
    propriedades.
    A partir daí a função validar() trata a entrada removendo tudo que
    não for caracter numérico e deixando apenas números, portanto
    valores escritos só com números ou com separadores como '.' ou mesmo
    espaços são aceitos
    ex.: 111222333/44, 111.222.333-44, 111 222 333 44 serão tratadoc como
    11122233344 (para CPFs)
    De certa forma até mesmo valores como 111A222B333C44 será aceito mas
    aconselho a usar a função soNums() que encotra-se aqui mesmo para
    que o campo só aceite caracteres numéricos.
    Para usar a função soNums() chame-a no evento onKeyPress desta forma
    onKeyPress="return soNums(event);"
    Após limpar o valor verificamos seu tamanho que deve ser ou 11 ou 14
    Se o tamanho não for aceito a função retorna false e [opcional]
    mostra uma mensagem de erro.
    Sugestões e comentários marcos_regis@hotmail.com
    ####################################################################
    ********************************************************************    */

// a função principal de validação
function valida_cpf_cnpj(obj) { // recebe um objeto
    var s = (obj.value).replace(/\D/g,'');
    var tam=(s).length; // removendo os caracteres não numéricos
    if (!(tam==11 || tam==14 || tam==0)){ // validando o tamanho
        alert("'"+s+"' é um valor inválido!" ); // tamanho inválido
        obj.select();  // se quiser selecionar o campo em questão
        return false;
    }

	// se for CPF
    if (tam==11 ){
        if (!validaCPF(s)){ // chama a função que valida o CPF
            alert("'"+s+"' Não é um CPF válido!" ); // se quiser mostrar o erro
            obj.select();  // se quiser selecionar o campo em questão
            return false;
        }
        obj.value=maskCPF(s);    // se validou o CPF mascaramos corretamente
        return true;
    }

	// se for CNPJ
    if (tam==14){
        if(!validaCNPJ(s)){ // chama a função que valida o CNPJ
            alert("'"+s+"' Não é um CNPJ válido!" ); // se quiser mostrar o erro
            obj.select();    // se quiser selecionar o campo enviado
            return false;
        }
        obj.value=maskCNPJ(s);    // se validou o CNPJ mascaramos corretamente
        return true;
    }
}
// fim da funcao validar()

// função que valida CPF
// O algorítimo de validação de CPF é baseado em cálculos
// para o dígito verificador (os dois últimos)
// Não entrarei em detalhes de como funciona
function validaCPF(s) {
    var c = s.substr(0,9);
    var dv = s.substr(9,2);
    var d1 = 0;
    for (var i=0; i<9; i++) {
        d1 += c.charAt(i)*(10-i);
     }
    if (d1 == 0) return false;
    d1 = 11 - (d1 % 11);
    if (d1 > 9) d1 = 0;
    if (dv.charAt(0) != d1){
        return false;
    }
    d1 *= 2;
    for (var i = 0; i < 9; i++)    {
         d1 += c.charAt(i)*(11-i);
    }
    d1 = 11 - (d1 % 11);
    if (d1 > 9) d1 = 0;
    if (dv.charAt(1) != d1){
        return false;
    }
    return true;
}

// Função que valida CNPJ
// O algorítimo de validação de CNPJ é baseado em cálculos
// para o dígito verificador (os dois últimos)
// Não entrarei em detalhes de como funciona
function validaCNPJ(CNPJ) {
    var a = new Array();
    var b = new Number;
    var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
    for (i=0; i<12; i++){
        a[i] = CNPJ.charAt(i);
        b += a[i] * c[i+1];
    }
    if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }
    b = 0;
    for (y=0; y<13; y++) {
        b += (a[y] * c[y]);
    }
    if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }
    if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])){
        return false;
    }
    return true;
}


    // Função que permite apenas teclas numéricas
    // Deve ser chamada no evento onKeyPress desta forma
    // return (soNums(event));
function soNums(e)
{
    if (document.all){var evt=event.keyCode;}
    else{var evt = e.charCode;}
    if (evt <20 || (evt >47 && evt<58)){return true;}
    return false;
}

//    função que mascara o CPF
function maskCPF(CPF){
    return CPF.substring(0,3)+"."+CPF.substring(3,6)+"."+CPF.substring(6,9)+"-"+CPF.substring(9,11);
}

//    função que mascara o CNPJ
function maskCNPJ(CNPJ){
    return CNPJ.substring(0,2)+"."+CNPJ.substring(2,5)+"."+CNPJ.substring(5,8)+"/"+CNPJ.substring(8,12)+"-"+CNPJ.substring(12,14);
}
//-->
/**
 * Funções de RELATÓRIO
 */
	function open_url(formulario,Formfield){
		if(Formfield.options[Formfield.selectedIndex].value == 0){
			return false;
		} else {
			formulario.action = Formfield.options[Formfield.selectedIndex].value;
			formulario.submit();
		}
	}
	function popup(URL,width,height) {
		var left = 200;
		var top = 200;
		window.open(URL,'isso', 'width='+width+', height='+height+', top='+top+', left='+left+', scrollbars=yes, status=no, toolbar=no, location=no, directories=no, menubar=no, resizable=no, fullscreen=no');
	}
	function popup_scroll(URL,width,height) {
		var left = 200;
		var top = 100;
		window.open(URL,'isso', 'width='+width+', height='+height+', top='+top+', left='+left+', scrollbars=yes, status=no, toolbar=no, location=no, directories=no, menubar=no, resizable=no, fullscreen=no');
	}
	function popup_img(URL,width,height,legenda) {
		var left = 110;
		var top = 110;
		if(legenda != ""){ height = height + 50; }
		window.open(URL+'&leg='+legenda,'isso', 'width='+width+', height='+height+', top='+top+', left='+left+', scrollbars=auto, status=no, toolbar=no, location=no, directories=no, menubar=no, resizable=no, fullscreen=no');
	}
	function popup_noscroll(URL,width,height,legenda) {
		var left = 110;
		var top = 110;
		window.open(URL,'isso', 'width='+width+', height='+(height+legenda)+', top='+top+', left='+left+', scrollbars=auto, status=no, toolbar=no, location=no, directories=no, menubar=no, resizable=no, fullscreen=no');
	}
	function popup_maps(URL) {
		var left = 0; var top = 0;
		var width = 800; var height = 600;
		window.open(URL,'isso', 'width='+width+', height='+height+', top='+top+', left='+left+', scrollbars=yes, status=no, toolbar=no, location=no, directories=no, menubar=no, resizable=no, fullscreen=no');
	}
	function indique(URL,status,width,height) {
		var left = 110;
		var top = 110;
		window.open('../site/indique.php?url='+URL+'&status='+status,'isso', 'width='+width+', height='+height+', top='+top+', left='+left+', scrollbars=auto, status=no, toolbar=no, location=no, directories=no, menubar=no, resizable=no, fullscreen=no');
	}
	function enquete(URL,width,height) {
		var left = 110;
		var top = 110;
		window.open(URL,'isso', 'width='+width+', height='+height+', top='+top+', left='+left+', scrollbars=yes, status=no, toolbar=no, location=no, directories=no, menubar=no, resizable=no, fullscreen=no');
	}
	function checkall(form){
		for(i=0; i<form.menu.length; i++){
			if(form.checkbox.checked == true){
				form.menu[i].checked = true;
			} else {
				form.menu[i].checked = false;
			}
		}
	}
	function action_all(URL,alerta,form){
		if(confirm(alerta)){
			var todos = 0;
			var union = "";
			for(i=0 ; i < form.menu.length ; i++){
				if(form.menu[i].checked == true){
					todos++;
					union = union + "|" + form.menu[i].value;
				}
			}
			if((todos <= form.menu.length) && (todos != 0)){ location.href=URL+ "&cod=" +union }
		} else {
			return false
		}
	}
	function est_ativ_all(URL,alerta,form){
		if(confirm(alerta)){
			var todos = 0;
			var union = "", union2 = "";
			for(i=0 ; i < form.menu.length ; i++){
				if(form.menu[i].checked == true){
					todos++;
					union = union + "|" + form.menu[i].value;
					union2 = union2 + "|" + form.est_ativ[i].value;
				}
			}
			if((todos <= form.menu.length) && (todos != 0)){ location.href=URL+ "&cod=" +union+ "&est_ativ=" +union2 }
		} else {
			return false
		}
	}
	function mail_all(URL, form){
		var todos = 0;
		var union = "";
		for(i=0; i<form.menu.length; i++){
			if(form.menu[i].checked == true){
				todos++;
				union = form.mail[i].value + "," + union;
			}
		}
		if((todos <= form.menu.length) && (todos != 0)){ location.href=URL+ "?mail=" +union }
	}
<!-- INICIO DO SCRIPT PRÉ-VISUALISADOR DE IMAGENS -->

var ie=document.all;
var ns=document.layers;
var ns6=document.getElementById&&!document.all;

function enlarge(which,e,width){
	if (ie||ns6){
		crossobj=document.getElementById? document.getElementById("showimage") : document.all.showimage
		if (crossobj.style.visibility=="hidden"){
			crossobj.style.left=ns6? pageXOffset+e.clientX : document.body.scrollLeft+event.clientX-width
			crossobj.style.top=ns6? pageYOffset+e.clientY : document.body.scrollTop+event.clientY
			crossobj.innerHTML='<div align=right id=drag><b onClick=closepreview()><img src=../stm_images/excluir.png border=0></b></div><img src="'+which+'">'
			crossobj.style.visibility="visible"
		}
		else
				crossobj.style.visibility="hidden"
				return false
	}
	else if (document.layers){
		if (document.showimage.visibility=="hide"){
			document.showimage.document.write('<a href="#" onMouseover="drag_dropns(showimage)"><img src="'+which+'" border=0></a>')
				document.showimage.document.close()
				document.showimage.left=e.x
				document.showimage.top=e.y
				document.showimage.visibility="show"
		}
		else
				document.showimage.visibility="hide"
				return false
	}
		else
		return true
}

function closepreview(){
	crossobj.style.visibility="hidden"
}
var nsx,nsy,nstemp;

function drag_dropns(name){
		temp=eval(name)
		temp.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP)
		temp.onmousedown=gons
		temp.onmousemove=dragns
		temp.onmouseup=stopns
}

function gons(e){
		temp.captureEvents(Event.MOUSEMOVE)
		nsx=e.x
		nsy=e.y
}

function dragns(e){
		temp.moveBy(e.x-nsx,e.y-nsy)
		return false
}

function stopns(){
	temp.releaseEvents(Event.MOUSEMOVE)
}

function drag_drop(e){
		if (ie&&dragapproved){
				crossobj.style.left=tempx+event.clientX-offsetx
				crossobj.style.top=tempy+event.clientY-offsety
		}
		else if (ns6&&dragapproved){
				crossobj.style.left=tempx+e.clientX-offsetx
				crossobj.style.top=tempy+e.clientY-offsety
		}
return false
}

function initializedrag(e){
	if (ie&&event.srcElement.id=="drag"||ns6&&e.target.id=="drag"){
		offsetx=ie? event.clientX : e.clientX
		offsety=ie? event.clientY : e.clientY
		tempx=parseInt(crossobj.style.left)
		tempy=parseInt(crossobj.style.top)
		dragapproved=true
		document.onmousemove=drag_drop
	}
}

document.onmousedown=initializedrag
document.onmouseup=new Function("dragapproved=false")

//-->
/**
 * Função VALIDAÇÃO DE FORMULÁRIO
 * valida o formulário assim que é submetido.
 * Chamada dentro da tag <form>: ->  onSubmit="return validaForm(this);"
 * Ps.: Essa função pode ser colocada fora das tags <header></header>
 function validaForm(form) {	
 // Expressões regulares
	var num 	= (/^\d+$/);
	var char 	= (/^[a-zA-Z]+$/);
	var email 	= (/^[\w-]+(\.[\w-]+)*@(([\w-]{2,63}\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/);
	var fone 	= (/^\d{4}-\d{4}$/);
	var data	= (/^((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}$/);
	var time 	= (/^([0-1]\d|2[0-3]):[0-5]\d$/);
	var moeda 	= (/^\d{1,3}(\.\d{3})*\,\d{2}$/);
// DESTAQUE PARA OS CAMPOS 'LOGRADOURO', 'TITULO', 'DESCRIÇÃO', ETC...
// Tratamento de campo obrigatório
	if (form.Nome_campo.value == "") {
			msg = "Mensagem de erro";
			alert(msg);
			form.Nome_campo.select();
			return false;
	}
	
// DESTAQUE PARA O CAMPO 'EMAIL' -> OBRIGATÓRIO
// Tratamento de campo obrigatório que só contenha letras
	if (form.email.value != "") {
		if(!email.test(form.email.value) {
			msg = "E-MAIL INVÁLIDO";
			alert(msg);
			form.email.select();
			return false;
		}
	} else {
			msg = "INFORME O E-MAIL";
			alert(msg);
			form.email.select();
			return false;
	}

// DESTAQUE PARA O CAMPO 'EMAIL' -> NÃO OBRIGATÓRIO
// Tratamento de campo NÃO obrigatório que só contenha letras como: nome, etc...
	if (form.email.value != "") {
		if(!email.test(form.email.value)) {
			msg = "E-MAIL INVÁLIDO";
			alert(msg);
			form.email.select();
			return false;
		}
	}
	
// DESTAQUE PARA O CAMPO 'NUMERO' -> OBRIGATÓRIO
// Tratamento de campo obrigatório que só contenha numeros como: nome, etc...
	if (form.Nome_campo.value != "") {
		if(!num.test(form.Nome_campo.value)) {
			msg = "Mensagem de erro";
			alert(msg);
			form.Nome_campo.select();
			return false;
		}
	} else {
			msg = "Mensagem de erro";
			alert(msg);
			form.Nome_campo.select();
			return false;
	}
	
// DESTAQUE PARA O CAMPO 'NUMERO' -> NÃO OBRIGATÓRIO
// Tratamento de campo NÃO obrigatório que só contenha numeros como: nome, etc...
	if (form.Nome_campo.value != "") {
		if(!num.test(form.Nome_campo.value)) {
			msg = "Mensagem de erro";
			alert(msg);
			form.Nome_campo.select();
			return false;
		}
	}
	
// DESTAQUE PARA OS CAMPOS 'SENHA' E 'LOGIN' -> OBRIGATÓRIOS
// Tratamento de campo obrigatório que só contenha uma quantidade mínima de caracteres como: senha, etc...
	if (form.Nome_campo.value != ""){
		if(form.Nome_campo.value.length < valor_mínimo){
			msg = "Mensagem de erro";
			alert(msg);
			form.Nome_campo.select();
			return false;
		}
	} else {
			msg = "Mensagem de erro";
			alert(msg);
			form.Nome_campo.select();
			return false;
	}

// CONFERI SENHA
	if (form.resenha.value == ""){
		msg = "REPITA A SENHA!";
		alert(msg);
		form.resenha.select();
		return false;
	} else if (form.resenha.value != form.senha.value){
		msg = "SENHA INVÁLIDA";
		alert(msg);
		form.resenha.select();
		return false;
	}

// TELEFONE -> OBRIGATÓRIO
// Tratamento do campo telefone obrigatório
// Formato: 0000-0000
	if (form.telefone.value != "") {
		if(!fone.test(form.telefone.value)) {
			msg = "Mensagem de erro";
			alert(msg);
			form.telefone.select();
			return false;
		}
	} else {
			msg = "Mensagem de erro";
			alert(msg);
			form.telefone.select();
			return false;
	}
	
// TELEFONE -> NÃO OBRIGATÓRIO
// Tratamento do campo telefone não obrigatório
// Formato: 0000-0000
	if (form.telefone.value != "") {
		if(!fone.test(form.telefone.value)) {
			msg = "Mensagem de erro";
			alert(msg);
			form.telefone.select();
			return false;
		}
	}

// DATA -> OBRIGATÓRIO
// Tratamento do campo data obrigatório
// Formato: dd/mm/aaaa
	if (form.data.value != "") {
		if(!data.test(form.data.value)) {
			msg = "Mensagem de erro";
			alert(msg);
			form.data.select();
			return false;
		}
	} else {
			msg = "Mensagem de erro";
			alert(msg);
			form.data.select();
			return false;
	}
	
// DATA -> NÃO OBRIGATÓRIO
// Tratamento do campo data não obrigatório
// Formato: dd/mm/aaaa
if (form.data.value != "") {
		if(!data.test(form.data.value)) {
			msg = "Mensagem de erro";
			alert(msg);
			form.data.select();
			return false;
		}

	}

// HORA -> OBRIGATÓRIO
// Tratamento do campo hora obrigatório
// Formato: HH:MM
	if (form.hora.value != "") {
		if(!time.test(form.hora.value)) {
			msg = "Mensagem de erro";
			alert(msg);
			form.hora.select();
			return false;
		}
	} else {
			msg = "Mensagem de erro";
			alert(msg);
			form.hora.select();
			return false;
	}
	
// HORA -> NÃO OBRIGATÓRIO
// Tratamento do campo hora não obrigatório
// Formato: HH:MM
	if (form.hora.value != "") {
		if(!time.test(form.hora.value)) {
			msg = "Mensagem de erro";
			alert(msg);
			form.hora.select();
			return false;
		}
	}

// PREÇO, VALOR FINANCEIRO -> OBRIGATÓRIO
// Tratamento do campo preço obrigatório
// Formato: 0.000,00
	if (form.valor.value != "") {
		if(!moeda.test(form.valor.value)) {
			msg = "Mensagem de erro";
			alert(msg);
			form.valor.select();
			return false;
		}
	} else {
			msg = "Mensagem de erro";
			alert(msg);
			form.valor.select();
			return false;
	}
	
// PREÇO, VALOR FINANCEIRO -> NÃO OBRIGATÓRIO
// Tratamento do campo preço não obrigatório
// Formato: 0.000,00
	if (form.valor.value != "") {
		if(!moeda.test(form.valor.value)) {
			msg = "Mensagem de erro";
			alert(msg);
			form.valor.select();
			return false;
		}
	}

}
*/

 
