/*
Description: Main Campaign Slider
Author: wpworks.net
Author URI: http://wpworks.net
*/

WPW.OtherCampSlider = function(){
	var $ = jQuery;
	var main = this;
	var items = [];
	var currentIndex = 0;
	var loopTimer = 0;
	var loopEnabled = true;
	var groupSize = 4;
	var galleryWidth = 950;
	var itemWidth = galleryWidth/groupSize;
	var mainNode = $('#other-camp-scroller');
	var container = $('#other-camp-container');
	
	var thumbContainerWidth = 0;
	

	var btnNext = $('<div id="btn-other-camp-next"></div>');
	var btnPrev = $('<div id="btn-other-camp-prev"></div>');
	btnNext.hide();	
	btnPrev.hide();	

	var animEase = "easeInOutExpo"; 

	mainNode.append(btnNext);
	mainNode.append(btnPrev);

	var itemNode = function(item){
		var mainT = this;
	}

	var itemNodes = $('.other-camp-item');
	
	$('img', mainNode).attr('title', "");
	
	if(itemNodes.length < 5){
		btnNext.hide();
		btnPrev.hide();
		container.css('cursor', 'auto');
		container.css('position', 'relative');
		container.css('margin', '0 auto');
		container.css('width', itemNodes.length * (galleryWidth/4));
	} else {
		var thumb_dragger = new WPW.DragStuff(mainNode, container, function(){return thumbContainerWidth;}, function(){return mainNode.width();}, function(){return 0;}, function(){return 0;});
	}
	
	itemNodes.each(function(){
		var item = $(this);
		var itm = new itemNode(item);
		item.data('itemObj', itm);
		
		items.push(item);
	});

	var resizeSlider = function(){
		thumbContainerWidth = 0;
		for(var i = 0; i < items.length; i++){
			var item = items[i];
			item.css('left', i*item.width());
			thumbContainerWidth = i*item.width() + item.width();
		}
	}
	
	resizeSlider();


//THUMB INTERACTION
	
	var selected_thumb;
	itemNodes.each(function(index){
		var thumb = $(this);

		thumb.click(function(){
			if(WPW.dragContainerMoved){
				return false;
			}
		});
	});

	var animateDragger = function(distance){
		var handlerPosition_x = container.position().left;
		handlerPosition_x += distance;
		
		if(handlerPosition_x > 0) handlerPosition_x = 0;
		if(handlerPosition_x < galleryWidth - thumbContainerWidth)handlerPosition_x = galleryWidth - thumbContainerWidth;
		
		
		container.animate({
				left: handlerPosition_x
			}, {
				duration: 500, 
				step:function(){},
				easing:animEase,
				complete:function(){}
			});
	}

	btnPrev.click(function(){
		animateDragger(itemWidth);
	});
	
	btnNext.click(function(){
		animateDragger(-itemWidth);
	});		
	
	btnPrev.delay(200).fadeIn(1000);
	btnNext.delay(1000).fadeIn(1000);
	
	WPW.LoadImagesFrom();
};

WPW.LoadImagesFrom = function(){
	var $ = jQuery;
	var loadingImages = [];
	var images = [];
	var loadingItem = function(item){
		var mainT = this; 
		mainT.loaded = false;
		var img = $('img', item);
		if(img.length === 0)mainT.loaded = true;
		img.remove();
		
		var itemInfo = $('.other-camp-item-title', item);
		itemInfo.hide();
		
		
		loadingImages.push(this);
	
		mainT.load = function(){
			var newImg = new Image();
			newImg = $(newImg);
			
			//var preloader = WPW.showPreloader(item, "medium-preloader");
			
			newImg.load(function(){
				newImg.fadeIn(600);
				itemInfo.fadeIn(1300);
				mainT.loaded = true;
				$('a', item).prepend(newImg);
				images.push(item);
				item.data('img', newImg)
				setTimeout(function(){loadItems();}, 200);
				//WPW.removePreloader(preloader, "medium-preloader");
			}).error(function(){
				setTimeout(function(){loadItems();}, 200);
				mainT.loaded = true;
				//WPW.removePreloader(preloader, "medium-preloader");
			}).attr("src", img.attr('src'));
			
		}
	}
	
	function loadItems(){
		var nrItems = loadingImages.length;
		for(var i = 0; i<nrItems; i++){
			if(!loadingImages[i].loaded){
				loadingImages[i].load();
				break;
			}
		}
	}

	
	$('.other-camp-item').each(function(){
		var item = new loadingItem($(this));
 
	});		
	
	loadItems();
}









WPW.Core.register("OtherCampSlider");


