$.ajaxSetup({ 
    error: function(xhr, status, err) { 
        if (xhr.status == 401) 
       		$("#contactformerror").text("An error has occurred, please try again later.");
    } 
}); 

$(function() {
	
	/*------------------------------------------------------
        $_ General UI
    --------------------------------------------------------*/

	$("#primary a, #intro a, #getdemo").click(function(){
		$.scrollTo( this.hash, 800);
		return false;
	});

	/*------------------------------------------------------
        $_ Tabs
    --------------------------------------------------------*/

	$("#skillsbreakdown").tabs({ selected: 0, fx: { opacity: 'toggle' } });
	$("#testimonials").tabs({ selected: 0, fx: { opacity: 'toggle' } });
	
	//--Indv. Work Photo Tabs
	$('.photopage').each(function(index) {
		var sel = '#individual'+index;
		$(this).cycle({
	    	fx:     	'fade', 
		    speed:   	300,
		    timeout: 	0,
			pager:  	sel+' .individualtabs',
			next:  		sel+' .next',
			prev:  		sel+' .prev'
		});
	});
		
	$('.individualtabs a').wrap('<li />');
	$('.individualtabs li:first-child').addClass("activeSlide");
		
	//--Work Tabs
	var activework = 0;
		totalwork = $("#work article").length -1;
		
	$("#work article").each(function(index){
		if(index != 0)
			$(this).css("left","1000px"); 
	})
	
	$("#previouspiece").click(function(){
			changePiece("prev");
			return false;
	});
	
	$("#nextpiece").click(function(){
			changePiece("next");
			return false;
	});
	
	$("#pieceselection a").click(function(){
		changePiece("spec",$("#pieceselection a").index(this));
		return false;
	});
	
	function changePiece(dir,objindex){
		$("#pieceselection li a.active").removeClass("active")
	
		var outtromodifier = "-";
		var intromodifier = "";
		outtromodifier = (dir == "prev")? "": "-";
		intromodifier = (dir == "prev")? "-": "";
		
		$("#work article:eq("+activework+")").animate({
    		opacity: 0.25,
    		left: outtromodifier+'1000'
  		}, 500 );
  		
  		if(dir=="spec") {
  			activework = objindex;
  		}
  			
  		if(dir == "prev") {
	  		if(activework != 0) {
				activework = activework -1;
			} else {
				activework = totalwork;
			}
		}
			
		if(dir == "next") {
			if(activework != totalwork) {
				activework = activework +1;
			} else {
				activework = 0;
			}
		}
  			
  		$("#work article:eq("+activework+")").css("left",intromodifier+"1000px");	
		$("#work article:eq("+activework+")").animate({	  			
			opacity: 1,
			left: intromodifier+'10px'
			}, 500, function(){
			
			$("#work article").each(function(index){
				if(index == activework) {
					$(this).css("left",intromodifier+"10px");
				} else {
					$(this).css("left","1000px");
				} 
			});
		});
						
		$("#pieceselection li a:eq("+activework+")").addClass("active");
	}
	
	/*------------------------------------------------------
        $_ Contact Form
    --------------------------------------------------------*/

	$("#contactform form").submit( function(){
			var validsubmission = true,
				emailfilter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
			
			if ( !emailfilter.test($("#contact-email").val()) && $("#contact-email").val() == ""  ) {
				validsubmission = false;
				$('[for=contact-email] .error').css("display","inline");
				$("#formcomplete").hide();
			} else {
				$('[for=contact-email] .error').hide();
			}
			
			if($("#contact-name").val() == "" ){
				validsubmission = false;
				$('[for=contact-name] .error').css("display","inline");
				$("#formcomplete").hide();
			} else {
				$('[for=contact-name] .error').hide();
			}
			
			if($("#contact-message").val() == "" ){
				validsubmission = false;
				$('[for=contact-message] .error').css("display","inline");
				$("#formcomplete").hide();
			} else {
				$('[for=contact-message] .error').hide();
			}
			
			if(validsubmission) {
			
				$.ajax({
					type: $(this).attr("method"),
					url: $(this).attr("action"),
					data: $(this).serialize(),
					success: function(){
        				$("#formcomplete").text("Thanks! Your message has been sent.");
        				$("#formcomplete").css({ display: "inline" });
        				$("#contact-name, #contact-email").val("");
        				$("#contact-message").text("");
        			}
				});
			
			}
		return false;
	});
			
});
