// function adjustHeight()
// {
//  var d = $("#height-adjuster").get(0);
//  if (!d) {
//      $("#main-content").append("<div id=\"height-adjuster\">&nbsp;</div>");
//      d = $("#height-adjuster").get(0);
//  }
//  var th = $(d).height();
//  var h1 = $("#footer").offset().top + $("#footer").height() + heightAdjustCorrection - th;
//  var h2 = $(window).height();
//  if (h2 > h1) {
//      $(d).height(h2-h1);
//  } else {
//      $(d).height(0);
//  }
// }
// $(function()
// {
//  adjustHeight();
//  $(window).resize(adjustHeight);
// });



function flashedStatusMessage()
{
	var flashData = $("#flash-transport").get(0).value;
	if (flashData != "") {
		statusmsg = eval("("+flashData+")");
		displayStatusMessage(statusmsg.status, statusmsg.msg);
	}
}
$(window).load(flashedStatusMessage);

function iconURL(name)
{
	return iconsPrefix + name + iconsExtension;
}

function getIcon(name, title)
{
	return $("<img title=\""+title+"\" alt=\""+title+"\" src=\""+iconURL(name)+"\" width=\"16\" height=\"16\"/>");
}

function getIconLink(name, link, title)
{
	return $("<a href=\""+link+"\"><img title=\""+title+"\" alt=\""+title+"\" src=\""+iconURL(name)+"\" width=\"16\" height=\"16\"/></a>");
}

function updateAccountBalance() {
	if ($("#account-balance").length > 0) {
		var url = "/account_balance?r=" + new Date().getTime();
		$.getJSON(url, function(reply)
		{
			$("#account-balance").text(reply.balance);
		})
	}
}
// $(function()
// {
//  setInterval(updateAccountBalance, 300*1000);
// });

jQuery.fn.loadPopupDialog = function(options)
{
	var q = this;
	var overlay = $("#popup-overlay");

	var positionCenter = function()
	{
		var popup_info = q.find(".popup-info");
		if (popup_info && popup_info.height() > 500) {
			popup_info.css("overflow-y", "scroll");
			popup_info.height(500);
			popup_info.width(popup_info.width());
		}
		var x = ($(window).width() - q.width())/2;
		var y = ($(window).height() - q.height())/2;
		if (q.css("position")=="absolute") {
			y += document.documentElement.scrollTop;
		}
		q.css({left: x+"px", top: y+"px"});
	}

	var show = function()
	{
		overlay.show();
		q.css({opacity:"0"});
		q.show()
		positionCenter();
		q.fadeTo("normal", 1);
	}

	var hide = function()
	{
		overlay.hide();
		q.fadeOut("normal", function(){q.hide();});
		//q.hide();overlay.hide();
	}

	var formHandler = function(data)
	{
		if (!data.success) {
			successHandler(data);
		} else {
			emptyStatusMessage();
			settings.dialogSuccess();
			if (data.message) {
				hide();
				displayStatusMessage("success", data.message);
			} else if (data.show_url) {
				$.get(data.show_url, function(data)
				{
					q.empty();
					q.append(data);
					q.find(".cancel-button").click(function(){hide();});
					q.css({opacity:"0"});
					positionCenter();
					q.css({opacity:"1"});
				});
			} else {
				hide();
			}
		}
	}

	var formLoadHandler = function(data)
	{
		show();
		successHandler(data);
	}

	var successHandler = function(data)
	{
		emptyStatusMessage();
		q.empty()
		if (data.title) {
			q.append("<h4>"+data.title+"</h4>")
		}
		q.append(settings.contentGetter(data));
		positionCenter();
		q.find(".cancel-button").click(function(){hide();});
		var form = q.find("form");
		if (form.length > 0) {
			form.ajaxForm({
				dataType: "json",
				success: formHandler,
				error: errorHandler,
				beforeSubmit: function()
				{
					displayStatusMessage("loading", msgs.processing);
				}
			});
		}
		var inp = q.find("input[@type=text]");
		if (inp.length > 0) {
			inp.get(0).focus();
		}
		if (data.script) {
			eval(data.script);
		}
	}

	var errorHandler = function(xhr, err, exc)
	{
		if (xhr.status == 403) {
			window.location.reload();
		} else {
			displayStatusMessage("error", msgs.server_problem);
			hide();
		}
	}

	var settings = jQuery.extend({
		url: "/test",
		dataType: "json",
		contentGetter: function(response) {return response.form;},
		dialogSuccess: function() {},
		success: formLoadHandler,
		error: errorHandler
	}, options);

	if (typeof settings.url == "function") {
		settings.url = settings.url(settings);
	}

	overlay.show();
	jQuery.ajax(settings);
}

$(function()
{
    $.ajaxSetup( {
        // beforeSend: function(xml) {
        //     if (xml.overrideMimeType)
        //         xml.setRequestHeader("Connection", "keep-alive");
        // }
        cache: false,
        error: function(xhr, err, exc) {
            if (xhr.status == 403) {
    			window.location.reload();
    		}
        }
    });
});
