/* MÁSCARAS */
/**  
  * Função Principal 
  * @param w - O elemento que será aplicado (normalmente this).
  * @param e - O evento para capturar a tecla e cancelar o backspace.
  * @param m - A máscara a ser aplicada.
  * @param r - Se a máscara deve ser aplicada da direita para a esquerda. Veja Exemplos.
  * @param a - 
  * @returns null  
  */
function maskIt(w,e,m,r,a){
    
    // Cancela se o evento for Backspace
    if (!e) var e = window.event
    if (e.keyCode) code = e.keyCode;
    else if (e.which) code = e.which;
    
    // Variáveis da função
    var txt  = (!r) ? w.value.replace(/[^\d]+/gi,'') : w.value.replace(/[^\d]+/gi,'').reverse();
    var mask = (!r) ? m : m.reverse();
    var pre  = (a ) ? a.pre : "";
    var pos  = (a ) ? a.pos : "";
    var ret  = "";

    if(code == 9 || code == 8 || txt.length == mask.replace(/[^#]+/g,'').length) return false;

    // Loop na máscara para aplicar os caracteres
    for(var x=0,y=0, z=mask.length;x<z && y<txt.length;){
        if(mask.charAt(x)!='#'){
            ret += mask.charAt(x); x++;
        } else{
            ret += txt.charAt(y); y++; x++;
        }
    }
    
    // Retorno da função
    ret = (!r) ? ret : ret.reverse()    
    w.value = pre+ret+pos;
}

// Novo método para o objeto 'String'
String.prototype.reverse = function(){
    return this.split('').reverse().join('');
};
/*FIM MÁSCARAS*/

/* VALIDAÇÃO DE FORMULÁRIOS */

function Valida(){  
	
	var confere = 0;
	
	for(var i = 1; i < arguments.length; i++) {
		
		var campo = document.getElementById(arguments[i]);
		var senha2 = document.getElementById('senha2');
		
		//alert(arguments[i]);
	
		if ((campo.value == "" ) || (arguments[i]=="email" && (campo.value.indexOf("@")==-1 || campo.value.indexOf(".")==-1)) || (arguments[i]=="senha" && (campo.value!=senha2.value))){
            campo.style.background = "#f5dddd";
			confere++;
		} else {
			campo.style.background = arguments[0];
		}
	}
	
	if(confere >=1){
		alert("Favor preencher todos os campos destacados corretamente.");
    	return false;
	} else {
        return true;
	}
}

/* FIM FORMULÁRIO */

function SomeLayer(div){
	document.getElementById(div).style.display = 'none'; 
}

function ApareceLayer(div){
	document.getElementById(div).style.display = 'inline'; 
}

function PrimeiraMaiuscula(string) {
  return string.substring(0,1).toUpperCase()+string.substring(1,string.length);
}



/*atualiza categorias */

var req;

function loadXMLDocCateg(url,categoria, pagina, id)
{
    req = null;
    // Procura por um objeto nativo (Mozilla/Safari)
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChangeCateg;
        req.open("GET", url+'?categoria='+categoria+'&pagina='+pagina+"&id="+id, true);
        req.send(null);
    // Procura por uma versao ActiveX (IE)
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = processReqChangeCateg;
            req.open("GET", url+'?categoria='+categoria, true);
            req.send();
        }
    }
}

function loadXMLDocSubCateg(url,id)
{
    reql = null;
    // Procura por um objeto nativo (Mozilla/Safari)
    if (window.XMLHttpRequest) {
        reql = new XMLHttpRequest();
        reql.onreadystatechange = processReqChangeSubCateg;
        reql.open("GET", url+'?id='+id, true);
        reql.send(null);
    // Procura por uma versao ActiveX (IE)
    } else if (window.ActiveXObject) {
        reql = new ActiveXObject("Microsoft.XMLHTTP");
        if (reql) {
            reql.onreadystatechange = processReqChangeSubCateg;
            reql.open("GET", url+'?id='+id, true);
            reql.send();
        }
    }
}

function processReqChangeCateg()
{
    // apenas quando o estado for "completado"
    if (req.readyState == 4) {
        // apenas se o servidor retornar "OK"
        if (req.status == 200) {
            // procura pela div id="atualiza" e insere o conteudo
            // retornado nela, como texto HTML
            document.getElementById('atualizaLista').innerHTML = req.responseText;
        } else {
            alert("Houve um problema ao obter os dados:\n" + req.statusText);
        }
    }
}

function processReqChangeSubCateg()
{
    // apenas quando o estado for "completado"
    if (reql.readyState == 4) {
        // apenas se o servidor retornar "OK"
        if (reql.status == 200) {
            // procura pela div id="atualiza" e insere o conteudo
            // retornado nela, como texto HTML
            document.getElementById('atualizaNoticia').innerHTML = reql.responseText;
        } else {
            alert("Houve um problema ao obter os dados:\n" + reql.statusText);
        }
    }
}

function AtualizaListaNoticias(pagina){
  	loadXMLDocCateg("noticiasLista.php",0, pagina, null);
}

function AtualizaNoticia(id){
  	loadXMLDocSubCateg("noticiasVisualiza.php",id);
}

function AtualizaListaPacotes(categoria, pagina, id){
  	loadXMLDocCateg("pacotesLista.php",categoria, pagina, id);
}
function AtualizaListaPacotesIn(categoria, pagina, id){
  	loadXMLDocCateg("pacotesListaIn.php",categoria, pagina, id);
}

function AtualizaPacote(id){
  	loadXMLDocSubCateg("pacotesVisualiza.php",id);
}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

/* enviar por ajax */
function criaXMLHttp() {
	if (typeof XMLHttpRequest != "undefined") 
		return new XMLHttpRequest();
	else if (typeof ActiveXObject != "undefined") { // suporte ao IE 7
		var aVersoes = ["MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.5.0",
		"MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0",
		"MSXML2.XMLHttp", "Microsoft.XMLHttp"
		];
		for (var i = 0; i < aVersoes.length; i++){
			try{
				return new ActiveXObject(aVersoes[i]);
			}catch (e) {}
		}
	}
	// se nenhum objeto xmlhttp for suportado
	throw new Error("Seu browser nao suporta AJAX");
}


function enviaReq(formu, div){
	var oForm = eval("document."+formu);
	var sBody = criaReqStr(oForm);

	var oXMLHttp = criaXMLHttp();
	// 1o arg: usa o método post
	// 2o arg: envia a requisição post a página do formulário
	// 3o arg: usa o modo assincrono
	oXMLHttp.open("post", oForm.action, true);
	// importante.. a maioria das linguagens server-side verifica 
	// essa codificação para o parsing da informação
	oXMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	oXMLHttp.onreadystatechange = function (){
		// readyState == 4 quer dizer Completo e sem erros
		if(oXMLHttp.readyState == 4)
			exibeResult(oXMLHttp.responseText, div);
		else
			exibeResult("Ocorreu um erro: " + oXMLHttp.statusText, div);
	};
	// depois de ser setado todos os parametros
	// é enviado os valores usando o método post
	oXMLHttp.send(sBody);
}

function criaReqStr(oForm){
	var aPostStr = new Array();

	for(var i = 0; i < oForm.elements.length; i++){
		var sValor = encodeURIComponent(oForm.elements[i].name);
		sValor += "=";
		sValor += encodeURIComponent(oForm.elements[i].value);
		aPostStr.push(sValor);
	}
	// retorna uma string no padrão "post request":
	// nome1=valor1&nome2=valor2&...&nomeN=valorN
	return aPostStr.join("&");
}                            

function exibeResult(sTxt, div){
	var divStatus = document.getElementById(div);
	divStatus.innerHTML = sTxt;
}

function Imprimir(id, pg) {
    var oPrint, oJan;
    if( window.document.getElementById('maisImagens')!= null) {
    	window.document.getElementById('maisImagens').style.display = "none";
    }
    oPrint  = window.document.getElementById(id).innerHTML;
    oJan    = window.open(pg,'page','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=100,height=100');
    oJan.document.write(oPrint);
    oJan.history.go();
    oJan.window.print();
    if( window.document.getElementById('maisImagens')!= null) {
    	window.document.getElementById('maisImagens').style.display = "inline";
    }
    oJan.window.close();
}
