
if(!Array.indexOf)
{
	Array.prototype.indexOf = function(obj)
	{
		for(var i=0; i<this.length; i++)
		{
			if(this[i]==obj)
			{
				return i;
			}
		}
		return -1;
	}
}

cookies = {
	create: function(name,value,days)
	{
		if (days)
		{
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else
		{
			 var expires = "";
		}
		document.cookie = name+"="+value+expires+"; path=/";
	},

	read: function(name)
	{
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for (var i=0;i < ca.length;i++)
		{
			var c = ca[i];
			while (c.charAt(0)==' ')
			{
				c = c.substring(1,c.length);
			}
			if (c.indexOf(nameEQ) == 0)
			{
				return c.substring(nameEQ.length,c.length);
			}
		}
		return null;
	},

	erase: function(name)
	{
		create(name,"",-1);
	}
}


collapsible = {
	collapsed: new Array(),
	init: function()
	{
		var saved = cookies.read('collapsed');
		if (saved != null)
		{
			collapsible.collapsed = unescape(saved).split(';');
		}

		if (document.getElementsByClassName)
		{
			var catTitles = document.getElementsByClassName('cat');
		}
		else
		{
			var catTitles = document.getElementsByTagName('TD');
		}

		for (index = 0; index < catTitles.length; ++index)
		{
			var catTitle = catTitles[index];
			if (catTitle.className && catTitle.className == 'cat')
			{
				var link = document.createElement('a');
				link.href = '#';
				link.innerHTML = '[collapse]';
				link.style.fontSize = '0.7em';
				link.style.marginLeft = '5px';
				link.onclick = function() { collapsible.collapse(this); return false; };

				for (var childNode = catTitle.firstChild; childNode != null; childNode = childNode.nextSibling)
				{
					if (childNode.tagName == 'H4')
					{
						childNode.appendChild(link);
						if (collapsible.collapsed.indexOf(collapsible.getRowTitle(link)) != -1)
						{
							collapsible.collapse(link);
						}
						break;
					}
				}
			}
		}
	},

	collapse: function(link)
	{
		link.innerHTML = '[expand]';
		link.onclick = function() { collapsible.expand(this); return false; };
		collapsible.setRowDisplay(link, 'none');

		var title = collapsible.getRowTitle(link);
		if (collapsible.collapsed.indexOf(title) == -1)
		{
			collapsible.collapsed.push(title);
			collapsible.saveCookie();
		}
	},

	expand: function(link)
	{
		link.innerHTML = '[collapse]';
		link.onclick = function() { collapsible.collapse(this); return false; };
		collapsible.setRowDisplay(link, '');

		var title = collapsible.getRowTitle(link);
		for (index = collapsible.collapsed.indexOf(title); index != -1; index = collapsible.collapsed.indexOf(title))
		{
			collapsible.collapsed.splice(index, 1);
		}
		collapsible.saveCookie();
	},

	saveCookie: function()
	{
		cookies.create('collapsed', escape(collapsible.collapsed.join(';')), 360);
	},

	setRowDisplay: function(childNode, display)
	{
		var catRow = childNode;
		while (catRow != null && catRow.tagName != 'TR')
		{
			catRow = catRow.parentNode;
		}

		if (catRow == null)
		{
			return;
		}

		for (var row = catRow.nextSibling; row != null; row = row.nextSibling)
		{
			if (row.firstChild)
			{
				for (var childNode = row.firstChild; childNode != null; childNode = childNode.nextSibling)
				{
					if (childNode.className != null && childNode.className == 'cat')
					{
						return;
					}
				}
				row.style.display = display;
			}
		}
	},

	getRowTitle: function(link)
	{
		for (var sibling = link.previousSibling; sibling != null; sibling = sibling.previousSibling)
		{
			if (sibling.innerHTML)
			{
				return sibling.innerHTML;
			}
		}
		return link.parentNode.innerHTML;
	}
}

links = 
{
	init: function()
	{
		var allLinks = document.getElementsByTagName('A');
		for (index = 0; index < allLinks.length; ++index)
		{
			var link = allLinks[index];
			if (link.className == 'postlink' &&
			    /^https?:\/\//.test(link.href) &&
			    ! /^https?:\/\/forums.rlfans\.com\//.test(link.href))
			{
				link.target = '_blank';
			}
		}
	}
}

if (/\/(index\.php)?$/.test(document.location.pathname))
{
	collapsible.init();
}
else if (/\/viewtopic\.php$/.test(document.location.pathname))
{
	links.init();
}

