front_idill/src/mosaic/js/mosaic.js
author bastiena
Fri, 06 Jul 2012 13:44:25 +0200
changeset 46 9d7a2aa112fb
parent 45 0e29ae4568a0
child 47 4e1ee94d70b1
permissions -rw-r--r--
Front IDILL: curves done
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
30
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
     1
/*
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
     2
* This file is part of the TraKERS\Front IDILL package.
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
     3
*
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
     4
* (c) IRI <http://www.iri.centrepompidou.fr/>
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
     5
*
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
     6
* For the full copyright and license information, please view the LICENSE
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
     7
* file that was distributed with this source code.
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
     8
*/
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
     9
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
    10
/*
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
    11
 * Projet : TraKERS
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
    12
 * Module : Front IDILL
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
    13
 * Fichier : mosaic.js
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
    14
 * 
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
    15
 * Auteur : alexandre.bastien@iri.centrepompidou.fr
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
    16
 * 
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
    17
 * Fonctionnalités : Définit la "classe" mosaïque et définit des fonctions d'intéractions.
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
    18
 */
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
    19
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
    20
/*
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
    21
 * Classe définissant la mosaïque.
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
    22
 * Elle contient sa longueur, le nombre d'images total, une liste d'urls pour les vidéos, leurs snapshots principaux et leur position.
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
    23
 * Contient également les dimensions en px de la mosaïque.
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
    24
 */
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
    25
function mosaic(config, default_conf)
30
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
    26
{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    27
	//Interactions souris/kinect.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    28
	this.mouseInteractions = true;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    29
	//Interactions avec/sans préphase.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    30
	this.prephaseEnabled = true;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    31
	
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    32
	this.gestures = ["fall", "jump", "circle", "screw", "bend", "arc", "pendulum", "knee-up", "right-angle", "wave", "slow", "hello", "no-motion", "wheel", "contact", "run", "up-down", "grand-jete"];
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    33
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
    34
	//Chemin du fichier de configuration.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
    35
	this.config_path = config;
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
    36
	//Configuration par défaut en cas de valeur erronnée.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
    37
	this.default_config = default_conf;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    38
	this.config = new Object();
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
    39
	//Tableaux des urls des vidéos, des snapshots et de leur position dans la mosaïque.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
    40
	this.videos = [];
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
    41
	this.urls = [];
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    42
	this.sources = [];
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
    43
	this.imgs = [];
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    44
	this.opacities = [];
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    45
	this.timeToGoAt = [];
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
    46
	this.ids = [];
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
    47
	this.fillingIds = [];
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
    48
	this.currentRandomVideoIdx = 0;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    49
	
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    50
	//Dictionnaire pour les courbes de recherche.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    51
	this.dictionary = [];
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    52
	
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    53
	//Dernières positions des pointeurs.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    54
	this.mainPointerLastX;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    55
	this.mainPointerLastY;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    56
	this.secondPointerLastX;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    57
	this.secondPointerLastY;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    58
	//Dernières positions avant le lancement de la fonction d'idle.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    59
	this.mainPointerIdleStartX;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    60
	this.mainPointerIdleStartY;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    61
	this.secondPointerIdleStartX;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    62
	this.secondPointerIdleStartY;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    63
	
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    64
	//Coordonnées de la souris dans le mode d'interaction souris.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    65
	this.mousePosX;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    66
	this.mousePosY;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    67
	//Coordonnées précédentes de la souris dans le mode d'interaction souris.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    68
	this.mousePosLastX;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    69
	this.mousePosLastY;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    70
	//Valeur du déplacement entre un mouse up et un mouse down.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    71
	this.mouseUpDownDelta = 0;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    72
	
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
    73
	//Dimensions de la mosaïque en pixels.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
    74
	this.width;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    75
	this.height;
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
    76
	//Dimensions d'un snapshot en pixels.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
    77
	this.snapshotWidth;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    78
	this.snapshotHeight;
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
    79
	//Espacement entre les snapshots en pixels.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
    80
	this.marginWidth;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    81
	
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
    82
	//Booléens permettant ou non certaines intéractions selon le contexte.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    83
	this.zoomed = false;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    84
	this.fullscreen = false;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    85
	this.canMoveToNeighbour = false;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    86
	this.mainPointerExitBorder = false;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    87
	this.secondPointerExitBorder = false;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    88
	this.isMainPointerDisplayed = false;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    89
	this.isSecondPointerDisplayed = false;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    90
	this.helpDisplayed = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    91
	//Indique si l'utilisateur a manuellement pausé la vidéo.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    92
	this.userPaused = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    93
	//Indique si on est en train de se déplacer vers un voisin.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    94
	this.currentlyMoving = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    95
	//Indique si on est en train de dézoomer vers la mosaïque.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    96
	this.currentlyUnzooming = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    97
	//Indique si on peut s'approcher de kinect.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    98
	this.canStart = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
    99
	//Indique si on est actuellement sur un snapshot.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   100
	this.isOnASnapshot = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   101
	//Indique si l'idle des pointeurs est disponible (deux mains détectées).
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   102
	this.pointersIdleAvailable = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   103
	//Indique si le timeout pour l'idle des pointeurs à besoin d'être lancé.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   104
	this.pointersIdleNeedLaunch = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   105
	//Indique si les deux mains sont là.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   106
	this.areBothPointersHere = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   107
	//Indique si le timeout pour la détection de deux pointeurs a été lancé.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   108
	this.areBothPointersTimeoutLaunched = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   109
	//Indique si la mosaïque a été filtrée.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   110
	this.isMosaicFiltered = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   111
	//Indique si on est actuellement dans une recherche par gesture.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   112
	this.isCurrentlyInASearchByGesture = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   113
	//Indique si un pointeur est déjà sur une notification de recherche par gesture.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   114
	this.alreadyOnNotification = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   115
	//Si on a fait un swipe.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   116
	this.isSwipe = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   117
	//On peut swiper.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   118
	this.canSwipe = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   119
	//On passe vers une autre video automatiquement à la fin d'une lecture.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   120
	this.autoMove = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   121
	//Si l'utilisateur a demandé à sélectionner la TL.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   122
	this.isTLRequested = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   123
	//Le pointeur gauche a sélectionné la TL.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   124
	this.isTLSelectedBySecondPointer = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   125
	//Le pointeur droit a sélectionné la TL.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   126
	this.isTLSelectedByMainPointer = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   127
	//On peut afficher l'aide.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   128
	this.canNotifyHelp = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   129
	//Indique si la mosaique est en train d'être filtrée.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   130
	this.isMosaicFiltering = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   131
	this.arrowLeftLoading = false;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   132
	this.arrowRightLoading = false;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   133
	this.arrowUpLoading = false;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   134
	this.arrowDownLoading = false;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   135
	//On est dans une recherche par courbes.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   136
	this.isSearchByCurvesOn = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   137
	this.canDrawNextCurve = false;
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   138
	//Dans le mode d'interaction souris, indique si on se situe actuellement sur un snapshot entièrement prézoomé.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   139
	this.isOnAPrezoomSN = false;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   140
	//Indique si une courbe de recherche donne au moins un résultat.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   141
	this.curvesGesturesFound = false;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   142
	//Indique si on souhaite supprimer la recherche en cours.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   143
	this.gestureDelRequested = false;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   144
	//Code de gesture actuellement calculé par les détecteurs de courbes.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   145
	this.actualCode = '';
46
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
   146
	//Indique si l'utilisateur est entré dans la zone de recherche.
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
   147
	this.isUserInSearchZone = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   148
	
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   149
	//Timeout (attente) pour le zoom après un préZoom.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   150
	this.zoomTimeout = null;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   151
	//Timeout (attente) pour le passage vers un voisin.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   152
	this.moveToNeighbourTimeout = null;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   153
	this.mainPointerExitBorderTimeout = null;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   154
	this.secondPointerExitBorderTimeout = null;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   155
	//Idle time pour les pointeurs afin d'informer le front qu'on souhaite faire une recherche.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   156
	this.pointersSearchIdleTimeout = null;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   157
	//Vérifie toutes les N ms que les deux pointeurs sont détectés.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   158
	this.areBothPointersHereTimeout = null;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   159
	//Délai de suppression d'une notification de recherche par gesture.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   160
	this.removeNotificationByGestureTimeout = null;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   161
	//Délai de suppression d'une notification de recherche par gesture infructueuse.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   162
	this.removeFailedNotificationByGestureTimeout = null;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   163
	//Délai avant la suppression de notification swipe.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   164
	this.notifySwipeTimeout = null;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   165
	//Délai pour la sélection de la TL.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   166
	this.selectTLTimeout = null;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   167
	//Délai pour slider sur la TL.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   168
	this.canSlideInTLTimeout = null;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   169
	//Délai pour afficher l'aide.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   170
	this.canNotifyHelpTimeout = null;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   171
	this.arrowLeftTimeout = null;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   172
	this.arrowRightTimeout = null;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   173
	this.arrowUpTimeout = null;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   174
	this.arrowDownTimeout = null;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   175
	
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   176
	this.arrowSpinnerTimeout = null;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   177
	this.nouserTimeout = null;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   178
	this.nextDrawCurveTimeout = null;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   179
	
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   180
	//Dernier message INCOMING (pour éviter d'effectuer n fois la même action.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   181
	this.lastIncomingMessage = '';
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   182
	
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   183
	//Type de marqueur recherché dans la mosaïque (en mode filter).
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   184
	this.filterSearchedType = "";
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   185
	
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   186
	//Mode actuel.
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   187
	this.currentMode = "NO-USER";
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   188
	//Snapshot sur lequel on a zoomé.
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   189
	this.previousZoomedSN = null;
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   190
	//Snapshot sur lequel on a prezoomé.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   191
	this.previousPrezoomDiv = null;
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   192
	//Son ID.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   193
	this.previousId = null;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   194
	//Dernier snapshot prézoomé non null.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   195
	this.lastNonNullSN = null;
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   196
	//Largeur de la marge pour le centrage vertical de la mosaïque.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   197
	this.MPTop_margin;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   198
	this.top_margin;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   199
	
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   200
	//Gesture actuellement cherchée.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   201
	this.currentSearchGesture = '';
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   202
	
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   203
	//Mosaïque locale.
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   204
	this.localMos;
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   205
	//Position des voisins lors d'un zoom.
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   206
	this.neighboursIds = [];
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   207
	//ID du snapshot du milieu lors d'un zoom.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   208
	this.centerId;
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   209
	
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   210
	//Voisins sélectionnés par les pointeurs.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   211
	this.mainPointerNeighbourSelectedId = null;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   212
	this.secondPointerNeighbourSelectedId = null;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   213
	
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   214
	//Snapshots a afficher.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   215
	this.snapshotsToShow = 1;
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   216
	
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   217
	//Lecteur.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   218
	this.player = null;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   219
	//Si le lecteur est prêt.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   220
	this.playerIsReady = false;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   221
	
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   222
	//Annotations (pour les marqueurs los d'un filtrage).
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   223
	this.annotations = [];
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   224
	
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   225
	//Client websocket pour recevoir les notifications du Middleware.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   226
	this.client;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   227
	
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   228
	//Coordonnées et dimensions d'un snapshot zoomé.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   229
	this.snTop = 0;
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   230
	this.snLeft = 0;
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   231
	this.snWidth = 0;
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   232
	this.snHeight = 0;
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   233
	
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   234
	this.searchCanvas;
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   235
	//Position actuelle de la vidéo zoomée.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   236
	this.notifyTopVideo;
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   237
	this.notifyLeftVideo;
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   238
	this.loadParameters(this.config_path);
30
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   239
}
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   240
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   241
/*
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   242
 * Méthode d'affichage de la mosaïque.
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   243
 * Génère une matrice de imgs.
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   244
 */
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   245
mosaic.prototype.createMosaic = function()
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   246
{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   247
	// console.log('CREATE');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   248
	// this.currentMode = "NO-USER";
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   249
	var initPanel = '<div id="initPanel"></div>';
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   250
	var mp = $('#mainPanel');
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   251
	mp.append(initPanel);
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   252
	$('#initPanel').css(
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   253
	{
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   254
		background: 'transparent',
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   255
		width: mp.width(),
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   256
		height: mp.height(),
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   257
		top: mp.position().top,
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   258
		left: mp.position().left,
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   259
		'margin-top': this.MPTop_margin
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   260
	});
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   261
	
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   262
	var len = this.config['length'], imgs = this.config['imagesToShow'], imgsTotal = this.config['imagesTotal'];
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   263
	
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   264
	//S'il s'agit d'un rectangle.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   265
    if(imgs % len == 0)
30
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   266
    {
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   267
		this.lastIncomingMessage = 'INCOMING-0';
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   268
		
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   269
		var str = '';
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   270
		
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   271
		if(this.imgs.length >= imgs)
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   272
		{
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   273
			for(var i = 0 ; i < imgs ; i++)
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   274
			{
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   275
				//On charge les images de petite taille pour ne pas surcharger la mosaïque lors de l'affichage global.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   276
				str += '<div id="snapshotDiv-' + i + '" class="snapshotDivs" style="opacity: 0;"><img id="snapshot-' + i + '" class="snapshots" src="snapshots-little/' + this.imgs[i] + '" /></div>';
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   277
			}
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   278
		}
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   279
		
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   280
		return str + '<div id="ghostPanel"></div>';
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   281
	}
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   282
	else
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   283
	{
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   284
		alert("Le nombre d'images a afficher doit être divisible par la longueur de la mosaïque !");
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   285
	}
30
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   286
}
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   287
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   288
/*
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   289
 * Permet de raffraichir la mosaïque.
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   290
 */
32
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
   291
mosaic.prototype.loadMosaic = function()
30
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   292
{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   293
	// console.log('LOAD');
32
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
   294
	var createMosaic = this.createMosaic();
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
   295
	
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
   296
	if(createMosaic == '')
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
   297
	{
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
   298
		return;
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
   299
	}
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
   300
	
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
   301
	var _this = this;
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
   302
	
30
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   303
    //On affecte les chemins vers les images à la mosaïque.
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   304
    this.previousZoomedSN;
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   305
    //this.width = 
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   306
	// console.log(createMosaic);
30
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   307
    //On met à jour la mosaïque.
32
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
   308
    $('#mainPanel').html(createMosaic);
30
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   309
    //On récupère la taille des bordures.
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   310
    this.marginWidth = $('.snapshotDivs').css('margin-bottom');
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   311
    this.marginWidth = parseFloat(this.marginWidth)*2;
30
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   312
    //On calcule la taille des divs contenant les snapshots.
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   313
    this.width = $('#mainPanel').innerWidth();
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   314
    //On ne calculera pas tout de suite la hauteur de la mosaique étant donnée qu'elle est calculée par la suite dynamiquement.
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   315
    this.snapshotWidth = this.width / this.config['length'] - this.marginWidth;
30
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   316
    this.snapshotHeight = this.snapshotWidth*9/16;
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   317
    $('.snapshotDivs').css('width', this.snapshotWidth).css('height', this.snapshotHeight).css('margin', this.marginWidth/2);
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   318
    
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   319
    this.height = $('#mainPanel').innerHeight();
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   320
    //On centre verticalement la mosaïque.
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   321
    this.MPTop_margin = ($(document).height() - $('#mainPanel').height())/2;
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   322
    $('#mainPanel').css('margin-top', this.MPTop_margin).css('margin-bottom', this.MPTop_margin);
32
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
   323
	
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   324
	//On fait coincider le background du body avec celui de la mosaïque.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   325
	$('body').css('background-position', '0px ' + this.MPTop_margin + 'px');
33
2d9b15f99b4e Front IDILL :
bastiena
parents: 32
diff changeset
   326
	
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   327
	/*$('.snapshotDivs').mouseover(function ()
32
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
   328
	{
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
   329
		//On effectue un prézoom dès qu'on va sur une image.
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
   330
		_this.preZoom($(this));
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   331
	});*/
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   332
	
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   333
	this.addPointers();
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   334
	
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   335
	//Si dans le metadata player _ n'est pas déclaré, on le déclare.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   336
	if(typeof _ !== "undefined" && typeof IriSP._ === "undefined")
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   337
	{
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   338
		IriSP._ = _;
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   339
	}
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   340
	
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   341
	if(typeof $ !== "undefined" && typeof IriSP.jQuery === "undefined")
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   342
	{
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   343
		IriSP.jQuery = $;
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   344
	}
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   345
	
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   346
	//On charge les marqueurs.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   347
	var sourceManager = new IriSP.Model.Directory(),
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   348
	globalAnnotations = new IriSP.Model.List(sourceManager),
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   349
	nbFichiers = _this.urls.length,
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   350
	fichiersCharges = 0;
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   351
	
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   352
	for (var i = 0; i < nbFichiers; i++)
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   353
	{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   354
		// console.log('url : ' + _this.urls[i]);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   355
		_this.sources[i] = sourceManager.remoteSource({url: _this.urls[i], serializer: IriSP.serializers.ldt});
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   356
		_this.sources[i].onLoad(function()
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   357
		{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   358
			var source = this;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   359
			// console.log(source);
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   360
			globalAnnotations.addElements(source.getAnnotations());
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   361
			// console.log(source.url + ' ' + source.getAnnotations().length);
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   362
			fichiersCharges++;
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   363
			if (fichiersCharges == nbFichiers)
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   364
			{
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   365
				// instructions à exécuter quand tout est chargé
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   366
				_this.annotations = globalAnnotations;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   367
				// console.log(_this.annotations.length + ' ' + nbFichiers);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   368
				console.log(_this.annotations.length + ' annotations loaded from ' + nbFichiers + ' files.');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   369
				
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   370
				//Si on gère les interactions à la souris.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   371
				if(_this.mouseInteractions)
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   372
				{
46
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
   373
					$(window).mousemove(function(e)
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   374
					{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   375
						_this.refreshMainPointer(e.pageX, e.pageY, _this);
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   376
						_this.mousePosX = e.pageX;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   377
						_this.mousePosY = e.pageY;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   378
					});
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   379
				}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   380
				
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   381
				if(_this.prephaseEnabled && !_this.mouseInteractions)
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   382
				{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   383
					_this.init();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   384
					_this.showNImages(0);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   385
					_this.currentMode = "NO-USER";
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   386
				}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   387
				else
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   388
				{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   389
					_this.showNImages(20);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   390
					_this.currentMode = "MOSAIC";
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   391
				}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   392
				
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   393
				// /!\ //
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   394
				// _this.currentMode = "FILTER";
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   395
				// _this.showNImages(20);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   396
				//_this.isSearchByCurvesOn = true;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   397
				// _this.startSearch();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   398
				// console.log('CANVAS READY');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   399
				// /!\ //
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   400
				
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   401
				/*_this.currentSearchGesture = 'bend';
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   402
				_this.currentMode = 'FILTER';
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   403
				_this.searchFilter('bend');*/
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   404
				
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   405
				_this.previousZoomedSN = $('#snapshotDiv-' + _this.fillingIds[0]);
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   406
			}
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   407
		});
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   408
	}
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   409
	
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   410
	if(this.mouseInteractions)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   411
	{
46
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
   412
		//Si on fait un mouse down sur le body, on vérifie enregistre le déplacement de la souris jusqu'au prochain mouse up.
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
   413
		$(window).mousedown(function (e)
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   414
		{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   415
			_this.removeSearchNotificationIfOnIt(e.pageX, e.pageY);
46
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
   416
			
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
   417
			_this.isUserInSearchZone = true;
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   418
			if(_this.isSearchByCurvesOn)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   419
			{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   420
				_this.searchCanvas.onPointerIn(_this.mousePosX, _this.mousePosY, null, null);
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   421
			}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   422
			
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   423
			console.log('mdown');
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   424
			//On écoute le déplacement de la souris.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   425
			$(window).mousemove(function(e)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   426
			{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   427
				if(_this.isSearchByCurvesOn)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   428
				{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   429
					_this.searchCanvas.onPointerMove(_this.mousePosX, _this.mousePosY - _this.MPTop_margin, null, null);
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   430
				}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   431
				
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   432
				//On met à jour l'ancienne position de la souris si elle est nulle.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   433
				if(!_this.mousePosLastX && _this.mousePosLastX != 0)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   434
				{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   435
					_this.mousePosLastX = _this.mousePosX;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   436
				}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   437
				if(!_this.mousePosLastY && _this.mousePosLastY != 0)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   438
				{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   439
					_this.mousePosLastY = _this.mousePosY;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   440
				}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   441
				
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   442
				//Le delta s'accroît si la souris bouge.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   443
				_this.mouseUpDownDelta += Math.floor(Math.sqrt((_this.mousePosLastX - e.pageX) * (_this.mousePosLastX - e.pageX) + (_this.mousePosLastY - e.pageY) * (_this.mousePosLastY - e.pageY)));
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   444
				
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   445
				// console.log(_this.mouseUpDownDelta, _this.mousePosLastX, e.pageX);
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   446
				
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   447
				if(_this.mousePosLastX != _this.mousePosX)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   448
				{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   449
					_this.mousePosLastX = _this.mousePosX;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   450
				}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   451
				if(_this.mousePosLastY != _this.mousePosY)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   452
				{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   453
					_this.mousePosLastY = _this.mousePosY;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   454
				}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   455
				
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   456
				//Si la souris a parcouru une trop grande distance, on entre en recherche.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   457
				if(_this.mouseUpDownDelta > _this.config['mouseUpDownDeltaTreshold'])
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   458
				{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   459
					//Si on est en mosaique, on entre en filtrage.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   460
					if(_this.currentMode == "MOSAIC")
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   461
					{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   462
						_this.preUnzoom();
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   463
						_this.currentMode = "FILTER";
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   464
						_this.isMosaicFiltered = true;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   465
						
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   466
						console.log(_this.date() + ' - ENTRE EN MODE FILTRAGE');
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   467
						
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   468
						_this.isSearchByCurvesOn = true;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   469
						_this.startSearch();
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   470
						
46
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
   471
						/*if(!_this.curvesGesturesFound)
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   472
						{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   473
							$('.notifications').remove();
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   474
							_this.filterSearch();
46
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
   475
						}*/
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   476
						
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   477
						_this.searchCanvas.onPointerIn(_this.mousePosX, _this.mousePosY - _this.MPTop_margin, null, null);
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   478
					}
46
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
   479
					else if(_this.currentMode == "FILTER" && !_this.isSearchByCurvesOn && _this.isUserInSearchZone)
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   480
					{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   481
						console.log('after search');
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   482
						_this.preUnzoom();
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   483
						_this.isSearchByCurvesOn = true;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   484
						_this.startSearch();
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   485
						_this.searchCanvas.onPointerIn(_this.mousePosX, _this.mousePosY - _this.MPTop_margin, null, null);
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   486
					}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   487
					//Si on est dans une vidéo, on entre en recherche.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   488
					else if(_this.currentMode == "VIDEO" || _this.currentMode == "TIMELINE")
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   489
					{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   490
						_this.currentMode = "SEARCH";
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   491
						
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   492
						console.log(_this.date() + ' - ENTRE EN MODE RECHERCHE');
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   493
						
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   494
						_this.isSearchByCurvesOn = true;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   495
						_this.startSearch();
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   496
						
46
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
   497
						/*if(!_this.curvesGesturesFound)
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   498
						{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   499
							$('.notifications').remove();
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   500
							_this.searchSearch();
46
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
   501
						}*/
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   502
						
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   503
						_this.searchCanvas.onPointerIn(_this.mousePosX, _this.mousePosY - _this.MPTop_margin, null, null);
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   504
					}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   505
					else if(_this.currentMode == "SEARCH" && !_this.isSearchByCurvesOn)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   506
					{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   507
						_this.isSearchByCurvesOn = true;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   508
						_this.startSearch();
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   509
						_this.searchCanvas.onPointerIn(_this.mousePosX, _this.mousePosY - _this.MPTop_margin, null, null);
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   510
					}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   511
					
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   512
					//Il est possible d'afficher l'aide.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   513
					if(!_this.canNotifyHelp)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   514
					{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   515
						_this.canNotifyHelpTimeout = setTimeout(function()
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   516
						{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   517
							_this.canNotifyHelp = true;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   518
						}, _this.config['timeoutCanNotifyHelp']);
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   519
					}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   520
				}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   521
			});
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   522
			
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   523
			//Si on fait un mouse up après ce mouse down.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   524
			$(window).mouseup(function()
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   525
			{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   526
				console.log('mup');
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   527
				
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   528
				if(_this.isSearchByCurvesOn)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   529
				{
46
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
   530
					_this.isUserInSearchZone = false;
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
   531
					
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   532
					var gesture_match = _this.gestureWithSameCode(_this.actualCode);
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   533
					_this.actualCode = '';
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   534
					
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   535
					if(gesture_match.length > 0)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   536
					{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   537
						if(_this.currentMode == "SEARCH" && _this.playerIsReady)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   538
						{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   539
							_this.player.widgets[0].searchByGesture(gesture_match);
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   540
							_this.isCurrentlyInASearchByGesture = _this.player.widgets[0].isCurrentlyInASearchByGesture;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   541
							
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   542
							$('.notifications').remove();
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   543
							_this.searchGesture(gesture_match, 'valid');
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   544
							_this.curvesGesturesFound = false;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   545
						}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   546
						else if(_this.currentMode == "FILTER")
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   547
						{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   548
							if(_this.isMosaicFiltered)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   549
							{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   550
								$('.notifications').remove();
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   551
								_this.filterSearchedType = gesture_match;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   552
								_this.filterGesture(gesture_match, 'valid');
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   553
								_this.searchFilter(gesture_match);
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   554
								_this.curvesGesturesFound = false;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   555
							}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   556
						}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   557
					}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   558
					
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   559
					_this.searchCanvas.onPointerOut();
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   560
				}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   561
				
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   562
				//On unbind ce qui a été bindé après le mouse up.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   563
				$(window).unbind('mousemove');
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   564
				$(window).unbind('mouseup');
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   565
				//On rebind le mousemove principal du body, car ils ont tous été unbindés.
46
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
   566
				$(window).mousemove(function(e)
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   567
				{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   568
					_this.refreshMainPointer(e.pageX, e.pageY, _this);
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   569
					_this.mousePosX = e.pageX;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   570
					_this.mousePosY = e.pageY;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   571
				});
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   572
				
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   573
				_this.mousePosLastX = null;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   574
				_this.mousePosLastY = null;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   575
				
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   576
				//Si la distance parcourue par la souris entre le mouse down et le mouse up est inférieure ou égale au seuil.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   577
				if(_this.mouseUpDownDelta <= _this.config['mouseUpDownDeltaTreshold'])
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   578
				{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   579
					//Si on est sur un snapshot prézoomé.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   580
					if(_this.isOnAPrezoomSN && _this.previousZoomedSN != '' && (_this.currentMode == 'MOSAIC' || _this.currentMode == 'FILTER'))
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   581
					{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   582
						_this.zoom();
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   583
					}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   584
				}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   585
				
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   586
				_this.mouseUpDownDelta = 0;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   587
				_this.isSearchByCurvesOn = false;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   588
				_this.leaveSearch();
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   589
				
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   590
				if(_this.currentMode == 'FILTER' && _this.filterSearchedType != '')//if(_this.currentSearchGesture != '')
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   591
				{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   592
					$('.notifications').remove();
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   593
					_this.filterGesture(_this.currentSearchGesture, 'valid');
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   594
				}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   595
				
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   596
			});
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   597
		});
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   598
	}
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   599
}
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   600
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   601
/*
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   602
 * Charge les paramètres du Front. Local (true/false) est le mode de chargement des données.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   603
*/
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   604
mosaic.prototype.loadParameters = function(file_path)
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   605
{
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   606
	var _this = this;
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   607
	
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   608
	var supposedToBeInt = ['length', 'imagesToShow', 'totalImages', 'timePrezoom', 'timePreUnzoom', 'timeZoom', 'zoomTime', 'timeUnzoom', 'timeNeighbourGlowing', 'timeNeighbourUnglowing', 'timeMovingToNeighbour', 'timeSearchFade', 'timeNotifyFade', 'timeFilterFade', 'timeANFade', 'timeFilling', 'zoomedMargin', 'timeoutZoom', 'timeoutUnzoom', 'timeoutMoveToNeighbour', 'timeoutPointersIdle', 'timeoutAreBothPointersHere', 'timeoutRemoveNotificationByGesture', 'timeoutRemoveFailedNotificationByGesture', 'timeoutNotifySwipe', 'timeoutSelectTL', 'timeoutSlideTL', 'timeoutCanNotifyHelp', 'timeoutRemoveSpinner', 'timeoutNouser', 'timeoutNextDrawCurve', 'mouseUpDownDeltaTreshold'];
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   609
	var supposedToBeFloat = ['zoomPercentage', 'prezoomPercentage'];
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   610
	
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   611
	$.getJSON(file_path, function(data)
32
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
   612
	{
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   613
		for(key in data)
32
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
   614
		{
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   615
			var val = data[key];
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   616
			
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   617
			if(_.include(supposedToBeInt, key))
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   618
			{
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   619
				var intVal = parseInt(val);
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   620
				if(isNaN(intVal))
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   621
				{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   622
					// console.log(_this.default_config);
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   623
					_this.config[key] = _this.default_config[key];
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   624
					console.log("param[" + key + "] : Valeur " + val + " incorrecte (non Int). Valeur par défaut " + _this.default_config[key] + " chargée à la place.");
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   625
				}
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   626
				else
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   627
				{
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   628
					_this.config[key] = intVal;
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   629
				}
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   630
			}
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   631
			else if(_.include(supposedToBeFloat, key))
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   632
			{
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   633
				var floatVal = parseFloat(val);
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   634
				if(isNaN(floatVal))
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   635
				{
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   636
					_this.config[key] = _this.default_config[key];
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   637
					console.log("param[" + key + "] : Valeur " + val + " incorrecte (non Float). Valeur par défaut " + _this.default_config[key] + " chargée à la place.");
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   638
				}
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   639
				else
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   640
				{
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   641
					_this.config[key] = floatVal;
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   642
				}
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   643
			}
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   644
			else
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   645
			{
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   646
				_this.config[key] = val;
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   647
			}
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   648
		}
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   649
		
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   650
		//On remplit le tableau d'ids.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   651
		for(var i = 0 ; i < _this.config['totalImages'] ; i++)
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   652
			_this.ids.push(i);
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   653
		//On les mélange.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   654
		_this.ids.sort(function()
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   655
		{
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   656
			return 0.5 - Math.random()
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   657
		});
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   658
		
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   659
		//On remplit le tableau d'ids destiné à afficher les snapshots au fur et à mesure.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   660
		for(var i = 0 ; i < _this.config['imagesToShow'] ; i++)
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   661
			_this.fillingIds.push(i);
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   662
		//On les mélange.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   663
		_this.fillingIds.sort(function()
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   664
		{
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   665
			return 0.5 - Math.random()
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   666
		});
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   667
		
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   668
		if(_this.config['local'] == 'true')
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   669
		{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   670
			// console.log("Loading local metadata.");
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   671
			_this.loadFromJson('./player/json/local_videos.json');
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   672
		}
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   673
		else
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   674
		{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   675
			// console.log("Loading online metadata.");
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   676
			_this.loadFromJson('./player/json/online_videos.json');
32
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
   677
		}
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   678
		
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   679
		//On initialise le client.
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   680
		if(!_this.mouseInteractions)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   681
		{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   682
			_this.client = new client(_this.config['host'], _this.config['port'], _this);
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   683
		}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   684
		
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   685
		_this.getDictionary();
46
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
   686
		_this.getLang();
32
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
   687
	});
30
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   688
}
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   689
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   690
/*
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   691
 * Phase principale (utilisateur non détecté). Une vidéo se lance aléatoirement.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   692
 * L'interface est identique à celle du zoom, mais sans interaction possible avec les voisins, ni les controles timeline.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   693
 * Lors de la fin d'une lecture, on dézoome vers la mosaïque, puis on rezoome vers un autre snapshot (aléatoire).
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   694
*/
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   695
mosaic.prototype.init = function()
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   696
{
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   697
	var _this = this;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   698
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   699
	if(this.currentRandomVideoIdx > this.config['imagesToShow'])
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   700
	{
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   701
		this.currentRandomVideoIdx = 0;
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   702
	}
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   703
	
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   704
	
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   705
	this.previousZoomedSN = $('#snapshotDiv-' + this.fillingIds[this.currentRandomVideoIdx]);
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   706
	this.previousId = $('img', this.previousZoomedSN).attr('id');
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   707
	
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   708
	// console.log('CURRENT MODE : ' + _this.currentMode);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   709
	// console.log('ids', this.fillingIds[this.currentRandomVideoIdx]);
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   710
	
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   711
	this.previousZoomedSN.fadeTo(this.config['timePrezoom'], 1, function()
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   712
	{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   713
		// console.log('CURRENT MODE : ' + _this.currentMode);
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   714
		_this.zoom();
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   715
		_this.currentRandomVideoIdx++;
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   716
	});
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   717
}
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   718
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   719
/*
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   720
 * Remplissage de la mosaïque en fonction du nombre d'images à afficher.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   721
*/
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   722
mosaic.prototype.showNImages = function(n)
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   723
{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   724
	if(this.currentlyMoving)
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   725
	{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   726
		return;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   727
	}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   728
	
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   729
	// console.log('INCOMING ----- ' + n);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   730
	//Si il y a plus d'un snapshot à afficher, on entre dans le mode INCOMING avec en paramètre le nombre à afficher.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   731
	if(n > 1 && n < this.config['imagesToShow'])
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   732
	{
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   733
		this.currentMode = "INCOMING-" + n;
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   734
		this.unzoom();
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   735
		this.currentSearchGesture = '';
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   736
		$('.notifications').remove();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   737
		this.isMosaicFiltered = false;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   738
		this.isCurrentlyInASearchByGesture = false;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   739
		$('#mainPointer').fadeTo(this.config['timePrezoom'], 0);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   740
		$('#secondPointer').fadeTo(this.config['timePrezoom'], 0);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   741
		$('#spinner').remove();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   742
		this.deselectAllNeighbours();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   743
		$('.prezoomContainers').remove();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   744
	}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   745
	// console.log('n : ' + n);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   746
	if(n >= this.config['imagesToShow'])
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   747
	{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   748
		// this.unzoom();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   749
		if(this.currentMode == "NO-USER" || this.currentMode.indexOf("INCOMING-") > -1)
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   750
		{
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   751
			if(!this.mouseInteractions)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   752
			{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   753
				this.currentMode = "INCOMING-20";
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   754
				this.unzoom();
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   755
			}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   756
			
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   757
			this.currentMode = "MOSAIC";
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   758
			$('.notifications').remove();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   759
			this.mosaicSelectionAndSearch();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   760
			clearTimeout(this.nouserTimeout);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   761
			console.log('OK');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   762
		}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   763
		//On affiche les notifications.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   764
		// this.notifySelectionSearchMosaicFull();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   765
	
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   766
		//$('#mainPointer').fadeTo(this.config['timePrezoom'], 1);
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   767
		//$('#secondPointer').fadeTo(this.config['timePrezoom'], 1);
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   768
	}
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   769
	
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   770
	//Pour les snapshots à afficher.
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   771
	for(var i = 0 ; i < n ; i++)
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   772
	{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   773
		//Si les snapshots ne sont pas affichés.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   774
		if($('#snapshotDiv-' + this.fillingIds[i]).css('opacity') < 1)
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   775
		{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   776
			//On les fait apparaître.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   777
			$('#snapshotDiv-' + this.fillingIds[i]).fadeTo(this.config['timeFilling'], '1');
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   778
		}
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   779
	}
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   780
	//Pour ceux à masquer.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   781
	for(var i = n ; i < this.config['imagesToShow'] ; i++)
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   782
	{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   783
		//Si les snapshots ne sont pas masqués et qu'il ne s'agit pas du dernier snapshot en lecture aléatoire (mode NO-USER).
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   784
		if($('#snapshotDiv-' + this.fillingIds[i]).css('opacity') > 0 && this.fillingIds[i] != this.currentRandomVideoIdx)
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   785
		{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   786
			//On les masque.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   787
			$('#snapshotDiv-' + this.fillingIds[i]).fadeTo(this.config['timeFilling'], '0');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   788
		}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   789
	}
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   790
}
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   791
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   792
/*
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   793
 * Gère les événements de contrôle dans la mosaïque.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   794
*/
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   795
mosaic.prototype.manageControlEvents = function(event)
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   796
{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   797
	// console.log('manage');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   798
	
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   799
	var _this = this;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   800
	
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   801
	if(typeof event === 'undefined')
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   802
	{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   803
		return;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   804
	}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   805
	
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   806
	var gestureReceived = '';
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   807
	
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   808
	if(event.indexOf("INCOMING-") != -1 && this.prephaseEnabled)
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   809
	{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   810
		// console.log(this.date() + ' ' + event);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   811
		// console.log('CAN START : ' + this.canStart);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   812
		if(this.canStart)
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   813
		{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   814
			if(this.snapshotsToShow > this.config['imagesToShow'])
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   815
			{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   816
				this.snapshotsToShow = this.config['imagesToShow'];
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   817
			}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   818
			else
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   819
			{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   820
				var params = event.split('-');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   821
				// console.log(event);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   822
				this.snapshotsToShow = params[1];
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   823
			}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   824
			
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   825
			//Si la position de l'utilisateur a changé.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   826
			if(event != this.lastIncomingMessage)
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   827
			{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   828
				console.log(this.snapshotsToShow);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   829
				this.lastIncomingMessage = event;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   830
				this.showNImages(this.snapshotsToShow);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   831
			}
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   832
		}
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   833
		
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   834
		clearTimeout(this.nouserTimeout);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   835
		this.nouserTimeout = setTimeout(function()
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   836
		{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   837
			/*_this.showNImages(0);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   838
			_this.init();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   839
			_this.canStart = false;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   840
			_this.currentMode = "NO-USER";*/
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   841
			
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   842
				window.location.reload();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   843
			// mos = new mosaic('./config.json', default_parameters);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   844
			
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   845
			console.log('NOUSER');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   846
		}, this.config['timeoutNouser']);
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   847
	}
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   848
	else if((event == "NO-USER" || event == "INCOMING-0" || event == "INCOMING-1") && this.prephaseEnabled)
31
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
   849
	{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   850
		/*this.showNImages(0);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   851
		this.init();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   852
		this.canStart = false;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   853
		this.currentMode = "NO-USER";*/
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   854
		
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   855
			window.location.reload();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   856
		// mos = new mosaic('./config.json', default_parameters);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   857
		
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   858
		console.log('NOUSER');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   859
		
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   860
		/*this.currentMode = "NO-USER";
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   861
		this.showNImages(0);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   862
		this.canStart = false;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   863
		this.init();*/
31
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
   864
	}
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   865
	// /!\/!\ //
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   866
	else if(event.indexOf("SWIPE") != -1)
31
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
   867
	{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   868
		if(this.player && this.player.widgets && this.playerIsReady && !this.isSwipe)
31
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
   869
		{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   870
			this.isSwipe = true;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   871
			
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   872
			if(this.currentMode == 'SEARCH' && this.isMosaicFiltered && !this.player.widgets[0].isAMarkerAhead(this.currentSearchGesture))
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   873
			{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   874
				this.playNextVideo();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   875
			}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   876
			
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   877
			//L'utilisateur a fait un swipe left.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   878
			if(event.indexOf("LEFT") != -1)
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   879
			{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   880
				this.player.widgets[0].switchToMarker(true, this.currentSearchGesture);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   881
				if(this.currentMode == 'VIDEO')
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   882
				{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   883
					$('.notifications').remove();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   884
					this.videoSwipe('left');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   885
				}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   886
				else if(this.currentMode == 'SEARCH' && !this.currentSearchGesture)
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   887
				{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   888
					$('.notifications').remove();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   889
					this.searchSearchAndSwipe('left');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   890
				}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   891
				else if(this.currentMode == 'SEARCH' && this.currentSearchGesture)
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   892
				{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   893
					$('.notifications').remove();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   894
					this.searchGestureAndSwipe(this.currentSearchGesture, 'valid', 'left');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   895
				}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   896
			}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   897
			//L'utilisateur a fait un swipe right.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   898
			else if(event.indexOf("RIGHT") != -1)
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   899
			{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   900
				this.player.widgets[0].switchToMarker(false, this.currentSearchGesture);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   901
				if(this.currentMode == 'VIDEO')
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   902
				{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   903
					$('.notifications').remove();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   904
					this.videoSwipe('right');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   905
				}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   906
				else if(this.currentMode == 'SEARCH' && !this.currentSearchGesture)
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   907
				{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   908
					$('.notifications').remove();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   909
					this.searchSearchAndSwipe('right');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   910
				}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   911
				else if(this.currentMode == 'SEARCH' && this.currentSearchGesture)
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   912
				{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   913
					$('.notifications').remove();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   914
					this.searchGestureAndSwipe(this.currentSearchGesture, 'valid', 'right');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   915
				}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   916
			}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   917
			
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   918
			//On le fait disparaitre au bout d'un certain temps.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   919
			this.notifySwipeTimeout = setTimeout(function()
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   920
			{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   921
				_this.isSwipe = false;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   922
				
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   923
				// /!\ //
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   924
				$('.notifications').remove();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   925
				
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   926
				if(_this.currentMode == 'SEARCH' && !_this.currentSearchGesture)
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   927
				{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   928
					_this.searchSearch();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   929
				}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   930
				else if(_this.currentMode == 'SEARCH' && _this.currentSearchGesture)
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   931
				{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   932
					_this.searchGesture(_this.currentSearchGesture, 'valid');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   933
				}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   934
				
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   935
			}, this.config['timeoutNotifySwipe']);
31
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
   936
		}
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
   937
	}
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   938
	else if(event.indexOf("BEND") != -1 || event.indexOf('KNEE-UP') != -1 || event.indexOf('FALL') != -1 || event.indexOf('JUMP') != -1)
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   939
	{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   940
		gestureReceived = event.toLowerCase();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   941
		gestureReceived = gestureReceived.replace('wave', 'hello');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   942
		this.currentSearchGesture = gestureReceived;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   943
	}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   944
	else if(event.indexOf("HELLO") != -1 && this.canNotifyHelp && !this.areBothPointersHere)
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   945
	{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   946
		if(this.currentMode == 'SEARCH')
31
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
   947
		{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   948
			this.notifyHelp(false);
31
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
   949
		}
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   950
		else if(this.currentMode == 'FILTER')
33
2d9b15f99b4e Front IDILL :
bastiena
parents: 32
diff changeset
   951
		{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   952
			this.notifyHelp(true);
31
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
   953
		}
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
   954
	}
33
2d9b15f99b4e Front IDILL :
bastiena
parents: 32
diff changeset
   955
	
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   956
	if(gestureReceived != '')
31
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
   957
	{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   958
		if(this.currentMode == "SEARCH" && this.playerIsReady)
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   959
		{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   960
			this.player.widgets[0].searchByGesture(gestureReceived);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   961
			this.isCurrentlyInASearchByGesture = this.player.widgets[0].isCurrentlyInASearchByGesture;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   962
			
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   963
			$('.notifications').remove();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   964
			this.searchGesture(gestureReceived, 'valid');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   965
		}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   966
		else if(this.currentMode == "FILTER")
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   967
		{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   968
			if(this.isMosaicFiltered)
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   969
			{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   970
				// console.log('FILTER !!!');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   971
				// this.notifySearch1Gesture(gestureReceived, 'valid');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   972
				$('.notifications').remove();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   973
				this.filterGesture(gestureReceived, 'valid');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   974
				this.searchFilter(gestureReceived);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   975
			}
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   976
		}
31
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
   977
		
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   978
		if(this.helpDisplayed)
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   979
		{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   980
			this.removeHelp();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   981
		}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   982
	}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   983
	// /!\/!\ //
30
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   984
}
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   985
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
   986
/*
31
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
   987
 * Chargement du player basé sur le metadataplayer.
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
   988
*/
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
   989
mosaic.prototype.loadPlayer = function(newZoomTop, newZoomLeft, newSnWidth, newSnHeight, zoomTop, zoomLeft, timeToGo)
31
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
   990
{
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   991
	var _this = this;
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
   992
	
31
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
   993
	//On configure les options de lancement.
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
   994
	IriSP.libFiles.defaultDir = "../lib/";
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
   995
	IriSP.widgetsDir = "./player/metadataplayer/"
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
   996
	
32
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
   997
	var videoToPlay = this.videos[this.centerId];
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
   998
	var currentMetadata = this.urls[this.centerId];
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
   999
	
31
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1000
	var _metadata = {
32
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1001
		url: currentMetadata,
31
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1002
		format: 'ldt'
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1003
	};
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1004
	
31
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1005
	var _config = {
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1006
		gui: {
33
2d9b15f99b4e Front IDILL :
bastiena
parents: 32
diff changeset
  1007
			zoomTop: zoomTop - this.marginWidth*2,
2d9b15f99b4e Front IDILL :
bastiena
parents: 32
diff changeset
  1008
			zoomLeft: zoomLeft,
31
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1009
			width: newSnWidth,
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1010
			height: newSnHeight,
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1011
			container: 'LdtPlayer',
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1012
			default_options: {
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1013
				metadata: _metadata
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1014
			},
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1015
			css:'./player/metadataplayer/LdtPlayer-core.css',
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1016
			widgets: [
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1017
				{
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1018
					type: "Timeline"
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1019
				}
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1020
			]
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1021
		},
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1022
		player:{
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1023
			type: 'html5', // player type
32
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1024
			video: videoToPlay,
31
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1025
			live: true,
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1026
			height: newSnHeight,
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1027
			width: newSnWidth,
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1028
			autostart: true
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1029
		}
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1030
	};
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1031
	
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1032
	//On positionne le player.
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1033
	$('.LdtPlayer').css(
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1034
	{
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1035
		//display: 'none',
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1036
		position: 'absolute',
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1037
		'background-color': '#000000',
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1038
		top: newZoomTop,
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1039
		left: newZoomLeft
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1040
	});
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1041
	
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1042
	//On démarre le player.
32
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1043
	this.player = null;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1044
	
32
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1045
	this.player = new IriSP.Metadataplayer(_config, _metadata);
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1046
	
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1047
	this.player.onLoad(function()
31
2c7fc855eba8 FRONT IDILL :
bastiena
parents: 30
diff changeset
  1048
	{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1049
		if(_this.currentMode == 'NO-USER')
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1050
		{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1051
			//On peut s'approcher de la kinect.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1052
			_this.canStart = true;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1053
			console.log('CAN START !');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1054
			// console.log(_this.player);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1055
			// console.log(_this.player.popcorn);
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1056
		}
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
  1057
		
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1058
		//Lorsque le player est en pause (par exemple lorsque le curseur arrive à la fin de la timeline).
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1059
		if(_this.player.popcorn)
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1060
		{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1061
			_this.player.popcorn.listen('pause', function()
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1062
			{
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1063
				//Si l'utilisateur a mis en pause.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1064
				if(_this.userPaused)
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1065
				{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1066
				
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1067
				}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1068
				//Si la pause est naturelle (fin de la timeline, dézoom, déplacement vers un voisin).
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1069
				else
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1070
				{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1071
					//Si c'est en mode sans utilisateur.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1072
					if(_this.currentMode == 'NO-USER')
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1073
					{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1074
						//On dézoome.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1075
						_this.unzoom();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1076
					}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1077
					//Sinon.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1078
					else
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1079
					{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1080
						//Si ce n'est pas causé par un déplacement ou un dézoom.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1081
						if(!_this.currentlyMoving && !_this.currentlyUnzooming)
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1082
						{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1083
							//On réinitialise la position du curseur à la prochaine lecture de la vidéo.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1084
							console.log('REINIT');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1085
							//On passe a la video suivante.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1086
							console.log('AUTOMOVE');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1087
							
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1088
							//Si on est en mode timeline et qu'on est en pause, c'est probablement que l'user a placé le curseur à la fin.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1089
							if(_this.currentMode != 'TIMELINE')
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1090
							{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1091
								_this.playNextVideo();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1092
							}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1093
							//_this.timeToGoAt[parseInt(_this.centerId)] = 0;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1094
							console.log('time to go at to 0');
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1095
							// return;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1096
						}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1097
					}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1098
				}
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1099
			});
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1100
			// console.log('mosaic filtered : ' + _this.isMosaicFiltered);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1101
			
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1102
			_this.player.popcorn.on("markersready", function()
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1103
			{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1104
				_this.playerIsReady = true;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1105
				
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
  1106
				if(_this.player.widgets[0])
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
  1107
				{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
  1108
					_this.player.widgets[0].setMouseInteractions(_this.mouseInteractions);
46
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
  1109
					if(_this.gesturesText.length > 0)
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
  1110
					{
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
  1111
						_this.player.widgets[0].setLang(_this.gesturesText);
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
  1112
					}
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
  1113
				}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
  1114
				
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1115
				if(_this.currentMode == 'VIDEO' || _this.currentMode == 'SEARCH' || _this.currentMode == 'TIMELINE')
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1116
				{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1117
					_this.canSwipe = true;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1118
				}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1119
				
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1120
				console.log('TIME TO GO AT : ' + _this.timeToGoAt[_this.centerId], _this.centerId, _this.imgs[_this.centerId]);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1121
				
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1122
				if(_this.isMosaicFiltered)
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1123
				{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1124
					if(_this.currentSearchGesture == '')
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1125
					{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1126
						_this.removeFilter();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1127
					}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1128
					else
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1129
					{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1130
						_this.currentMode = 'SEARCH';
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1131
						// console.log(_this.currentSearchGesture);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1132
						_this.player.widgets[0].searchByGesture(_this.currentSearchGesture);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1133
						_this.isCurrentlyInASearchByGesture = _this.player.widgets[0].isCurrentlyInASearchByGesture;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1134
						
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1135
						if(_this.timeToGoAt[_this.centerId] === 0 && _this.player.widgets[0].atLeastOneSearchMarker(_this.currentSearchGesture))
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1136
						{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1137
							_this.player.widgets[0].goToFirstSearchedMarker(_this.currentSearchGesture);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1138
						}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1139
						else
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1140
						{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1141
							_this.player.popcorn.currentTime(_this.timeToGoAt[_this.centerId]);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1142
						}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1143
					}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1144
				}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1145
				// /!\ //
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1146
				else
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1147
				{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1148
					if(_this.player.popcorn)
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1149
					{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1150
						_this.player.popcorn.currentTime(_this.timeToGoAt[_this.centerId]);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1151
					}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1152
				}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1153
			});
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1154
		}
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1155
	});
30
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
  1156
}
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
  1157
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
  1158
/*
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1159
 * Permet de tester l'égalité des éléments de deux objets.
30
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
  1160
 * Pour ce faire on compare les éléments définissant ces objets.
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
  1161
 */
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
  1162
$.fn.equals = function(compareTo)
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
  1163
{
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
  1164
    if (!compareTo || !compareTo.length || this.length!=compareTo.length)
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
  1165
    {
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
  1166
        return false;
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
  1167
    }
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
  1168
    for (var i=0; i<this .length; i++)
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
  1169
    {
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
  1170
        if (this[i]!==compareTo[i])
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
  1171
        {
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
  1172
            return false;
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
  1173
        }
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
  1174
    }
45c889eae324 Front IDILL :
bastiena
parents:
diff changeset
  1175
    return true;
32
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1176
}
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1177
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1178
/*
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1179
 * Charge les vidéos, les snapshots et les annotations depuis un fichier json.
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1180
*/
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1181
mosaic.prototype.loadFromJson = function(path)
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1182
{
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1183
	var _this = this;
33
2d9b15f99b4e Front IDILL :
bastiena
parents: 32
diff changeset
  1184
	var i = 0;
32
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1185
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1186
	$.getJSON(path, function(data)
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1187
	{
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1188
		$.each(data, function(key, val)
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1189
		{
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1190
			$.each(val, function(key_video, val_video)
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1191
			{
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1192
				$.getJSON(val_video.metadata, function(meta)
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1193
				{
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1194
					if(_this.config['local'] == 'true')
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1195
					{
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1196
						_this.affectVideoById(val_video.metadata, meta.medias[0].url.replace('rtmp://media.iri.centrepompidou.fr/ddc_player/', './player/videos/').replace('mp4:', '').replace('video/', '').replace('ldtplatform/', '').replace('.m4v', '.mp4'));
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1197
						// console.log(meta.medias[0].url.replace('rtmp://media.iri.centrepompidou.fr/ddc_player/', './player/videos/').replace('mp4:', '').replace('video/', '').replace('ldtplatform/', '').replace('.m4v', '.mp4'));
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1198
					}
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1199
					else
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1200
					{
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1201
						_this.affectVideoById(val_video.metadata, meta.medias[0].url.replace('rtmp://', 'http://').replace('/ddc_player/', '/').replace('mp4:', '').replace('.m4v', '.mp4'));
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1202
						// console.log(meta.medias[0].url.replace('rtmp://', 'http://').replace('/ddc_player/', '/').replace('mp4:', '').replace('.m4v', '.mp4'));
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1203
					}
32
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1204
				});
33
2d9b15f99b4e Front IDILL :
bastiena
parents: 32
diff changeset
  1205
				_this.imgs[_this.ids[i]] = val_video.snapshot;
2d9b15f99b4e Front IDILL :
bastiena
parents: 32
diff changeset
  1206
				_this.urls[_this.ids[i]] = val_video.metadata;
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1207
				//Au départ, on commence à 0 ms dans les vidéos.
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1208
				_this.timeToGoAt[_this.ids[i]] = 0;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1209
				// console.log('ids : ' + _this.ids[i]);
33
2d9b15f99b4e Front IDILL :
bastiena
parents: 32
diff changeset
  1210
				i++;
32
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1211
			});
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1212
		});
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1213
		// console.log('rdy');
32
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1214
		_this.loadMosaic();
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1215
	});
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1216
}
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1217
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1218
/*
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1219
 * Affecte une vidéo au tableau des vidéos selon son id
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1220
*/
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1221
mosaic.prototype.affectVideoById = function(metadata_id, video)
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1222
{
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1223
	for (i = 0 ; i < this.urls.length ; i++)
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1224
	{
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1225
		if(this.urls[i] == metadata_id)
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1226
		{
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1227
			this.videos[i] = video;
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1228
			break;
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1229
		}
4003f84cd349 Front IDILL :
bastiena
parents: 31
diff changeset
  1230
	}
33
2d9b15f99b4e Front IDILL :
bastiena
parents: 32
diff changeset
  1231
}
2d9b15f99b4e Front IDILL :
bastiena
parents: 32
diff changeset
  1232
2d9b15f99b4e Front IDILL :
bastiena
parents: 32
diff changeset
  1233
/*
35
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1234
 * Rebind keypress pour body.
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1235
*/
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1236
mosaic.prototype.reaffectKeyPress = function()
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1237
{
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1238
	var _this = this;
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1239
	
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1240
	$('body').keypress(function (event)
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1241
	{
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1242
		_this.manageControlEvents(event);
4267d6d27a7d Front IDILL :
bastiena
parents: 33
diff changeset
  1243
	});
44
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1244
}
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1245
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1246
mosaic.prototype.date = function()
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1247
{
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1248
   var date, h, min, s;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1249
   date = new Date();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1250
   h = date.getHours();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1251
   min = date.getMinutes();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1252
   s = date.getSeconds();
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1253
   if (h < 10)
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1254
      h = "0" + h;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1255
   if (min < 10)
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1256
      min = "0" + min;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1257
   if (s < 10)
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1258
      s = "0" + s;
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1259
   return (h + ":" + min + ":" + s);
8393d3473b98 Front IDILL:
bastiena
parents: 35
diff changeset
  1260
};