/*  MavenPlayer: Maven Player embeding code.  Copyright 2003-2008 Maven Networks, Inc.  All rights reserved. */
if(typeof maven  == "undefined") maven = new Object();
if(typeof maven.PlayerDefaults == "undefined") {
  // NOTE: error handling.
}
if(typeof maven.util == "undefined") maven.util = new Object();
if(typeof maven.PlayerObjectUtils == "undefined") maven.PlayerObjectUtils = new Object();
var mpoself;
maven.PlayerObject = function(scriptId) {
  mpoself = this;
  mpoself.scriptId = scriptId;
  mpoself.baseURL = "";
  // used to build swfobject.
  mpoself.parameters = new Object();
  // become flashvars.
  mpoself.variables = new Object();
  mpoself.allowFullScreen = true;
  mpoself.wMode = "";
}
maven.PlayerObject.defaultFlashVersion = "9";
maven.PlayerObject.setDefaultFlashVersion = function (flashVersion) {
  maven.PlayerObject.defaultFlashVersion = flashVersion;
};
maven.PlayerObject.prototype = {
/*
  checkSystemId
  flashVersion
  embedId
  playerWidth
  playerHeight
  backgroundColor
  swfObjectName
*/
  setParameter: function(name, value){
    mpoself.parameters[name] = value;
  },
  getParameter: function(name){
    return mpoself.parameters[name];
  },
/*
  referrer
  noreferrer
  referralPlaylistId
  referralObject
  dartZone
  dartSite
*/
  setVariable: function(name, value){
    mpoself.variables[name] = value;
  },
  getVariable: function(name){
    return mpoself.variables[name];
  },
  setQueryParamsAsVariables: function(enableQueryStringFiltering) {
    var a = MavenPlayerUtils.parseQueryString(location.search, enableQueryStringFiltering);
    for (var name in a)
      mpoself.setVariable(name, a[name]);
  },
  setAllowFullScreen: function(value) {
    mpoself.allowFullScreen = value;
  },
  setWMode: function(value) {
    mpoself.wMode = value;
  },
  write: function(flashId) {
    mpoself.flashId = flashId;
    if(mpoself.parameters["checkSystemId"])
      MavenCheckSystemUtils.checkSystem(mpoself.parameters["checkSystemId"]);
    var script = document.getElementById(mpoself.scriptId);
    if(script == null) {
      // NEEDSWORK: error handling when we can't find the script tag?
    }
    mpoself.baseURL = script.src.substring(0, script.src.indexOf(PlayerDefaults.playerId+".js"));
    mpoself.setVariable("playerId", PlayerDefaults.playerId);
    mpoself.setVariable("playlistId", PlayerDefaults.playlistId);
    mpoself.setVariable("allowDomains", document.location.hostname);
    // NOTE:
    var swfFileName = mpoself.parameters["swfFileName"] ? mpoself.parameters["swfFileName"] : (typeof(gSWFName) != "undefined" ? gSWFName : gPlayerDefaults.playerTemplateId);
    if(swfFileName.indexOf(".swf") == -1)
      swfFileName = swfFileName + ".swf";
    var embedId = mpoself.parameters["embedId"] ? mpoself.parameters["embedId"] : "mavenFlashPlayer";
    var playerWidth = mpoself.parameters["playerWidth"] ? mpoself.parameters["playerWidth"] : (typeof(gPlayerWidth) != "undefined" ? gPlayerWidth : "100%");
    var playerHeight= mpoself.parameters["playerHeight"] ? mpoself.parameters["playerHeight"] : (typeof(gPlayerHeight) != "undefined" ? gPlayerHeight : "100%");
    var defaultFlashVersion = maven.PlayerObject.defaultFlashVersion;
    // just to be safe, in case maven.PlayerObject.defaultFlashVersion doesn't exist, hard-code 9
    var version = mpoself.parameters["flashVerson"] ? mpoself.parameters["flashVerson"] : (defaultFlashVersion ? defaultFlashVersion : "9");
    var backgroundColor = mpoself.parameters["backgroundColor"] ? mpoself .parameters["backgroundColor"] : "#000000";
    // NOTE: end example settings.js
    var swf = mpoself.baseURL + PlayerDefaults.skinnedPlayerTemplateId + "/" + PlayerDefaults.playerTemplateId + "/client/" + swfFileName;
    var so = new SWFObject(swf, embedId, playerWidth, playerHeight, version, backgroundColor);
    so.skipDetect = false;

    so.useExpressInstall(mpoself.baseURL + "/expressinstall.swf");

    so.setAttribute('xiRedirectUrl', top.document.location);
    var swfObjectName = mpoself.parameters["swfObjectName"] ? mpoself.parameters["swfObjectName"] : PlayerDefaults.playerTemplateId;
    so.addParam("name", swfObjectName);
    so.addParam("play", "false");
    so.addParam("quality", "high");
    so.addParam("scale", "noscale");
    so.addParam("salign", "LT");
    so.addParam("scriptAccess", "always");
    so.addParam("allowScriptAccess", "always");
    if(mpoself.allowFullScreen) {
      so.addParam("menu", "true");
      so.addParam("allowFullScreen", "true");
    }
    else {
      so.addParam("menu", "false");
      so.addParam("wmode", "transparent");
    }
    if(mpoself.wMode)
      so.addParam("wmode", mpoself.wMode);
    for(name in mpoself.variables)
      so.addVariable(name, mpoself.variables[name]);
    if(mpoself.parameters["debugging"] == "true")
      so.addVariable("debugging","true");
    var flashParent = document.getElementById(mpoself.flashId);
    if (!so.write(flashParent))
      flashParent.appendChild(mpoself.createFlashUpgradeNotice());
    // Retain a reference to the flash embed in the global gFlashControl for use by mavenVideo.js, etc.
    gFlashControl = document.getElementById(embedId);
  },
  createFlashUpgradeNotice: function() {
    var upgradeNotice = document.createElement("div");
    upgradeNotice.style.padding = "5px";
    upgradeNotice.innerHTML = "<span class='mavenFlashUpgradeNotice'>In order to use this player, please <a class='mavenFlashUpgradeNoticeLink' target='_top' href='http://www.adobe.com/go/getflashplayer'>download the latest Adobe Flash player</a>.</span>";
    return upgradeNotice;
  }
}
maven.CheckSystemUtils = function() {
  // browser detection
  this.userAgent = navigator.userAgent.toLowerCase();
  // platform
  this.isMac = (this.userAgent.indexOf("mac") != -1);
  this.isWin = (this.userAgent.indexOf("win") != -1);
  // browser
  this.isSafari = ((this.userAgent.indexOf("safari") != -1) || (this.userAgent.indexOf("applewebkit") != -1));
  this.isSafari13Up = (this.isSafari && document.execCommand);
  this.isGecko = (!this.isSafari && (navigator.product == 'Gecko'));
  this.isGecko17Up = (this.isGecko && (window.find != undefined));
  this.isGecko18Up = (this.isGecko17Up && ([].forEach != undefined));
  this.isIe = (this.userAgent.indexOf("msie") != -1);
  this.isIe6Up = (this.isIe && document.getElementById && document.compatMode);
}
maven.CheckSystemUtils.prototype = {
  checkSystem: function(pCheckSystemId) {
    this.checkSystemId = pCheckSystemId;
    var currentConfiguration = navigator.appName + ' ' + navigator.appVersion + ' on ' + navigator.platform;
    var minRequiredConfiguration = 'Internet Explorer 6 or 7 or Firefox 1.5/2.0 on Windows XP SP2 or Windows Vista, or Safari 2.0 or Firefox 1.5/2.0 on Mac OS X v10.4 or Mac OS X v10.5 is required to view this player.'; 
    var configurationFeedback = minRequiredConfiguration + ' Current configuration is ' + currentConfiguration;
    var downloadIe = 'http://www.microsoft.com/downloads/details.aspx?FamilyID=1e1550cb-5e5d-48f5-b02b-20b602228de6&displaylang=en'
    var downloadFf = 'http://www.mozilla.com/firefox/';
    var downloadSafari = 'http://www.apple.com/support/downloads/safariupdate131.html';
    var downloadBrowserLink = null;
    if( this.isWin ) {
      if( !this.isIe && !this.isGecko || this.isIe && !this.isIe6Up )
        downloadBrowserLink = downloadIe;
      else if( this.isGecko && !this.isGecko18Up )
        downloadBrowserLink = downloadFf;
    }
    else if( this.isMac ) {
      if( !this.isSafari && !this.isGecko || this.isSafari && !this.isSafari13Up )
        downloadBrowserLink = downloadSafari;
      else if( this.isGecko && !this.isGecko18Up )
        downloadBrowserLink = downloadFf;
    }
    if (downloadBrowserLink)
      this.showSysReq( configurationFeedback, downloadBrowserLink );
  },
  showSysReq: function(message, link) {
    var wSize = MavenPlayerUtils.getWindowSize();
    var sysReqContainer = document.getElementById(this.checkSystemId);
    sysReqContainer.style.display = 'block';
    // minimum size should be 240x180 for layout purposes (unless the width/height is less than that)
    sysReqContainer.style.width = Math.max(Math.min(wSize[0], 240), wSize[0] * .3) + "px";
    sysReqContainer.style.height = Math.max(Math.min(wSize[1], 180), wSize[1] * .3) + "px";
    if(link)
      sysReqContainer.innerHTML = "<p align='center'><font color='#000000'> " + message + "</font><br><br><br><a href=" + link + ">Click here to update.</a></p>";
    else
      sysReqContainer.innerHTML = "<p align='center'><font color='#000000'> " + message + "</font>";
    MavenPlayerUtils.positionDialog('sysReqContainer');
  }
}
maven.PlayerObjectUtils.hide=function(id) {
  var e = document.getElementById(id);
  if(e) e.style.display = 'none';
}
maven.PlayerObjectUtils.status=function(id, status) {
  var e = document.getElementById(id);
  if(e) e.innerHTML = status;
}
maven.PlayerObjectUtils.getWindowSize=function(){
  var ww, wh;
  if (self.innerHeight) {
    ww = self.innerWidth;
    wh = self.innerHeight;
  }
  else if (document.documentElement && document.documentElement.clientHeight) {
    ww = document.documentElement.clientWidth;
    wh = document.documentElement.clientHeight;
  }
  return [ww, wh];
},
maven.PlayerObjectUtils.positionDialog=function(d){
  var de = (typeof(d) == "string") ? document.getElementById(d) : d;
  var wSize = getWindowSize();
  if(de) {
    de.style.left = (wSize[0] - de.offsetWidth) / 2 + 'px';
    de.style.top = (wSize[1] - de.offsetHeight) /2 + 'px';
  }
}
maven.PlayerObjectUtils.doContextMenu=function(){
  var ev = window.event;
  return (ev.altKey && ev.ctrlKey);
}
maven.PlayerObjectUtils.parseQueryString=function(str, enableQueryStringFiltering){
  str = str ? str : location.search;
  var parentWin = window.parent;
  while (!str) {
    try {
      str = parentWin.location.search;
    } catch (e) {
      break;
    }
    if (parentWin == parentWin.parent)
      break;
    parentWin = parentWin.parent;
  }

  var query = str.charAt(0) == '?' ? str.substring(1) : str;
  var args = new Object();
  var maven_args = new Object();
  if (query) {
    var fields = query.split('&');
    for (var f = 0; f< fields.length; f++) {
      var field = fields[f].split('=');
      var fieldName = field[0];
      if (fieldName.indexOf("maven_") == 0)
        maven_args[fieldName.substring("maven_".length)] = field[1];
      // otherwise, add it to the normal array
      else
        args[fieldName] = field[1];
    }
    if (enableQueryStringFiltering && ("&" + query).search(/&maven_/) != -1)
      args = maven_args;
    else {
      for (var fieldName in maven_args)
        args[fieldName] = maven_args[fieldName];
    }
  }
  return args;
}
var MavenCheckSystemUtils = new maven.CheckSystemUtils();
var MavenPlayerUtils = maven.PlayerObjectUtils;
var MavenPlayer = maven.PlayerObject;
var gFlashControl = null;
function isRuntime() {

  return true;

}

// NOTE: dynamically include the mpExtensions.js from the template
var src;
var file = maven.PlayerDefaults.playerId+".js";
var elements=document.getElementsByTagName("script");
for(var i=0;i<elements.length;i++){
  var tag=elements[i];
  src=tag.src;
  if(!src||!(src.substr(src.length-file.length)==file))
    continue;
  break;
}
src = src.substring(0,src.lastIndexOf(file));
var mpExtensionsSrc = src + PlayerDefaults.skinnedPlayerTemplateId + "/" + PlayerDefaults.playerTemplateId + "/client/mpExtensions.js";
try {document.write("<sc"+"ript type=\"text/javascript\" id='mpExtensions' src=\""+mpExtensionsSrc+"\">"+"<"+"/scri"+"pt>");}catch(e){}
