jQuery(document).ready(function($){
	
	var twgs_rotate = new Array();
	var countObj = 0;
	
	$(".twgs-list .twgs-description").hide();
	
	$(".twgs-list").each(function(){
		
		countObj++;
		
		var twgs = $(this);
		
		var assignedID = "twgs_"+countObj;
		twgs.parents(".twgs").attr("id",assignedID);
		var twgs_parent = twgs.parents("#"+assignedID);
		
		// assign pagination id
		if( twgs.parents(".twgs").find(".twgs-pagination").length )
		{
			twgs.parents(".twgs").find(".twgs-pagination").attr("id","twgs-pagination-"+countObj);
			
		}
		
		// add count attr
		twgs_parent.attr("twgsCount",countObj);
		
		var do_autoplay = (twgs_parent.hasClass("twgs-autoplay")) ? true : false;
		var twgs_count = twgs.find("li").length;
		
		// ajdust width and height if provided
		if( twgs_parent.attr("w")!=undefined && twgs_parent.attr("h")!=undefined  )
		{
			var W = twgs_parent.attr("w");
			var H = twgs_parent.attr("h");
			
			// get paddings
			var paddingTop = parseFloat(twgs_parent.css("padding-top"));
			var paddingBottom = parseFloat(twgs_parent.css("padding-bottom"));
			var paddingLeft = parseFloat(twgs_parent.css("padding-left"));
			var paddingRigth = parseFloat(twgs_parent.css("padding-right"));
			// get border widths
			var borderTop = parseFloat(twgs_parent.css("borderTopWidth"));
			var borderBottom = parseFloat(twgs_parent.css("borderBottomWidth"));
			var borderLeft = parseFloat(twgs_parent.css("borderLeftWidth"));
			var borderRight = parseFloat(twgs_parent.css("borderRightWidth"));
			
			var addedW = paddingLeft + paddingRigth + borderLeft + borderRight;
			var addedH = paddingTop + paddingBottom + borderTop + borderBottom;
			
			// set wrap width and height
			twgs_parent.width( W - addedW );
			twgs_parent.height( H - addedH );
			
			// set list width and height
			twgs.width( W - addedW );
			twgs.height( H - addedH );
			
		}
		
		twgs.find("li:first").addClass("current").fadeIn();
		
		
		if( twgs_count > 1 && do_autoplay )
		{
			twgs_rotate[countObj] = setInterval(function() {
				
				var objCount = $("#"+assignedID).attr("twgsCount");
				
				twgs_rotate_items("","#"+assignedID,"#twgs-pagination-"+objCount, "next");

		   		}, 4000);
		}
		
	});
	
	$(".twgs-prevNext").live("click", function() {
		
		var rotDirection = ( $(this).hasClass("twgs-next") ) ? "next" : "prev";
		
		var group = $(this).parents(".twgs");
		var groupID = "#" + group.attr("id");
		var objCount = $(this).parents(".twgs").attr("twgsCount");
		
		if(group.hasClass("twgs-autoplay")) clearInterval(twgs_rotate[objCount]);
		
		twgs_rotate_items("",groupID,"#twgs-pagination-"+objCount,rotDirection);
		return false;

	});
	
	$(".twgs-pagination li a").click(function(){
		
		if( !$(this).parent().hasClass("active") )
		{
			var group = $(this).parents(".twgs");
			var groupID = "#" + group.attr("id");
			var objCount = $(this).parents(".twgs").attr("twgsCount");

			if(group.hasClass("twgs-autoplay")) clearInterval(twgs_rotate[objCount]);

			twgs_rotate_items($(this).attr("rel"),groupID,"#twgs-pagination-"+objCount,"next");
		}
		
		return false;

	});
	
});

// ROTATOR FUNCTION
//---------------------------------
function twgs_rotate_items(target, group, navgroup, dir)
{
	
	// get current and next
	var curr = jQuery(group+" .twgs-list li.current");
	
	if( dir == "" || dir == "next" )
	{
		var next = ( target!="" ) ? jQuery(group+" .twgs-list li#"+target) : ( ( curr.next().length ) ? jQuery(group+" .twgs-list li.current").next() : jQuery(group+" .twgs-list li:first") );
	}
	
	if( dir == "" || dir == "prev" )
	{
		var next = ( target!="" ) ? jQuery(group+" .twgs-list li#"+target) : ( ( curr.prev().length ) ? jQuery(group+" .twgs-list li.current").prev() : jQuery(group+" .twgs-list li:last") );
	}
	
	var currIdent = curr.attr("id");
	var nextIdent = next.attr("id");
	
	// console.log("next " + nextIdent);
	
	// switch classes
	curr.removeClass("current");
	next.addClass("current");
	
	// hide current and show next
	next.fadeIn("slow", function(){
		
		// if has description
		// show description
		if( next.find(".twgs-description").length > 0 )
		{
			setTimeout(function(){

				next.find(".twgs-description").fadeIn("slow");

			}, 200);
		}
	});
	curr.fadeOut("slow", function(){
		
		curr.find(".twgs-description").hide();
		
	});
	
	// update pagination
	if(navgroup!="" && jQuery(group+" "+navgroup).length > 0)
	{
		
		jQuery(group+" "+navgroup+" li[rel="+currIdent+"]").removeClass("active");
		jQuery(group+" "+navgroup+" li[rel="+nextIdent+"]").addClass("active");
		
	}
	
}
//---------------------------------
