/* * * *

	Object CSS Background Fader

* * * * */
(function($){
	$.fn.extend({   
		objectBGFade: function(options) {  
			var defaults = {  
				animateSpeedOn: 300,
				animateSpeedOff: 250,
				bubbleTimeOut: 200
			};
			var options = $.extend(defaults, options);  
			return this.each(function() {  
				$(this).css({
					position:"relative",
					backgroundPosition:"0px 0px",
					cursor:"pointer"
				});

				var o = options;  
				var obj = $(this);
				var items = $("li", obj);
				var spanObj = document.createElement('span');
				var myBG = $(this).css("background-image");

				spanObj.className = "background_change";

				$(this).append(spanObj);

				var bgImg = $(this).css("background-image");
				var spanWidth =  $(this).css("width");
				var spanHeight =  $(this).css("height");

				$(this).find(".background_change").css({
					backgroundImage:bgImg,
					backgroundPosition:"bottom right",
					position:"absolute",
					display:"block",
					cursor:"pointer",
					top:"0px",
					left:"0px",
					width:spanWidth,
					height:spanHeight,
					opacity:0,
					visibility:"visible"
				});
				var show_bubble = 0;
				var active = false;				
				var scrollbot = false;
				$(this).find("span").hover(function () {
					if(show_bubble != 0) {
						clearTimeout(show_bubble);
					}
					var this_here = this;
					show_bubble = setTimeout(function() {
						active = true;
						$(this_here).stop();
						$(this_here).animate({opacity: 1}, o.animateSpeedOn);
						$(".tooltip-wrapper").css('display', 'none');
						if($(window).scrollTop() >= '390'){
							scrollbot = true;
							$(this_here).parent().find(".tooltip-wrapper .arrow").css('display', 'none');
							$(this_here).parent().find(".tooltip-wrapper .arrow_alt").css('display', 'block');
							$(this_here).parent().find(".tooltip-wrapper").css({opacity: 0, bottom: -200,display: 'block'}).animate({bottom: '-=10px',opacity: 1}, o.animateSpeedOn, 'swing');
						}else{
							scrollbot = false;
							$(this_here).parent().find(".tooltip-wrapper .arrow").css('display', 'block');
							$(this_here).parent().find(".tooltip-wrapper .arrow_alt").css('display', 'none');
							$(this_here).parent().find(".tooltip-wrapper").css({opacity: 0, bottom: 72,display: 'block'}).animate({bottom: '+=10px',opacity: 1}, o.animateSpeedOn, 'swing');
						}
						if($(document).width() < 1170) {
							$("li.start .tooltip-wrapper").css("left","0");
							$("li.start .tooltip-wrapper .arrow").css("margin","0 0 0 42px");
							$("li.start .tooltip-wrapper .arrow_alt").css("margin","0 0 0 42px");
							$("li.deliver .tooltip-wrapper").css("left","-180px");
							$("li.deliver .tooltip-wrapper .arrow").css("margin","0 0 0 224px");
							$("li.deliver .tooltip-wrapper .arrow_alt").css("margin","0 0 0 224px");
						}else{
							$("li.start .tooltip-wrapper").css("left","-103px");
							$("li.start .tooltip-wrapper .arrow").css("margin","0 auto");
							$("li.start .tooltip-wrapper .arrow_alt").css("margin","0 auto");
							$("li.deliver .tooltip-wrapper").css("left","-103px");
							$("li.deliver .tooltip-wrapper .arrow").css("margin","0 auto");
							$("li.deliver .tooltip-wrapper .arrow_alt").css("margin","0 auto");
						}
					}, options.bubbleTimeOut);
				},
				function () {
					if(active == true){
						$(this).animate({opacity: 0},o.animateSpeedOff);
						if(scrollbot){
							$(this).parent().find(".tooltip-wrapper").css({opacity: 1, bottom: -210,display: 'block'}).animate({bottom: '+=10px',opacity: 0}, o.animateSpeedOn, 'swing', function () {
								$(this).parent().find(".tooltip-wrapper").css('display', 'none');
							});
						}else{
							$(this).parent().find(".tooltip-wrapper").css({opacity: 1, bottom: 82,display: 'block'}).animate({bottom: '-=10px',opacity: 0}, o.animateSpeedOn, 'swing', function () {
								$(this).parent().find(".tooltip-wrapper").css('display', 'none');
							});					
						}
					}
					active = false;
					clearTimeout(show_bubble);
				});
			});  
		}  
	});
})(jQuery);

/* * * *

	Type Selector
	


* * * * */
$(document).ready(function(){
	$("#"+$(this+':checked').val()).addClass('selected');
	$(".project-type-select").click(function(){
		if($(this).hasClass('selected')){
		}else{
			$(".project-type-select").removeClass('selected');
			$(this).addClass('selected');
			$("#projecttype_"+this.id).trigger("click");
		}
	});
});

/* * * *

	Rollover for Process


* * * * */

var fade_time = 650;
var hover_timeout = 0;
function rollover_loop (){
	$(".rollover .dark").animate({opacity: 1}, fade_time, function() {
		$(".rollover .dark").animate({opacity: 0}, fade_time, function() {rollover_loop();});
	});
}
function rollover_load (){
	$(".rollover").css({opacity:0, visibility:"visible"});
	$(".rollover .dark").css({opacity:0, visibility:"visible"});
	$(".rollover").animate({opacity:1}, fade_time);
	rollover_loop();
}
$(document).ready(function(){
	rollover_timeout = setTimeout(rollover_load, 1000)
	
	$("ul.process li").hover(function () {
		hover_timeout = setTimeout(function() {
			window.clearTimeout(rollover_timeout);
			$(".rollover .dark").stop();
			$(".rollover").animate({opacity: 0}, fade_time);
		}, 200);
	},function(){window.clearTimeout(hover_timeout);});
});

/* * * *

	Image Preloader	

* * * * */

(function($) {
	var cache = [];
	$.preLoadImages = function() {
		var args_len = arguments.length;
		for(var i = args_len; i--;) {
			var cacheImage = document.createElement('img');
			cacheImage.src = arguments[i];
			cache.push(cacheImage);
		}
	}
})(jQuery);

jQuery.preLoadImages('imgs/tooltip-bg.png', 'imgs/tooltip-footer-bg.png', 'imgs/tooltip-arrow.png', 'imgs/tooltip-arrow_alt.png');

/* * * *

	Functions

* * * * */

$(function() {
	Cufon.replace('.home-header p', {textShadow: '2px 2px #0d1015', hover: true});

	$('ul.process li').objectBGFade();
	$('.twitter-box').tweet();

	$('a[href*=#]').click(function(e) {
		e.preventDefault();
		var url = this.href;
		var url_parts = url.split('#');
		var target = url_parts[1];
		var target_offset = $('#' + target).offset();
		var target_top = target_offset.top;

		$('html:not(:animated), body:not(:animated)').animate({scrollTop: target_top}, 250, 'swing', function() {window.location.href = url;});
		return false;
	});

	$('.submit').click(function() {
		var inputs = $('form').serialize();
		$.ajax ({
			type: 'POST',
			url: 'handlers/contact.php',
			data: inputs,
			success: function(response) {
				var data = response.split('|');
				if(data[0] == 1) {
					$('#success-container').fadeIn('1000');
					$('input, textarea').val('');
				} else {
					$('.contact-status').html('All fields required').slideDown(500);
					return false;
				}
			}
		});
	});
});
