// JavaScript Document
jQuery(document).ready(function($) {
	
	//IMAGE EXPAND
	/*
	$(".post-preview").hover(
		function() {
			$("div.post-image", this).animate(
				{"height":200+"px"},
				{queue:false, duration:200}
			)
		},
		function() {
			$("div.post-image", this).animate(
				{"height":100+"px"},
				{queue:false, duration:200}
			)
		}
	);
		
	$(".post-preview").hover(
		function() {
			$("img", this).animate(
				{"margin-top":-50+"px"},
				{queue:false, duration:200}
			)
		},
		function() {
			$("img", this).animate(
				{"margin-top":-100+"px"},
				{queue:false, duration:200}
			)
		}
	);
	*/
	
	//FOOTER HOVER
	$("footer li").hover(
		function() {
			$(this).animate(
				{"padding-left":10+"px"},
				{queue:false, duration:200}
			)
		},
		function() {
			$(this).animate(
				{"padding-left":0+"px"},
				{queue:false, duration:200}
			)
		}
	);
	
	//SUBMIT BUTTON
	$("#submit").hover(
		function() {
			$(this).animate(
				{"backgroundColor":"#fff", "border-color":"#711"},
				{queue:false, duration:800}
			)
		},
		function() {
			$(this).animate(
				{"backgroundColor":"#eee", "border-color":"#888"},
				{queue:false, duration:800}
			)
		}
	);

	/*
	 * In-Field Label jQuery Plugin
	 * http://fuelyourcoding.com/scripts/infield.html
	 *
	 * Copyright (c) 2009 Doug Neiner
	 * Dual licensed under the MIT and GPL licenses.
	 * Uses the same license as jQuery, see:
	 * http://docs.jquery.com/License
	 *
	 * @version 0.1
	 */
	(function($){
		
		$.InFieldLabels = function(label,field, options){
			// To avoid scope issues, use 'base' instead of 'this'
			// to reference this class from internal events and functions.
			var base = this;
			
			// Access to jQuery and DOM versions of each element
			base.$label = $(label);
			base.label = label;
	
			base.$field = $(field);
			base.field = field;
			
			base.$label.data("InFieldLabels", base);
			base.showing = true;
			
			base.init = function(){
				// Merge supplied options with default options
				base.options = $.extend({},$.InFieldLabels.defaultOptions, options);
	
				// Check if the field is already filled in
				if(base.$field.val() != ""){
					base.$label.hide();
					base.showing = false;
				};
				
				base.$field.focus(function(){
					base.fadeOnFocus();
				}).blur(function(){
					base.checkForEmpty(true);
				}).bind('keydown.infieldlabel',function(e){
					// Use of a namespace (.infieldlabel) allows us to
					// unbind just this method later
					base.hideOnChange(e);
				}).change(function(e){
					base.checkForEmpty();
				}).bind('onPropertyChange', function(){
					base.checkForEmpty();
				});
			};
	
			// If the label is currently showing
			// then fade it down to the amount
			// specified in the settings
			base.fadeOnFocus = function(){
				if(base.showing){
					base.setOpacity(base.options.fadeOpacity);
				};
			};
			
			base.setOpacity = function(opacity){
				base.$label.stop().animate({ opacity: opacity }, base.options.fadeDuration);
				base.showing = (opacity > 0.0);
			};
			
			// Checks for empty as a fail safe
			// set blur to true when passing from
			// the blur event
			base.checkForEmpty = function(blur){
				if(base.$field.val() == ""){
					base.prepForShow();
					base.setOpacity( blur ? 1.0 : base.options.fadeOpacity );
				} else {
					base.setOpacity(0.0);
				};
			};
			
			base.prepForShow = function(e){
				if(!base.showing) {
					// Prepare for a animate in...
					base.$label.css({opacity: 0.0}).show();
					
					// Reattach the keydown event
					base.$field.bind('keydown.infieldlabel',function(e){
						base.hideOnChange(e);
					});
				};
			};
	
			base.hideOnChange = function(e){
				if(
					(e.keyCode == 16) || // Skip Shift
					(e.keyCode == 9) // Skip Tab
				  ) return; 
				
				if(base.showing){
					base.$label.hide();
					base.showing = false;
				};
				
				// Remove keydown event to save on CPU processing
				base.$field.unbind('keydown.infieldlabel');
			};
		  
			// Run the initialization method
			base.init();
		};
		
		$.InFieldLabels.defaultOptions = {
			fadeOpacity: 0.5, // Once a field has focus, how transparent should the label be
			fadeDuration: 300 // How long should it take to animate from 1.0 opacity to the fadeOpacity
		};
		
	
		$.fn.inFieldLabels = function(options){
			return this.each(function(){
				// Find input or textarea based on for= attribute
				// The for attribute on the label must contain the ID
				// of the input or textarea element
				var for_attr = $(this).attr('for');
				if( !for_attr ) return; // Nothing to attach, since the for field wasn't used
				
				
				// Find the referenced input or textarea element
				var $field = $(
					"input#" + for_attr + "[type='text']," + 
					"input#" + for_attr + "[type='password']," + 
					"textarea#" + for_attr
					);
					
				if( $field.length == 0) return; // Again, nothing to attach
				
				// Only create object for input[text], input[password], or textarea
				(new $.InFieldLabels(this, $field[0], options));
			});
		};
		
	})(jQuery);
		$("label").inFieldLabels();
	
	//CONTACT FORM
	$('.error').hide();  
	$("input#submit").click(function() {  
		// validate and process form here  
		$('.error').hide();  
		var name = $("input#name").val();  
		if (name == "") {  
			$("label#name_error").show();  
			$("input#name").focus();  
			return false;  
		}  
		var email = $("input#email").val();  
		if (email == "") {  
			$("label#email_error").show();  
			$("input#email").focus();  
			return false;  
		}
		var phone = $("input#phone").val();
		var details = $("textarea#details").val();
		//ajax
		var dataString = 'name='+ name + '&email=' + email + '&phone=' + phone + '&details=' + details;
		//alert (dataString);return false;
		$.ajax({  
			type: "POST",  
			url: "http://portfolio.andrewmcconville.com/wp-content/themes/portfolio/js/bin/process.php",  
			data: dataString,  
			success: function() {  
				//alert("Hello");
				$('#contact-form').html("<div id='message'></div>");  
				$('#message').html("<h2>Success!</h2>")
				.append("<p>I will be in touch soon.</p>")  
				.hide()  
				.fadeIn(1500);
			}  
		});
		//alert("Hello");
		return false; 
	});
});
