window.addEventListener?window.addEventListener("load",addCaption,false):window.attachEvent("onload",addCaption);

//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)
}

function addCaption() {
	var allImages = getElementsByClassName(document, "img", "image_with_caption");

	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");
		var imageWidth = allImages[i].getAttribute("width");

		imagePara.appendChild(imageCaption);
		allImages[i].parentNode.insertBefore(imageContainer, allImages[i]);
		imageContainer.appendChild(allImages[i]);

		if ( allImages[i].alt != "" ) {
			imageContainer.appendChild(imagePara);
		}

		imageContainer.className = "image_with_caption"
		allImages[i].className = "img"
		imageContainer.style.width = imageWidth + "px";
	}
}