function MM_openBrWindow(theURL,winName,features) { w_h=window.open(theURL,winName,features); w_h.focus(); $("body").addClass($("body").attr("class")+" bmin b5 nopubli"); return false;} 
function EliminaFrames() { if (self.parent.frames.length != 0) self.parent.location=document.location.href;}
function addbookmark(bookmarkurl,bookmarktitle){window.external.AddFavorite(bookmarkurl,bookmarktitle);}

$(function(){ //$(document).ready
	num = $("form[id!='ide'][id!='poll1']").length;

	// div -> para explorer
	if(num>0 && (document.activeElement.nodeName == "BODY" || document.activeElement.nodeName == "DIV")){ 
		elem = $("form[id!='ide'][id!='poll1']")[num-1]; 
		fc = $(elem).find(":input:visible[type=text]")[0];
		//autofocus para formularios que no sean el del registro
		idelem = $(elem).attr("id");
		if(idelem != "poll1") $(fc).focus();
	}

	$(':input[placeholder]').placeholder(); //los eventos no pueden asignarse hasta que no este todo el DOM cargado.
	
});

function cambiar_div_contenido(url,div){
	$.ajax({ url: url,
		success: function(data){ $("#"+div).html(data); },
		error: function(){
			$("#"+div).html(Text.error);
			$("<a>").appendTo("#"+div).attr("href","javascript:cambiar_div_contenido('"+url+"','"+div+"')" ).text(Text.reintentar);
		}
	});
	$("#"+div).unbind();
}

function cambiar_div_loading_time(url,data,div,img,texto){
	$("#"+img).html(texto);
	setTimeout("cambiar_div_loading('"+url+"','"+data+"','"+div+"','"+img+"','"+texto+"')",5000);
}

function cambiar_div_loading(url,data,div,img,texto){
	$("#"+img).ajaxStart(function(){ $(this).html(texto); });
	
	$.ajax({ url: url, data: data,
		success: function(dato){ $("#"+div).html(dato); },
		error: function(){
			$("#"+img).html(Text.error);
			$("<a>").appendTo("#"+img).attr("href","javascript:cambiar_div_loading('"+url+"','"+data+"','"+div+"','"+img+"','"+texto+"')").text(Text.reintentar);
		}
	}); 
	$("#"+img).unbind();
}

//COOKIES

// name - nombre de la cookie deseada
// devuelve un string conteniendo el valor de la cookie especificada o null si la cookie no existe
function getCookie(name){
	var cname = name + "=";               
	var dc = document.cookie;             
	if (dc.length > 0) {              
		begin = dc.indexOf(cname);       
		if (begin != -1) {           
		  begin += cname.length;       
		  end = dc.indexOf(";", begin);
		  if (end == -1) end = dc.length;
			return unescape(dc.substring(begin, end));
		} 
	}
	return null;
}

// name - nombre de la cookie
// value - valor de la cookie
// [expires] - fecha de caducidad de la cookie (por defecto, el final de la sesión)
// [path] - camino para el cual la cookie es válida (por defecto, el camino del documento que hace la llamada)
// [domain] - dominio para el cual la cookie es válida (por defecto, el dominio del documento que hace la llamada)
// [secure] - valor booleano que indica si la trasnmisión de la cookie requiere una transmisión segura
// al especificar el valor null, el argumento tomará su valor por defecto
function setCookie(name, value, expires, path, domain, secure) {
	document.cookie = name + "=" + escape(value) + 
	((expires == null) ? "" : "; expires=" + expires) + 
	((path == null) ? "" : "; path=" + path) +
	((domain == null) ? "" : "; domain=" + domain) +
	((secure == null) ? "" : "; secure"); //expires
}

function caduca(dias) {  
	var hoy = new Date(); //coge la fecha actual
	var msEnXDias = eval(dias) * 24 * 60 * 60 * 1000; //pasa los dias a mseg
	
	hoy.setTime(hoy.getTime() + msEnXDias); //fecha de caducidad: actual + caducidad
	return (hoy.toGMTString());
}  

// name - nombre de la cookie
// [path] - camino de la cookie (debe ser el mismo camino que el especificado al crear la cookie)
// [domain] - dominio de la cookie (debe ser el mismo dominio que el especificado al crear la cookie)
// se considera el camino y dominio por defecto si se especifica null o no se proporcionan argumentos
function delCookie(name,path,domain) {
	 if (getCookie(name)) {
		document.cookie = name + "=" +
		((path == null) ? "" : "; path=" + path) +
		((domain == null) ? "" : "; domain=" + domain) +
		"; expires=Thu, 01-Jan-70 00:00:01 GMT";
	}
}

function cerraraviso(codigo,caducidad,user){  
	var name = codigo+"-"+user;
	caducidad = caduca(caducidad);
	setCookie(name,"1",caducidad,"/",null,null);
	borrar_div(codigo);
}


//MOSTRAR EL CONTENIDO COMPLETO DE UN MENSAJE. Con el envío se marca el mensaje como "leido".
function marcar_leido(id){
	var estado = $("#estadomen"+id).val(); 
	$.post("/messages/mensajescontrol.php",{accion: "marcar", mensaje: id, estado: estado},
		function(data){ 
			$("#msn"+id)[data==1 ? "addClass" : "removeClass"]("leido");
			
			$("#estadomen"+id).val(data);
			$("#marcarleido"+id).attr("href","/messages/mensajescontrol.php?accion=marcar&mensaje="+id+"&estado="+data);
		}
	);
}

var e_more,e_less;
//solo muestra el mensaje
function mostrar_mensaje(id){
	var estado = $("#estadomen"+id).val();
	if(estado==0) marcar_leido(id);
	
	e_more = $("#enlacemore"+id).clone(true).attr("id","#enlaceimgmore"+id).removeClass().html(Text.img_flecha_desp_der);
	e_less = $("#less"+id).clone(true).attr("id","#enlaceimgmore"+id).removeClass().html(Text.img_flecha_desp_aba);
	
	slideDownMensaje(id);
}

function slideDownMensaje(id){
	//$("#more"+id).hide("fast", function(){ $("#contenido_msn"+id).slideDown("slow"); });
	$("#more"+id).css("display","none"); 
	
	$("#contenido"+id).css("display","none");
	$("#contenido_msn"+id).css("display","inline");
	$("#contenido"+id).slideDown("slow");
	
	$("#imgmore"+id).children().replaceWith(e_less);
}

function mostrar(id){
	$("#"+id).slideToggle("normal");
}


function cerrar_mensaje(id){ 
	//$("#contenido_msn"+id).slideUp("slow", function(){ $("#more"+id).show("fast"); });

	$("#contenido"+id).slideUp("slow",function(){
		$("#contenido_msn"+id).hide("fast");
		$("#contenido"+id).slideDown(150);
		$("#imgmore"+id).children().replaceWith(e_more);
		$("#more"+id).css("display","inline");
	});
}

//escribe un icono gestual en el mensaje
function inserticon(emot){
	var input = document.send.cuerpo;
	insertinput(input,emot,"","");
	ismaxlength(0);
}

function inserturl(urltext){
	var input = document.send.cuerpo;
	insertinput(input,"url","",urltext);
	ismaxlength(0);
}

//comprobar el número de carácteres que se escriben en el textarea (mensaje).
//num se refiere al textarea => num=0 es el primer textarea
function ismaxlength(num){ 
	mlength = $("form [name='maxcaracteres']").val();
	obj = $("form textarea")[num];

	if(obj.value.length > mlength) {
		var input = obj;
		if(typeof input.selectionStart != 'undefined'){ //firefox
			if(typeof input.scrollTop != 'undefined') var st=input.scrollTop;
			input.value = input.value.substring(0,mlength);
			input.focus();
			if(typeof input.scrollTop != 'undefined' && st!=0) input.scrollTop=st;
			input.setSelectionRange(mlength,mlength);
		}else input.value = input.value.substring(0,mlength); //explorer
	}
	$("#size").text(obj.value.length+" de "+mlength);
}

function insertinput(input,emot,coma,urltext){
	sel = false;
	
	if(emot=="url") {
		emot = urltext;
		sel = true;
	}
	
	if(typeof document.selection != 'undefined' && document.selection){
		var str = document.selection.createRange().text;
		input.focus();
		var sel = document.selection.createRange();
		sel.text = str+coma+emot;
		sel.select();
		return;
	}else if(typeof input.selectionStart != 'undefined'){ //firefox
		if(typeof input.scrollTop != 'undefined'){	var st=input.scrollTop;	}
		var start = input.selectionStart;
		var end = input.selectionEnd;
		var insText = input.value.substring(start, end);
		if(end-start) {
			lenInsText = insText.length;
			insText = "";
		}
		input.value = input.value.substr(0, start) + insText + coma + emot + input.value.substr(end);
		input.focus();
		if(typeof input.scrollTop != 'undefined'){ input.scrollTop=st; }
		end = end+emot.length+coma.length; 

		if(sel) { //para la url
			start = start + 1;
			end = start + (emot.length+coma.length)-2;
		}else start = end;
	
		input.setSelectionRange(start,end);
		return;
	}
	else{
		input.value+=coma+emot;
		return;
	}	
}

function insertnom(nom){ 
	var coma = "";
	if($("#to_name_img").html().indexOf(nom+" ") == -1){
		$("<span>").appendTo("#to_name_img").attr("id","p"+nom).text(" "+nom+" ");
		$("<a>").appendTo("#p"+nom).attr("href","/messages/send.php?accion=quitar&grupo="+$("#grupo").val()+"&user="+nom).text("QUITAR");
		
		$("#to_name_img a").bind("click",function(e){ deletenom(nom); return false; })
		
		if($("#to_name").val()!="") coma = ",";
		$("#to_name").val($("#to_name").val()+coma+nom);
		$("#"+nom).hide("slow");
	}
}

function deletenom(nom){
	$("#p"+nom).remove(); 
	
	text = $("#to_name").val(); 
	posnom = text.indexOf(nom);
	subtext = text.substr(posnom); 
	posfin = subtext.indexOf(",");
	if(posfin == -1) posfin = nom.length;
	
	$("#to_name").val( (text.substr(0,posnom)+text.substr(posnom+posfin+1)) );
	$("#"+nom).show("slow");
}

//REPUTACION
var timerep = "";
function votar(usuario,usuvotado,voto,md5){
	$("#reputacion").html(Text.img_loading);
	if(timerep!="") clearTimeout(timerep);
	timerep = setTimeout("guardarvoto('"+usuario+"','"+usuvotado+"','"+voto+"','"+md5+"')",1000);
}

function guardarvoto(usuario,usuvotado,voto,md5){
	$("#reputacion").ajaxStart(function(){ $(this).html(Text.img_loading); });
	
	$.ajax({ type: "POST",
		url: "/player/reputacion_control.php",
		data: "usuario="+usuario+"&usuvotado="+usuvotado+"&voto="+voto+"&md5="+md5+"&tipo=ajax",
		success: function(data){ $("#reputacion").html(data); },
		error: function(){ $("#reputacion").html(Text.no_registro_voto); }
	});
}

//ALBUM Y AVISO
function borrar_div(div){ $("#"+div).slideUp("slow"); }
function borrar_globo(div){ $("#"+div).fadeOut("slow"); }

//globos borrar album
var idalbant = 0;
function pregunta_borrar_album(idalbum){
	hrefborrar = "/player/photos/funciones_img.php?accion=borrar_album&album="+idalbum;
	if(idalbant != 0) borrar_globo("alb"+idalbant);
	idalbant = idalbum;
	
	display_globo("alb"+idalbum,Text.borrar_album,hrefborrar);
}

function pregunta_borrar_mensajes(estado){
	hrefborrar = "/messages/mensajescontrol.php?accion=borratodos&amp;estado="+estado;
	display_globo("men",Text.borrar_mensajes,hrefborrar);
}

function display_globo(div,texto,hrefborrar){
	$("#"+div).fadeIn("slow");
	$("#"+div).html("<div class='gl1'><div><p>"+texto+"</p><p class='nomargin'><a href='"+hrefborrar+"' class='boton'>"+Text.si+"</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href='#' class='boton' onclick='borrar_globo(\""+div+"\");return false;'>"+Text.no+"</a></p></div></div><div class='gl2'>&nbsp;</div>");
}

/*MAPA
function funcionGeocoder(address){
	var geocoder = new GClientGeocoder();
	geocoder.getLatLng(address,function(result){
		if (result != null) {
			$("lat").setHTML(result.Point.coordenates[1]);
			$("lng").setHTML(result.Point.coordenates[0]);
		}
  	});
}*/

//TORNEO
function cambia_combo_torneo(texto){ 
	cadena = "";
	check = $(":checked").attr("id");
	
	if(check=="mod1") { ini = 8; fin = 128; suma = 0; }
	if(check=="mod2") { ini = 3; fin = 12; suma = 1; }
	if($("#parejas").attr("checked")) { ini *= 2; fin *= 2; suma *=2; }
	
	$("#participantes").empty();
	if(texto!="") $("<option>").appendTo("#participantes").val(0).text(texto);
	
	for(i=ini;i<=fin;i+=suma){
		$("<option>").appendTo("#participantes").val(i).text(i);
		if(check=="mod1") suma = i;
	}
}

function opciones_torneo(accion,texto){
	if(accion=='mostrar') {
		$("#criterios_torenos").css("display","block");
		cambia_combo_torneo(texto);
	}else $("#criterios_torenos").css("display","none");
}

//VALIDAR USUARIO PARA ACTIVACION
function validar_usuario(fieldID,form){
	var valor = $("#"+fieldID).val();
	
	$("#"+fieldID+"icon").ajaxStart(function(){ $(this).html(Text.img_loading); });
	
	$.post("/act/validacioncontrol.php",{ fieldID: valor }, function(data){
		$("#"+fieldID+"icon").html("");
		simbol = data.split("+");
		switch(simbol[0]){
			case "0": //error
				$("#"+fieldID+"Failed").css("display", "block").html(simbol[1]);
				$("#"+fieldID).removeClass().addClass("error"); 
				break;
			case "1": 
				$("#"+fieldID+"Failed").css("display","none");
				$("#"+fieldID).removeClass().addClass("campotxt");	
				
				if(form!=""){
					$(form+":submit").attr("disabled",true); //deshabilita el botón para que no se envien más peticiones
					disableButton = setTimeout("enableButton('"+form+"')",5000); //5 segundos
					valid(form);
				}
				break;
		}		
	});		
}

function enableButton(form){
	$(form+":submit").removeAttr("disabled");
}

function cambiaClase(id, class1, class2){
	if( $("#"+id).hasClass(class1) ) $("#"+id).removeClass(class1).addClass(class2);
	else if( $("#"+id).hasClass(class2) ) $("#"+id).removeClass(class2).addClass(class1);
	else $("#"+id).addClass(class1);
}

function cambiar_texto(defect,classdef,classtext){
	var input = $("#bustxt");
	if(input.val() == defect){
		input.val("");
		input.keydown(function(){ this.addClass(classtext);	});
		
		input.blur(function(){
			if(input.val() == ""){
				input.addClass(classdef);
				input.val(defect);
			}
		});
	}
}

//Placeholder INPUT
$.fn.placeholder = function() {
	//first test for native placeholder support before continuing
	return ("placeholder" in document.createElement("input")) ? this : this.each(function() {
		//local vars
		var $input = $(this),
			inputVal = $.trim($input.val()),
			inputWidth = $input.width(),
			inputHeight = $input.height(),
			inputId = $input.attr("id"),
			placeholder = $("#lab"+inputId);

		$input.attr("id", inputId).after(placeholder); //añadimos el label

		if(!inputVal){
			if(document.activeElement.id != inputId) placeholder.css("display","block");
		};
	
		//hide placeholder on focus
		$input.focus(function(){
			$input.next().hide();
		});
		
		//show placeholder if the input is empty
		$input.blur(function(){
			if(!$.trim($input.val())) $input.next().show();
		});
		
		new function(e){
			$("form[id='ide']").submit(function() { //oculta el placeholder al enviar el formulario
				$input.next().hide();
				return true;
			});
		}($(this));
		
	});
};