
var playerVersion = null;

function isObject(type){
  return ( "undefined" != typeof(type) );
}


function winIE5upPlyrDetect(){
  var player;
  var iectl;
  try {
    iectl = new ActiveXObject("Shell.Explorer");
  }
  catch(e){
  }
  try{
    player = new ActiveXObject("rmocx.RealPlayer G2 Control.1");
    playerVersion = (player.GetVersionInfo());
  }
  catch(e){
  }
  if(!isObject(iectl)){
    return false; //ActiveX disabled
  }
  return new String(isObject(player));
}

function checkPlugin(name){
  plugin = navigator.plugins[name];
  if(isObject(plugin)){
    playerVersion = plugin.description;
    return true;
  }
  return false;
}

function checkFuzzyPluginVersion() {
  if ( arguments == null || arguments.length <= 0 )
    return false;
  var plugins = navigator.plugins;
  if ( plugins != null && plugins.length > 0 ) { 
    for(i=0; i<plugins.length; i++) {
      var name = " " + plugins[i].name;
      var desc = " " + plugins[i].description;
      var allFound = true;;
      for(j=0; j<arguments.length; j++) {
        if ( name.indexOf(" " + arguments[i]) < 0 
            && desc.indexOf(" " + arguments[i]) < 0 ) { // not found
            allFound = false;
            break;
        }
      }
      if ( allFound ) {
        var versRX = /[0-9]+[\.][0-9]+[\.][0-9]+[\.][0-9]+/;
        playerVersion = desc.match(versRX);
        return true;
      }
    }
  }
  return false;
}

function pluginDetect(){
    var result = (checkPlugin("RealPlayer Version Plugin"))
                ||
                 (checkPlugin("RealOne Player Version Plugin"));
    if ( result ) {
      return result;
    }
    return checkFuzzyPluginVersion("RealPlayer","G2", "Plug-In");
}

function mimeTypeDetect(){
  return (
    isObject(navigator.mimeTypes)
    &&
    isObject(navigator.mimeTypes["audio/x-pn-realaudio-plugin"])
    );
}

function isWinIE5plus(){
  var result = false;
  var uaLower = navigator.userAgent.toLowerCase();
  if(uaLower.indexOf("windows") >=0 && uaLower.indexOf("msie")>=0){
    var versRX = /msie\s+[5-9]/;
    result = versRX.test(uaLower);
  }
  return result;
}

function hasRealPlayer(){
  if( isWinIE5plus() ){
    return (winIE5upPlyrDetect() == "true");
  }else{
    return (pluginDetect() || mimeTypeDetect());
  }
}


            
