﻿var libFmk = '';
$(document).ready(function()
{$('form[name^=ajax]').submit(function(e)
{
var idFormulario 	= '#'+$(this).attr("id");
var datos 		= '';
var idBloqueInfo 	= 'idResultado';
var nuevoDiv            = '';
var submitButton        = $(idFormulario).find(' :submit');
var bloqueCargando      = $(idFormulario).find(' #cargando');
var bloqueInfo          = $(idFormulario).find(' #'+idBloqueInfo);
var bloquesProblemas    = $(idFormulario).find(" [id^='problemas_']");
var submitTxt           = submitButton.attr('value');
e.preventDefault();
jQuery.ajax({data: $(idFormulario).serialize(),
type: "post",

url: $(this).attr("action"),
timeout: 4000,

beforeSend: function()
{
if( !bloqueCargando.is("img") )
{var nuevoDiv = document.createElement("img");nuevoDiv.id = "cargando";
nuevoDiv.src = 'http://' +window.location.hostname+ '/imagenes/box/loading.gif';submitButton.after(nuevoDiv);bloqueCargando = $(idFormulario).find(' #cargando');}
bloqueCargando.show();if( bloqueInfo.is("div") )
bloqueInfo.html('');submitButton.attr('value', 'Procesando...').attr("disabled", "disabled").addClass('procesando');$(idFormulario +' input[type=text], ' +idFormulario+ ' textarea').removeClass('bordeRojo');bloquesProblemas.html('').hide();},
error: function() {submitButton.removeAttr("disabled").removeClass('procesando').attr('value', submitTxt);bloqueCargando.hide();alert("Hubo un error desconocido al enviar el formulario. Por favor, vuelve a intentarlo.");},
success: function(datosRecibidos)
{submitButton.removeAttr("disabled").removeClass('procesando').attr('value', submitTxt);bloqueCargando.hide();try{datos = eval('(' + datosRecibidos + ')');}catch(e)
{alert("Lo sentimos pero ha habido algún problema en la recepción de datos. Nos ha llegado la notificación y los técnicos lo resolverán en menos de 24 horas. Disculpa las molestias.")
return false;}
if( !datos )
return false;if( datos['tipo'] == 'redirigir')
top.location = datos['contenido'];else if( datos['tipo'] == 'recargar' )
window.location.reload( true );else if( datos['tipo'] == 'informar' )
{if( !bloqueInfo.is("div") )
{nuevoDiv    = document.createElement("div");nuevoDiv.id = idBloqueInfo;submitButton.before(nuevoDiv);bloqueInfo  = $(idFormulario).find(' #'+idBloqueInfo);}
bloqueInfo.html(datos['contenido']+'<br>').show();}else if( datos['tipo'] == 'errores' )
{for (var i=0; i < datos['contenido'].length; i=i+2)
{var elementoActual = $(idFormulario+ " [name='" +datos['contenido'][i]+ "']");elementoActual.addClass('bordeRojo');idBloqueError = datos['contenido'][i].replace(/[^a-zA-Z0-9]+/g,'');if( !$('body').find(idFormulario+ " #problemas_" +idBloqueError).is("p") )
{nuevoDiv            = document.createElement("p");nuevoDiv.className  ="colorRojo";nuevoDiv.id         = "problemas_" +idBloqueError;if( elementoActual.attr('type') == 'radio' )
{var primerElementoRadio = $(idFormulario).find("input[name='" +datos['contenido'][i]+ "']:first");if( primerElementoRadio.parent().is('label') )
primerElementoRadio.parent().before(nuevoDiv);else
primerElementoRadio.before(nuevoDiv);}else if( elementoActual.attr('type') == 'checkbox' )
$(idFormulario).find("input[name='" +datos['contenido'][i]+ "'] + label").after(nuevoDiv);else if( $(idFormulario).find("input[name='" +datos['contenido'][i]+ "[]']").attr('type') == 'checkbox' )
$(idFormulario).find("input[name='" +datos['contenido'][i]+ "[]']:first").before(nuevoDiv);else if( elementoActual.length != 0 )
elementoActual.after(nuevoDiv);else
{var bloqueErrores = $(idFormulario).find("#problemas_errores");if( bloqueErrores.length == 0 )
{nuevoDiv            = document.createElement("p");nuevoDiv.className  = "bloqueError";nuevoDiv.id         = "problemas_errores";submitButton.before(nuevoDiv);}else
bloqueErrores.html("");bloqueErrores.html('Hemos encontrado algunos problemas:<br>' +datos['contenido'][i]+ " -- " +datos['contenido'][i+1]);}
}
$(idFormulario +" #problemas_" +idBloqueError).append(datos['contenido'][i+1]).show();}
if( bloquesProblemas.length != 0 )
{nombre = bloquesProblemas.attr('id').substring(10);$('html').animate({scrollTop:bloquesProblemas.offset().top-80}, 200);$(idFormulario + " [name=" +nombre+"]").focus();}
}else if( datos['tipo'] == 'sobreescribir' || datos['tipo'] == '' )
{$(idFormulario).html(datos['contenido']).attr('class', '');$('html').animate({scrollTop:$(idFormulario).offset().top-80}, 200);}
}
});return false;});$("body").delegate("span[id^=toggleLink],input[id^=toggleLink]", "click", function(){if($(this).attr("id").indexOf("hideMe") != -1) $(this).hide();$("#"+$(this).attr("id").substr(10)).toggle(500);return false;});libFmk =
{paginacionEnlaceVerMas:{init : function()
{$("span[id^=paginacionMas]").each(function(){$(this).click(function(){$(this).hide();var idContenido = $(this).attr("id").substr(13);$.get($(this).prev('span').attr('title'),function(data){$("#paginacionContenido"+ idContenido).append(data);$("#paginacion"+idContenido).show();});});});}},
menuTab:{init : function()
{$('ul[id^=menuTab]').bind('click', function(e)
{var target = e.target,$target = $(target);if (target.nodeName === 'LI')
{$("div[id^=menuTabCon]").hide();var idContenido = "menuTabCon" +$target.attr('id');$("#"+idContenido).show();$(this).children("li").removeClass('seleccionado');$target.addClass('seleccionado');}
});}},
toggleSubmit:{init : function()
{$("input[id*=toggleSubmit]").click(function(){var selected = $(this).attr("checked");$(this).parent().find(":input[type=submit]").each(
function(){if (selected)
$(this).removeAttr("disabled");else
$(this).attr("disabled", true);}
);});}},
selectAll:{init : function()
{$("textarea[id*=selectAll]").click(function(){this.select();});}},
gotoAnchor:{init : function()
{$("span[id^=goto]").click(function(){var enlaceAnchor  = $(this).attr('id').split("goto");window.location.href = '#' +enlaceAnchor[1];});}},
mostrarPasswordIniciado: false,
mostrarPassword:{init : function()
{if( libFmk.mostrarPasswordIniciado )
return;libFmk.mostrarPasswordIniciado = true;$("form").find("input[type=password].sp").each(function(index,input) {var $input = $(input);$('<label class="spLabel"/>').append(
$("<input type='checkbox' />").click(function() {var change = $(this).is(":checked") ? "text" : "password";var rep = $("<input type='" + change + "' />")
.attr("id", $input.attr("id"))
.attr("name", $input.attr("name"))
.attr('class', $input.attr('class'))
.val($input.val())
.insertBefore($input);$input.remove();$input = rep;})).append("Mostrar contraseña").insertAfter( $(this) );});}}
}
});function seleccionarPagina(index, jq, id, url,urlParametros){var bloqueContenido = $("#paginacionContenido"+id); $('html').animate({scrollTop:$("#paginacionCabecera"+id).offset().top}, 200, function(){bloqueContenido.fadeOut(100, function(){bloqueContenido.html("<div class=cargando></div><p class='padeadoVertical agrandar'>Cargando información...</p>").fadeIn(650, function(){bloqueContenido.load(url + "?p="+index+"&"+urlParametros).fadeIn(400);});})});return false;}
function iniciarPaginacion(id,nTotal,url,urlParametros) {$("#paginacion" +id).pagination(nTotal, {callback: seleccionarPagina,id:id,url: url,urlParametros:urlParametros});}
