/*
Description: Main Campaign Slider
Author: wpworks.net
Author URI: http://wpworks.net
*/

WPW.campaignLoopPause = WPW.campaignLoopPause || false;

WPW.MainCampSlider = function(){
	var $ = jQuery;
	var main = this;
	var items = [];
	var currentIndex = 0;
	var loopTimer = 0;
	var loopSpeed = (WPW.CampSlider.loopSpeed) || 5000;
	var sliderHeight = (WPW.CampSlider.height) || 500;
	var loopEnabled = true;
	var barPress = false;
	var mainNode = $('#main-campaign-slider');
	var container = $('#main-camp-container');
	var sliderBar = $('#main-camp-slider-bar');
	var sliderBarContainer = $('#main-camp-slider-bar-container');
	
	var mainCampHeader = $('#main-camp-header');
	$('#header').append(sliderBarContainer);
	
	mainNode.prepend(mainCampHeader);
	mainNode.css('height', sliderHeight);

	var itemNode = function(item){
		var mainT = this;
	}
	
	var itemNodes = $('.main-camp-item').each(function(){
		var item = $(this);
		var itm = new itemNode(item);
		item.data('itemObj', itm);
		
		items.push(item);
	});

	var resizeSlider = function(){
		for(var i = 0; i < items.length; i++){
			var item = items[i];
			item.css('width', WPW.cW);
			item.css('left', i*WPW.cW);
			
			var pic = $('img', item);
			if(pic.width() >WPW.cW ) {
				pic.css('left', -parseInt(pic.width()/2 - WPW.cW/2, 10));
			} else {
				pic.css('left', "auto");
			}
		}
		animateLoop();
	}
	
	var doLoop = function(){
		clearTimeout(loopTimer);
		if(loopEnabled && !WPW.campaignLoopPause && !barPress){
			loopTimer = setTimeout(function(){animateLoop(true)}, loopSpeed);	
		}
	}
	
	WPW.doHomeLoop = doLoop;
	
	var animateLoop = function(addVal, dontAnimateBar){
		if(addVal)currentIndex +=1;
		var easingFormula = 'easeInOutExpo';
		if(currentIndex > items.length-1){
			currentIndex = 0;
		}
		
		var sliderRange = 990 - sliderBar.width();
		var sliderPos = (sliderRange/(items.length-1)) * currentIndex;// + (sliderRange/items.length)/2;// - sliderBar.width()/2;
		
		if(!dontAnimateBar)sliderBar.animate({
			left: sliderPos
		}, {
			duration: 1000, 
			step:function(){},
			easing:'easeInOutExpo',
			complete:function(){}
		});	
		
		container.stop().animate({
			left: -WPW.cW * currentIndex
		}, {
			duration: 1000, 
			step:function(){},
			easing:easingFormula,
			complete:function(){}
		});		

		doLoop();
	}
	// sliderBarAction
	
	sliderBar.mouseenter(function(){
		WPW.campaignLoopPause = true;
		clearTimeout(loopTimer);
	});
	sliderBar.mousedown(function(){
		barPress = true;
		$('body').bind('mouseup', function(){
			$('body').unbind('mouseup');
			barPress = false;	
			doLoop();
		});
	});
	
	sliderBar.mousedown(function(){
		$('body').unbind('mouseup');
		barPress = false;	
		doLoop();
	});
	
	sliderBar.mouseleave(function(){
		WPW.campaignLoopPause = false;
		doLoop();
	});

	var big_dragger = new WPW.DragStuff(sliderBar, sliderBar, function(){return sliderBar.width();}, function(){return  990;}, function(){return 0;}, function(){return 0;}, true);
	sliderBar.bind('DragPercent', function(){
		var calcIndex = parseInt(items.length * big_dragger.percent, 10);
		if(currentIndex == calcIndex)return;
		currentIndex = calcIndex;
		animateLoop(0, true);
	});
	
	doLoop();
	WPW.Observer(WPW.body).set("WindowResize", resizeSlider);
	
	$(window).bind('focus', function(){
		barPress = false;
		doLoop();
	});
	$(window).bind('blur', function(){
		barPress = true;
	});	
	
	
};

WPW.Core.register("MainCampSlider");


