// animating background of projects in a list
function animateBorder() {
	$("section ol li a.fixture, section figure:first-child").hover(function(){
		$(this).animate({backgroundColor: 'rgb(180, 180, 180)'}, 300);
	}, function(){
		$(this).animate({backgroundColor: 'rgb(234, 234, 234)'}, 300);
	});
}

// jQuery functions
$(document).ready(function() {

	animateBorder();
	
	// showing/hiding projects categories nav items
	$("aside menu ul li.page-item-0 a").toggle(
	  function () {
	    $("aside nav ul").slideDown(500);
	    setTimeout(function(){
	    	$("aside nav ul li").animate({ 'opacity': 1 }, 500);
	    }, 500);
		return false;
	  },
	  function () {
	    
		$("aside nav ul li").animate({ 'opacity': 0 }, 500);
		setTimeout(function(){
			$("aside nav ul").slideUp(500);
	    }, 500);
		return false;
	  }
	);
	
	// connection fancybox plugin to large image of single project
	$("section figure:first-child span a").fancybox({
		'transitionIn'		:	'fade',
		'transitionOut'		:	'fade',
		'speedIn'			:	600, 
		'speedOut'			:	200, 
		'overlayShow'		:	true,
		'showCloseButton'	:	false,
		'hideOnOverlayClick':	true,
		'hideOnContentClick':	true,
		'overlayOpacity'	:	0.75,
		'titleShow'			:	false
	});
	
	// preloading and displaying oldest projects
	$("#load-posts a").live('click', function(e){
		e.preventDefault();
		var link = jQuery(this).attr('href');
		//$("#wrapper section ol").append(' Loading...');
		$("footer ol#hidden").load(link + ' section ol li');
		$("#load-posts a:first-child").fadeOut(500);
		setTimeout(function(){
			$("#load-posts a:last-child").fadeIn(500);
		}, 500)
		$("#load-posts a:last-child").fadeOut(500);
		setTimeout(function(){
			var content = $("footer ol#hidden");
			content.children("li").addClass('loaded');
			$("#wrapper section ol").append(content.html());
			$("#wrapper section ol li.loaded").fadeIn(800).removeClass('loaded');
			content.html('');
			animateBorder();
			$("#load-posts").load(link + ' #load-posts a');
		}, 1250);
		
	});
	
	// adding lines before menu links
	$("aside menu ul li").prepend('&#8212; ');
	
	// animating screen after 'Top' button clicking
	$("a[href='#top']").click(function(){
		$('html, body').animate({scrollTop: 0}, 'slow');
		return false;
	});
	
	if ( $("form#contacts").length ) {
	
		// enabling submit button
		$("form#contacts input[type='submit']").removeAttr("disabled");
		
		// setting up captcha
		var captchaFunction = function(){
			var thisArray = new Array("20 + 30 =", "10 + 20 =", "10 + 40 =");
			var thisArrayLength = thisArray.length;
			var thisArrayRandomChoice = Math.floor(thisArrayLength * Math.random());
			return $("form#contacts span.captcha > span:first-child input").val(thisArray[thisArrayRandomChoice]);
		}
		captchaFunction();
		
		// styling textarea on focus
		$("#message textarea").focus(function(){
			var tValue = $(this).val();
			$("#message label").hide();
		});
		
		// and changing style on blur
		$("#message textarea").blur(function(){
			var tValue = $(this).val();
			if (tValue == '') {
				$("#message label").show();
			}
		});
		
		// hide autocomplete
		$(":input").attr('autocomplete', 'off');
	
		// email validation function
		function validEmail(email) {
			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);
			return pattern.test(email);
		}
		
		// removing error class after just a keypress
		$("form#contacts input[type='text'], form#contacts textarea").keypress(function(){
			$(this).parent('span').removeClass('error');
		});
		
		// validating all the fields one by one
		$("form#contacts").submit(function(){
			
			var user_name = $("#user_name");
			var user_email = $("#user_email");
			var user_message = $("#user_message");
			var captcha = $("#captcha");
			var captchaValue = $("form#contacts span.captcha > span:first-child input").val();
			captchaValue = captchaValue.match(/[\d]+/g);
			captchaValue = Number(captchaValue[0]) + Number(captchaValue[1]);
			
			// validating user name
			if ( user_name.val().length < 2 ) {
				user_name.parent("span").addClass("error");
				user_name.focus();
				return false;
			
			// validating user email
			} else if ( user_email.val().length < 2 ) {
				user_email.parent("span").addClass("error");
				user_email.focus();
				return false;
			} else if ( !(validEmail(user_email.val())) ) {
				user_email.parent("span").addClass("error");
				user_email.focus();
				return false;
			
			// checking captcha
			} else if ( captcha.val() != captchaValue ) {
				captcha.parent("span").addClass("error");
				captcha.focus();
				return false;
				
			// validating message
			} else if ( user_message.val() == '' ) {
				user_message.parent("span").addClass("error");
				user_message.focus();
				return false;
				
			// submiting a form
			} else {
				return true;
			}
		});
		
		// showing success message after form submit
		if ( $("p.spacer span").length ) {
			setTimeout(function() {
				$("p.spacer span").fadeOut("slow");
				$("form.sent").css({opacity: 0, visibility: "visible"}).animate({opacity: 1}, 2000);
			},
			5000);
		}
	}
	
	// replace emails and show only for humans
	if ( $("span.mailme").length ) {
	  var at = / AT /;
	  var dot = / DOT /g;
	
	  $('span.mailme').each(function () {
	    var addr = $(this).text().replace(at, '@').replace(dot, '.');
	    $(this).after('<a href="mailto:' + addr + '">' + addr + '</a>');
	    $(this).remove();
	  });
	}

	
	// just after page is ready we load Google Analitics code
	$.geekGaTrackPage('UA-8412009-1');

});
