/**
 * Constructor: cylinder
 * 
 * Anima le immagini di un elemento come se scorressero su un cilindro
 * 
 * Parametri:
 *     element - DOM element da animare
 */
var cylinder = function(element){
	var interval = null;
	var table_element = null;
	var start = function(){
		if (
			!interval && 
			jQuery(table_element).width() > jQuery(element).width()
		){
			interval = window.setInterval(step, 2);
		}
	};
	var step = function(){
		var left = parseInt((jQuery(table_element).css('left')).replace('px', ''));
		var first_td = jQuery('td:first', table_element).get()[0];
		var last_td = jQuery('td:last', table_element).get()[0];
		if (left >= 0){
			first_td.parentNode.insertBefore(last_td, first_td);
			left = -1 * jQuery(last_td).width();
		}
		else{
			left += 1;
		}
		jQuery(table_element).css('left', left + 'px');
	};
	var stop = function(){
		window.clearInterval(interval);
		interval = null;
	};
	table_element = jQuery('table', element).get()[0];
	table_element.onmouseover = function(){
		stop();
	};
	table_element.onmouseout = function(){
		start();
	};
	start();
	return {
		'start': start,
		'stop': stop
	};
};
