function CallIndexFunctionSync(func, oData, dType)
{
	return CallFunctionSyncEx(func, oData, dType, '/index.php');
}

function CallFunctionSync(func, oData, dType)
{
	return CallFunctionSyncEx(func, oData, dType, '/admin.php');
}

function CallFunctionSyncEx(func, oData, dType, callPage)
{
	if (typeof(dType) === 'undefined') dType = 'text';
	if (oData == null)
		oData = {'op' : func}
	else{
		var opData = {'op' : func};
		jQuery.extend(oData, opData);
	}
	var ret = null;
	var req = $.ajax({
		url : callPage,
		dataType: dType,
		async : false,
		data : oData,
		success: function(data)
			{
				data = data.replace(/\n?$/, "");
				ret = data;
			}
		});
	
	return ret;
}

function GetImageWidth(image)
{
	var src = $(image).attr('src');
	if (src)
	{
		if (/\/\d+\/\d+\/?$/.test($(image).attr('src')))
		{
			var res = /\/(\d+)\/(\d+)\/?$/.exec(src);
			if (res && res[1])
				return res[1];
		}else {
			var res = /width=(\d+)/.exec(src);
			if (res && res[1])
				return res[1];
		}
	}
	return $(image).get(0).clientWidth;
}

var ImageCache = [];
function DoPreload(imgSource)
{
	if (imgSource != null && imgSource != "" && !ImageCache[imgSource])
	{
		var cImage = document.createElement('img');
		cImage.src = imgSource;
		ImageCache[imgSource] = cImage;
	}
}

function ProcessPreloads()
{
	$('.preload img, img.preload').each(function(){
		DoPreload($(this).attr('src'));
		});
	$('.preload *').each(function(){
		if (!$(this).hasClass('.nopreload'))
		{
			DoPreload($(this).css('background-image'));
			$(this).find(':hover').each(function() { DoPreload($(this).css('background-image')); });
		}
		});
		
}