// Global Javascript file for Lancaster

//version:   1.0
//author:    Paul Boag
//email:     paul.boag@headscape.co.uk
//website:   http://www.headscape.co.uk

// Updated by Kris McKay
// now affects all images within a set div ID and uses the image's align property to set the class
// 2007-03-22

//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 getElementsByDivID(oElm2, strTagName, strIDName){
	var oElm = document.getElementById(strIDName);
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];      
        arrReturnElements.push(oElement);
    }
    return (arrReturnElements)
}

function toUpper(word) {
	var pattern = /(\w)(\w*)/;
	var parts = word.match(pattern);
	var firstLetter = parts[1].toUpperCase();
	var restOfWord = parts[2].toLowerCase();
	word = firstLetter + restOfWord;
	return word;
}

//Function for converting title tags on images into caption
function addCaption(xClass) {
	var allImages = getElementsByDivID(document, "IMG", xClass);
	for ( var i=0; i < allImages.length; i++) {
		var imageCaption = document.createTextNode(allImages[i].title);
		var imageContainer = document.createElement("div");
		var imagePara = document.createElement("p");
		var imageWidth = allImages[i].getAttribute("width");
		var spareSpan = document.createElement("span"); //This adds an extra span. Useful for curved corners
		imagePara.appendChild(imageCaption);
		allImages[i].parentNode.insertBefore(imageContainer, allImages[i]);
		imageContainer.appendChild(allImages[i]);
		if ( allImages[i].title != "" ) {
			imageContainer.appendChild(imagePara); 
		}
		imageContainer.appendChild(spareSpan);		
		if(allImages[i].getAttribute("align"))
			imageContainer.className = 'img'+toUpper(allImages[i].getAttribute("align"));
		else
			imageContainer.className = 'img'+toUpper('left');
		allImages[i].align = "";
		spareSpan.className = "spareSpan"
		allImages[i].className = "imgCaption"
		allImages[i].title = allImages[i].alt
		allImages[i].hspace = 0;
		allImages[i].vspace = 0;
		allImages[i].border = 0;
		imageContainer.style.width = imageWidth + "px";
    }
}

// Runs all the listed functions on the loading of the window

window.onload=function(){
	addCaption("vsCaption");
}
