$(document).ready(function() {	
    // Check for hash value in URL
    var hash = window.location.hash.substr(1);

	if(hash == '') {
		var path = window.location.pathname;
		var pathSplit = path.split('/');

		if(pathSplit[pathSplit.length - 1] != '') {
			var fileName = pathSplit[pathSplit.length - 1];
			hash = fileName.substr(0, fileName.length - 4);
		} else {
			hash = 'index';
		}
	}

	$('#menu li a, #logo a').each(function() {
		var href = $(this).attr('href');
		if(hash == href.substr(0, href.length - 4)) {
			var toLoad = hash + '.php #content';
			loadContent(toLoad, hash);
			attachListeners();
		} 
	})

	// attachListeners();
    
	function attachListeners() {
		$('#menu li a, #logo a, #gallery a, #management, #send').unbind();
	    $('#menu li a, #logo a').click(function() {
			var toLoad = $(this).attr('href') + ' #content';
			var newHash = $(this).attr('href').substr(0, $(this).attr('href').length - 4);
		    var currentHash = window.location.hash.substr(1);
			if(newHash != currentHash) {
				$('#content').slideUp(function() {
					loadContent(toLoad, newHash);
				});
			}
		    return false;
	    });
	}
	
	function loadContent(toLoad, hash) {
	    $('#load').remove();
	    $('#wrapper').append('<span id="load">Loading...</span>');
	    $('#load').show();
    	$('#content').load(toLoad, '', function() {
			attachListeners();
			if(hash == 'galerie') attachGalleryListeners();
			if(hash == 'contact') {
				attachFormListener();
				defuscateEmails();
			}
			setActivePage(hash);
			hideLoader();
	    	$('#content').slideDown();
		})
		window.location.hash = hash;
    }

    function showNewContent() {
		setTimeout(function() {
		}, 500);
    }

    function hideLoader() {
    	$('#load').fadeOut('normal');
    }

	function setActivePage(hash) {
		$('#menu li a').removeClass('active');
		$('#menu li a.m-' + hash).addClass('active');
		$('#content').removeClass().addClass(hash);
	};
	
	function attachGalleryListeners() {
		$('#gallery a').fancybox();
	}
	
	function attachFormListener() {
		$('#send').click(function() {
			var name = $.trim($('#name').val());
			var email = $.trim($('#email').val());
			var message = $.trim($('#message').val());
			if(name == '') {
				alert('Please enter your name!');
				$('#name').focus();
				return false;
			}
			if(email == '') {
				alert('Please enter your e-mail!');
				$('#email').focus();
				return false;
			} else {
				if(!is_valid_email(email)) {
					alert('Please enter a valid e-mail address!');
					$('#email').focus();
					return false;
				}
			}
			if(message == '') {
				alert('Please enter a message!');
				$('#message').focus();
				return false;
			}
			$.post('contact-ajax.php', { name: name, email: email, message: message }, function(data) {
				$('#contact_form').slideUp(function() {
					$('#contact_form_result').html(data).slideDown(function() {
						$('#new_message').click(function() {
							$('#name').val('');
							$('#email').val('');
							$('#message').val('');
							$('#contact_form_result').slideUp(function() {
								$('#contact_form').slideDown();
							})
						});
					});
				})
			});
		});
	}
	
	function defuscateEmails() {
		$('#management').defuscate();
	}

	function is_valid_email(email) {
		return /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(email);
	}
});
