// Use jQuery via $j(...)
$j(document).ready(function(){
	$j("#carousel").jcarousel({
        scroll: 1,
		visible: 1,
		wrap: 'circular',
		animation: 'fast',
        initCallback: carousel_initCallback,
        // This tells jCarousel NOT to autobuild prev/next buttons
        buttonNextHTML: null,
        buttonPrevHTML: null
    });
});

var c;
var current = 1;
var cqty;
var c_periodical = function() {return switch_image($j("#carousel").data('jcarousel'), current+1);}
var c_p;
function carousel_initCallback(carousel) {
   /*$j('#carousel-next').bind('click', function() {
        carousel.next();
        return false;
    });

    $j('#carousel-prev').bind('click', function() {
        carousel.prev();
        return false;
    });*/
	
	var control = '<div id="jcarousel-control"><ul>';
	
	var i = 1;
	$j('#carousel li').each(function() {
		control += '<li';
		if (i==1)
			control += ' class="active"';
		control += '><a href="javascript:void(0);" id="'+i+'">'+i+'</a></li>';
		i += 1;
	});
	
	control += '</ul></div>';
	$j('.jcarousel-list').after(control);
	
	var caption = '<div id="jcarousel-caption">'+$j('#carousel img').first().attr('alt')+'</div>';
	$j('.jcarousel-list').after(caption);
	
	$j('#jcarousel-control a').bind('click', function() {
		clearTimeout(c_p);
		current = parseInt($j(this).attr('id'));
		carousel.options.animation = 'slow';
		carousel.scroll($j.jcarousel.intval(current));
		$j('#jcarousel-caption').html($j('#carousel img').eq(current-1).attr('alt'));
		$j('#jcarousel-control li').removeClass('active');
		$j(this).parent('li').addClass('active');
		$j(this).blur();
		c_p = setInterval(c_periodical, 20000);
        return false;
    });
	
	
	var cleft = $j('#carousel ul:first').offset();
	var cright = cleft.left + $j('#carousel li:first').width();
	
	cqty = $j('#carousel ul:first li').length;
	
	var cwidth = Math.floor((cright-cleft.left)/cqty);
	
	$j('#carousel ul:first').mousemove(function(e){
		clearTimeout(c_p);
		
		var cintval = Math.ceil((e.clientX-cleft.left)/cwidth);
		
		if (cintval<1)
			cintval = 1;
		if (cintval>cqty)
			cintval = cqty;
		
		//$j("#def").text("( cintval ) - " + (e.clientX-cleft.left) + ' ' + cwidth + ' ' + cintval + ' ' + carousel.first);
		
		//Reset timeout
		clearTimeout(c);
		var delay = function() {return switch_image(carousel, cintval);}
		c = setTimeout(delay, 500);

    });
	
	$j('#carousel ul:first').mouseleave(function() {
		clearTimeout(c);
		c_p = setInterval(c_periodical, 20000);
	});
	
	c_p = setInterval(c_periodical, 20000);
};

function switch_image(carousel, cintval) {
	if (cintval>cqty)
		cintval = 1;
	
	if (cintval!=carousel.first) {
		current = parseInt(cintval);
		carousel.options.animation = 'slow';
		carousel.scroll($j.jcarousel.intval(current));
		$j('#jcarousel-caption').html($j('#carousel img').eq(current-1).attr('alt'));
		$j('#jcarousel-control li').removeClass('active');
		$j('#jcarousel-control #'+cintval).parent('li').addClass('active');
		return false;
	}
	return true;
}
