// JavaScript Document

function addEvent(elm, evType, fn, useCapture)
{
	if(elm.addEventListener)
	{
		elm.addEventListener(evType, fn, useCapture);
	}
	else if(elm.attachEvent)
	{
		var r = elm.attachEvent('on' + evType, fn);
		
		return r;
	}
	else
	{
		elm['on' + evType] = fn;
	}
}



function addLoadEvent(func)
{
	var oldUnload = window.onload;
	
	if(typeof window.onload != 'function')
	{
		window.onload = func;
	}
	else
	{
		window.onload = function()
		{
			oldUnload();
			func();
		}
	}
}



function getElementsByClass(searchClass, node, tag)
{
	var classElements = new Array();
	
	if(node == null)
	{
		node = document;
	}
	
	if(tag == null)
	{
		tag = '*';
	}
	
	var elements = node.getElementByTagName(tag);
	
	var totalElements = elements.length;
	
	var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)");
	
	for (i = 0, j = 0; i < totalElements; i++)
	{
		if (pattern.test(elements[i].className))
		{
			classElements[j] = $elements[i];
			j++;
		}
	}
	
	return classElements;
}


/* toggle an element's display */
function toggleDisplay(obj) 
{
	var el = document.getElementById(obj);
	
	if ( el.style.display != 'none' ) 
	{
		el.style.display = 'none';
	}
	else 
	{
		el.style.display = '';
	}
}


/* Array prototype, matches value in array: returns bool */
Array.prototype.inArray = function (value) 
{
	var i;
	for (i=0; i < this.length; i++) 
	{
		if (this[i] === value) 
		{
			return true;
		}
	}
	return false;
};


/* get, set, and delete cookies */
function getCookie( name ) 
{
	var start = document.cookie.indexOf( name + "=" );
	
	var len = start + name.length + 1;
	
	if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) 
	{
		return null;
	}
	
	if ( start == -1 ) return null;
	
	var end = document.cookie.indexOf( ";", len );
	
	if ( end == -1 ) end = document.cookie.length;
	
	return unescape( document.cookie.substring( len, end ) );
}



function setCookie( name, value, expires, path, domain, secure ) 
{
	var today = new Date();
	today.setTime( today.getTime() );
	if ( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	document.cookie = name+"="+escape( value ) +
		( ( expires ) ? ";expires="+expires_date.toGMTString() : "" ) + //expires.toGMTString()
		( ( path ) ? ";path=" + path : "" ) +
		( ( domain ) ? ";domain=" + domain : "" ) +
		( ( secure ) ? ";secure" : "" );
}
	
function deleteCookie( name, path, domain ) {
	if ( getCookie( name ) ) document.cookie = name + "=" +
			( ( path ) ? ";path=" + path : "") +
			( ( domain ) ? ";domain=" + domain : "" ) +
			";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

/* quick getElement reference */
function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}



function redirect(url)
{
	document.location = url;
}



/**
 * this script taken from website http://www.quirksmode.org/
 */
 
 	function getObj(name)
	{
	  	if (document.getElementById)
	  	{
			this.obj = document.getElementById(name);
			this.style = document.getElementById(name).style;
	  	}
	  	else if (document.all)
	  	{
			this.obj = document.all[name];
			this.style = document.all[name].style;
	  	}
	  	else if (document.layers)
	  	{
			this.obj = document.layers[name];
			this.style = document.layers[name];
		}
		
		return this;
	}


	function findPosX(obj)
	{
		var curleft = 0;
		if (obj.offsetParent)
		{
			while (obj.offsetParent)
			{
				curleft += obj.offsetLeft
				obj = obj.offsetParent;
			}
		}
		else if (obj.x)
		{
			curleft += obj.x;
		}
		return curleft;
	}


	function findPosY(obj)
	{
		var curtop = 0;
		if (obj.offsetParent)
		{
			while (obj.offsetParent)
			{
				curtop += obj.offsetTop
				obj = obj.offsetParent;
			}
		}
		else if (obj.y)
			curtop += obj.y;
		return curtop;
	}
	
function getLayer(id)
{
	if(document.getElementById)
	{
		return document.getElementById(id);
	}
	else if(document.all)
	{
		return document.all[id];
	}
	else if(document.layers)
	{
		return document.layers[id];
	}
	else
	{
		alert('Not supported');
	}
}
