// JavaScript Functions IC
// Por Roger W. Barros

function noParent(lnk) { window.onload = function() { if(location.href==parent.location) location.href = lnk; } }
function getE(id) { return document.getElementById(id); }
function getN(nm) { return document.getElementsByTagName(nm); }
function getV(id) { return getE(id).value; }
function getI(id) { return getE(id).innerHTML; }
function setV(id, val) { getE(id).value = val; return true; }
function setI(id, htm) { getE(id).innerHTML = htm; return true; }
function offObj(id, opt) { getE(id).disabled = opt; return true; }
function focus(id, mod) { getE(id).focus(); if(mod) getE(id).style.border = "1px solid red"; return true; }
function input_enabled(obj) { obj.style.border = '1px solid black'; obj.style.background = 'white'; return true; }
function input_blur(obj,needed) {
	if(!obj.value && needed) {
		obj.style.border = '1px solid red';
		obj.style.background = null;
	} else {
		obj.style.border = null;
		obj.style.background = null;
	}
}
function DHTMLXConfIC() {
	dhtmlxError.catchError('ALL', myErrorHandler);
	function myErrorHandler(type, desc, erData) { return false }
	window.dhx_globalImgPath = 'http://www.imoveiscenter.com.br/img/';
}
function ProtectIC(n) {
	
}
function EHidden(obj,m) {
	if(m == 1) { getE(obj).style.display = 'none'; getE(obj).style.visibility = 'hidden';	}
	else { getE(obj).style.display = 'block'; getE(obj).style.visibility = 'visible';	}
}
function contador(seg_re,pagina) { setTimeout('window.location.href="'+pagina+'";', seg_re*1000); atualiza_re(seg_re); }
function redirecionador_parent(seg_re,pagina) {	setTimeout('parent.parent.window.location.href="'+pagina+'";', seg_re*1000); atualiza_re(seg_re); }
function redirecionador_content(seg_re,span_out,span_in) { setTimeout('setI("'+span_in+'",getI("'+span_out+'"));', seg_re*1000); atualiza_re(seg_re); }
function contador_ajax(seg_re,pagina,span) { setTimeout('ajaxGet("'+pagina+'","'+span+'");', seg_re*1000); atualiza_re(seg_re); }
function atualiza_re(seg_re) {
	if(seg_re>0) {
		setI('contagem_regressiva', '<span class=f3>'+seg_re+'</span> segundo'+((seg_re>1)?'s':'')+'...');
		seg_re = seg_re-1;
		setTimeout('atualiza_re("'+seg_re+'")', 1000);
	}
}

// Limita quantidade de texto
function limita_texto(obj, max, div) {
	var div_id = document.getElementById(div);  
	if (obj.value.length < max) { 
		div_id.style.color = '#000000';
		div_id.style.fontWeight='normal';
	} else {  
		div_id.style.color = '#FF0000';
		//div_id.style.fontWeight='bold';
		obj.value = obj.value.substr(0,max); // Apaga o que sobrar
	} 
	div_id.innerHTML = '('+obj.value.length+'/'+max+')';
}

function checkFone(fone){
	exp = /\(\d{2}\)\ \d{4}\-\d{4}/;
	if(typeof(fone) == 'string') {
		if(exp.test(fone)) return true;
	}else if(typeof(fone) == 'object') {
		if(exp.test(fone.value)) return true;
	} else return false;
}

function checkMail(mail) {
	exp = /^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/;
	if(typeof(mail) == 'string') {
		if(exp.test(mail)) return true;
	}else if(typeof(mail) == 'object') {
		if(exp.test(mail.value)) return true;
	} else return false;
}

function checkCPF(cpf) {
	var numeros, digitos, soma, i, resultado, digitos_iguais;
	cpf = cpf.replace(/\D/g,'');
	digitos_iguais = 1;
	if(cpf.length != 11) return false;
	for (i=0; i < cpf.length - 1; i++)
		if(cpf.charAt(i) != cpf.charAt(i + 1)) {
			digitos_iguais = 0;
			break;
		}
	if(!digitos_iguais) {
		numeros = cpf.substring(0,9);
		digitos = cpf.substring(9);
		soma = 0;
		for(i=10; i > 1; i--) soma += numeros.charAt(10 - i) * i;
		resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
		if(resultado != digitos.charAt(0)) return false;
		numeros = cpf.substring(0,10);
		soma = 0;
		for(i=11; i > 1; i--) soma += numeros.charAt(11 - i) * i;
		resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
		if(resultado != digitos.charAt(1)) return false;
		return true;
	} else return false;
}

function checkCNPJ(cnpj) {
	var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais;
	cnpj = cnpj.replace(/\D/g,'');
	digitos_iguais = 1;
	if(cnpj.length != 14) return false;
	for(i = 0; i < cnpj.length - 1; i++)
		if(cnpj.charAt(i) != cnpj.charAt(i + 1)) {
			digitos_iguais = 0;
			break;
		}
	if(!digitos_iguais) {
		tamanho = cnpj.length - 2
		numeros = cnpj.substring(0,tamanho);
		digitos = cnpj.substring(tamanho);
		soma = 0;
		pos = tamanho - 7;
		for(i=tamanho; i >= 1; i--) {
			soma += numeros.charAt(tamanho - i) * pos--;
			if(pos < 2) pos = 9;
		}
		resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
		if(resultado != digitos.charAt(0)) return false;
		tamanho = tamanho + 1;
		numeros = cnpj.substring(0,tamanho);
		soma = 0;
		pos = tamanho - 7;
		for(i=tamanho; i >= 1; i--) {
			soma += numeros.charAt(tamanho - i) * pos--;
			if (pos < 2) pos = 9;
		}
		resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
		if(resultado != digitos.charAt(1)) return false;
		return true;
	} else return false;
} 

function checkSenha(o1,o2) {
	o2 = document.getElementById(o2);
	if(o1.value != o2.value) {
		o1.style.border = '1px solid red';
	} else {
		o1.style.border = null;
	}
}

function mascara(o,f) {
	v_obj=o;
	v_fun=f;
	setTimeout('execmascara()',0);
}
function mascara2(o,f,l) {
	v_obj=o;
	v_fun=f;
	v_lim=l;
	setTimeout('execmascara2()',0);
}
function mascara3(o1,o2,f1,f2,l) {
	v_obj1=o1;
	v_obj2=o2;
	v_fun1=f1;
	v_fun2=f2;
	v_lim=l;
	setTimeout('execmascara3()',0);
}

function execmascara() { v_obj.value=v_fun(v_obj.value); }
function execmascara2() { v_obj.value=v_fun(v_obj.value,v_lim); }
function execmascara3() {
	v_obj1.value=v_fun1(v_obj1.value);
	v_obj2.value=v_fun2(v_obj2.value,v_lim);
}

function limite_nome(v) {
	v=v.toLowerCase()								// Transforma tudo em minúscula
	.replace(/^(\ +)/g,'')							// Remove espaço(s) na frente
	.replace(/\d/g,'')								// Remove digitos
	.replace(/(.)(\1){2,}/g,'$1$2')					// Remove repetições maiores que 2 caracteres
	.replace(/(..)(\1)(\1)/g,'$1$2')				// Remove repetições de pares maiores que 2
	.replace(/(\.)(.+)?(\1)/g,'$1$2')				// Limita a apenas um .
	.replace(/^(\.)$/g,'')							// Remove . no inicio
	.replace(/(\ \.)/g,' ')							// Remove espaços com . no final
	.replace(/(\ +)/g,' ')							// Remove espaços em excesso
	// Remove caracteres especiais (presentes no teclado)
	.replace(/[\!\"\#\$\%\&\'\(\)\*\+\,\-\=\/\:\;\?\@\[\]\_\`\´\^\{\\\|\}\~\¨\¹\²\³\£\¢\¬\§\°\º\ª\<\>]/g,'');
	// Transforma a primeira letra de todas as palavras maiores que 3 caracteres em maiúscula
	p=v.split(' ');
	v='';
	for(i=0;i<p.length;i++)
		if(i==0||p[i].length>3||p[i].substring(p[i].length-1,p[i].length)=='.') {
			l=p[i].substring(0,1);
			p[i]=p[i].replace(l,l.toUpperCase());
		}
	for(i=0;i<p.length;i++) v=v+p[i]+' ';
	return v.replace(/^\s+|\s$/g,'');	// Efeito trim()
}

function limite_codigo(v) {
	return v.toUpperCase()						// Transforma tudo em maiúscula
	.replace(/\W/g,'');							// Remove caracteres especiais
}

function limite_login(v) {
	v=v.replace(/\ /g,'_');			// Substitui espaços por underline
	v=v.replace(/(\_\_)/g,'_');		// Remove repetições de _
	v=v.replace(/\W/g,'');			// Remove caracteres especiais
	v=v.toLowerCase();				// Transforma tudo em minúscula
	return v;
}

function so_num(v) {
	v=v.replace(/\D/g,'');			// Remove tudo o que não é dígito
	v=v.replace(/^(0+)(\d)/g,'$2');	// Remove zeros à esquerda
	v=(v)?v:0;						// Se estiver vaziu recebe '0'
	return v;
}

function limite_num(v,l) {
	v=v.replace(/\D/g,'');				// Remove tudo o que não é dígito
	v=v.replace(/^(0+)(\d)/g,'$2');		// Remove zeros à esquerda
	l=l.replace(/\D/g,'');				// Remove tudo o que não é dígito
	l=l.replace(/^(0+)(\d)/g,'$2');		// Remove zeros à esquerda
	v=(parseInt(v)>parseInt(l))?l:v;	// Não deixa passar do limite
	v=(v)?v:0;							// Se estiver vaziu recebe '0'
	return v;
}

function limite_email(v) {
	v=v.toLowerCase();													// Transforma tudo em minúscula
	// Remove caracteres especiais
	v=v.replace(/[\!\"\#\$\%\&\'\(\)\*\+\,\=\/\:\;\?\[\]\`\´\^\{\\\|\}\~\¨\¹\²\³\£\¢\¬\§\°\º\ª\<\>]/g,'');
	v=v.replace(/\ /g,'_');												// Substitui espaços por underline
	v=v.replace(/^(\@)/g,'');											// Remove @ se iniciar com @
	v=v.replace(/([\@\.])(\1){1,}/g,'$1');								// Remove repetições de @ ou .
	v=v.replace(/(\@)(.+)(\1)/g,'$1$2');								// Limita a apenas um @ 
	v=v.replace(/(\@)(.+)(\.)(.+)(\.)(.+)(\.)$/g,'$1$2$3$4$5$6');		// Limita a apenas 2 . após @
	v=v.replace(/\.([^\@\.]{4,})$/g,'$1'.substring(0,3));				// Remove . de extensões maiores que 4 caracteres após @
	return v;
}

function moeda(v) {
	v=v.replace(/(\,\d{1,2})/,'');				// Remove ',??' (normalmente ',00') no final para não atrapalhar
	v=v.replace(/\D/g,'');						// Remove tudo o que não é dígito
	v=v.replace(/^(0+)(\d)/g,'$2');				// Remove zeros à esquerda
	v=v.replace(/(\d)(\d{3})$/,'$1.$2');		// Separador de milhar
	for(var i=0;i<10;i++)
		v=v.replace(/(\d)(\d{3}\.)/,'$1.$2');	// Separador de milhar
	if(!(v)||v==0) v='Consulte';
	else {
		v=v.replace(/^(\d)/g,'R$ $1');			// Coloca 'R$ ' no começo
		v=v.replace(/(\d{1,})$/,'$1,00');		// Coloca ',00' no final
	}
	return v;
}

function area_m2(v) {
	v=v.replace(/(m\²)/,'');					// Remove 'm²' do final para não atrapalhar
	v=v.replace(/\D/g,'');						// Remove tudo o que não é dígito
	v=v.replace(/^(0+)(\d)/g,'$2');				// Remove zeros à esquerda
	v=v.replace(/(\d)(\d{5})$/,'$1.$2');		// Separador de milhar
	v=v.replace(/(\d)(\d{2})$/,'$1,$2');		// virgula para cm
	for(var i=0;i<10;i++)
		v=v.replace(/(\d)(\d{3}\.)/,'$1.$2');	// Separador de milhar
	if(!(v)||v==0) v='Consulte';
	else {
		v=v.replace(/(\d)$/g,'$1 m²');			// Coloca ' m²' no final
	}
	return v;
}

function area_ha(v) {
	v=v.replace(/(ha)/,'');						// Remove 'ha' do final para não atrapalhar
	v=v.replace(/\D/g,'');						// Remove tudo o que não é dígito
	v=v.replace(/^(0+)(\d)/g,'$2');				// Remove zeros à esquerda
	v=v.replace(/(\d)(\d{5})$/,'$1.$2');		// Separador de milhar
	v=v.replace(/(\d)(\d{2})$/,'$1,$2');		// virgula para cm
	for(var i=0;i<10;i++)
		v=v.replace(/(\d)(\d{3}\.)/,'$1.$2');	// Separador de milhar
	if(!(v)||v==0) v='Consulte';
	else {
		v=v.replace(/(\d)$/g,'$1 ha');			// Coloca ' m²' no final
	}
	return v;
}

function fone(v) {
	v=v.replace(/\D/g,'');					// Remove tudo o que não é dígito
	v=v.replace(/^(\d\d)(\d)/g,'($1) $2');	// Coloca parênteses 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 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 cep(v) {
	v=v.replace(/\D/g,'');					// Remove tudo o que não é dígito
	v=v.replace(/^(\d{5})(\d)/,'$1-$2');	// Esse é tão fácil que não merece explicações
	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 htmlspecialchars(v) {
	return v.replace(/á/, "%E1")
	.replace(/â/, "%E2")
	.replace(/ã/, "%E3")
	.replace(/Á/, "%C1")
	.replace(/Â/, "%C2")
	.replace(/Ã/, "%C3")
	.replace(/É/, "%C9")
	.replace(/é/, "%E9")
	.replace(/ê/, "%EA")
	.replace(/Í/, "%CD")
	.replace(/í/, "%ED")
	.replace(/Ó/, "%D3")
	.replace(/Ô/, "%D4")
	.replace(/Õ/, "%D5")
	.replace(/ó/, "%F3")
	.replace(/õ/, "%F5")
	.replace(/ô/, "%F4")
	.replace(/Ú/, "%DA")
	.replace(/Ü/, "%DC")
	.replace(/ú/, "%FA")
	.replace(/ü/, "%FC")
	.replace(/ç/, "%E7")
	.replace(/Ç/, "%C7")
}

function urlencode(str) {
	return escape(str)
	.replace("-","%20")
	.replace("+","%2B")
	.replace("%20","+")
	.replace("*","%2A")
	.replace("/","%2F")
	.replace("@","%40")
}
