
APP.Global = (function() {

	/**
     * ----------------------------------------------------------------------------------
     * Init APP
     * ----------------------------------------------------------------------------------
     */
    function _init() {

        //
        APP.Console.info('APP.Global:init()');

        _initBehavior();
    };

    /**
     * ----------------------------------------------------------------------------------
     *
     * ----------------------------------------------------------------------------------
     */
    function _initBehavior() {

        //
        $('#newsletter-message').hide();

        //
        $('#btn-newsletter-signup').on('click', function(evt) {
        	evt.preventDefault();
        	//grecaptcha.execute();
        	_handleNewsletterSignupForm();
        });
    }

    /**
     * ----------------------------------------------------------------------------------
     *
     * ----------------------------------------------------------------------------------
     */
    function _handleNewsletterSignupForm() {

        $.ajax({
			'type': "POST",
			'url': window.baseurl + 'ajax/newsletter',
			'data': $('#frm-newsletter').serialize(),
			'success': function(_json) {
				var formIsValid = true,
				    json = _json,
					n, elm;

				for (n in json.data) {
					elm = $('input[name="newsletter[' + json.data[n].name + ']"]');
					if (!elm.length) {
						elm = $('textarea[name="newsletter[' + json.data[n].name + ']"]');
					}

					if (!elm.length) {
						continue;
					}

					if (!json.data[n].valid) {
					    formIsValid = false;
						elm.siblings('span.error').html(json.data[n].msg).show()
							.parent().parent().off('click').on('click', function(evt) {
								var self = $(this);
								self.find('span.error').fadeOut(250, function() {
									self.find('span.error').html('').hide();
								});
							});

					} else {
						elm.siblings('span.error').html('').hide();
					}
				}

				if (!formIsValid) {
					//grecaptcha.reset();
				} else {
				    $('#frm-newsletter-collapse').slideUp(function () {
                        $('#newsletter-message').show().css({'margin-top':'10px'}).slideDown();
                    });
				}
			}
		});
    }

    /**
     * ----------------------------------------------------------------------------------
     *
     * ----------------------------------------------------------------------------------
     */
    return {
        'init': _init
    };

})();
