/*
	Javascript specific to form

*/

$().ready(function() {

	//gallery stuff
	$(".project-group").hide();
	$(".project-group:eq(0)").show();

	//build gallery nav
	var numPages = $(".project-group:eq(0)").length;
	
	for(var i=1; i < numPages+1; i++ ){
		$("#gallery-nav").append('<a href="#project-group'+i+'"><img src="_assets/_img/nav_btn.gif" alt="" /></a>');
	}
	
	//ajax form submit

	$("div#form-error").hide();
	$("div#form-message").hide();

	var options = { 
        target:        '#form-success',   // target element(s) to be updated with server response 
        beforeSubmit:  showRequest,  // pre-submit callback 
        success:       showResponse,  // post-submit callback 
 		resetForm: true
        // other available options: 
        //url:       url         // override for form's 'action' attribute 
        //type:      type        // 'get' or 'post', override for form's 'method' attribute 
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
        //clearForm: true        // clear all form fields after successful submit 
        //resetForm: true        // reset the form after successful submit 
 
        // $.ajax options can be used here too, for example: 
        //timeout:   3000 
    }; 
 


	// pre-submit callback 
	function showRequest(formData, jqForm, options) { 
	    // formData is an array; here we use $.param to convert it to a string to display it 
	    // but the form plugin does this for you automatically when it submits the data 
	    var queryString = $.param(formData); 

	    // jqForm is a jQuery object encapsulating the form element.  To access the 
	    // DOM element for the form do this: 
	    // var formElement = jqForm[0]; 
		$("div#form-error").hide();
		$("div#form-success").show().html('<p>Sending...</p>');
		
	    //alert('About to submit: \n\n' + queryString); 

	    // here we could return false to prevent the form from being submitted; 
	    // returning anything other than false will allow the form submit to continue 
	    return true; 
	} 

	// post-submit callback 
	function showResponse(responseText, statusText)  { 
	    // for normal html responses, the first argument to the success callback 
	    // is the XMLHttpRequest object's responseText property 

	    // if the ajaxSubmit method was passed an Options Object with the dataType 
	    // property set to 'xml' then the first argument to the success callback 
	    // is the XMLHttpRequest object's responseXML property 

	    // if the ajaxSubmit method was passed an Options Object with the dataType 
	    // property set to 'json' then the first argument to the success callback 
	    // is the json data object returned by the server 

	    /*alert('status: ' + statusText + '\n\nresponseText: \n' + responseText + 
	        '\n\nThe output div should have already been updated with the responseText.'); 
	*/
			
			$("div#form-success").fadeOut("fast").fadeIn("fast").fadeTo(3000, 1.0).fadeOut("slow");
	
	}

	
	// validate the comment form when it is submitted

	//default states for form fields
	$("#message-form #name").blur(function(){
		if($(this).attr("value") == ""){
			$(this).attr("value","Name");
		}
	});
	
	$("#message-form #name").focus(function(){
		if($(this).attr("value") == "Name"){
			$(this).attr("value","");
		}
	});
	
	$("#message-form #email").blur(function(){
		if($(this).attr("value") == ""){
			$(this).attr("value","Email");
		}
	});
	
	$("#message-form #email").focus(function(){
		if($(this).attr("value") == "Email"){
			$(this).attr("value","");
		}
	});
	
	$("#message-form #message").blur(function(){
		if($(this).attr("value") == ""){
			$(this).attr("value","Message");
		}
	});
	
	$("#message-form #message").focus(function(){
		if($(this).attr("value") == "Message"){
			$(this).attr("value","");
		}
	});

	jQuery.validator.addMethod("nameRequired", function(value, element) {
		return value != element.defaultValue;
	}, "");

	jQuery.validator.addMethod("messageRequired", function(value, element) {
		return value != element.defaultValue;
	}, "");

	jQuery.validator.messages.required = ""; 
	//$("#message-form").validate();
	$("#message-form").validate({
			rules: {
				name: "nameRequired",
				message: "messageRequired",
				email: {
					required: true,
					email: true
				}
			},
			invalidHandler: function(e, validator) {
				var errors = validator.numberOfInvalids();
				if (errors) {
					var message = errors == 1
					? 'You missed 1 field. It has been highlighted above'
					: 'You missed ' + errors + ' fields. They have been highlighted above';
					$("div#form-error").html('<p>'+message+'</p>');
					$("div#form-message").hide();
					$("div#form-error").fadeIn("fast");
				}
			},
			onkeyup: false,
			submitHandler: function(form) {
				$("div#form-error").fadeOut("fast");
				$(form).ajaxSubmit(options); 
				
				
				//alert("submit! use link below to go to the other step");
			},
			messages: {
				name: "",
				message: "",
				email: ""
				},
			debug: true
		});
	
});

/* javascript specific to  slider */

$(document).ready(function(){
	var width = 940; // width of the slide
	var current = 1; // active slide by default
	var mathcurrent = current-1;
	$(".pslide-nav1").addClass("selected");
	$(".pslide-previous").addClass("disabled");
	
	// resets the selected state on all slides
	function resetnav() {
	  	$(".pslide-nav1").removeClass("selected");
		$(".pslide-nav2").removeClass("selected");
		$(".pslide-nav3").removeClass("selected");
		$(".pslide-nav4").removeClass("selected");
		};
		
	//selects slide based on current
	function list() {
		mathcurrent = current-1;
		var slide = mathcurrent*-width;
		$("#pslide").animate({
			marginLeft:slide
			} , 500 )
		};
	
	$(".pslide-nav1").click(function(event){
		  event.preventDefault();
		  current = 1;
		  resetnav();
		  $(".pslide-nav1").addClass("selected");
		  $(".pslide-next").removeClass("disabled");
		  $(".pslide-previous").addClass("disabled");
	      list();
	    });
	
	$(".pslide-nav2").click(function(event){
		  event.preventDefault();
		  current = 2;
		  resetnav();
		  $(".pslide-nav2").addClass("selected");
		  $(".pslide-next").removeClass("disabled");
		  $(".pslide-previous").removeClass("disabled");
	      list();
	    });
	
	$(".pslide-nav3").click(function(event){
		  event.preventDefault(); 
		  current = 3;
		  resetnav();
		  $(".pslide-nav3").addClass("selected");
		  $(".pslide-next").removeClass("disabled");
		  $(".pslide-previous").removeClass("disabled");
		  list();
	    });
	
	$(".pslide-nav4").click(function(event){
		  event.preventDefault(); 
		  current = 4;
		  resetnav();
		  $(".pslide-nav4").addClass("selected");
		  $(".pslide-next").addClass("disabled");
		  $(".pslide-previous").removeClass("disabled");
		  list();
	    });
	
	$(".pslide-previous").click(function(event){
		event.preventDefault(); 
		if(current==2) {
			resetnav();
			$(".pslide-nav1").addClass("selected");
			$(".pslide-previous").addClass("disabled");
			current = 1;
			list();
		 } else if(current==3) {
			resetnav();
			$(".pslide-nav2").addClass("selected");
			$(".pslide-next").removeClass("disabled");
			current = 2;
			list();
		} else if(current==4) {
			resetnav();
			$(".pslide-nav3").addClass("selected");
			$(".pslide-next").removeClass("disabled");
			current = 3;
			list();
		}
		});
		
	$(".pslide-next").click(function(event){
		event.preventDefault(); 
		if(current==1) {
			resetnav();
			$(".pslide-nav2").addClass("selected");
			$(".pslide-previous").removeClass("disabled");
			current = 2;
			list();
		 } else if(current==2) {
			resetnav();
			$(".pslide-nav3").addClass("selected");
			current = 3;
			list();
		} else if(current==3) {
			resetnav();
			$(".pslide-nav4").addClass("selected");
			$(".pslide-next").addClass("disabled");
			current = 4;
			list();
		 }
		});
		
	$("a.img").fancybox();
});

//Cufon
Cufon.replace('h1', { fontFamily: 'Akagi Bold'});
Cufon.replace('h3', { fontFamily: 'Akagi Black'});
Cufon.replace('h4', { fontFamily: 'Akagi Black'});



/*******
	***	Anchor Slider by Cedric Dugas   ***
	*** Http://www.position-absolute.com ***
*****/
		


$(document).ready(function() {
	$("a.anchorLink").anchorAnimate()
});

jQuery.fn.anchorAnimate = function(settings) {

 	settings = jQuery.extend({
		speed : 1100
	}, settings);	
	
	return this.each(function(){
		var caller = this
		$(caller).click(function (event) {	
			event.preventDefault()
			var locationHref = window.location.href
			var elementClick = $(caller).attr("href")
			
			var destination = $(elementClick).offset().top;
			$("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination}, settings.speed, function() {
				window.location.hash = elementClick
			});
		  	return false;
		})
	})
}