front_idill/src/mosaic/js/neighbours.js
author bastiena
Thu, 05 Jul 2012 16:04:33 +0200
changeset 45 0e29ae4568a0
parent 44 8393d3473b98
child 47 4e1ee94d70b1
permissions -rw-r--r--
Front IDILL: Segment detector created for mouse interactions curves detection
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
44
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     1
/*
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     2
 * Affecte les listeners mouseenter aux voisins lors d'une vue en plein écran.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     3
 */
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     4
mosaic.prototype.listenToNeighbours = function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     5
{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     6
    ////TEST
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     7
    //$('.test').empty();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     8
	console.log('LISTEN TO NEIGHBOURS');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     9
	$('.notifications').remove();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    10
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    11
	if(this.currentMode == "NO-USER" || this.currentMode.indexOf("INCOMING") != -1)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    12
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    13
		return;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    14
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    15
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    16
	// console.log('MODE : ' + this.currentMode);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    17
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    18
	if(this.neighboursIds == null || this.neighboursIds != null && this.neighboursIds.length > 0)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    19
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    20
		return;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    21
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    22
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    23
    var _this = this;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    24
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    25
	this.canMoveToNeighbour = false;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    26
    var currentLine = Math.floor(this.centerId / this.config['length']), currentColumn = this.centerId % this.config['length'];
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    27
    var zoomedImg = $('img', this.previousZoomedSN);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    28
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    29
    //On cherche l'ID des voisins.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    30
    //Si le voisin de gauche est sur la même ligne, on n'est pas sur la bordure de gauche.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    31
    this.neighboursIds[0] = (currentColumn > 0) ? (this.centerId - 1) : -1;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    32
    //Si le voisin de droite est sur la même ligne, on n'est pas sur la bordure de droite.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    33
    this.neighboursIds[1] = (currentColumn < this.config['length'] - 1) ? (+this.centerId + 1) : -1;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    34
    //Si le voisin du haut est sur la même colonne, on n'est pas sur la bordure du haut.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    35
    this.neighboursIds[2] = (currentLine > 0) ? (this.centerId - this.config['length']) : -1;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    36
    //Si le voisin du bas est sur la même colonne, on n'est pas sur la bordure du bas.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    37
    this.neighboursIds[3] = (currentLine < (this.config['imagesToShow'] / this.config['length'])) ? (+this.centerId + this.config['length']) : -1;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    38
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    39
	//ID du cadre voisin.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    40
	var preId;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    41
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    42
    for(var i = 0 ; i < this.neighboursIds.length ; i++)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    43
    {
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    44
		// console.log('pre : ' + this.neighboursIds[i]);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    45
		if(this.neighboursIds[i] >= this.config['imagesToShow'])
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    46
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    47
			this.neighboursIds[i] = -1;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    48
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    49
    }
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    50
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    51
	// console.log('neighbours : ', this.neighboursIds);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    52
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    53
	//Si on est sur une bordure.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    54
	//On crée des voisins supplémentaires.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    55
	if(_.include(this.neighboursIds, -1))
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    56
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    57
		this.createAdditionalNeighbours();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    58
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    59
}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    60
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    61
/*
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    62
 * Crée des voisins supplémentaires pour garantir le déplacement / dézoom quand on arrive sur le bord de la mosaïque.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    63
*/
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    64
mosaic.prototype.createAdditionalNeighbours = function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    65
{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    66
	if(this.currentMode == "NO-USER")
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    67
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    68
		return;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    69
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    70
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    71
	// console.log('Create additional neighbours');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    72
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    73
	var additionalNeighbours = '';
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    74
	for(var i = 0 ; i < this.neighboursIds.length ; i++)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    75
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    76
		var sn = $('#snapshotDiv-' + this.centerId);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    77
		var m = parseInt(sn.css('margin'));
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    78
		var centerTop = sn.position().top + this.notifyTopVideo + this.MPTop_margin, centerLeft = sn.position().left + this.notifyLeftVideo;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    79
		var centerWidth = sn.width(), centerHeight = sn.height();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    80
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    81
		// console.log('top : ' + sn.position().top + ', left : ' + this.notifyTopVideo + ' ' + this.notifyLeftVideo + ' ' + this.centerId);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    82
		// console.log(this.neighboursIds[i]);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    83
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    84
		var top, left;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    85
				
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    86
		if(this.neighboursIds[i] == -1)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    87
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    88
			if(i == 0)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    89
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    90
				top = centerTop + m / 2;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    91
				left = centerLeft - centerWidth - 2 * m;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    92
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    93
			else if(i == 1)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    94
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    95
				top = centerTop + m / 2;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    96
				left = centerLeft + centerWidth + 3 * m;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    97
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    98
			else if(i == 2)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    99
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   100
				top = centerTop - centerHeight - 2 * m;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   101
				left = centerLeft + m / 2;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   102
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   103
			else if(i == 3)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   104
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   105
				top = centerTop + centerHeight + 3 * m;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   106
				left = centerLeft + m / 2;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   107
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   108
			
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   109
			additionalNeighbours += '<div id="borderNeighbour-' + i + '" class="borderNeighbours" style="opacity: 0; width: ' + centerWidth + 'px; height: ' + centerHeight + 'px; top: ' + top + 'px; left: ' + left + 'px;"></div>';
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   110
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   111
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   112
	// console.log(additionalNeighbours);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   113
	$('body').append(additionalNeighbours);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   114
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   115
	$('.borderNeighbours').fadeTo(this.config['timeANFade'], '1');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   116
}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   117
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   118
/*
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   119
 * Supprime les voisins supplémentaires.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   120
*/
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   121
mosaic.prototype.removeAdditionalNeighbours = function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   122
{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   123
	$('.borderNeighbours').fadeTo(this.config['timeANFade'], '0', function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   124
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   125
		$('.borderNeighbours').remove();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   126
	});
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   127
	this.deselectAllNeighbours();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   128
}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   129
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   130
/*
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   131
 * Déselectionne tous les voisins, même les additionnels.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   132
*/
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   133
mosaic.prototype.deselectAllNeighbours = function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   134
{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   135
	$('.neighbourFrame').fadeTo(this.config['timeANFade'], '0', function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   136
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   137
		$('.neighbourFrame').remove();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   138
	});
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   139
}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   140
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   141
/*
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   142
 * Change la coloration d'une bordure où on se positionne lors d'une vue en plein écran.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   143
 */
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   144
mosaic.prototype.selectNeighbour = function(neighbour, pointer)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   145
{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   146
    ////TEST
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   147
    //$('.test').append(mos.currentMode + " " + $(this).attr('id') + " " + 'snapshotDiv-' + mos.centerId + ',');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   148
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   149
	// console.log(this.currentlyMoving, this.currentlyUnzooming, this.helpDisplayed);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   150
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   151
	if(this.currentlyMoving || this.currentlyUnzooming || this.helpDisplayed)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   152
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   153
		return;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   154
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   155
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   156
	// console.log('test (2)');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   157
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   158
	this.canSwipe = false;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   159
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   160
	var _this = this;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   161
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   162
	// console.log('SEL NEI', this.neighbourIds);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   163
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   164
    //Si on est en mode VIDEO (plein écran) ET si le snapshot pointé est un voisin.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   165
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   166
	// console.log('test (3)');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   167
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   168
    if((this.currentMode == 'VIDEO' || this.currentMode == 'SEARCH') && (neighbour.attr('id') != 'snapshotDiv-' + this.centerId))
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   169
    {
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   170
        //On crée le cadre qui va être superposé au voisin.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   171
        //On le colle au voisin.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   172
		var tab = neighbour.attr('id').split('-');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   173
		var snapshotId = tab[1];
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   174
        var neighbourFrame = '';
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   175
		var marginValue = parseFloat(neighbour.css('margin'));
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   176
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   177
		//Si la frame existe déjà, on quitte.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   178
		if($('#neighbourFrame-' + snapshotId).length > 0)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   179
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   180
			return;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   181
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   182
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   183
		//Si c'est un voisin additionnel.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   184
		if(neighbour.attr('id').indexOf('borderNeighbour') != -1)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   185
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   186
			snapshotId = +snapshotId + this.config['imagesToShow'];
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   187
			neighbourFrame += '<div class="neighbourFrame" id="neighbourFrame-' + snapshotId + '"></div>';
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   188
			if($('#neighbourFrame-' + snapshotId).length > 0)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   189
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   190
				return;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   191
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   192
			$('body').append(neighbourFrame);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   193
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   194
		else
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   195
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   196
			neighbourFrame += '<div class="neighbourFrame" id="neighbourFrame-' + snapshotId + '"><div class="neighbourImgBg" id="neighbourImgBg-' + snapshotId + '"><div class="neighbourImg" id="neighbourImg-' + snapshotId + '"></div></div></div>';
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   197
			if($('#neighbourFrame-' + snapshotId).length > 0)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   198
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   199
				return;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   200
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   201
			$('#mainPanel').append(neighbourFrame);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   202
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   203
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   204
		//On positionne le div de background juste au niveau du voisin.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   205
        $('#neighbourFrame-' + snapshotId).css(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   206
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   207
			'top': (+neighbour.position().top + marginValue),
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   208
			'left': (+neighbour.position().left + marginValue),
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   209
			'width': neighbour.width(),
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   210
			'height': neighbour.height()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   211
		});
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   212
		//On positionne le div de background noir juste au niveau de l'image du voisin.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   213
        $('#neighbourImgBg-' + snapshotId).css(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   214
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   215
			'top': marginValue,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   216
			'left': marginValue,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   217
			'width': neighbour.width() - marginValue*2,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   218
			'height': neighbour.height() - marginValue*2,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   219
		});
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   220
		//On met par dessus le div de l'image clonée du voisin.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   221
		$('#neighbourImg-' + snapshotId).css(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   222
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   223
			'top': 0,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   224
			'left': 0,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   225
			'width': neighbour.width() - marginValue*2,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   226
			'height': neighbour.height() - marginValue*2,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   227
			'background-image': 'url("' + $('img', neighbour).attr('src') + '")',
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   228
			'background-size': neighbour.width() + 'px ' + neighbour.height() + 'px',
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   229
			'background-position': -marginValue + 'px ' + -marginValue + 'px',
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   230
			'opacity': '0.4'
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   231
		});
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   232
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   233
		var fId = '#neighbourFrame-' + snapshotId;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   234
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   235
		$(fId).animate(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   236
        {
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   237
            //On le fait apparaître.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   238
            opacity: '1'
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   239
        }, _this.config['timeNeighbourGlowing'], function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   240
		{
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   241
			if(_this.mouseInteractions)
44
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   242
			{
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   243
				if(_this.currentMode == 'VIDEO')
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   244
				{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   245
					$('.notifications').remove();
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   246
					_this.videoMove(snapshotId);
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   247
				}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   248
				else if(_this.currentMode == 'SEARCH' && !_this.currentSearchGesture)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   249
				{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   250
					$('.notifications').remove();
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   251
					_this.searchSearchAndMove(snapshotId);
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   252
				}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   253
				else if(_this.currentMode == 'SEARCH' && _this.currentSearchGesture)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   254
				{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   255
					$('.notifications').remove();
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   256
					_this.searchGestureAndMove(_this.currentSearchGesture, 'valid', snapshotId);
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   257
				}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   258
				
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   259
				_this.canMoveToNeighbour = true;
44
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   260
			}
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   261
			else
44
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   262
			{
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   263
				if(_this.currentMode == 'VIDEO')
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   264
				{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   265
					$('.notifications').remove();
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   266
					_this.videoMoveAndUnzoom(snapshotId);
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   267
				}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   268
				else if(_this.currentMode == 'SEARCH' && !_this.currentSearchGesture)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   269
				{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   270
					$('.notifications').remove();
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   271
					_this.searchSearchAndMoveAndUnzoom(snapshotId);
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   272
				}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   273
				else if(_this.currentMode == 'SEARCH' && _this.currentSearchGesture)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   274
				{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   275
					$('.notifications').remove();
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   276
					_this.searchGestureAndMoveAndUnzoom(_this.currentSearchGesture, 'valid', snapshotId);
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   277
				}
44
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   278
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   279
		});
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   280
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   281
		var side = $.inArray(parseInt(snapshotId), this.neighboursIds);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   282
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   283
		if(side == -1)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   284
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   285
			return;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   286
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   287
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   288
		var sides = ['left', 'right', 'down', 'up'];
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   289
		pointer.css('background-image', 'url(./img/cursors/' + sides[side] + '_gray.png)');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   290
    }
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   291
}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   292
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   293
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   294
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   295
/*
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   296
 * Change la coloration d'une bordure quittée lors d'une vue en plein écran.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   297
 */
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   298
mosaic.prototype.deselectNeighbour = function(neighbourId)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   299
{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   300
    ////TEST
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   301
    //$('.test').append('un,');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   302
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   303
	//this.removeNotifyMoveUnzoom();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   304
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   305
	if($('#neighbourFrame-' + neighbourId).length <= 0)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   306
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   307
		return;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   308
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   309
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   310
	var _this = this;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   311
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   312
	// console.log('DES');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   313
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   314
    //On ne peut plus se déplacer vers les voisins.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   315
    this.canMoveToNeighbour = true;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   316
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   317
	//On récupère le voisin.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   318
	var neighbourFrame = $('#neighbourFrame-' + neighbourId);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   319
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   320
    //Si on est en mode VIDEO.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   321
    if(this.currentMode == 'VIDEO' || this.currentMode == 'SEARCH')
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   322
    {
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   323
        //On le fait disparaître progressivement.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   324
        neighbourFrame.animate(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   325
        {
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   326
            opacity: '0'
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   327
        }, this.config['timeNeighbourUnglowing'], function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   328
        {
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   329
            //Une fois invisible, on le supprime.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   330
            neighbourFrame.remove();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   331
			$('.notifications').remove();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   332
			
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   333
			if(_this.currentMode == 'SEARCH' && !_this.currentSearchGesture)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   334
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   335
				_this.searchSearch();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   336
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   337
			else if(_this.currentMode == 'SEARCH' && _this.currentSearchGesture)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   338
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   339
				_this.searchGesture(_this.currentSearchGesture, 'valid');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   340
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   341
			
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   342
			_this.canSwipe = true;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   343
        });
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   344
    }
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   345
}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   346
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   347
/*
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   348
 * Permet de savoir si un déplacement est possible en fonction de l'id de snapshot entré.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   349
 * x et y sont les positions du pointeur.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   350
 * Déplace vers le voisin si possible.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   351
*/
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   352
mosaic.prototype.correctMoveToNeighbour = function(id, x, y)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   353
{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   354
	var _this = this;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   355
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   356
	if(this.neighboursIds != null && this.neighboursIds.length > 0 && this.canMoveToNeighbour)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   357
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   358
		var idx = $.inArray(id, this.neighboursIds);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   359
		//Si l'id du snapshot qu'on vient de quitter fait partie des voisins.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   360
		if(idx > -1)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   361
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   362
			//Correspondance indices : position par rapport au snapshot du milieu.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   363
			//0 : gauche.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   364
			//1 : droite.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   365
			//2 : haut.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   366
			//3 : bas.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   367
			
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   368
			//On cherche le symétrique de l'id du voisin quitté.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   369
			//Astuce : S'il est pair, cela signifie qu'on doit faire +1, sinon c'est -1.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   370
			//var sym = (idx % 2 == 0) ? (+idx + 1) : (idx - 1);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   371
			
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   372
			//S'il est > -1 alors forcément il existe.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   373
			//Si on peut se déplacer vers un voisin, on le fait.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   374
			if(this.neighboursIds[idx] > -1)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   375
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   376
				var centerWidth = -this.notifyLeftVideo + $(window).width() / 2, centerHeight = -this.notifyTopVideo + $(window).height() / 2;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   377
				
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   378
				// console.log('x : ' + x + ' cw : ' + centerWidth + ', y : ' + y + ' ch : ' + centerHeight);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   379
				
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   380
				//Si l'id du tableau est pair, alors forcément le pointeur doit être plus à droite/plus en bas que le milieu de l'écran pour se déplacer vers le voisin.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   381
				//Sinon c'est l'inverse.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   382
				//(sym et idx on été échangés).
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   383
				if(idx == 0 && x > centerWidth || idx == 2 && y > centerHeight || idx == 1 && x < centerWidth || idx == 3 && y < centerHeight)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   384
				{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   385
					// console.log('d to (' + idx + ' - ' + this.neighboursIds[idx] + '): ' + this.imgs[this.neighboursIds[idx]]);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   386
					
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   387
					this.moveToNeighbour($('#snapshotDiv-' + this.neighboursIds[idx]));
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   388
				}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   389
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   390
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   391
		else if(id >= this.config['imagesToShow'])
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   392
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   393
			//On otbient le vrai ID du voisin additionnel.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   394
			var additionalNeighbourId = id - this.config['imagesToShow'];
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   395
			var sym = (additionalNeighbourId % 2 == 0) ? (+additionalNeighbourId + 1) : (additionalNeighbourId - 1);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   396
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   397
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   398
}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   399
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   400
/*
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   401
 * Lors d'une vue en plein écran, on se déplace vers le voisin dont l'id a été spécifié dans la fonction appelante.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   402
 */
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   403
mosaic.prototype.moveToNeighbour = function(neighbour)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   404
{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   405
	var _this = this;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   406
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   407
	console.log('automove : ' + this.autoMove);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   408
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   409
    //Si on ne peut pas se déplacer vers les voisins, on quitte.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   410
    if((!this.canMoveToNeighbour || neighbour.length <= 0 || this.currentlyMoving) && !this.autoMove)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   411
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   412
        return;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   413
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   414
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   415
	console.log('MOVE');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   416
	this.canMoveToNeighbour = false;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   417
	this.currentlyMoving = true;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   418
	this.removeAdditionalNeighbours();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   419
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   420
    //On obtient l'ID de destination.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   421
    var tab = neighbour.attr('id').split('-');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   422
    var destinationId = tab[1];
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   423
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   424
	var startId = this.previousZoomedSN.attr('id').replace('snapshotDiv-', '');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   425
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   426
    //On charge les attributs nécessaires aux calculs.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   427
	var length = _this.config['length'];
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   428
    var MPCurrentTop = $('#mainPanel').position().top, MPCurrentLeft = $('#mainPanel').position().left;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   429
    var divideCoeffTop = Math.floor(destinationId / length) == 0 ? 1 : Math.floor(destinationId / length);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   430
    var divideCoeffLeft = destinationId % length == 0 ? 1 : destinationId % length;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   431
    var neighbourFrameTop = $('#snapshotDiv-' + destinationId).position().top, neighbourFrameLeft = $('#snapshotDiv-' + destinationId).position().left;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   432
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   433
	_this.previousZoomedSN = $('#snapshotDiv-' + this.centerId);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   434
	// var centerSN = $('#snapshotDiv-' + this.centerId);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   435
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   436
	//On définit pour le déplacement vertical s'il est nécessaire de se déplacer en haut ou en bas.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   437
	if(_this.previousZoomedSN.position().top > neighbourFrameTop)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   438
		MPCurrentTop += Math.abs(neighbourFrameTop - _this.previousZoomedSN.position().top);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   439
	else if(_this.previousZoomedSN.position().top < neighbourFrameTop)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   440
		MPCurrentTop -= Math.abs(neighbourFrameTop - _this.previousZoomedSN.position().top);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   441
	//On définit pour le déplacement horizontal s'il est nécessaire de se déplacer à gauche ou à droite.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   442
	if(_this.previousZoomedSN.position().left > neighbourFrameLeft)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   443
		MPCurrentLeft += Math.abs(neighbourFrameLeft - _this.previousZoomedSN.position().left);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   444
	else if(_this.previousZoomedSN.position().left < neighbourFrameLeft)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   445
		MPCurrentLeft -= Math.abs(neighbourFrameLeft - _this.previousZoomedSN.position().left);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   446
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   447
    //On passe le snapshot de destination en HD.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   448
    var destinationImg = $('#snapshot-' + destinationId);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   449
    var destinationImgSrc = destinationImg.attr('src');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   450
    destinationImg.attr('src', destinationImgSrc.replace('snapshots-little/', 'snapshots/'));
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   451
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   452
    //On passe l'ancien snapshot en SD.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   453
    var currentImgSrc = $('img', _this.previousZoomedSN).attr('src');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   454
    $('img', _this.previousZoomedSN).attr('src', currentImgSrc.replace('snapshots/', 'snapshots-little/'));
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   455
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   456
    $('#snapshotDiv-' + destinationId).css('opacity', '1');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   457
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   458
	if(_this.playerIsReady)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   459
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   460
		if(_this.currentMode == 'TIMELINE')
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   461
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   462
			_this.exitTimeline('move');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   463
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   464
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   465
		console.log(Math.floor(_this.player.popcorn.currentTime()));
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   466
		if(_this.autoMove)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   467
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   468
			_this.timeToGoAt[_this.centerId] = 0;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   469
			this.autoMove = false;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   470
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   471
		else
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   472
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   473
			_this.timeToGoAt[_this.centerId] = Math.floor(_this.player.popcorn.currentTime());
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   474
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   475
		_this.player.widgets[0].freePlayer();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   476
		_this.playerIsReady = false;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   477
		$('.LdtPlayer').remove();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   478
		$('body').append('<div class="LdtPlayer" id="LdtPlayer"></div>');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   479
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   480
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   481
	//On obtient l'ID du div de coloration du snapshot vers lequel on se déplace afin de le supprimer.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   482
    _this.centerId = destinationId;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   483
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   484
    //On grise le snapshot qu'on vient de quitter.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   485
    _this.previousZoomedSN.fadeTo(_this.config['zoomTime'], '0.4');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   486
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   487
	//console.log(MPCurrentLeft);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   488
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   489
    //On se déplace.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   490
    $('#mainPanel').animate(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   491
    {
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   492
        top: MPCurrentTop,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   493
        left: MPCurrentLeft
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   494
    }, _this.config['timeMovingToNeighbour'], function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   495
    {
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   496
        //On fait apparaître le snapshot vers lequel on s'est déplacé.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   497
        $('#snapshotDiv-' + destinationId).fadeTo(_this.config['zoomTime'], '1', function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   498
        {
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   499
            //On recharge les voisins.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   500
            _this.previousZoomedSN = $('#snapshotDiv-' + _this.centerId);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   501
            
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   502
			_this.notifyTopVideo = MPCurrentTop;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   503
			_this.notifyLeftVideo = MPCurrentLeft;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   504
			_this.neighboursIds.length = 0;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   505
			_this.currentlyMoving = false;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   506
			_this.listenToNeighbours();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   507
			
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   508
			
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   509
			_this.loadPlayer((destinationImg.position().top + MPCurrentTop + _this.MPTop_margin), (destinationImg.position().left + MPCurrentLeft), destinationImg.width(), destinationImg.height(), MPCurrentTop, MPCurrentLeft, _this.timeToGoAt[_this.centerId]);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   510
        });
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   511
    });
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   512
}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   513
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   514
/*
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   515
 * Donne éventuellement un snapshot d'après les coordonnées du pointeur sur l'écran.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   516
 * Renvoie null sinon.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   517
*/
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   518
mosaic.prototype.pointerPositionToSN = function(x, y, isMainPointer)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   519
{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   520
	if(this.helpDisplayed)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   521
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   522
		return;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   523
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   524
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   525
	x += $('#mainPointer').width() / 2;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   526
	y += $('#mainPointer').height() / 2;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   527
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   528
	// $('.snapshotDivs').css('opacity', '0.5');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   529
	//Taille de la marge des snapshots.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   530
	var m = parseInt($('.snapshotDivs').css('margin'));
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   531
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   532
	//Dimensions d'un snapshot de la mosaïque.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   533
	var W = $('.snapshotDivs').width() + m * 2, H = $('.snapshotDivs').height() + m * 2;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   534
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   535
	//Position supposée du snapshot dans la mosaïque.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   536
	//Au départ on ne sélectionne rien.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   537
	var i = -1, j = -1;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   538
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   539
	//Espace de centrage vertical de la mosaïque.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   540
	var top_margin = parseInt(this.MPTop_margin);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   541
	//Dimensions de la mosaïque en nombre de snapshots.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   542
	var mosW = this.config['length'], mosH = this.config['imagesToShow'] / mosW;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   543
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   544
	//Si le pointeur se trouve au niveau de la mosaïque.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   545
	if(x < W * mosW && y >= top_margin && y < H * mosH + top_margin)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   546
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   547
		//Si le pointeur est sur une des bordures.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   548
		var xb = x % W;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   549
		var yb = y - top_margin;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   550
		yb %= H;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   551
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   552
		if(xb < m || xb > W - m || yb < m || yb > H - m)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   553
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   554
			//On renvoie null.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   555
			return null;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   556
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   557
		//Sinon il est forcément sur un des snapshots.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   558
		else
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   559
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   560
			i = Math.floor(x / W);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   561
			j = Math.floor((y - top_margin) / H);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   562
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   563
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   564
		//On passe des coordonnées 2D en 1D.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   565
		var snapshot = $('#snapshotDiv-' + (j * mosW + i));
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   566
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   567
		//Si le snapshot a été filtré, on renvoie null si on se trouve dans la mosaïque.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   568
		if(this.isMosaicFiltered && (this.currentMode == "MOSAIC" || this.currentMode == "FILTER") && snapshot.css('opacity') == 0)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   569
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   570
			return null;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   571
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   572
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   573
		//On renvoie le snapshot.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   574
		return snapshot;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   575
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   576
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   577
	//Si on est arrivé là, c'est que le pointeur n'est pas dans la mosaïque.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   578
	return null;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   579
}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   580
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   581
/*
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   582
 * Donne éventuellement un voisin additionnel d'après les coordonnées du pointeur sur l'écran.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   583
 * Renvoie null sinon.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   584
*/
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   585
mosaic.prototype.pointerPositionToAN = function(x, y, isMainPointer)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   586
{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   587
	if(this.helpDisplayed)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   588
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   589
		return;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   590
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   591
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   592
	x += $('#mainPointer').width() / 2;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   593
	y += $('#mainPointer').height() / 2;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   594
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   595
	//Pour tous les voisins.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   596
	for(var i = 0 ; i < this.neighboursIds.length ; i++)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   597
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   598
		//Si on est sur un bord.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   599
		if(this.neighboursIds[i] == -1)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   600
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   601
			//On récupère un voisin au delà du bord.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   602
			var neighbour = $('#borderNeighbour-' + i);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   603
			
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   604
			if(neighbour == null || neighbour == undefined || neighbour.position() == null)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   605
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   606
				return;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   607
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   608
			
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   609
			//Si le pointeur est sur le voisin, on le retourne.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   610
			if(x > neighbour.position().left && x < +neighbour.position().left + neighbour.width() && y > neighbour.position().top && y < +neighbour.position().top + neighbour.height())
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   611
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   612
				return neighbour;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   613
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   614
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   615
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   616
	return null;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   617
}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   618
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   619
/*
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   620
 * Vérifie l'intéraction dézoom.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   621
*/
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   622
mosaic.prototype.checkForDezoom = function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   623
{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   624
	//Si on se trouve en mode VIDEO ou SEARCH.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   625
	if(this.currentMode == "VIDEO" || this.currentMode == "SEARCH")
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   626
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   627
		//Si les deux pointeurs sont allés puis ont quitté une bordure.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   628
		if(this.mainPointerExitBorder && this.secondPointerExitBorder)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   629
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   630
			//Si les voisins existent.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   631
			if(this.neighboursIds != null && this.neighboursIds.length > 0)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   632
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   633
				var localIdMainPointerNeighbour = $.inArray(this.mainPointerNeighbourSelectedId, this.neighboursIds);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   634
				var localIdSecondPointerNeighbour = $.inArray(this.secondPointerNeighbourSelectedId, this.neighboursIds);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   635
				
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   636
				//Cas où on a des voisins additionnels.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   637
				if(this.mainPointerNeighbourSelectedId >= this.config['imagesToShow'])
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   638
				{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   639
					localIdMainPointerNeighbour = this.mainPointerNeighbourSelectedId - this.config['imagesToShow'];
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   640
				}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   641
				if(this.secondPointerNeighbourSelectedId >= this.config['imagesToShow'])
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   642
				{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   643
					localIdSecondPointerNeighbour = this.secondPointerNeighbourSelectedId - this.config['imagesToShow'];
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   644
				}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   645
				
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   646
				// console.log(localIdMainPointerNeighbour + ' <=> ' + localIdSecondPointerNeighbour);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   647
				
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   648
				if(localIdMainPointerNeighbour > -1 && localIdMainPointerNeighbour < 4 && localIdSecondPointerNeighbour > -1 && localIdSecondPointerNeighbour < 4)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   649
				{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   650
					var sym = (localIdMainPointerNeighbour % 2 == 0) ? (+localIdMainPointerNeighbour + 1) : (localIdMainPointerNeighbour - 1);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   651
					
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   652
					//Si les voisins sélectionnés sont opposés.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   653
					if(sym == localIdSecondPointerNeighbour)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   654
					{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   655
						//Positions des pointeurs.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   656
						var xMain = $('#mainPointer').position().left - $('#mainPointer').width() / 2;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   657
						var yMain = $('#mainPointer').position().top - $('#mainPointer').height() / 2;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   658
						var xSecond = $('#secondPointer').position().left - $('#secondPointer').width() / 2;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   659
						var ySecond = $('#secondPointer').position().top - $('#secondPointer').height() / 2;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   660
						
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   661
						//Snapshot central.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   662
						var centerSN = $('#snapshotDiv-' + this.centerId);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   663
						
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   664
						//Quarts du snapshot central.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   665
						var center1QuartWidth = centerSN.position().left + this.notifyLeftVideo + centerSN.width() / 4;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   666
						var center3QuartsWidth = centerSN.position().left + this.notifyLeftVideo + centerSN.width() * 3 / 4;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   667
						var center1QuartHeight = centerSN.position().top + this.notifyTopVideo + centerSN.height() / 4;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   668
						var center3QuartsHeight = centerSN.position().top + this.notifyTopVideo + centerSN.height() * 3 / 4;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   669
						
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   670
						//Pour activer le dézoom, il suffit que les pointeurs soient dans un rectangle délimité au centre de l'écran.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   671
						//Si les voisins sélectionnés sont de disposition horizontale.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   672
						if(sym == 0 || sym == 1)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   673
						{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   674
							if(xMain > center1QuartWidth && xSecond > center1QuartWidth && xMain < center3QuartsWidth && xSecond < center3QuartsWidth)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   675
							{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   676
								console.log('HORIZONTAL UNZOOM - ' + this.currentMode);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   677
								this.unzoom();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   678
								console.log('HORIZONTAL UNZOOM AFTER - ' + this.currentMode);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   679
							}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   680
						}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   681
						//Sinon s'ils sont de disposition verticale.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   682
						else if(sym == 2 || sym == 3)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   683
						{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   684
							if(yMain > center1QuartHeight && ySecond > center1QuartHeight && yMain < center3QuartsHeight && ySecond < center3QuartsHeight)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   685
							{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   686
								console.log('VERTICAL UNZOOM - ' + this.currentMode);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   687
								this.unzoom();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   688
							}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   689
						}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   690
					}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   691
				}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   692
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   693
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   694
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   695
}