/*
AJAX feito para método POST.
Adaptado por Micael Vianna (micael [at] aiatola [dot] net
Código original:
	http://www.captain.at/howto-ajax-form-post-get.php
*/

function createXMLHttpRequest() {
	/*
		Interface genérica para acesso ao conector remoto.
	*/
   try{ return new ActiveXObject("Msxml2.XMLHTTP"); }catch(e){}
   try{ return new ActiveXObject("Microsoft.XMLHTTP"); }catch(e){}
   try{ return new XMLHttpRequest(); }catch(e){}
   alert("XMLHttpRequest not supported");
   return null;
}
	// contem objeto para solicitar recursos remotos.
var xhReq;
// Envia formulario inteiro via POST
// Trata campos sem a necessidade de verificação.
function xhSend(url,formu,funcao){
	/*
		envia a requisicao para o servidor, e tudo o que eh
		retornado eh passado a funcao do_readyStateChange
	*/
	xhReq = createXMLHttpRequest();
	var form = document.getElementById(formu);
	var form_string = get(form);
	var funcao;
	xhReq.open("post",url,true);
	xhReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	//xhReq.setRequestHeader('Content-Lenght',form_string.lenght);
	
    xhReq.onreadystatechange = funcao;
    xhReq.send(form_string);
}
/*
EXEMPLO DE FUNÇÃO
function do_readyStateChange(){
	/*
		se a requisicao estiver completa entao exibir o
		valor no campo de formulario com id total.
	*/
    /*
	if(xhReq.readyState!=4){return;}
	var total=document.getElementById(DIVDEDESTINO);
    total.innerHTML=xhReq.responseText;
}*/


function get(obj) {
  var getstr = "";
  for (i=0; i<obj.length; i++) {

		if (obj.elements[i].tagName == "INPUT") {
		if (obj.elements[i].type == "text" || obj.elements[i].type == "hidden" || obj.elements[i].type == "password" ) {
		   getstr += obj.elements[i].name + "=" + escape(obj.elements[i].value) + "&";
		}
		if (obj.elements[i].type == "checkbox") {
		   if (obj.elements[i].checked) {
			  getstr += obj.elements[i].name + "=" + escape(obj.elements[i].value) + "&";
		   } else {
			  getstr += obj.elements[i].name + "=&";
		   }
		}
		if (obj.elements[i].type == "radio") {
		   if (obj.elements[i].checked) {
			  getstr += obj.elements[i].name + "=" + escape(obj.elements[i].value) + "&";
		   }
		}
	 }   
	 if (obj.elements[i].tagName == "SELECT") {
		var sel = obj.elements[i];
		getstr += sel.name + "=" + escape(sel.options[sel.selectedIndex].value) + "&";
	 }
 	if (obj.elements[i].type == "textarea") {
	   getstr += obj.elements[i].name + "=" + escape(obj.elements[i].value) + "&";
	}
  }
  return getstr;
}

// url de destino, parametros em formato get, funcao que vai executar

function include(url,parametros,div){
/*
		envia a requisicao para o servidor, e tudo o que eh
		retornado eh passado a funcao do_readyStateChange
		usar parametros no formato: variavel=texto&variavel2=texto2
	*/
//	var form = document.getElementById(formu);
//	var form_string = get(form);
//	var funcao;
	xhReq = createXMLHttpRequest();
	xhReq.open("post",url,true);
	xhReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	//xhReq.setRequestHeader('Content-Lenght',form_string.lenght);
	
    xhReq.onreadystatechange = function() {
		if(xhReq.readyState==4){ 
			document.getElementById(div).innerHTML = xhReq.responseText; 
		}
		if(xhReq.readyState!=4){ 
			return;
		}
	}
	xhReq.send(parametros);
}

function executar(url,parametros,funcao){
/*
		envia a requisicao para o servidor, e tudo o que eh
		retornado eh passado a funcao do_readyStateChange
		usar parametros no formato: variavel=texto&variavel2=texto2
	*/
//	var form = document.getElementById(formu);
//	var form_string = get(form);
//	var funcao;
	xhReq = createXMLHttpRequest();
	xhReq.open("post",url,true);
	xhReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	//xhReq.setRequestHeader('Content-Lenght',form_string.lenght);
	
    xhReq.onreadystatechange = funcao;
	xhReq.send(parametros);
}

//
//	exemplo de funlçao.
function adiciona() {
	if(xhReq.readyState==4){ 
		document.getElementById('centro').innerHTML = xhReq.responseText; 
	}
	if(xhReq.readyState!=4){ 
		return;
	}
}

/* Máscaras ER */
function mascarag(o,f){
    v_obj=o
    v_fun=f
    setTimeout("execmascara()",1)
}
function execmascara(){
    v_obj.value=v_fun(v_obj.value)
}
function mcep(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 mtel(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 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 mcpf(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 mdata(v){
    v=v.replace(/\D/g,"");                    //Remove tudo o que não é dígito
    v=v.replace(/(\d{2})(\d)/,"$1/$2");       
    v=v.replace(/(\d{2})(\d)/,"$1/$2");       
                                             
    v=v.replace(/(\d{2})(\d{2})$/,"$1$2");
    return v;
}
function mtempo(v){
    v=v.replace(/\D/g,"");                    //Remove tudo o que não é dígito
    v=v.replace(/(\d{1})(\d{2})(\d{2})/,"$1:$2.$3");    
    return v;
}
function mhora(v){
    v=v.replace(/\D/g,"");                    //Remove tudo o que não é dígito
    v=v.replace(/(\d{2})(\d)/,"$1h$2");       
    return v;
}
function mrg(v){
    v=v.replace(/\D/g,"");                                      //Remove tudo o que não é dígito
        v=v.replace(/(\d)(\d{7})$/,"$1.$2");    //Coloca o . antes dos últimos 3 dígitos, e antes do verificador
        v=v.replace(/(\d)(\d{4})$/,"$1.$2");    //Coloca o . antes dos últimos 3 dígitos, e antes do verificador
        v=v.replace(/(\d)(\d)$/,"$1-$2");               //Coloca o - antes do último dígito
    return v;
}
function mnum(v){
	var patt = /\./g;
	var result=patt.exec(v);	
	if(result == null) { 
		v=v.replace(/\D/g,"");                                      //Remove tudo o que não é dígito
	}
    return v;
}

function is_email(email)
{
	var er = /^[a-zA-Z0-9][a-zA-Z0-9\._-]+@([a-zA-Z0-9\._-]+\.)[a-zA-Z-0-9]{2}/;
	
	if(er.exec(email))
	{
		return true;
	} else {
		return false;
	}
}

