
swfobject.embedSWF('/img/top/swf/thumb-cm.swf', 'CM', '138', '78', '9.0.0', null, null, {scale: 'noborder', align: 'l'}, null);

$(function () {

function last (nodes) {
	return $(nodes.item(nodes.length - 1));
}

function disabled (elem) {
	if (elem.data('ignore')) elem.data('disabled', true);
}

function index (base, dir) {
	var len = $list.length;
	var idx = base;
	while (true) {
		switch (dir) {
			case 'prev':
				idx = ((idx == 0) ? len : idx) - 1; break;
			case 'next':
				idx = (idx + 1) % len; break;
		}
		if (! $list.eq(idx).data('disabled')) break;
	}
	return idx;
}

function paginate () {
	if (is_busy) return false;
	is_busy = true;
	switch (this.parentNode) {
		case $prev[0]:
			var idx = index(current, 'prev'); break;
		case $next[0]:
			var idx = index(current, 'next'); break;
	}
	var $elems, $a, $b;
	var $pic = last(list).before($list.eq(idx));
	$elems = $($pic);
	$a = last(prev_list);
	$b = $prev_list.eq(index(idx, 'prev'));
	if ($a[0] != $b[0]) $elems = $elems.add($a.before($b));
	$a = last(next_list);
	$b = $next_list.eq(index(idx, 'next'));
	if ($a[0] != $b[0]) $elems = $elems.add($a.before($b));
	$elems.animate({opacity: 0}, 1000, 'easeInOutQuart', function () {
		$(this).prependTo(this.parentNode).css('opacity', 1);
		current = idx;
		is_busy = false;
	});
	disabled($pic);
	return false;
};

var current = 0;
var is_busy = false;
var timer = null;
var $context = $('#billboard').addClass('loading');
var $container = $context.find('ul');
var $list = $context.find('li');
var list = $container[0].getElementsByTagName('LI');
var $prev = $context.find('.prev');
var $next = $context.find('.next');
var $prev_list, $next_list, prev_list, next_list;


disabled($list.eq(0));

var $imgs = $list.find('img');

if (1 < $imgs.length) {
	$imgs.each(function () {
		var src = this.src.replace('/l/', '/s/');
		var $thumb = $('<img src="' + src + '" class="thumb"/>').click(paginate);
		$prev.append($thumb);
		$next.append($thumb.clone(true));
	});
	$prev_list = $prev.find('img');
	$next_list = $next.find('img');
	prev_list = $prev[0].getElementsByTagName('IMG');
	next_list = $next[0].getElementsByTagName('IMG');
	$next.append($next_list.eq(1));
	$context.hover(function (e) {
		if (e.type == 'mouseenter') {
			clearInterval(timer);
			timer = null;
		}
		else {
			timer = setInterval(function () {
				$next_list.eq(0).triggerHandler('click');
			}, 4000);
		}
	});
}

var promises = $imgs.map(function () {
	var d = $.Deferred();
	var $me = $(this).one('load', d.resolve);
	this.complete ? $me.load() : setTimeout(function(){if($me[0].complete)$me.load()}, 10);
	setTimeout(function(){$me.load()}, 7000);
	return d.promise();
});

$.when.apply($, $.makeArray(promises)).done(function () {
	if (1 < $imgs.length) {
		$prev.add($next).each(function () {
			var $me = $(this);
			$me.animate({left: $me.data('min-x')}, 500).hover(function (e) {
				var name = (e.type == 'mouseenter') ? 'max-x' : 'min-x';
				$me.stop().animate({left: $me.data(name)}, 300, 'easeInOutQuart');
			});
		});
		$context.triggerHandler('mouseleave');
	}
	$context.removeClass('loading');
	$container.append($list.eq(0)).css({left: 0, top: 0}).animate({opacity: 1}, 1000);
});

});

