/**
 * Gallery code for the Foot and Ankle chart
 *
 * @since July 14, 2009
 */
function initGallery() {
	var _fadeSpeed = 400;
	$('ul.gallery').each(function(){
		var _slideNav = $(this);
		var _toggleButtons = _slideNav.find('a');
		var _mainGallery = $('#gallery');
		var _defaultSlide = _mainGallery.find('.visual-holder-defolt')
		var _slideHolder = _mainGallery.find('.visual-holder');
		var _slides = _slideHolder.find(' > ul');
		var _animatingFlag = false;
		var _currentSlide;

		// default slide actions
		_defaultSlide.find('a.btn-close').click(function(){
			_toggleButtons.eq(0).trigger('click');
			return false;
		});

		// set default states for slides
		_slides.css({
			position: 'absolute',
			opacity:0,
			top: 0,
			left: 0
		});
		
		/*log('current slides');
		log(_slideHolder.find(' > ul.current'));*/
		
		// if there is a current ul then make sure it is displayed
		// This should only occur if the user had javascript off initially, or clicked on a bookmork
		// that has a GET var other than 'page' defined, such as 'foot-view=number-b
		
		_currentSlide = _slideHolder.find(' > ul.current').css({
			position: 'absolute',
			opacity:1,
			top: 0,
			left: 0
		});

		// switch slides function
		_toggleButtons.each(function(_ind){
			$(this).click(function(event){
				
				event.stopPropagation();
				
				if(_animatingFlag || _slides.eq(_ind).is(':visible')) return false;

				_toggleButtons.removeClass('active');
				$(this).addClass('active');

				if(!_defaultSlide.hasClass('hidden')) {
					_animatingFlag = true;
					_currentSlide = _slides.eq(_ind).show().css({opacity:1}).addClass('current');
					_defaultSlide.addClass('hidden').css({opacity:1}).animate({opacity:0},{duration:_fadeSpeed,queue:false,complete:function(){
						_defaultSlide.hide();
						_animatingFlag = false;
					}});
				} else {
					_animatingFlag = true;
					_slides.eq(_ind).show().css({opacity:1});
					_currentSlide.animate({opacity:0},{duration:_fadeSpeed,queue:false,complete:function(){
						_currentSlide.removeClass('current').hide();
						_currentSlide = _slides.eq(_ind).addClass('current');
						_animatingFlag = false;
					}});
				}
				return false;
			});
		});

		// area popups code
		_slides.find(' > li').each(function(){
			var _holder = $(this);
			var _opener = _holder.find('div.point a');
			var _popup = _holder.find('div.pop-up');
			var _close = _popup.find('a.btn-close');

			if(_close.length) {
				_close.click(function(){
					_popup.fadeOut(_fadeSpeed);
					return false;
				});
			}
			
			_opener.click(function(){
				
				var parentLI = $(this).parent().parent();
				var parentClass = parentLI.attr('class');
				var parentUL = parentLI.parent();
				var foot_view = parentUL.attr('id');
				
				// log('parent class = ' + parentClass);
				
				var url = '?ajax=TRUE&url=site_templates/inc/foot_ankle_popup.php&condition=' + parentClass + '&foot-view=' + foot_view;
				
				// log('url = ' + url);
				
				if(_popup.length) {
					_popup.fadeIn(_fadeSpeed, function(){
						_popup.css({opacity: ($.browser.msie ? "auto" : 1)});
						$(this).trigger('GALLERY_POPUP');
					});
				} else {
					//var _url = _opener.attr('href');
					var _url = url;
					
					$.ajax({
						type: "GET",
						url: _url,
						success: function(msg){
							_holder.append(msg);
							_popup = _holder.find('div.pop-up');
							_close = _popup.find('a.btn-close');
							_close.click(function(){
								_popup.fadeOut(_fadeSpeed);
								return false;
							});
							_popup.fadeIn(_fadeSpeed, function(){
								_popup.css({opacity: ($.browser.msie ? "auto" : 1)});
								$(this).trigger('GALLERY_POPUP');
							});
						},
						error: function() {
							alert('Ajax error!');
						}
					});
				}
				return false;
			});



		});
	});
}

/**
 * Gallery Popup event responder
 * 
 * This event fires after the gallery popup has been rendered with
 * the new ajax content. Use this to initialize any editable content within
 *
 * @param object event The jQuery event object
 * 
 * @author Jonathan Beebe
 */

// @work
// NOT DONE...not sure if it's worth it to make this load via ajax.
function onGalleryPopup(event) {
	/*log('onGalleryPopup GALLERY_POPUP on:');
	log(event.target);*/
	
	var target = $(event.target);
	/*log(target);*/
	
	var conditionsList = $(event.target).find('ul.conditions_list');
	
	/*log(conditionsList);*/
	
	conditionsList.find('li').each( function() {
		var li = $(this);
		
		li.css('cursor', 'pointer');
		
		li.click( function(event) {
			/*log('click on:');
			log(this);*/
			
			var href = $(this).find('a').attr('href');
			
			document.location = href;
			
			/*var id = $(this).attr('id');
			
			var url = '?ajax=TRUE&url=site_templates/inc/foot_ankle_popup.php&condition=' + parentClass + '&foot-view=' + foot_view;
					
			$.ajax({
				type: "GET",
				url: _url,
				success: function(msg){
					_holder.append(msg);
					_popup = _holder.find('div.pop-up');
					_close = _popup.find('a.btn-close');
					_close.click(function(){
						_popup.fadeOut(_fadeSpeed);
						return false;
					});
					_popup.fadeIn(_fadeSpeed, function(){
						_popup.css({opacity: ($.browser.msie ? "auto" : 1)});
						$(this).trigger('GALLERY_POPUP');
					});
				},
				error: function() {
					alert('Ajax error!');
				}
			});*/
					
			event.stopPropagation();
			return false;
		});
	});
}

$(document).ready(function() {
	initGallery();
	
	// If a popup is open the initialize it's links
	
	if( !$('body').hasClass('add_interactivity_on') ) {
		$(document).bind('GALLERY_POPUP', onGalleryPopup);
		
		var popup = $('ul.default.current').find('div.pop-up');
		if(popup.length == 1) {
			onGalleryPopup({target:popup[0]});
		}
	}
});