// thumb slider----------------------------------
jQuery.fn.thumbSlider = function(opts){
	return this.each(function(){
		var defaults = {
			scroller: '#slider',
			mask: '#sliderMask',
			btnNext: '#sliderNext',
			btnPrev: '#sliderPrev',
			items: 'div.item',
			amount: 1,
			xOffset:0,
			yoffset:0,
			speed: 400,
			paging: true,
			controls: '#sliderControls',
			pagingDots: 'ul.sliderPaging',
			initCallBack: function(){},
			setHeights: false
		}
		var o = jQuery.extend({},defaults,opts);

		var scroller = jQuery(o.scroller);
		var mask = jQuery(o.mask);
		var btnNext = jQuery(o.btnNext);
		var btnPrev = jQuery(o.btnPrev);
		var items = scroller.find(o.items);
		var controls = jQuery(o.controls);

		var itemW = items.outerWidth(true);
		var scrollAmount = itemW * o.amount;
		var itemsW = itemW * items.length;

		var current = 1;
		var total = Math.ceil(items.length/o.amount);

		btnNext.click(function(e){sliderControl.next(e);return false;});
		btnPrev.click(function(e){sliderControl.prev(e);return false;});

		var initPaging = function(){
			var pagingElements = '';
			var itemBlocks = items.length / o.amount;
			if(itemBlocks <=1){controls.remove();o.paging = false; return false;}
			for(i=0; i<itemBlocks; i++){
				pagingElements +='<li><a href="#" rel="'+i+'"><span>'+i+'</span></a></li>';
			}
			//controls.append('<ul class="sliderPaging">'+pagingElements+'</ul>')
			controls.find(o.pagingDots).append(pagingElements);
			controls.find('li a').click(function(){ sliderControl.goTo(jQuery(this).attr('rel'));return false; });
			pagingLinks = controls.find('.sliderPaging').find('a');
		}
		var sliderControl = {
			isActive: function(e){
				var t = jQuery(e.target);
				if(t.hasClass('disabled') || scroller.is(':animated')){return false;} else {return true}
			},
			setStatus: function(){
				(current == 1) ? btnPrev.addClass('disabled') : btnPrev.removeClass('disabled');
				(current == total)? btnNext.addClass('disabled') : btnNext.removeClass('disabled');
				if(o.paging){
					pagingLinks.filter('.active').removeClass('active');
					jQuery(pagingLinks.get(current-1)).addClass('active');
				}
			},
			next: function(e){
				if(this.isActive(e)){
					scroller.animate({left:'-='+scrollAmount},o.speed,function(){current++;sliderControl.setStatus();})
				}
			},
			prev: function(e){
				if(this.isActive(e)){
					scroller.animate({left:'+='+scrollAmount},o.speed,function(){current--;sliderControl.setStatus();})
				}
			},
			goTo: function(n) {
				scroller.animate({left:-(n*scrollAmount + o.xOffset)},o.speed,function(){n++;current=n;sliderControl.setStatus();})
			}
		}
		var initSlider = function(){
			( o.amount == 1 ) ? sliderW = scrollAmount : sliderW = items.width();
			if(o.paging) {initPaging();}
			scroller.css({width:itemsW,position:'absolute',left:-o.xOffset});
			//items.css({width:sliderW,float:'left'});
			mask.css({width:scrollAmount - o.xOffset*2,marginLeft:o.xOffset,marginRight:o.xOffset,overflow:'hidden',position:'relative',height:scroller.height()-o.yoffset});
			sliderControl.setStatus();

			if(o.setHeights){
				var desc = items.find('div.description');
				var h = 0;
				desc.each(function(){
					var dh = jQuery(this).outerHeight(true);
					if(dh > h) { h = dh }
				})
				desc.css({minHeight:h});
			}

			o.initCallBack();

		}
		initSlider();
	}) //end return each
}

// thumbLinks -------------------------------

jQuery.fn.thumbLinks = function(opts){
	return this.each(function(){
		var t = jQuery(this);
		var defaults = {
			url: 'a.thumb_link',
			parent: 'li.masked'
		}
		var o = jQuery.extend({},defaults,opts);
		var methods = {
			initLink : function(){
				var a = t.find(o.url);
				var url = a.attr('href');
				var title = a.find('span').text();
				a.attr('title',title);
				var a = '<a class="appended" href="'+url+'" title="'+title+'" ></a>';
				t.prepend(a);
			}
		}
		methods.initLink();

	});
}
