/* CREDITS */

/* The getNodeListByClassName function is from       */
/* http://javascript.about.com/library/bldom08.htm   */
/* (The name was changed from getElementsByClassName */
/* to avoid possible name clash).                    */

/* The code in the loadCornersCSS function is generally from     */
/* http://www.hunlock.com/blogs/Totally_Pwn_CSS_with_Javascript. */

/* The div structure resulting from adding the corner hooks, and   */
/* the style rules in the associated file corners.css are based on */
/* those in "Web Design in a Nutshell, 3rd Ed.", pp. 433-434.      */

/* And finally, http://slayeroffice.com/articles/innerHTML_alternatives/ */
/* gave me the idea of keeping more to semantic HTML by adding elements  */
/* to an HTML page via the DOM.                                          */


document.getNodeListByClassName = function(cl) {
	var retnode = [];
	var myclass = new RegExp('\\b'+cl+'\\b');
	var elem = this.getElementsByTagName('*');
	for (var i = 0; i < elem.length; i++) {
		var classes = elem[i].className;
		if (myclass.test(classes)) retnode.push(elem[i]);
	}
	return retnode;
};

function createDiv(clsvalue)
{
	var eDiv = document.createElement("div");
	eDiv.className = clsvalue;
	return eDiv
}

function appendObj(targetId,eObj)
{
	var eTarget = document.getElementById(targetId);
	eTarget.appendChild(eObj);
	return eTarget;
}

function loadCornersCSS()
{
	var cssNode = document.createElement('link');
	cssNode.type = 'text/css';
	cssNode.rel = 'stylesheet';
	cssNode.href = 'css/corners.css';
	cssNode.media = 'all';
	cssNode.title = 'dynamicLoadedSheet';
	document.getElementsByTagName("head")[0].appendChild(cssNode);
}

function addCorners(boxclass)
{
	var boxes = document.getNodeListByClassName(boxclass);

	for (var i=0; i<boxes.length; i++)
	{
		// select box
		var eBox = boxes[i];

		// add corner hooks
		var eulDiv = createDiv("upper_left");
		var eurDiv = createDiv("upper_right");
		eulDiv.appendChild(eurDiv);
		eBox.appendChild(eulDiv);

		var ellDiv = createDiv("lower_left");
		var elrDiv = createDiv("lower_right");
		ellDiv.appendChild(elrDiv);
		eBox.appendChild(ellDiv);
	}

	loadCornersCSS();
}
