cicportfolio = {

	featureSliderOnImg: 'fileadmin/templates/images/portfolio/position_on.png',
	featureSliderOffImg: 'fileadmin/templates/images/portfolio/position_off.png',	
	smallSliderOnImg: 'fileadmin/templates/images/portfolio/position_on_small.png',
	smallSliderOffImg: 'fileadmin/templates/images/portfolio/position_off_small.png',	

	init: function() {
		this.initSliders();
		this.initSingle();
	},	
	
	initSingle: function() {
		if($('#cicportfolioSingle').length > 0) {
			$("a[rel='pThumb']").colorbox({opacity: .8});
		}
	},
	
	initSliders: function() {
		var sliders = $('.pJsSlider');
		sliders.each(function(index,slider) {
			slider = $(slider);
			slider.sliderItems = new Array(); 
			slider.sliderNavItems = new Array();
			slider.stopAutoAdvance = false;
			slider.fixedOffset = 0;
			slider.trackedOffset = 0;
			slider.increment = 0;
			slider.itemOffset = 0;
			slider.currentItem = 0;

			// setup the items array
			slider.find('.pItem').each(function(itemIndex,item) {
				slider.sliderItems[itemIndex] = item; 
			})
			
			// set vars for specific slider types
			if(slider.hasClass('pJsSliderSingle')) {
				slider.itemOffset = 2;
			}

			if(slider.hasClass('pJsSliderSorted')) {
				slider.itemOffset = 2;
			}
			// setup pnav
			slider.find('.pNav .pNavItem:not(.inactive)').each(function(itemIndex,item) {
				slider.sliderNavItems[itemIndex] = item;
			})
			
			// setup prev and next button events
			slider.find('.pPrev:not(.inactive)').each(function(itemIndex,item) { $(item).click( function() { cicportfolio.sliderRewind(slider); }) })
			slider.find('.pNext:not(.inactive)').each(function(itemIndex,item) { $(item).click( function() { cicportfolio.sliderAdvance(slider,false); }) })

			// setup nav events
			$.each(slider.sliderNavItems, function(itemIndex, item) {
				$(item).click(function() {
					cicportfolio.sliderGoTo(slider,itemIndex,false);
				})
			})
			
			// start advancing
			if(slider.hasClass('pJsAutoAdvance')) {
				setTimeout(function() {cicportfolio.sliderAdvance(slider,true)},10000);			
			}
		})		
	},

	setCurrent: function(slider,index) {
		$.each(slider.sliderNavItems, function(elIndex,el) {
			if(slider.hasClass('pSliderSmall')) {
				if(index == elIndex) {
					$(el).attr({'src':cicportfolio.smallSliderOnImg});
				} else {
					$(el).attr({'src':cicportfolio.smallSliderOffImg});
				}
			} else {
				if(index == elIndex) {
					$(el).attr({'src':cicportfolio.featureSliderOnImg});
				} else {
					$(el).attr({'src':cicportfolio.featureSliderOffImg});
				}
			}
		});
		slider.currentItem = index;
	},
	
	sliderGoTo: function(slider,index,isAutoAdvance) {
		// validate index
		if(isAutoAdvance == false) {
			slider.stopAutoAdvance = true;
		}
		var size = $(slider.sliderItems).length;
		var max = size - 1 - slider.itemOffset;

		if(index < 0) index = max;
		if(index > max) index = 0;


		// math
		var offset = $(slider.sliderItems[index]).position();
		
		var moveX = (offset.left * -1) + slider.trackedOffset;

		slider.trackedOffset = slider.trackedOffset - moveX;
		
		var pSliderInner = slider.find('.pSliderInner');
		pSliderInner.animate({
			right: '-=' + moveX + 'px'
			},
			'slow'
		);
			
		cicportfolio.setCurrent(slider,index);
		
	},

	sliderRewind: function(slider) {
		slider.stopAutoAdvance = true;
		cicportfolio.sliderGoTo(slider,slider.currentItem - 1);
	},

	sliderAdvance: function(slider,isAutoAdvance) {
		if(isAutoAdvance == false) {
			slider.stopAutoAdvance = true;
			cicportfolio.sliderGoTo(slider, slider.currentItem + 1, false);				
		} else {
			if(slider.stopAutoAdvance == false) {
				setTimeout(function() {cicportfolio.sliderAdvance(slider, true)}, 7000);
				cicportfolio.sliderGoTo(slider, slider.currentItem + 1, true);								
			}
		}
	}
}


$(document).ready(function(){
	cicportfolio.init();
});


