try {
	var pageTracker = _gat._getTracker("UA-7672582-1");
	pageTracker._trackPageview();
} catch (err) {}

function track (url)
{
	try {
		pageTracker._trackPageview(url);
	} catch (err) {
		// alert(url + ": " + err);
	}
}

function isNumeric (s)
{
	return (s == parseInt(s));
}

function pathize (s)
{
	return s.replace(/\/+/g, "/").replace(/^\/|\/$/g, "").split("/");
}

var host;
var hostSt;
var hash;
var hPath;
var path;
var mdash;

$(document).ready(function(){
	host = window.location.hostname;
	hostSt = "static." + window.location.hostname;
	hash = window.location.hash.substring(1);
	hPath = pathize(hash)
	path = pathize(window.location.pathname.substring(1));
	mdash = $("<div>&mdash;</div>").html();
});

function trimClean (s)
{
	s = s.replace(new RegExp("[\\s]+", "g"), " ");
	s = s.replace(new RegExp("[\\s]+$", "g"), "");
	s = s.replace(new RegExp("^[\\s]+", "g"), "");

	return s;
}

function inputPrompt (inputObj, prompt_)
{
	prompt_ = mdash + " " + prompt_ + " " + mdash;

	if (inputObj.val() == "")
		inputObj.val(prompt_).css("text-align", "center").css("color", "#aaa");

	inputObj.attr("prompt", prompt_)
		.blur(function(){
			if ($(this).val() == "")
				$(this).css("color", "#aaa").css("text-align", "center").val(prompt_);
		})
		.focus(function(){
			if (inputObj.val() == inputObj.attr("prompt"))
				$(this).css("color", "#000").css("text-align", "left").val("");
		});
}

function inputValue (inputObj, tx)
{
	if (tx !== "" && !tx) {
		// no tx param, just return teh value

		if (inputObj.val() == inputObj.attr("prompt"))
			return "";
		return inputObj.val();
	}

	// or else... set a new one
	if (tx == "")
		inputObj.css("color", "#aaa").css("text-align", "center").val(inputObj.attr("prompt"));
	else
		inputObj.css("color", "#000").css("text-align", "left").val(tx);
}

function formBindSubmit (formObj, postUrl, onSuccess, onError, check, submitVal)
{
	if (submitVal !== "")
		if (!submitVal)
			var submitVal = "Saving, please wait...";

	formObj.submit(function(){
		if (check && !check())
			return false;

		var xsave = $("input[type='submit']", xthis).val();
		var xthis = this;
		if (submitVal != "")
			$("input[type='submit']", xthis).val(submitVal);

		$("input, textarea", xthis).each(function(){
			$(this).val(inputValue($(this)));
		});
		var xpost = $(xthis).serialize();

		$("input[type='submit']", xthis).focus();
		$("input, textarea", xthis).attr("disabled", "disabled");

		$.post(postUrl, xpost, function (newData) {
			$("input, textarea", xthis).each(function(){
				if ($(this).attr("type") == "submit")
					return;
				$(this).val(newData.form[$(this).attr("name")]);
				$(this).blur();
			});

			$("div.err", xthis).html("");
			$("input, textarea", xthis).removeClass("err");

			if (!newData.status) {
				$.each(newData.err, function(k, v){
					$("input[name='" + k + "'], textarea[name='" + k + "']", xthis).addClass("err");

					if (k == "name") {
						if (v == 1)
							$("div.err", xthis).append("<li>Name required.</li>");
						else if (v == 2)
							$("div.err", xthis).append("<li>Restricted name.</li>");
					}
					else if (k == "url") {
						if (v == 2)
							$("div.err", xthis).append("<li>Restricted website.</li>");
					}
					else if (k == "email") {
						if (v == 1)
							$("div.err", xthis).append("<li>E-mail required.</li>");
						else if (v == 2)
							$("div.err", xthis).append("<li>Restricted e-mail.</li>");
						else
							$("div.err", xthis).append("<li>Incorrect e-mail.</li>");
					}
					else if (k == "comment") {
						if (v == 1)
							$("div.err", xthis).append("<li>Comment required.</li>");
						else if (v == 2)
							$("div.err", xthis).append("<li>Incorrect HTML in your comment.</li>");
						else
							$("div.err", xthis).append("<li>Spam detected in your comment &ndash; try to use different words.</li>");
					}
				});
			}

			$("input, textarea", xthis).removeAttr("disabled");
			$("input[type='submit']", xthis).val(xsave);
			$(".err:eq(1)", xthis).focus();

			if (newData.status)
				onSuccess(newData);
			else
				onError(newData);
		}, "json");

		return false;
	});
}
