var camCarrousel = function () {

	var t, ul, start, stop, liWidth = 130, s = 5;

	var animate = function () {
		ul.style.left = start + 'px';
		if (start !== stop) {
			if (start > stop) {
				start -= s;
				if (start < stop) {
					start = stop;
				}
			} else {
				start += s;
				if (start > stop) {
					start = stop;
				}
			}
			t = setTimeout(arguments.callee, 1);
		} else {
			clearTimeout(t);
		}
	};

	return function (event) {
		stopEvent(event);
		var o = getEventTarget(event);
		var action = o.className.match(/^(fullsize|photo|video|move-left|move-right)$/);
		if (action === null) {
			return false;
		}

		switch (action[1]) {
			case 'move-left':
			case 'move-right':
				ul = o.parentNode.getElementsByTagName('ul')[0];
				var d = liWidth * cs.nbImg;
				var m = ul.getElementsByTagName('li').length * liWidth - d;
				if( m < 0 ){
					return false;
				}
				if (ul.style.left === '') {
					ul.style.left = '0px';
				} 
				start = parseInt(ul.style.left, 10);
				if (action[1]=='move-left') {
					if (start >= 0) { start = 0; }
					stop = (start + d > 0) ? 0 : start + d;
				} else {
					stop = (start - d <= - m) ? - m : start - d;
				}
				animate();
				break;
			case 'fullsize':
				var full = $('maxImage');
				if( !full) {
					return false;
				}
				var img = full.getElementsByTagName('img')[0];
				if(!img) {
					img = document.createElement('IMG');
					full.appendChild(img);
				}
				img.src = o.src.replace('/160x120/','/640x480/');
				break;
			case 'photo':
				var id_user = o.parentNode.parentNode.id.match(/photolist-(\d+)/);
				var url = location.pathname + '?module=photo&action=view_album&id_user=' + id_user[1] + '&id_image=' + o.src.substring(o.src.lastIndexOf('/')+1, o.src.length - 4);
				open_popup({'className': o.className, 'href' : url, 'width' : 968, 'height' : 770});
				break;
			case 'video':
				var id_user = o.parentNode.parentNode.id.match(/videolist-(\d+)/);
				if (id_user) {
					$('flv_player-' + id_user[1]).play_video_JSCall(o.getAttribute('rel'));
				}
				break;
		}
		return false;
	};
}();

