var minFlash=8;
var img2flvClass="img2flv";
var altContentClass="altContent";
var flvPlayer="player.swf"; // v4.2 - Jeroen Wijering - http://jeroenwijering.com/
var playerSkin="snel.swf"; // v1.0 - LongTail Video - http://www.longtailvideo.com/

// Part of my personal standard set of functions
function $id(i){return(document.getElementById(i)?document.getElementById(i):false)}
function idExists(i){return($id(i)?true:false)}
function domFunctions(){return(document.getElementById&&document.getElementsByTagName)}
function isFlash(v){var t=20,i=0;if(navigator.plugins&&navigator.plugins.length){for(var x=0;x<navigator.plugins.length;x++){if(navigator.plugins[x].name.indexOf('Shockwave Flash')!=-1){i=parseInt(navigator.plugins[x].description.split('Shockwave Flash ')[1]);break}}}else if(window.ActiveXObject){for(var x=2;x<=t;x++){try{if(eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash."+x+"');"))i=x}catch(e){}}}return((i>=v)?i:0)}

/* author: Simon Willisons - http://simon.incutio.com/archive/2004/05/26/addLoadEvent */
function addLoadEvent(f){var o=window.onload;if(typeof window.onload!='function'){window.onload=f}else{window.onload=function(){o();f()}}}

function flashVideo(id){
  var obj=$id(id);
  if (obj.src){
    var image=obj.src;
    // apply image to background of parent container for a smooth changeover to video
    $id(id).parentNode.style.background="url("+image+") no-repeat";

    var f=image.substring(0,image.lastIndexOf("."))
    var video=f+".flv";

    var appWidth=obj.width;
    var appHeight=obj.height;

    // alternative content
    var captions=f+".captions.xml";
    var download=f+".mp4";
    var altText=obj.alt;
    var alt=$id(id).nextSibling.nextSibling;
    var altContent=(alt && alt.className==altContentClass)?alt.innerHTML:"";
    var parent=obj.parentNode;
    if (video && image && parent && appWidth && appHeight && flvPlayer && isFlash(minFlash)){
      var flvVars='file='+video;
      flvVars+='&amp;displayheight='+appHeight;
      flvVars+='&amp;displaywidth='+appWidth;
      flvVars+='&amp;image='+image;
      flvVars+='&amp;autostart=false';
      flvVars+='&amp;controlbar=over'; // over/bottom/none
      flvVars+='&amp;screencolor=ffffff';
      flvVars+='&amp;skin='+playerSkin;

      // accessibility options
      flvVars+='&amp;link='+download;
      flvVars+='&amp;plugins=accessibility-1';
      flvVars+='&amp;captions='+captions;
      flvVars+='&amp;accessibility.fontsize=22';

      var str='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+minFlash+',0,0,0" width="'+appWidth+'" height="'+appHeight+'">';
      str+='<param name="movie" value="'+flvPlayer+'" />';
      str+='<param name="flvQuality" value="high" />';
      str+='<param name="allowfullscreen" value="true" />';
      str+='<param name="flashvars" value="'+flvVars+'" />';
      str+='<param name="wmode" value="transparent" />';
      str+='<!--[if !IE]> <-->';
      str+='<object data="'+flvPlayer+'" width="'+appWidth+'" height="'+appHeight+'" type="application/x-shockwave-flash">';
      str+='<param name="flvQuality" value="high" />';
      str+='<param name="allowfullscreen" value="true" />';
      str+='<param name="flashvars" value="'+flvVars+'" />';
      str+='<param name="wmode" value="transparent" />';
      str+='</object>';
      str+='<!-->';
      str+='<p>'+altText+'</p>';
// place here if only required for accessibility
//      str+=altContent;
      str+='<![endif]-->';
      str+='</object>';
// place here if always required (recommended)
      str+=altContent;
    }else{
      var str=parent.innerHTML;
    }
    parent.innerHTML=str;
  }
}


/* Parameters:
  The class name for generic replacements.
  The name of the function to build the Flash video object.
*/
function imageTo(classN,func){
  var imgs=document.getElementsByTagName('img');
  var imgIDs=new Array();
  var c=0;
  for (var i=0;i<imgs.length;i++){
    if (imgs[i].className==classN){
      if (!imgs[i].id){
        imgs[i].id=classN+i;
      }
      imgIDs[c++]=imgs[i].id;
    }
  }
  for (var i=0;i<imgIDs.length;i++){
    func(imgIDs[i]);
  }
}


function setup(){
  imageTo(img2flvClass,flashVideo);
}

/* test dom functions used are supported */
if (domFunctions()){
  addLoadEvent(setup);
}