var STAGE_TYPE 					= 0;
var STAGE_SIZE 					= 1;
var STAGE_QUANTITY 				= 2;
var STAGE_CHERRIES 				= 3;
var STAGE_GLITTER 				= 4;
var STAGE_GLITTER2				= 5;
var STAGE_COLOUR4 				= 6;
var STAGE_COLOUR3 				= 7;
var STAGE_PRODUCT 				= 8;

var ACTION_PREV 				= 0;
var ACTION_NEXT 				= 1;
var ACTION_NONE 				= 2;
var ACTION_START 				= 3;
var ACTION_RESET				= 4;

var currentStep 				= 0;
var currentStage 				= STAGE_TYPE;

var bakeryPath					= new Array(STAGE_PRODUCT);
var bakeryPaths					= new Array(new Array(STAGE_PRODUCT), new Array(STAGE_PRODUCT), new Array(STAGE_PRODUCT), new Array(STAGE_PRODUCT), new Array(STAGE_PRODUCT));
var bakeryDivs					= new Array(STAGE_PRODUCT);
					
var products;			   
var productPaths				= new Array();
var optionPath					= new Array(STAGE_PRODUCT);
	
bakeryPaths[0][STAGE_TYPE] 		= new Array(STAGE_PRODUCT, STAGE_PRODUCT, STAGE_SIZE);
bakeryPaths[1][STAGE_SIZE] 		= new Array(STAGE_QUANTITY, STAGE_CHERRIES);
bakeryPaths[2][STAGE_QUANTITY] 	= new Array(STAGE_PRODUCT, STAGE_COLOUR3);
bakeryPaths[2][STAGE_CHERRIES] 	= new Array(STAGE_GLITTER, STAGE_GLITTER2);
bakeryPaths[3][STAGE_COLOUR3] 	= new Array(STAGE_PRODUCT, STAGE_PRODUCT, STAGE_PRODUCT);
bakeryPaths[3][STAGE_GLITTER] 	= new Array(STAGE_COLOUR4, STAGE_COLOUR4);
bakeryPaths[3][STAGE_GLITTER2] 	= new Array(STAGE_COLOUR4, STAGE_COLOUR4);
bakeryPaths[4][STAGE_COLOUR4] 	= new Array(STAGE_PRODUCT, STAGE_PRODUCT, STAGE_PRODUCT, STAGE_PRODUCT);

productPaths[0] 				= 17;		
productPaths[1] 				= 18;
productPaths[200] 				= 22;
productPaths[2010] 				= 19;
productPaths[2011] 				= 20;
productPaths[2012] 				= 21;
productPaths[21000] 			= 9;
productPaths[21001] 			= 10; 
productPaths[21002] 			= 11; 
productPaths[21003] 			= 12; 
productPaths[21010] 			= 1;
productPaths[21011] 			= 2;
productPaths[21012] 			= 3; 
productPaths[21013] 			= 4;
productPaths[21100] 			= 13;  
productPaths[21101] 			= 14;  
productPaths[21102] 			= 15;   
productPaths[21103] 			= 16;  
productPaths[21110] 			= 5; 
productPaths[21111] 			= 6; 
productPaths[21112] 			= 7;  
productPaths[21113] 			= 8; 

var bakeryFooter;
var bakerySelection;
var bakeryLoading;
var bakeryProduct;
var bakeryProduct_Large;
var bakeryProduct_Small;
var bakeryProduct_Paypal;
var bakeryProduct_Type;
var bakeryProduct_Type2;
var bakeryProduct_Desc;
var bakeryProduct_Cost;
var bakeryProduct_Diameter;
var bakeryProduct_Height;

var xml = new classXML("xml");
xml.process = loadProducts;

function initBakery()
{
	bakeryFooter 			= document.getElementById('bakeryFooter');
	bakerySelection 		= document.getElementById('bakerySelection');
	bakeryLoading 			= document.getElementById('bakeryLoading');
	bakeryProduct 			= document.getElementById('bakeryProduct');
	bakeryProduct_Large 	= document.getElementById('bakeryProduct_Large');
	bakeryProduct_Small 	= document.getElementById('bakeryProduct_Small');
	bakeryProduct_Paypal 	= document.getElementById('bakeryProduct_Paypal');
	bakeryProduct_Type 		= document.getElementById('bakeryProduct_Type');
	bakeryProduct_Type2 	= document.getElementById('bakeryProduct_Type2');
	bakeryProduct_Desc 		= document.getElementById('bakeryProduct_Desc');
	bakeryProduct_Cost 		= document.getElementById('bakeryProduct_Cost');
	bakeryProduct_Diameter 	= document.getElementById('bakeryProduct_Diameter');
	bakeryProduct_Height 	= document.getElementById('bakeryProduct_Height');
	
	bakeryPath[0] 			= currentStage;
	
	for(var i=0; i<=STAGE_PRODUCT; i++)
	{
		bakeryDivs[i] = document.getElementById('bakeryStage' + i);	
		bakeryDivs[i].style.display = 'none';
	}

	xml.load("IMAGES/BAKERY/data.xml");
	
	loadStage();
	
	bakerySelection.style.display = 'block';
	bakeryLoading.style.display = 'none';
}

function loadProducts()
{
	products = xml.doc.getElementsByTagName('product');
}

function loadStage(action, option)
{
	if(typeof action == "undefined") { action = ACTION_NONE; 	}
	if(typeof option == "undefined") { option = 0; 				}
	
	var lastStage;
	if(action == ACTION_NEXT)
	{
		optionPath[currentStep] = option;
		
		lastStage 	 = bakeryPath[currentStep];
		currentStage = bakeryPaths[currentStep][currentStage][option];
		currentStep	 = currentStep + 1;
		
		if(currentStage == STAGE_PRODUCT)
		{
			bakeryDivs[lastStage].style.display = 'none';	
			bakeryFooter.style.display = 'none';
			loadProduct();
		}
	}
	else if(action == ACTION_PREV)
	{
		if(currentStage == STAGE_PRODUCT)
		{
			action = ACTION_RESET;
		}
		
		lastStage 	 = currentStage;
		currentStage = bakeryPath[currentStep - 1];
		currentStep	 = currentStep - 1;
	}
	else if(action == ACTION_START || action == ACTION_RESET)
	{
		if(action == ACTION_RESET)
		{
			lastStage 	 = bakeryPath[currentStep - 1];
		}
		else
		{
			lastStage 	 = currentStage;
		}
		currentStage = STAGE_TYPE;
		currentStep  = 0;
	}
	
	bakeryPath[currentStep] = currentStage;
	
	if(typeof lastStage != "undefined")
	{
		if(action == ACTION_RESET)
		{
			bakerySelection.style.display = 'block';
			bakeryProduct.style.display = 'none';
		}
		else
		{
			bakeryDivs[lastStage].style.display = 'none';	
		}
	}
	bakeryDivs[currentStage].style.display = 'block';
		
	bakeryFooter.style.display = (bakeryPath[currentStep] == STAGE_TYPE) ? 'none' : 'block' ;
}

function loadProduct()
{
	var productCode = "";
	for(var i=0; i<currentStep; i++)
	{
		productCode = productCode + optionPath[i].toString();	
	}	
	
	var productID = productPaths[productCode];
	var productData = products[productID - 1];
	
	bakeryProduct_Large.src = 'IMAGES/BAKERY/PRODUCTS/'+productID+'.jpg';
	if(productData.getElementsByTagName('small')[0].firstChild.data == "1")
	{
		bakeryProduct_Small.src = 'IMAGES/BAKERY/PRODUCTS/'+productID+'-s.jpg';
		bakeryProduct_Small.style.visibility = 'visible';
	}
	else
	{
		bakeryProduct_Small.style.visibility = 'hidden';
	}
	bakeryProduct_Paypal.value = productData.getElementsByTagName('paypal')[0].firstChild.data;
	bakeryProduct_Type.innerHTML = productData.getElementsByTagName('type')[0].firstChild.data;
	bakeryProduct_Type2.innerHTML = productData.getElementsByTagName('type2')[0].firstChild.data;
	bakeryProduct_Desc.innerHTML = productData.getElementsByTagName('desc')[0].firstChild.data;
	bakeryProduct_Cost.innerHTML = productData.getElementsByTagName('cost')[0].firstChild.data;
	bakeryProduct_Diameter.innerHTML = productData.getElementsByTagName('diameter')[0].firstChild.data;
	bakeryProduct_Height.innerHTML = productData.getElementsByTagName('height')[0].firstChild.data;
	
	bakerySelection.style.display = 'none';
	bakeryProduct.style.display = 'block';
}