﻿// Esta função foi criada para enganar o aplicativo ObfuscateJS que confunde o identificador
// de tipos sem ponto como variáveis, mudando assim seus nomes.
// Quando o aplicativo ObfuscateJS não possuir mais este bug, esta função pode ser retirada de uso.

function typeOf(className)
{
	return eval(className);
}

// Código para correção do bug do IE de flicker em background-image css styles.

try
{
	document.execCommand("BackgroundImageCache", false, true);
}
catch (e) {}

// Adaptações para FireFox.

try
{
	// Adição do método contains para os elementos DOM.

	HTMLElement.prototype.contains = function(child)
	{
		/// <summary>
		/// Verifica se um determinado elemento está contido.
		/// </summary>
		/// <remarks>
		/// No navegador mozilla, os elementos não possuem o método contains.
		/// </remarks>
		/// <param name="child" domElement="true"></param>
		/// <returns>Se um determinado elemento está contido.</returns>

		var element = child;

		while (element != null)
		{
			if (element == this)
			{
				return true;
			}

			element = element.parentNode;
		}

		return false;
	}

	// Padronizaçãs das variáveis do objeto evento relacionadas aos campos que informam os elementos relacionamentos com o evento.

	Event.prototype.__defineGetter__("srcElement", function()
	{
		var node = this.target;

		while (node.nodeType != 1)
		{
			node = node.parentNode;
		}

		return node;
	});

	Event.prototype.__defineGetter__("fromElement", function()
	{
		var node;

		if (this.type == "mouseover")
		{
			node = this.relatedTarget;
		}
		else if (this.type == "mouseout")
		{
			node = this.target;
		}

		if (node == null) return;

		while (node.nodeType != 1)
		{
			node = node.parentNode;
		}

		return node;
	});

	Event.prototype.__defineGetter__("toElement", function()
	{
		var node;

		if (this.type == "mouseout")
		{
			node = this.relatedTarget;
		}
		else if (this.type == "mouseover")
		{
			node = this.target;
		}

		if (node == null) return;

		while (node.nodeType != 1)
		{
			node = node.parentNode;
		}

		return node;
	});
}
catch (e) { }