//
// loads the neo digital video player multiple times
//
//
// reference player...
// always use 'sports' network
// prod and qa for parity with those - use prod

var index_video = {

type : {
loadmultipleinstances : 1
},

//url_neodigital : 'http://player.foxneodigital.com/:version/index.php?network=fox',
url_neodigital : 'http://player.foxneodigital.com/sports', // sports/qa for qa site

prepare : function () {
// Failed to execute 'write' on 'Document': It isn't possible to write into a \
// document from an asynchronously-loaded external script unless it is \
// explicitly opened.
document.write = function (d) {
// we remove document.write
};
},

getFDM_Player : function (url, fn) {
lazyload.js([url], function () {
if (typeof FDM_Player === 'function') {
fn(null, FDM_Player);
} else {
throw new Error('[!!!] getFDM_Player: failed');
}
});
},

// loads the neodigital only -does not load any video
loadingneodigital_once : function (loadnum, version, fn) {
var url_neodigital = index_video.url_neodigital.replace(/:version/, version) + '&num=' + loadnum,
start = Date.now(),
end;

index_video.getFDM_Player(url_neodigital, function (err, FDM_Player) {
  end = Date.now();

  console.log('');

  fn(null, { 
    path : url_neodigital,
    start : start,
    end : end,
    ms : end - start
  });
});

},

loadingneodigital_all : function (loadnum, version, data, eachfn, completefn) {
data = data || {
num : loadnum,
version : version,
loadedarr : []
};

index_video.loadingneodigital_once(loadnum, version, function (err, d) {
  data.loadedarr.push(d);
  eachfn(null, data);

  if (--loadnum) {
    index_video.loadingneodigital_all(loadnum, version, data, eachfn, completefn);
  } else {
    completefn(null, data);
  }
});

},

loadmultipleinstances : function (opts) {
index_video.prepare();
index_video.loadingneodigital_all(opts.loadNEONum, opts.version, null, function each (err, data) {
console.log('each', data);
}, function complete (err, data) {
console.log('done', data);
});
},

play : function (opts, FDM_Player) {
console.log('player herheherosjdbf ');
// =============================================
// Create a Player
// =============================================
var myNewPlayer = new FDM_Player("video-player");

  // =============================================
  // Set up player variables
  // =============================================

  myNewPlayer.autoplay        = true;
  //myNewPlayer.autoplay        = true;
  myNewPlayer.releaseURL        = 'http://link.theplatform.com/s/idol/rM6LCV7vJS4j?mbr=true';



  // from reference page
  myNewPlayer.releaseURL            =  'http://link.theplatform.com/s/BKQ29B/Sdv8DTyUPsp_?mbr=true&assetTypes=Video&feed=Fox%20Sports%20All&iu=/fscom/homepage/video';
  //myNewPlayer.releaseURL          = 'http://link.theplatform.com/s/BKQ29B/Sdv8DTyUPsp_?mbr=true&assetTypes=Video&feed=Fox%20Sports%20All&iu=/fscom/homepage/video&autoplay=true';
  //myNewPlayer.releaseURL            = 'http://link.theplatform.com/s/BKQ29B/Sdv8DTyUPsp_?mbr=true&assetTypes=Video&feed=Fox%20Sports%20All&iu=/fscom/nfl/video';
/*

  ///////////////////////////////////////
  ///////////////////////////////////////
  ///////////////////////////////////////
  // extra...
  myNewPlayer.endcard = true;
  myNewPlayer.endcard_feed = 'https://feed.theplatform.com/f/BKQ29B/foxsports-all?byCustomValue=%7Bprimary%7D%7Bnfl%7D&sort=pubDate%7Cdesc&params=iu=/fscom/nfl/video';
  myNewPlayer.endcard_countdown = true;

  myNewPlayer.share = true;
  myNewPlayer.share_embed = true;

  myNewPlayer.extraInfo = {
    foxsports_extra: "foxsports_extra_onload", 
    pageLocation: "index", 
    pageName: "fscom::videos:video page"
  };

  myNewPlayer.share = {
    showembedFunc : function () {
      return true;
    },
    omitSeries: true
  };

console.log('using newPlayer');
 */

  // =============================================
  // Example Event Listener - OnMediaStart
  // =============================================
  myNewPlayer.addEventListener("OnMediaStart", function(e) {
    console.log('================= OnMediaStart =================');

    if (e) {
      var clipObj    = e.data;
      var title    = typeof clipObj.title != "undefined" ? clipObj.title : 'Not Available';
      document.getElementById('video-title').innerHTML = title;
    }
  });

  // =============================================
  // Example Event Listener - OnMediaPause
  // =============================================
  myNewPlayer.addEventListener("OnMediaPause", function(e) {
    console.log('================= OnMediaPause =================');
  });


myNewPlayer.bind();

},

loadandplay : function (opts) {
var url_neodigital = index_video.url_neodigital.replace(/:version/, opts.version);

index_video.getFDM_Player(url_neodigital, function (err, FDM_Player) {
  index_video.play(opts, FDM_Player);
});

},

start : function (opts) {
if (opts.type === index_video.type.loadmultipleinstances) {
index_video.loadmultipleinstances(opts);
} if (opts.type === index_video.type.loadandplay) {
index_video.loadandplay(opts);
}
}
};