var bDisplayPromotionLoop = true;
var iDisplayPromotionLoopDelay = 10000;

var iDisplayPromotionItemsMax = 50;

var arrInfoDisplayedProduct = Array();
var iCurrInfoDisplayedProduct = null;

var m_iDisplayTemplateId = 0;
var m_sAjaxPhpFile;

var iTimerId = 0;

var bCallMade = false;
var iBufferSize = 2;

var bUseBuffer = true;

var sDivA = "PromotionJSLocalisation";
var sDivB = "PromotionJSLocalisationBuffer";

function DisplayPromotion(sAjaxPhpFile, iDisplayTemplateId)
{					
	m_iDisplayTemplateId = iDisplayTemplateId;
	
	m_sAjaxPhpFile = sAjaxPhpFile;
	
	//document.getElementById(sDivA).innerHTML = "";
			
	DisplayPromotionLoop()
}

function DisplayPromotionLoop()
{
	StopPromotionLoop();
	
	LoadBufferIfNeeded();
	
	if(iCurrInfoDisplayedProduct == null)
	{
		iCurrInfoDisplayedProduct = -1;
		
		iTimerId = setTimeout("DisplayPromotionLoop()", 500);
	}
	else if(iCurrInfoDisplayedProduct + 1 > arrInfoDisplayedProduct.length - 1)
	{		
		iTimerId = setTimeout("DisplayPromotionLoop()", 500);
	}
	else if(bDisplayPromotionLoop && arrInfoDisplayedProduct.length < iDisplayPromotionItemsMax)
	{
		iTimerId = setTimeout("DisplayPromotionLoop()", iDisplayPromotionLoopDelay);
		
		iCurrInfoDisplayedProduct ++;
		
		UpdateDisplayPromotion();
	}
}

function LoadBufferIfNeeded()
{
	if(iCurrInfoDisplayedProduct >= arrInfoDisplayedProduct.length - iBufferSize && !bCallMade)
	{
		bCallMade = true;
		ExecutePhp();
	}
	
}

function ExecutePhp()
{
	var sPostString = "Execute=DisplayLiquidations&TemplateId=" + m_iDisplayTemplateId;
	
	CreateHttpRequest(m_sAjaxPhpFile, sPostString, ExecuteHandler, '')
}

function StopPromotionLoop() 
{
	if(iTimerId) 
	{
		clearTimeout(iTimerId);
		iTimerId = 0;
	}
}

function ExecuteHandler(http_request)
{
	if (http_request.readyState == 4)
	{
		if (http_request.status == 200)
		{
			var sResult = http_request.responseText;
			
			arrInfoDisplayedProduct[arrInfoDisplayedProduct.length] = sResult;
			
			bCallMade = false;
			
			LoadBufferIfNeeded();
			
			UpdateNavButtons();
		}
	}
}

function UpdateDisplayPromotion()
{
	LoadBufferIfNeeded();
	
	if(bUseBuffer)
	{
		if((iCurrInfoDisplayedProduct % 2) == 0)
		{
			sFrontDiv = sDivA;
			sBackDiv = sDivB;
		}
		else
		{
			sFrontDiv = sDivB;
			sBackDiv = sDivA;
		}
		
		document.getElementById(sBackDiv).style.display = "none";
		
		document.getElementById(sFrontDiv).style.display = "block";
		

		//if not alredy loaded
		if(iCurrInfoDisplayedProduct < arrInfoDisplayedProduct.length)
		{
			if(document.getElementById(sFrontDiv).innerHTML != arrInfoDisplayedProduct[iCurrInfoDisplayedProduct])
			{
				document.getElementById(sFrontDiv).innerHTML = arrInfoDisplayedProduct[iCurrInfoDisplayedProduct];
			}
		}
		
		//preload
		if(iCurrInfoDisplayedProduct + 1 < arrInfoDisplayedProduct.length)
		{
			document.getElementById(sBackDiv).innerHTML = arrInfoDisplayedProduct[iCurrInfoDisplayedProduct + 1];
		}
		else
		{
			document.getElementById(sBackDiv).innerHTML = "no data";
		}
	}
	else
	{
		document.getElementById(sDivA).innerHTML = arrInfoDisplayedProduct[iCurrInfoDisplayedProduct];
	}
	
	UpdateNavButtons();
}

function UpdateNavButtons()
{
	
	
	if(iCurrInfoDisplayedProduct == null)
	{
		bDisableBack = true;
		bDisablePlay = false;
		bDisableNext = true;
	}
	else
	{
		bDisableBack = false;
		bDisablePlay = false;
		bDisableNext = false;
		
		iNbEntry = arrInfoDisplayedProduct.length;
	
		if(iNbEntry == 0)
		{
			bDisableBack = true;
			bDisableNext = true;
		}
		else 
		{
			if(iCurrInfoDisplayedProduct == 0)
			{
				bDisableBack = true;
			}
			if(iCurrInfoDisplayedProduct == iNbEntry - 1)
			{
				bDisableNext = true;
			}
		}
		
		if(iTimerId) 
		{
			bDisablePlay = true;
		}
	}
	
	document.getElementById('PromoNavGoBack').disabled = bDisableBack;
	document.getElementById('PromoNavGoPlay').disabled = bDisablePlay;
	document.getElementById('PromoNavGoNext').disabled = bDisableNext;
	
}


function NavGoBack()
{
	StopPromotionLoop();
	
	iCurrInfoDisplayedProduct --;
	
	UpdateDisplayPromotion();
}

function NavGoPlay()
{
	iCurrInfoDisplayedProduct = arrInfoDisplayedProduct.length - iBufferSize; 
	
	document.getElementById('PromoNavGoPlay').disabled = true;
	
	DisplayPromotionLoop()
}

function NavGoNext()
{	
	StopPromotionLoop();
	
	iCurrInfoDisplayedProduct ++;
	
	UpdateDisplayPromotion();
}

/*
function NavGoStop()
{
	
}
*/

