
jQuery( function($) {
	/* initialize forms */
	initializeFormDecorations($);

	$("#form-contact input.inputsubmit").click( function(e) {
		if (validateEmail($(this.form.email).val())) {
			$.sendMail(this, this.form);
		} else {
			alert("Your email address is malformed. Please try again.");
		}
	});

 	var projectsLiPadding = "10px";
	$("#projects li").css("padding-right", projectsLiPadding).css(
			"padding-top", "0.5ex").css("padding-bottom", "0.5ex").hover(
			function() {
				$(this).stop().animate( {
					paddingLeft :projectsLiPadding,
					paddingRight :"0",
					paddingBottom :"2ex",
					paddingTop :"2ex"
				});
			}, function() {
				$(this).animate( {
					paddingLeft :"0",
					paddingRight :projectsLiPadding,
					paddingBottom :"0.5ex",
					paddingTop :"0.5ex"
				});
		});
	
	$("#content-about .profile").hover( function() {
		$(this).addClass("hover");
	}, function() {
		$(this).removeClass("hover");
	});
	
	
});

function joinArray(array, j) {
	var ret = null;
	for ( var i = 0; i < array.length; i++) {
		ret = (ret == null) ? array[i] : j + array[i];
	}
	return ret;
}

function initializeFormDecorations($) {
	$("input,textarea").each( function() {
		$(this).focus( function() {
			$(this).addClass("focus");
		}).blur( function() {
			$(this).removeClass("focus");
		});
	});
}

function validateEmail(elementValue) {
	var emailPattern = /^[^@]+@[^@]+$/;
	return emailPattern.test(elementValue);
}

/**
 * return string with <a> tags
 * 
 * @param s
 * @return
 */
function linkUrls(s) {
	var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi;
	return s.replace(exp, "<a target=\"_blank\" href=\"$&\">$&</a>");
}

function linkTwitterUsers(s) {
	var exp = /@([A-Za-z0-9_]+)/gi;
	return s.replace(exp,
			"@<a target=\"_blank\" href=\"http://twitter.com/$1\">$1</a>");
}
