// -----------------------------------------------------------------------------------
//
//	Slideshow
//

$(function() {

	var slides = {};
	var selected = null;
	var current_slide = 1;
	var block_interaction = false;

	var elem, name, object, link;

	jQuery.extend(jQuery.easing, {
		shoot: function (a, t, b, c, d) {
			return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
		},
		reveal: function (a, t, b, c, d) {
			return c*((t=t/d-1)*t*t + 1) + b;
		},
		slide_move: function(a, t, b, c, d, s){
			if(s == undefined) s = 1.70158;
	        if((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
	        return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
        }
	});

	
	$('#slideshow .slide').each(function(num){
		elem = $(this);
		name = this.id;
		
		var object = eval(elem.attr('object'));
		slides[name] = {
			elem: elem,
			num: (num + 1),
			object: object
		}
		if (object) object.init();
	})
	$('#slideshow-tabs td').each(function(num){
		elem = $(this);
		name = elem.attr('name');
		link = $(this).children('a');
		link.attr('name', name);
		slides[name].link = elem;
		slides[name].anchor = link;
		link.click(function(e){
			selectSlide(this.name);
			//moveToSlide(num + 1);
			return false;
		})
		if (elem.hasClass('selected')) {
			selected = name;
		}
	})
	
	var slideshow = $('#slideshow');
	var frame = slideshow.children('span.framed');
	
	function selectSlide(name) {
		var slide = slides[name];
		if (!slide || selected == name) {
			return;
		}
		
		/*
		$('#slides-wipe').animate({
			'width': slideshow.width(),
			'height': slideshow.height(),
			'left': 0,
			'top': 0
		}, 200, function(){
			if (selected) {
				var sel = slides[selected];
				sel.elem.css('z-index', 1);
				sel.link.removeClass('selected');
				sel.anchor.attr('href', '#');
			}
			
			slide.link.addClass('selected');
			slide.anchor.removeAttr('href');
			slide.elem.css('z-index', 10);
			
			$(this).animate({
				'width': 0,
				'height': 0,
				'left': '50%',
				'top': '50%'
			}, 200, function(){
				//slide.elem.show();
				selected = name;
			});
		});*/
		
		if (selected) {
			var sel = slides[selected];
			//sel.elem.hide();
			sel.link.removeClass('selected');
			sel.anchor.attr('href', '#');
			if (sel.object) {
				//sel.object.reset();
			}
		}
		//slide.elem.show();
		slide.link.addClass('selected');
		slide.anchor.removeAttr('href');
		
		var num = slide.num;
		var reel_size = $('#slides-wrapper').height();
		var obj = $('#slides-container');
		obj.animate({'top': -reel_size * (num - 1)}, 200, function(){
			selected = name;
		})
		
		if (name == 'juniper') {
			slideshow.addClass('blue');
			frame.addClass('header');
			frame.removeClass('bordered');
		} else {
			slideshow.removeClass('blue');
			frame.removeClass('header');
			frame.addClass('bordered');
		}
	}
	
	function moveToSlide (num) {

		if (current_slide == num) {
			return;
		}
		//var reel_size = $('#slides-wrapper').width();
		//var reel_size = $('#slides-wrapper').height();
		//var obj = $('#slides-container');
		//obj.css('left', obj[0].offsetLeft);
		
		//block_interaction = true;
		
		//obj.animate({left: -reel_size * (num - 1)}, 800, 'shoot', function(){
		//	block_interaction = false;
		//	obj.css('left', '-' + ((num - 1) * 100) + '%');
		//});
		current_slide = num;
	}


})



// -----------------------------------------------------------------------------------
//
//	Benefits animator
//

Benefits = {

	items: {},
	
	selected: null,
	
	state: 0, // 0 - main body, 1 - benefit body
	
	faded: false,
	
	init: function () {

		this.wrraper = $('#benefits');
		this.main_body = $('#benefits .main_title');
		this.close = $('#benefits a.close');

		var me = this;
		var elem, name, link;
		$('#benefits ul.navigation li').each(function(){
			elem = $(this);
			name = this.className;
			link = elem.children('a');
			link.attr('name', name);
			link.click(function(e){
				me.select(this.name);
				return false;
			})
			me.items[name] = {
				elem: elem
			}
		})
		
		$('#benefits ul.body li').each(function(){
			elem = $(this);
			name = this.className;
			me.items[name].body = elem;
		})
		
		this.close.click(function(e){
			me.closeAll();
			return false;
		})
	},
	
	select: function (name) {
		if (this.selected == name) {
			return;
		}
		var item = this.items[name];
		var selected = this.items[this.selected];
		if (this.state == 0) {
			if (this.faded) {
				this.main_body.fadeOut();
			} else {
				this.main_body.animate({top: -360}, function(){
					$(this).hide();
				})
			}
			this.close.fadeIn();
			this.state = 1;
		} else if(selected) {
			if (this.faded) {
				selected.body.fadeOut();
			} else {
				selected.body.animate({top: "110%"})
			}
			selected.elem.removeClass('selected');
		}
		if (this.faded) {
			item.body.fadeIn();
		} else {
			item.body.animate({top: "22%"})
		}
		item.elem.addClass('selected');
		this.selected = name;
	},
	
	closeAll: function () {
		var selected = this.items[this.selected];
		if (selected) {
			if (this.faded) {
				selected.body.fadeOut();
			} else {
				selected.body.animate({top: "100%"})
			}
			selected.elem.removeClass('selected');
			if (this.faded) {
				this.main_body.fadeIn();
			} else {
				this.main_body.show();
				this.main_body.animate({top: 0})
			}
			this.close.fadeOut();
			this.selected = null;
			this.state = 0;
		}
	},
	
	reset: function () {
		return;
		/*var selected = this.items[this.selected];
		if (selected) {
			selected.body.css('top', '100%')
			selected.elem.removeClass('selected');
		}
		this.main_body.css('top', '0')
		this.close.hide();
		this.selected = null;
		this.state = 0;*/
	}
	
}