var Engine = {
  detect: function() {
    var UA = navigator.userAgent;
    this.isKHTML = /Konqueror|Safari|KHTML/.test(UA);
    this.isGecko = (/Gecko/.test(UA) && !this.isKHTML);
    this.isOpera = /Opera/.test(UA);
    this.isMSIE  = (/MSIE/.test(UA) && !this.isOpera);
  }
}
Engine.detect();

var slider = null;
var started = false;
var playing = false;
var duration = 0;

 function init() {  
  if(quicktimeVersion<7) {
    alert('QuickTime 7 required for playback of the fluxiom video. Please download QuickTime 7 at http://www.apple.com/quicktime');
    return;
  }
  
  if(Engine.isMSIE) {
    $('video').innerHTML = "<object id=\"movie\" classid=\"clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B\" codebase=\"http://www.apple.com/qtactivex/qtplugin.cab\" width=\"720\" height=\"400\"><param name=\"src\" value=\"fluxiom.mov\" /><param name=\"controller\" value=\"false\" /><param name=\"autoplay\" value=\"false\" /></object>";
  } else {
    $('video').innerHTML = "<embed width=\"720\" height=\"400\" src=\"fluxiom.mov\" type=\"video/quicktime\" pluginspage=\"www.apple.com/quicktime/download\" autoplay=\"false\" id=\"movie\" enablejavascript=\"true\" controller=\"false\"> </embed>";
  }
  setInterval(update, 200);
}

function update() {
  try{
  if(!started)
  if(document.movie)
  if(document.movie.GetPluginStatus()=='Playable' || document.movie.GetPluginStatus()=='Complete') {
    duration = document.movie.GetDuration();
    
    $('track', 'play', 'pause').each(function(element) {
      new Effect.Opacity(element, {
        from:0.001, 
        to:0.999, 
        afterUpdate: function() {
          if(!slider) {
            slider = new Control.Slider('handle', 'track', {
              startSpan:'span-start',
              range:$R(0, duration),
              onSlide: function(v) {document.movie.SetTime(v);},
              onChange: function(v,s) {if(s.event) document.movie.SetTime(v);}
            });
          }
        }
      });
    });    
    started = true;
  }
  if(started && !playing) {
    document.movie.Play();
    playing = (document.movie.GetRate() == 1); 
  }
  if(started && playing) { try{ slider.setValue(document.movie.GetTime()) } catch(e) {} } 
  }
  catch(e) {}
}

// Quicktime Detection  v1.0
// documentation: http://www.dithered.com/javascript/quicktime_detect/index.html
// license: http://creativecommons.org/licenses/by/1.0/
// code by Chris Nott (chris[at]dithered[dot]com)


var quicktimeVersion = 0;
function getQuicktimeVersion() {
   var agent = navigator.userAgent.toLowerCase(); 
   
   // NS3+, Opera3+, IE5+ Mac (support plugin array):  check for Quicktime plugin in plugin array
   if (navigator.plugins != null && navigator.plugins.length > 0) {
      for (i=0; i < navigator.plugins.length; i++ ) {
         var plugin =navigator.plugins[i];
         if (plugin.name.indexOf("QuickTime") > -1) {
            quicktimeVersion = parseFloat(plugin.name.substring(18));
         }
      }
   }
   
   // IE4+ Win32:  attempt to create an ActiveX object using VBScript
   else if (agent.indexOf("msie") != -1 && parseInt(navigator.appVersion) >= 4 && agent.indexOf("win")!=-1 && agent.indexOf("16bit")==-1) {
     document.write('<scr' + 'ipt language="VBScript"\> \n');
      document.write('on error resume next \n');
      document.write('dim obQuicktime \n');
      document.write('set obQuicktime = CreateObject("QuickTimeCheckObject.QuickTimeCheck.1") \n');
      document.write('if IsObject(obQuicktime) then \n');
      document.write('   if obQuicktime.IsQuickTimeAvailable(0) then \n');
      document.write('      quicktimeVersion = CInt(Hex(obQuicktime.QuickTimeVersion) / 1000000) \n');
      document.write('   end if \n');
      document.write('end if \n');
      document.write('</scr' + 'ipt\> \n');
  }

   // Can't detect in all other cases
   else {
      quicktimeVersion = quicktimeVersion_DONTKNOW;
   }

   return quicktimeVersion;
}

quicktimeVersion_DONTKNOW = -1;
getQuicktimeVersion();

function checkQuicktime() {
  if(quicktimeVersion<7) { 
    Element.hide('controls');
    Element.show('alternatives');
  }
}