(function($){
	$.fn.cycle.transitions.scrollBothWays = function($cont, $slides, opts) {
		$cont.css('overflow','hidden');
		opts.before.push($.fn.cycle.commonReset);
		// custom transition fn (trying to get it to scroll forward and backward)
		opts.fxFn = function(curr, next, opts, cb, fwd) {
			var w = $cont.width();
			opts.cssFirst = { left: 0 };
			opts.animIn	  = { left: 0 };
			if(fwd){
				opts.cssBefore= { left: w, top: 0 };
				opts.animOut  = { left: 0-w };
			}else{
				opts.cssBefore= { left: -w, top: 0 };
				opts.animOut  = { left: w };
			};
			var $l = $(curr), $n = $(next);
			var speedIn = opts.speedIn, speedOut = opts.speedOut, easeIn = opts.easeIn, easeOut = opts.easeOut, animOut = opts.animOut, animIn = opts.animIn;
			$n.css(opts.cssBefore);
			var fn = function() {$n.show();$n.animate(animIn, speedIn, easeIn, cb);};
			$l.animate(animOut, speedOut, easeOut, function() {
				if (opts.cssAfter) $l.css(opts.cssAfter);
				if (!opts.sync) fn();
			});
			if (opts.sync) fn();
		};
	};

	function initTabs(){
		$('ul.tabset').each(function(){
			var _btn = $(this).children();
			var _a = _btn.index(_btn.filter('.active:eq(0)'));
			if(_a == -1) _a = 0;
			
			for(var i = 0; i < _btn.length; i++){
				if(_btn.eq(i).find('a').attr('href').length){
					_btn.eq(i).data('box', $(_btn.eq(i).find('a').attr('href')));
					_btn.eq(i).data('box').hide();
				}
			}
			_btn.removeClass('active').eq(_a).addClass('active').data('box').show();
			_btn.click(function(){
				changeTab(_btn.index(this));
				return false;
			});
			function changeTab(_ind){
				if(_ind != _a){
					_btn.eq(_a).removeClass('active');
					_btn.eq(_ind).addClass('active');
					_btn.eq(_a).data('box').fadeOut();
					_btn.eq(_ind).data('box').fadeIn();
					_a = _ind;
				}
			}
		});
	}
	
	$(document).ready(function(){
		$('input, textarea').placeholder();
		$('#slider .frame').before('<span id="slide-nav"/><span id="prevSlide"/><span id="nextSlide"/>').after('').cycle({
			fx: 'scrollBothWays',
			speed:  700, 
			timeout: 4500, 
			next:   '#nextSlide', 
			prev:   '#prevSlide',
			pager: '#slide-nav',
			pause: true
		});
		initTabs();
	});
	
})(jQuery);
