front_idill/src/mosaic/js/zoomInteractions.js
author bastiena
Fri, 29 Jun 2012 16:16:24 +0200
changeset 44 8393d3473b98
child 45 0e29ae4568a0
permissions -rw-r--r--
Front IDILL: Updated, mosaic spreaded into several files, new pictures and pictograms
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
 * Zoom sur la position d'une image, 1ère partie. Durant le laps de temps de time ms, l'utilisateur a le choix de zoomer sur une autre image.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     3
 * Après ce laps de temps, l'image zoom complétement et il n'est plus possible de sélectionner une autre image par pointage.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     4
 */
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     5
mosaic.prototype.preZoom = function(snapshot)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     6
{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     7
	if(this.currentMode == "NO-USER" || this.currentMode.indexOf("INCOMING") > -1 || snapshot == null || this.helpDisplayed || this.isMosaicFiltering)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     8
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     9
		return;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    10
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    11
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    12
    if(this.fullscreen)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    13
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    14
        return;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    15
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    16
	this.preUnzoom();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    17
	//On enlève les notifications initiales si elles existent.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    18
	this.removeSelectionSearchMosaicFull();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    19
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    20
    //Mosaïque.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    21
    var _this = this;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    22
    //Dimensions de la mosaïque.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    23
    var h = this.height, w = this.width;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    24
    //Longueur en images, nombre d'images et taille de bordure de la mosaïque.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    25
    var len = this.config['length'], imgs = this.config['imagesToShow'], margin = this.marginWidth;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    26
    //Dimensions et position d'un snapshot dans la mosaïque.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    27
    var snHeight = this.snapshotHeight, snWidth = this.snapshotWidth;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    28
    var sTop = snapshot.position().top, sLeft = snapshot.position().left;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    29
    var prezoomPercentage = this.config['prezoomPercentage'];
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    30
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    31
    //ID de l'image actuelle.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    32
    var currentId = $('img', snapshot).attr('id');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    33
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    34
    //Si un zoom est déjà en cours, on ne zoom sur rien d'autre en attendant que ce snapshot ai dézoomé en cas de mouseleave.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    35
    if(this.zoomed)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    36
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    37
		/*var currentSN = this.pointerPositionToSN(pointerX, pointerY);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    38
		if(currentSN != null && currentSN.attr('id') != snapshot.attr('id'))
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    39
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    40
			this.preUnzoom();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    41
		}*/
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    42
        // if($('#preZoomContainer-' + currentId) != $(this) && this.previousZoomedSN != '' && this.previousId != '')
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    43
        /*if(this.previousZoomedSN.attr('id') !== snapshot.attr('id'))
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    44
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    45
            this.preUnzoom();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    46
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    47
        else
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    48
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    49
            return;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    50
		}*/
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    51
		this.preUnzoom();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    52
		// return;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    53
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    54
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    55
    //On indique qu'on a zoomé et on spécifie le snapshot sur lequel on a zoomé.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    56
    this.zoomed = true;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    57
    this.previousZoomedSN = snapshot;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    58
    this.previousId = currentId;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    59
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    60
    //On récupère les attributs de l'image.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    61
    var fakeImg = $('img', snapshot);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    62
    //On forme la balise de la fausse image et on passe son url pour les grands snapshots.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    63
    fakeImg = '<img id="fake-' + currentId + '" class="snapshots" src="' + fakeImg.attr('src').replace('-little/', '/') + '" />';
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    64
    //On génère un faux snapshot identique au précédent et qu'on va coller dessus.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    65
    var fakeSnapshot = '<div id="prezoomContainer-' + currentId + '" class="prezoomContainers"><div id="prezoomSnapshot-' + currentId + '" class="snapshotDivs">' + fakeImg + '</div></div>';
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    66
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    67
    //On l'ajoute à la mosaïque.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    68
    $('#mainPanel').append(fakeSnapshot);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    69
    //On modifie ses attributs.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    70
	// console.log('cid : ' + currentId, $('#fake-' + currentId).length);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    71
    $('#fake-' + currentId).load(function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    72
    {
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    73
	// snapshot.fadeTo(400, '0.5').delay(200).fadeTo(400, '1');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    74
		$('#prezoomContainer-' + currentId).css('display', 'block');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    75
        $('#prezoomContainer-' + currentId).css('top', sTop).css('left', sLeft).css('width', (snWidth + margin)).css('height', (snHeight + margin));
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    76
        $('#prezoomSnapshot-' + currentId).css('width', (snWidth)).css('height', (snHeight));
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    77
        
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    78
        //Dimensions et coordonnées initiales du div sur lequel on zoom.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    79
        var initialDivWidth = $('#prezoomContainer-' + currentId).width(), initialDivHeight = $('#prezoomContainer-' + currentId).height();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    80
        var initialDivTop = $('#prezoomContainer-' + currentId).position().top, initialDivLeft = $('#prezoomContainer-' + currentId).position().left;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    81
        //Dimensions et coordonnées finales du div.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    82
        var finalDivWidth = initialDivWidth * (prezoomPercentage+1), diffWidth = finalDivWidth - initialDivWidth, finalDivHeight = initialDivHeight + diffWidth;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    83
        var finalDivTop = (initialDivTop - (finalDivHeight - snHeight)/2), finalDivLeft = (initialDivLeft - (finalDivWidth - snWidth)/2);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    84
        
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    85
        //CAS PARTICULIER pour la position du snapshot zoomé : les bordures.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    86
        if(finalDivTop < 0)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    87
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    88
            finalDivTop = -margin;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    89
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    90
        if(finalDivTop + finalDivHeight > h)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    91
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    92
            finalDivTop = h - finalDivHeight;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    93
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    94
        if(finalDivLeft < 0)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    95
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    96
            finalDivLeft = 0;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    97
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    98
        if(finalDivLeft + finalDivWidth + margin*2 > w)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    99
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   100
            finalDivLeft = w - finalDivWidth - margin*2;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   101
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   102
        
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   103
        ////Code de debug.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   104
        ////CAUTION////
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   105
        /*var red = '<div id="red"></div>';
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   106
        if($('#red') != null || $('#red') != undefined)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   107
            $('body').append(red);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   108
        $('#red').css('background-color', '#FF0000').css('position', 'absolute').css('top', '0px').css('left', '0px').css('width', '100px').css('height', '100px');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   109
        $('#red').css('top', finalDivTop).css('left', finalDivLeft).css('width', finalDivWidth).css('height', finalDivHeight);*/
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   110
        //alert("initial : " + initialDivWidth + " " + initialDivHeight + " ; final : " + finalDivWidth + " " + finalDivHeight);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   111
        ////CAUTION////
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   112
        
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   113
        //On prézoom le div en le centrant sur le milieu du snapshot pointé.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   114
        $('#prezoomSnapshot-' + currentId).animate(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   115
        {
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   116
            width: finalDivWidth + margin,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   117
            height: finalDivHeight - margin*2,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   118
            top: finalDivTop + margin,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   119
            left: finalDivLeft + margin
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   120
        }, _this.config['timePrezoom']);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   121
        $('#prezoomContainer-' + currentId).animate(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   122
        {
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   123
            width: finalDivWidth + margin*2,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   124
            height: finalDivHeight - margin,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   125
            top: finalDivTop + margin,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   126
            left: finalDivLeft
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   127
        }, _this.config['timePrezoom'], function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   128
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   129
			//On met le spinner gif sur le pointeur, s'il n'existe pas déjà.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   130
			if($('#spinner').length == 0)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   131
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   132
				//On repère le pointeur ayant provoqué le prezoom.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   133
				var prezoomPointer;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   134
				if(!this.isMainPointerDisplayed)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   135
				{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   136
					prezoomPointer = $('#secondPointer');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   137
				}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   138
				if(!this.isSecondPointerDisplayed)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   139
				{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   140
					prezoomPointer = $('#mainPointer');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   141
				}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   142
				
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   143
				var spinner = "<img id='spinner'></div>";
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   144
				$('body').append(spinner);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   145
				$('#spinner').css(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   146
				{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   147
					position: 'absolute',
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   148
					top: prezoomPointer.position().top,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   149
					left: prezoomPointer.position().left,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   150
					width: 85,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   151
					height: 85,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   152
					'z-index': 600
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   153
				});
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   154
				$('#spinner').attr('src', './img/cursors/selector_anim_2.gif');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   155
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   156
			
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   157
			if(_this.currentMode == 'MOSAIC')
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   158
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   159
				$('.notifications').remove();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   160
				_this.mosaicSelection();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   161
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   162
			else if(_this.currentMode == 'FILTER' && !_this.filterSearchedType)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   163
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   164
				$('.notifications').remove();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   165
				_this.filterSearchAndSelection();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   166
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   167
			else if(_this.currentMode == 'FILTER' && _this.filterSearchedType)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   168
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   169
				$('.notifications').remove();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   170
				_this.filterGestureAndSelection(_this.filterSearchedType, 'valid');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   171
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   172
		});
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   173
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   174
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   175
    });
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   176
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   177
	this.zoomTimeout = setTimeout(function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   178
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   179
		_this.zoom();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   180
	}, this.config['timeoutZoom']);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   181
    //Si on clique sur le snapshot prézoomé, on enclenche un zoom total sur ce snapshot.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   182
    /*$('#prezoomContainer-' + currentId).click(function ()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   183
    {
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   184
        if(this.previousZoomedSN != '')
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   185
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   186
            _this.zoom();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   187
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   188
    });*/
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   189
}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   190
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   191
/*
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   192
 * Dézoome sur la position de l'image. Il est à noter que ce dézoome diffère du dézoom global dans la mesure où celui-ci ne concerne que l'image sur laquelle on a zoomé.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   193
 */
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   194
mosaic.prototype.preUnzoom = function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   195
{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   196
    //Si on n'a pas zoomé, on quitte la fonction.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   197
    /*if(!this.zoomed)
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
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   202
	/*if(this.currentMode == "NO-USER" || this.currentMode.indexOf("INCOMING") > -1)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   203
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   204
		return;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   205
	}*/
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   206
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   207
	$('#spinner').remove();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   208
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   209
	var _this = this;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   210
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   211
	clearTimeout(this.zoomTimeout);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   212
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   213
	if(this.currentMode == 'MOSAIC')
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   214
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   215
		$('.notifications').remove();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   216
		this.mosaicSelectionAndSearch();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   217
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   218
	else if(_this.currentMode == 'FILTER' && !this.filterSearchedType)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   219
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   220
		$('.notifications').remove();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   221
		this.filterSearch();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   222
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   223
	else if(_this.currentMode == 'FILTER' && this.filterSearchedType)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   224
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   225
		$('.notifications').remove();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   226
		this.filterGesture(this.filterSearchedType, 'valid');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   227
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   228
	/*this.removePointMosaicPrezoom();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   229
	this.notifySelectionSearchMosaicFull();*/
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   230
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   231
    //On spécifie la marge afin de centrer le prédézoom.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   232
    var margin = this.marginWidth;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   233
    //ID du snapshot précédemment pointé.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   234
    var id = this.previousId;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   235
    //On ne zoom plus.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   236
    //this.zoomed = false;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   237
    //On rétrécit le snapshot de prézoom, puis on le supprime en donnant l'illusion qu'il s'agissait du véritable snapshot, alors qu'en fait c'était un clone.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   238
	for(var i = 0 ; i < this.config['imagesToShow'] ; i++)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   239
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   240
		if($('#prezoomContainer-snapshot-' + i).length > 0)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   241
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   242
			$('#prezoomContainer-snapshot-' + i).animate(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   243
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   244
				width: this.snapshotWidth + margin,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   245
				height: this.snapshotHeight + margin,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   246
				top: $('#snapshotDiv-' + i).position().top,//this.previousZoomedSN.position().top,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   247
				left: $('#snapshotDiv-' + i).position().left//this.previousZoomedSN.position().left
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   248
			}, this.config['preUnzoomTime'], function(){ $(this).remove(); _this.zoomed = false; });
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   249
			$('#prezoomSnapshot-snapshot-' + i).animate(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   250
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   251
				width: this.snapshotWidth,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   252
				height: this.snapshotHeight,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   253
				top: $('#snapshotDiv-' + i).position().top,//this.previousZoomedSN.position().top,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   254
				left: $('#snapshotDiv-' + i).position().left//this.previousZoomedSN.position().left
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   255
			}, this.config['preUnzoomTime']);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   256
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   257
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   258
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   259
    /*$('#prezoomSnapshot-' + id).animate(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   260
    {
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   261
        width: this.snapshotWidth,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   262
        height: this.snapshotHeight,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   263
        top: this.previousZoomedSN.position().top,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   264
        left: this.previousZoomedSN.position().left
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   265
    }, this.config['preUnzoomTime']);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   266
    $('#prezoomContainer-' + id).animate(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   267
    {
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   268
        width: this.snapshotWidth + margin,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   269
        height: this.snapshotHeight + margin,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   270
        top: this.previousZoomedSN.position().top,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   271
        left: this.previousZoomedSN.position().left
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   272
    }, this.config['preUnzoomTime'], function(){ $(this).remove(); _this.zoomed = false; });*/
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   273
}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   274
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   275
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   276
/*
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   277
 * Zoom d'un snapshot en plein écran.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   278
 */
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   279
mosaic.prototype.zoom = function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   280
{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   281
    var _this = this;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   282
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   283
    //Si la mosaïque est en pleine écran, pas la peine de zoomer.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   284
    if(this.currentMode == "VIDEO" || this.currentMode == "SEARCH" || this.currentMode.indexOf("INCOMING") > -1 || this.helpDisplayed)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   285
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   286
        return;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   287
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   288
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   289
    //On prend les attributs nécessaires au calculs.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   290
    var margin = this.marginWidth, len = this.config['length'], imgs = this.config['imagesToShow'], zoomedMargin = this.config['zoomedMargin'];
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   291
	var zoomPercentage = this.config['zoomPercentage'];
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   292
    var initMPWidth = this.previousZoomedSN.width() * len + margin*len, initMPHeight = this.previousZoomedSN.height() * (imgs / len) + margin*(imgs / len);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   293
    var newMPWidth = initMPWidth * len + zoomedMargin * (len), newMPHeight = initMPHeight * (imgs / len) + zoomedMargin * ((imgs / len));
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   294
    var newPreMPWidth = initMPWidth * len * zoomPercentage + zoomedMargin * (len), newPreMPHeight = initMPHeight * (imgs / len) * zoomPercentage + zoomedMargin * ((imgs / len));
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   295
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   296
    //Dimensions et coordonnées initiales du div sur lequel on zoom.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   297
    var initialDivWidth = this.previousZoomedSN.width(), initialDivHeight = this.previousZoomedSN.height();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   298
    var initialDivTop = this.previousZoomedSN.position().top, initialDivLeft = this.previousZoomedSN.position().left;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   299
    //Dimensions et coordonnées finales du div.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   300
    var finalDivWidth = initialDivWidth * (zoomPercentage+1), finalDivHeight = initialDivHeight * (zoomPercentage+1);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   301
    var newZoomTop = -this.previousZoomedSN.position().top*(newPreMPHeight/initMPHeight) - zoomedMargin/2 + (initMPHeight - initMPHeight * zoomPercentage)/2, newZoomLeft = -this.previousZoomedSN.position().left*(newPreMPWidth/initMPWidth) - zoomedMargin/2 + (initMPWidth - initMPWidth * zoomPercentage)/2;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   302
    var newSnWidth = initMPWidth * zoomPercentage, newSnHeight = initMPHeight * zoomPercentage;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   303
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   304
    this.preUnzoom(this);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   305
    /*SINGULARITE*/
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   306
    this.fullscreen = true;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   307
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   308
    //On passe l'image du snapshot pointé en HD.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   309
    var zoomedImg = $('img', this.previousZoomedSN);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   310
    var src = zoomedImg.attr('src');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   311
    zoomedImg.attr('src', src.replace('-little/', '/'));
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   312
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   313
    //On récupère son ID.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   314
    var tab, zoomedImgId;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   315
    tab = _this.previousId.split('-');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   316
    zoomedImgId = tab[1];
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   317
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   318
	//On donne les dimensions des snapshots.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   319
	$('.snapshotDivs').animate(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   320
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   321
		width: newSnWidth,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   322
		height: newSnHeight,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   323
		margin: zoomedMargin/2 + 'px',
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   324
	}, this.config['zoomTime']);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   325
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   326
	if(this.currentMode != 'NO-USER')
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   327
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   328
		//Les snapshots baissent alors en opacité, donnant l'impression qu'ils sont grisés.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   329
		$('.snapshotDivs').animate(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   330
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   331
			opacity: '0.4'
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   332
		}, this.config['zoomTime']);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   333
		//Le snapshot du milieu revient à une opacité optimale, ce qui attire l'attention de l'utilisateur.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   334
		$(this.previousZoomedSN).animate(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   335
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   336
			opacity: '1'
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   337
		}, this.config['zoomTime']);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   338
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   339
	// console.log('BBB1 : ' + this.currentMode);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   340
    //On zoome sur la mosaïque.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   341
    $('#mainPanel').animate(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   342
    {
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   343
        width: newPreMPWidth,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   344
        height: newPreMPHeight,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   345
        top: newZoomTop,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   346
        left: newZoomLeft
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   347
    }, this.config['zoomTime'], function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   348
    {
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   349
        _this.snTop = (zoomedImg.position().top + newZoomTop + _this.MPTop_margin), _this.snLeft = (zoomedImg.position().left + newZoomLeft);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   350
		_this.snWidth = newSnWidth + 1, _this.snHeight = newSnHeight + 1;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   351
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   352
		_this.notifyTopVideo = newZoomTop;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   353
		_this.notifyLeftVideo = newZoomLeft;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   354
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   355
		//On charge les interactions avec les voisins.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   356
        _this.centerId = zoomedImgId;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   357
		// console.log('BBB2 : ' + _this.currentMode);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   358
		if(_this.currentMode != "NO-USER")
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   359
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   360
			// console.log('PROBLEM');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   361
			_this.currentMode = 'VIDEO';
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   362
			_this.listenToNeighbours();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   363
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   364
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   365
		$('#spinner').remove();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   366
		$('#mainPointer').css('background-image', 'url(./img/cursors/pointer.png)');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   367
		$('#secondPointer').css('background-image', 'url(./img/cursors/pointer2.png)');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   368
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   369
		// console.log('BBB3 : ' + _this.currentMode);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   370
		_this.loadPlayer(_this.snTop, _this.snLeft, _this.snWidth, _this.snHeight, newZoomTop, newZoomLeft, _this.timeToGoAt[_this.centerId]);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   371
    });
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   372
}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   373
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   374
/*
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   375
 * Retour à la taille normale de la mosaïque.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   376
 */
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   377
mosaic.prototype.unzoom = function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   378
{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   379
    //Si on n'est pas en plein écran, on quitte.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   380
	// console.log("'" + this.currentMode + "'");
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   381
    if(this.currentMode != "SEARCH" && this.currentMode != "VIDEO" && this.currentMode != "NO-USER" && this.currentMode.indexOf("INCOMING") == -1)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   382
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   383
        return;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   384
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   385
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   386
	this.canSwipe = false;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   387
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   388
	//Si la TL avait été sélectionnée, on la déselectionne.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   389
	if(this.currentMode == 'TIMELINE')
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   390
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   391
		this.exitTimeline('move');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   392
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   393
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   394
	this.currentlyUnzooming = true;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   395
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   396
	this.removeAdditionalNeighbours();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   397
	this.deselectAllNeighbours();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   398
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   399
	this.snTop = 0;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   400
	this.snLeft = 0;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   401
	this.Width = 0;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   402
	this.snHeight = 0;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   403
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   404
    //On charge les attributs nécessaires aux calculs.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   405
    var sWidth = this.snapshotWidth, sHeight = this.snapshotHeight;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   406
    var mpWidth = this.width, mpHeight = this.height;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   407
    var _this = this;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   408
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   409
    //On passe le snapshot sur lequel on a zoomé en SD.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   410
    var zoomedImg = $('img', this.previousZoomedSN);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   411
    var src = zoomedImg.attr('src');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   412
    zoomedImg.attr('src', src.replace('snapshots/', 'snapshots-little/'));
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   413
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   414
	if(_this.player.widgets && _this.player.widgets[0])
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   415
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   416
		// console.log(Math.floor(_this.player.popcorn.currentTime()));
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   417
		_this.timeToGoAt[_this.centerId] = Math.floor(_this.player.popcorn.currentTime());
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   418
		_this.player.widgets[0].freePlayer();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   419
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   420
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   421
	_this.playerIsReady = false;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   422
	$('.LdtPlayer').remove();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   423
	$('body').append('<div class="LdtPlayer" id="LdtPlayer"></div>');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   424
	_this.reaffectKeyPress();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   425
    
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   426
    //On rend leur opacité aux snapshots. Qui ne sont alors plus grisés.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   427
    $('.snapshotDivs').animate(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   428
    {
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   429
        width: sWidth,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   430
        height: sHeight,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   431
        margin: this.marginWidth/2 + 'px'
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   432
    }, this.config['unzoomTime'], function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   433
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   434
		_this.neighboursIds.length = 0;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   435
		_this.currentlyUnzooming = false;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   436
	});
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   437
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   438
	if(this.currentMode != 'NO-USER')
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   439
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   440
		if(this.currentMode.indexOf("INCOMING") == -1 && !this.isMosaicFiltered)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   441
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   442
			$('.snapshotDivs').animate(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   443
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   444
				opacity: '1'
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   445
			}, this.config['unzoomTime']);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   446
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   447
		else if(this.currentMode.indexOf("INCOMING") == -1 && this.isMosaicFiltered)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   448
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   449
			for(var i = 0 ; i < this.config['imagesToShow'] ; i++)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   450
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   451
				$('#snapshotDiv-' + i).animate(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   452
				{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   453
					opacity: this.opacities[i]
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   454
				}, this.config['unzoomTime']);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   455
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   456
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   457
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   458
	else
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   459
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   460
		// console.log('init');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   461
		this.previousZoomedSN.fadeTo(this.config['unzoomTime'], 0, function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   462
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   463
			_this.init();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   464
		});
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   465
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   466
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   467
    //On dézoom sur la mosaïque.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   468
    $('#mainPanel').animate(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   469
    {
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   470
        width: mpWidth,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   471
        height: mpHeight,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   472
        top: '0px',
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   473
        left: '0px'
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   474
    }, this.config['unzoomTime'], function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   475
    {
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   476
        //On n'est plus en plein écran, et on ne peut plus se déplacer vers le prochain voisin.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   477
        _this.fullscreen = false;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   478
        _this.canMoveToNeighbour = false;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   479
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   480
		if(_this.currentMode != 'NO-USER' && _this.currentMode.indexOf('INCOMING-') == -1)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   481
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   482
			if(_this.isMosaicFiltered)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   483
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   484
				//On revient en mode FILTER.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   485
				_this.currentMode = 'FILTER';
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   486
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   487
			else
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   488
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   489
				//On revient en mode MOSAIC.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   490
				_this.currentMode = 'MOSAIC';
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   491
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   492
			
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   493
			//On ne permet plus le déplacement vers les voisins.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   494
			/*$('.snapshotDivs').unbind('mouseover', function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   495
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   496
				_this.selectNeighbour();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   497
			});*/
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   498
			
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   499
			//On remet les notifications initiales si on n'est pas dans une recherche par filtrage.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   500
			if(_this.currentMode == 'MOSAIC' && !_this.filterSearchedType)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   501
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   502
				$('.notifications').remove();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   503
				// _this.notifySelectionSearchMosaicFull();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   504
				_this.mosaicSelectionAndSearch();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   505
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   506
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   507
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   508
		this.currentlyUnzooming = false;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   509
    });
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   510
}