js/video-window.js
author veltr
Thu, 21 Mar 2013 18:48:12 +0100
changeset 11 9833f3e24105
permissions -rw-r--r--
Added video player
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11
9833f3e24105 Added video player
veltr
parents:
diff changeset
     1
window.addEventListener("DOMContentLoaded", function() {
9833f3e24105 Added video player
veltr
parents:
diff changeset
     2
	
9833f3e24105 Added video player
veltr
parents:
diff changeset
     3
	var video = document.querySelector("video"),
9833f3e24105 Added video player
veltr
parents:
diff changeset
     4
		destination = document.location.href.replace(/^(https?:\/\/[^\/]+).*$/,'$1');
9833f3e24105 Added video player
veltr
parents:
diff changeset
     5
	
9833f3e24105 Added video player
veltr
parents:
diff changeset
     6
	function receiveMessage(evt) {
9833f3e24105 Added video player
veltr
parents:
diff changeset
     7
		var dataparts = evt.data.split(":");
9833f3e24105 Added video player
veltr
parents:
diff changeset
     8
		switch(dataparts[0]) {
9833f3e24105 Added video player
veltr
parents:
diff changeset
     9
			case "play":
9833f3e24105 Added video player
veltr
parents:
diff changeset
    10
				video.play();
9833f3e24105 Added video player
veltr
parents:
diff changeset
    11
			break;
9833f3e24105 Added video player
veltr
parents:
diff changeset
    12
			case "pause":
9833f3e24105 Added video player
veltr
parents:
diff changeset
    13
				video.pause();
9833f3e24105 Added video player
veltr
parents:
diff changeset
    14
			break;
9833f3e24105 Added video player
veltr
parents:
diff changeset
    15
			case "timeupdate":
9833f3e24105 Added video player
veltr
parents:
diff changeset
    16
				video.currentTime = parseFloat(dataparts[1]);
9833f3e24105 Added video player
veltr
parents:
diff changeset
    17
			break;
9833f3e24105 Added video player
veltr
parents:
diff changeset
    18
		}
9833f3e24105 Added video player
veltr
parents:
diff changeset
    19
	}
9833f3e24105 Added video player
veltr
parents:
diff changeset
    20
	
9833f3e24105 Added video player
veltr
parents:
diff changeset
    21
	function sendMessage(msg) {
9833f3e24105 Added video player
veltr
parents:
diff changeset
    22
		if (window.opener) {
9833f3e24105 Added video player
veltr
parents:
diff changeset
    23
			window.opener.postMessage(msg, destination);
9833f3e24105 Added video player
veltr
parents:
diff changeset
    24
		}
9833f3e24105 Added video player
veltr
parents:
diff changeset
    25
	}
9833f3e24105 Added video player
veltr
parents:
diff changeset
    26
	
9833f3e24105 Added video player
veltr
parents:
diff changeset
    27
	window.addEventListener("message", receiveMessage, false);
9833f3e24105 Added video player
veltr
parents:
diff changeset
    28
	
9833f3e24105 Added video player
veltr
parents:
diff changeset
    29
	window.addEventListener("unload", function() {
9833f3e24105 Added video player
veltr
parents:
diff changeset
    30
		sendMessage("unload");
9833f3e24105 Added video player
veltr
parents:
diff changeset
    31
	}, false);
9833f3e24105 Added video player
veltr
parents:
diff changeset
    32
	
9833f3e24105 Added video player
veltr
parents:
diff changeset
    33
	video.addEventListener("loadedmetadata", function() {
9833f3e24105 Added video player
veltr
parents:
diff changeset
    34
		sendMessage("loadedmetadata:"+video.duration);
9833f3e24105 Added video player
veltr
parents:
diff changeset
    35
	}, false);
9833f3e24105 Added video player
veltr
parents:
diff changeset
    36
	video.addEventListener("timeupdate", function() {
9833f3e24105 Added video player
veltr
parents:
diff changeset
    37
		sendMessage("timeupdate:"+video.currentTime);
9833f3e24105 Added video player
veltr
parents:
diff changeset
    38
	}, false);
9833f3e24105 Added video player
veltr
parents:
diff changeset
    39
	video.addEventListener("play", function() {
9833f3e24105 Added video player
veltr
parents:
diff changeset
    40
		sendMessage("play");
9833f3e24105 Added video player
veltr
parents:
diff changeset
    41
	}, false);
9833f3e24105 Added video player
veltr
parents:
diff changeset
    42
	video.addEventListener("pause", function() {
9833f3e24105 Added video player
veltr
parents:
diff changeset
    43
		sendMessage("pause");
9833f3e24105 Added video player
veltr
parents:
diff changeset
    44
	}, false);
9833f3e24105 Added video player
veltr
parents:
diff changeset
    45
	
9833f3e24105 Added video player
veltr
parents:
diff changeset
    46
}, false);