/* .... TYPIC OBJECT ... */
if (!Typic)
	var Typic = new Object();
Typic.elementExistsInStringList = function(element, stringList, separator)
{
	// separator might need regexp escaping first...
	return stringList.match(new RegExp("(^|"+separator+")" + element + "("+separator+"|$)", "i"));
}
Typic.hasClassName = function(elem, className)
{
	return elem.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)", "i"));
}
Typic.addClassName = function(elem, className)
{
	elem.className = elem.className + " " + className;
}
Typic.removeClassName = function(elem, className)
{
	elem.className = elem.className.replace(new RegExp("(^|\\s)(" + className + ")(\\s|$)", "gi"), "$1$3");
}

Typic.toggleClassName = function(elem, className)
{
	if (Typic.hasClassName(elem, className))
		Typic.removeClassName(elem, className);
	else
		Typic.addClassName(elem, className);
}

Typic.addMethods = function(elem)
{
	elem.addClassName = function()
	{
		Typic.addClassName(this, arguments[0]);
	}
	elem.removeClassName = function()
	{
		Typic.removeClassName(this, arguments[0]);
	}
	elem.hasClassName = function()
	{
		return Typic.hasClassName(this, arguments[0]);
	}
}

Typic.mouseover_init = function(elem)
{
	if(!/MSIE (5|6)/.test(navigator.userAgent)) 
	// No need to add mouseover events. Browser probably already understands :hover
	{
		elem.onmouseover = null;
		return;
	}

	elem.onmouseover = function() {Typic.addClassName(this, 'mouseover');}
	elem.onmouseout = function() {Typic.removeClassName(this, 'mouseover');}
}

Typic.submitFormToUrl = function(form)
// Returns a URL string representing the form, it's target and it's values
// Example of returned value: "http://domain.com/myform.php?value1=2&value2=jorge"
// Example of usage:
// <form [...] onsubmit="window.open(Typic.submitFormToUrl(this)); return false">
{
	var x = new Array();
	for (var i = 0; i < form.elements.length; i++)
	{
		x.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value));
	}
	x = form.getAttribute("action") + "?" + x.join("&");

	return x;
}