var HERRAMIENTAS = {};

CONTENIDO.titulo = "";
CONTENIDO.url = window.document.location.href.replace(/[#?].*$/,"");

HERRAMIENTAS.acceso = function(id_contenido,id_tipo) {
	$.getJSON("/backend/HERRAMIENTAS.acceso.php",{id_contenido: id_contenido, id_tipo: id_tipo});
};

HERRAMIENTAS.visitas = function() {
	if(typeof(CONTENIDO) != "undefined") {
		$.getJSON(
			"/backend/HERRAMIENTAS.visitas.php",
			{id_contenido: CONTENIDO.id_contenido, id_tipo: CONTENIDO.id_tipo},
			function(datos) {
				var salida_obj = $('<div id="articulo-visitas"></div>');
				if(datos.accesos > 0) $(salida_obj).append((datos.accesos > 1) ? "Esta página ha sido vista " + datos.accesos + " veces. " : "Esta página ha sido vista 1 vez. ");
				if(datos.visitas > 0) {
					$(salida_obj).append((datos.visitas > 1) ? "La han leído <strong>" + datos.visitas + " usuarios</strong> registrados" : "La ha leído <strong>1 usuario</strong> registrado");
					// Saco las relaciones del usuario
					if(USUARIOS.sesion) {
						var relaciones = USUARIOS.relaciones(USUARIOS.sesion.usuario);
						var seguidos = [];
						$("relaciones seguidos usuario",relaciones).each(function() {seguidos.push($("id_usuario",this).text())});
						// Recojo los amigos que han visitado el contenido y saco la información
						var seguidos_visitas = [];
						var seguidos_visitas_mas = [];
						$(datos.usuarios).each(
							function() {
								usuario = this.toString();
								if($.inArray(usuario,seguidos) > -1) {
									if(seguidos_visitas.length < 5) seguidos_visitas.push(usuario);
									seguidos_visitas_mas.push(usuario);
								}
							}
						);
						if(seguidos_visitas.length > 0) {
							$(salida_obj).append(', incluyendo <strong>' + seguidos_visitas_mas.length + '</strong> de tus amigos. <ul id="articulo-visitas-amigos"></ul>');
							$(seguidos_visitas).each(
								function(indice) {
									var usuario_xml = USUARIOS.datos(this);
									var nombre = ($("usuario nombre",usuario_xml).text() != "") ? $("usuario nombre",usuario_xml).text() : $("usuario id_usuario",usuario_xml).text();
									var avatar = ($("usuario avatar",usuario_xml).text() != "") ? $("usuario avatar",usuario_xml).text() : "generico.jpg";
									var amigo_obj = $('<li><a href="' + USUARIOS.url_comunidad + '/perfil.php?user=' + this + '"><img src="' + USUARIOS.url_comunidad + '/avatares/que/resize/30x30/' + avatar + '" width="25" height="25" alt="' + nombre + '"></a></li>');
									$("a",amigo_obj).hover(
										function() {
											$("#articulo-visitas-amigos .art-amigo-datos").remove();
											$(this).after('<span class="art-amigo-datos"><span class="esquina"></span><span class="avatar"><img src="' + USUARIOS.url_comunidad + '/avatares/que/resize/30x30/' + avatar + '" width="25" height="25" alt="' + nombre + '" /></span><h4>' + nombre + '</h4><p>' + $("usuario bio",usuario_xml).text() + '</p></span>');
										},
										function () {$("#articulo-visitas-amigos .art-amigo-datos").remove()}
									);
									$("#articulo-visitas-amigos",salida_obj).append(amigo_obj);
								}
							);
							if(seguidos_visitas_mas.length > 0) {
								$("#articulo-visitas-amigos",salida_obj).append('<li class="av_lnk"><a href="javascript:;" class="av_lnk_a jq-visitas-mas">Ver todos</a>');
								$("a.jq-visitas-mas",salida_obj).toggle(function() {HERRAMIENTAS.cajaUsuarios($(this).parent("li"),seguidos_visitas_mas,"Amigos que han leído esta noticia")},function() {$(this).parent("li").removeClass("activo")});
							}
						}
						else {$(salida_obj).append('.');}
					}
					else {$(salida_obj).append('. <a href="javascript:;" onclick="LOGIN.login()">Entra</a> para ver si ' + ((datos.visitas > 1) ? "alguno de ellos es tu amigo." : "si es tu amigo."));}
				}
				else {if(!USUARIOS.sesion) {$(salida_obj).append('<a href="javascript:;" onclick="LOGIN.login()">Entra</a> para que tus amigos sepan que la has leído.');}}
				
				$("#articulo-visitas").replaceWith(salida_obj);
			}
		);
	}
};

HERRAMIENTAS.autor = function(usuario) {
	USUARIOS.datos(
		usuario,
		{
			async: true,
			success: function(xml) {
				var salida_obj = $('<span id="articulo-autor-queid"></span>');
				var nombre = ($("usuario nombre",xml).text() != "") ? $("usuario nombre",xml).text() : $("usuario id_usuario",xml).text();
				var avatar = ($("usuario avatar",xml).text() != "") ? $("usuario avatar",xml).text() : "generico.jpg";
				$(salida_obj).append('<img src="' + USUARIOS.url_comunidad + '/avatares/que/resize/30x30/' + avatar + '" width="25" height="25" alt="' + nombre + '"> <a href="' + USUARIOS.url_comunidad + '/perfil.php?user=' + $("usuario id_usuario",xml).text() + '">' + nombre + '</a>');
				$("#articulo-autor-queid").replaceWith(salida_obj);
			}
		}
	);
};

HERRAMIENTAS.redes = function() {
	if($("#articulo-redes-sociales").length == 1) {
		var salida_jq = $('<div id="articulo-redes-sociales"><span class="art_s_FB"></span><span class="art_s_TW"></span><span class="art_s_TU"></span></div>');
		// Facebook
		$(".art_s_FB",salida_jq).append('<fb_datos url="' + GENERAL.str_replace('http://' + location.host, '', document.location.href) + '" seccion="' + $('.nombre_seccion > a').html() + '" tipo="noticia"></fb_datos>');
		$(".art_s_FB",salida_jq).append('<fb:like href="' + document.location.href + '" show_faces="false" action="recommend" layout="button_count"></fb:like>');
		// Twitter
		$(".art_s_TW",salida_jq).append('<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" data-via="quediario" data-lang="es" data-related="quediario:El diario Qué! en internet. Descubramos juntos lo curioso, lo divertido y lo útil de la actualidad.">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>');
		$(".art_s_TU",salida_jq).append('<a href="http://www.tuenti.com/share?url=' + CONTENIDO.url + '" target="_blank">En Tuenti</a>');
		$("#articulo-redes-sociales").replaceWith(salida_jq);
	}
}

HERRAMIENTAS.gusta = function(gusta) {
	var salida_obj = $('<div id="articulo-gusta"></div>');
	var fb_datos = '<fb_datos url="' + GENERAL.str_replace('http://' + location.host, '', document.location.href) + '" seccion="' + $('.nombre_seccion > a').html() + '" tipo="noticia"></fb_datos>';
	
	$(salida_obj).append(fb_datos + '<fb:like href="' + document.location.href + '" show_faces="false" width="365" action="recommend"></fb:like>');
	$("#articulo-gusta").replaceWith(salida_obj);
};

HERRAMIENTAS.gustaComentarios = function(gusta, id_contenido) {
	if(typeof(CONTENIDO) != "undefined") {
		$.getJSON(
			"/backend/HERRAMIENTAS.gusta.php",
			{id_contenido: id_contenido, id_tipo: 9999, gusta: gusta},
			function(datos) {
				//GENERAL.console(datos);
				var usuarios_gusta = datos.usuarios.length;
				var gusta = $('#herramientas-' + id_contenido).find('.qah_span > a');
				if(usuarios_gusta > 0) {
					gusta.html(usuarios_gusta + ((usuarios_gusta == 1) ? ' persona' : ' personas'));
					gusta.attr('href', 'javascript:;');
					gusta.toggle(
						function() {
							HERRAMIENTAS.cajaUsuarios($(this).parent('.qah_span'),datos.usuarios,"Usuarios a los que les gusta este comentario");
						},
						function() {
							$(this).parent(".qah_gusta").removeClass("activo")
						}
					);
					$('#herramientas-' + id_contenido).find('.qah_gusta').show();
				}
				else {
					$('#herramientas-' + id_contenido).find('.qah_gusta').hide();
				}

				var gusta_enlace = $('#herramientas-' + id_contenido).find('.qach_gusta a');

				if(GENERAL.in_array(USUARIOS.sesion.usuario, datos.usuarios)) {
					gusta_enlace.html('Ya No Me Gusta');
					gusta_enlace.unbind('click');
					gusta_enlace.click(function() {
							HERRAMIENTAS.gustaComentarios('NO', id_contenido);
						}
					);
				}
				else {
					gusta_enlace.html('Me Gusta');
					gusta_enlace.unbind('click');
					gusta_enlace.click(function() {
							if(USUARIOS.sesion) {HERRAMIENTAS.gustaComentarios('SI', id_contenido);}
							else {LOGIN.login(function() {HERRAMIENTAS.gustaComentarios('SI', id_contenido)});}
						}
					);
				}
			}
		);
	}
};

HERRAMIENTAS.cajaUsuarios = function(obj,usuarios,titulo) {
	if($(".caja-desplegable",obj).length == 1) {
		inicio = $(".caja-desplegable .art-amigo-leido a.jq-usuario",obj).length;
		$(".caja-desplegable .art-amigo-leido span.jq-usuarios-mas",obj).remove();
	}
	else {
		$(obj).append('<div class="caja-desplegable"><div class="contenido-desplegable"><h5 class="titulo-cajadesplegable">' + titulo + ' <a class="btn_cerrar" rel="nofollow" href="javascript:;">Cerrar</a></h5><div class="art-amigo-leido"></div></div></div>');
		$(".caja-desplegable a.btn_cerrar",obj).click(function() {$(obj).removeClass("activo");});
		inicio = 0;
	}
	for(i=inicio;(i<(inicio+5) && i<usuarios.length);i++) {
		$(".caja-desplegable .art-amigo-leido",obj).append(((i == 0) ? "" : ", ") + '<a href="' + USUARIOS.url_comunidad + '/perfil.php?user=' + usuarios[i] + '" class="jq-usuario">' + usuarios[i] + '</a>');
	}
	var resto = usuarios.length - i;
	if(resto > 0) {
		$(".caja-desplegable .art-amigo-leido",obj).append('<span class="jq-usuarios-mas"> y <a href="javascript:;" style="font-weight:normal;" class="jq-usuarios-mas">' + ((resto > 5) ? '5' : resto) + ' personas más</a></span>');
		$(".caja-desplegable .art-amigo-leido a.jq-usuarios-mas",obj).click(function() {HERRAMIENTAS.cajaUsuarios(obj,usuarios,titulo)});
	}
	$(obj).addClass("activo");
};

HERRAMIENTAS.compartir = function() {
	if(typeof(CONTENIDO) != "undefined") {
		
		switch (CONTENIDO.id_tipo) {
			case 26: 
				var texto = 'foto';
				break;
			case 28: 
				var texto = 'galería';
				break;
			default:
				var texto = 'noticia';
		}
		
		//var texto = ((CONTENIDO.id_tipo != null) && (CONTENIDO.id_tipo == 26)) ? "foto" : "noticia";
		
		if((CONTENIDO != null) && (CONTENIDO.id_tipo != null) && CONTENIDO.id_tipo == 45) { // Videos
			var salida_html =	'<h5 class="acn-titulo">Compartir ' + texto + '</h5>\n' +
										'<ul>\n' +
										'	<li id="acn1">\n' +
										'		<a href="javascript:;" onclick="if($(\'#acn1\').hasClass(\'activo\')) $(\'#acn1\').removeClass(\'activo\'); else $(\'#acn1\').addClass(\'activo\');">Enviar por email</a>\n' +
										'		<div class="caja-desplegable">\n' +
										'			<div class="contenido-desplegable">\n' +
										'				<h5 class="titulo-cajadesplegable">Enviar a un amigo por mail<a href="javascript:;" rel="nofollow" class="btn_cerrar" onclick="$(this).parents(\'#acn1\').removeClass(\'activo\')">Cerrar</a></h5>\n' +
										'				<form class="formenvio" name="frmEnvioAmigo">\n' +
										'					<p class="clearfix"><label><span class="label">De</span> <input type="text" class="rellenado' + (USUARIOS.sesion ? ' focus' : '') + '" name="email_remitente" value="' + (USUARIOS.sesion ? USUARIOS.sesion.email : 'Mi correo electrónico') + '" onclick="if(!$(this).hasClass(\'focus\')) {$(this).addClass(\'focus\');$(this).val(\'\');}"/></label></p>\n' +
										'					<p class="clearfix"><label><span class="label">Para</span> <input type="text" name="email_destinatario" value="Correo electrónico de tu amigo" onclick="if(!$(this).hasClass(\'focus\')) {$(this).addClass(\'focus\');$(this).val(\'\');}"/></label></p>\n' +
										'					<p class="clearfix"><label><span class="label">Texto</span> <textarea name="comentario"></textarea></label></p>\n' +
										'					<p class="clearfix"><button type="button" onclick="HERRAMIENTAS.enviar(window.document.frmEnvioAmigo)" class="boton">Enviar</button></p>\n' +
										'				</form>\n' +
										'			</div>\n' +
										'		</div>\n' +
										'	</li>\n' +
										'	<li id="acn2"><a href="http://www.facebook.com/share.php?u=' + CONTENIDO.url + '" onclick="return fbs_click()">Facebook</a></li>\n' +
										'	<li id="acn3"><a href="http://twitthis.com/twit?url=' + CONTENIDO.url + '&title=' + CONTENIDO.titulo + '">Twitter</a></li>\n' +
										'	<li id="acn4"><a href="http://meneame.net/submit.php?url=' + CONTENIDO.url + '">Menéame</a></li>\n' +
										'	<li class="acn-vermas" id="articulo-compartir-mas">\n' +
										'		<a href="javascript:" onclick="if($(\'#articulo-compartir-mas\').hasClass(\'activo\')) $(\'#articulo-compartir-mas\').removeClass(\'activo\'); else $(\'#articulo-compartir-mas\').addClass(\'activo\');" class="acn-vermas-a">Ver más</a>\n' +
										'		<div class="caja-desplegable">\n' +
										'			<div class="contenido-desplegable">\n' +
										'				<h5 class="titulo-cajadesplegable">Compartir noticia <a href="javascript:;" rel="nofollow" class="btn_cerrar" onclick="$(\'#articulo-compartir-mas\').removeClass(\'activo\')">Cerrar</a></h5>\n' +
										'				<div class="acn_mas_compatir yui-gb">\n' +
									'						<ul class="clearfix">\n' +
									'							<li id="acn5"><a href="javascript:;" onclick="ms_click(\'' + CONTENIDO.titulo + '\',\'\',\'' + CONTENIDO.url + '\',\'\')">MySpace</a></li>\n' +
									'							<li id="acn6"><a href="http://www.google.com/bookmarks/mark?op=edit&bkmk=' + CONTENIDO.url + '&title=' + CONTENIDO.titulo + '">Google</a></li>\n' +
									'							<li id="acn7"><a href="http://tec.fresqui.com/post?url=' + CONTENIDO.url + '&title=' + CONTENIDO.titulo + '">Fresqui</a></li>\n' +
									'							<li id="acn8"><a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=' + CONTENIDO.url + '">Yahoo!</a></li>\n' +
									'							<li id="acn9"><a href="http://del.icio.us/post?title=' + CONTENIDO.titulo + '&url=' + CONTENIDO.url + '">Delicious</a></li>\n' +
									'							<li id="acn10"><a href="#">MSN Reporter</a></li>\n' +
									'						</ul>\n' +
										'				</div>\n' +
										'			</div>\n' +
										'		</div>\n' +
										'	</li>\n' +
										'</ul>';
		} else {
			var salida_html = '<div class="art_social">\n' +
									'<span class="art_s_FB">\n' +
										'<fb:like href="' + CONTENIDO.url + '" layout="button_count" action="recommend"></fb:like>\n' +
									'</span>\n' +
									'<span class="art_s_TW">\n' +
										'<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" data-via="quediario" data-lang="es">Tweet</a>\n' +
									'</span>\n' +
									'<span class="art_s_GO">\n' +
									'	<g:plusone size="medium"></g:plusone>\n' +
									'</span>\n' +
									'<span class="art_s_TU">\n' +
										'<a href="http://www.tuenti.com/share?url=' + CONTENIDO.url + '" target="_blank">En Tuenti</a>\n' +
									'</span>\n' +
								'</div>';
		}
		
		$("#articulo-compartir-noticia").html(salida_html);
	}
};

HERRAMIENTAS.enviar = function(frm) {
	var email_remitente = frm.email_remitente.value;
	var email_destinatario = frm.email_destinatario.value;
	var comentario = frm.comentario.value;
	if (!email_remitente || !email_destinatario) {
		alert('No ha rellenado todos los campos');
		return false;
	}
	if (!GENERAL.checkEmail(email_remitente)) {
		alert('El email del remitente no es correcto');
		frm.email_remitente.focus();
		return false;
	}
	if (!GENERAL.checkEmail(email_destinatario)) {
		alert('El email del destinatario no es correcto');
		frm.email_destinatario.focus();
		return false;
	}
	$.getJSON(
		"/backend/HERRAMIENTAS.enviar.php",
		{email_remitente: email_remitente, email_destinatario: email_destinatario, comentario: comentario, url: CONTENIDO.url},
		function(datos) {
			if(datos.msg != "") {alert(datos.msg);}
			if(datos.exito == "OK") {$("#acn1").removeClass("activo");}
		}
	);
};
function fbs_click() {u=location.href;t=document.title;window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');return false;};
function ms_click(T, C, U, L) {var targetUrl = 'http://www.myspace.com/index.cfm?fuseaction=postto&' + 't=' + encodeURIComponent(T) + '&c=' + encodeURIComponent(C) + '&u=' + encodeURIComponent(U) + '&l=' + L;window.open(targetUrl);};

HERRAMIENTAS.shareFB = function (titulo,texto,descripcion,urlImagen) {

	GENERAL.console($(texto));

	 FB.init("219add26d0a0130340fd4acdd271b5b4", "http://www.que.es/xd_receiver.htm");


	//var msg = $(texto).text() + ' http://' + window.location.host  + $(texto).attr('href');
	var msg = $(texto).text();
    var attach_name = titulo;
    var attach_url = location.href;
    var attach_body = descripcion;

	var attachment = {
		'name': attach_name ,
		'href': attach_url,
		'description': attach_body,
		'media': urlImagen == null ? null : [{
			'type':'image',
			'src':urlImagen,
			'href':attach_url
		}]
	};

    var action_link = [{'text':'Leer noticia','href':attach_url}];
    var user_message_prompt = 'Tu comentario:';

	FB.ensureInit(function() {
		FB.Connect.streamPublish(msg,attachment,action_link,null,user_message_prompt);
    });

	return false;
};

HERRAMIENTAS.recargaPubli = function(objeto, posicion, nombre_fp) {

	objeto = $(objeto);

	if (objeto.length) {

		document.write = function(texto) {
			objeto.append(texto);
		}

		objeto.html("<scr" + "ipt language=\"JavaScript\">" + nombre_fp + "('" + posicion + "',1);</scr" + "ipt>");

	}
};

// anadimos este codigo de google, para hacer el tracking de analytics ASI428225
// Copyright 2011 Google Inc. All Rights Reserved.
/**
 * @fileoverview A simple script to automatically track Facebook and Twitter
 * buttons using Google Analytics social tracking feature.
 * @author api.nickm@google.com (Nick Mihailovski)
 */


/**
 * Namespace.
 * @type {Object}.
 */
var _ga = _ga || {};


/**
 * Ensure global _gaq Google Anlaytics queue has be initialized.
 * @type {Array}
 */
var _gaq = _gaq || [];


/**
 * Helper method to track social features. This assumes all the social
 * scripts / apis are loaded synchronously. If they are loaded async,
 * you might need to add the nextwork specific tracking call to the
 * a callback once the network's script has loaded.
 * @param {string} opt_pageUrl An optional URL to associate the social
 *     tracking with a particular page.
 * @param {string} opt_trackerName An optional name for the tracker object.
 */
_ga.trackSocial = function(opt_pageUrl, opt_trackerName) {
  _ga.trackFacebook(opt_pageUrl, opt_trackerName);
  _ga.trackTwitter(opt_pageUrl, opt_trackerName);
};


/**
 * Tracks Facebook likes, unlikes and sends by suscribing to the Facebook
 * JSAPI event model. Note: This will not track facebook buttons using the
 * iFrame method.
 * @param {string} opt_pageUrl An optional URL to associate the social
 *     tracking with a particular page.
 * @param {string} opt_trackerName An optional name for the tracker object.
 */
_ga.trackFacebook = function(opt_pageUrl, opt_trackerName) {
  var trackerName = _ga.buildTrackerName_(opt_trackerName);
  try {
    if (FB && FB.Event && FB.Event.subscribe) {
      FB.Event.subscribe('edge.create', function(targetUrl) {
        _gaq.push([trackerName + '_trackSocial', 'facebook', 'like',
            targetUrl, opt_pageUrl]);
      });
      FB.Event.subscribe('edge.remove', function(targetUrl) {
        _gaq.push([trackerName + '_trackSocial', 'facebook', 'unlike',
            targetUrl, opt_pageUrl]);
      });
      FB.Event.subscribe('message.send', function(targetUrl) {
        _gaq.push([trackerName + '_trackSocial', 'facebook', 'send',
            targetUrl, opt_pageUrl]);
      });
    }
  } catch (e) {}
};


/**
 * Returns the normalized tracker name configuration parameter.
 * @param {string} opt_trackerName An optional name for the tracker object.
 * @return {string} If opt_trackerName is set, then the value appended with
 *     a . Otherwise an empty string.
 * @private
 */
_ga.buildTrackerName_ = function(opt_trackerName) {
  return opt_trackerName ? opt_trackerName + '.' : '';
};


/**
 * Tracks everytime a user clicks on a tweet button from Twitter.
 * This subscribes to the Twitter JS API event mechanism to listen for
 * clicks coming from this page. Details here:
 * http://dev.twitter.com/pages/intents-events#click
 * This method should be called once the twitter API has loaded.
 * @param {string} opt_pageUrl An optional URL to associate the social
 *     tracking with a particular page.
 * @param {string} opt_trackerName An optional name for the tracker object.
 */
_ga.trackTwitter = function(opt_pageUrl, opt_trackerName) {
  var trackerName = _ga.buildTrackerName_(opt_trackerName);
  try {
    if (twttr && twttr.events && twttr.events.bind) {
      twttr.events.bind('tweet', function(event) {
        if (event) {
          var targetUrl; // Default value is undefined.
          if (event.target && event.target.nodeName == 'IFRAME') {
            targetUrl = _ga.extractParamFromUri_(event.target.src, 'url');
          }
          _gaq.push([trackerName + '_trackSocial', 'twitter', 'tweet',
            targetUrl, opt_pageUrl]);
        }
      });
    }
  } catch (e) {}
};


/**
 * Extracts a query parameter value from a URI.
 * @param {string} uri The URI from which to extract the parameter.
 * @param {string} paramName The name of the query paramater to extract.
 * @return {string} The un-encoded value of the query paramater. underfined
 *     if there is no URI parameter.
 * @private
 */
_ga.extractParamFromUri_ = function(uri, paramName) {
  if (!uri) {
    return;
  }
  var uri = uri.split('#')[0];  // Remove anchor.
  var parts = uri.split('?');  // Check for query params.
  if (parts.length == 1) {
    return;
  }
  var query = decodeURI(parts[1]);

  // Find url param.
  paramName += '=';
  var params = query.split('&');
  for (var i = 0, param; param = params[i]; ++i) {
    if (param.indexOf(paramName) === 0) {
      return unescape(param.split('=')[1]);
    }
  }
  return;
};

