// JavaScript Document

/*var xmlHttp;
function createXMLHttpRequest()
{
	if( window.ActiveXObject ) xmlHttp = new ActiveXObject( 'Microsoft.XMLHTTP' );
	else if( window.XMLHttpRequest ) xmlHttp = new XMLHttpRequest();
}

function trim(str)
{
	return str.replace(/^\s*|\s*$/g,"");
}

function popup(url, name, w, h, attribs)
{
	if (attribs.length>0) attribs=','+attribs;
	return !window.open(url,'popup','height='+h+',width='+w+''+attribs);
}

function hookExternalLinks()
{
	var links=document.getElementsByTagName('a');
	for (var i=0; i<links.length; i++)
	{
		if (links[i].rel == 'external')
		{
			links[i].onclick = function(){
				return !window.open(this.href);
			};
		}
	}
}*/

var css = {
	getElementsByClass : function( node, searchClass, tag ) {
		var classElements = new Array();
		var els = node.getElementsByTagName( tag );
		var pattern = new RegExp( "(^|\\s)" + searchClass + "(\\s|$)" );

		for(var i=0, j=0; i<els.length; i++)
		{
			if( this.elementHasClass(els[i], searchClass) )
			{
				classElements[j] = els[i];
				j++;
			}
		}
		return classElements;
	},

	privateGetClassArray: function( el ) {
		return el.className.split(' '); 
	},

	privateCreateClassString: function( classArray ) {
		return classArray.join(' ');
	},

	elementHasClass: function( el, classString ) {
		if ( !el ) return false;
		var re = new RegExp( '\\b' + classString + '\\b' );
		return el.className.match( re );
	},

	addClassToId: function( id, classString ) {
		this.addClassToElement( document.getElementById( id ), classString );
	},

	addClassToElement: function( el, classString ) {
		var classArray = this.privateGetClassArray( el );

		if (this.elementHasClass( el, classString) ) return;

		classArray.push( classString );

		el.className = this.privateCreateClassString( classArray );
	},

	removeClassFromId: function(id, classString ) {
		this.removeClassFromElement( document.getElementById( id ), classString );
	},

	removeClassFromElement: function(el, classString) {
		var classArray = this.privateGetClassArray( el );

		for (i in classArray)
		{
			if (classString == classArray[i])
			{
				classArray[i] = '';
				break;
			}
		}

		el.className = this.privateCreateClassString( classArray );
	}
}