function getXHR()
{
	if (window.XMLHttpRequest)
	{
	  return new XMLHttpRequest();
	}
	else // Internet Explorer 5/6
	{
	  return new ActiveXObject("Microsoft.XMLHTTP");
	}
}

function showOverlay(overlay, onClose, canClose)
{
	canClose = canClose != null ? canClose : true;
	if($(".post object")) $(".post object").css('visibility', 'hidden');
//	$(overlay).css('visibility', 'hidden');
	var transparency = document.createElement('div');
	var content = document.getElementById("content");
	transparency.id = "transparency";
	transparency.style['background-color'] = "#333333";
	transparency.style.width = "100%";
	transparency.style.height = "100%";
	transparency.style.position = "fixed";
	transparency.style.left = "0px";
	transparency.style.top = "0px";
	transparency.style['z-index'] = "1000";
	transparency.style.opacity = 0.75;
	transparency.style.filter = "alpha(opacity=75)";
	if(canClose) transparency.addEventListener('click', function() {closeOverlay(overlay, onClose);}, false);
	content.appendChild(transparency);

	$(overlay).css('position', 'fixed');
	$(overlay).css('top', ($(window).height() - $(overlay).height()) / 2 + 'px');
	$(overlay).css('left', ($(window).width() - $(overlay).width()) / 2 + 'px');
	$(overlay).css('z-index', '10001');
//	$(overlay).css('visibility', 'visible');
	$(overlay).fadeIn(600);
}

function closeOverlay(overlay, onClose)
{
	$(overlay).fadeOut(400, function() {
//		var transparency = document.getElementById("transparency");
//		var content = document.getElementById("content");
//		content.removeChild(transparency);
		$('#transparency').remove();
		
		$(overlay).css('position', 'relative');
		$(overlay).css('top', '0px');
		$(overlay).css('left', '0px');
		if($(".post object")) $(".post object").css('visibility', 'visible');
		
		onClose();
	});
}

function showDialog(message, OK, YES, NO, CANCEL, didAccept, didCancel)
{
	if(didAccept == null) didAccept = function(){};
	if(didCancel == null) didCancel = function(){};
	var dialog = $('<div class="dialog"></div>');
	dialog.append($('<div class="border"></div>'));
	var content = $('<div class="content"></div>');
	dialog.append(content);
	content.append($('<span class="message">' + message + '</span>'));
	var buttons = $('<div class="buttons"></div>');
	if(OK)
	{
		var button;
		buttons.append(button = $('<button class="button okButton">OK</button>'));
		button.click(function(){ closeOverlay(dialog, function(){ hideDialog(didAccept); }); });
	}
	if(YES)
	{
		var button;
		buttons.append(button = $('<button class="button yesButton">Yes</button>'));
		button.click(function(){ closeOverlay(dialog, function(){ hideDialog(didAccept); }); });
	}
	if(NO)
	{
		var button;
		buttons.append(button = $('<button class="button noButton">No</button>'));
		button.click(function(){ closeOverlay(dialog, function(){ hideDialog(didCancel); }); });
	}
	if(CANCEL)
	{
		var button;
		buttons.append(button = $('<button class="button cancelButton">Cancel</button>'));
		button.click(function(){ closeOverlay(dialog, function(){ hideDialog(didCancel); }); });
	}
	content.append(buttons);
	$('body').append(dialog);
	showOverlay(dialog, function(){}, false);
}

function hideDialog(callback)
{
	$('.dialog').remove();
	callback();
}

function showLoader()
{
	var loader = $('<div class="loader"></div>');
	loader.append($('<div class="border"></div>'));
	var content = $('<div class="content"></div>');
	content.append($('<img src="/images/icons/ajax-loader.gif" />'));
	loader.append(content);
	$('body').append(loader);
	showOverlay(loader, function(){}, false);
	return loader;
}

function hideLoader()
{
	closeOverlay($('.loader'), function(){$('.loader').remove();});
}



