jQuery(function( $ ){

	$.scrollTo.defaults.axis = 'xy'; 			
	$.scrollTo( 0 );


/*
	$('#wdwbody').bind('DOMMouseScroll', function(e){
		$('#wdwbody').stop();
	});

	$('#wdwbody').bind('mousewheel', function(e){
		$('#wdwbody').stop();
	});

*/

	$.easing.easeOutQuad = function (x, t, b, c, d) {
		return -c *(t/=d)*(t-2) + b;
	};
	$.easing.easeInOutQuad = function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t + b;
		return -c/2 * ((--t)*(t-2) - 1) + b;
	};
	$.easing.easeOutCubic = function (x, t, b, c, d) {
		return c*((t=t/d-1)*t*t + 1) + b;
	};
	$.easing.veaseInOutCubic = function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t + b;
		return c/2*((t-=2)*t*t + 2) + b;
	};
	$.easing.easeOutQuart = function (x, t, b, c, d) {
		return -c * ((t=t/d-1)*t*t*t - 1) + b;
	};
	$.easing.veaseInOutQuart = function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
		return -c/2 * ((t-=2)*t*t*t - 2) + b;
	};
	$.easing.easeOutQuint = function (x, t, b, c, d) {
		return c*((t=t/d-1)*t*t*t*t + 1) + b;
	};

	$.easing.easeInOutQuint = function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
		return c/2*((t-=2)*t*t*t*t + 2) + b;
	};
	$.easing.easeOutBounce = function (x, t, b, c, d) {
		if ((t/=d) < (1/2.75)) {
			return c*(7.5625*t*t) + b;
		} else if (t < (2/2.75)) {
			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
		} else if (t < (2.5/2.75)) {
			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
		} else {
			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
		}
	};






	//SLIDE TRIGGERS


	$(".goto_start").click(function(){
		$('#wdwbody').stop().scrollTo( $('#start'), 2000, {over:{top:-0.1, left:-0.1}, easing:'veaseInOutCubic'} );
	});

	$(".goto_offer").click(function(){
		$('#wdwbody').stop().scrollTo( $('#offer'), 2000, {over:{top:-0.1, left:-0.2}, easing:'veaseInOutCubic', onAfter:function(){
			//$('#background').stop().animate({"left": "-10px"},{ queue:false, duration:2500 }).animate({"top": "-10px"},2500);		
		}} );
	});

	$(".goto_about").click(function(){
		$('#wdwbody').stop().scrollTo( $('#about'), 2000, {over:{top:-0.1, left:-0.2}, easing:'veaseInOutCubic', onAfter:function(){
			//$('#background').stop().animate({"left": "-8px"},{ queue:false, duration:2500 }).animate({"top": "15px"},2500);		
		}} );
	});

	$(".goto_portfolio").click(function(){
		$('#wdwbody').stop().scrollTo( $('#portfolio'), 2000, {over:{top:-0.05, left:-0.2}, easing:'veaseInOutCubic', onAfter:function(){
			//$('#background').stop().animate({"left": "20px"},{ queue:false, duration:2500 }).animate({"top": "-10px"},2500);		
		}} );
	});

	$(".goto_contact").click(function(){
		$('#wdwbody').stop().scrollTo( $('#contact'), 2000, {over:{top:-0.1, left:-0.2}, easing:'veaseInOutCubic', onAfter:function(){
			//$('#background').stop().animate({"left": "-5px"},{ queue:false, duration:2500 }).animate({"top": "20px"},2500);		
		}} );
	});













	//OFFER TRIGGERS

	$('#offer_list li a').click(function(){

		//var b = $(this).parents("li").find("a").text();

		var target = $(this).attr('rel');

		$('#offer_list li a.selected').removeClass('selected');
		$(this).addClass('selected');

		$('#offer_text').stop().scrollTo( $('#'+target), 500, {easing:'veaseInOutCubic'} );

	});





	//ABOUT TRIGGERS

	$('#about_list li a').click(function(){

		var target = $(this).attr('rel');

		$('#about_list li a.selected').removeClass('selected');
		$(this).addClass('selected');

		$('#about_text').stop().scrollTo( $('#'+target), 500, {easing:'veaseInOutCubic'} );

	});






	//PORTFOLIO

	var portfolio_previews_rows = 2;
	var portfolio_previews_columns = 3;
	var portfolio_previews = $('#portfolio_list').children().size(); //substract 1 because numbers start with 0 

	function scale_portfolio_area(){
		if($(window).height()>820 && !navigator.userAgent.match("Opera")){
			$('#portfolio_container').addClass('high');
			portfolio_previews_rows = 3;
			portfolio_previews_columns = 3;
		} else {
			$('#portfolio_container').removeClass('high');
			portfolio_previews_rows = 2;
			portfolio_previews_columns = 3;
		}

		$('#portfolio_container').stop().scrollTo( $('#portfolio_list'), 1 );
	}

	scale_portfolio_area();


	/* turn off live auto resize
	$(window).bind('resize', function() {
		scale_portfolio_area();
	});
	*/



/*
	reinitialiseScrollPane = function(){

		if(jQuery.browser.msie) {
			$('#portfolio_preview .content').css('overflow','auto');
		} else {
			$('#portfolio_preview .content').jScrollPane({autoReinitialise: true});
		}
	}
*/	

	last = null;
	
	$('.portfolio_link').click(function(){

		if( last != this ){ // let's avoid needless requests

			var url = $(this).attr('href') + '&a=1';

			var api = $('#portfolio_preview .content').jScrollPane({autoReinitialise: true, autoReinitialiseDelay: 1000, maintainPosition: true}).data('jsp');
			api.getContentPane().html( '<b class="loading">loading</b>' ).load(url,function(){api.reinitialise();});

			//$('#portfolio_preview .content').html( '<b class="loading">loading</b>' ).load(url, reinitialiseScrollPane);

		}
		last = this;

		$('#portfolio_container').stop().scrollTo( $('#portfolio_preview'), 500, {easing:'veaseInOutCubic'} );
		$('#portfolio_navi').hide();

		return false;

	});



	$('#portfolio_preview p.close a').click(function(){

		$('#portfolio_container').stop().scrollTo( $('#portfolio_list'), 500, {easing:'veaseInOutCubic'} );
		$('#portfolio_navi').show();

	});






	$('#portfolio_navi_next a').click(function(){
		
		var active_row = $('#portfolio_list').attr('rel');
		active_row = active_row*1 + portfolio_previews_columns;

		var last_possible_element_on_slide = active_row + (portfolio_previews_rows*portfolio_previews_columns);

		$('#portfolio_list').stop().scrollTo( $('#portfolio_preview_'+active_row), 500, {easing:'veaseInOutCubic'} );

		$('#portfolio_list').attr('rel',active_row);

		if(portfolio_previews <= last_possible_element_on_slide){
			$('#portfolio_navi_next').fadeOut(300);
		}

		if(active_row>0) {
			$('#portfolio_navi_prev').fadeIn(300);
		}

	});



	$('#portfolio_navi_prev a').click(function(){

		var active_row = $('#portfolio_list').attr('rel');
		active_row = active_row*1 - portfolio_previews_columns;

		var last_possible_element_on_slide = active_row + (portfolio_previews_rows*portfolio_previews_columns);

		if(active_row<0) active_row=0;

		$('#portfolio_list').stop().scrollTo( $('#portfolio_preview_'+active_row), 500, {easing:'veaseInOutCubic'} );

		$('#portfolio_list').attr('rel',active_row);

		if(portfolio_previews > last_possible_element_on_slide){
			$('#portfolio_navi_next').fadeIn(300);
		}

		if(active_row==0) {
			$('#portfolio_navi_prev').fadeOut(300);
		}

	});






	//START THE SHOW

	(portfolio_previews > (portfolio_previews_rows*portfolio_previews_columns)) ? $('#portfolio_navi_next').show() :'';//show portfolio navi
	$('#portfolio_container').stop().scrollTo( $('#portfolio_list'), 1);//hide portfolio preview
	$('#wdwbody').stop().scrollTo( $('#start'), 2000, { over:{top:-0.1, left:-0.1}, easing:'veaseInOutCubic' } );//slide to default section
	//$(".goto_start").click();
	$('#offer_list li a:first').click();//activate offer etc.
	$('#about_list li a:first').click();





});


$(document).ready(function(){


	//CONTACT FORM

	$('#contactform_error').hide();

	$('input, textarea').focus(function(){
		$(this).addClass('focus');
	});

	$('input, textarea').blur(function(){
		$(this).removeClass('focus');
	});

	$("#contactform_button").click(function() {

		$("#contactform_button").blur();//remove ugly dotted frame

		$('#contactform_error').slideUp(300); // .fadeOut(300);

		var hasError = false;
		var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
		var securityReg = /^([\d-]{3})?$/;

		var name = $("#contactform_name").val();
		if (name == "") {
			$("#contactform_name").addClass('error');
			hasError = true;
		} else {
			$("#contactform_name").removeClass('error');
		}

		var email = $("#contactform_email").val();
		if(email == "" || !emailReg.test(email)) {
			$("#contactform_email").addClass('error');
			hasError = true;
		} else {
			$("#contactform_email").removeClass('error');
		}

		var phone = $("#contactform_phone").val();

		var message = $("#contactform_message").val();
		if (message == "") {
			$("#contactform_message").addClass('error');
			hasError = true;
		} else {
			$("#contactform_message").removeClass('error');
		}
		
		var security = $("#contactform_security").val();
		if (security == "" || !securityReg.test(security)) {
			$("#contactform_security").addClass('error');
			hasError = true;
		} else {
			$("#contactform_security").removeClass('error');
		}

		var as = $("#contactform_as").val();

		if(hasError == false) {

			$("#contactform_button").attr('disabled','disabled');
			$("#contactform_button").html('sending');
			$("#contactform_button").addClass('sending');
  
			var str = $("#contact_form").serialize();

			var destination = $("#contact_form").attr("action");
   
			$.ajax({
				type: "POST",
				url: destination,
				data: str,
				success: function(msg){
					
					$("#contact_form").ajaxComplete(function(event, request, settings){
						if(msg == 'OK') {
							$('#contact_form').html("<div id='contactform_success'></div>");
							$('#contactform_success').html("<p><b>Your message has been sent. Thank you!</b><br /><br />We will contact you shortly if your message requires a response.</p>").slideDown(300); //.fadeIn(1500);
						} else {
							$('#contactform_error').html('<p>'+msg+'</p>');
							$("#contactform_button").html("send");
							$("#contactform_button").removeClass('sending');
							$('#contactform_error').slideDown(300); // .fadeIn(1500);
							$("#contactform_button").removeAttr("disabled");
						}
					});

				}

			});


		}

		return false;

	});


});



// OTHER STUFF


var	shipspace = 0; 

function animate_menu(menu,y,x) {

	shipspace+=.01	; 

	if(shipspace>2*Math.PI) {shipspace-=2*Math.PI;}

	sy=Math.floor(Math.sin(shipspace)*y+y);
	sx=Math.floor(Math.cos(shipspace)*x+x);

	document.getElementById(menu).style.margin=-sy+'px 0 0 '+sx+'px';

}


