window.log = function() {
	log.history = log.history || [];
	log.history.push(arguments);
	if (this.console) {
		arguments.callee = arguments.callee.caller;
		var a = [].slice.call(arguments);
		(typeof console.log === "object" ? log.apply.call(console.log, console,
				a) : console.log.apply(console, a))
	}
};
(function(e) {
	function h() {
	}
	for ( var g = "assert,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,timeStamp,profile,profileEnd,time,timeEnd,trace,warn"
			.split(","), f; f = g.pop();) {
		e[f] = e[f] || h
	}
})((function() {
	try {
		console.log();
		return window.console
	} catch (a) {
		return window.console = {}
	}
})());
$(document).ready(function() {
	var c = document.createElement("input");
	if ("placeholder" in c) {
		return
	}
	var b = function(f) {
		return $(f).attr("realType") == "password"
	};
	var a = function(f) {
		return f.value == $(f).attr("placeholder")
	};
	var e = function(f, h) {
		if (f.value == "" || (h && a(f))) {
			if (b(f)) {
				try {
					f.setAttribute("type", "input")
				} catch (g) {
				}
			}
			f.value = $(f).attr("placeholder");
			$(f).addClass("placeholder")
		}
	};
	var d = function(f) {
		if (a(f) && $(f).hasClass("placeholder")) {
			if (b(f)) {
				try {
					f.setAttribute("type", "password");
					f.focus()
				} catch (g) {
				}
			}
			f.value = "";
			$(f).removeClass("placeholder")
		}
	};
	$(":text[placeholder],:password[placeholder]").each(function(f) {
		if ($(this).attr("type") == "password") {
			$(this).attr("realType", "password")
		}
		e(this, true);
		$(this).focus(function() {
			d(this)
		});
		$(this).blur(function() {
			e(this, false)
		})
	})
});
(function(b) {
	jQuery.browser.mobile = /android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i
			.test(b)
			|| /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i
					.test(b.substr(0, 4))
})(navigator.userAgent || navigator.vendor || window.opera);
(function() {
	var P, d, i, ai, v, E, Z;
	var av, l, am, O, R, aq, r;
	var ah, J, D, X, F, g, ay, f, C;
	var x, e, K, ab, w, o, af;
	var V, ad, u, ar, s, aB, ax;
	var aC, h, aE;
	var aj, an, au;
	aj = false;
	an = false;
	E = 500;
	Z = 50;
	R = 8000;
	d = 11;
	i = 6;
	v = 60;
	ai = 60;
	av = 6;
	l = 150;
	O = 1500;
	P = "#home";
	aq = 660;
	r = 360;
	aE = true;
	K = 0;
	ab = false;
	o = false;
	u = false;
	ar = false;
	function c() {
		this.element = null;
		this.neighbors = [];
		this.visible = false;
		this.fade = function(aJ, aG, aI, aK) {
			if ((this.visible && aJ === "in")
					|| (!this.visible && aJ === "out")) {
				return
			}
			var aF;
			K++;
			if (K === d * i) {
				K = 0;
				aF = aK
			}
			if (aJ === "in") {
				this.element.fadeIn(aG, aF)
			} else {
				if (aJ === "out") {
					this.element.fadeOut(aG, aF)
				} else {
					return
				}
			}
			this.visible = !this.visible;
			var aH = this.neighbors;
			setTimeout(function() {
				for ( var aL = 0; aL < aH.length; aL++) {
					aH[aL].fade(aJ, aG, aI, aK)
				}
			}, aI)
		}
	}
	function ag() {
		aE = !$.browser.mobile;
		if (!aE) {
			o = true
		}
		ah = document.location.hash || P;
		y();
		N();
		m();
		Q();
		ak();
		var aF = $("#main");
		aF.mouseover(G);
		aF.mouseout(p);
		window.onhashchange = function() {
			var aG = document.location.hash;
			if (ah !== aG) {
				W(null, aG, true)
			}
		};
		h = $(".outer-border");
		z();
		//aa()
	}
/*	function aa() {
		au = $("#settings");
		$("#settings .button").click(aA);
		$("#patterns li div").click(a);
		$("head").append('<link rel="stylesheet" href="" id="color-style">');
		$("#colors li div").click(b)
	} */
	function aA(aG) {
		if (an) {
			return
		}
		var aF = 0;
		if (aj) {
			aF = -au.width()
		}
		au.animate({
			left : aF
		}, 500, function() {
			aj = !aj
		})
	}
	function a(aG) {
		var aF = $(aG.currentTarget).css("backgroundImage");
		$("body").css("backgroundImage", aF)
	}
	function b(aG) {
		var aF = "css/colors/" + $(aG.currentTarget).attr("class") + ".css";
		$("#color-style").attr("href", aF);
		setTimeout(function() {
			$("#color-style").attr("href", aF)
		}, 300)
	}
	function y() {
		D = {};
		s = $("#main-navigation");
		J = s.find("a");
		var aF = false;
		for ( var aI = 0; aI < J.length; aI++) {
			var aH = $(J[aI]);
			var aG = aH.attr("href");
			D[aG] = aH;
			aH.data("anchorLink", aG).removeAttr("href");
			aH.click(W);
			if (ah === aG) {
				at(aH);
				aF = true
			}
		}
		if (!aF) {
			ah = document.location = P
		}
	}
	function N() {
		if (!aE) {
			return
		}
		X = [];
		ay = [];
		var aK = document.createDocumentFragment();
		for ( var aJ = 0; aJ < i; aJ++) {
			for ( var aG = 0; aG < d; aG++) {
				var aH, aF, aI;
				aH = new c();
				aH.element = $("<div>").addClass("panel").css({
					top : aJ * ai,
					left : aG * v,
					backgroundPosition : -aG * v + "px " + -aJ * ai + "px"
				});
				aF = aI = null;
				if (aG !== 0) {
					aF = X[aG - 1][aJ]
				}
				if (aJ !== 0) {
					aI = X[aG][aJ - 1]
				}
				if (aF) {
					aH.neighbors.push(aF);
					aF.neighbors.push(aH)
				}
				if (aI) {
					aH.neighbors.push(aI);
					aI.neighbors.push(aH)
				}
				aK.appendChild(aH.element[0]);
				if (X[aG] === undefined) {
					X[aG] = []
				}
				X[aG][aJ] = aH;
				ay.push(aH)
			}
		}
		$("#main").append(aK)
	}
	function m() {
		F = $("#portfolio-images li img").css("display", "none");
		w = $("#grid-overlay").click(ae).mousemove(az).mouseout(U);
		x = 0;
		e = 1;
		if (F.length > 0) {
			$(F[0]).css("display", "block")
		}
		C = $("#portfolio-info");
		ad = $("#portfolio-timer");
		ad.data("originalOpacity", ad.css("opacity"));
		aB = $("#portfolio-navigation");
		var aH = document.createDocumentFragment();
		ax = [];
		for ( var aG = 0; aG < F.length; aG++) {
			var aF = $("<div>").addClass("portfolio-button").data("index", aG);
			aF.click(function() {
				var aI = $(this).data("index");
				if (aI !== x) {
					e = aI;
					ap()
				}
			});
			if (aG === x) {
				at(aF)
			}
			aH.appendChild(aF[0]);
			ax.push(aF)
		}
		aB.append(aH)
	}
	function Q() {
		var aF = $(".bar-graph li");
		var aG = $(".bar-graph").height();
		for ( var aH = 0; aH < aF.length; aH++) {
			var aL = $(aF[aH]);
			var aK = aL.attr("data-graph-percent");
			var aI = parseInt(l * aK / 100, 10);
			var aM = parseInt(aG / (aF.length), 10);
			var aJ = $("<div>").addClass("bar").css({
				width : aI,
				height : aM - 5
			});
			aL.click(function() {
				I($(this).find(".bar"))
			});
			aL.css({
				height : aM,
				lineHeight : aM + "px"
			});
			aL.prepend(aJ)
		}
	}
	function ak() {
		aC = $("#contact-form");
		aC.submit(function() {
			return false
		});
		var aF = $("#contact-submit");
		aF.click(function() {
			$("#message-success").fadeOut(250);
			if (T()) {
				$.post(aC.attr("action"), aC.serialize(), function(aG) {
					$("#message-success").delay(250).fadeIn(250)
				})
			}
		})
	}
	function T() {
		var aG = true;
		if (aC[0].name.value.length > 0
				&& aC[0].name.value !== $("#contact-name").attr("placeholder")) {
			$("#name-error").fadeOut(250)
		} else {
			$("#name-error").fadeIn(250);
			aG = false
		}
		var aF = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
		if (aC[0].email.value.length > 0 && aF.test(aC[0].email.value)) {
			$("#email-error").fadeOut(250)
		} else {
			$("#email-error").fadeIn(250);
			aG = false
		}
		if (aC[0].message.value.length > 0) {
			$("#message-error").fadeOut(250)
		} else {
			$("#message-error").fadeIn(250);
			aG = false
		}
		return aG
	}
	function t() {
		if (C.html().length > 0 && o) {
			C.fadeIn(E)
		}
	}
	function S() {
		C.fadeOut(E)
	}
	function ac() {
		var aF = $(F[x]).parent().children("aside").html();
		C.empty().append(aF);
		if (!aF) {
			C.css("display", "none")
		}
	}
	function M() {
		if (R === 0) {
			return
		}
		ar = true;
		u = false;
		ad.css({
			width : 0,
			display : "block",
			opacity : ad.data("originalOpacity")
		}).animate({
			width : aq
		}, R, "linear", ap)
	}
	function B() {
		if (u || R === 0) {
			return
		}
		ad.stop(true, false);
		u = true;
		var aI = aq / R * $.fx.interval;
		var aG = 0.1;
		var aH = ad.width();
		var aF = setInterval(function() {
			aI *= 0.95;
			aH += aI;
			if (aH >= aq) {
				aH = aq;
				ap();
				clearInterval(aF)
			} else {
				if (aI <= aG) {
					clearInterval(aF)
				}
			}
			ad.css("width", aH)
		}, $.fx.interval)
	}
	function j() {
		if (!u || ab || R === 0) {
			return
		}
		u = false;
		var aI = 0.1;
		var aG = aq / R * $.fx.interval;
		var aH = ad.width();
		var aF = setInterval(function() {
			aI *= 1.05;
			aH += aI;
			if (aH >= aq) {
				aH = aq;
				ap();
				clearInterval(aF)
			} else {
				if (aI >= aG) {
					clearInterval(aF);
					var aJ = (aq - aH) / (aG / $.fx.interval);
					ad.animate({
						width : aq
					}, aJ, "linear", ap)
				}
			}
			ad.css("width", aH)
		}, $.fx.interval)
	}
	function L() {
		ar = false;
		u = true;
		setTimeout(function() {
			ad.stop(true, false).fadeOut(E)
		}, Z)
	}
	function ap(aG, aF) {
		if (ab || ah !== "#portfolio") {
			return
		}
		n(ax[x]);
		at(ax[e]);
		if (!aE) {
			H();
			aD();
			ad.stop(false, false);
			M();
			return
		}
		ab = true;
		q(e);
		S();
		L();
		if (aG !== undefined && aF !== undefined) {
			var aH = X[aG][aF];
			aH.fade("in", E, Z, function() {
				H();
				aH.fade("out", E, Z, function() {
					ab = false;
					if (!o) {
						M()
					} else {
						aD()
					}
				})
			})
		} else {
			Y("in", ay.slice(), function() {
				H();
				Y("out", ay.slice(), function() {
					ab = false;
					if (!o) {
						M()
					} else {
						aD()
					}
				})
			})
		}
	}
	function H() {
		$(F[x]).css("display", "none");
		$(F[e]).css("display", "block");
		x = e;
		e++;
		if (e === F.length) {
			e = 0
		}
		ac();
		if (!o) {
			al(true);
			M()
		} else {
			aD()
		}
	}
	function ae(aG) {
		var aH, aF;
		if (aG.layerX && aG.layerY) {
			aH = parseInt(aG.layerX / v, 10);
			aF = parseInt(aG.layerY / ai, 10)
		} else {
			if (aG.offsetX && aG.offsetY) {
				aH = parseInt(aG.offsetX / v, 10);
				aF = parseInt(aG.offsetY / ai, 10)
			} else {
				return
			}
		}
		ap(aH, aF)
	}
	function az(aI) {
		var aH, aG;
		if (ab || !aE) {
			return
		}
		if (aI.layerX && aI.layerY) {
			aH = parseInt(aI.layerX / v, 10);
			aG = parseInt(aI.layerY / ai, 10)
		} else {
			if (aI.offsetX && aI.offsetY) {
				aH = parseInt(aI.offsetX / v, 10);
				aG = parseInt(aI.offsetY / ai, 10)
			} else {
				return
			}
		}
		var aF = X[aH][aG];
		if (g !== aF) {
			aF.element.css({
				backgroundImage : "",
				display : "block",
				opacity : 0
			}).animate({
				opacity : 0.15
			}, 200);
			if (g) {
				g.element.animate({
					opacity : 0
				}, 200, function() {
					if (!ab) {
						$(this).css("display", "none")
					}
				})
			}
			g = aF
		}
	}
	function U() {
		if (g && !ab) {
			g.element.fadeOut(200, function() {
				$(this).css("opacity", 1)
			})
		}
	}
	function at(aF) {
		aF.addClass("active")
	}
	function n(aF) {
		aF.removeClass("active")
	}
	function W(aI, aH, aF) {
		var aG, aJ;
		if (aI) {
			aG = $(aI.currentTarget);
			aJ = aG.data("anchorLink")
		} else {
			aG = D[aH];
			aJ = aH
		}
		if (aJ === ah || ab || aJ === undefined) {
			return
		}
		at(aG);
		n(D[ah]);
		if (ah === "#portfolio") {
			q(null);
			S();
			L();
			aB.fadeOut(E);
			s.fadeIn(E)
		}
		if (aF || !aE) {
			ah = document.location = aJ;
			z()
		} else {
			ab = true;
			Y("in", ay.slice(), function() {
				Y("out", ay.slice(), function() {
					ab = false
				});
				ah = document.location = aJ;
				z()
			})
		}
	}
	function Y(aG, aI, aJ) {
		if (aI.length === 0) {
			if (aJ) {
				setTimeout(aJ, E - Z)
			}
			return
		}
		for ( var aF = 0; aF < av; aF++) {
			if (aI.length === 0) {
				break
			}
			var aH = parseInt(aI.length * Math.random(), 10);
			var aK = aI.splice(aH, 1)[0];
			if (aG === "in") {
				aK.element.fadeIn(E)
			} else {
				if (aG === "out") {
					aK.element.fadeOut(E)
				}
			}
			aK.visible = !aK.visible
		}
		setTimeout(function() {
			Y(aG, aI, aJ)
		}, Z)
	}
	function q(aG) {
		if (!X) {
			return
		}
		var aH = "";
		if (aG !== null) {
			aH = "url('" + $(F[aG]).attr("src") + "')"
		}
		for ( var aI = 0; aI < i; aI++) {
			for ( var aF = 0; aF < d; aF++) {
				X[aF][aI].element.stop(true, true).css({
					display : "none",
					backgroundImage : aH,
					opacity : 1
				})
			}
		}
	}
	function z() {
		if (ah === "#portfolio") {
			w.css("display", "block");
			h.fadeOut(E);
			ac();
			setTimeout(function() {
				t();
				if (!o || !aE) {
					M()
				}
				aB.fadeIn(E)
			}, E * 2);
			if (!o) {
				al(true)
			}
		} else {
			w.css("display", "none");
			h.fadeIn(E);
			S()
		}
		if (ah === "#resume") {
			aw()
		} else {
			if (f) {
				ao(f);
				f = null
			}
		}
	}
	function aw() {
		var aF = $(".bar-graph li .bar");
		var aJ;
		for ( var aG = 0; aG < aF.length; aG++) {
			var aI = $(aF[aG]);
			if (aG === 0) {
				aJ = aI
			}
			var aH = aI.width();
			aI.css("width", 0);
			aI.delay(E).animate({
				width : aH
			}, (aH / l) * O)
		}
		if (aJ) {
			setTimeout(function() {
				I(aJ)
			}, O + E + 300)
		}
	}
	function I(aF) {
		if (f && f !== aF) {
			ao(f, function() {
				A(aF)
			})
		} else {
			A(aF)
		}
		f = aF
	}
	function A(aH) {
		var aG = aH.parent();
		aG.addClass("highlight");
		var aI = aG.children(".bar-title").html();
		var aF = aG.children("aside").html();
		$(".bar-graph-info .content").empty().append($("<h1>").html(aI), aF)
				.fadeIn(E)
	}
	function ao(aG, aH) {
		var aF = aG.parent();
		aF.removeClass("highlight");
		$(".bar-graph-info .content").fadeOut(E, aH)
	}
	function G(aF) {
		if (!aE) {
			return
		}
		if (ah === "#portfolio") {
			clearInterval(af);
			af = setTimeout(function() {
				if (o) {
					aD();
					B()
				}
			}, 500)
		}
		o = true
	}
	function p(aF) {
		if (!aE) {
			return
		}
		if (ah === "#portfolio") {
			clearInterval(af);
			af = setTimeout(function() {
				if (!o && !ab) {
					al(false);
					if (!ar) {
						M()
					} else {
						j()
					}
				}
			}, 500)
		}
		o = false
	}
	function aD() {
		if (ab) {
			return
		}
		t();
		s.fadeIn(E)
	}
	function al(aF) {
		if ((ab || ah !== "#portfolio") && !aF) {
			return
		}
		S();
		s.fadeOut(E)
	}
	function k() {
		console.log(arguments)
	}
	$(document).ready(ag)
})();
