﻿newsletter={
	el:{
		bNewsletter:null, popNewsletter:null,
		form:null, txtEmail:null,
		bSubmit:null, loader:null
	},
	initEl:function(){
		var el=this.el;
		el.bNewsletter=$('#b-newsletter');
		el.popNewsletter=$('#popnewsletter');
		el.form=$('form[name=newsletter]', el.popNewsletter);
		el.txtEmail=$('input[name=email]', el.form);
		el.bSubmit=$('input[name=submit]', el.form);
		el.loader=$('div.loader', el.form);
	},
	validator:null,
	initValidator:function(){
		this.validator=this.el.form.validate({
			rules : {
				email: {
					required: true,
					email: true
				}
			},
			messages: {
				email:''
			}
		});
	},
	submit:function(){
		var el=this.el;
		el.bSubmit.hide();
		el.loader.show();
		if(this.validator.form()){
			var url=el.form.attr('action');
			$.ajax({
				url:url,
				data:{ email:el.txtEmail.val() },
				type:'POST',
				dataType:'json',
				success:function(data, textStatus){
					if(data.success){
						alert('Submit newsletter success.');
						el.txtEmail.val('');
						el.popNewsletter.fadeOut();
					}else{
						alert(data.message+' please try again.');
					}
					el.bSubmit.show();
					el.loader.hide();
				},
				error:function(req, textStatus){
					alert('An error occured please try again.');
					el.bSubmit.show();
					el.loader.hide();
				}
			});
		}else{
			el.bSubmit.show();
			el.loader.hide();
		}
	},
	initEvents:function(){
		var _this=this; var el=this.el;
		if(!this.validator)
			this.initValidator();

		el.bNewsletter.click(function(){
			if(el.popNewsletter.is(':visible'))
				el.popNewsletter.hide();
			else
				el.popNewsletter.show();
			return false;
		});

		el.bSubmit.click(function(){
			_this.submit();
			return false;
		});
	},
	init:function(){
		if($('#popnewsletter').length>0){
			this.initEl();
			this.initEvents();
		}
	}
};
$(function(){
	newsletter.init();
});
