﻿var resizeEventAttached = false;

var playerPointer;
var parentPointer;
var playerUnloadPrompt = "";
var playerDisableUnload = false;

if(window.attachEvent) { 
  window.attachEvent("onload",_NextGenPlayerOnLoad); 
} else if(window.addEventListener) { 
  window.addEventListener("load",_NextGenPlayerOnLoad, false); 
}

function resizePlayer(playerId) {

  var p = document.getElementById(playerId);
  
  
  var pp = p;
  
  if (pp && pp.document) {
    //IE
    while (pp.nodeName != "BODY" && pp.document && pp.document.documentElement && pp.parentElement) {
        pp = pp.parentElement;
    }
  } else {
    //Mozilla
    while (pp.nodeName != "BODY" && pp.parentNode) {
        pp = pp.parentNode;
    }
  }

  playerPointer = p;
  parentPointer = pp;
  
  _resizePlayer();
  
  if (! resizeEventAttached) {
    resizeEventAttached  = true;
    if(window.attachEvent) { 
        window.attachEvent("onresize",_resizePlayer); 
    } else if(window.addEventListener) { 
        window.addEventListener("resize",_resizePlayer, false); 
    }
  }
  
}

function _resizePlayer() {
  if (playerPointer && parentPointer) {
  
//        showProps(parentPointer,"parentPointer");
        //scrollHeight doesn't work in safari - clientHeight and offsetHeight are set
        //I'll try clientHeight first.
        //For some reason in IE on exercise.aspx page clientHEight was not working so I'll use offsetHeight
//       var extraHeight = parentPointer.scrollHeight - playerPointer.clientHeight;
       var extraHeight = parentPointer.clientHeight - playerPointer.offsetHeight;
       var winHeight = document.documentElement.clientHeight;
       playerPointer.height = winHeight - extraHeight;
       
  }
}

var playerUnloadPointer;

function setupPlayerUnload(playerId) {
   playerUnloadPointer = document.getElementById(playerId);
   if (playerUnloadPointer) {
       if(window.attachEvent) { 
          window.attachEvent("onbeforeunload",_nextGenUnload); 
        } else if(window.addEventListener) { 
           //window.onbeforeunload = _nextGenUnload;
          window.addEventListener("beforeunload",_nextGenUnload, false); 
        }
    }
}


function _nextGenUnload(e) {
    if (playerDisableUnload)
        return;
    playerUnloadPointer.unload();
    if (playerUnloadPrompt.length > 0) {
        if (!e)
            e = window.event;
        if (e)
            e.returnValue = playerUnloadPrompt;
        return playerUnloadPrompt;
    } else {
        return null;
    }
}

//Hopefully, this will set the focus to the player on WIndows IE machines

function _ngpp() {
  if (playerPointer)
    playerPointer.focus();
}

function _NextGenPlayerOnLoad() {
  if (playerPointer) {
    setTimeout(_ngpp,10);
  } else if (playerUnloadPointer) 
    playerUnloadPointer.focus();
}