$(document).ready(function(){
	
	$('p#intro').each(function(){
		if($('object, embed',this).length > 0) return; 
		$(this).flash(
			{src:'/swf/theseriflightitalic.swf'},{version:8},
				function(htmlOptions) {
					htmlOptions.flashvars.txt = $(this).html().replace(/%/,'%25');
					htmlOptions.flashvars.css = "* { color:#ffffff;} a {color:#32ad60;text-decoration:none;} a:hover {text-decoration:underline;}";
					htmlOptions.flashvars.fitToArea = 'no';
					htmlOptions.flashvars.fontSize = 22;
					htmlOptions.wmode = 'transparent';
					htmlOptions.height = $(this).height();
					htmlOptions.width = '95%';
					$(this).empty().addClass('replaced').prepend($.fn.flash.transform(htmlOptions));
			}  
		); 
	});
	
	$('#about-featured a, .about #pictures a').each(function(){
		$(this).hover(function(){ $(this).fadeTo(200, .5); }, function(){ $(this).fadeTo(200, 1); });
	});
	
	var cleanForPHP = function(string) {
		return escape(string.toLowerCase()
				.replace(/\?/g,'%3F')
				.replace(/%/g,'%25')
				.replace(/%/g,'%25')
				.replace(/\//g,'[-SLASH-]')
				.replace(/\+/g,'[-PLUS-]')
				.replace(/\'/g,'[-PLIC-]')
				);
	}
	
	$('.about p#big').each(function(){$(this).addClass('enhanced').css('height', $(this).height() + 8).addClass('bgimage').css({'background-image': 'url(/img/text/project/' + cleanForPHP($(this).text()) + ')'});});
	$('#projects h2').each(function(){$(this).addClass('enhanced').css('height', $(this).height() + 8).addClass('bgimage').css({'background-image': 'url(/img/text/project/' + cleanForPHP($(this).text()) + ')'});});
	$('#posts h2 a').each(function(){$(this).addClass('enhanced').css('height', $(this).height()).addClass('bgimage').css({'background-image': 'url(/img/text/blog-list/' + cleanForPHP($(this).text()) + ')'});});
	$('.post h2').each(function(){$(this).addClass('enhanced').css('height', $(this).height() + 8).addClass('bgimage').css({'background-image': 'url(/img/text/blog-title/' + cleanForPHP($(this).text()) + ')'});});
	
	$('#projects .image').each(function(){
		$img = $('img', this);
		$(this).data('originalHeight', $img.height());
		$img.hide();
		$(this).append('<div class="img-nav" style="background-image:url(' + $img.attr('src') +  ');background-position:0px 50%;">&nbsp;</div>');
	});
	 $('.img-nav').each(function(){
		 $(this).attr('title', 'Click to expand, double-click to open in a new window')
		 .mousemove(function(e) {
			 var position = $(this).position();
			 var offset = $(this).offset();
			 var x = e.pageX - (offset.left);
			 var y = e.pageY - (offset.top);
			 var h = $(this).height();
			 var relY = Math.round(y/h * 100);
			 $(this).css('background-position', '0px ' + relY + '%');
		 }).mouseout(function() {
			 $(this).animate({backgroundPosition: '(0px 50%)'});
		 }).toggle(function(){
			 if(pageTracker) {
				 pageTracker._trackEvent('Work','Show Project', $(this).parent().parent().attr('id'));
			 }
			 $(this).addClass('expanded').animate({height: $(this).parent().data('originalHeight')});
			 $('html, body').stop().animate( { scrollTop: $(this).offset().top - 30 },{duration: 1000 } );
		 },function(){
			 $(this).removeClass('expanded').animate({height: 200});
			 $('html, body').stop().animate( { scrollTop: $(this).offset().top - 60 },{duration: 1000 } );
		 }).dblclick(function(){
			 window.open($('p.view a', $(this).parent().parent()).attr('href'));
		 });
	 });
	
	$('.contact form').each(function(){
		$('label', this).hide();
		$('input, textarea', this).each(function(){
			if(($(this).val() == '' || $(this).val() == $(this).prev().text()) && !$(this).hasClass('hidden')) {
				$(this).addClass('default').val($(this).prev().text())
					.bind('focus', function(){ if($(this).val() == '' || $(this).val() == $(this).prev().text()) $(this).removeClass('default').val(''); })
					.bind('blur', function(){ if($(this).val() == '' || $(this).val() == $(this).prev().text()) $(this).addClass('default').val($(this).prev().text()); });
			}
		});
		$('button', this).wrap('<div class="submit"></div>');
		$('div.input', this).append('<span>&nbsp;</span>');
		$('div.submit', this)
			.before('<div style="display:none" class="result"></div>');
		//	.append('<span style="display:none">Sending...</span>')
		$(this).submit(function(){
				var ok = true;
				$form = $(this);
				$('input, textarea', this).each(function(){
					if($(this).hasClass('hidden')) return;
					if($(this).val() == $(this).prev().text()) {
						$(this).parent().addClass('invalid');
						ok = false;
					} else {
						$(this).parent().removeClass('invalid');
					}
				});
				if(!ok) return false;
				
				$form.fadeTo(200, .5);
				//$('div.submit span', $form).fadeIn(200);
				$('div.result', $form).fadeOut(200);
				$.post($(this).attr('action') + '.js', $(this).serialize(), function(data){
					var message = '';
					if(data && data.success) {
						$('input, textarea', $form).each(function(){ if(!$(this).hasClass('hidden')) $(this).addClass('default').val($(this).prev().text()) });
						$('body').animate({marginTop: 0}, {duration: 3000, complete: function(){  $('div.result').fadeOut(500); }});
						message = 'Your message has been sent, thank you.';
					} else {
						if(data.validation) {
							$.each(data.validation, function(i, index) {
								$('input[name*=' + i + ']').next().attr('title', this);
								$('input[name*=' + i + ']').parent().addClass('invalid');
							});
							message = 'There are problems in the form.'
						} else {
							message = 'An error happened while sending your message. Please try again.';	
						}
					}
					//$('div.submit span', $form).fadeOut(300);
					$('div.result', $form).html(message).fadeIn(300);
					$form.stop().fadeTo(300, 1);
				},'json');
				return false;
			});
	});
	
	$('.blog .related li a').click(function(){
		if(pageTracker) {
			pageTracker._trackEvent('Blog','Show Related Post', 'at ' + $('.post h2:first').text());
		}
		return true;
	});
	
	$('img[alt]').each(function(){ $(this).attr('title', $(this).attr('alt')); });
	$('a[title], em[title], strong[title], acronym[title], img[alt], .img-nav').tooltip({delay: 700, fadeIn: 250, fadeOut: false, showURL: false, track: true});
	/*
	$('a[href^=#]').click(function(){
		var hash = $(this).attr('href');
		console.log($($(this).attr('href'))[0].offsetTop);
		var pos = Math.min($('body').height(), $($(this).attr('href'))[0].offsetTop);
		var dur = Math.pow(Math.abs($(window).scrollTop() - pos), .8) + 200;
		$('html, body').stop().animate( { scrollTop: pos },{duration: 1000, complete: function(){ window.location.hash = hash.substring(1); } } );
		return false;
	});
	*/
});