function getQuerystring(key, default_)
{
  if (default_==null) default_="";
  key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
  var qs = regex.exec(window.location.href);
  if(qs == null)
    return default_;
  else
    return qs[1];
}

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 soNumeros(v){
    return v.replace(/\D/g,"")
}

function getBaseURL() {
	
    var url = location.href;  // entire url including querystring - also: window.location.href;
    var baseURL = url.substring(0, url.indexOf('/', 14));

    if (baseURL.indexOf('http://localhost') != -1) {
        // Base Url for localhost
        var url = location.href;  // window.location.href;
        var pathname = location.pathname;  // window.location.pathname;
        var index1 = url.indexOf(pathname);
        var index2 = url.indexOf("/", index1 + 1);
        var baseLocalUrl = url.substr(0, index2);

        return baseLocalUrl + "/";
    }
    else {
        // Root Url for domain name
        return baseURL + "/";
    }

}


function formata_data(val)
{
   	var pass = val.value;
	var expr = /[0123456789]/;
		
	for(i=0; i<pass.length; i++){
		// charAt -> retorna o caractere posicionado no índice especificado
		var lchar = val.value.charAt(i);
		var nchar = val.value.charAt(i+1);
	
		if(i==0){
		   // search -> retorna um valor inteiro, indicando a posição do inicio da primeira
		   // ocorrência de expReg dentro de instStr. Se nenhuma ocorrencia for encontrada o método retornara -1
		   // instStr.search(expReg);
		   if ((lchar.search(expr) != 0) || (lchar>3)){
			  val.value = "";
		   }
		   
		}else if(i==1){
			   
			   if(lchar.search(expr) != 0){
				  // substring(indice1,indice2)
				  // indice1, indice2 -> será usado para delimitar a string
				  var tst1 = val.value.substring(0,(i));
				  val.value = tst1;				
 				  continue;			
			   }
			   
			   if ((nchar != '/') && (nchar != '')){
				 	var tst1 = val.value.substring(0, (i)+1);
				
					if(nchar.search(expr) != 0) 
						var tst2 = val.value.substring(i+2, pass.length);
					else
						var tst2 = val.value.substring(i+1, pass.length);
	
					val.value = tst1 + '/' + tst2;
			   }

		 }else if(i==4){
			
				if(lchar.search(expr) != 0){
					var tst1 = val.value.substring(0, (i));
					val.value = tst1;
					continue;			
				}
		
				if	((nchar != '/') && (nchar != '')){
					var tst1 = val.value.substring(0, (i)+1);

					if(nchar.search(expr) != 0) 
						var tst2 = val.value.substring(i+2, pass.length);
					else
						var tst2 = val.value.substring(i+1, pass.length);
	
					val.value = tst1 + '/' + tst2;
				}
   		  }
		
		  if(i>=6){
			  if(lchar.search(expr) != 0) {
					var tst1 = val.value.substring(0, (i));
					val.value = tst1;			
			  }
		  }
	 }
	
     if(pass.length>10)
		val.value = val.value.substring(0, 10);
	 	return true;
}

// Mascara moeda
//onkeyup="moeda(this)"
function moeda(z){  
                v = z.value;
                v=v.replace(/\D/g,"")  //permite digitar apenas números
        v=v.replace(/[0-9]{12}/,"inválido")   //limita pra máximo 999.999.999,99
        v=v.replace(/(\d{1})(\d{8})$/,"$1.$2")  //coloca ponto antes dos últimos 8 digitos
        v=v.replace(/(\d{1})(\d{5})$/,"$1.$2")  //coloca ponto antes dos últimos 5 digitos
        v=v.replace(/(\d{1})(\d{1,2})$/,"$1,$2")        //coloca virgula antes dos últimos 2 digitos
                z.value = v;
   }




//contador
jQuery.fn.contador = function(opcoes) {
	opcoes = jQuery.extend({
		max: $(this).attr('maxlength'),				//Número máximo de caracteres no campo.
		mensagem: 'Restam $cont caracteres.',		//Texto que será exibido para os caracteres restantes. Obrigatório o $cont.
		elemento: 'div',							//Tipo do elemento que mostrará a quantidade de caracteres restantes.
		elementoId: $(this).attr('id'),				//ID do elemento que mostrará a quantidade de caracteres restantes.
		elementoClasse: 'contador',					//Nome da classe CSS do elemento que mostrará a quantidade de caracteres restantes.
		elementoInsert: 'depois'					//Posição do elemento que mostrará a quantidade de caracteres restantes em relação ao campo texto. Aceita 'antes' ou 'depois'.
	}, opcoes);
	$(this).each(function() {
		var val = $(this).val().length;
		var cur = (val > 0) ? val : 0;
		var resta = opcoes.max - cur;
		var mensagem = opcoes.mensagem.replace('$cont', resta.toString());
		
		opcoes.elementoId += "_" + opcoes.elemento;
		var elemento = "<"+opcoes.elemento+" id='"+opcoes.elementoId+"' class='"+opcoes.elementoClasse+"'>"+mensagem+"</"+opcoes.elemento+">";
		if (opcoes.elementoInsert == 'depois') {
			$(this).after(elemento);
		} else if (opcoes.elementoInsert == 'antes') {
			$(this).before(elemento);
		}
		$(this).keyup(function(e) {
			atualiza($(this));
		});
		$(this).blur(function() {
			atualiza($(this));
		});
		var atualiza = function(campo) {
			var val = campo.val().length;
			var cur = (val > 0) ? val : 0;
			var resta = opcoes.max-cur;
			if (resta <= 0) {
				campo.val(campo.val().substr(0, opcoes.max));
				resta = 0;
			}
			var mensagem = opcoes.mensagem.replace('$cont', resta.toString());
			$("#"+opcoes.elementoId).text(mensagem);
			return campo;
		};
	});
	return this;
};

