

var visualeffects = { 

	init:function() {

	},
	
	addRoundedCorners:function() {
	
		var parentEl = document.getElementById('maincontent');
		var aryEls = el.byClassName('roundedcorners','li',parentEl);

		var n = aryEls.length;
		while (n--)

		{
			var genericCornerTopLeftId = 'genericCornerTopLeft' + n;
			var genericCornerTopRightId = 'genericCornerTopRight' + n;
			var genericCornerBottomLeftId = 'genericCornerBottomLeft' + n;
			var genericCornerBottomRightId = 'genericCornerBottomRight' + n;
		
			var cornerTopLeft = visualeffects.createHTMLElement('div',genericCornerTopLeftId,'genericCornerTopLeft');
			var cornerTopRight = visualeffects.createHTMLElement('div',genericCornerTopRightId,'genericCornerTopRight');
			var cornerBottomLeft = visualeffects.createHTMLElement('div',genericCornerBottomLeftId,'genericCornerBottomLeft');
			var cornerBottomRight = visualeffects.createHTMLElement('div',genericCornerBottomRightId,'genericCornerBottomRight');
			var originalEl  = aryEls[n].cloneNode(true);
			var oElParent =  aryEls[n].parentNode;
			var oElInnerHTML  = aryEls[n].innerHTML;
			aryEls[n].innerHTML = '';
		
			aryEls[n].appendChild(cornerTopLeft);
			aryEls[n].appendChild(cornerTopLeft);
		
			document.getElementById(genericCornerTopLeftId).appendChild(cornerTopRight);
			document.getElementById(genericCornerTopRightId).appendChild(cornerBottomLeft);
			document.getElementById(genericCornerBottomLeftId).appendChild(cornerBottomRight);
			document.getElementById(genericCornerBottomRightId).innerHTML = oElInnerHTML ;
		}

	},

	createHTMLElement:function(strType,strId,strClassName) {

		strType = strType || 'div';
		strId = strId || 'genericId' + Math.floor ( Math.random ( ) * 1000000 + 1 ) ;
		strClassName = strClassName || '';

		var newEl = document.createElement(strType);
		newEl.id = strId;
		newEl.className = strClassName;

		return newEl;
	}

	
	
}




var	el = {

	byId: function(elementId) {
		if( document.getElementById ) { return document.getElementById(elementId); }
		else { return false; }
	},

// strClassName: string containing the class(es) that you are looking for 
// strTag (optional, defaults to ‘*’) : An optional tag name to narrow the search to specific tags e.g. ‘a’ for links.
// objElParent (optional, defaults to document) An optional object container to search inside. Again this narrows the scope of the search 
	byClassName: function(strClassName, strTag, objElParent) {
		if (!strClassName) return false;
		strTag = strTag || '*';
		objElParent = objElParent || document;
		var aryAllEls = (strTag == '*' && document.all) ? document.all : objElParent.getElementsByTagName(strTag);
		var ary = [];
	    var re = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	    var n = aryAllEls.length;
		while (n--) 
		{
	       if(re.test(aryAllEls[n].className))
			{
            	ary.push(aryAllEls[n]);
	        }  
	    }
		return ary;
	}
}

// To cover IE 5.0's lack of the push method
Array.prototype.push = function(value) {
	this[this.length] = value;
}