var ui_embed_template = '<div style="text-align:middle;display:inline;"><a href="' + window.location.toString() + '" title="|title|"><img src="|image|" border="0" alt="|title|" /></a><br/><a href="http://www.cagle.com/politicalcartoons/pccartoons/archives/|archive|" title="See Cartoons by |title|">See Cartoons by |title|</a> - <a href="http://politicalcartoons.com/" title="Politicalcartoons.com Cartoon">Courtesy of Politicalcartoons.com</a> - <a href="http://cagle.com/caglecards/main.asp?image=|image|" title="Cagle.com">Email this Cartoon</a></div>';
var hasInnerText;

function showCode(ele, img) {
    var ctl = document.getElementById("embedCtl");
    var txt = document.getElementById("embedText");
    var d = findPos(ele);
    
    //var name = getArtistName(img.substring(img.lastIndexOf('/') + 1, img.lastIndexOf('.')));
    var t = getArtist(img.substring(img.lastIndexOf('/') + 1, img.lastIndexOf('.')));
    var u = ui_embed_template.replace(/\|image\|/g, img).replace(/\|title\|/g, 'Cartoon by ' + t.artist).replace(/\|archive\|/g, t.page);

    ctl.style.top = d[1] - parseInt(ctl.style.height) - 12;
    ctl.style.left = d[0] - 335;
   
    if (!hasInnerText)    {txt.textContent = u}
    else {txt.innerText = u}
    
    ctl.style.visibility = 'visible';
    }
    
function closeEmbed()   { 
    document.getElementById("embedCtl").style.visibility = 'hidden';
    return false;
    }
    
function copyEmbed()    {
    if (window.clipboardData)   {window.clipboardData.setData('text', document.getElementById("embedText").innerText)}
    else {alert('Your browser does not support automatically copying to the clipboard.')}
    return false;
    }
    
function findPos(obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent) {
        do {
		    curleft += obj.offsetLeft;
		    curtop += obj.offsetTop;
            } 
        while (obj = obj.offsetParent);
        }
    return [curleft, curtop];
    }

function parseImages() {
    var b = document.images;
    var dir = '';
    var img;
    var filename;
    var pp;
    var halt = false;

    if (window.location.pathname.substring(0, 6) == '/news/') {dir = '/news/'}
    if (window.location.pathname.substring(0, 19) == '/politicalcartoons/') {dir = '/working/'}
    if (dir != '') {
        var c = window.location.protocol.length + window.location.host.length + 2;
        for (var i = 0; i < b.length; i++) {
            if (b[i].src.substring(c, c + dir.length) == dir)   {
                if (((b[i].width >= 495) && (b[i].width <= 600)) || ((b[i].width > 300) && (b[i].height > 200))) {
                    img = b[i].src;
                    filename = img.substring(img.lastIndexOf('/') + 1, img.lastIndexOf('.'));
                    var x = getToolbar(img, verifyArtist(filename), filename);
                    var p = b[i].parentNode.parentNode.nextSibling;
                    while (p.nodeType == 3) { p = p.nextSibling }
                    while ((p.nodeName != 'TABLE') && (p.nodeName != 'FONT') && (halt == false)) {
                        if (p.nodeName == '#comment') { p.parentNode.removeChild(p); p = b[i].parentNode.parentNode.nextSibling }
                        while (p.nodeType == 3) { p = p.nextSibling }
                        if (p.nodeName == 'P') { p = b[i].parentNode.nextSibling }
                        while (p.nodeType == 3) { p = p.nextSibling }
                        if (p.nodeName == 'BR') { p.parentNode.removeChild(p); p = b[i].parentNode.parentNode.nextSibling }
                        while (p.nodeType == 3) { p = p.nextSibling }
                        pp = p.nodeName;
                        if ((pp != 'TABLE') && (pp != 'FONT') && (pp != '#comment') && (pp != 'P') && (pp != 'BR'))   {halt = true}
                        else {halt = false}
                        }
                    if (!halt) {p.parentNode.insertBefore(x, p);}
                    //var e = document.createElement("div");
                    //e.style.backgroundColor = '#DEE2E4';
                    //e.style.padding = '0px 5px 0px 5px';
                    //e.style.width = 610;
                    //e.style.overflow = 'hidden';
                    //e.style.textAlign = 'left';
                    //var y = p.parentNode;
                    //y.insertBefore(e, p);
                    //e.appendChild(p);
                    }
                }
            }
        }
    }

function getToolbar(imageSrc, pol, rss) {
    var e = document.getElementById("pic_toolbar").cloneNode(true);
    e.childNodes[5].setAttribute("href", "http://rss.cagle.com/cagle/cartoonist/" + rss + ".xml");
    if (pol) {e.childNodes[0].childNodes[0].onclick = function() { showCode(this, imageSrc) } }
    else {
        e.childNodes[0].childNodes[0].onclick = function() { alert('This image is not available for embedding.') };
        e.childNodes[0].childNodes[0].setAttribute("src", "/includes/NoEmbed.gif");
        e.childNodes[0].childNodes[0].onmouseover = function() {void(0)};
        e.childNodes[0].childNodes[0].onmouseout = function() {void(0)};
        }
    //else { e.childNodes[0].childNodes[0].setAttribute("src", "/includes/UnEmbed.gif") }
    if ((hasInnerText == false) || (!window.clipboardData)) {
	e.childNodes[3].childNodes[0].onclick = function() {alert('Automatic Add to Favorites\nnot supported on this browser.')};
	e.childNodes[3].childNodes[0].setAttribute("src", "/includes/NoFavHeartBlue.gif");
        e.childNodes[3].childNodes[0].onmouseover = function() {void(0)};
        e.childNodes[3].childNodes[0].onmouseout = function() {void(0)};
	}
    e.childNodes[1].setAttribute("href", "/caglecards/main.asp?image=" + imageSrc);
    var o = SHARETHIS.addEntry({ title: 'Share this Cartoon', summary: 'Share this Cartoon' }, { button: false }, { offsetLeft: -400, offsetTop: -800 });
    o.attachButton(e.childNodes[4]);
    e.style.display = 'block';
    return e;
    }
    
function init() {
    if (typeof initArtistsArray == 'undefined') {window.setTimeout(init, 100)}
    else {
        hasInnerText = (document.getElementsByTagName("body")[0].innerText != undefined) ? true : false;
        initArtistsArray();
        if (!window.clipboardData) {document.getElementById("embed_clipboard").style.display = 'none';}
        }
    }
    
window.onload = function(){init();parseImages();}