var events = {

	"jukejoint" : {
			"image" : '/sites/events/images/scroller/juke-joint.jpg',
			'title' : 'Juke Joint',
			"link"	: 'http://jazz.susu.org'
		},
	"karaoke" : {
			"image" : '/sites/events/images/scroller/karaoke.jpg',
			'title' : 'Karaoke',
			"link"	: 'http://karaoke.susu.org'
		},
	"livingroom" : {
			"image" : '/sites/events/images/scroller/living-room.jpg',
			'title' : 'The Living Room',
			"link"	: 'http://livingroom.susu.org'
		},
	"jazzlounge" : {
			"image" : '/sites/events/images/scroller/jazzlounge.jpg',
			'title' : 'The Jazz Lounge',
			"link"	: 'http://jazz.susu.org'
		},
	"poker" : {
			"image" : '/sites/events/images/scroller/poker.jpg',
			'title' : 'Poker Night',
			"link"	: 'http://poker.susu.org'
		},
	"laughter" : {
			"image" : '/sites/events/images/scroller/laughter.jpg',
			'title' : 'The Laughter Lounge',
			"link"	: 'http://laughter.susu.org'
		},
	"quiz" : {
			"image" : '/sites/events/images/scroller/quiz-curry.jpg',
			'title' : 'Quiz & Curry',
			"link"	: 'http://quiz.susu.org'
		},
	"kinki" : {
			"image" : '/sites/events/images/scroller/kinki.jpg',
			'title' : 'Kinki',
			"link"	: 'http://kinki.susu.org'
		}

}
var scroller = {
	events : {},
	offset : 0,
	direction : -1,
	multiply : 0,
	left : -1000,
	rotateTimeout : null,
	stop : null,
	idleTimeout : null,
	
	init : function(events){
		scroller.events = events;
		$("#scroller").html('<div class="nested"></div>');
		for( var i = 0; i < 5 ; i++ ){
			$.each(scroller.events, scroller.createEventBoxHtml);
		}
		$("#scroller").mousemove(scroller.getMultiplier);
		$("#scroller").mouseover(scroller.mouseover);
		$("#scroller").mouseout(scroller.mouseout);
		scroller.idleTimeout = window.setTimeout(scroller.idle, 100 );
	},
	
	createEventBoxHtml : function(obj, args){
		var html = '<div><a href="'+args.link+'" title="'+args.title+'"><img src="'+args.image+'" alt="'+args.title+'"></a></div>';
		$("#scroller .nested").append($(html));
	},
	
	rotate : function(e){
		if( ( ( scroller.left < 0 && scroller.direction < 0 ) || ( scroller.left > -3000 && scroller.direction > 0 ) ) && ( scroller.multiply < 0.9) ) {
			scroller.left = scroller.left - (1 * scroller.direction);
			$("#scroller .nested").css({ marginLeft :  scroller.left + "px" });
		}
		scroller.rotateTimeout = window.setTimeout(scroller.rotate, (scroller.multiply*40) );
	},
	
	getMultiplier : function(e){
		if(scroller.offset == 0)
			scroller.offset = $("#scroller").offset();
		var left = e.pageX - scroller.offset.left;
		if( left > 302 ){
			scroller.direction = 1; 
		} else { 
			scroller.direction = -1;
		}
		scroller.multiply = (left - (604/2))/302;
		if ( scroller.multiply < 0 ) scroller.multiply = scroller.multiply * -1;
		scroller.multiply = 1 - scroller.multiply;
	},
	
	mouseover : function(){
		if(scroller.rotateTimeout == null) {
			window.clearTimeout(scroller.idleTimeout);
			scroller.idleTimeout = null;
			scroller.rotateTimeout = window.setTimeout(scroller.rotate,50);
		}
		if(scroller.stop != null) { 
			window.clearTimeout(scroller.stop);
			scroller.stop = null;
		}
	},
	
	mouseout : function(){
		scroller.stop = window.setTimeout( scroller.stopRotate, 1000);

	},
	stopRotate : function(){
		window.clearTimeout(scroller.rotateTimeout);
		scroller.rotateTimeout = null;
		scroller.idleTimeout = window.setTimeout(scroller.idle, 100 );
	},
	idle : function(){
		if( scroller.left < -3000 ) {
			scroller.direction = -1;
		} else if( scroller.left > 0 ) {
			scroller.direction = 1;
		}
		scroller.left = scroller.left - (1 * scroller.direction);
		$("#scroller .nested").css({ marginLeft :  scroller.left + "px" });
		scroller.idleTimeout = window.setTimeout(scroller.idle,	35 );
	}
	
}
$(document).ready(function(){
	scroller.init(events);
});