/**
 * JS
 * @author Darío Ruellan <druellan@ecimtech.com>
 * @copyright ecimTech 2009
 */

$(function()
{
	$("form.liveform").submit(function()
	{
		var status;
		var icons 				= $(".icon", this); 
		var formUrl 			= $(this).attr("action");
		var formInputs			= $("input, textarea, select", this);
		var formButtons			= $("button", this);
		var fromSubmitButton 	= $("button[type=submit]", this);;
		var sendData			= formInputs.serialize();
		
		icons.addClass("loader");
		formButtons.attr('disabled', 'disabled');
		fromSubmitButton.addClass("sending");
		
		$.ajax(
		{
			async: false,
			type: "POST",
			url: formUrl,
			data: sendData,
			dataType: "json",
			success: function(msg)
			{
				status = liveForm_checkJson(formInputs, msg);
			},
			error: function(msg)
			{
				alert("Se produjo un error al tratar de enviar el formulario. Por favor, pruebe nuevamente o póngase en contacto con nosotros.");
			}
		});

		icons.removeClass("loader");
		if (status != true) 
		{
			formButtons.removeAttr('disabled');
			fromSubmitButton.removeClass("sending");
		}

		return status;
	});

});

function liveForm_checkJson (formInputs, response)
{
	var status = true;
	$.each(formInputs, function()
	{
		var genericMsg = "";
		name = $(this).attr("name");
		$icon = $(this).parent().find("div.icon");
		$msg = $(this).parent().find("div.message");
		try
		{
			if (response[name] && response[name].ok == false) 
			{
				status = false;
				$icon.removeClass("good").addClass("bad");
				genericMsg = "Hay algo incorrecto.";
				
				if (response[name].message) 
				{
					genericMsg = response[name].message;
					$msg.slideDown("fast");
				}
			}
			else
			{
				$icon.removeClass("bad").addClass("good");
				genericMsg = "¡Correcto!";
			}
		} catch(err)
		{
			$icon.removeClass("bad").addClass("good");
			genericMsg = "¡Correcto!";
		};
		
		$msg.html(genericMsg);
		
	});
	return status;
	
}

