var dialogMarginTop = 5;
var dialogMarginLeft = 0;
var duration = 0.5;

function showDialog(id) {
	var dialog = $(id).up();
	var link = dialog.up('span').down('a');

	// show the dialog just below the link, applying top & left margins
	dialog.setOpacity(0.0);
	dialog.show();
	dialog.absolutize();
	var top = link.getHeight() + dialogMarginTop;
	var left = dialogMarginLeft;
	dialog.clonePosition(link, {
		setWidth :false,
		setHeight :false,
		offsetTop :top,
		offsetLeft :left
	});
	if (Prototype.Browser.IE) {
		dialog.setOpacity(1.0);
		focusDialog( {
			'element' :dialog
		});
	} else {
		new Effect.Appear(dialog, {
			duration :duration,
			afterFinish :focusDialog
		});
	}
}

function focusDialog(effect) {
	var form = effect.element.down('form');
	if (form) {
		form.focusFirstElement();
	}
}

function hideDialog(id) {
	/*
	 * new Effect.Fade($(id).up(), { duration :duration, afterFinish
	 * :removeDialog });
	 */
	var dialog = $(id).up();
	if (Prototype.Browser.IE) {
		dialog.hide();
		removeDialog( {
			'element' :dialog
		});
	} else {
		new Effect.Fade(dialog, {
			duration :duration,
			afterFinish :removeDialog
		});
	}
}

function removeDialog(effect) {
	effect.element.down().childElements().invoke('remove');
}

function isIE6() {
	var agt = navigator.userAgent.toLowerCase();
	var appVer = navigator.appVersion.toLowerCase();
	var is_minor = parseFloat(appVer);
	var is_major = parseInt(is_minor);
	var iePos = appVer.indexOf('msie');
	if (iePos != -1) {
		is_minor = parseFloat(appVer.substring(iePos + 5, appVer.indexOf(';',
				iePos)))
		is_major = parseInt(is_minor);
	}
	var is_ie = ((iePos != -1));
	var is_ie6 = (is_ie && is_major == 6);
	return is_ie6;
}