Newsletter = {
	OBJ : null,
	Validator : null,
	PageState : 0,
	Load : function( obj ){
		Newsletter.OBJ = obj;
		Newsletter.PageState = 0;
		Newsletter.LoadValidator();
    },
    Submit : function(){
		if( ! Newsletter.Validator.exec() ){ return false; }
		
		var nome = document.getElementById("FrmNewsletterEmail");
		var email = document.getElementById("FrmNewsletterEmail");
		
		if (Newsletter.PageState > 0) {
			return false;
		}
		Newsletter.PageState++;
		
		Newsletter.ViewLoading(true);
		Newsletter.OBJ.onSalvarError = function() {
			Newsletter.ViewLoading(false);
			Newsletter.PageState--;
			window.alert('Falha na comunicação... Tente novamente daqui alguns minutos...');
		}
		Newsletter.OBJ.salvar( encode64(nome.value), encode64(email.value), function(rs){
			if(rs){
				window.alert("Você acaba de se cadastrar em nossa Newsletter... \n\nEm breve receberá novidades... \n\nObrigado(a)");
				document.getElementById("FrmNewsletter").reset();
			}else{
				window.alert("Houve algum problema ao se cadastrar em nossa Newsletter, por favor, tente daqui alguns minutos!");
			}
			Newsletter.PageState--;
			Newsletter.ViewLoading(false);
		});	
		return false;
    },
	Remove : function(){
		if( ! Newsletter.Validator.exec() ){ return false; }
		
		var email = document.getElementById("FrmNewsletterEmail");
		
		if (Newsletter.PageState > 0) {
			return false;
		}
		Newsletter.PageState++;
		
		Newsletter.ViewLoading(true);
		Newsletter.OBJ.onRemoverError = function() {
			Newsletter.ViewLoading(false);
			Newsletter.PageState--;
			window.alert('Falha na comunicação... Tente novamente daqui alguns minutos...');
		}
		Newsletter.OBJ.remover( encode64(email.value), function(rs){
			if(rs){
				window.alert("Seu e-mail foi removido/bloqueado da lista com sucesso.");
				document.getElementById("FrmNewsletter").reset();
			}else{
				window.alert("Houve algum problema ao remover seu cadastro, por favor, tente daqui alguns minutos!");
			}
			Newsletter.PageState--;
			Newsletter.ViewLoading(false);
		});	
		return false;
    },
	LoadValidator : function(){
		var a_fields = {
		'FrmNewsletterEmail':{'l':'E-mail','r':true,'f':'email'}
		},
		o_config = {
			'to_disable' : ['FrmNewsletterBotaoEnviar'],
			'alert' : 1
		}
		Newsletter.Validator = new validator('FrmNewsletter', a_fields, o_config);
    },
	ViewLoading : function( status ){
		var icoLoading = document.getElementById("newsletterCarregando");
		if(status == true){
			document.body.style.cursor = 'wait';
			icoLoading.style.visibility = 'visible';
		}else{
			document.body.style.cursor = '';
			icoLoading.style.visibility = 'hidden';
		}
    }
}
