pkg('mdv.footer');

mdv.footer.NewsletterForm = function() {
	
	var nodes = {};
	
	function init(root) {
		nodes.root = root;
		nodes.form = $('form', nodes.root);
		nodes.inputEmail = $('input[type="text"]', nodes.root)
		nodes.fauxSubmit = $('.btnLink', nodes.root);

		nodes.form.bind('submit', onSubmitForm);
		nodes.inputEmail.bind('focus', onFocusInput).bind('blur', onBlurInput);
		nodes.fauxSubmit.bind('click', onClickFauxSubmit);
		
		nodes.inputEmail.trigger('blur');
	}
	
	/* Verrry basic validation */
	function validates() {
		var value = nodes.inputEmail.val();
		var match = value.match(/[\S]+@[\S]+\.[\S]+/);
		
		return match && match.length > 0;
	}
	
	function submit() {
		hideErrors();
		
		if(validates()) {
			nodes.form.get(0).submit();
		}
		else {
			showErrors();
		}
	}
	
	function showErrors() {
		nodes.inputEmail.parents('.inputWrapper').addClass('error');
	}
	
	function hideErrors() {
		nodes.inputEmail.parents('.inputWrapper').removeClass('error');
	}
	
	function onFocusInput() {
		var $this = $(this);
		
		if($this.val() == $this.attr('m:defaultValue')) {
			$this.val('');
		}
	}
	
	function onBlurInput() {
		var $this = $(this);
		
		if($this.val() == '') {
			$this.val($this.attr('m:defaultValue'));
		}
	}
	
	function onClickFauxSubmit(event) {
		event.preventDefault();
		
		submit();
	}
	
	function onSubmitForm(event) {
		event.preventDefault();
		
		submit();
	}
	
	init.apply(this, arguments);
}
