var preloader			= false;
var preloaderId			= 'preloader';

var preloaderClass		= 'kit';

var preloaderZindex		= 1;

var preloaderTimer 		= false;
var preloaderInterval	= 100;

var preloaderAsset		= false;

var preloaderFrameWidth = 47;
var preloaderNoFrames 	= 11;
var preloaderCurrentFrame = 0;
var preloaderCurrentPosition = 0;
var preloaderHideFuncCalled = true;

function showPreloader(box)
{
	debug(preloaderDebug, 	"show preloader");
	checkPreloader(box);
	startPreloader();
}

function hidePreloader(box, onHideFunction)
{
	debug(preloaderDebug, 	"hide preloader");
	preloaderHideFuncCalled = false;
	checkPreloader(box);
	stopPreloader();
	if(preloader)
	{
		preloader.remove();
	}
	if(onHideFunction != null)
	{
		onHideFunction(); 
		preloaderHideFuncCalled = true;
	}
}

function getBox()
{
	var box = $('#middle');
	preloaderZindex = $('#middle').css('z-index');
	return box;
}

function checkPreloader(box)
{
	if(box == null)
	{
		box = getBox();
	}
	if(box && box != null)
	{
		if(preloader)
		{
			preloader.remove();
		}
		if(box.size() > 0)
		{
			var html = '<div id="'+preloaderId+'"><div class="holder"><div class="'+preloaderClass+'"></div></div></div>';
			box.append(html);
			preloader = $('#'+preloaderId+", #"+preloaderId+" .holder");
			if(preloader.size() > 0)
			{
				preloader.height(box.height()).css('z-index', preloaderZindex);
				preloaderAsset = $("#"+preloaderId+" .holder ."+preloaderClass);
				if(preloaderAsset.size() == 0)
				{
					preloader = false;
				}
			}
			else
			{
				preloader = false;
			}
		}
	}
}

function startPreloader()
{
	if(preloader)
	{
		preloaderCurrentFrame 	= 0;
		preloaderTimer 			= setInterval("doPreloaderNextFrame()", preloaderInterval);
		//debug(preloaderDebug, 	"pfw: "+preloaderFrameWidth+",pf: "+preloaderNoFrames);
	}
}

function stopPreloader()
{
	if(preloaderTimer)
	{
		clearTimeout(preloaderTimer);
		preloaderTimer = false;
	}
}

function doPreloaderNextFrame()
{
	preloaderCurrentFrame+= 1;
	if(preloaderCurrentFrame == preloaderNoFrames)
	{
		preloaderCurrentFrame = 0;
	}
	preloaderCurrentPosition = preloaderCurrentFrame*(-preloaderFrameWidth);
	preloaderAsset.css('background-position', preloaderCurrentPosition+'px 0px');
}

