addEvent(window, "load", makeDropCaps);
//addEvent(window, "load", makeDropShadows);
//addEvent(window, "load", externalLinks);
addEvent(window, "load", makePullQuote);

function makeDropCaps() {
    divs = document.getElementsByTagName('div');
    for (i=0; i<divs.length; i++) {
        if (divs[i].className != 'article') continue;
        ps = divs[i].getElementsByTagName('p');
        for (j=0; j<ps.length; j++) {
            for (k=0; k<ps[j].childNodes.length; k++) {
                tnode = ps[j].childNodes[k];
                if (tnode.nodeName != "#text" ||
                    (index = tnode.nodeValue.search(/\w/)) == -1) continue;
                capspan = document.createElement('span');
                captext = document.createTextNode(tnode.nodeValue.charAt(index));
                capspan.appendChild(captext);
                capspan.className = 'dropcap';
                tnode.nodeValue = tnode.nodeValue.substr(index+1);
                tnode.parentNode.insertBefore(capspan, tnode);
                return 
            }
        }
    }
}

function addEvent(obj, evType, fn){
    if (obj.addEventListener){
        obj.addEventListener(evType, fn, true);
        return true;
    } else if (obj.attachEvent){
        var r = obj.attachEvent("on"+evType, fn);
        return r;
    } else {
        return false;
    }
}

function makeDropShadows(){
    var imgs = 	document.getElementsByTagName('img');
    for (var i=0; i<imgs.length; i++){
        if (imgs[i].className == 'right' ||
            imgs[i].className == 'left') {
            var wrap1 = document.createElement("div");
            wrap1.className = imgs[i].className + " wrap1";
            imgs[i].className = "nothing";
            var wrap2 = document.createElement("div");
            wrap2.className = "wrap2";
            var wrap3 = document.createElement("div");
            wrap3.className = "wrap3";
            var outerNode = imgs[i].parentNode;
            outerNode.insertBefore(wrap1, imgs[i]);
            wrap1.appendChild(wrap2);
            wrap2.appendChild(wrap3);
            wrap3.appendChild(imgs[i]);    
	}
    }
    var element = document.getElementsByTagName('div');
    for (var i=0; i<element.length; i++){
        if (element[i].className == "map") {
            var wrap1 = document.createElement("div");
            wrap1.className = "wrap1";
            element[i].className = '';
            var wrap2 = document.createElement("div");
            wrap2.className = "wrap2";
            var wrap3 = document.createElement("div");
            wrap3.className = "wrap3";
            var outerNode = element[i].parentNode;
            outerNode.insertBefore(wrap1, element[i]);
            wrap1.appendChild(wrap2);
            wrap2.appendChild(wrap3);
            wrap3.appendChild(element[i]);    
        }
    }
}


function externalLinks() {
    if (!document.getElementsByTagName) return;
    var anchors = document.getElementsByTagName("a");
    for (var i=0; i<anchors.length; i++) {
        var anchor = anchors[i];
        if (anchor.getAttribute("href") &&
            anchor.getAttribute("rel") == "external")
            anchor.target = "_blank";
    }
}

function makePullQuote() {
    var divs = document.getElementsByTagName('div');
    for (var i=0; i<divs.length; i++) {
        if (divs[i].className != 'article') continue;
        parentDiv = divs[i];
        spans = parentDiv.getElementsByTagName('span');
        for (var j = 0; j < spans.length; j++) {
            span = spans[j];
            up = span.parentNode;	
            if(span.className == "pullquote") {
                var pullquote = document.createElement("blockquote");
                pullquote.className = "pullquote";
                var paragraph = document.createElement("p");
                var zspan = span;
                zspan.className = ""; 
                paragraph.appendChild(zspan.cloneNode(true));
                pullquote.appendChild(paragraph);
                //parentDiv.appendChild(pullquote);
                //parentDiv.insertBefore(pullquote,up);	
                up.insertBefore(pullquote,span);	
            }
        }
    }
}
