
/**
 * general javascript functions for esloultimo
 **/
jQuery(function($) {

	/**
	 * user messages function
	 */
	displayUserMessage();
	
	/**
	* extend jquery validator framework
	**/

	//extend messages
	jQuery.extend(jQuery.validator.messages, {
		regex: "El valor ingresado es inválido.",
		spaced_alphanumeric: "Por favor, ingrese sólo números o letras.",
		spaced_digits: "Por favor, ingrese sólo números.",
		required_min_fields: jQuery.format("Por favor, ingrese los valores de al menos {1} campos."),
		no_match_text: "Valor no permitido."
	});
	
	//regex validator
	jQuery.validator.addMethod("regex", function(value, element, param) {
		var rg = new RegExp("^" + param + "$", "g");
  		return rg.test(value);
	}, jQuery.validator.messages.regex);
	
	//alphanumeric and spaces validator
	jQuery.validator.addMethod("spaced_alphanumeric", function(value) {
		var rg = new RegExp("^([0-9a-zA-Z\\s]*)$", "g");
  		return rg.test(value);
	}, jQuery.validator.messages.spaced_alphanumeric);
	
	//digits and spaces validator
	jQuery.validator.addMethod("spaced_digits", function(value) {
		var rg = new RegExp("^([0-9\\s]*)$", "g");
  		return rg.test(value);
	}, jQuery.validator.messages.spaced_digits);
	
	
	// at least one input email
    jQuery.validator.addMethod("required_min_fields", function(value, element, params) {
   		var prefix = params[0];
   		var min_fields = params[1];
   		var fields = $(":input[id^=" + prefix + "]:filled");
   		if (fields.length >= min_fields) {
   			return true;
   		}
   		return false;
   }, jQuery.validator.messages.required_min_fields);
	
    //no match
    
    jQuery.validator.addMethod("no_match_text", function(value, element, params) {     	
   		var text = params[0];
   		if (value != text) {
   			return true;
   		}
   		return false;
    }, jQuery.validator.messages.no_match_text);

});


function displayUserMessage() {
	jQuery(function ($) {
		var $message_delay = 10000; 
		var $user_message = $('#user_message');
		if($user_message.length)
		{
			var alert_timer = window.setTimeout(function () {
				$user_message.trigger('click');
			}, $message_delay);
			
			$user_message
			.animate({height: $user_message.css('line-height') || '50px'}, 200)
			.click(function () {
				window.clearTimeout(alert_timer);
				$user_message.animate({height: '0'}, 200, function() {
					$user_message.remove();
				});
			});
		}
	});
}


function isSession() {

    var user = $j.ajax({
    	type: "POST",
    	async: false,
    	url: "/ajax/suscriber/ajaxIsUserSession/"
  	 }).responseText;
    
    return user;
} 

function showLoginModalBox(url) {
	var dialog = getModalBoxDiv();
	$.get(url, function (data) {
		dialog.html(data);
		dialog.dialog({
			maxHeight: 160,
			modal: true,
			resizable: false,
			title: __('Usuario de esloúltimo'),
			width: 495
		});
    });
}

function showContactModalBox(url) {
	var dialog = getModalBoxDiv();
	$.get(url, function (data) {
		dialog.html(data);
		dialog.dialog({
			modal: true,
			resizable: false,
			title: __('Formulario de contacto'),
			width: 600
		});
    });
}


function showFeedbackModalBox(url) {
	var dialog = getModalBoxDiv();
	$.get(url, function (data) {
		dialog.html(data);
		dialog.dialog({
			modal: true,
			resizable: false,
			title: __('Tu opinión nos ayuda a todos'),
			width: 500
		});
	});
}

function getModalBoxDiv() {
	if ($("#modalbox_container").length) {
		return $("#modalbox_container");
	} else {
		return $('<div id="modalbox_container" style="display:hidden"></div>').appendTo('body');
	}
}

function showForgotPasswordModalBox(url) {
	var dialog = getModalBoxDiv();
	$.get(url, function (data) {
		dialog.html(data);
		dialog.dialog({
			modal: true,
			resizable: false,
			title: __('Recordar contraseña'),
			width: 500
		});
	});
}


function showActivationEmailModalBox(url) {
	var dialog = getModalBoxDiv();
	$.get(url, function (data) {
		dialog.html(data);
		dialog.dialog({
			modal: true,
			resizable: false,
			title: __('Enviar email de activación'),
			width: 500
		});
	});
}

