var curPos = 0;
var itemNum = 0;
var rotPos = 0;
var rotNum = 0;
var isRotate = false;
var timer;
var isViewing = false;
var intronum = 0;
$(document).ready(function(){
	$('.topic').each(function(i){
		var tname = $(this).find('.name').text();
		var thref = $(this).find('.name a').attr('href');
		var tdate = $(this).find('.date').text();
		var timage = $(this).find('.body a').html();
		var tthumb = $(this).find('.thumb a').html();
		var el = $('<div class="homelistrotatecell"><div class="homelistrotatethumb">'+tthumb+'</div><div class="homelistrotatedesc"><div class="homelistrotatename">'+tname+'</div><div class="homelistrotatedate">'+tdate+'</div></div></div>').appendTo('#homelistrotate');
		$(el).data('name',tname);
		$(el).data('date',tdate);
		$(el).data('url',thref);
		$(el).data('img',timage);
	});
	rotNum = parseInt(($('.topic').length-1)/3)+1;
	$('#homelistright img').click(rotateRight);
	$('#homelistleft img').click(rotateLeft);
	$('.homelistrotatecell').click(viewTopic);
	$('.homelistrotatecell:nth-child(1)').css({left:'40px'});
	$('.homelistrotatecell:nth-child(2)').css({left:'268px'});
	$('.homelistrotatecell:nth-child(3)').css({left:'496px'});
	$('#homelistrotate').append('<img id="homethumbshadow1" src="images/homethumbshadow.png" width="214" height="77" alt="" /><img id="homethumbshadow2" src="images/homethumbshadow.png" width="214" height="77" alt="" /><img id="homethumbshadow3" src="images/homethumbshadow.png" width="214" height="77" alt="" />');
	if (rotNum<2) hideArrow();
	itemNum = $('.homelistrotatecell').length;
	$('.homelistrotatecell').eq(0).addClass('current');
	intro();
	//viewTopic({currentTarget:$('.homelistrotatecell:first-child')[0]});
	//startRotation();
});
function intro() {
	intronum++;
	if (itemNum<intronum) {
		return;
	}
	$('#homeview').append('<div id="homeviewphotoslider'+(itemNum-intronum)+'" class="homeviewphotoslider"><a href="'+$('.homelistrotatecell').eq(itemNum-intronum).data('url')+'">'+$('.homelistrotatecell').eq(itemNum-intronum).data('img')+'</a></div>');
	$('#homeviewphotoslider'+(itemNum-intronum)).animate({left:'0'},700,"easeOutQuart",function(){
		if ($(this).is('.homeviewphotoslider:last-child')) {
			$('#homeviewphoto').html('<a href="'+$('.homelistrotatecell:first-child').data('url')+'">'+$('.homelistrotatecell:first-child').data('img')+'</a>');
			$('.homeviewphotoslider').remove();
			startRotation();
		}
	});
	setTimeout(intro,150);
}
function viewTopic(e) {
	if (isViewing) return;
	isViewing = true;
	curPos = $('.homelistrotatecell').index(e.currentTarget);
	$('.current').removeClass('current');
	$(e.currentTarget).addClass('current');
	$('#homeview').append('<div class="homeviewphotoslider" style="left:0;">'+$('#homeviewphoto').html()+'</div>');
	$('#homeviewphoto').html('<a href="'+$(e.currentTarget).data('url')+'">'+$(e.currentTarget).data('img')+'</a>');
	$('.homeviewphotoslider').animate({left:'-764px'},700,function(){
		$('.homeviewphotoslider').remove();
		isViewing = false;
	});

	//$('#homeviewphoto').stop().fadeOut(300,function(){
	//	$('#homeviewphoto').html('<a href="'+$(e.currentTarget).data('url')+'">'+$(e.currentTarget).data('img')+'</a>').fadeIn(300,function(){
	//		isViewing = false;
	//	});
	//});
	//$('#homeviewdesc').stop().fadeOut(300,function(){
	//	$('#homeviewdesc').html('<div id="homeviewname"><a href="'+$(e.currentTarget).data('url')+'">'+$(e.currentTarget).data('name')+'</a></div><div id="homeviewdate"><a href="'+$(e.currentTarget).data('url')+'">'+$(e.currentTarget).data('date')+'</a></div>').fadeIn(300);
	//});
	resetRotation();
}
function rotateLeft() {
	if (isRotate) return;
	hideArrow();
	var rotPosPseudo = rotPos;
	if (rotPos==0) rotPosPseudo=rotNum;
	$('.homelistrotatecell:nth-child('+(rotPosPseudo*3-2)+')').css({left:'-724px'});
	$('.homelistrotatecell:nth-child('+(rotPosPseudo*3-1)+')').css({left:'-496px'});
	$('.homelistrotatecell:nth-child('+(rotPosPseudo*3  )+')').css({left:'-268px'});
	$('#homethumbshadow1').css({left:'-715px'});
	$('#homethumbshadow2').css({left:'-487px'});
	$('#homethumbshadow3').css({left:'-259px'});
	if ($('.homelistrotatecell:nth-child('+(rotPosPseudo*3-2)+')').length) {
		$('#homethumbshadow1').show().animate({left:'+=764px'},700);
		hoverCell($('.homelistrotatecell:nth-child('+(rotPosPseudo*3-2)+')'),1000,500,true);
	} else {
		$('#homethumbshadow1').hide();
	}
	if ($('.homelistrotatecell:nth-child('+(rotPosPseudo*3-1)+')').length) {
		$('#homethumbshadow2').show().animate({left:'+=764px'},700);
		hoverCell($('.homelistrotatecell:nth-child('+(rotPosPseudo*3-1)+')'),100,400,true);
	} else {
		$('#homethumbshadow2').hide();
	}
	if ($('.homelistrotatecell:nth-child('+(rotPosPseudo*3  )+')').length) {
		$('#homethumbshadow3').show().animate({left:'+=764px'},700);
		hoverCell($('.homelistrotatecell:nth-child('+(rotPosPseudo*3  )+')'),300,600,false);
	} else {
		$('#homethumbshadow3').hide();
	}
	$('.homelistrotatecell:nth-child('+(rotPosPseudo*3-2)+'),.homelistrotatecell:nth-child('+(rotPosPseudo*3-1)+'),.homelistrotatecell:nth-child('+(rotPosPseudo*3)+'),'
		+ '.homelistrotatecell:nth-child('+(rotPos*3+1)+'),.homelistrotatecell:nth-child('+(rotPos*3+2)+'),.homelistrotatecell:nth-child('+(rotPos*3+3)+')')
		.stop().stop().animate({left:'+=764px'},700,showArrow);
	rotPos--;
	if (rotPos<0) rotPos = rotNum - 1;
	return false;
}
function rotateRight() {
	if (isRotate) return;
	hideArrow();
	var rotPosPseudo = rotPos;
	if (rotPos==rotNum-1) rotPosPseudo=-1;
	$('.homelistrotatecell:nth-child('+(rotPosPseudo*3+4)+')').css({left:'804px'});
	$('.homelistrotatecell:nth-child('+(rotPosPseudo*3+5)+')').css({left:'1032px'});
	$('.homelistrotatecell:nth-child('+(rotPosPseudo*3+6)+')').css({left:'1260px'});
	$('#homethumbshadow1').css({left:'813px'});
	$('#homethumbshadow2').css({left:'1041px'});
	$('#homethumbshadow3').css({left:'1269px'});
	if ($('.homelistrotatecell:nth-child('+(rotPosPseudo*3+4)+')').length) {
		$('#homethumbshadow1').show().animate({left:'-=764px'},700);
		hoverCell($('.homelistrotatecell:nth-child('+(rotPosPseudo*3+4)+')'),300,600,false);
	} else {
		$('#homethumbshadow1').hide();
	}
	if ($('.homelistrotatecell:nth-child('+(rotPosPseudo*3+5)+')').length) {
		$('#homethumbshadow2').show().animate({left:'-=764px'},700);
		hoverCell($('.homelistrotatecell:nth-child('+(rotPosPseudo*3+5)+')'),100,400,true);
	} else {
		$('#homethumbshadow2').hide();
	}
	if ($('.homelistrotatecell:nth-child('+(rotPosPseudo*3+6)+')').length) {
		$('#homethumbshadow3').show().animate({left:'-=764px'},700);
		hoverCell($('.homelistrotatecell:nth-child('+(rotPosPseudo*3+6)+')'),1000,500,true);
	} else {
		$('#homethumbshadow3').hide();
	}
	$('.homelistrotatecell:nth-child('+(rotPosPseudo*3+4)+'),.homelistrotatecell:nth-child('+(rotPosPseudo*3+5)+'),.homelistrotatecell:nth-child('+(rotPosPseudo*3+6)+'),'
		+ '.homelistrotatecell:nth-child('+(rotPos*3+1)+'),.homelistrotatecell:nth-child('+(rotPos*3+2)+'),.homelistrotatecell:nth-child('+(rotPos*3+3)+')')
		.stop().stop().animate({left:'-=764px'},700,showArrow);

	rotPos++;
	if (rotPos>rotNum-1) rotPos = 0;
	return false;
}
function showArrow() {
	isRotate = false;
	$('#homelistright,#homelistleft').show();
}
function hideArrow() {
	isRotate = true;
	$('#homelistright,#homelistleft').hide();
	resetRotation();
}
function startRotation() {
	if (itemNum>1) timer = setTimeout(doRotation,5000);
}
function resetRotation() {
	if (itemNum>1) clearTimeout(timer);
	startRotation();
}
function doRotation() {
	if (curPos==rotPos*3) {
		if (curPos<itemNum-1) {
			hoverCell($('.homelistrotatecell').eq(curPos+1),0,600,true);
			viewTopic({currentTarget:$('.homelistrotatecell').eq(curPos+1)});
		} else {
			viewTopic({currentTarget:$('.homelistrotatecell').eq(0)});
			rotateRight();
		}
	} else if (curPos==rotPos*3+1) {
		if (curPos<itemNum-1) {
			hoverCell($('.homelistrotatecell').eq(curPos+1),0,600,true);
			viewTopic({currentTarget:$('.homelistrotatecell').eq(curPos+1)});
		} else {
			viewTopic({currentTarget:$('.homelistrotatecell').eq(0)});
			rotateRight();
		}
	} else if (curPos==rotPos*3+2) {
		if (curPos<itemNum-1) {
			viewTopic({currentTarget:$('.homelistrotatecell').eq(curPos+1)});
			rotateRight();
		} else {
			viewTopic({currentTarget:$('.homelistrotatecell').eq(0)});
			rotateRight();
		}
	} else {
		hoverCell($('.homelistrotatecell').eq(rotPos*3),0,600,true);
		viewTopic({currentTarget:$('.homelistrotatecell').eq(rotPos*3)});
	}
}
function hoverCell(el,offset,interval,queue) {
	setTimeout(function(){
		$(el).animate({top:'-3px'},{duration:interval,queue:queue,easing:"easeOutQuad"}).animate({top:'12px'},interval,"easeInQuad");
	},offset);
}
jQuery.easing['jswing'] = jQuery.easing['swing'];

jQuery.extend( jQuery.easing,
{
	def: 'easeOutQuad',
	swing: function (x, t, b, c, d) {
		//alert(jQuery.easing.default);
		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
	},
	easeInQuad: function (x, t, b, c, d) {
		return c*(t/=d)*t + b;
	},
	easeOutQuad: function (x, t, b, c, d) {
		return -c *(t/=d)*(t-2) + b;
	},
	easeInOutQuad: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t + b;
		return -c/2 * ((--t)*(t-2) - 1) + b;
	},
	easeInCubic: function (x, t, b, c, d) {
		return c*(t/=d)*t*t + b;
	},
	easeOutCubic: function (x, t, b, c, d) {
		return c*((t=t/d-1)*t*t + 1) + b;
	},
	easeInOutCubic: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t + b;
		return c/2*((t-=2)*t*t + 2) + b;
	},
	easeInQuart: function (x, t, b, c, d) {
		return c*(t/=d)*t*t*t + b;
	},
	easeOutQuart: function (x, t, b, c, d) {
		return -c * ((t=t/d-1)*t*t*t - 1) + b;
	},
	easeInOutQuart: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
		return -c/2 * ((t-=2)*t*t*t - 2) + b;
	},
	easeInQuint: function (x, t, b, c, d) {
		return c*(t/=d)*t*t*t*t + b;
	},
	easeOutQuint: function (x, t, b, c, d) {
		return c*((t=t/d-1)*t*t*t*t + 1) + b;
	},
	easeInOutQuint: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
		return c/2*((t-=2)*t*t*t*t + 2) + b;
	},
	easeInSine: function (x, t, b, c, d) {
		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
	},
	easeOutSine: function (x, t, b, c, d) {
		return c * Math.sin(t/d * (Math.PI/2)) + b;
	},
	easeInOutSine: function (x, t, b, c, d) {
		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
	},
	easeInExpo: function (x, t, b, c, d) {
		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
	},
	easeOutExpo: function (x, t, b, c, d) {
		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
	},
	easeInOutExpo: function (x, t, b, c, d) {
		if (t==0) return b;
		if (t==d) return b+c;
		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
	},
	easeInCirc: function (x, t, b, c, d) {
		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
	},
	easeOutCirc: function (x, t, b, c, d) {
		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
	},
	easeInOutCirc: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
	},
	easeInElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
	},
	easeOutElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
	},
	easeInOutElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
	},
	easeInBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		return c*(t/=d)*t*((s+1)*t - s) + b;
	},
	easeOutBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
	},
	easeInOutBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158; 
		if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
	},
	easeInBounce: function (x, t, b, c, d) {
		return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
	},
	easeOutBounce: function (x, t, b, c, d) {
		if ((t/=d) < (1/2.75)) {
			return c*(7.5625*t*t) + b;
		} else if (t < (2/2.75)) {
			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
		} else if (t < (2.5/2.75)) {
			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
		} else {
			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
		}
	},
	easeInOutBounce: function (x, t, b, c, d) {
		if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
		return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
	}
});

