//----COMPROBAR FORMS
//Filtros
var filters = {
    required: function(el) {return ($(el).val() != '' && $(el).val() != -1);},
    email: function(el) {return /^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-](?!\.)){0,61}[a-zA-Z0-9]?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9\-](?!$)){0,61}[a-zA-Z0-9]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/.test($(el).val());},
    telefono: function(el){return /^[0-9]*$/.test($(el).val());},
	number: function(el) {valor=$(el).val(); return !isNaN(valor);},
	compPass: function(el) {return $(el).val()==$('#REPETIR_PASS').val();},
	isChecked: function(el) {
		result=false; 
		$("form").find("input").each(function(y,radio) {
			if (radio.name==el.name) {if (radio.checked) result=true;}
		});
		return result;
	},
	isImage: function(el) {valor=$(el).val(); return (valor != '' && (valor.indexOf('jpg')>0 || valor.indexOf('jpeg')>0 || valor.indexOf('gif')>0));}
};	
// Extensiones
$.extend({
	stop: function(e){
        if (e.preventDefault) e.preventDefault();
        if (e.stopPropagation) e.stopPropagation();
    }
});
// Código
$(document).ready(function(){
	$("form").bind("submit", function(e){
		//Limpiamos las clases de error anteriores si las hay
		$(this).find(".error").removeClass("error");
		$(this).find(".errorSpan").removeClass("errorSpan");
		
		if (typeof filters == 'undefined') return;
	    $(this).find("input, textarea, select").each(function(x,el){
	        if ($(el).attr("className") != 'undefined') {
	        $.each(new String($(el).attr("className")).split(" "), function(x, klass){
	            if ($.isFunction(filters[klass]))
	                if (!filters[klass](el))  {
						//Definimos las clases de error
						$(el).addClass("error");
						$(el.parentNode).addClass("errorSpan");
					}
			});
	        }
	    });
		if ($(this).find(".error").size() > 0) {
			$.stop(e || window.event);
			$(this).find(".error:first").focus();
			return false;
		}
	    return true;
	});
});
//---- FIN COMPROBAR FORMS

//Creamos una variable que comprueba si hemos modificado formularios
var modifFormul=false;

//Funcion para activar comprobacion de formularios
//	· Comprueba si cambiamos de TAB sin haber grabado
//	· Comprueba si tenemos las mayúsculas activadas
function activarComprobacionModif() {
	$("input, select, textarea").change(function() {modifFormul=true;});
	$(".menu_tabs a").click(function() {
		if (modifFormul) {
			return confirm('Ha realizado cambios en el formulario sin grabarlos. \nSi cambia de pestaña ahora, se perderán dichos cambios. \n¿Está seguro/a de que desea continuar?'); 
		} else return true;
	});
	
	$('input, textarea').caps(function(caps){
    	if(jQuery.browser.safari) return; // Safari already indicates caps lock
   		 if(caps){
        	alert('Tiene el bloqueo de mayúsculas activado');
    	}
	});	
}
//----Fin de comprobacion de formularios

//Función para comprobar si hay capslock pulsada
jQuery.fn.caps = function(cb){
    return this.keypress(function(e){
        var w = e.which ? e.which : (e.keyCode ? e.keyCode : -1);
        var s = e.shiftKey ? e.shiftKey : (e.modifiers ? !!(e.modifiers & 4) : false);
        var c = ((w >= 65 && w <= 90) && !s) || ((w >= 97 && w <= 122) && s);
        cb.call(this, c);
    });
};
//----Fin de la función de capslock


//------------------------------------------------------
//Cambios de enlaces para blank, back, etc...
$(document).ready(function () {
    //Ponemos funciones a los buscadores
	$("#nuevaBusqueda").click(function() {
		$(":input").attr('value','');
		$(":text:first").focus();
	});
	
	//Convertimos los enlaces que tengan clase external a blank
	$("a.external").attr('target', '_blank');
	
	//Ponemos history back en los enlaces que corresponda
	$("a.volverAtras").click(function() {
		window.history.back();
		return false;
	});	
});
