$(document).ready(function() {
	
	if($('#slider #slider-images ul').length)
	{
		$('#slider #slider-images ul').jcarousel({
		    scroll: 1,
		    initCallback: portfolioViewCarousel_initCallback,
		    buttonNextHTML: '<div id="slider-next" class="slider-arrow">Next</div>',
		    buttonPrevHTML: '<div id="slider-prev" class="slider-arrow">Prev</div>',
		    wrap: 'both',
		    auto: 5,
		    itemVisibleInCallback: function(instance, object, index, state) {
		    	$('#slider #slider-num a').removeClass('active');
		    	$('#slider #slider-num a:eq('+(index-1)+')').addClass('active');
		    }
		});
		
		$('#slider #slider-num a:first').addClass('active').trigger('click');
	}
	
	$('#contact-footer a').click(function() {
		if(!$('#contact:visible').length)
		{
			$('html, body').animate({scrollTop: $('body').height()}, 800);
		}
		
		$('#contact').slideToggle(500);
	});
	
	///////////////////////////////////////////
	// Form field autofill
	///////////////////////////////////////////
	
	$('.autofill').each(function() {
		var field_name = $(this).attr('rel');
		var field_val  = $(this).val();
		
		if(field_val == '')
		{
			$(this).val(field_name);
			$(this).addClass('field_empty');
		}
		else if(field_val == field_name)
		{
			$(this).addClass('field_empty');
		}
		
		$(this).focus(function() {
			if($(this).val() == field_name)
			{
				$(this).removeClass('field_empty');
				$(this).val('');
			}
		});
		
		$(this).blur(function() {
			if($(this).val() == '')
			{
				$(this).val(field_name);
				$(this).addClass('field_empty');
			}
		});
	});
	
	///////////////////////////////////////////
	// Footer Contact Form Validation & Submission
	///////////////////////////////////////////
	
	$('.contact form').submit(function() {
		if(!$(this).find('.btn').hasClass('submitting'))
		{
			var name    = $(this).find('input[name="name"]').val();
			var email   = $(this).find('input[name="email"]').val();
			var phone   = $(this).find('input[name="phone"]').val();
			var comments = $(this).find('textarea[name="comments"]').val();
			var error   = false;
			
			$(this).find('.error').removeClass('error');
			
			if(name == '' || name == $(this).find('input[name="name"]').attr('rel'))
			{
				$(this).find('input[name="name"]').addClass('error');
				error = 'Name is a required field.';
			}
			else if(email == '' || email == $(this).find('input[name="email"]').attr('rel'))
			{
				$(this).find('input[name="email"]').addClass('error');
				error = 'Email Address is a required field.';
			}
			else if(!validateEmail(email))
			{
				$(this).find('input[name="email"]').addClass('error');
				error = 'Please enter a valid Email Address.'
			}
			else if(comments == '' || comments == $(this).find('textarea[name="comments"]').attr('rel'))
			{
				$(this).find('textarea[name="comments"]').addClass('error');
				error = 'Comments is a required field.';
			}
			
			if(!error)
			{
				$(this).find('.submit');
				$(this).find('.msg_error').hide();
				var formValues = $(this).serialize();
				
				$(this).find('.submit').addClass('submitting').removeClass('btn_red').addClass('btn_grey').find('a').html('Sending...');
				
				$.post('ajax/form.php', formValues, function() {
					$('.contact form .msg_success').html('Your message has successfully been sent.').show();
					$('.contact form .submit').removeClass('submitting').addClass('btn_red').removeClass('btn_grey').find('a').html('Contact Me');
					$('.contact form input[type="text"], .contact form textarea').each(function() {
						$(this).val($(this).attr('rel')).addClass('field_empty');
					});
					setTimeout(function() {
						$('.contact form .msg_success').fadeOut(500);
						
						$('#contact').slideToggle(500);
					},3000);
				});
			}
			else
			{
				$(this).find('.msg_error').html(error).show();
			}
		}
		
		return false;
	});
	
	$('.contact form .submit').click(function() {
		$('.contact form').submit();
	});

});

// Slider Controls
function portfolioViewCarousel_initCallback (carousel) {
    $('#slider #slider-num a').bind('click', function() {
    	$(this).parent().find('a.active').removeClass('active');
    	$(this).addClass('active');
        carousel.scroll($.jcarousel.intval(($('#slider #slider-num a').index(this) + 1)));
        return false;
    });
};

function validateEmail(elementValue)
{  
   var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;  
   return emailPattern.test(elementValue);  
}  
