var _____WB$wombat$assign$function_____=function(name){return (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name))||self[name];};if(!self.__WB_pmw){self.__WB_pmw=function(obj){this.__WB_source=obj;return this;}}{
let window = _____WB$wombat$assign$function_____("window");
let self = _____WB$wombat$assign$function_____("self");
let document = _____WB$wombat$assign$function_____("document");
let location = _____WB$wombat$assign$function_____("location");
let top = _____WB$wombat$assign$function_____("top");
let parent = _____WB$wombat$assign$function_____("parent");
let frames = _____WB$wombat$assign$function_____("frames");
let opens = _____WB$wombat$assign$function_____("opens");
/*
* GovVid object, developed by the Dutch Ministry of Health, Welfare and Sport and 'Werkgroep Stijlgids' of the New Media Commission (CNM)
* inspired on:
* - swfobject (http://blog.deconcept.com/swfobject/)
* - GTObject (http://blog.deconcept.com/2005/01/26/web-standards-compliant-javascript-quicktime-detect-and-embed/)
*
* Authors: Marc Gerritsen (m.gerritsen@minvws.nl) and Michael Wijnakker (m.wijnakker@minvws.nl)
* Version: 0.8 (22-07-2008)
* Works on: Internet Explorer 6/7, Firefox 1.5/2/3, Safari 2/3, Opera 9
* Description: Can detect flash version and sees if Quicktime is installed
* Generates correct HTML for embedded movie and audio
* Can replace a HTML element with the movie/audio html
*
*
* Usage:
* myMovie = new GovVid("id", width, height);
* myMovie.addMovie("filename"); // supports mov, mp4, wmv, flv, smil
* mymovie.addImage("filename"); // adds start image for flv player, only for movies
* for flv use path from flvplayer file
* myMovie.addCaption("flv","filename"); //adds caption file for flv player, only for movies
* myMovie.addAudio("filename"); //supports mp3, can display single mp3 file without movie, or add mp3 as audio description for flvmovie
* myMovie.write("htmlelementid"); // script puts movie html inside html element
*
* Changes:
* (5-11-2007) - added movieObject.addFlashVars("usecaptions","false"); on line 149
* (11-12-2007) - added addAudio function for adding mp3 files
* - changed function names to prevent problems when using javascript frameworks like prototype.js
* - replaced Flvplayer for Mediaplayer from Jeroen Wijering (can also play single mp3 files)
* (22-07-2007) - Changed innerHTML for correct DOM scripting.
* - added support for embedded smil (so you can use mp4/mov with captions in the quicktime player )
*/
// change these filenames if you want to use different files
// leave empty if you don't need asp files
var contentDispositionFile = "/download";
var statisticsFile = "";
var mediaplayerFile = "/flash/mediaplayer.swf";
var govvidOpera = window.opera ? true : false;
var govvidIE = (document.all && document.getElementById && !govvidOpera) ? true : false;
var govvidSafari = (navigator.userAgent.toLowerCase().indexOf('safari') >= 0) ? true : false;
var debug = false;
var arFileTypes = new Array();
arFileTypes["jwmedia"] = new Array("flv","mp3");
arFileTypes["quicktime"] = new Array("smil","mp4", "mov","mp3");
arFileTypes["winmedia"] = new Array("wmv","mp3","wma");
//GovVid object
GovVid = function(id, width, height) {
this.id = id;
this.width = width;
this.height = height;
this.movies = new Object();
this.audioFiles = new Object();
this.captions = new Object();
this.image = "";
}
//add movie function, adds movie to object, myMovie.addMovie("filename");
GovVid.prototype.addMovie = function(filename) {
var temp = filename.split("/");
var thefile = temp[temp.length - 1];
var file = thefile.split(".");
var type = file[file.length - 1];
this.movies[type] = filename;
}
//add movie function, adds movie to object, myMovie.addMovie("filename");
GovVid.prototype.addAudio = function(filename) {
var temp = filename.split("/");
var thefile = temp[temp.length - 1];
var file = thefile.split(".");
var type = file[file.length - 1];
this.audioFiles[type] = filename;
}
//adds image to object, myMovie.addImage("filename");
GovVid.prototype.addImage = function(filename) {
this.image = filename;
}
//adds caption to object, myMovie.addCaption("flv","filename");
GovVid.prototype.addCaption = function(type, filename) {
this.captions[type] = filename;
}
GovVid.prototype.inArray = function (needleArray,haystackArray) {
var key;
var key2;
for(key in haystackArray)
for(key2 in needleArray)
if(key == needleArray[key2])
return key;
return false;
}
//writes correct movie to html element
GovVid.prototype.write = function(elementid, movietype) {
movietype = typeof(movietype) != 'undefined' ? movietype : "choose";
//get element with id
var element = document.getElementById(elementid);
if (element && movietype == "choose") {
//set with to parentnode - TODO: maybe only on li elements
element.parentNode.style.width = parseInt(this.width) + "px";
GovVid_makeListToggle(elementid);
} else if (movietype != "choose") {
//delete vieuwCaptions element if exists
var viewCap = document.getElementById('govvid_viewwithcaptions');
if(viewCap) viewCap.parentNode.removeChild(viewCap);
}
var display = false;
var version = GovVid_getFlashPlayerVersion();
var height;
var testarray = new Array();
if(version.major > 7 && (movietype == "choose" || GovVid_in_array(arFileTypes["jwmedia"],movietype))) {
if(mediaplayerFile == undefined || mediaplayerFile == "") {
alert("voor het afspelen met de flash plugin, is de jwmediaplayer vereist.\n vul de variable mediaplayerFile met de juiste waarde.");
return false;
}
height = parseInt(this.height) + 20;
if(display = this.inArray(arFileTypes["jwmedia"],this.movies)) {
var movieObject = new GovVidMovie(mediaplayerFile, this.id, this.width, height);
movieObject.addFlashVars("autostart", "false");
// set image if there is a image defined
if(this.image != "") movieObject.addFlashVars("image", this.image);
// set caption if there is caption
if (this.captions["flv"] != undefined) movieObject.addFlashVars("captions", this.captions["flv"]);
if (this.audioFiles["mp3"] != undefined) movieObject.addFlashVars("audio", this.audioFiles["mp3"]);
movieObject.addFlashVars("usecaptions","false");
movieObject.addFlashVars("overstretch","false");
movieObject.addFlashVars("file", this.movies[display]); //path from flash file location
if(statisticsFile != undefined && statisticsFile != "") {
movieObject.addFlashVars("callback",statisticsFile);
movieObject.addFlashVars("logevents",statisticsFile);
}
movieObject.addFlashVars("showdigits","total");
movieObject.addFlashVars("showbuttons","true");
movieObject.addFlashVars("showstop","true");
movieObject.addFlashVars("bufferlength","5");
movieObject.addFlashVars("backcolor","0x000000");
movieObject.addFlashVars("frontcolor","0xFFFFFF");
movieObject.addFlashVars("lightcolor","0xFFFFFF");
movieObject.showMovie(elementid,"flash");
//element.innerHTML = movieObject.getFlashHTML();
return true;
}
else if(display = this.inArray(arFileTypes["jwmedia"],this.audioFiles)) {
var audioObject = new GovVidMovie(mediaplayerFile, this.id, this.width, height);
audioObject.addFlashVars("file", this.audioFiles[display]); //path from flash file location
if(statisticsFile != undefined && statisticsFile != "") {
audioObject.addFlashVars("callback",statisticsFile);
audioObject.addFlashVars("logevents",statisticsFile);
}
audioObject.addFlashVars("showdigits","total");
audioObject.addFlashVars("showbuttons","true");
audioObject.addFlashVars("showstop","true");
audioObject.addFlashVars("bufferlength","5");
audioObject.addFlashVars("backcolor","0x000000");
audioObject.addFlashVars("frontcolor","0xFFFFFF");
audioObject.addFlashVars("lightcolor","0xFFFFFF");
audioObject.showMovie(elementid,"flash");
return true;
}
}
if(!GovVid_isQTInstalled() && GovVid_in_array(arFileTypes["quicktime"],movietype)) alert("Geen instalatie van quicktime gevonden.");
if (GovVid_isQTInstalled() && !display && (movietype == "choose" || GovVid_in_array(arFileTypes["quicktime"],movietype))) {
// Toon quicktime
height = parseInt(this.height) + 16;
if(movietype != "choose") display = movietype;
else display = this.inArray(arFileTypes["quicktime"],this.movies);
if(display) {
if(display == "smil") height = parseInt(this.height) + 115;
var movieObject = new GovVidMovie(this.movies[display], this.id, this.width, height);
}
else if(display = this.inArray(arFileTypes["quicktime"],this.audioFiles)) {
var movieObject = new GovVidMovie(this.audioFiles[display], this.id, this.width, height);
}
if (movieObject) {
movieObject.showMovie(elementid, "quicktime");
return true
}
}
if (!display && (movietype == "choose" || GovVid_in_array(arFileTypes["winmedia"],movietype))) {
// Toon windows media player
height = parseInt(this.height) + 46;
if(display = this.inArray(arFileTypes["winmedia"],this.movies)) {
var movieObject = new GovVidMovie(this.movies[display], this.id, this.width, height);
}
else if(display = this.inArray(arFileTypes["winmedia"],this.audioFiles)) {
var movieObject = new GovVidMovie(this.audioFiles[display], this.id, this.width, height);
}
if (movieObject) {
movieObject.showMovie(elementid, "winmedia");
if(this.movies["asx"]) {
//add link
GovVid_addLinkToList(element, this.movies["asx"], "Bekijk deze video met ondertiteling");
}
return true;
}
}
return false;
}
// movie object and functions
GovVidMovie = function(filename, id, width, height) {
this.filename = filename;
this.id = id;
this.width = width;
this.height = height;
this.flashvars = new Object();
};
// function to add flash variables to object
GovVidMovie.prototype.addFlashVars = function(name, value) {
this.flashvars[name] = value;
}
// function that is used by other functions
GovVidMovie.prototype.getFlashVars = function() {
return this.flashvars;
}
/*
* HTML generator functions
*
*
*/
// adds a param tag
GovVidMovie.prototype.insertParamTag = function(objEl, strName, strValue) {
var objParam = document.createElement("PARAM");
objParam.setAttribute('name', strName);
objParam.setAttribute('value', strValue);
objEl.appendChild(objParam);
}
// function that generates quicktime html
GovVidMovie.prototype.getQuicktimeHTML = function() {
// IE cannot handle adding type attribute with setAttribute
if (govvidIE) {
var objObject = document.createElement("");
}
else {
var objObject = document.createElement("object");
objObject.setAttribute('type', 'video/quicktime');
}
objObject.setAttribute('id', this.id);
objObject.setAttribute('width', this.width);
objObject.setAttribute('height', this.height);
if(govvidIE || govvidSafari)
this.insertParamTag(objObject, 'src', this.filename);
else
objObject.setAttribute('data', this.filename);
this.insertParamTag(objObject, 'autoplay', 'false');
return objObject;
}
// function that generates windows media player html
GovVidMovie.prototype.getWinmediaHTML = function() {
// IE cannot handle adding type attribute with setAttribute
if(govvidIE)
objObject = document.createElement("");
else {
var objObject = document.createElement("object");
objObject.setAttribute('type', 'video/x-ms-wmv');
}
objObject.setAttribute('id', this.id);
objObject.setAttribute('width', this.width);
objObject.setAttribute('height', this.height);
if(govvidIE || govvidSafari || govvidOpera)
this.insertParamTag(objObject, 'src', this.filename);
else
objObject.setAttribute('data', this.filename);
this.insertParamTag(objObject, 'autostart', '0');
return objObject;
}
// function that generates flash html, different for ie or navigator browsers
GovVidMovie.prototype.getFlashHTML = function() {
var flashVars = "";
// do flashvars
if(this.flashvars)
for (var param in this.getFlashVars())
flashVars += param + '=' + this.flashvars[param] + '&';
// IE cannot handle adding type attribute with setAttribute
if(govvidIE)
var objObject = document.createElement("");
else {
var objObject = document.createElement("object");
objObject.setAttribute('type', 'application/x-shockwave-flash');
}
objObject.setAttribute('id', this.id);
objObject.setAttribute('width', this.width);
objObject.setAttribute('height', this.height);
if(govvidIE || govvidSafari)
this.insertParamTag(objObject, 'src', this.filename);
else
objObject.setAttribute('data', this.filename);
this.insertParamTag(objObject, 'flashvars', flashVars);
this.insertParamTag(objObject, 'allowfullscreen', 'true');
return objObject;
}
// replace element with movie html, the get+movie+HTML functions
GovVidMovie.prototype.showMovie = function(elementID, filetype) {
var element = document.getElementById(elementID);
if(filetype == 'flash') {
element = GovVid_EmptyNode(element);
element.appendChild(this.getFlashHTML());
} else if (filetype == 'quicktime') {
element = GovVid_EmptyNode(element);
element.appendChild(this.getQuicktimeHTML());
} else if (filetype == 'winmedia') {
element = GovVid_EmptyNode(element);
element.appendChild(this.getWinmediaHTML());
}
}
/*
* Detector functions
*
*
*/
// Function gets flashplayer version, if flash is not installed it returns major:0 minor:0 revision:0
function GovVid_getFlashPlayerVersion(){
var version = new FlashPlayerVersion([0,0,0]);
if(navigator.plugins && navigator.mimeTypes.length){
var x=navigator.plugins["Shockwave Flash"];
if(x && x.description)
version = new FlashPlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));
} else {
try {
var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
} catch(e) {
try {
var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
version = new FlashPlayerVersion([6,0,21]);
axo.AllowScriptAccess="always";
} catch(e){
if(version.major==6){return version;}
}
try {
axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
} catch(e){}
}
if(axo!=null)
version=new FlashPlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
}
return version;
};
// object used by the getFlashPlayerVersion function
FlashPlayerVersion = function(player){
this.major = player[0]!=null?parseInt(player[0]):0;
this.minor = player[1]!=null?parseInt(player[1]):0;
this.rev = player[2]!=null?parseInt(player[2]):0;
};
// function checks if quicktime is installed
function GovVid_isQTInstalled() {
var qtInstalled = false;
var qtObj = false;
if (navigator.plugins && navigator.plugins.length) {
var navigatorLength = navigator.plugins.length;
for (var i=0; i < navigatorLength; i++ ) {
var plugin = navigator.plugins[i];
if (plugin.name.indexOf("QuickTime") > -1)
qtInstalled = true;
}
} else {
if (window.ActiveXObject) {
var control = null;
try {
control = new ActiveXObject('QuickTime.QuickTime');
} catch (e) {
// Do nothing
}
if (control)
// In case QuickTimeCheckObject.QuickTimeCheck does not exist
qtInstalled = true;
}
else
alert("no active X");
}
return qtInstalled;
}
/*
* General functions / html functions
*
*
*/
// function hides or shows an element with stylesheet classes
function GovVid_toggle(objid) {
var el = document.getElementById(objid);
if ( el.className == 'close' )
el.className = 'open';
else
el.className = 'close';
}
// function hides or shows an element with stylesheet classes
function GovVid_toggle_both(objid) {
var strMenu = objid.replace(/ToggleLink/,"ToggleMenu");
var strLink = objid.replace(/ToggleMenu/,"ToggleLink");
GovVid_toggle(strMenu);
GovVid_toggle(strLink);
}
// removes all childnodes from a node
function GovVid_EmptyNode(objNode) {
for(var i = objNode.childNodes.length-1; i >= 0; i--)
objNode.removeChild(objNode.childNodes[i]);
return objNode;
}
// do stuff with links to binary files (not needed for pilot video files)
function GovVid_openBinary() {
if(contentDispositionFile != undefined && contentDispositionFile != "") {
var filetypes = new Array("pdf", "wmv", "mov", "mp4", "flv", "3gp","mp3", "srt");
var myAnchors = document.getElementsByTagName('a');
var myAnchorsLength = myAnchors.length;
var baseUrl = new String(document.location);
var splitUrl = baseUrl.split("/");
var strBase = "";
if(baseUrl.indexOf("http://") == 0 && splitUrl.length > 2)
strBase = "http://" + splitUrl[2];
for (i=0; i