$(function () {
	
	// Front page Slideshow
	if ($('#slider').length) {
		$('#slider ul.slides').cycle({
			fx: 'fade',
			speed: 'slow',
			timeout: 8000,
			speedIn: 850,
			speedOut: 850,
			prev: '#slide-buttons .prev',
			next: '#slide-buttons .next',
			before: changeCaption
		});
	}
	
	// Lightbox Effect
	$("a.group_lightbox").fancybox({
			'padding': 0,
			'transitionIn': 'elastic',
			'transitionOut': 'elastic',
			'easingIn': 'easeOutBack',
			'easingOut': 'easeInBack',
			'type': 'image',
			'overlayOpacity': 0.5
		});
	
	$("#accordion").tabs("#accordion div.pane", {tabs: 'h2', effect: 'slide', initialIndex: null});

		 $("#price-select").change(function(){
		 	if($(this).val() == "") {
		 		$("#other-amount").fadeIn("slow");
		 		$(this).remove();
		 	};

		 });

		 $("#checkout_button").click(function(){
		 	$("#return_url").val("donations/donation-checkout"); 
		 	$("#update_cart_form").submit(); 
		 	return false; 
		 }); 
		 $("#update_button").click(function(){
		 	$("#return_url").val("donations/donation-overview"); 
		 	$("#update_cart_form").submit(); 
		 	return false;
		 });
		
		// Validate Donation Forms
		$("#donation-form").validate({
			   rules: {
			     price: {
			       minlength: 10
			     }
			   },
			   messages: {
			     price: {
			       minlength: jQuery.format("There is a ${0} minimum on donations")
			     }
			   }
			 });

		 // Raise to the top
		 $('a.scroll2top').click(function(){
			$('html, body').animate({scrollTop: '0px'}, 300);
		  	return false;
		  });

		 // Apply class of first to worship
		$("#worship-tab ul li").first().addClass("first");
	
	
	 // Load the classic theme
	    Galleria.loadTheme('/js/galleria/themes/twelve/galleria.twelve.min.js');

	    // Initialize Galleria
	    $('#galleria').galleria();
	

	function changeCaption() {
		// Hide all captions
		$('#slider .captions > li').hide();
		// Fade in the caption li with the same index
		$('#slider .captions li:eq(' + $('#slider .slides > li').index(this) + ')').fadeIn(450);
	}

	// Sidebar Tabs:
	//if (jQuery().tabs) {
	//	$("#side-tabs").tabs();
	//}
	
	// setup ul.tabs to work as tabs for each div directly under div.panes
		$("ul.tabs").tabs("div.panes > div", {effect: 'fade'});

	// Blog List View
	$('#list-view').click(function () {
		$('#blog-posts').addClass('list');
		return false;
	});
	// Blog Grid View
	$('#grid-view').click(function () {
		$('#blog-posts').removeClass('list');
		return false;
	});

	// Clear search form value on focus:
	$('#search input').focus(function () {
		if (this.value == this.defaultValue) {
			this.value = '';
		}
		if (this.value != this.defaultValue) {
			this.select();
		}
	}).blur(function () {
		if ($.trim(this.value) == '') {
			this.value = (this.defaultValue ? this.defaultValue : '');
		}
	});

	// Front Page Slider Panel
	var delay = 400;

	$('#panel-wrapper').mouseenter(function () {
		setTimeout(showMenu, delay);
		$(this).data('in', true);
	}).mouseleave(function () {
		$(this).data('in', false);
		setTimeout(hideMenu, delay);
	});

	function showMenu() {
		if ($('#panel-wrapper').data('in')) {
			$('#panel').stop().animate({
				top: '256px'
			}, {
				queue: false,
				duration: 350,
				easing: 'easeOutExpo'
			}).data('hidden', false).end();
		}
	}

	function hideMenu() {
		if (!$('#panel-wrapper').data('in') && !$('#panel').data('hidden')) {

			//Animate the margin to closed state
			$('#panel').stop().animate({
				top: '338px'
			}, {
				queue: false,
				duration: 350,
				easing: 'easeOutExpo'
			});

			$('#panel').data('hidden', true);
		}
	}

	//Clear Form on Submit
	$.fn.clearForm = function () {
		return this.each(function () {
			var type = this.type,
				tag = this.tagName.toLowerCase();
			if (tag == 'form') return $(':input', this).clearForm();
			if (type == 'text' || tag == 'textarea') this.value = '';
		});
	};

	//Quick Contact Form
	$('form#quick-contact').submit(function () {

		//Remove error classes
		$('form#quick-contact input, form#quick-contact textarea').removeClass('error');

		//Variables
		var hasError = false;
		var emailRegex = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;

		//Validate Name
		if (jQuery.trim($('#qc-name').val()) == '') {
			$('#qc-name').addClass('error');
			hasError = true;
		}
		//Validate Email
		if (jQuery.trim($('#qc-email').val()) == '') {
			$('#qc-email').addClass('error');
			hasError = true;
		} else if (!emailRegex.test(jQuery.trim($('#qc-email').val()))) {
			$('#qc-email').addClass('error');
			hasError = true;
		}
		//Validate Message
		if (jQuery.trim($('#qc-message').val()) == '') {
			$('#qc-message').addClass('error');
			hasError = true;
		}

		if (!hasError) {

			$(this).parent().find('#qc-thanks').slideUp(200).end().find('input, textarea').animate({
				opacity: '0.5'
			}, 200);

			//AJAX Submit				
			$.ajax({
				url: "/includes/success",
				type: 'post',
				data: $(this).serialize(),
				cache: false,
				error: function () {
					console.log("Failed to submit");
				},
				success: function (html) {
					$('p#qc-thanks').html("Thank you. We will be contacting you shortly.").slideDown(200);
					$('form#quick-contact').find('input,textarea').animate({
						opacity: '1'
					}, 200).end().clearForm();
				}
			})

		} //end if no errors
		return false;

	}) //end if submitted
	
	//Newsletter Form
	$('form#newsletter-form').submit(function () {

		//Remove error classes
		$('form#newsletter-form input').removeClass('error');

		//Variables
		var hasError = false;
		var emailRegex = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;

		//Validate Email
		if (jQuery.trim($('#email').val()) == "your-email@example.com") {
			$('#email').addClass('error');
			hasError = true;
		} else if (!emailRegex.test(jQuery.trim($('#email').val()))) {
			$('#email').addClass('error');
			hasError = true;
		}
		
		if (!hasError) {
			 $(this).submit();
		} //end if no errors
		
		return false;

	}) //end if submitted
	
}); // End document ready

/*********************
 //* jQuery Multi Level CSS Menu #2- By Dynamic Drive: http://www.dynamicdrive.com/
 //* Last update: Nov 7th, 08': Limit # of queued animations to minmize animation stuttering
 //* Menu avaiable at DD CSS Library: http://www.dynamicdrive.com/style/
 *********************/

//Specify full URL to down and right arrow images (23 is padding-right to add to top level LIs with drop downs):
//var arrowimages={down:['downarrowclass', 'down.gif', 23], right:['rightarrowclass', 'right.gif']}
var jqueryslidemenu = {

	animateduration: {
		over: 200,
		out: 100
	},
	//duration of slide in/ out animation, in milliseconds
	buildmenu: function (menuid) {
		jQuery(document).ready(function ($) {
			var $mainmenu = $("#" + menuid + ">ul")
			var $headers = $mainmenu.find("ul").parent()
			$headers.each(function (i) {
				var $curobj = $(this)
				var $subul = $(this).find('ul:eq(0)')
				this._dimensions = {
					w: this.offsetWidth,
					h: this.offsetHeight,
					subulw: $subul.outerWidth(),
					subulh: $subul.outerHeight()
				}
				this.istopheader = $curobj.parents("ul").length == 1 ? true : false
				$subul.css({
					top: this.istopheader ? this._dimensions.h + "px" : 0
				})
				//$curobj.children("a:eq(0)").css(this.istopheader? {paddingRight: arrowsvar.down[2]} : {}).append(
				//'<img src="'+ (this.istopheader? arrowsvar.down[1] : arrowsvar.right[1])
				//+'" class="' + (this.istopheader? arrowsvar.down[0] : arrowsvar.right[0])
				//+ '" style="border:0;" />'
				//)
				$curobj.hover(

				function (e) {
					var $targetul = $(this).children("ul:eq(0)")
					this._offsets = {
						left: $(this).offset().left,
						top: $(this).offset().top
					}
					var menuleft = this.istopheader ? 0 : this._dimensions.w
					menuleft = (this._offsets.left + menuleft + this._dimensions.subulw > $(window).width()) ? (this.istopheader ? -this._dimensions.subulw + this._dimensions.w : -this._dimensions.w) : menuleft
					if ($targetul.queue().length <= 1) //if 1 or less queued animations
					$targetul.css({
						left: menuleft - 1 + "px",
						width: this._dimensions.subulw + 'px'
					}).show()
				}, function (e) {
					var $targetul = $(this).children("ul:eq(0)")
					$targetul.hide()
				}) //end hover
			}) //end $headers.each()
			$mainmenu.find("ul").css({
				display: 'none',
				visibility: 'visible'
			})
		}) //end document.ready
	}
}

//build menu with ID="myslidemenu" on page:
jqueryslidemenu.buildmenu("nav");
