$(document).ready(function(){

	$("a.email").each(function(){ //Email address obfuscation
		e = this.rel.replace("/","@");
		this.href = "mailto:"+e;
		$(this).text(e);
	});

	$("a.external").click(function(){ //Open link in new window
		window.open(this.href);
		return false;
	});

	

	$(".rollover").hover( //Image rollovers
		function(){
			var src =$(this).attr('src');
			var m =src.replace(/([a-zA-Z\-]*?)(\-(over|down))(\.(png|jpg|gif))/gi, '$1-over$4');
			if(m==src) m =src.replace(/([a-zA-Z\-]*?)(\.(png|jpg|gif))/gi, '$1-over$2');
			$(this).attr('src', m);
	
		},
		function(){
			var src =$(this).attr('src');
			var m =src.replace(/([a-zA-Z\-]*?)(\-(over|down))(\.(png|jpg|gif))/gi, '$1$4');
			$(this).attr('src', m);
		}
	);
	
	$(".pushdown").mousedown( //Image Pushdown
		function(){
			var src =$(this).attr('src');
			var m =src.replace(/([a-zA-Z\-]*?)(\-(over|down))(\.(png|jpg|gif))/gi, '$1-down$4');
			$(this).attr('src', m);
		}
	);
	
	$('.pushdown').mouseup(
		function() {
			var src =$(this).attr('src');
			var m =src.replace(/([a-zA-Z\-]*?)(\-(over|down))(\.(png|jpg|gif))/gi, '$1$4');
			$(this).attr('src', m);
		
		}
	)
	
	$(".input-text").each ( //Define default text for each input element
		function() {
			this.rel=this.value;
		}
	);

	$(".input-text").focus(function() {
		if (this.value==this.rel) {
			this.value='';
		}
	});

	$(".input-text").blur(function() {
		if (this.value=='') {
			this.value=this.rel;
		}
	});
	
	/* Tooltip */
	$("#header *, #footer *").tooltip({ 
		track: true,
		delay: 0,
		showURL: false,
		opacity: 1,
		fade: 150,
		top: -15,
		left: 5
	});
	
	$("#portfolio dl dd:eq(0) a, #related dl dd:eq(0) a").tooltip({ 
		track: true,
		delay: 0,
		showURL: false,
		opacity: 1,
		fade: 150,
		top: -25,
		left: 5,
		extraClass: "portfolio"
	});
	
	/* Portfolio rollover */
	$("#portfolio dl, #related dl").hover(
		function(){
			$("span",this).fadeIn("fast");
		},
		function(){
			$("span",this).fadeOut("fast");
		}
	);
	
	/* Experience - smooth scrolling */
	$("#experience-top, #experience .divide, #persistent ul li ul").each(
		function() {
			$(this).localScroll();
		}
	);
	
	/* Kopek video */
	$("a.kopek").click(function() {
		$.fancybox({
			'padding'		: 0,
			'autoScale'		: false,
			'overlayOpacity': 0.8,
			'overlayColor'	: '#000',
			'transitionIn'	: 'fade',
			'transitionOut'	: 'fade',
			'speedIn'		: 600,
			'speedOut'		: 600,
			'width'			: 640,
			'height'		: 480,
			'href'			: this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
			'type'			: 'swf'
		});

		return false;
	});
	
	/* Contact form validation */
	$("#contact-form").submit(
		function() {
			var error=false;
			var response="There was a problem submitting the form:\n";
			
			var message=$("#message",this).val();
			var name=$("#name",this).val();
			var email=$("#email",this).val();
		
			if (!isString(message) || message=="Type your message") {
				error=true;
				response+="Please enter a message\n";
			}
			
			if (!isString(name) || name=="Your Name") {
				error=true;
				response+="Please enter your name\n";
			}
			
			if (!isEmail(email) || message=="Your Email") {
				error=true;
				response+="Please enter your email address\n";
			}
			
			if (error) {
				alert(response);
				return false;
			}
		}
	);
	
});

/* Data type validation */
function isString(str) {
	if (str.length!="") {
		return true;
	} else {
		return false;
	}
};

function isEmail(str) { //Email address
	var emailRegExp="^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
	var regex=new RegExp(emailRegExp);
	return regex.test(str);
};
