// JavaScript Document
 
jQuery(function($) {
 
	var Engine = {
		
		// sliders
		sliders : { 
			
			// generic carousell a
			a : {
				init : function(){
					var root 		= this;
					var elements 	= 'div.featured-a';
					root.data 		= [];
					
					$(elements).each(function(id,el){
						// global and local data
						root.data[id] 	= {};
						var main 		= root.data[id].main 		= $(this);
						var settings 	= root.data[id].settings 	= $(this).data('settings') || {};
						var wrapper		= root.data[id].wrapper		= main.find('.wrapper');
						var slider		= root.data[id].slider 		= main.find('.slides');
						var width		= root.data[id].width 		= settings.width || wrapper.width();
						var count		= root.data[id].count		= slider.children().size();
						var page		= root.data[id].page		= 1;
						var animate 	= root.data[id].animate		= settings.animate || 600;
						var hold		= root.data[id].hold 		= settings.hold || 10000;
						
						// break if there is just one item
						if(count < 2) return;
						
						// extra elements + proper width of the container
						slider.children().filter(":last").clone().prependTo(slider);
						slider.children().filter(":eq(1)").clone().appendTo(slider);
						slider.width((count+2)*width).css('margin-left',-width);
						
						// insert next/pause/prev links
						wrapper.before('<ul class="paging"><li class="prev"><a href="./">previous</a></li><li class="pause"><a href="./">pause</a></li><li class="next"><a href="./">next</a></li></ul>');
						
						// triggers
						main.find('ul.paging li a').click(function(){
							if($(this).parent().hasClass('pause')){
								if($(this).hasClass('active')){
									$(this).removeClass('active');
									root.data[id].stop = 0;
								} else {
									$(this).addClass('active');
									root.data[id].stop = 1;
								}
							} else {
								root.move(id,$(this).parent().attr('class'));
							}
							return false;
						});
						
						// autoslide
						root.data[id].timeout = setInterval(function(){Engine.sliders.a.interval(id)},hold+animate);
					});
				},
				move : function(id,direction){
					var root = this;
					
					if(root.data[id].slider.is(':animated')) return;
					
					if(direction == "prev"){
						if(root.data[id].page == 1){
							root.data[id].page = root.data[id].count+1;
							root.data[id].slider.css('margin-left',-(root.data[id].count+1)*root.data[id].width);
						}	
						root.data[id].page = root.data[id].page - 1;
						var lenght	= "+="+root.data[id].width;
					} else {
						if(root.data[id].page == root.data[id].count){
							root.data[id].page = 0;
							root.data[id].slider.css('margin-left',0);
						}
						root.data[id].page = root.data[id].page + 1;
						var lenght = "-="+root.data[id].width;
					}
					
					root.data[id].slider.animate({marginLeft: lenght},root.data[id].animate);
				},
				interval : function(id){
					var root = Engine.sliders.a;
					if(root.data[id].stop != 1) root.data[id].main.find('ul.paging li.next a').trigger('click');
				}
			}
		}
	};
	
	// sliders
	Engine.sliders.a.init();
	
});