/*	Hints v1.00 (c) Copyright 2010-2011, AnimeHD - www.animehd.org */
var HDHints = new function() {
	var Hints = [
		['480p', 'Video en formato progresivo con 480 líneas de altura, común en DVDs NTSC.',],
		['576p', 'Video en formato progresivo con 576 líneas de altura, común en DVDs PAL.',],
		['1080p', 'Video en formato progresivo con 1080 líneas de altura, común en Blu-ray.',],
		['SAR', 'Sample Aspect Rate / Relación de Aspecto de la Muestra (AR de un frame almacenado)'],
		['DAR', 'Display Aspect Ratio / Relación de Aspecto de la Pantalla (AR de la reproducción)'],
		['PAR', 'Pixel Aspect Ratio / Relación de Aspecto del Pixel (AR de un pixel)'],
		['AAC', 'Advanced Audio Coding es el códec que ha sustituido al MP3. Permite obtener una mejor calidad con un bitrate menor que el MP3.<br /><a href="http://www.animehd.org/showthread.php?tid=5416">Guía: Comprimir audio en AAC</a>',],
		['AnimeHD Decoder Pack', 'Reproductor y codecs recomendados para reproducir nuestros rips.<br /><a href="http://www.animehd.org/showthread.php?tid=7731">Descarga: AnimeHD Decoder Pack</a>',],
		['ASS', 'Advanced SubStation Alpha. Formato de subtítulos, basado en un archivo de texto. Es una versión avanzada de SSA (versión 4+) que permite algunos efectos nuevos.<br /><a href="http://www.animehd.org/showthread.php?tid=5418">Guía: Subtítulos en .ass</a><br /><a href="http://www.animehd.org/showthread.php?tid=5419">Subtítulos en .ass: Etiquetas</a>',],
		['AviSynth', 'Herramienta (frameserver) utilizado por otros programas para editar y procesar audio y video.<br /><a href="http://www.avisynth.org">Pagina de AviSynth</a><br /><a href="http://sourceforge.net/project/showfiles.php?group_id=57023">Pagina de descarga</a><br /><a href="http://www.animehd.org/showthread.php?tid=937">Guía: Uso básico de AviSynth</a>',],
		['CRC32','CRC32 es una forma de Comprobación de Redundancia Cíclica. Sirve para comprobar la integridad de los datos; por ejemplo para comprobar si un archivo se ha descargado correctamente.',],
		['Crop', 'Eliminar los bordes de una imagen, normalmente para quitar desperfectos o mantener el AR (Aspect Rate / Relación de Aspecto)',],
		['Entrelazado', 'Video que es reproducido al doble de sus fps, pero en cada frame solo se actualizan la mitad de las líneas, alternando las pares e impares. Esto produce artefactos en líneas verticales.<br /><a href="http://www.animehd.org/showthread.php?tid=5417">Guía: Desentrelazar video</a>',],
		['FFDShow', 'Decoder de prácticamente todos los formatos de audio y video (e.o. DivX, XVID y h.264).<br /><a href="http://www.animehd.org/showthread.php?tid=7731">AnimeHD Decoder Pack</a>',],
		['Haali Media Splitter', 'Actualmente conocido como Matroska Spliter sirve para poder reproducir: MKV (Matroksa), MP4, AVI, OGG/OGM y MPEG TS<br /><a href="http://haali.cs.msu.ru/mkv/">Pagina de Haali Media Splitter</a>',],
		['HashTab', 'Extension de Windows/Mac gratuito para comprobar los CRC de un archivo.<br /><a href="http://www.beeblebrox.org/hashtab/">Pagina de descarga</a>',],
		['HDPlayer', 'Reproductor creado por AnimeHD. Maxima calidad de imagen y compatible con nuestras versiones dual, sin necesidad de crear un archivo Matroska.<br /><a href="http://www.animehd.org/showthread.php?tid=7731">Descarga: AnimeHD Decoder Pack</a>',],
		['Matroska Splitter', 'Tambien conocido como Haali Media Spliter sirve para poder reproducir: MKV (Matroksa), MP4, AVI, OGG/OGM y MPEG TS<br /><a href="http://haali.cs.msu.ru/mkv/">Pagina de Haali Media Splitter</a>',],
//		['Media Player Classic', 'Reproductor recomendado para reproducir video.<br /><a href="http://www.animehd.org/showthread.php?tid=7731">AnimeHD Decoder Pack</a><br /><a href="http://blog.animehd.org/777/hacer-capturas-con-media-player-classic">Guía: Hacer Capturas con Media Player Classic</a>',],
		['MKV', 'Matroska en un contenedor universal. Puede contener entre otras cosas tanto audio y video, como subtítulos y fuentes adicionales.<br />Requiere un splitter: <a href="http://haali.cs.msu.ru/mkv/">Pagina de Haali Media Splitter</a>',],
		['MKVToolnix', 'Herramienta para crear y modificar archivos Matroska (*.mkv)<br /><a href="http://www.bunkus.org/videotools/mkvtoolnix/downloads.html">Pagina de descarga</a><br /><a href="http://www.animehd.org/showthread.php?tid=5415">Guía: Unir Videos con MKVToolNix</a>',],
		['MP4', 'Contenedor oficial para audio y video en formato MPEG-4 (DivX, XVID, 3IVX, h.264, AVC).<br />MP4 es el sucesor de AVI.',],
		['SSA', 'SubStation Alpha. Formato de subtítulos, basado en un archivo de texto.',],
		['V.O.S.', 'Versión Original Subtítulada',],
		['VFR', 'Variable Framerate; Video híbrido. La velocidad de reproduccion varia según la escena, permitiendo una mayor fluidez en un archivo de menor tamaño. Esta basado en el concepto de los CFR a 120fps (tiene la misma fluidez), pero sin el aumento del bitrate.',],
		['VirtualDub', 'Programa para la captura y edición (basica) de video.<br /><a href="http://www.virtualdub.org/">Pagina de VirtualDub</a>',],
		['WinRAR', 'Programa para comprimir y partir archivos.<br /><a href="http://www.animehd.org/showthread.php?tid=237">Guía: Partir y Proteger archivos con WinRAR</a>',],
		['x264', 'Programa para comprimir video en h.264.<br /><a href="http://www.animehd.org/showthread.php?tid=5414">Guía: Introducción al compresor x264</a>',],
		['h.264', 'H.264/AVC/MPEG-4 parte 10 (Advanced Video Coding) es el códec que ha sustituido al Xvid. Permite obtener una mejor calidad con un bitrate menor que Xvid.<br /><a href="http://www.animehd.org/showthread.php?tid=5414">Guía: Introducción al compresor x264</a>',],
		
		['Ecchi', 'Genero: contiene erotismo; escenas sexuales no demasiada explícitas y amenudo con aspectos humorísticos',],
		['Gore', 'Genero: contiene violencia extrema (sangre, descuartizaciones)',],
		['Harem', 'Genero: su trama principal está protagonizada por un grupo de personajes femeninas, que poseen actitudes muy dispares y que conviven con un unico hombre.',],
		['Hentai', 'Genero: tiene contendio pornográfico',],
			['Ero-Guru', 'Subgenero de hentai con sangre, mutilaciones, o escatologia (Erotico-grotesco - abreviado: guro)',],
			['Futanari', 'Subgenero de hentai donde las protagonistas son hermafroditas.',],
			['Kemonomimi', 'Subgenero de hentai donde las protagonistas, aun siendo humanos, poseen alguna característica animal.',],
			['Lolicon', 'Subgenero de hentai donde algunas personajes son chicas con aspecto de menor.',],
			['Shotacon', 'Subgenero de hentai donde algunas personajes son chicos con aspecto de menor.',],
		['Kodomo', 'Genero: dirigido al público infantil. Su tema principal se puede comprender facilmente.',],
		['Mecha', 'Genero: sobre vehiculos pilotados que se desplazan con patas',],
		['Josei', 'Genero: dirigido a mujeres de mediana edad. Su trama principal narra historias de experiencias femeninas.',],
		['Seinen', 'Genero: dirigdo a hombres de mediada edad. Su trama suele estar relacionado, con negocios y la politica.',],
		['Shojo', 'Genero: dirigido al público femenino. Normalmente la historia se centra en las relaciones humanas, particularmente el amor.',],
		['Shonen', 'Genero: dirigido al público masculino. Normalmente contiene mucha accion.',],
		['Yaoi', 'Genero: su tema principal son las relaciones sexuales entre hombres',],
		['Yuri', 'Genero: su tema principal son las relaciones sexuales entre mujeres',],

		['Bishonen', 'Chico guapo',],
		['Bishojo', 'Chica guapa',],
		['Cosplay', 'Disfrazarse',],
		['Fanservice', 'Mostrar lo que quieren ver (suele ser ecchi y es común en el genero shonen)',],
		['Kohai', 'Contario de Senpai; estudiante de un curso inferio o una persona con menos experiencia.',],
		['Lolita', 'Chica joven e inocente',],
		['Sensei', 'Profesor, doctor o cualquier otra persona con una profesion que requiere un titulo universitario, las personas que enseñan artes marciales o que trabajan en la politica. Normalmente se usa para mostrar respeto.',],
		['Senpai', 'Persona con mas experiencia: un estudiante de un curso superior, alguien que lleva practicando durante mas tiempo un deporte o cualquier otra persona que se dedica a lo mismo, pero que lleva haciendolo desde antes.',]
		];
	jQuery(document).ready(function () {
		HintLayer = document.createElement("div");
		HintLayer.className = "hint";
		jQuery(HintLayer).mouseleave(function(){jQuery(this).fadeTo("slow", 0.0, function() {this.style.display = "none";})});
		HintTitle = document.createElement("div");
		HintTitle.className = "hinttitle";
		HintBody = document.createElement("div");
		HintBody.className = "hintbody";
		HintLayer.appendChild(HintTitle);
		HintLayer.appendChild(HintBody);
		jQuery(HintLayer).css({'opacity' : 0.0, 'display' : 'none'});
		document.body.appendChild(HintLayer);
		jQuery("div.postbody").each(HDHints.SetHintsBody);
	});

	return {
		HintIt: function(a, index){
			HintTitle.innerHTML = Hints[index][0];
			HintBody.innerHTML = Hints[index][1];
			jQuery('a', HintBody).attr('target', '_blank');
			jQuery(HintLayer).stop();
			jQuery(HintLayer).css({'opacity' : 0.0});
			jQuery(HintLayer).show();
			Top = Math.max(document.documentElement.scrollTop, 0);	//Safari and OmniWeb 4.5+ no scroll = -8
			if (Top == 0)
				Top = Math.max(document.body.scrollTop, 0);	//Chrome
			Height = window.innerHeight;	//Todos excepto IE
			if (Height == null)	//Todos excepto IE5-7 quirks
				Height = document.documentElement.clientHeight;
			if ((Height == null) || (Height == 0))	//solo IE5-7 quirks
				Height = document.body.clientHeight;
			var Offset = HDHints.AbsoluteOffset(a);
			if (Height < Offset.y - Top + HintLayer.offsetHeight)
				HintLayer.style.top = Top + Math.max(Height - HintLayer.offsetHeight, 0) + "px";
			else
				HintLayer.style.top = Offset.y + "px";
			if ((document.body.offsetLeft + document.body.offsetWidth) < (Offset.x + HintLayer.offsetWidth + 8))
				HintLayer.style.left = Math.max(document.body.offsetLeft + document.body.offsetWidth - HintLayer.offsetWidth - 8, 0) + "px";
			else
				HintLayer.style.left = Offset.x +"px";
			//HintLayer.style.top = Offset.y + "px";
			//HintLayer.style.left = Offset.x +"px";
			jQuery(HintLayer).fadeTo("slow", 0.95);
		},
	
		AbsoluteOffset: function(domElement)
		{
			var r = { x: 0, y: 0 };
			do {
				r.x += domElement.offsetLeft;
				r.y += domElement.offsetTop;
			} while (domElement = domElement.offsetParent);
			return r;
		},
		
		SetHints: function(index, domElement)
		{
			if (this.nodeValue)
			{
				oldText = this.nodeValue;
				newText = oldText;
				for (i in Hints)
				{	// \b no funciona para el final; añade (sp) y busca non-word char
					if (Hints[i][0])
					{
						if (Hints[i][2]) continue;
						x = (newText + ' ').search(new RegExp('\\b' + Hints[i][0].replace(/\./g, '\\.') + '\\W', 'i'));
						if (x == -1) continue;
						tl = Hints[i][0].length;
						Hints[i][2] = true;
						newText = newText.substr(0, x) + '<span class=\"tip\" onmouseover=\"HDHints.HintIt(this, ' + i + ');\">' + newText.substr(x, tl) + '</span>' + newText.substr(x + tl);
						if (newText.charAt(0) == ' ') newText = '&nbsp;' + newText.substr(1);
					}
				}
				if (oldText != newText)
				{
					newspan = document.createElement("span");
					newspan.innerHTML = newText;
					this.parentNode.replaceChild(newspan, this);
				}
			}
			jQuery(this).contents(":not(a)").each(HDHints.SetHints);
		},

		SetHintsBody: function(index, domElement)
		{
			jQuery(domElement).contents(":not(a)").each(HDHints.SetHints);
			for (i in Hints)
				Hints[i][2] = false;
		}
	}
}
