/* 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 AtualizaListagem(pagina,variavel,valor){ 
	eval("parent.location='"+pagina+"&"+variavel+"="+valor.options[valor.selectedIndex].value+"'");
}

function SomeLayer(div){
	document.getElementById(div).style.display = 'none'; 
	document.body.style.overflow='auto';
}

function PrimeiraMaiuscula(string) {
  return string.substring(0,1).toUpperCase()+string.substring(1,string.length);
}



/*atualiza categorias */

var req;

function loadXMLDocCateg(url,categoria, pagina)
{
    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, 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 loadXMLDocPedido(url)
{
    reql = null;
    // Procura por um objeto nativo (Mozilla/Safari)
    if (window.XMLHttpRequest) {
        reql = new XMLHttpRequest();
        reql.onreadystatechange = processReqChangeSubCateg;
        reql.open("POST", url, 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("POST", url, 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('atualizaProduto').innerHTML = reql.responseText;
        } else {
            alert("Houve um problema ao obter os dados:\n" + reql.statusText);
        }
    }
}

function AtualizaLista(categoria, pagina){
  	loadXMLDocCateg("produtosAtualizaLista.php",categoria, pagina);
}

function AtualizaProduto(id){
  	loadXMLDocSubCateg("produtosAtualizaProdutos.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();
    }
  }
}

