// tabs
$(document).ready(function(){
	initTabs();
	initAccordion();
	initIntro();
	
	
	//handle urls with a #tab already in place
	//used when clicking 'back' after opening a diagram/brochure
	hash = window.location.hash;
	if(hash){
    //alert(hash);
    $('.tab-content').hide();
    $(hash).show();
    $('.tab').each(function(){
      $(this).parent().removeClass('active');
      if($(this).attr('href') == hash){
        $(this).parent().addClass('active');
      }
    });
  }
  $('.tab').bind("click", function(){
    window.location.hash = $(this).attr('href');
  
  });
});
function initAccordion() {
	$('ul.accordion').Accordion({
		activeClass:'active',
		opener:'a.opener',
		slider:'div.slide',
		slideSpeed: 250,
		closed:true
	});
}
function initIntro(){
	var _speed = 800;
	var _cont = $('.container');
	var _text = _cont.find('.text-block');
	var _el = _cont.find('.rolls >div');
	var _textMarg = _text.css('marginTop');
	var _elMarg = [];
	_el.each(function(){
		_elMarg.push($(this).css('marginTop'));
		$(this).css({marginTop:300,opacity:0});
	});
	_text.css({marginTop:-200,opacity:0});
	
	_cont.next().find('li:eq(1)').animate({opacity:0}, {queue:false, duration:_speed});
	setTimeout(function(){
		_text.animate({marginTop:_textMarg, opacity:1}, {queue:false, duration:_speed});
	},_speed)
	setTimeout(function(){
		_el.each(function(i){
			var _element = $(this);
			setTimeout(function(){
				_element.animate({marginTop:_elMarg[i], opacity:1}, {queue:false, duration:_speed/2});
			},_speed*i/4);
			_element.find('>a').click(function(){
				_cont.find(this.hash).fadeIn(_speed).Slideshow({
					speed: 800,
					autoRotation: false,
					list: 'ul.gallery>li',
					pager: 'ul.switcher',
					ieVersion: 6
				});;
				_text.fadeOut(_speed);
				_el.fadeOut(_speed);
				return false;
			});
		});
	},_speed*2);
	
}
	
jQuery.fn.Slideshow = function(_options){
	// default options
	var _options = jQuery.extend({
		speed: 1200,
		autoRotation: 4000,
		list: 'ul.fade>li',
		prev: '.prev, .link-prev, .btn-prev',
		next: '.next, .link-next, .btn-next',
		pager: 'ul.switcher',
		dinamicPagination: true,
		pause: '.pause',
		ieVersion: 6
	},_options);
	
	return this.each(function(){
		// options
		var _hold = jQuery(this);
		var _speed = _options.speed;
		var _autoRotation = _options.autoRotation;
		var _list = _hold.find(_options.list);
		var _prev = _hold.find(_options.prev);
		var _next = _hold.find(_options.next);
		var _pause = _hold.find(_options.pause);
		var _counter = _hold.find('.number');
		_counter.text('Slide 1 of '+_list.length);
		var _ie = _options.ieVersion;
		var _f = true;
		var _p = _options.dinamicPagination;
	/*--------CREATING THUMBNAILS----------*/
		var _num = _hold.find(_options.pager);
		if (_p){	_num.empty();
			_list.each(function(i){
				$('<li><a href="#">'+(i+1)+'</a></li>').appendTo(_num);
			});
		};
		var _thumb = _num.find('li');
	/*-------------------------------------------------*/
		var _a = _list.index(_list.filter('.active'));
		if(_a == -1) {_a = _thumb.index(_thumb.filter('.active'));}	if(_a == -1) {_a = 0;}
		_list.removeClass('active').eq(_a).addClass('active');
		_thumb.removeClass('active').eq(_a).addClass('active');
		
		var _i, _old = _a, _t;
		if (jQuery.browser.msie && jQuery.browser.version < _ie){		_list.hide().eq(_a).show();
		}else{		_list.show().css({opacity:0}).eq(_a).css({opacity:1});	}
		if (_autoRotation) Run(_a);
		
		function Run(_a){
			_t = setTimeout(function(){
				_a++; if (_a >= _list.length){_a=0}
				ChangeFade(_a);
			}, _autoRotation);
		};
		function ChangeFade(_new){
			if(_new != _old){
				if(jQuery.browser.msie && jQuery.browser.version < _ie){
					_list.eq(_old).removeClass('active').hide();
					_list.eq(_new).addClass('active').show();
				}else{
					_list.eq(_old).removeClass('active').animate({opacity:0}, {queue:false, duration:_speed});
					_list.eq(_new).addClass('active').animate({opacity:1}, {queue:false, duration:_speed});
				}
				_thumb.eq(_old).removeClass('active');
				_thumb.eq(_new).addClass('active');
				_counter.text('Slide '+(_new+1)+' of '+_list.length);
				_old=_new;_a=_new;
				if(_t) clearTimeout(_t);
				if (_f){if (_autoRotation) Run(_new);}
			};
		};
		_pause.click(function(){
			if (_f){
				_f = false;
				clearTimeout(_t);
			}else{
				_f = true;
				if (_autoRotation) Run(_a);
			}
			return false;
		});
		_thumb.click(function(){
			_i = _thumb.index($(this));
			ChangeFade(_i);
			_a = _i;
			return false;
		});
		_next.click(function(){
			_a++; if (_a == _list.length){_a=0}
			ChangeFade(_a);
			return false;
		});
		_prev.click(function(){
			_a--; if (_a == -1){_a = _list.length-1}
			ChangeFade(_a);
			return false;
		});
	});
};

jQuery.fn.Accordion = function(_options){
	var _options = jQuery.extend({
		activeClass:'active',
		opener:'.opener',
		slider:'.slide',
		slideSpeed: 400,
		animStart:false,
		animEnd:false,
		event:'click',
		closed:false
	},_options);
	
	return this.each(function(){
		var _closed = _options.closed;
		jQuery(this).children().each(function(){
		
			var _holder = jQuery(this);
			var _slideSpeed = _options.slideSpeed;
			var _activeClass = _options.activeClass;
			var _opener = jQuery('>'+_options.opener, _holder);
			var _slider = jQuery('>'+_options.slider, _holder);
			var _animStart = _options.animStart;
			var _animEnd = _options.animEnd;
			var _event = _options.event;
			
			if(_slider.length) {
				if(_holder.hasClass(_activeClass)) {_slider.show();}
				else {_slider.hide();}
				
				_opener.bind(_event,function(){
					_holder.siblings().find('li').removeClass(_activeClass);
					if(!_slider.is(':animated')) {
						if(typeof _animStart === 'function') _animStart();
						if(!_holder.hasClass(_activeClass)){
							_holder.siblings().removeClass(_activeClass).find(_options.slider).slideUp(_slideSpeed,function(){
								if(typeof _animEnd === 'function') _animEnd();
							});
							_holder.addClass(_activeClass);
							_slider.slideDown(_slideSpeed,function(){
								if(typeof _animEnd === 'function') _animEnd();
							});
						}else{
							if(_closed){
								_holder.removeClass(_activeClass);
								_slider.slideUp(_slideSpeed,function(){
									if(typeof _animEnd === 'function') _animEnd();
								});
							}
						}
					}
					return false;
				});
			}
		});
	});
}
function initTabs()
{
	var sets = document.getElementsByTagName("ul");
	for (var i = 0; i < sets.length; i++)
	{
		if (sets[i].className.indexOf("tabset") != -1)
		{
			var tabs = [];
			var links = sets[i].getElementsByTagName("a");
			for (var j = 0; j < links.length; j++)
			{
				if (links[j].className.indexOf("tab") != -1)
				{
					tabs.push(links[j]);
					links[j].tabs = tabs;
					var c = document.getElementById(links[j].href.substr(links[j].href.indexOf("#") + 1));

					if (c) if (links[j].parentNode.className.indexOf("active") != -1) c.style.display = "block";
					else c.style.display = "none";

					links[j].onclick = function ()
					{
						var c = document.getElementById(this.href.substr(this.href.indexOf("#") + 1));
						if (c)
						{
							for (var i = 0; i < this.tabs.length; i++)
							{
								var tab = document.getElementById(this.tabs[i].href.substr(this.tabs[i].href.indexOf("#") + 1));
								if (tab)
								{
									tab.style.display = "none";
								}
								this.tabs[i].parentNode.className = this.tabs[i].parentNode.className.replace("active", "");
							}
							this.parentNode.className += " active";
							c.style.display = "block";
							return false;
						}
					}
				}
			}
		}
	}
}

