front_end_save_data = function(){};
front_end_save_data_dialog = function(){};

function Slider(slider) {
	// object holder
	var s = this;
	
	// private variables
	var container = slider.addClass('js');
	var ul = container.find('ul');
	var lis = ul.find('li');
	var btnNext = null;
	var btnPrev = null;
	var currentSlide = 0;
	
	// public variables
	this.duration = 300;
	
	// private methods
	function slideTo(index) {
		ul.stop();
		ul.animate({ left: '-' + (index * lis.outerWidth(true)) + 'px' }, this.duration);
		currentSlide = index;
	}
	
	// public methods
	this.currentSlide = function() {
		return currentSlide;
	}
	
	this.focus = function() {
		container.focus();
	}
	
	this.slideNext = function() {
		if (++currentSlide >= lis.length) currentSlide = 0;
		slideTo(currentSlide);
	}
	
	this.slidePrev = function() {
		if (--currentSlide < 0) currentSlide = lis.length - 1;
		slideTo(currentSlide);
	}
	
	// initialization
	slider.data('slider', this);
	
	container.append('<a href="#" class="nav prev" /><a href="#" class="nav next" />');
	
	btnNext = container.find('a.next').click(function() {
		s.slideNext();
		return false;
	});
	
	btnPrev = container.find('a.prev').click(function() {
		s.slidePrev();
		return false;
	});
	
	container.keydown(function(e) {
		if (e.which == 39) {
			s.slideNext();
		} else if (e.which == 37) {
			s.slidePrev();
		}
	});
	
	this.focus();
}

jQuery(function($){
	$('.grid-row:last-child').addClass('grid-row-last last');
	$('.cbe-box:last-child').addClass('cbe-box-last last');
	
	$('#navigation li ul').each(function() {
		$(this).wrap('<div class="dd"></div>');
	});

	$('#footer ul').each(function() {
		$(this).find('span:last').remove();
	});
	
	$('#content .grid-row .cbe-box:last-child').addClass('cbe-box-last');

	/* Slider Home */
	
	var last_nav = -1;	
	var slide_navs = $('#slider-navigation ul li');
	var slide_images = $('#slider-holder li');
	var zindex = 10;
		
	slide_navs.mouseover(function(){
		var index = $(this).parent().find('li').index(this)
		if(index == last_nav) return;
		
		slide_images.eq(index).show().siblings().hide();
		slide_images.eq(index).find(".slide-shadow").css("opacity", "0").animate({
			opacity: 0.1
		});
		slide_images.eq(index).find('.slide-cnt p').css('opacity', '0').animate({'opacity': 1});
		
		last_nav = index;
		zindex++;
	});
	slide_navs.eq(0).trigger('mouseover');
	
	/* End Slider Home */
	
	
	/* Slider Inner */
	
	var last_nav_two = -1;	
	var slide_navs_two = $('#slider-navigation-two ul li');
	var slide_images_two = $('#slider-holder-two li');
	var zindex = 10;
		
	slide_navs_two.mouseover(function(){
		var index = $(this).parent().find('li').index(this)
		if(index == last_nav_two) return;
		
		slide_images_two.eq(index).show().siblings().hide();
		slide_images_two.eq(index).find(".slide-shadow").css("opacity", "0").animate({
			opacity: 0.1
		});
		
		last_nav_two = index;
		zindex++;
	});
	slide_navs_two.eq(0).trigger('mouseover');
	
	/* End Slider Inner */

	
	/* Field Focus */
	
	$('.blink').focus(function(){
		if( $(this).attr('title') == $(this).val() ) {
			$(this).val('');
		}
	}).blur(function(){
		if( $(this).val() == '' ) {
			$(this).val( $(this).attr('title') );
		}
	});
	
	/* End Field Focus */
	
	
	/* Drop Down Menu */
	
	$('#navigation ul li')
		.hover(function(){
			$("a:eq(0)", this).addClass("hvr");
			$(this).find('.dd:eq(0)').show();
		}, function(){
			$("a:eq(0)", this).removeClass("hvr");
			$(this).find('.dd:eq(0)').hide();
		}
	);
	
	$('#navigation-two ul li')
		.hover(function(){
			$("a:eq(0)", this).addClass("hvr");
			$(this).find('.dd-two:eq(0)').show();
		}, function(){
			$("a:eq(0)", this).removeClass("hvr");
			$(this).find('.dd-two:eq(0)').hide();
		}
	);
	
	/* End Drop Down Menu */
	
	$('.container-12 .nav li').hover(function() {
		$(this).addClass('active');
	}, function() {
		$(this).removeClass('active');
	});
	
	// Main Nav Third Level Width Adjustment
	(function() {
		var maxWidth = 0;
		var outerWidth = 0;
		
		$('.container-12 .nav .has-dropdown .dd .dd a').each(function() {
			if ($(this).width() > maxWidth) {
				maxWidth = $(this).width();
				outerWidth = $(this).outerWidth(true);
			}
		}).width(maxWidth);
		
		$('.container-12 .nav .has-dropdown .dd .dd').width(outerWidth);
	})();
	
	front_end_save_data = function(settings) {
		var postdata = {};
		for (property in settings) {
			var property_name = (property.substr(0, 5) == 'fesd_') ? property : 'fesd_' + property;
			postdata[property_name] = settings[property];
		}
		// REMOVE CALLBACK - IT'S FOR DEBUG PURPOSES ONLY!
		$.post(fesd_url, postdata, function(data, textStatus) {
			// console.log(data);
		});
	}

	front_end_save_data_dialog = function(settings) {
		var postdata = {};
		for (property in settings) {
			postdata['fesd_' + property] = settings[property];
		}
		$.post(fesd_dialog_url, postdata, function(data, textStatus) {
			$.fancybox({
				autoDimensions: false,
				width: 600,
				height: 400,
				content: data,
				onComplete: function() {
					$('.fesd-dialog-wrap .post-list').sortable({
						axis: 'y',
						cursor: 's-resize'
					});
					$('.fesd-dialog-wrap .post-list').disableSelection();

					$('input[name="fesd_add_post"]').click(function() {
						var opt = $('select[name="fesd_add_post_id"] option[value="' + $('select[name="fesd_add_post_id"]').val() + '"]');
						$('ul.post-list').append('<li>' + $(opt).text() + '<input type="hidden" name="add_post_id_values[]" value="' + $('select[name="fesd_add_post_id"]').val() + '" /></li>')
					});

					$('#fesd_dialog_form').submit(function() {
						var postdata = {};
						$('#fesd_dialog_form input, #fesd_dialog_form select, #fesd_dialog_form textarea').each(function() {
							if ($(this).is('[name$="[]"]')) {
								var name = $(this).attr('name').substr(0, $(this).attr('name').length - 2);
								if (typeof postdata[name] == 'undefined') {
									postdata[name] = [];
								}
								postdata[name].push($(this).val());
							} else {
								postdata[$(this).attr('name')] = $(this).val();
							}
						});
						for (property in postdata) {
							if (typeof postdata[property] == 'object') {
								postdata[property] = postdata[property].join(',');
							}
						}
						
						front_end_save_data(postdata);
						$.fancybox.close();
						return false;
					});
				}
			});
		});
	}
	
	$('.edit-listen-widget-playlist').click(function() {
		front_end_save_data_dialog({
			'post': $(this).prev().find('.widget:eq(0)').attr('id'),
			'operation': 'widget-meta',
			'parameter': 'theme-widget-listen',
			'dialog_type': 'post_picker',
			'dialog_parameter': 'audio'
		});
		return false;
	});
	
	if (typeof($.fancybox) !== 'undefined') {
		$('.wb-custom-gallery a').fancybox({
			titlePosition: 'inside'
		});
	}
	
	// Equalize Content Box Heights
	$(window).load(function() {
		$('#content > div.grid-row').each(function() {
			var cols = $(this).find('[class^="grid"]');
			var maxHeight = 0;
			
			cols.each(function() {
				if ($(this).outerHeight(true) > maxHeight) maxHeight = $(this).outerHeight(true);
			});
			
			cols.each(function() {
				if ($(this).outerHeight(true) < maxHeight) {
					var diff = maxHeight - $(this).outerHeight(true);
					var growth = diff / $(this).find('> div.cbe-box').length;
					
					$(this).find('> div.cbe-box td.cnt').each(function() {
						$(this).height($(this).height() + growth);
					});
				}
			});
		});
		
		var sidebarRow = $('.grid-row .fluid-box table', '#sidebar-left, #sidebar-right');
		if (sidebarRow.length == 1) {
			sidebarRow.height(sidebarRow.closest('.grid-row').height());
		}
	});
	
	if (typeof($.fancybox) !== 'undefined') {
		$('.cbe-gallery .fancybox').fancybox({
			padding: 0,
			margin: 0,
			cyclic: true
		});
	}
	
	// Audio Player popup-link
	$('a.popup-audio-player').click(function() {
		if ($(this).hasClass('popup-audio-playlist')) {
			var width = 305;
			var height = 122;
		} else {
			var width = 230;
			var height = 95;
		}
		window.open($(this).attr('href'), 'autioPlayerPopup', 'width=' + width + ',height=' + height + ',location=0,scrollbars=0,resizable=0');
		return false;
	});
	
	// CBE Slider
	$('.cbe-slider').each(function() {
		var slider = new Slider($(this));
	});
	
	$('.cbe-lightbox-gallery a').fancybox({ padding: 0, margin: 0, cyclic: true });
});	
