// global variables
var slideShowInitialized;
var currentActivePage;
var baseUrl;

;(function($){

	function Preloader()
	{

		var self 	 = this,
			$contentOverlay =  $('<span />');

		this.init = function()
		{


			$contentOverlay
				.css({
					display: 'block',
					position: 'absolute',
					left: 0,
					top: 183,
					width: 0,
					height: 462,
					backgroundColor: '#000'
				})
				.appendTo($('body'));

		}


		this.show = function(callback)
		{
			$contentOverlay
				.stop()
				.animate({width: ['100%', 'easeInQuad']}, 400, function() {
					$contentOverlay
						.css({
							left: '',
							right: 0
						});
					callback.call();
				});
		}

		this.hide = function(callback)
		{
			$contentOverlay
				.stop()
				.animate({width: [0, 'easeInQuad']}, 400, function(){
					$contentOverlay
						.css({
							right: '',
							left: 0
						});
					callback.call();
				});
		}

		this.init();

	}


	function Subnavigation(list)
	{

		var self 		= this,
			$list 		= $(list),
			$listItems 	= $list.find('li');


		this.activeClass = ['current_page_item'];

		this.init = function()
		{
			$listItems.each(function(){

				var $span = $('<span />');
				var $link = $(this).find('a');

				$link.css('position', 'relative');

				$span
					.css({
						display: 'block',
						position: 'absolute',
						height: 50,
						width: 0,
						left: 0,
						bottom: 0,
						opacity: 0,
						zIndex: '-1',
						backgroundColor: '#262626'
					})
					.appendTo($link);

				$(this).hover(function(){
					self.activate($(this));
				},function(){
					self.deactivate($(this));
				});

			});
		}

		this.activate = function($tab, callback)
		{
			callback = callback || function(){};

			$tab.find('span')
				.stop()
				.animate({
					width: [225, 'easeOutCubic'],
					opacity: 1
				}, 150);

			if ( !$.browser.msie ) {
				$tab.find('a')
					.stop()
					.animate({
						color: '#fff'
					}, 300);
			}
		}

		this.deactivate = function($tab, callback)
		{
			callback = callback || function(){};

			$tab.find('span')
				.stop()
				.animate({
					width: [0, 'linear'],
					opacity: [0, 'linear']
				}, 150, function(){
					callback.call();
				});

			if ( !$.browser.msie ) {
				$tab.find('a')
					.stop()
					.animate({
						 color: '#b2b2b2'
					}, 300);
			}

		}

		this.init();

	}

	function getCurrentActivePage(mainNavigation)
	{
		// set the current active page
		var url = location.href.replace(baseUrl + '/', '').replace(baseUrl, '').replace('#', '');

		if ( url.substr(url.length-1, url.length) == '/' ) {
			url = url.substr(0, url.length-1);
		}

		if (mainNavigation && url.indexOf('/') !== -1 ) {
			console.log(url, url.substr(url.indexOf('/'), url.length));
		}

		if ( url == '' ) {
			url = 'home';
		}

		currentActivePage = url;

		return url;
	}

	$(document).bind('newContent', function() {

		// subnavigation
		window.subnavigation = new Subnavigation('aside nav ul');

		jQuery('a.zoom').colorbox({slideshow: true, slideshowSpeed: 5000});

		// console.log(getCurrentActivePage());
		// activate slider
		if ( getCurrentActivePage() == 'home' ) {
			$('body').sliderButtons('nav ul#slider', 'div#fotoslider', {
				delay: 5000
			});
		}

	});


	$(document).ready(function(){

		/* general */
		slideShowInitialized = true;
		baseUrl = 'http://www.linkfotografie.nl';

		$('input[type="submit"]').addClass('submit');
		$('input[type="text"]').addClass('text');
		$('input[type="radio"]').addClass('radio');
		$('input[type="checkbox"]').addClass('checkbox');

		var preloader = new Preloader();

		/*** Callback form ***/
		$('#callback input')
			.data('default', $('#callback input').val())
			.focus(function(){
				if ( $(this).val() == $(this).data('default') ) {
					$(this).val('');
				}
			})
			.blur(function(){
				if ( $(this).val() == '' ) {
					$(this).val($(this).data('default'));
				}
			});
		$('#callback').submit(function(){

			if ( $('#callback input[name="phone"]').val() == $('#callback input[name="phone"]').data('default') ) {
				$('#callback input[name="phone"]').css('border-color', '#ff0000');
				return false;
			}
			$.post('/callback.php', { phone: $('#callback input[name="phone"]').val() }, function(){

				$('#callback').html('Wij nemen z.s.m. contact met u op');

			});
			return false;
		});

		$('body:not(.home) article').jScrollPane();


		/*** Route planner ***/
		$('form#route').submit(function(){
			$.fn.colorbox({
				iframe: true,
				href: $(this).attr('action') + '?' + $(this).serialize(),
				width: 800,
				height: 600
			});
			return false;
		});


		/* main navigation */
		$('nav#main ul li').each(function(){

			var $span = $('<span />');
			var $link = $(this).find('a');

			$link.css('position', 'relative');

			$span
				.css({
					display: 'block',
					position: 'absolute',
					height: 0,
					width: '100%',
					left: 0,
					bottom: 0,
					opacity: 0,
					zIndex: '-1',
					backgroundColor: '#e5e5e5'
				})
				.appendTo($link);

			$(this).hover(function(){

				if ( $(this).hasClass('current_page_item') ) {
					return;
				}

				$span.stop().animate({height: [30, 'easeOutBack'], opacity: 1}, 300);
				//$link.stop().animate({color: '#000'}, 300);
			},function(){
				if ( $(this).hasClass('current_page_item') ) {
					return;
				}
				$span.stop().animate({height: [0, 'easeInBack'], opacity: [0, 'easeInBack']}, 400);
				//$link.stop().animate({color: '#505050'}, 300);
			});

		});


		/* ajax navigation
		$('nav#main ul li a').live("click", function(e) {


		    var button 	= $(this),
		    	list 	= $(this).parent(),
	        	link 	= button.attr("href");

        	var targetUrl = link.replace(baseUrl + '/', '').replace(baseUrl, '');

        	if ( targetUrl.length > 0 ) {
        		targetUrl = targetUrl.substr(0, targetUrl.length-1);
        	} else {
        		targetUrl = 'home';
        	}

        	if ( targetUrl == getCurrentActivePage() ) {
        		return false;
        	}

        	location.hash = targetUrl;

        	preloader.show(function(){


        		$('aside').html('');
        		$('article').html('');

				var bodyClass = '';

				if ( $('nav#main ul li.current_page_item a, nav#main ul li.current_page_parent a').length > 0 ) {
					bodyClass = $('nav#main ul li.current_page_item a, nav#main ul li.current_page_parent a').attr('title').toLowerCase().replace(' ', '-');
				}

				$('nav#main ul li.current_page_item').find('a span').css('height', 0);

				$('nav#main ul li')
						.removeClass('current_page_item')
						.removeClass('current_page_parent');

				list.addClass('current_page_item');

				$('body').removeClass(bodyClass);
				$('body').addClass(button.attr('title').toLowerCase().replace(' ', '-'));


				button.parent('li').addClass('current_page_item');

		        $.get(link,{},function(data){

		        	$('aside').html($(data).find('aside').children());
		        	$('article').html($(data).find('article').children());

					$('aside, article').animate({opacity: 1}, 200);
					Cufon.refresh();

					preloader.hide(function(){
						$(document).trigger('newContent');
					});

		        }, 'html');

			});

	        e.preventDefault();

		}); */

		$(document).trigger('newContent');

	});

})(jQuery);