var num_items = 27;
var base_images = null;
var over_next = false;
var over_prev = false;
var ST = null;

var contacts_initCallback = function (carousel) {

	base_images = carousel.get(1);

    $('#contacts-images').mousemove(function (e) {
    
    	var clientX = 0;
    	var clientY = 0;
    
    	var offs = $("#contacts-images").offset();
    
  		clientX = e.clientX - offs.left;
   		clientY = $("#contacts-images").scrollTop( ) - offs.top;

	    var pageCoords = "( " + e.pageX + ", " + e.pageY + " )";
        var clientCoords = "( " + clientX + ", " + clientY + " )";
        
	    	if ( clientX > 900 &&  clientX < 940  ) {
	    		
	    		if ( over_next == false) {
	   			//mouvo a destra
		   			if (!carousel.locked) {
						carousel.next();
					}
					over_next = true;
					
		    	}
	    	} else {
	    			over_next = false;
	    			//clearTimeout(ST);
	    		}
	    	
    	
    	
    	if (  clientX > 0 &&  clientX < 40 ) {
    		if ( over_prev == false) {
	   			//mouvo a sinistra
	   			if (!carousel.locked) {
	    			carousel.prev();
	    		}
	    		over_prev = true;
    		}
    	} else {
    		over_prev = false;
    		//clearTimeout(ST);
    	}
    
    
    });
    
    $('#contacts-images').mouseleave(function (e) {
    	
    	clearTimeout(ST);
    	over_next = false;
    	over_prev = false;
    	
    });
    
};

var ct_itemVisibleOutCallback = function (carousel, item, i, state, evt) {
	carousel.remove(i);
}

var ct_onAfterAnimation = function (carousel, item, i, state, evt) {

	var w_f = null;

	if (over_prev && !carousel.locked) {
		var w_f = function () {
					carousel.prev();
					clearTimeout(ST);
				};
		
	}
	
	if (over_next && !carousel.locked) {
		var w_f = function () {
				carousel.next();
				clearTimeout(ST);
			};	
	}

	if (typeof(w_f) == 'function') {

		ST = setTimeout(function () {
			w_f();
		}
		, 1000);
	}
}

var ct_itemVisibleInCallback = function (carousel, item, i, state, evt)
{

	//carousel.add(i, '<div id="images'+i+'">' + base_images.html() +'</div>' );	
	carousel.add(i, base_images.html() );	
	//Mischio
	
	//Riempio un array di 10 numeri random
	var rnd_nums = new Array();
	var rnd_email = new Array();
	//var imgs = $('#images'+i+' img');
	var imgs = $('.jcarousel-item-'+i+' img');
	
	if (imgs.length > 0) {
	
		while(rnd_nums.length < num_items) {
		
			//Creo un numero random
			var randomnumber = Math.floor(Math.random()*imgs.length);
			
			if ($.inArray( randomnumber, rnd_nums ) == -1) {
				rnd_nums.push( randomnumber );
			
			} 
		
		}
		
		while(rnd_email.length < 2) {
		
			var randomnumber = Math.floor(Math.random()*rnd_nums.length);
			if ($.inArray( randomnumber, rnd_email ) == -1) {
				rnd_email.push( rnd_nums[randomnumber] );
			}
		}
		
	
	}

	//Scelgo random due immagini da rnedere cliccabili
	var emails = ['slamjamstudio@slamjam.com', 'forfex@slamjam.com'];
	var e_i = 0;
	
	imgs.each(function (ii, val) {

		if ($.inArray( ii, rnd_nums ) == -1) {
			$(this).hide();
			//Tolgo l'eventuale link

			if ($(this).parent().hasClass('girl')) {
				$(this).parent().append( $(this).html() );
				$(this).parent().remove();
			}
			
		} else {
			$(this).show();

			//Vedo se è cliccabile
			if ($.inArray( ii, rnd_email ) != -1) {
				$(this).wrap('<a class="girl click_girl" href="mailto:'+ emails[e_i] +'"></a>');
				e_i++;
			}
			
		}
		
	});
	
	//Add sound
	$('a.click_girl').soundfx({
		md:'2'					
	});
  
};

jQuery(document).ready(function() {

		$('#contacts-images').jcarousel({
	        // Configuration goes here
	        scroll: 1,

	        wrap: 'circular',
	        initCallback: contacts_initCallback,
	        itemVisibleInCallback: {onBeforeAnimation: ct_itemVisibleInCallback, onAfterAnimation: ct_onAfterAnimation },
	        itemVisibleOutCallback: {onAfterAnimation: ct_itemVisibleOutCallback},
	        buttonNextHTML: null,
	        buttonPrevHTML: null
    	});
    	
    	
    	
    	
});