// page init
$(function() {
	initCycleCarousel();
	initOpenClose();
	initTabs();
	
	if( $('a.open-popup').length > 0 ){initPopups();}
	
	do_form_elements("#mailing");
	
	$("#mailing").click(function(){
	    do_form_elements(this);
	});
	
	
	hash = window.location.hash;
	if( hash.indexOf("dopopup") > -1 ){
	    $("a.open-popup").trigger("click");
	    $("#devotionals").attr("checked", "true");
	}
	
});

function do_form_elements(elem){
    if( $(elem).is(":checked") ){
        $("#form_elements").stop().fadeIn();
    } else{
        $("#form_elements").stop().fadeOut();	    
    }
}

// tabs function
function initTabs() {
	$('ul.column .slide').each(function(){
		var _list = $('ul.column .slide');
		var _links = _list.find('li a');

		_links.each(function() {
			var _link = $(this);
			var _href = _link.attr('href');
			var _tab = $(_href);

			if(_link.hasClass('active')) _tab.show();
			else _tab.hide();

			_link.click(function(){
				_links.filter('.active').each(function(){
					$($(this).removeClass('active').attr('href')).hide();
				});
				_link.addClass('active');
				_tab.show();
				return false;
			});
		});
	});
}

// popups
function initPopups() {
	$('input.submit-btn').click(function(){
		var _holder = $('div.email-form');
		var _text = _holder.find('input[type="text"]').eq(0);
		var _opener = _holder.find('a.open-popup');
		var _target = $(_opener.attr('href'));

		_target.find('em.email-holder').html(_text.val());
		_target.find('input.email-hidden').val(_text.val());
		_opener.trigger('click');
		return false;
	});

	$('a.open-popup').simpleLightbox({
		faderOpacity: 0.75,
		faderBackground: '#fff',
		closeLink:'.fadeOut'
	});
}


// open-close blocks function
function initOpenClose() {
	var _slideSpeed = 450;
	var _activeClass = 'active';
	$('ul.column > li').each(function(){
		var _holder = $(this);
		var _opener = _holder.find('>a:eq(0)');
		var _slider = _holder.find('>div.slide');
		_opener.click(function(){
			if(_slider.length) {
				if(_holder.hasClass(_activeClass)) {
					_slider.slideUp(_slideSpeed,function(){
						_holder.removeClass(_activeClass);
					});
				} else {
					_holder.addClass(_activeClass);
					_slider.slideDown(_slideSpeed);
				}
			}
			return false;
		});
		if(_holder.hasClass(_activeClass)) _slider.show();
		else _slider.hide();
	});
}

// cycle carousel gallery
function initCycleCarousel() {
	var _activeClass = 'active';
	var _animSpeed = 450;
	var _switchTime = 5000;

	$('div#carusel').each(function(){
		// gallery options
		var _holder = $(this);
		var _slidesHolder = _holder.find('.gallery');
		var _pagingHolder = _holder.find('.pagination');
		var _slider = _slidesHolder.children();
		var _slides = _slider.children().hide();
		var _slideCount = _slides.length;
		var _stepWidth = _slidesHolder.width();
		var _animating = false;
		var _timer;

		// gallery control
		_pagingHolder.empty();
		var _list = $('<ul></ul>');
		_slides.each(function(_ind){
			$('<li><a href="#">'+_ind+'</a></li>').appendTo(_list);
		});
		_pagingHolder.append(_list);

		// gallery control
		var _pagerLinks = _pagingHolder.find('a');
		var _oldIndex = 0;
		var _currentIndex = 0;
		_pagerLinks.each(function(_ind){
			$(this).click(function(){
				if(!_animating || _ind != _currentIndex) {
					_oldIndex = _currentIndex;
					_currentIndex = _ind;
					switchSlide();
				}
				return false;
			});
		});

		// gallery animation
		function switchSlide(_imm) {
			if(_imm) var _animSpeed=0;
			_animating = true;
			updateButtons();

			// preposition slides
			_slides.eq(_oldIndex).show().css({position:'absolute',top:0,left:0});
			_slides.eq(_currentIndex).show().css({position:'absolute',top:0,left:-_stepWidth});

			// animate slides
			_slides.eq(_oldIndex).animate({left:_stepWidth},{duration:_animSpeed, queue: true, complete:function(){
				_animating = false;
			}});
			_slides.eq(_currentIndex).animate({left:0},{duration:_animSpeed, queue: true});
		}
		function updateButtons() {
			_pagerLinks.removeClass(_activeClass).eq(_currentIndex).addClass(_activeClass);
		}
		switchSlide(true);

		// autoslide function
		function nextSlide() {
			_oldIndex = _currentIndex;
			if(_currentIndex < _slideCount-1) _currentIndex++;
			else _currentIndex=0;
			switchSlide();
			_timer = setTimeout(function(){nextSlide()},_switchTime+_animSpeed);
		}

		// autoslide control
		_timer = setTimeout(function(){nextSlide()},_switchTime);
		_holder.hover(function(){
			if(_timer) clearTimeout(_timer);
		},function(){
			_timer = setTimeout(function(){nextSlide()},_switchTime);
		});

	});
}


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);
					});
				}
			});
		}
	});
}



function doPopup(){
    $("a.open-popup").trigger("click");
}
