web/static/res/js/incplayer.js
author Edwin Razafimahatratra <edwin@robotalismsoft.com>
Thu, 04 Oct 2012 20:39:57 +0200
changeset 18 f6232b308fbd
child 19 26ab64495127
permissions -rw-r--r--
base du player niveau 1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
18
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
     1
function IncPlayer()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
     2
{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
     3
	// --------------------------------------------------------------------------------------------------------------------
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
     4
	// Members
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
     5
	// --------------------------------------------------------------------------------------------------------------------
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
     6
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
     7
	// Global
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
     8
	this.initDone = false;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
     9
	this.playerIsReady = false;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    10
	this.iOS = false;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    11
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    12
	// Sequences
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    13
	this.allSequencesData = [];
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    14
	this.sequences = [];
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    15
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    16
	// Popcorn objects
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    17
	this.videoDivIdName = "";
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    18
	this.videoExt = "";
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    19
	this.preferOgg = true; // debug
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    20
	this.popSeq = null;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    21
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    22
	// Controls
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    23
	this.playButton = null;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    24
	//this.hd = true;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    25
	this.hd = false;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    26
	this.seekTime = 0.0;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    27
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    28
	// Tools
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    29
	this.logiEnable = true;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    30
	this.jsonData = [];
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    31
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    32
	// --------------------------------------------------------------------------------------------------------------------
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    33
	// Functions
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    34
	// --------------------------------------------------------------------------------------------------------------------
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    35
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    36
	this.init = function(videoDivIdName, playButton, jsonFile, preferOgg)
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    37
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    38
		this.videoDivIdName = videoDivIdName;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    39
		this.preferOgg = preferOgg;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    40
		this.playButton = $(playButton).get(0);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    41
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    42
		// Video extention
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    43
		this.videoExt = this.getSupportedVideoExt();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    44
		if (this.videoExt === "") {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    45
			this.loge("your browser don't support HTML5 videos");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    46
			return false;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    47
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    48
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    49
		// Detect iOS
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    50
		this.detectIOS();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    51
		if (this.iOS) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    52
			this.logi("we are on iOS");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    53
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    54
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    55
		// Load all sequences data
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    56
		this.allSequencesData = this.loadJson(jsonFile);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    57
		this.logi("sequences in part1: " + (this.allSequencesData.part1 !== undefined ? this.allSequencesData.part1.length : 0));
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    58
		this.logi("sequences in part2: " + (this.allSequencesData.part2 !== undefined ? this.allSequencesData.part2.length : 0));
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    59
		this.logi("sequences in part3: " + (this.allSequencesData.part3 !== undefined ? this.allSequencesData.part3.length : 0));
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    60
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    61
		this.initDone = true;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    62
		return true;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    63
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    64
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    65
	this.destroySequence = function()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    66
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    67
		if (this.popSeq !== null) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    68
			for (var i = 0; i < this.sequences.length; ++i) {			
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    69
				this.popSeq.eq(i).destroy();			
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    70
			}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    71
			this.sequences = [];
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    72
			this.popSeq.remove();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    73
		}		
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    74
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    75
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    76
	this.createPopSequence = function()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    77
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    78
		if (!this.initDone) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    79
			this.loge("incplayer not initialized");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    80
			return;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    81
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    82
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    83
		// Delete previous popcorn objects
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    84
		this.destroySequence();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    85
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    86
		// Choose the 3 video
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    87
		this.choosePopSequence();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    88
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    89
		// And cerate the popcorn sequence
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    90
		this.initPopSequence();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    91
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    92
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    93
	this.choosePopSequence = function()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    94
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    95
		this.sequences = [];
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    96
		if (this.allSequencesData.part1 !== undefined && this.allSequencesData.part1.length) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    97
			this.sequences.push(this.allSequencesData.part1[this.random(0, this.allSequencesData.part1.length)]);			
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    98
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
    99
		if (this.allSequencesData.part2 !== undefined && this.allSequencesData.part2.length) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   100
			this.sequences.push(this.allSequencesData.part2[this.random(0, this.allSequencesData.part2.length)]);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   101
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   102
		if (this.allSequencesData.part3 !== undefined && this.allSequencesData.part3.length) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   103
			this.sequences.push(this.allSequencesData.part3[this.random(0, this.allSequencesData.part3.length)]);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   104
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   105
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   106
		// Set the video file name 
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   107
		var i;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   108
		for (i = 0; i < this.sequences.length; ++i) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   109
			var file = this.sequences[i].src;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   110
			
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   111
			// HD
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   112
			if(this.hd) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   113
				file += "hd"; 
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   114
			}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   115
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   116
			// Extention
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   117
			file += "." + this.videoExt;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   118
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   119
			// Set the final file
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   120
			this.sequences[i].src = file;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   121
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   122
		
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   123
		this.logi("choosed sequences:");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   124
		for (i = 0; i < this.sequences.length; ++i) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   125
			this.logi(this.sequenceToString(i));
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   126
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   127
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   128
		// debug
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   129
        var message = $("#message");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   130
        if (message !== undefined && this.sequences.length > 0) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   131
        	if (this.sequences[0].src.search("720") >= 0) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   132
        		message.html("720");		
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   133
        	} else if (this.sequences[0].src.search("480") >= 0) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   134
        		message.html("480");		
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   135
        	} else if (this.sequences[0].src.search("360") >= 0) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   136
        		message.html("360");		
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   137
        	} else {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   138
        		message.html("???");		        		
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   139
        	}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   140
        }
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   141
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   142
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   143
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   144
	this.initPopSequence = function()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   145
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   146
		var self = this;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   147
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   148
		// Create the popcorn sequencer
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   149
		self.popSeq = Popcorn.sequence(self.videoDivIdName, self.sequences);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   150
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   151
		for (var i = 0; i < self.sequences.length; ++i) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   152
			
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   153
			var pop = self.popSeq.eq(i);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   154
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   155
			// Hide controls
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   156
			pop.controls(false);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   157
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   158
			// Mute (debug)
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   159
			pop.mute();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   160
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   161
			self.listenEvent(pop, "playing", false, function() {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   162
				self.displayPlayButton(false);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   163
				self.logi("play sequence: " + self.sequenceToString(self.popSeq.active));
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   164
			});
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   165
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   166
			self.listenEvent(pop, "pause", false, function() {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   167
				self.displayPlayButton(true);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   168
				self.logi("pause sequence: " + self.sequenceToString(self.popSeq.active));
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   169
			});			
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   170
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   171
			self.listenEvent(pop, "timeupdate", false, function() {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   172
				if (!self.iOS) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   173
					//self.logi("current: " + self.getCurrentPop().currentTime());
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   174
				}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   175
			});
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   176
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   177
			self.listenEvent(pop, "canplaythrough", true, function() {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   178
			});
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   179
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   180
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   181
		self.popSeq.on("loadedmetadata", function() {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   182
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   183
			self.playerIsReady = true;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   184
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   185
			if (!self.iOS) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   186
				// Automatic play
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   187
				self.ctrlPlay();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   188
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   189
				if (self.seekTime !== 0.0) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   190
					self.popSeq.jumpTo(self.seekTime);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   191
					self.seekTime = 0.0;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   192
				}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   193
			}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   194
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   195
			// Unlisten event
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   196
			self.popSeq.off("loadedmetadata");	
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   197
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   198
			self.logi("the player is ready");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   199
		});	
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   200
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   201
		self.popSeq.on("cycle", function() {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   202
			self.logi("CYCLE !");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   203
		});	
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   204
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   205
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   206
	this.listenEvent = function(pop, event, unlisten, func)
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   207
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   208
		pop.on(event, function() {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   209
			// Execute the function
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   210
			func();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   211
	
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   212
			if (unlisten) {		
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   213
				// Unlisten event
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   214
				pop.off(event);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   215
			}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   216
		});
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   217
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   218
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   219
	//this.
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   220
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   221
	this.getCurrentPop = function()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   222
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   223
		var index = this.popSeq.active;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   224
		if (index >= this.sequences.length) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   225
			index = this.sequences.length-1;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   226
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   227
		return this.popSeq.eq(index);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   228
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   229
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   230
	this.ctrlPlay = function()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   231
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   232
		if (!this.iOS && !this.playerIsReady) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   233
			// The video are not ready
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   234
			this.logi("can't play, the player is not ready");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   235
			return;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   236
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   237
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   238
		if (this.getCurrentPop().paused()) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   239
			// Play
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   240
			this.popSeq.play();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   241
		} else {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   242
			// Pause
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   243
			this.popSeq.pause();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   244
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   245
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   246
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   247
	this.ctrlForward = function()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   248
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   249
		if (!this.playerIsReady) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   250
			// The video are not ready
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   251
			this.logi("can't play, the player is not ready");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   252
			return;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   253
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   254
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   255
		// Seek 1 second forward
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   256
		this.popSeq.jumpTo(this.popSeq.currentTime() + 1);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   257
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   258
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   259
	this.ctrlBackward = function()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   260
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   261
		if (!this.playerIsReady) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   262
			// The video are not ready
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   263
			this.logi("can't play, the player is not ready");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   264
			return;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   265
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   266
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   267
		// Seek 1 second backward
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   268
		this.popSeq.jumpTo(this.popSeq.currentTime() - 1);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   269
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   270
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   271
	this.ctrlFullScreen = function()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   272
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   273
		if (!this.playerIsReady) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   274
			// The video are not ready
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   275
			this.logi("can't play, the player is not ready");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   276
			return;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   277
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   278
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   279
		this.logi("full screen");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   280
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   281
	
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   282
	this.ctrlHd = function()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   283
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   284
		if (!this.playerIsReady) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   285
			// The video are not ready
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   286
			this.logi("can't play, the player is not ready");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   287
			return;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   288
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   289
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   290
		this.seekTime = this.popSeq.currentTime();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   291
		this.hd = false;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   292
		this.createPopSequence();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   293
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   294
		this.logi("hd");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   295
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   296
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   297
	this.displayPlayButton = function(playIcon)
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   298
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   299
		if (playIcon) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   300
			// Controller display
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   301
			this.playButton.src = 'static/res/img/ctrlplayover.jpg';
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   302
	    	this.playButton.onmouseover = function() {this.src='static/res/img/ctrlplayover.jpg';}; 
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   303
	    	this.playButton.onmouseout = function() {this.src='static/res/img/ctrlplay.jpg';};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   304
		} else {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   305
			// Controller display
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   306
			this.playButton.src = 'static/res/img/ctrlpauseover.jpg';
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   307
	    	this.playButton.onmouseover = function() {this.src='static/res/img/ctrlpauseover.jpg';}; 
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   308
	    	this.playButton.onmouseout = function() {this.src='static/res/img/ctrlpause.jpg';};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   309
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   310
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   311
		 
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   312
	// --------------------------------------------------------------------------------------------------------------------
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   313
	// Tools Functions
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   314
	// --------------------------------------------------------------------------------------------------------------------
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   315
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   316
	this.logi = function(txt)
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   317
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   318
		if (this.logiEnable) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   319
			console.log("info: " + txt);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   320
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   321
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   322
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   323
	this.loge = function(txt)
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   324
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   325
		console.log("error: " + txt);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   326
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   327
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   328
	this.loadJson = function(jsonFile)
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   329
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   330
		var txt = this.loadTxtFile(jsonFile);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   331
		return JSON.parse(txt);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   332
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   333
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   334
	this.loadTxtFile = function(jsonFile)
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   335
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   336
		var xhr = new XMLHttpRequest();
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   337
		xhr.open("GET", jsonFile, false);  
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   338
		xhr.overrideMimeType('text/plain; charset=x-user-defined');
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   339
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   340
		try {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   341
			xhr.send(null); 
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   342
		} catch(e) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   343
			return "";
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   344
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   345
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   346
		if (xhr.status == 404) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   347
			return "";
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   348
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   349
		
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   350
		var buffer;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   351
		if (xhr.responseType == "arraybuffer") {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   352
			buffer = xhr.response;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   353
		} else if (xhr.mozResponseArrayBuffer === null) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   354
			buffer = xhr.mozResponseArrayBuffer;  
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   355
		} else {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   356
			buffer = xhr.response;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   357
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   358
		return buffer;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   359
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   360
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   361
	this.random = function(min, max)
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   362
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   363
		return Math.floor((Math.random()*(max-min))+min);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   364
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   365
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   366
	this.sequenceToString = function(index)
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   367
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   368
		return JSON.stringify(this.sequences[index]);
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   369
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   370
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   371
	this.getSupportedVideoExt = function()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   372
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   373
		var v = document.createElement("video");
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   374
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   375
		if (v.canPlayType) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   376
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   377
		    // Check for Ogg support
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   378
		    if (this.preferOgg && v.canPlayType('video/ogg; codecs="theora"') !== "") {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   379
		    	return "ogg";
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   380
		    }
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   381
		    
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   382
		    // Check for Webm support
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   383
		    if (v.canPlayType('video/webm; codecs="vp8, vorbis"') !== "") {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   384
		    	return "webm";
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   385
		    }
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   386
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   387
		    // Check for MPEG-4 support
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   388
		    if (v.canPlayType('video/mp4; codecs="mp4v.20.8"' ) !== "") {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   389
				return "mp4";
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   390
		    }
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   391
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   392
		    // Check for h264 support
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   393
		    if ((v.canPlayType('video/mp4; codecs="avc1.42E01E"' ) !== "" || v.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"'))) {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   394
		    	return "mp4";
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   395
		    }
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   396
		}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   397
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   398
		return "";
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   399
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   400
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   401
	this.detectIOS = function()
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   402
	{
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   403
		var p = navigator.platform;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   404
		if (p === 'iPad' || p === 'iPhone' || p === 'iPod') {
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   405
		    this.iOS = true;
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   406
		}		
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   407
	};
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   408
}
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   409
f6232b308fbd base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff changeset
   410
var incPlayer = new IncPlayer();