var AdNewsletter = function() {
	this.init();
}

AdNewsletter.prototype = {
	adNewsletterCadastroURL: "newsletter/cadastro",
	
	init:function(){
		this._applyFormEvent();
	},
	
	_applyFormEvent:function(){
		var form = YAHOO.util.Dom.get("AdNewsletterForm");
		if (form!= null) {
			form.action = this.adNewsletterCadastroURL;
			YAHOO.util.Event.addListener(form,"submit",this._sendForm, this, true);
		}
	},
	
	_sendForm: function(e) {
		YAHOO.util.Event.preventDefault(e); 
		f = YAHOO.util.Event.getTarget(e);
		YAHOO.util.Connect.asyncRequest(
			"GET", 
			f.action +"?"+ YAHOO.util.Connect.setForm(f), 
			{
				success: AdNewsletter.callback.success,
				failure: AdNewsletter.callback.failure
			}
		);
	}	
}

AdNewsletter.callback = {
	success:function(o){
		response = YAHOO.lang.JSON.parse(o.responseText);
		if (response.status == "success") {
			var form = YAHOO.util.Dom.get("AdNewsletterForm");
			fe = YAHOO.util.Dom.getElementsByClassName("fe","div",form);
			fe[0].innerHTML = "<p class='sucesso'>Seu e-mail foi adicionado a nossa newsletter. Obrigado.</p>";
		} else {
			cdErro = response.argumentos.erro;
			msgErro = AdNewsletter.callback._getErrorMessage(cdErro);
			alert("Seu e-mail nao pode ser adicionado a nossa newsletter ("+cdErro+").\n\n" + msgErro);
		}	
	},
	failure:function(o){
		alert("Nao foi possivel adicionar seu e-mail a nossa newsletter. Tente novamente.");	
	},
	
	_getErrorMessage: function(cdErro) {
		var str = "";
		if (cdErro & 2)
			str += "Nome: informe seu nome\n";
		if (cdErro & 4)
			str += "E-mail: deve ser um endereco valido\n";
		if (cdErro & 8)
			str += "E-mail: o endereco informado ja esta cadastrado na newsletter\n";
		
		if (str != "")
			return str;
		return;
	}
}