function initOpenClose() {
	var _activeClass = 'expanded';
	var _slideSpeed = 450;
	$('div.header-holder').each(function(){
		var _holder = $(this);
		var _opener = _holder.find('a.open, a.close');
		var _slider = _holder.find('div.parents-box');
		_opener.click(function(){
			if(_holder.hasClass(_activeClass)) {
				_holder.removeClass(_activeClass);
				_slider.slideUp(_slideSpeed);
			} else {
				_holder.addClass(_activeClass)
				_slider.slideDown(_slideSpeed);
			}
			return false;
		});
	});
}

function initSlideShow() {
	$('div.main-image').slideShow({
		slideEl:'ul.slideset > li',
		autoSlideShow:true,
		switchTime:8500,
		duration:950
	});
}

function initPopups() {
	$('a.open-popup').simpleLightbox({
		faderOpacity: 0.75,
		faderBackground: '#000',
		closeLink:'a.close'
	});
}

/*function initContentTabs() {
	var _slideSpeed = 850;
	var _activeClass = 'active';

	$('div.tabs-holder').each(function(){
		var _tabNum = window.location.hash;
		if(_tabNum && _tabNum.length) _tabNum = _tabNum.substr(1);
		else _tabNum=0;

		var _holder = $(this);
		var _toggleLists = $('ul.toggle-list,span.toggle-list');
		var _tabLinks = _holder.find('ul.tabs a');
		var _tabHolder = _holder.find('div.tabsholder');
		var _tabSlider = _holder.find('div.tabslider');
		var _tabBlocks = _tabSlider.find('>div.tab-content-holder');
		var _tabWidth = _tabBlocks.eq(0).outerWidth(true);
		var _currentIndex = _tabLinks.index(_tabLinks.filter('.'+_activeClass).eq(0));
		if(_tabNum && _tabNum<_tabBlocks.length) {
			_currentIndex=_tabNum;
			updateClasses();
		}

		_tabSlider.css({marginLeft:-_tabWidth*_currentIndex});
		_tabHolder.css({height:_tabBlocks.eq(_currentIndex).outerHeight(true)});

		_tabLinks.each(function(_ind){
			$(this).click(function(){
				_currentIndex = _ind;
				updateClasses();
				switchTabs();
				return false;
			});
		});

		_toggleLists.each(function(){
			$(this).find('a').each(function(_ind){
				$(this).click(function(){
					_currentIndex = _ind;
					updateClasses();
					switchTabs();
					return false;
				});
			});
		});

		function updateClasses() {
			_tabLinks.removeClass(_activeClass).eq(_currentIndex).addClass(_activeClass);
			_toggleLists.each(function(){
				$(this).find('a').removeClass(_activeClass).eq(_currentIndex).addClass(_activeClass);
			});

			// refresh cufon
			Cufon.refresh('.tabs li a');
		}

		function switchTabs() {
			_tabSlider.animate({marginLeft:-_tabWidth*_currentIndex},{duration:_slideSpeed,queue:false});
			_tabHolder.animate({height:_tabBlocks.eq(_currentIndex).outerHeight(true)},{duration:_slideSpeed,queue:false});
		}
	});
}*/

function initCufon() {
	Cufon.replace('#navigation li a strong', { fontFamily: 'Helvetica'});
	Cufon.replace('#navigation li a em', { fontFamily: 'Helvetica'});
	Cufon.replace('.tabs li a', { fontFamily: 'Helvetica', hover: true});
	Cufon.replace('.tab-main h2', { fontFamily: 'Helvetica'});
}

function ieHover(_list) {
	if ($.browser.msie && $.browser.version < 7) {
		$(_list).hover(function() {
			$(this).addClass('hover');
		}, function() {
			$(this).removeClass('hover');
		});
	}
}

function initSlideGalleries() {
	var _slideSpeed = 1200;
	var _switchTime = 6850;

	$('div.slidegalleryset').each(function(){
		var _holder = $(this);
		var _galleries = _holder.find('div.slidegallery');
		var _gCount = 0;
		var _completeCount = 0;

		_galleries.each(function(_ind){
			var _gallery = $(this);
			var _slideHolder = _gallery;
			var _slideWidth = _slideHolder.width();
			var _slider = _slideHolder.find('>div.slidesholder');
			var _slideItems = _slider.find('>div.slide');
			var _slideCount = _slideItems.length;
			var _currentIndex = 0;
			var _timer;

			if(_slideCount>1) {
				_gCount++;
			}

			function switchSlide(){
				if(_currentIndex<_slideCount-1) _currentIndex++;
				else {
					_currentIndex=0;
					_slider.animate({marginLeft:-_slideWidth*_currentIndex},{duration:_slideSpeed,queue:true});
					_completeCount++;
					_galleries.eq(0).trigger('complete');
					return;
				}
				_slider.animate({marginLeft:-_slideWidth*_currentIndex},{duration:_slideSpeed,queue:true});
				_timer = setTimeout(function(){switchSlide();}, _switchTime);
			}

			_gallery.bind('start', function(){
				_slider.animate({marginLeft:-_slideWidth*_currentIndex},{duration:_slideSpeed,queue:true});
				_timer = setTimeout(function(){switchSlide();}, _switchTime);
			});

			_gallery.bind('clear', function(){
				if(_timer) clearTimeout(_timer);
			});

			if(_ind==0) {
				_gallery.bind('restart', function(){
					_galleries.trigger('clear');
					_galleries.each(function(_cind){
						var _gall = $(this);
						setTimeout(function(){_gall.trigger('start');}, _switchTime*(_cind+1));
					});
				});
				_gallery.bind('complete', function(){
					if(_completeCount>=_gCount) {
						//alert('--> '+_completeCount + ' restarting...');
						_completeCount=0;
						_galleries.eq(0).trigger('restart');
					}
				});
			}

		});
		_galleries.eq(0).trigger('restart');
	});
}

$(window).bind('load', function(){
	initCufon();
	initOpenClose();
	initSlideShow();
	initPopups();
	//initContentTabs();
	initSlideGalleries();
	ieHover('#navigation > li');
});

// slideshow plugin
jQuery.fn.slideShow = function(_options){
	var _options = jQuery.extend({
		slideEl:'div.img-hold img',
		linkNext:'a.next',
		linkPrev:'a.prev',
		linkPause:'a.pause',
		numElementLink:'div.nav li a',
		duration:500,
		autoSlideShow:false,
		switchTime:30,
		event:'click',
		currentEl:'#footer span.cur',
		allEl:'#footer span.all'
	},_options);

	return this.each(function(){
		var _THIS = jQuery(this);
		var _slideEl = $(_options.slideEl, _THIS);
		var _elTagName = _options.slideEl;
		var _linkNext = $(_options.linkNext, _THIS).length ? $(_options.linkNext, _THIS) : false;
		var _linkPrev = $(_options.linkPrev, _THIS).length ? $(_options.linkPrev, _THIS) : false;
		var _linkPause = $(_options.linkPause, _THIS).length ? $(_options.linkPause, _THIS) : false;
		var _numElementLink = $(_options.numElementLink, _THIS).length ? $(_options.numElementLink, _THIS) : false;
		var _numElement = $(_options.numElementLink, _THIS).length ? _numElementLink.parent() : false;
		var _duration = _options.duration;
		var _switchTime = _options.switchTime;
		var _numElActive, _n, _timer = false, _hover = false;

		if (!_slideEl.filter('.active').length)
				_slideEl.eq(0).addClass('active');

		$(_slideEl).not(".active").css('display','none');

		if ($(_numElement).length) {activeNumEl()}

		if (_options.autoSlideShow) {
				_timer = setTimeout(function(){nextEl()},_switchTime);
				contentHover();
		}
		if (_linkNext) {
				$(_linkNext).click(function(){
						if (_timer) {
								clearTimeout(_timer);
								_timer = setTimeout(function(){nextEl()},_switchTime);
						}
						if ($(_slideEl).filter(".active").next().is(_elTagName)) {
							$(_slideEl).filter(".active").next().addClass("next");
						} else {
							$(_slideEl).eq(0).addClass("next");
						}
						fadeElement();
						activeNumEl();
						return false;
				});
		}
		if (_linkPrev) {
				$(_linkPrev).click(function(){
						if (_timer) {
								clearTimeout(_timer);
								_timer = setTimeout(function(){nextEl()},_switchTime);
						}
						if ($(_slideEl).filter(".active").prev().is(_elTagName)) {
							$(_slideEl).filter(".active").prev().addClass("next");
						} else {
							$(_slideEl).filter(":last-child").addClass("next");
						}
						fadeElement();
						activeNumEl();
						return false;
				});
		}
		if (_linkPause) {
				if (!_options.autoSlideShow) {
					_linkPause.addClass('play');
					_options.autoSlideShow = true;
					if (!_hover) contentHover();
				}
				$(_linkPause).click(function(){
						if (!_linkPause.is('.play')) {
							clearTimeout(_timer);
							_linkPause.addClass('play');
						} else {
							_linkPause.removeClass('play');
							_timer = setTimeout(function(){nextEl()},_switchTime);
						}
						return false;
				});
		}
		if (_numElementLink) {
				$(_numElementLink).bind(_options.event, function(){
						if (_timer) {
								clearTimeout(_timer);
								_timer = setTimeout(function(){nextEl()},_switchTime);
						}
						_n = _numElement.index($(this).parent());
						if (!$(_slideEl).eq(_n).hasClass("active")){
							$(_slideEl).eq(_n).addClass("next");
							fadeElement();
							activeNumEl();
						}
						return false;
				});
		}
		if (_options.currentEl || _options.allEl) {
				_THIS.all = _slideEl.length;
				$(_options.allEl, _THIS).html(_THIS.all);
				function currentNum() {
					var _index = _slideEl.index(_slideEl.filter('.active')) + 1;
					$(_options.currentEl, _THIS).html(_index);
				}
				currentNum();
		}
		function contentHover() {
			_hover = true;
			_slideEl.hover(function() {
					if (_timer) clearTimeout(_timer);
			}, function(){
					if (_linkPause && !_linkPause.is('.play'))
						_timer = setTimeout(function(){nextEl()},_switchTime);
					else if (!_linkPause)
						_timer = setTimeout(function(){nextEl()},_switchTime);
			});
		}
		function nextEl(){
				if ($(_slideEl).filter(".active").next().is(_elTagName)){
					$(_slideEl).filter(".active").next().addClass("next");
				} else {
					$(_slideEl).eq(0).addClass("next");
				}
				fadeElement();
				activeNumEl();
				_timer = setTimeout(function(){nextEl()},_switchTime);
		};
		function activeNumEl() {
				$(_numElement).removeClass("active");
				_numElActive = $(_slideEl).index($(_slideEl).filter(".active")[0]);
				$(_numElement).eq(_numElActive).addClass("active");
		};
		function fadeElement(){
				$(_slideEl).filter(".active").fadeOut(_duration).removeClass("active");
				$(_slideEl).filter(".next").fadeIn(_duration).addClass("active").removeClass("next");
				if (_options.currentEl || _options.allEl) currentNum();
		};
	});
}

jQuery.fn.simpleLightbox = function(_options){
	// defaults options
	var _options = jQuery.extend({
		lightboxContentBlock: '.lightbox',
		faderOpacity: 0.8,
		faderBackground: '#ffffff',
		closeLink:'a.close-btn, a.cancela',
		href:true,
		onClick: null
	},_options);

	return this.each(function(i, _this){
		var _this = jQuery(_this);
		if (!_options.href)
			_this.lightboxContentBlock = _options.lightboxContentBlock;
		else _this.lightboxContentBlock = _this.attr('href');
		if (_this.lightboxContentBlock != '' && _this.lightboxContentBlock.length > 1) {
			_this.faderOpacity = _options.faderOpacity;
			_this.faderBackground = _options.faderBackground;
			_this.closeLink = _options.closeLink;
			var _fader;
			var _lightbox = $(_this.lightboxContentBlock);
			if (!jQuery('div.lightbox-fader').length)
				_fader = $('body').append('<div class="lightbox-fader"></div>');

			_fader = jQuery('div.lightbox-fader');
			_lightbox.css({
				'zIndex':999
			});
			_fader.css({
				opacity:_this.faderOpacity,
				backgroundColor:_this.faderBackground,
				display:'none',
				position:'absolute',
				top:0,
				left:0,
				zIndex:998,
				textIndent: -9999
			}).text('$nbsp');
			_lightbox.shownFlag = false;
			_this.click(function(){
				if (jQuery.isFunction(_options.onClick)) {
					_options.onClick.apply(_this);
				}
				_lightbox.shownFlag = true;
				_lightbox.hide();
				jQuery.fn.simpleLightbox.positionLightbox(_lightbox);
				_fader.fadeIn(300, function(){
					_lightbox.fadeIn(400);
					jQuery.fn.simpleLightbox.positionLightbox(_lightbox);
				});
				return false;
			});
			jQuery(_this.closeLink).click(function(){
				_lightbox.fadeOut(400, function(){
					_fader.fadeOut(300);
					_scroll = false;
				});
				return false;
			});
			_fader.click(function(){
				_lightbox.fadeOut(400, function(){
					_fader.fadeOut(300);
				});
				return false;
			});
			var _scroll = false;
			jQuery.fn.simpleLightbox.positionLightbox = function (_lbox) {
				if(!_lbox.shownFlag) return false;
				var _height = 0;
				var _width = 0;
				var _minWidth = $('body > div:eq(0)').outerWidth();
				if (window.innerHeight) {
					_height = window.innerHeight;
					_width = window.innerWidth;
				} else {
					_height = document.documentElement.clientHeight;
					_width = document.documentElement.clientWidth;
				}
				var _thisHeight = _lbox.outerHeight();
				var _page = $('body');
				if (_lbox.length) {
					if (_width < _minWidth) {_fader.css('width',_minWidth);} else {_fader.css('width','100%');}
					if (_height > _page.innerHeight()) _fader.css('height',_height); else _fader.css('height',_page.innerHeight());
					if (_height > _thisHeight) {
						if ($.browser.msie && $.browser.version < 7) {
							_lbox.css({
								position:'absolute',
								top: (document.documentElement.scrollTop + (_height - _thisHeight) / 2)+"px"
							});
						} else {
							_lbox.css({
								position:'fixed',
								top: ((_height - _lbox.outerHeight()) / 2)+"px"
							});
						}
					}
					else {
						var _fh = parseInt(_fader.css('height'));
						if (!_scroll) {
						if (_fh - _thisHeight > parseInt($(document).scrollTop())) {
								_fh = parseInt($(document).scrollTop())
								_scroll = _fh;
							} else {
								_scroll = _fh - _thisHeight;
							}
						}
						_lbox.css({
							position:'absolute',
							top: _scroll
						});
					}
					if (_width > _lbox.outerWidth()) _lbox.css({left:((_width - _lbox.outerWidth()) / 2 + 10) + "px"});
					else _lbox.css({position:'absolute',left: 0});
				}
			}

			jQuery(window).resize(function(){
				if (_lightbox.is(':visible'))
					jQuery.fn.simpleLightbox.positionLightbox(_lightbox);
			});
			jQuery(window).scroll(function(){
				if (_lightbox.is(':visible'))
					jQuery.fn.simpleLightbox.positionLightbox(_lightbox);
			});

			jQuery.fn.simpleLightbox.positionLightbox(_lightbox);
				$(document).keydown(function (e) {
				if (!e) evt = window.event;
				if (e.keyCode == 27) {
					_lightbox.fadeOut(400, function(){
						_fader.fadeOut(300);
					});
				}
			});
		}
	});
}
