src/cm/media/js/client/c_icomments.js
changeset 329 00df963f91fb
parent 217 613b2f29be54
child 331 7ddb9fa9c3f2
--- a/src/cm/media/js/client/c_icomments.js	Tue Nov 02 16:31:20 2010 +0100
+++ b/src/cm/media/js/client/c_icomments.js	Mon Nov 08 12:41:44 2010 +0100
@@ -172,6 +172,31 @@
 			}
 		},
 		
+		setAnimationToPositionsAndFocus : function (y, focusCommentId) {
+			this._initAnimations();
+			var lpad = (gPrefs.get('comments','threadpad') == '1') ? gConf['iCommentThreadPadding'] : 0 ;
+
+			var nextY = y ;
+			for (var i = 0 ; i < this._c.length;i++) {
+				var iComment = this._c[i] ;
+				if (iComment.isfetched && iComment.isVisible()) {
+					var comment_path = gDb.getPath(gDb.getComment(iComment.commentId)) ;
+					var iCommentX = ((comment_path.length - 1) * lpad) + gConf['iCommentLeftPadding'] ;
+
+					if (nextY == null) {
+						var xy = iComment.getPosition() ;
+						nextY = xy[1] ;
+					}
+					
+          if (iComment.commentId == focusCommentId)
+  					this._a.push(iComment.setAnimationToPosition([iCommentX, nextY], focusCommentId)) ;
+          else
+  					this._a.push(iComment.setAnimationToPosition([iCommentX, nextY])) ;
+					nextY += iComment.getHeight() ;
+				}
+			}
+		},
+		
 // ANIMATION FUNCTIONS		
 		_initAnimations : function () {
 			this._a = [] ;
@@ -189,6 +214,17 @@
 			gSync.resume() ; 		
 		},
 		
+		whenAnimationsEndFocus : function () {
+      gGETValues = CY.JSON.parse(sv_get_params);
+      if ("comment_id_key" in gGETValues) {
+        var id_key = gGETValues["comment_id_key"];
+        var focusComment = gDb.getCommentByIdKey(id_key);
+        if (focusComment != null)
+          gIComments.getIComment(focusComment.id).overlay.focus();
+      }
+			gSync.resume();
+		},
+		
 		animationsEnded : function () {
 			return ((this._a.length == 0) || (this._a.length == this._nbEndedAnim)) ; 		
 		},