function carregapagina(conteudo, url) {
  $(conteudo).update('<br><br><img height="2" width="300" src="images/loader.gif" alt="carregando" />');
  new Ajax.Updater(conteudo, url, {encoding: 'iso-8859-1'});
	navega.addPoint(url,conteudo);
}


function carregaalbum(conteudo, url) {
  new Ajax.Updater(conteudo, url, {encoding: 'iso-8859-1'});
}

function envia_formulario(id, url, resposta) {
  f = $(id);
	el = $(id).serialize(true);
	//if(valida_formulario(el)) {
	if(true) {
    $(resposta).update('<br><br><img height="2" width="300" src="images/loader.gif" alt="carregando" />');
    new Ajax.Updater(resposta, url, { parameters:  el, encoding: 'iso-8859-1' }	);
	}
}

function envia_formulario_album(id, conteudo, url) {
  $(id).request({
    onComplete: function(){ carregapagina(conteudo, url); }
  })
}

function valida_formulario(el) {
	for(k in el) {
	 c = $(k).classNames();
	 v = $(k).getValue();
	 t = $(k).readAttribute('title');
	 
	 if(c == 'required') {
	   if(v.blank()) {
		   alert(':: ' + t + ' ::' + '\npreenchimento obrigatório');
		   $(k).focus();
		   return false
		 }
	 }
	}
	return true
}




//Formatação de campos
function mascara(o,f){
    v_obj=o
    v_fun=f
    setTimeout("execmascara()",1)
}

function execmascara(){
    v_obj.value=v_fun(v_obj.value)
}

function masksoNumeros(v){
    return v.replace(/\D/g,"")
}

function masktelefone(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 maskcpf(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 maskcep(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 maskcnpj(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 maskmoeda(v){  
    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
    return v;
}

function maskdata(v){
     v=v.replace(/\D/g,"") 
     v=v.replace(/(\d{2})(\d)/,"$1/$2") 
     v=v.replace(/(\d{2})(\d)/,"$1/$2") 
     return v
}

function maskmes(v){
     v=v.replace(/\D/g,"") 
     v=v.replace(/(\d{2})(\d)/,"$1/$2") 
     return v
}

function maskromanos(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 removeacento(v){
    v=v.replace(/[áà]/,"a");
		v=v.replace(/[ÁÀ]/,"A");
		v=v.replace(/[éè]/,"e");
		v=v.replace(/[ÉÈ]/,"E");	
		v=v.replace(/[íì]/,"i");
		v=v.replace(/[ÍÌ]/,"I");		
		v=v.replace(/[óò]/,"o");	
		v=v.replace(/[ÓÒ]/,"O");	
		v=v.replace(/[úù]/,"u");	
		v=v.replace(/[ÚÙ]/,"U");	
		v=v.replace(/[ç]/,"c");	
		v=v.replace(/[Ç]/,"C");						
						
						
    return v
}

function masksite(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
}

/**********************************************/
/* Navegação                                   /
/**********************************************/

var History_Browser = Class.create();  
History_Browser.prototype = {
//construtor padrão  
  initialize: function(content) {  
    this._url = new Array();
	  this._content = new Array();
	  this._current = -1;

  },
//adiciona um ponto de navegação 
	addPoint: function(url, content) {
		this._url.push(url);
		this._content.push(content);	
		
	},
//recua o ponteiro
  prev: function() {
	    I = this._url.size() -2;

			$(this._content[I]).update('<br><br><img height="2" width="300" src="images/loader.gif" alt="carregando" />');
			new Ajax.Updater(this._content[I], this._url[I]);
			this._content.pop();
			this._url.pop();
	}


}
navega = new History_Browser();