function validaFecha3(pre) {
	f = document.FBecas;
	var ok = true;
	var dia = f[pre + "_dia"].value;
	var mes = f[pre + "_mes"].value;
	var anyo = f[pre + "_anyo"].value;
	if (dia == "" && mes == "" && anyo == "") return true;
	ok = ok && (dia != "");
	ok = ok && (mes != "");
	ok = ok && (anyo != "");
	if (ok) {
		mes = mes-1;
		var d = new Date(anyo, mes, dia);
		ok = Number(anyo) == d.getFullYear() && mes == d.getMonth() && Number(dia) == d.getDate();
	}
	return ok;
}

function construyeError(err) {
	tmp = "Se han detectado los siguientes errores:<br><br><span class='rojo'>" + err + "</span>";
	return tmp;
}
function listaErrores(err) {
	tmp = "";
	for (i = 0; i < err.length; i++) {
	    tmp += "- " + err[i] + "<br>";
	}
	return tmp;
}


// VALIDA DNI / NIE
function validaDNI(tipo, documento) {
	tmp = valida_nif_cif_nie(documento);
	if (tipo == "dni") {
		if (tmp == 1) {
			return "";
		} else if (tmp == -1) {
			return "El DNI no es correcto. Recuerde no dejar espacios ni guiones entre letra y números";
		} else {
			return "Debe escribir un DNI/NIF válido. Recuerde no dejar espacios ni guiones entre letra y números";
		}
	} else if (tipo == "nie") {
		if (tmp == 3) {
			return "";
		} else if (tmp == -3) {
		return "El NIE no es correcto. Recuerde no dejar espacios ni guiones entre letras y números";
		} else {
			return "Debe escribir un NIE válido. Recuerde no dejar espacios ni guiones entre letras y números";
		}
	} else {
		return "Error indeterminado en el campo DNI/NIE";
	}
}
//alert(valida_nif_cif_nie("X6064873A"));
//Retorna: 1 = NIF ok, 2 = CIF ok, 3 = NIE ok, -1 = NIF error, -2 = CIF error, -3 = NIE error, 0 = ??? error
function valida_nif_cif_nie(a)
{
	var temp = a.toUpperCase();
	var temp1, temp2;
	var posicion, letra;
	//alert(temp);
	var cadenadni="TRWAGMYFPDXBNJZSQVHLCKE";
	if (temp !== '') {
		
		//si no tiene un formato valido devuelve error
		if ((!/^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$/.test(temp) && !/^[T]{1}[A-Z0-9]{8}$/.test(temp)) && !/^[0-9]{8}[A-Z]{1}$/.test(temp)) {
			return 0;
		}
		
		//comprobacion de NIFs estandar
		if (/^[0-9]{8}[A-Z]{1}$/.test(temp)) {
			posicion = temp.substring(0,8) % 23;
			letra = cadenadni.charAt(posicion);
			var letradni=temp.charAt(8);
			if (letra == letradni) { return 1; }
			else { return -1; }
		}
		
		//algoritmo para comprobacion de codigos tipo CIF
		var suma = parseInt(temp.charAt(2))+parseInt(temp.charAt(4))+parseInt(temp.charAt(6));
		
		for (var i = 1; i < 8; i += 2) {
			temp1 = 2 * parseInt(temp.charAt(i));
			temp1 += '';
			temp1 = temp1.substring(0,1);
			temp2 = 2 * parseInt(temp.charAt(i));
			temp2 += '';
			temp2 = temp2.substring(1,2);
			if (temp2 == '') {
				temp2 = '0';
			}
	
			suma += (parseInt(temp1) + parseInt(temp2));
		}
		suma += '';
		var n = 10 - parseInt(suma.substring(suma.length-1, suma.length));
		
		//comprobacion de NIFs especiales (se calculan como CIFs)
		if (/^[KLM]{1}/.test(temp)) {
			if (temp.charAt(8) == String.fromCharCode(64 + n)) { return 1; }
			else { return -1; }
		}
		//comprobacion de CIFs
		if (/^[ABCDEFGHJNPQRSUVW]{1}/.test(temp)) {
			temp = n + '';
			if (temp.charAt(8) == String.fromCharCode(64 + n) || temp.charAt(8) == parseInt(temp.substring(temp.length - 1, temp.length))) { return 2; }
			else { return -2; }
		}
		
		//comprobacion de NIEs
		//T
		if (/^[T]{1}/.test(temp)) {
			if (temp.charAt(8) == /^[T]{1}[A-Z0-9]{8}$/.test(temp)) { return 3; }
			else { return -3; }
		}
		
		//XYZ
		if (/^[XYZ]{1}/.test(temp)) {
			temp2 = temp.substring(0,8);
			temp2 = temp2.replace('X','0')
			temp2 = temp2.replace('Y','1')
			temp2 = temp2.replace('Z','2')
			pos = temp2.substring(0,8) % 23;
			
			if (temp.charAt(8) == cadenadni.substring(pos, pos + 1)) { return 3; }
			else { return -3; }
		}
	}
	return 0;
}
function str_replace(search, replace, subject) {
	// http://kevin.vanzonneveld.net
	// +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +   improved by: Gabriel Paderni
	// +   improved by: Philip Peterson
	// +   improved by: Simon Willison (http://simonwillison.net)
	// +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
	// +   bugfixed by: Anton Ongson
	// +      input by: Onno Marsman
	// +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +    tweaked by: Onno Marsman
	// *     example 1: str_replace(' ', '.', 'Kevin van Zonneveld');
	// *     returns 1: 'Kevin.van.Zonneveld'
	// *     example 2: str_replace(['{name}', 'l'], ['hello', 'm'], '{name}, lars');
	// *     returns 2: 'hemmo, mars'

	var f = search, r = replace, s = subject;
	var ra = r instanceof Array, sa = s instanceof Array, f = [].concat(f), r = [].concat(r), i = (s = [].concat(s)).length;

	while (j = 0, i--) {
		if (s[i]) {
			while (s[i] = s[i].split(f[j]).join(ra ? r[j] || "" : r[0]), ++j in f) { };
		}
	};

	return sa ? s : s[0];
}
function solicitarContrasenya(form) {
	if (form.email.value.length > 3 && form.email.value.indexOf("@") > 1) {
		return true;
	}else{
		domAlert("Debe escribir una dirección de email válida");
		return false;
	}

}
//Funciones especificas de Becas

function galeriaRealizacion(id, ruta, cantidad) {
    cantidad = (cantidad ? cantidad : 5);
    var hasLoaded = false;
	var timeoutDone = false;
	if ($('#galeria').css('visibility') == 'hidden') {
		$('#galeria img').hide();
		$('#galeria').css({ visibility: 'visible' });
	}
	var img = new Image();
	img.onload = function () {
		if (timeoutDone) {
			//alert("onload: "+id);
			$('#galeria img').attr('src', this.src).fadeIn()
			$('#galeria a').attr('href', zoomImgs[id]);
			$('#galeria a').unbind('click').bind('click', function () {
				$('#hidden_link_zoom_' + (id - 1)).trigger('click');
				return false;
			})
		}
		hasLoaded = true;
	};
	img.src = ruta;

	setTimeout(function () {
		if (!hasLoaded) {
			$('#galeria img').hide();
		} else {
			$('#galeria img').attr('src', img.src).css({ display: 'block' });
			$('#galeria a').attr('href', zoomImgs[id]);
			//alert("setTime: " + id);
			$('#galeria a').unbind('click').bind('click', function () {
				$('#hidden_link_zoom_' + (id - 1)).trigger('click');
				return false;
			})
		}
		timeoutDone = true;
	}, 200);

	for (i = 1; i <= cantidad; i++) {
		var el = document.getElementById("img_" + i + "_li");
		if (el == null) continue;
		el.getElementsByTagName("img")[0].className = "";
	}
	document.getElementById("img_" + id + "_li").getElementsByTagName("img")[0].className = "selected";

	if (document.getElementById('reproductor') != undefined) document.getElementById('reproductor').innerHTML = "";

}

function galeriaMediaNoticia(tipo, id, ruta, zoom) {
	cantidad = 5;
	var hasLoaded = false;
	var timeoutDone = false;
	if ($('#galeria').css('visibility') == 'hidden') {
		$('#galeria img').hide();
		$('#galeria').css({ visibility: 'visible' });
	}
	if (tipo == "img") {
		var img = new Image();
		img.onload = function () {
			if (timeoutDone) {
				//alert("onload: "+id);
				$('#galeria img').attr('src', this.src).fadeIn()
				$('#galeria a').attr('href', zoom);
//				$('#galeria a').unbind('click').bind('click', function () {
//					$('#hidden_link_zoom_' + (id - 1)).trigger('click');
//					return false;
//				})
			}
			hasLoaded = true;
		};
		img.src = ruta;

		setTimeout(function () {
			if (!hasLoaded) {
				$('#galeria img').hide();
			} else {
				$('#galeria img').attr('src', img.src).css({ display: 'block' });
				$('#galeria a').attr('href', zoom);
				//alert("setTime: " + id);
//				$('#galeria a').unbind('click').bind('click', function () {
//					$('#hidden_link_zoom_' + (id - 1)).trigger('click');
//					return false;
//				})
			}
			timeoutDone = true;
		}, 200);
		
		for (i = 1; i <= cantidad; i++) {
			var el = document.getElementById("img_" + i + "_li");
			if (el == null) continue;
			el.getElementsByTagName("img")[0].className = "";
			if(el.getElementsByTagName("img")[1] != null) el.getElementsByTagName("img")[1].className = "";
		}
		
		document.getElementById("img_" + id + "_li").getElementsByTagName("img")[0].className = "selected";

		if (document.getElementById('reproductor') != undefined) document.getElementById('reproductor').innerHTML = "";
	} else if (tipo == "video") {
		if (zoom.length > 3) {
			flashvars = { autoplay: 0, loop: 0, preview: zoom };
		} else {
			autoplay_var = id > 1 ? 1 : 0;
			flashvars = { autoplay: autoplay_var, loop: 0 };
		}
		abreVideo(ruta, flashvars, null, { width: '775', height: '396' });
		document.getElementById("img_" + id + "_li").getElementsByTagName("img")[1].className = "selected";
	}

}

function muestraTextoRealizacion(texto) {
	r = document.getElementById("nombre_realizacion");
	//alert(texto);
	r.innerHTML = texto;
}
function quitaTextoRealizacion() {
	r = document.getElementById("nombre_realizacion");
	r.innerHTML = "<br>";
}


function abreVideo(cual, flashvars, pars, overrides) {
    abreVideoCommon("reproductor", cual, flashvars, pars, overrides);
}
function abreVideoCommon(idreproductor, cual, flashvars, pars, overrides) {
    $('#body .galeria li a img').removeClass('selected');
    $('#galeria').css({ visibility: 'hidden' });
    document.getElementById(idreproductor).innerHTML = "";
    var message = 'No dispones de una version suficientemente reciente de flash para poder visualizar este contenido <a href="http://www.adobe.com/go/getflashplayer/">Consigue la última versión de Flash Player</a>.';
    var minVersion = 10;
    if ($.flash.hasVersion(minVersion)) {
        var defaults = {
            width: '775',
            height: '380',
            swf: jsRoot + 'media/common/flash/mediaplayer.swf',
            //swf: 'media/proxima/swf/mediaplayer.swf',
            params: {
                allowfullscreen: 'true',
                flashvars: {
                    src: cual,
                    autoplay: 1,
                    loop: 1,
                    noprogress: 0
                }
            }
        };
        if (flashvars) { $.extend(true, defaults.params.flashvars, flashvars); }
        if (pars) { $.extend(true, defaults.params, pars); }
        if (overrides) { $.extend(true, defaults, overrides); }
        $('#' + idreproductor).flash(defaults);
    } else {
        domAlert(message);
    }
}

//Se utiliza solamente en la ficha de documentales DetalleDocumental.aspx
function abreVideoD(selector, cual, flashvars, pars, overrides) {
    var el = $(selector);
    el.html('');
    var message = 'No dispones de una version suficientemente reciente de flash para poder visualizar este contenido <a href="http://www.adobe.com/go/getflashplayer/">Consigue la última versión de Flash Player</a>.';
    var minVersion = 10;
    if ($.flash.hasVersion(minVersion)) {
        var defaults = {
            width: '775',
            height: '380',
            swf: 'media/swf/mediaplayer.swf',
            params: {
                allowfullscreen: 'true',
                flashvars: {
                    src: cual,
                    autoplay: 1,
                    loop: 1,
                    noprogress: 0
                }
            }
        };
        if (flashvars) { $.extend(true, defaults.params.flashvars, flashvars); }
        if (pars) { $.extend(true, defaults.params, pars); }
        if (overrides) { $.extend(true, defaults, overrides); }
        el.flash(defaults);
    } else {
        domAlert(message);
    }
}

