// Video Magic JS by Anders Eskholm (c) 2007 - anders@eskholm.dk

// README
//
// Renders inline video (embedded) from Streetfire.net, Youtube.com, Google Video and MSN Soapbox
// Searches given page elements for links/urls to above mentioned video links, and replaces with embedded video
// This version is custom for Benjamin Magazines online (http://www.benjamin.dk/)
// Modify as you like, but keep original author comment, please.
//
// Replacing only if any valid link is present. Searching both plaintext urls and anchored links.
// Adding proper event listener to onload chain, for script to run at page load end.
//
// Enjoy.

function getPageContent(divId) {
    var content = "";
    try { content = document.getElementById(divId).innerHTML; } catch(E) {;}
    return content ? content : false;
}

function updatePageContent(divId, content) {
    var success = false;
    try { document.getElementById(divId).innerHTML = content; success = true; } catch(E) {;}
    return success;
}

function videoMagic() {
    var content = getPageContent('article_text');

    if(content) {
        var orig = content;
    	var serial = 0;

        // MSN SoapBox
        content = content.replace(/<a[^>]*?video\.msn\.com\/video\.aspx\?vid=([a-zA-Z0-9\-]+).*?<\/a>/gi,"<center><div id=\"video____soapbox____$1"+"____"+serial+"\"></div></center>");
        serial++;
        content = content.replace(/http:\/\/video\.msn\.com\/video\.aspx\?vid=([a-z0-9\-]+)/gi,"<center><div id=\"video____soapbox____$1"+"____"+serial+"\"></div></center>");
	    
        if(orig != content) {
			updatePageContent('article_text',content);
			var divs = document.getElementsByTagName('DIV');
			for(var i = 0; i < divs.length; i++) {
				if(divs[i].id.indexOf('video____') != -1) {
					var id = divs[i].id;
					var params = id.split("____");
					var provider = params[1];
					var videoId = params[2];
					if(provider == 'soapbox') {
						var so;
						so = new SWFObject("http://images.soapbox.msn.com/flash/soapbox1_1.swf", "flash_embed", "320", "264", "6", "#e5e5e5");
    				so.addParam("scale", "noscale");
    				so.addParam("quality", "high");
    				so.addParam("menu", "false");
    				so.addParam("FlashVars","c=v&v="+videoId);
    				so.write(id);
					}
				}
			}
		}
    }
}

if(window.addEventListener)
    window.addEventListener("load", videoMagic, false);
else if(window.attachEvent)
    window.attachEvent("onload", videoMagic);
else if(document.getElementById)
    window.onload=videoMagic;


