var Divisiones = new Array ("Todo", "Wii U / Wii", "PS2 / PS3", "Xbox 360", "3DS/NDS", "PS Vita / PSP", "PC / Mac", "Nostalgicas", "Mi VJ");
var Titulos = new Array ("Todo", "Wii U / Wii", "PlayStation 3", "Xbox 360", "3DS / DS", "PS Vita / PSP", "PC / Mac", "Nostálgicas", "Mi VJ");
var Logos = new Array ("logo_solo.png", "wiiu.png", "ps3.png", "xbox360.png", "n3ds.png", "psvita.png", "pcmac.png", "nostalgicas.png", "logo_solo.png");
var Iconos = new Array ("todo.png", "wiiu.png", "ps3.png", "xbox360.png", "nds.png", "psvita.png", "pcmac.png", "nostalgicas.png", "mivj.png");

function pintarLogo (rutaImagenes, division, usuario)
{
	var Logo = "";
	
	for(var i=0; i<Divisiones.length; i++)
	{
		if (division==Divisiones[i] || (division==usuario && Divisiones[i]=="Mi VJ"))
		{
			document.write ("<a href=\"/\" title=\"Volver a la portada\"><img src=\"" + rutaImagenes + "logos/" + Logos[i] + "\" id=\"logoViciojuegos\" /></a>");
		}
	}	
}

function pintarDivisiones (rutaImagenes, colorPrimario, colorSecundario, division, usuario)
{
	var listaDivisiones = new Array (Divisiones.length);
	var imagen = null;
	
	for (var i=0; i<Divisiones.length; i++)
	{
		imagen = Builder.node ("img", {src: rutaImagenes + "iconos_divisiones/" + Iconos[i]});
		if (division==Divisiones[i] || (division==usuario && Divisiones[i]=="Mi VJ")) listaDivisiones[i] = Builder.node ("li", {className: "seleccionado fondoPrimario colorSecundario"}, [imagen, Titulos[i]]);
		else listaDivisiones[i] = Builder.node ("li", Builder.node ("a", {href: "/cambiarDivision.jsp?division=" + Divisiones[i]}, [imagen, Titulos[i]]));
	}
	Element.select (document.body, "#barraPlataformas .contenido")[0].appendChild (Builder.node ("ul", listaDivisiones));
	Element.select (document.body, "#barraPlataformas .contenido")[0].appendChild (Builder.node ("a", {href: "/configurarMiVJ.jsp", className: "botonConfigurarMiVJ"}, "Configurar Mi VJ"));
}

var iniciandoSesion = false;
var animacionIniciandoSesion = null;

function loginKeyUp (event)
{
	var tecla = (window.event) ? event.keyCode : event.which;
	if (tecla == 13) iniciarSesion ();
}

function iniciarSesion ()
{
	if (!iniciandoSesion)
	{
		iniciandoSesion = true;
		if (animacionIniciandoSesion == null) animacionIniciandoSesion = document.getElementById ("textoIniciandoSesion");
		animacionIniciandoSesion.style.visibility = "visible";
		Form.request (document.frmlogin, {
			onSuccess: function (transport)
			{
				var respuesta = transport.responseJSON;
				if (respuesta.ok)
				{
					/*
					if (respuesta.mantenerConexion)
					{
						var fecha = new Date ();
						fecha.setDate (fecha.getDate() + 365);
						document.cookie = "usuario=" + respuesta.usuario + ";path=/;expires=" + fecha.toUTCString();
						document.cookie = "division=" + respuesta.division + ";path=/;expires=" + fecha.toUTCString();
					}
					*/
					window.location.reload ();
				}
				else
				{
					dialogo.alert (respuesta.mensaje, {icono: "exclamacion.png"});
					document.frmlogin.password.select ();
					document.frmlogin.password.focus ();
				}
			},
			onFailure: function (transport)
			{
				dialogo.alert ("No se ha podido iniciar sesión debido a un error. Vuelve a intentarlo en unos instantes.", {icono: "apache.png", titulo: "Error " + transport.status});
			},
			onComplete: function ()
			{
				iniciandoSesion = false;
				animacionIniciandoSesion.style.visibility = "hidden";
			}
		});
	}
}

function enfocarLogin ()
{
	window.scroll (0, 0);
	document.frmlogin.usuario.focus ();
}

function abrirReferenciaVJs ()
{
	window.open ('/referenciaVJs.jsp','vjs','height=600,width=550,scrollbars=yes');
}

var imagenPrecarga = null;
var funcionImagenCargadaOk = null;
var funcionImagenCargadaError = null;
function precargarImagen (url, funcionOk, funcionError)
{
	funcionImagenCargadaOk = funcionOk? funcionOk: null;
	funcionImagenCargadaError = funcionError? funcionError: null;
	imagenPrecarga = new Image ();
	imagenPrecarga.onload = precargarImagenOk;
	imagenPrecarga.onerror = precargarImagenError;
	imagenPrecarga.src = url;
}

function precargarImagenOk ()
{
	if (funcionImagenCargadaOk) funcionImagenCargadaOk (imagenPrecarga.src, imagenPrecarga.width, imagenPrecarga.height);
	precargarImagenTerminado ();
}

function precargarImagenError ()
{
	if (funcionImagenCargadaError) funcionImagenCargadaError (imagenPrecarga.src);
	precargarImagenTerminado ();
}

function precargarImagenTerminado ()
{
	imagenPrecarga.onload = function () {};
	imagenPrecarga = null;
	funcionImagenCargada = null;
	funcionImagenCargadaError = null;
}

function cambiarCSS (selector, estilo, valor)
{
	var campo = "";
	var i = 0;
	var j = 0;
	var css = document.styleSheets;
	for (i = 0; i < css.length; i++)
	{
		if (css[i]["rules"]) campo = "rules";
		else if (css[i]["cssRules"]) campo = "cssRules";
		
		for (j = 0; j < css[i][campo].length; j++)
		{
			if (css[i][campo][j].selectorText.indexOf(selector) >= 0)
			{
				css[i][campo][j].style[estilo] = valor;
				break;
			}
		}
	}	
}

hexadecimal = new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F") 
	
function convierteHexadecimal(num){ 
    var hexaDec = Math.floor(num/16) 
    var hexaUni = num - (hexaDec * 16) 
    return hexadecimal[hexaDec] + hexadecimal[hexaUni] 
} 

function variarColor(colorInicio, R, G, B) {
	var hex = colorInicio.substring(1,7);
	var rgb = parseInt(hex, 16);

	var red   = (rgb >> 16) & 0xFF;
	var green = (rgb >> 8) & 0xFF;
	var blue  = rgb & 0xFF;
	
	red = red + R;
	green = green + G;
	blue = blue + B;
	
	if (red<0) red=0;
	if (green<0) green=0;
	if (blue<0) blue=0;
	
	if (red>255) red=255
	if (green>255) green=255
	if (blue>255) blue=255
	
	return '#' + convierteHexadecimal(red) + convierteHexadecimal(green) + convierteHexadecimal(blue);
}

function moveIt(obj, mvLeft) {
	obj.style.position = "absolute";
	obj.style.left = mvLeft;
}

if (document.all) {
  anchoVentana = document.body.clientWidth;
} else {
  anchoVentana = window.innerWidth;
}
if (navigator.appName.indexOf('Netscape')>=0) {
	cantidad = (anchoVentana/2)-(259);
} else {
	cantidad = (anchoVentana/2)-(250);
}

//
//
// Funciones relativas al uso de VText en los formularios para que se puedan usar en cualquier lugar de VJ
//
//

function meterCita(cuadroTexto) {
	var citado=prompt('¿A quién citas?','');
	meterCodigo('[cita "'+citado+'"]','[/cita]', cuadroTexto);
}

function meterImagen(cuadroTexto) {
	var urlImagen=prompt('Introduce la URL de la imagen','');
	meterCodigo('[img "'+urlImagen+'"]','', cuadroTexto);
}

function meterImagenLink(cuadroTexto) {
	var urlImagen=prompt('Introduce la URL de la imagen','');
	var urlLink=prompt('Introduce la URL del enlace','');
	meterCodigo('[a "'+urlLink+'" [img "'+urlImagen+'"]]','', cuadroTexto);
}

function meterLink(cuadroTexto) {
	var urlLink=prompt('Introduce la URL del enlace','http://');
	meterCodigo('[a "'+urlLink+'" ',']', cuadroTexto);
}

function meterEmail(cuadroTexto) {
	var email=prompt('Introduce el e-mail','');
	var texto=prompt('Introduce el texto a enlazar',email);
	meterCodigo('[mail "'+email+'" [b]'+texto+'[/b]',']', cuadroTexto);
}

function meterFuente(fuente, selectFuente, cuadroTexto) {
	if (fuente!=null && fuente.length>0)
		meterCodigo('['+fuente+']','[/'+fuente+']', cuadroTexto);
	selectFuente.options.selectedIndex=0;
}

function meterColor(colorin, selectColor, cuadroTexto) {
	if (colorin!=null && colorin.length>0)
		meterCodigo('['+colorin+']','[/'+colorin+']', cuadroTexto);
	selectColor.options.selectedIndex=0;
}

function meterTamaño(tamaño, selectTamaño, cuadroTexto) {
	if (tamaño!=null && tamaño.length>0)
		meterCodigo('['+tamaño+']','[/'+tamaño+']', cuadroTexto);
	selectTamaño.options.selectedIndex=0;
}

function meterCodigo(inicio, fin, cuadroTextoNombre) {
	var cuadroTexto = document.getElementById(cuadroTextoNombre);
	var posicionCursor = 0;
	// Netscape, FireFox
	if (cuadroTexto.setSelectionRange) {
		posicionCursor = cuadroTexto.selectionStart;
 		cuadroTexto.value = cuadroTexto.value.substring(0,cuadroTexto.selectionStart) + 
 												inicio + 
 												cuadroTexto.value.substring(cuadroTexto.selectionStart,cuadroTexto.selectionEnd) +
 												fin + 
 												cuadroTexto.value.substring(cuadroTexto.selectionEnd,cuadroTexto.value.length);
	}
	// Internet Explorer
 	else {
 		// Si no hay texto seleccionado
		if (document.selection.createRange().text=='') {
			posicionCursor = getCaretPos(cuadroTexto);
			if (posicionCursor==undefined || posicionCursor==-1)
				posicionCursor=0;
			cuadroTexto.value = cuadroTexto.value.substring(0,posicionCursor) + 
 													inicio + 
 													fin + 
 													cuadroTexto.value.substring(posicionCursor,cuadroTexto.value.length);
 		// Si hay texto seleccionado
		} else {
			var selectedText = document.selection.createRange().text; 
	  	var newText = inicio + selectedText + fin; 
	    document.selection.createRange().text = newText; 
	
			posicionCursor = getCaretPos(cuadroTexto);
		}
	}
	
	setSelRange(cuadroTexto,posicionCursor+inicio.length,posicionCursor+inicio.length);

}

function getCaretPos(elem) {
  if ( elem.isTextEdit && elem.caretPos )
  {
    var bookmark = "~";
    var orig = elem.value;
    var caretPos = elem.caretPos;
    caretPos.text = bookmark;
    var i = elem.value.search( bookmark );
    elem.value = orig;
  }
  return i;
}

function saveCaret(elem) {
	if ( elem.isTextEdit )
		elem.caretPos = document.selection.createRange();
}

function setSelRange(inputEl, selStart, selEnd) {  
	// Netscape, FireFox
	if (inputEl.setSelectionRange) {   
		inputEl.focus();   
		inputEl.setSelectionRange(selStart, selEnd);
	// Internet Explorer 
	} else if (inputEl.createTextRange) {   
		var range = inputEl.createTextRange();   
		range.collapse(true);   
		range.moveEnd('character', selEnd);   
		range.moveStart('character', selStart);   
		range.select();  
	} 
}

function MostrarSpoiler(spoiler)
{
	document.getElementById('enlace'+spoiler).style.display='none';
	document.getElementById('spoiler'+spoiler).style.display='inline';
}

function mostrarCapa(nombreCapa) {
	var capa = document.getElementById(nombreCapa);
	if (capa.style.display=='none')
		capa.style.display='block';
	else
		capa.style.display='none';
}
