/* Author: Arjen Post

*/

document.pattern = new Array(1,2,3);

document.pages = {home: 'Home', pattern: 'Pattern', contact: 'Contact'};

$(document).ready(function() {
	$('#show-pattern').click(function(){
		$('#pattern-container').pattern('option', 'showPattern', $('#show-pattern').is(':checked'));
	});
  
	$('#multi-select').click(function(){
		$('#pattern-container').pattern('option', 'multiSelect', $('#multi-select').is(':checked'));
	});
	
	$('#disabled').click(function(){
		if($('#disabled').is(':checked'))
			$( '#pattern-container' ).pattern('disable');
		else
			$( '#pattern-container' ).pattern('enable');
	});

	$('#send').click(function() {
		$('#error-message').html('');
	
		$('input#name').removeClass('error')
    
		var name = $('input#name').val();
	
		if (name == '') 
			$('input#name').addClass('error');
			
		var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	
		$('input#email').removeClass('error')
    
		var email = $('input#email').val();
    
		if (email == '' || !pattern.test(email)) 
			$('input#email').addClass('error');
	
		$('textarea#message').removeClass('error')
    
		var message = $('textarea#message').val();
	
		if (message == '') 
			$('textarea#message').addClass('error');
		
		var error = $('.error');
		
		if(error.length > 0)
		{
			$('#error-message').html('Not all fields are correctly filled. Please review your input.');
			error.first().focus();
		}
		else
		{
			$('#send').attr('disabled', true);
			
			var response = $.ajax({
				type: 'POST',
				url: 'mail.php',
				data: 'name=' + name + '&email=' + email + '&message=' + message,
				success: function(data) {
					if(response.responseText == 1)
					{
						$('#contact-form').hide();
						$('#success-message').html('The message has been send, thank you.');
					}
					else
					{
						$('#send').removeAttr('disabled');
						$('#error-message').html('An error occured while sending the message.');
					}
						
				},
				error: function() {
					$('#send').removeAttr('disabled');
					$('#error-message').html('An error occured while sending the message.');
				}
			});
		}
		
		return false;
	}); 

	$('nav a').click(function() {
		document.scrolling = true;
		
		var button = $(this);
		
		var element = $('header, article')
			.filter(function (index) {
				return $(this).data('hash') == button.data('hash');
			})
			.first();
		
		//$.scrollTo(element, 1500, {easing:'easeInOutCirc', onAfter:function() {
		$.scrollTo(element, 800, {onAfter:function() {
				document.scrolling = false;
				location.hash = button.data('hash');
			}
		});
		
		return false;
	});
	
	$(window).scroll(function() {
		if (document.scrolling === true)
			return;

		var hash = $('header, article')
			.filter(function (index) {
				return $(window).scrollTop() >= $(this).offset().top && $(window).scrollTop() < $(this).offset().top + $(this).height();
			})
			.first()
			.data('hash');
			
		if (typeof hash != 'undefined')
			location.hash = hash;
	});

	$(window).hashchange(function(){
		var hash = location.hash;
		
		if(hash.length == 0)
			hash = 'home';
			
		hash = hash.replace('#','');
			
		var title = document.pages[hash];
		
		$(document).attr('title', title + ' - dotarj - Arjen Post');
		
		var element = $('header, article')
			.filter(function (index) {
				return $(this).data('hash') == hash;
			});
		
		if(element.length == 0)
			return;
		
		if(document.ready !== true)
			$(window).scrollTop(element.offset().top);
			
		if($('nav .active').data('hash') != hash)
		{
			$('nav .active').removeClass('active');
			$('nav a')
				.filter(function (index) {
					return $(this).data('hash') == hash;
				})
				.addClass('active');
		}
		
		hash = location.hash.replace('#','/') || '';
		_gaq.push(['_trackPageview',location.pathname  + hash]);
	});
	
	$('#pattern-container').pattern(
	{
		arrowCorrectImage: 'pattern/img/arrow-correct.png', 
		arrowIncorrectImage: 'pattern/img/arrow-incorrect.png',
		stop: function(event, ui) {
      if($('#set-pattern').is(':checked'))
      {
		// Note: for demo purposes...
	  
          if(ui.pattern.length)
          {
            document.pattern = ui.pattern;
            $('#pattern-container').pattern('clearPattern', true);
          }
          
          $('#set-pattern').removeAttr('checked');
      }
      else
      {
		// Note: this is where you would contact the server to check the supplied pattern. 
		// When the check is complete, you can call clearPattern: 
		// $('#pattern-container').pattern('clearPattern', RESULT);, where RESULT is 
		// true or false, depending on the result of the check.
	  
        if(document.pattern.length == ui.pattern.length)
        {
          for (var i = 0; i < ui.pattern.length; i++)
          {
            if(ui.pattern[i] != document.pattern[i])
            {
              $('#pattern-container').pattern('clearPattern', false);
              return;
            }
          }
          
          $('#pattern-container').pattern('clearPattern', true);
        }
        else
          $('#pattern-container').pattern('clearPattern', false);
      }
		}
	});

	$(window).hashchange();
	
	document.ready = true;
});
	






















