var globals = new Globals();
var staticTip = new TipObj('staticTip');
staticTip.tipStick = 0;
staticTip.template = staticTipTemplate;

//document.onmousemove = document_onMouseMove;
function Globals()
{
	this.MouseX = 0;
	this.MouseY = 0;
	this.LoadFunctions = new Array();
	window.onload = Window_Load;
}

function Window_Load()
{
	for (var i=0;i<globals.LoadFunctions.length;i++)
	{
		eval(globals.LoadFunctions[i]);
	}
}
/*
function document_onMouseMove(evt)
{
	evt = (evt) ? evt : event;
	if (evt.pageX) 
	{
		globals.MouseX = evt.pageX;
		globals.MouseY = evt.pageY;
	} 
	else 
	{
		globals.MouseX = evt.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
		globals.MouseY = evt.clientY + document.documentElement.scrollTop  + document.body.scrollTop;
	}
}
*/

//-----------------------------------------------------FUNCIONES ESTATICAS-----------------------------
function DeMiInteres(textoID, obj)
{
	var ajaxCounter = 1000000*Math.random();
	var url = "/AjaxService.aspx?Task=1&TextoID=" + textoID + "&ajaxCounter=" + ajaxCounter;
	MakeGetRequest(url, DeMiInteresCallback, false, obj);
}

function DeMiInteresCallback(req, obj)
{
	if (req.responseText == "0")
	{
		alert("Ya se encuentra marcado");
	}
	
	DeshabilitarLink(obj);
}

function MarcarInapropiado(textoID, obj)
{
	var ajaxCounter = 1000000*Math.random();
	var url = "/AjaxService.aspx?Task=2&TextoID=" + textoID + "&ajaxCounter=" + ajaxCounter;
	MakeGetRequest(url, MarcarInapropiadoCallback, false, obj);
}

function MarcarInapropiadoCallback(req, obj)
{
	if (req.responseText == "0")
	{
		alert("Ya se encuentra marcado");
	}
	
	DeshabilitarLink(obj);
}

function DeshabilitarLink(obj)
{
	if (obj)
	{
		//le borro el onclick
		obj.onclick = function (){return false;};
		//le asigno un estilo al control como el texto normal
		obj.className = "Deshabilitado";
	}
}

function InputActivo(obj)
{
	obj.className += " InputActivo";
}

function InputInactivo(obj)
{
	obj.className = obj.className.replace(" InputActivo", "");
}

function ActivarElemento(obj)
{
	obj.className += " Activo";
}

function DesactivarElemento(obj)
{
	obj.className = obj.className.replace(" Activo", "");
}

function ActivarImagen(img, extension)
{
	if (extension == null)
	{
		extension = "gif";
	}
	
	if (img.src.indexOf("Act.") < 0)
	{
		img.src = img.src.replace("." + extension, "Act." + extension);
	}
}

function DesactivarImagen(img, extension)
{
	if (extension == null)
	{
		extension = "gif";
	}
	
	img.src = img.src.replace("Act." + extension, "." + extension);
}

function ActivarImagenes(contenedorID, index)
{
	var contenedor = document.getElementById(contenedorID);
	var actualImageIndex = 0;
	for (var i=0;i<contenedor.childNodes.length;i++)
	{
		var img = contenedor.childNodes[i];
		//Me fijo si no es texto no es texto y que sea un elemento img
		if (img.nodeType == 1 && img.tagName.toUpperCase() == "IMG")
		{
			if (actualImageIndex <= index)
			{
				ActivarImagen(img);
			}
			else
			{
				DesactivarImagen(img);
			}
			actualImageIndex++;
		}
	}
}

function VotarTexto(textoID, valor, img)
{
	var ajaxCounter = 1000000*Math.random();
	var url = "/AjaxService.aspx?Task=5&TextoID=" + textoID + "&Valor=" + valor + "&ajaxCounter=" + ajaxCounter;
	MakeGetRequest(url, VotarTextoCallback, false, img);
	
	var parentNode = img.parentNode;
	for (var i=0;i<parentNode.childNodes.length;i++)
	{
		var node = parentNode.childNodes[i];
		if (node.nodeType == 1 && node.tagName.toUpperCase() == "IMG")
		{
			node.attributes["onclick"].nodeValue = null;
			node.attributes["onmouseover"].nodeValue = null;
			node.className = null;
		}
	}
	ActivarImagenes(img.parentNode.id, valor-1);
}

function VotarTextoCallback(req, img)
{
	img.parentNode.innerHTML += "&nbsp;gracias por tu voto";
}

function IfMaxLength(element, maxLength)
{
	if (element.value.length <= maxLength)
	{
		return true;
	}
	else
	{
		return false;
	}
}

function Trim(sInString) 
{
  sInString = sInString.replace( /^\s+/g, "" );// strip leading
  return sInString.replace( /\s+$/g, "" );// strip trailing
}


function ValidarMensaje(textoID)
{
	if (Trim(document.getElementById("TextoMensajeDescripcion" + textoID).value) == "")
	{
		return false;
	}
	if (document.getElementById("TMNombre" + textoID) != null)
	{
		if (Trim(document.getElementById("TMNombre" + textoID).value) == "")
		{
			alert("El nombre es requerido.");
			return false;
		}
		if (Trim(document.getElementById("TMEmail" + textoID).value) == "")
		{
			alert("El email es requerido.");
			return false;
		}
	}
	return true;
}

function HabilitarControlesComentarios(textoID, habilitar)
{
	document.getElementById("botonEnviar" + textoID).disabled = !habilitar;
	document.getElementById("TextoMensajeDescripcion" + textoID).disabled = !habilitar;
	if (document.getElementById("TMNombre" + textoID) != null)
	{
		document.getElementById("TMNombre" + textoID).disabled = !habilitar;		
		document.getElementById("TMEmail" + textoID).disabled = !habilitar;		
		document.getElementById("TMPaginaWeb" + textoID).disabled = !habilitar;		
	}
}

function EnviarMensaje(form, textoID)
{
	if (document.getElementById("botonEnviar" + textoID).disabled)
	{
		return false;
	}
	if (!ValidarMensaje(textoID))
	{
		return false;
	}
	//Desabilito el formulario
	HabilitarControlesComentarios(textoID, false);

	//alert("form: " + form[1].name);
	var datos = new Array();
	for (var i=0;i<form.elements.length;i++)
	{
		var control = form.elements[i];
		datos[control.name] = control.value;
	}
	datos["task"] = "3";
	MakePostRequest("/AjaxService.aspx", datos, EnviarMensajeCallback, false,  textoID);
	
	return false;
}

function EnviarMensajeCallback(req, textoID)
{
	//Ocultar formulario
	if (req.responseText == "")
	{
		alert("No se ha podido guardar el mensaje debido a que los campos no son correctos.");
	}
	else if (req.responseText == "-2")
	{
		alert("No se ha grabado el mensaje, espere 30 segundos para poder enviar el proximo.\nEsta es una medida contra el spam.");
		HabilitarControlesComentarios(textoID, true);
	}
	else
	{
		document.getElementById("MensajeResultado" + textoID).style.visibility = "";
		document.getElementById("TextoMensajeDescripcion" + textoID).title = "Mensaje Enviado!";
	}
	//document.getElementById("botonEnviar").style.visibility = "hidden";
}

function SwapComentarios(div, id)
{
	var parent = div.parentNode;
	
	var divContenido = document.getElementById("containerComentarios" + id);
	
	if (divContenido.style.display != "none")
	{
		divContenido.style.display = "none";
		parent.className = "";
	}
	else
	{
		divContenido.style.display = "";
		parent.className = "Comentarios";
	}
}