// JavaScript Document

Array.prototype.exists=function(search)
{
	for(var i=0;i<this.length;i++) if(this[i] == search) return true;
	
	return false;
};

Array.prototype.inArray=function(value)
{ 
	for(var i=0;i<this.length;i++) if(this[i] === value) return true;
	
	return false;
};

function addslashes(str)
{
	str=str.replace(/\\/g,'\\\\');
	str=str.replace(/\'/g,'\\\'');
	str=str.replace(/\"/g,'\\"');
	str=str.replace(/\0/g,'\\0');
	return str;
}

function stripslashes(str)
{
	str=str.replace(/\\'/g,'\'');
	str=str.replace(/\\"/g,'"');
	str=str.replace(/\\\\/g,'\\');
	str=str.replace(/\\0/g,'\0');
	return str;
}

function canviaSubstr(str,from,to)
{
	var from_ok=eval("/"+from+"/gi"); //"gi", per buscar totes les aparicions de "from" ("g") sense tenir en compte les majúscules-minúscules ("i")
	str=str.replace(from_ok,to);
	
	return str;
}

function trim(str)
{
	str=str.replace(/^\s*|\s*$/g,"");
	
	return str;
}

function toogleSeeMore(containerDiv,visibilityStatus)
{
	$("#"+containerDiv+" .ver-mas").css("opacity",visibilityStatus);
}

function allocateSeeMoreIntoDiv(containerDiv,referencingDiv,separationX,separationY)
{
	if(referencingDiv == undefined) referencingDiv="div-img";
	if(referencingDiv != "") referencingDiv=" ."+referencingDiv; 
	if(separationX	  == undefined) separationX=2;
	if(separationY	  == undefined) separationY=separationX;
	var containerRef=$("#"+containerDiv+referencingDiv);
	var verMasRef	=$("#"+containerDiv+" .ver-mas");
	var posX=parseInt(containerRef.width())+parseInt(containerRef.css("left"))-parseInt(verMasRef.width())-separationX;
	var posY=parseInt(containerRef.height())+parseInt(containerRef.css("top"))-parseInt(verMasRef.height())-separationY;
	
	verMasRef.css("top",posY+"px");
	verMasRef.css("left",posX+"px");
}

function formSubmit(idSearchForm)
{
	// Sólo enviamos el formulario si el campo de búsqueda contiene algo:
	if($("#q").val() != "" && $("#q").val() != " ") $("#"+idSearchForm).submit();
}

function submitFormByEnterKeyPress(e,idForm)
{
	if(!e || e == null) var e=window.event;
	
	// Código de teclado para "Enter": 13
	if(e && e.keyCode == 13)
	{
		// Prevenimos el envío automatizado de cualquier html-form al presionar "Enter" (versión FireFox):
		if(e.stopPropagation) { e.stopPropagation(); e.preventDefault(); }
		
		// Prevenimos el envío automatizado de cualquier html-form al presionar "Enter" (resto navegadores):
		e.cancelBubble=true;
		e.returnValue =false;
		
		// Ejecutamos la función personalizada de envío de formulario (que verifica que el campo contenga algo):
		formSubmit(idForm);
	}
}

function removeSpaces(idField)
{
	var fieldValue=trim($("#"+idField).val());
	fieldValue=canviaSubstr(fieldValue," ","");
	fieldValue=canviaSubstr(fieldValue,"-","");
	$("#"+idField).val(fieldValue);
}

function animateTeachersPictures(totalFotos_arr)
{
	var fotosCenterX_arr=new Array();
	var fotosCenterY_arr=new Array();
	var angles_arr=new Array();
	
	for(var i=0;i<totalFotos_arr.length;i++)
	{
		fotosCenterX_arr.push(Math.round($("#"+totalFotos_arr[i]).offset().left+$("#"+totalFotos_arr[i]+" .div-img").width()/2));
		fotosCenterY_arr.push(Math.round($("#"+totalFotos_arr[i]).offset().top+$("#"+totalFotos_arr[i]+" .div-img").height()/2));
		
		angles_arr.push(0);
	}

	$(document).mousemove(function(e)
	{
		var posX=e.pageX;	// Mouse X position
		var posY=e.pageY;	// Mouse Y position
		
		for(var i=0;i<totalFotos_arr.length;i++)
		{
			if(posX >= $("#"+totalFotos_arr[i]).offset().left && posX <= $("#"+totalFotos_arr[i]).offset().left+$("#"+totalFotos_arr[i]).width() &&
			   posY >= $("#"+totalFotos_arr[i]).offset().top && posY <= $("#"+totalFotos_arr[i]).offset().top+$("#"+totalFotos_arr[i]).height())
			{
				$("#"+totalFotos_arr[i]+" .foto-profesor").css("left",0);
			} else {
				angles_arr[i]=Math.abs(Math.atan2((fotosCenterY_arr[i]-posY),(fotosCenterX_arr[i]-posX))*180/Math.PI-180);
				angles_arr[i]=Math.round((angles_arr[i])/45);
				if(angles_arr[i] == 8) angles_arr[i]=0;
				$("#"+totalFotos_arr[i]+" .foto-profesor").css("left",-(angles_arr[i]+1)*$("#"+totalFotos_arr[i]).height());
			}
		}
	});
}

function toogleEditableItem(idItem) {
	$("#"+idItem+"_fl").attr("type","text");
}

function compruebaFormUsuario(form) {
	var datosObligatorios_arr = new Array("nombre","apellidos","email","birthdate","sexo","tipoArtista");
	if($("#passw_1").val() != "" || $("#passw_2").val() != "") {
		datosObligatorios_arr.push("passw_1");
		datosObligatorios_arr.push("passw_2");
	} else {
		markField("passw_1",0,$("#passw_1").parent().parent());
		markField("passw_2",0,$("#passw_2").parent().parent());
	}
	
	for(var i=0;i<datosObligatorios_arr.length;i++) {
		if($("#"+datosObligatorios_arr[i]).val() == "" || $("#"+datosObligatorios_arr[i]).val() == "----") {
			markField(datosObligatorios_arr[i],2,$("#"+datosObligatorios_arr[i]).parent().parent());
		} else {
			if($("#"+datosObligatorios_arr[i]).parent().parent().attr("error") == 2) markField(datosObligatorios_arr[i],0,$("#"+datosObligatorios_arr[i]).parent().parent());
		}
	}
	
	if($("tr.item[error='1']").length > 0 || $("tr.item[error='2']").length > 0) {
		alert("Hay errores.");
	} else {
		form.submit();
	}
}

function compruebaFormVideosUsuario(form) {
	var datosObligatorios_arr = new Array();
	for(var i=0;i<form.elements.length;i++) {
		var type =form.elements[i].type;
		var id   =form.elements[i].id;
		
		if(type != "hidden" && type != "button" && type != "submit" && type != "reset" && type != "file") if(id.indexOf("_new") == -1) datosObligatorios_arr.push(id);
	}
	
	if($("#urlVid_new").val() != "" || $("#titVid_new").val() != "") {
		datosObligatorios_arr.push("urlVid_new");
		datosObligatorios_arr.push("titVid_new");
	}
	
	for(var i=0;i<datosObligatorios_arr.length;i++) {
		if($("#"+datosObligatorios_arr[i]).val() == "" || $("#"+datosObligatorios_arr[i]).val() == "----") {
			markField(datosObligatorios_arr[i],2,$("#"+datosObligatorios_arr[i]).parent().parent());
		} else {
			if($("#"+datosObligatorios_arr[i]).parent().parent().attr("error") == 2) markField(datosObligatorios_arr[i],0,$("#"+datosObligatorios_arr[i]).parent().parent());
		}
	}
	
	if($("tr.item[error='1']").length > 0 || $("tr.item[error='2']").length > 0) {
		alert("Hay errores.");
	} else {
		form.submit();
	}
}

function compruebaFormLogin(form) {
	var datosObligatorios_arr = new Array("7a_usern","7a_passw");
	
	for(var i=0;i<datosObligatorios_arr.length;i++) {
		if($("#"+datosObligatorios_arr[i]).val() == "" || $("#"+datosObligatorios_arr[i]).val() == " ") {
			markField(datosObligatorios_arr[i],2,$("#"+datosObligatorios_arr[i]).parent().parent());
		} else {
			if($("#"+datosObligatorios_arr[i]).parent().parent().attr("error") == 2) markField(datosObligatorios_arr[i],0,$("#"+datosObligatorios_arr[i]).parent().parent());
		}
	}
	
	if($("tr.item[error='1']").length > 0 || $("tr.item[error='2']").length > 0) {
		alert("Hay errores.");
	} else {
		form.submit();
	}
}

function compruebaFormRegister(form) {
	if(confirm("Al inscribirte en este cásting das permiso a Set d'Acció para facilitar los datos de contacto que aparecen en tu perfil al autor del cásting para que pueda ponerse en contacto contigo.")) {
		var datosObligatorios_arr = new Array("7a_nombre","7a_apellido","7a_mail","7a_new_usern");
		var mail=$("#"+datosObligatorios_arr[2]).val();
		for(var i=0;i<datosObligatorios_arr.length;i++) {
			if($("#"+datosObligatorios_arr[i]).val() == "" || $("#"+datosObligatorios_arr[i]).val() == " " || (i==2 && validarEmail(mail)=='ko')) {
				markField(datosObligatorios_arr[i],2,$("#"+datosObligatorios_arr[i]).parent().parent());
			} else {
				if($("#"+datosObligatorios_arr[i]).parent().parent().attr("error") == 2) markField(datosObligatorios_arr[i],0,$("#"+datosObligatorios_arr[i]).parent().parent());
			}
		}
		if($("tr.item[error='1']").length > 0 || $("tr.item[error='2']").length > 0) {
			alert("Hay errores en el formulario.");
		} else {
			form.submit();
		}
	}
}

function compruebaFormResetPassw(form) {
	var datosObligatorios_arr = new Array("email");
	
	for(var i=0;i<datosObligatorios_arr.length;i++) {
		if($("#"+datosObligatorios_arr[i]).val() == "" || $("#"+datosObligatorios_arr[i]).val() == " ") {
			markField(datosObligatorios_arr[i],2,$("#"+datosObligatorios_arr[i]).parent().parent());
		} else {
			if($("#"+datosObligatorios_arr[i]).parent().parent().attr("error") == 2) markField(datosObligatorios_arr[i],0,$("#"+datosObligatorios_arr[i]).parent().parent());
		}
	}
	
	if($("tr.item[error='1']").length > 0 || $("tr.item[error='2']").length > 0) {
		alert("Hay errores.");
	} else {
		$.ajax({
			type:	 "POST",
			url:	 pathToUtilidades+"utilidades/reset-password-to-user.php",
			data:	 "email="+$("#email").val(),
			async:	 false,
			success: function(msg) { 
							if(msg.indexOf("OK") != -1) {
								alert("Revisa tu buzón, por favor.");
							} else if(msg.indexOf("KO1") != -1) {
								alert("Debes introducir una dirección de correo.");
							} else if(msg.indexOf("KO2") != -1) {
								alert("No hay ningún usuario con esa dirección de correo.");
							} else if(msg.indexOf("KO3") != -1) {
								alert("Se ha producido un error al restaurar la contraseña.");
							} else if(msg.indexOf("KO4") != -1) {
								alert("Se ha producido un error al enviar el correo.");
							} else {
								alert("Se ha producido un error inesperado.");
							}
					 },
			error:	 function(xhr,ajaxOptions,thrownError) {
							 switch(xhr.status) {
								 case 500:
								 	// Internal Server Error
								 	alert("No se ha podido efectuar la operación solicitada debido a un error interno.");
									break;
								 default:
									alert(thrownError);
									break;
							 }
						 }
					 });
	}
}

function formateaValor(idField,formattingType) {
	var validateField = true;
	
	var valor = $("#"+idField).val();
	if(formattingType == "telefono") {
		valor = canviaSubstr(valor," ","");
		$("#"+idField).val(valor);
	} else if(formattingType == "passw") {
		if($("#"+idField+"_1").val() != "" && $("#"+idField+"_2").val() != "") {
			if($("#"+idField+"_1").val() != $("#"+idField+"_2").val()) {
				markField(idField+"_1",1,$("#"+idField+"_1").parent().parent());
				markField(idField+"_2",1,$("#"+idField+"_2").parent().parent());
			} else {
				markField(idField+"_1",0,$("#"+idField+"_1").parent().parent());
				markField(idField+"_2",0,$("#"+idField+"_2").parent().parent());
			}
		}
		validateField = false;
	} else if(formattingType == "youtube") {
		if($("#"+idField).val().indexOf("http://") != -1 && $("#"+idField).val().indexOf("youtube") != -1) {
			var shortenedURL01_arr = $("#"+idField).val().split("watch?v=");
			var shortenedURL02_arr = shortenedURL01_arr[1].split("&");
			$("#"+idField).val(shortenedURL02_arr[0]);
		}
		
		if($("#"+idField).val().length > 20) $("#"+idField).val("");
		validateField = false;
	}
	
	if(validateField) (!verifyField(valor,formattingType) && valor != "") ? markField(idField,1,$("#"+idField).parent().parent()) : markField(idField,0,$("#"+idField).parent().parent());
}

function formateaVideo(idField_idVideo,idField_titleVideo) {
	$("#"+idField_titleVideo).val("Obteniendo datos...");
	
	formateaValor(idField_idVideo,"youtube");
	
	if($("#"+idField_idVideo).val() != "") {
		$.ajax({
			type:	 "POST",
			url:	 pathToUtilidades+"utilidades/get-youtube-video-info.php",
			data:	 "vidID="+$("#"+idField_idVideo).val()+"&returnItem=title",
			async:	 false,
			success: function(msg) {
										if(msg.indexOf("Warning") == -1) {
											$("#"+idField_titleVideo).val(msg);
										} else {
											$("#"+idField_titleVideo).val("ERROR");
										}
									}
		});
	} else {
		$("#"+idField_titleVideo).val("");
	}
}

function dropVideoFromUser(idVideo,idField) {
	if(confirm("Seguro que deseas eliminar este vídeo de tu lista?\n\n- "+$("#titVid_"+idField).val())) {
		$.ajax({
			type:	 "POST",
			url:	 pathToUtilidades+"utilidades/remove-youtube-video-from-user.php",
			data:	 "idVideo="+idVideo,
			async:	 false,
			success: function(msg) {
				if(msg == "OK") {
					$("#tr-"+idField+" img").unwrap();
					$("#tr-"+idField+" img").fadeTo(1000,0.3);
					$("#tr-"+idField+" input").attr("disabled",true);
					$("#tr-"+idField).fadeTo(1000,0.5);
				}
			}
		});
	}
}

function dropPictFromUser(idFoto,idField) {
	var rutaFoto = $("#td-"+idField+" .galleryImg").css("background-image").split("/");
	rutaFotoOK = rutaFoto[rutaFoto.length-1].split("_th.");
	
	if(confirm("Seguro que deseas eliminar esta foto de tu galeria?")) {
		$.ajax({
			type:	 "POST",
			url:	 pathToUtilidades+"utilidades/remove-picture-from-user.php",
			data:	 "idFoto="+idFoto+"&rutaFoto="+rutaFotoOK[0],
			async:	 false,
			success: function(msg) {
				if(msg == "OK") {
					$("#td-"+idField+" img").unwrap();
					$("#td-"+idField+" img").fadeTo(1000,0.3);
					$("#td-"+idField+" input").attr("disabled",true);
					$("#td-"+idField).fadeTo(1000,0.5);
				}
			}
		});
	}
}

function dropCVFromUser(idArtista) {
	if(confirm("Seguro que deseas eliminar tu CV?")) {
		$.ajax({
			type:	 "POST",
			url:	 pathToUtilidades+"utilidades/remove-cv-from-user.php",
			data:	 "idArtista="+idArtista,
			async:	 false,
			success: function(msg) {
						if(msg == "OK") {
							alert("Tu CV se ha eliminado correctamente.");
							self.location=self.location;
						} else {
							alert("NO se ha podido eliminar tu CV.");
						}
					}
		});
	}
}

function markField(idField,status,containerItem) {
	var bgField;
	var colorText;
	
	switch(status) {
		case 0:
			// CAMPO OK
			bgField = "#FFFFFF";
			colorText = "#666666";
			break;
		case 1:
			// CAMPO ERRÓNEO
			bgField = "#F9E5C2";
			colorText = "#D18500";
			break;
		case 2:
			// CAMPO VACÍO
			bgField = "#F9C2C2";
			colorText = "#9B0000";
			break;
	}
	containerItem.attr("error",status);
	containerItem.css("background-color",bgField);
	$("#"+idField).css("color",colorText);
}

function logout() {
	if(confirm("¿Seguro que deseas salir de la apliación?")) {
		$.ajax({
			type:	 "POST",
			url:	 pathToUtilidades+"utilidades/logout.php",
			success: function(msg) {
						 if(msg == "OK") {
							 alert("Esperamos verte pronto de nuevo por aquí...");
							 self.location=rutaAbsoluta+"index.php";
						 } else {
							 alert("No se ha podido cerrar la sesión...");
						 }
					 }
		});
	}
}

function validarEmail(valor) {
	var test = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var emailReg = new RegExp(test);
	
	if (emailReg.test(valor)){
		return 'ok';
	} else {
		return 'ko';
}
}
