/*
    Copyright Robert Nyman, http://www.robertnyman.com
    Free to use if this text is included
*/
//Get Element by Class Name from: http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/

function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements)
}
// modified from an article at boagworld */
// if an image has a class of xClass, 
//    copy the alt text to a p, and put the image and the p in a div (along with a spare span)
// if a link has a class of xClass,
//    copy the alt text to a p, and put the link with the image and a p in a div (along with a spare span)
//
function addCaption(xClass) {
var allImages = getElementsByClassName(document, "img", xClass);
for ( var i=0; i < allImages.length; i++) {
	var imageCaption = document.createTextNode(allImages[i].alt);
	var imageContainer = document.createElement("div");
	var imagePara = document.createElement("p");
	allImages[i].style.padding = "0"; /* IE calculates the width with padding, so zero it out */
	var imageWidth = allImages[i].getAttribute("width");
	var spareSpan = document.createElement("span");
	imagePara.appendChild(imageCaption);
	allImages[i].parentNode.insertBefore(imageContainer, allImages[i]);
	imageContainer.appendChild(allImages[i]);
	if ( allImages[i].alt != "" ) {
		imageContainer.appendChild(imagePara);
		}
	imageContainer.appendChild(spareSpan);
	imageContainer.className = xClass;
	spareSpan.className = "spareSpan";
	imagePara.className = "captionText";
	allImages[i].className = "captionedImage";
	imageContainer.style.width = imageWidth + "px";
	}


var allLinks = getElementsByClassName(document, "a", xClass);
for ( var i=0; i < allLinks.length; i++) {
	var childImage = allLinks[i].firstChild;
	if (childImage.tagName == "IMG") {
		var imageCaption = document.createTextNode(childImage.alt);
		var imageContainer = document.createElement("div");
		var imagePara = document.createElement("p");
		var imageWidth = childImage.getAttribute("width");
		var spareSpan = document.createElement("span");
		imagePara.appendChild(imageCaption);
		allLinks[i].parentNode.insertBefore(imageContainer, allLinks[i]);
		imageContainer.appendChild(allLinks[i]);	
		if ( childImage.alt != "" ) {
			imageContainer.appendChild(imagePara);
			}
		imageContainer.appendChild(spareSpan);
		imageContainer.className = xClass
		allLinks[i].className = "captionedImageLink"
		imagePara.className = "captionText";		
		spareSpan.className = "spareSpan";
		childImage.className = "captionedImage"
		imageContainer.style.width = imageWidth + "px";
		}
	}
}

