// byteMyCode.com
// ©1998-2006 BlueCrestStudios, LLC. All Rights Reserved.

// install window.onload handler

// Add install event handler
function installEventHandler(element,event,handler)
{
	if (element.addEventListener)
	{
    		element.addEventListener(event,handler,false);
	}
	else if(element.attachEvent)
	{
    		element.attachEvent("on"+event,handler);
	}
}

// Toggle hide
function toggleHide(strName)
{
	// Get item
	var cItem = document.getElementById(strName);
	
	// Validate
	if (cItem)
	{
		// -- Get cookie
		var strCookie = getCookie("hidden");
		if (strCookie == null)
		{
			strCookie = "";
		}
		var aCookie = strCookie.length > 0 ? strCookie.split('||') : [];
		
		// -- Hidden?
		if (cItem.style.display != "none")
		{
			// -- -- Hide
			cItem.style.display = "none";
			
			// -- -- Make cookie
			if (strCookie.length == 0)
			{
				strCookie = strName;
			}
			else
			{
				strCookie += "||" + strName;
			}
			
		}
		else
		{
			// -- -- Show
			cItem.style.display = "";
			
			// -- -- Make cookie
			strCookie = "";
			for (i in aCookie)
			{
				if (aCookie[i] != strName)
				{
					if (strCookie.length == 0)
					{
						strCookie = strName;
					}
					else
					{
						strCookie += "||" + strName;
					}
				}
			}
		}

		// -- Set cookie
		setCookie("hidden", strCookie);
	}
}

// Change class
function changeClass(cItem, strClass)
{
	if (cItem)
	{
		cItem.className = strClass;
	}
}


function hasClass(node, className) 
{
	if (node.className == className) 
	{
		return true;
	}
	
  	var reg = new RegExp('(^| )'+ className +'($| )')
  	if (reg.test(node.className)) 
  	{
    		return true;
	}
  	
	return false;
}

function absolutePosition(el) 
{
	var sLeft = 0, sTop = 0;
	var isDiv = /^div$/i.test(el.tagName);
	if (isDiv && el.scrollLeft) 
	{
		sLeft = el.scrollLeft;
	}
	if (isDiv && el.scrollTop) 
	{
		sTop = el.scrollTop;
	}
	var r = { x: el.offsetLeft - sLeft, y: el.offsetTop - sTop };
	if (el.offsetParent) 
	{
		var tmp = absolutePosition(el.offsetParent);
		r.x += tmp.x;
		r.y += tmp.y;
	}
	
	return r;
};

function removeNode(node) 
{
	if (typeof node == 'string') 
	{
		node = $(node);
	}
	
	if (node && node.parentNode) 
	{
		return node.parentNode.removeChild(node);
	}
	else 
	{
		return false;
	}
}

function addSubmitEvent(form, func) 
{
	var oldSubmit = form.onsubmit;
	if (typeof oldSubmit != 'function') 
	{
		form.onsubmit = func;
	}
	else 
	{
		form.onsubmit = function() 
		{
			return oldSubmit() && func();
		}
	}
}

function addClass(node, className) 
{
	if (hasClass(node, className)) 
	{
		return false;
	}
	
	node.className += ' ' + className;
	
	return true;
}

function removeClass(node, className) 
{
	if (!hasClass(node, className)) 
	{
		return false;
	}
	node.className = eregReplace('(^| )'+ className +'($| )', '', node.className);
	return true;
}

function eregReplace(search, replace, subject) 
{
	return subject.replace(new RegExp(search,'g'), replace);
}
