/* AJAX FUNCTIONS by Caio Augusto Franchi */
//
function instanciaAjax() {
	//Função que cria e retorna uma Instância xmlHttp;
	var xmlHttp = null;
		try {
			xmlHttp = new XMLHttpRequest();
		} catch (e) {
			var arrProgs = ['MSXML2.XMLHTTP', 'Microsoft.XMLHTTP', 'MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0'];
			var isHabil = false;
			for (var i = 0; (i < arrProgs.length) && ( ! isHabil); i ++) {
				try {
					xmlHttp = new ActiveXObject(arrProgs[i]);
					isHabil = true;
				} catch (e) {}
			}
			if ( ! isHabil ) {
				alert('Esse browser não suporta recursos AJAX');
				return null;
			}
		}
	return xmlHttp;
	
}
//
function executaScript(pParametros,pValores,pLocalExecucao,pTempoExecucao,pMetodo,pLocalRetorno) {
	//Função que executa scripts em background
}
//
function executaJavaScript(pTexto){
	//Essa função faz com que todos os javascripts que estiverem dentro de uma página
	//executada via ajax funcionem
    var ini, pos_src, fim, codigo;
    var objScript = null;
    ini = pTexto.indexOf('<script', 0);
	//
	while (ini!=-1){
        var objScript = document.createElement("script");
        pos_src = pTexto.indexOf(' src', ini)
        ini = pTexto.indexOf('>', ini) + 1;
		//
        if (pos_src < ini && pos_src >=0) {
            ini = pos_src + 4;
            fim = pTexto.indexOf('.', ini)+4;
            codigo = pTexto.substring(ini,fim);
            codigo = codigo.replace("=","").replace(" ","").replace("\"","").replace("\"","").replace("\'","").replace("\'","").replace(">","");
            objScript.src = codigo;
        }
		else {
            fim = pTexto.indexOf('</script>', ini);
            codigo = pTexto.substring(ini,fim);
            objScript.text = codigo;
        }
        document.body.appendChild(objScript);
        ini = pTexto.indexOf('<script', fim);
        objScript = null;
    }
}
/*
//
function RedimensionaFade() {
	
	if(document.all) {
		
			valornovo =document.getElementById('divGeral').offsetHeight+(screen.availHeight-106);
			document.getElementById('divFade').style.height = valornovo+"px";
			
	}
	
}
//
function MostraCarregador() {
	RedimensionaFade();
	document.getElementById('divFade').style.display = "block";
	document.getElementById('divCarregador').style.display = "block";
	
}
//
function FechaCarregador() {
	
	document.getElementById('divFade').style.display = "none";
	document.getElementById('divCarregador').style.display = "none";
	
}
//
function Display(pObj) {
	
	var divDisp = document.getElementById(pObj).style.display;
		
		if (divDisp == "block") {
			document.getElementById(pObj).style.display = "none";
		} else {
			document.getElementById(pObj).style.display = "block";
		}
	
}
//

//
function Executa(pAction,pTempo) {
	
	var nmbTimeOut = setTimeout( 
	function(){
		clearTimeout(nmbTimeOut);
		MostraCarregador();
		//
		xmlHttp = InstanciaAjax();
		xmlHttp.open("POST", pAction , true);
		xmlHttp.setRequestHeader('Content-Type',"application/x-www-form-urlencoded;");
		xmlHttp.send("teste=teste");
		xmlHttp.onreadystatechange = function() {
			switch(xmlHttp.readyState){
				case 4:
					FechaCarregador();
					ExecutaScript(xmlHttp.responseText);
				break;
			}
		}
	},pTempo);
	
}
//
function ShowContent(pAction,pTarget,pTempo) {
	
	var nmbTimeOut = setTimeout( 
	function(){
		clearTimeout(nmbTimeOut);
		MostraCarregador();
		//
		xmlHttp = InstanciaAjax();
		xmlHttp.open("POST", pAction , true);
		xmlHttp.setRequestHeader('Content-Type',"application/x-www-form-urlencoded;");
		xmlHttp.send("teste=teste");
		xmlHttp.onreadystatechange = function() {
			switch(xmlHttp.readyState){
				case 1:
					//document.getElementById(pTarget).innerHTML="Carregando...";
				break;
				case 2:
					//document.getElementById(pTarget).innerHTML="Carregando...";
				break;
				case 3:
					//document.getElementById(pTarget).innerHTML="Carregando...";
				break;
				case 4:
					document.getElementById(pTarget).innerHTML = xmlHttp.responseText;
					FechaCarregador();
					ExecutaScript(xmlHttp.responseText);
				break;
			}
		}
	},pTempo);
	
}
//
function MostraAviso(pAviso,pCampo) {
	
	document.getElementById('divAviso').style.display = "block";
	document.getElementById('txtAviso').innerHTML = pAviso;
	if (pCampo != '') {
		//document.getElementById('txtLink').onclick = "function anonymous() { alert('sim'); }";
	}
	
}
//
function FechaAviso() {
	
	document.getElementById('divAviso').style.display = "none";
	
}
//
function AbrePop(pUrl,pLargura,pAltura,pNome){
	//Nem o bloqueador de Pops do windows, nem o do google pegam
    sealWin = window.open(pUrl, "win" ,'toolbar=no,status=yes,menubar=no,scrollbars=yes,left=150,top=100,width='+pLargura+',height='+pAltura);
    self.name = "mainWin";
	//
}
//
function Arredonda(pValor,pCasas){
	
   var valorFinal = Math.round( pValor * Math.pow( 10 , pCasas ) ) / Math.pow( 10 , pCasas );
   valorFinal = valorFinal.toFixed(pCasas); 
   return(valorFinal);

}
//
function TravaNumero(pTecla)
{
	if (document.all) // Internet Explorer
		var tecla = event.keyCode;
	else if(document.layers) // Nestcape
		var tecla = pTecla.which;
		if (tecla > 47 && tecla < 58 || tecla == 120) // numeros de 0 a 9
			return true;
		else
			{
				if (tecla != 8) // backspace
					event.keyCode = 0;
					//return false;
				else
					return true;
			}
}
//
function data(myfield, e, dec)
{
var key;
var keychar;

if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);


if ((key==null) || (key==0) || (key==8) ||
    (key==9) || (key==13) || (key==27) )
   return true;


else if ((("0123456789/").indexOf(keychar) > -1))
   return true;


else if (dec && (keychar == "."))
   {
   myfield.form.elements[dec].focus();
   return false;
   }
else
   return false;
}
//
function valor(myfield, e, dec)
{
var key;
var keychar;

if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);


if ((key==null) || (key==0) || (key==8) ||
    (key==9) || (key==13) || (key==27) )
   return true;


else if ((("0123456789,").indexOf(keychar) > -1))
   return true;


else if (dec && (keychar == "."))
   {
   myfield.form.elements[dec].focus();
   return false;
   }
else
   return false;
}
//
function documento(myfield, e, dec)
{
var key;
var keychar;

if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);


if ((key==null) || (key==0) || (key==8) ||
    (key==9) || (key==13) || (key==27) )
   return true;


else if ((("0123456789./-").indexOf(keychar) > -1))
   return true;


else if (dec && (keychar == "."))
   {
   myfield.form.elements[dec].focus();
   return false;
   }
else
   return false;
}
*/

/*function FechaLayer(){
 setTimeout("collapseMenu('logbox','none')", 900);
}*/

function setStyle(pDiv, pClass){
	var divTemp = document.getElementById(pDiv);
	//
	divTemp.className=pClass;
}	

function collapseMenu(whichEl, displayValue){
	var objeto = document.getElementById(whichEl);
	var iexplorer = (document.all)? true:false 
	
	if(iexplorer == false && displayValue == "block"){
		displayValue="table";
	}
	objeto.style.display = displayValue;	
}
	
function findPosX(obj){
	var curleft = 0;
	//
	if (obj.offsetParent){
		while (obj.offsetParent){
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}else if (obj.x){
		curleft += obj.x;
	}
	return curleft;
}

function findPosY(obj){
	var curtop = 0;
	//
	if (obj.offsetParent){
		while (obj.offsetParent){
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}else if (obj.y){
		curtop += obj.y;
	}
	return curtop;
}

function findW(obj){
	var curwidth = 0;
	//
	if (obj.offsetParent){
		curwidth = obj.offsetWidth;
	}
	else if (obj.width)
		curwidth += obj.width;
	return curwidth;
}

function findH(obj){
	var curheight = 0;
	//
	if (obj.offsetParent){
		curheight = obj.offsetHeight;
	}
	else if (obj.height)
		curheight += obj.height;
	return curheight;
}

function posiciona(obj, referencia, t, l){
	var newX = findPosX(referencia) + l;
	var newY = findPosY(referencia) + t;
	//
	obj.style.left = newX;
	obj.style.top = newY;
}

function posicionaLogbox(){
	var newX = findPosX(document.getElementById("btlogin"));
	var newY = findPosY(document.getElementById("btlogin"));
	//
	logbox.style.left = newX-90;
	logbox.style.top = newY-25;
	logbox.style.visibility = "visible";	
}

var tamH = 200;
var tamHi = 50;
var idTempo = 0;

function aumenta(){
	var objeto = document.getElementById("soBarra");
	var objetoH = findH(objeto);
	//
	if(objetoH >= tamH){
		clearInterval(idTempo);
	}else{
		clearInterval(idTempo);
		objeto.style.height = objetoH + 10;
		idTempo = setInterval(aumenta, 20);
	}
}
function diminui(){		
	var objeto = document.getElementById("soBarra");
	var objetoH = findH(objeto);
	//
	if(objetoH <= tamHi){
		clearInterval(idTempo);
	}else{
		clearInterval(idTempo);
		objeto.style.height = objetoH - 10;
		idTempo = setInterval(diminui, 20);
	}
}

atual = ""
function collapse( whichEl ){
		if (atual != ""){
			eval("document.all."+atual).style.display = (eval("document.all."+atual).style.display == "none")? "" : "none";
		}
		eval("document.all."+whichEl).style.display = (eval("document.all."+whichEl).style.display == "none")? "" : "none";
		atual = whichEl
}

function contaTexto(numero,texto,contador){
	//alert(contador.value)
 	var tamanho = texto.value.length;
 	var tex = texto.value;
	if (tamanho>=(numero+1)){
  	texto.value=tex.substring(0,(numero-1));
 	}else{
		contador.value = numero - texto.value.length;
	 	//return true;
 }
}

function fechaDHTML(divid){
	document.getElementById(divid).style.display='none';
}

function jumpMenu(ovalue){
	if(ovalue != "") {
	document.location.href = ovalue;	
	}
}

function autoSubmit(nomeForm,customDelay){
	if (customDelay == null) {
		delay = 1500
	} else {
		delay = customDelay
	}
	if (typeof(autoSubmitCounter) != 'undefined') {
		clearTimeout(autoSubmitCounter);
	}
	autoSubmitCounter = setTimeout("document.getElementById('"+nomeForm+"').submit()",delay);
}
// Mascara Numérica
function mascara(o,f){
    v_obj=o
    v_fun=f
    setTimeout("execmascara()",1)
}
function execmascara(){
    v_obj.value=v_fun(v_obj.value)
}
function leech(v){
    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 periodo(v){
	  v=v.replace(/\D/g,"")  
		v=v.replace(/(\d{2})(\d)/,"$1/$2")
		v=v.replace(/(\d{4})(\d)/,"$1 a $2")
		v=v.replace(/\ (\d{2})(\d)/g," $1/$2")
		v=v.substring(0,17)
		return v
}

function soNumeros(v){
    return v.replace(/\D/g,"")
}

function telefone(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 telefoneComddd(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 soNasc(v){
    v=v.replace(/\D/g,"")                 //Remove tudo o que não é dígito
    v=v.replace(/(\d{2})(\d)/,"$1/$2")    //Coloca hífen entre o quarto e o quinto dígitos
  	v=v.replace(/(\d{2})(\d)/,"$1/$2")
  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 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 você 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
}
function decimalMask(e){
		var tecla; 
		
		if (!e) { 
			e = window.event; 
		}
	
		if (e.keyCode) { 
			tecla = e.keyCode; 
		}	else if(e.which) { 
			tecla = e.which;
		}
		
	if ((tecla >= 47 && tecla < 58) || (tecla >= 96 && tecla <= 105) || (tecla == 9) || (tecla == 8)|| (tecla == 109) || (tecla == 189)) { 
				return true;
			} else {
				return false;
		}
}

function sonypopup(arq, width, height, scroll){   
    var URL = arq 
    var W = width 
    var H = height 
    var S = scroll 

     var Wpopupsize =(W/2); 
     var Hpopupsize =(H/2); 
     var CenterPopUpX = (screen.width/2)-(Wpopupsize); 
     var CenterPopUpY = (screen.height/2)-(Hpopupsize); 
     var pos = "left="+CenterPopUpX+",top="+CenterPopUpY; 
     var desktop = window.open( ""+URL, "preview", "width="+W+",height="+H+",toolbar=no,location=no,status=no,menubar=no,scrollbars="+S+",resizable=no,"+pos); 
}