var startLeftPos = 15;
var activSubMenuIndex = -1;
var activSubMenuName = "";
/*
//dane od teraz w tabeli "tab"
var maxFieldHeight = 46;
var minFieldHeight = 40;
var maxFieldWidth = 130;
var minFieldWidth = 100;
*/

var tab = new Array(6);
for(var i=0; i<tab.length; i++)
{
	tab[i] = new Array(4);
}
//odpowiedzialne za rozmiary menu 1 rzedu
tab[0][0] = 35; //maxFieldHeight
tab[0][1] = 35; //minFieldHeight
tab[0][2] = 160; //maxFieldWidth
tab[0][3] = 130; //minFieldWidth
//odpowiedzialne za pole powstajace pod oferta
tab[1][0] = 115;
tab[1][1] = 0;
tab[1][2] = 80;
tab[1][3] = 0;
//odpowiedzialne za rozmiary menu 2 rzedu
tab[2][0] = 20;
tab[2][1] = 20;
tab[2][2] = 112;
tab[2][3] = 95;
//rolety
tab[3][0] = 92;
tab[3][1] = 0;
tab[3][2] = 80;
tab[3][3] = 0;

tab[4][0] = 45;
tab[4][1] = 0;
tab[4][2] = 80;
tab[4][3] = 0;

tab[5][0] = 68;
tab[5][1] = 0;
tab[5][2] = 80;
tab[5][3] = 0;

//zmienna ver odpowiada za rodzaj pola (pole w glownym menu, rozmiar pola z podmenu, pole w podmenu)
function widthChange2(name, ver) { 
	//alert("ver: "+ver+" tab: "+tab[ver][0])\
	var element = document.getElementById(name);
	startTop = document.getElementById(name).style.top;
	//element.style.width = "auto";
	//element.style.minWidth = "auto";
	//element.style.maxWidth = "auto";
	//alert("name: "+name+ " minWid: "+element.o +" maxWid: "+element.style.maxWidth);
  //	document.getElementById('log').innerHTML = 'wartosc: '+element.style.top;
    if (!document.getElementById(name).currentWidth){
	 	document.getElementById(name).currentWidth = tab[ver][3];
		//document.getElementById(name).currentWidth = element.style.minWidth;
		//alert('currentWidth');
	 }
	 if(!document.getElementById(name).currnetHeight){
	 	document.getElementById(name).currentHeight = tab[ver][1];
		//document.getElementById(name).currentHeight = element.style.minHeight;
		//alert('currentHeight');
	 }
	 if(!document.getElementById(name).leftStep){
	 	document.getElementById(name).leftStep = startLeftPos;
	 }
	 if(!document.getElementById(name).topStep){
	 	document.getElementById(name).topStep = startTop;
	 }
	 if(!name.match("Space"))fadeBGColMem(name);
	//if no memory is set, set it first; 
    //doWidthChangeMem(element,element.currentWidth,150,20,10,0.5); 
	 //alert(document.getElementById(name).currentWidth);
  //	 document.getElementById('log').innerHTML = document.getElementById('log').innerHTML+" |"+name+" "+document.getElementById(name).currentWidth;
	 doWidthChangeMem2(document.getElementById(name), document.getElementById(name).currentWidth, tab[ver][2], document.getElementById(name).currentHeight, tab[ver][0] , 5, 10, 0.5, startTop); 
	 //doWidthChangeMem2(document.getElementById(name), document.getElementById(name).currentWidth, element.style.maxWidth, document.getElementById(name).currentHeight, element.style.maxHeight , 5, 10, 0.5, startTop); 
}

function widthRestore(name, ver)
{ 
	var element = document.getElementById(name);
    if (!document.getElementById(name).currentWidth) return; 
//    doWidthChangeMem(element, element.currentWidth,100,20,10,0.5); 
	doWidthChangeMem2(document.getElementById(name), document.getElementById(name).currentWidth, tab[ver][3], document.getElementById(name).currentHeight, tab[ver][1], 5, 10, 0.5, startTop); 
	if(!name.match("Space"))fadeBGColRestore(name);
}


function doWidthChangeMem2(elem, startWidth, endWidth, startHeight, endHeight, steps, intervals, powr, maxTop) { 
    if (elem.widthChangeMemInt){
	 	window.clearInterval(elem.widthChangeMemInt);
		}
	if(elem.name=="pos7SubSpace")alert("BUBBA");
    var actStep = 0;
	 var startLeft = elem.leftStep;
	 //var endLeft = elem.leftStep - (endWidth - startWidth)/2;
	 if(endWidth<=startWidth)
	 	var endLeft = startLeftPos;
	 else
	 	var endLeft = startLeftPos - (endWidth - startWidth)/2;
	 	//var endLeft = startLeftPos - (maxFieldWidth - minFieldWidth)/2;
	 var startTop = elem.topStep;
	 //var endTop = elem.topStep - (endHeight - startHeight)/2
	 if(endHeight>startHeight)
	 {
	 	var endTop = maxTop - (endHeight-startHeight)/2;
		//alert('more: '+endTop);
	 }else
	 {
	 	var endTop = maxTop;
		//alert('less: '+endTop);
	 }
    elem.widthChangeMemInt = window.setInterval(
	function() { 
	  elem.currentWidth = easeInOut(startWidth, endWidth, steps, actStep, powr);
	  if(startHeight!=endHeight)
	  {	
	  		elem.currentHeight = easeInOut(startHeight, endHeight, steps, actStep, powr);	}
	  elem.leftStep = easeInOut(startLeft, endLeft, steps, actStep, powr );
	  elem.topStep = easeInOut(startTop, endTop, steps, actStep, powr);
	  if(elem.leftStep>100)
	  		elem.leftStep = 100;	
	  /*if(elem.topStep<maxTop)		
	  		elem.topStep = maxTop;*/
	  //alert(elem.style.top.substr(0, elem.style.top.indexOf('p')))	;
		//alert(elem.currentWidth - (endWidth - startWidth))	;
	  elem.style.width = elem.currentWidth + "px";
	  elem.style.height = elem.currentHeight + "px";
	  //document.getElementById('log').innerHTML= document.getElementById('log').innerHTML +" "+elem.topStep;
	  if(!elem.staticLeft)elem.style.left =  elem.leftStep + "px" ;
//	  elem.style.top = elem.topStep + "px"		;
	  actStep++;
	  if (actStep > steps) 
	  {
	  		window.clearInterval(elem.widthChangeMemInt);
			elem.busy = false;
			//document.getElementById('log').innerHTML= document.getElementById('log').innerHTML +"<br/>";
	  }
	} 
	,intervals)
}

function easeInOut(minValue,maxValue,totalSteps,actualStep,powr) {
    var delta = maxValue - minValue; 
    var stepp = minValue+(Math.pow(((1 / totalSteps) * actualStep), powr) * delta); 
    return Math.ceil(stepp) 
    } 
	 
function fadeBGColMem(name) 
{
	if (!document.getElementById(name).currentbgRGB) 
	{
		//alert('setting color');
		document.getElementById(name).currentbgRGB = [68, 80, 114]; //if no mem is set, set it first;
	}
	//alert('KICHA: '+name);
	doBGFadeMem(document.getElementById(name), document.getElementById(name).currentbgRGB,[124, 141, 189],4,20,1);
}

function fadeBGColRestore(name)
{
	if (!document.getElementById(name).currentbgRGB) return;	//avoid error if mouseout an element occurs before the mosueover
	//alert('hello');
	//(e.g. the pointer already in the object when onload)
	doBGFadeMem(document.getElementById(name), document.getElementById(name).currentbgRGB,[68, 80, 114],12,20,1);
}

	 
function doBGFade(elem,startRGB,endRGB,finalColor,steps,intervals,powr) {
//BG Fader by www.hesido.com
	if (elem.bgFadeInt) window.clearInterval(elem.bgFadeInt);
	var actStep = 0;
	elem.bgFadeInt = window.setInterval(
		function() {
			elem.style.backgroundColor = "rgb("+
				easeInOut(startRGB[0],endRGB[0],steps,actStep,powr)+","+
				easeInOut(startRGB[1],endRGB[1],steps,actStep,powr)+","+
				easeInOut(startRGB[2],endRGB[2],steps,actStep,powr)+")";
			actStep++;
			if (actStep > steps) {
			elem.style.backgroundColor = finalColor;
			window.clearInterval(elem.bgFadeInt);
			}
		}
		,intervals)
}

function doBGFadeMem(elem,startRGB,endRGB,steps,intervals,powr) {
//BG Fader with Memory by www.hesido.com
	if (elem.bgFadeMemInt) window.clearInterval(elem.bgFadeMemInt);
	var actStep = 0;
	elem.bgFadeMemInt = window.setInterval(
		function() {
			elem.currentbgRGB = [
				easeInOut(startRGB[0],endRGB[0],steps,actStep,powr),
				easeInOut(startRGB[1],endRGB[1],steps,actStep,powr),
				easeInOut(startRGB[2],endRGB[2],steps,actStep,powr)
				];
			elem.style.backgroundColor = "rgb("+
				elem.currentbgRGB[0]+","+
				elem.currentbgRGB[1]+","+
				elem.currentbgRGB[2]+")";
			actStep++;
			if (actStep > steps) window.clearInterval(elem.bgFadeMemInt);
		}
		,intervals)
}

//funkcja do robienia miejsca w którym pojawiaja się opcje submenu
function makeSpace(name1)
{
	name = name1 + "SubSpace";
	var subSpace = document.getElementById(name);
	var ver = -1;
	switch(name1)
		{
			case "pos2":{ ver = 1; break;}
			case "pos3":{ ver = 5; break;}
			case "pos8":{ ver = 3; break;}
			case "pos7":
			case "pos6":
			case "pos9":
			case "pos10":{ ver = 4; break;}
			default: { ver = 1; break;}
		}
		//alert("VER: "+ver);
	if(activSubMenuIndex!=-1 && activSubMenuName!="")
	{
		var i = 1;
		while(document.getElementById(activSubMenuName+"SubMenu"+i)){
			document.getElementById(activSubMenuName+"SubMenu"+i).style.visibility = "hidden";
		document.getElementById(activSubMenuName+"SubMenu"+i).style.top = "0px";
		i++;
		}
		widthRestore(activSubMenuName + "SubSpace", activSubMenuIndex);
		subSpace.style.visibility = "hidden";
		subSpace.style.marginTop = "0px";
//		activSubMenuIndex = -1;
//		activSubMenuName = "";
	}
	//if(activSubMenuIndex!=ver)
	if(activSubMenuName!=name1)
	{
		//zamykamy dotychczas otwarte submenu
		/*
		if(activSubMenuIndex!=-1){
			var i = 1;
			while(document.getElementById(activSubMenuName+"SubMenu"+i)){
				document.getElementById(activSubMenuName+"SubMenu"+i).style.visibility = "hidden";
			document.getElementById(activSubMenuName+"SubMenu"+i).style.top = "0px";
			i++;
			}
			widthRestore(activSubMenuName + "SubSpace", activSubMenuIndex);
			document.getElementById(activSubMenuName + "SubSpace").style.visibility = "hidden";
			document.getElementById(activSubMenuName + "SubSpace").style.marginTop = "0px";
		}
		*/
		//otwieramy nowe submenu
		activSubMenuIndex = ver;
		activSubMenuName = name1;
		widthChange2(name, ver);
		subSpace.busy = true;
		subSpace.style.visibility = "visible";
		subSpace.style.marginTop = "4px";
		//subSpace.style.width = "50px";
		subSpace.showSubMenu = window.setInterval(
	function() {
		if(!subSpace.busy)
		{
			var i = 1;
			while(document.getElementById(name1+"SubMenu"+i)){
				document.getElementById(name1+"SubMenu"+i).staticLeft=true;
				document.getElementById(name1+"SubMenu"+i).style.visibility = "visible";
				if(i!=1)
					document.getElementById(name1+"SubMenu"+i).style.top = ((i-1) *24) + "px";
				else
					document.getElementById(name1+"SubMenu"+i).style.top = "0px";
				i++;
			}
			window.clearInterval(subSpace.showSubMenu);
		}
	}
		,100);
	}else{
		activSubMenuIndex = -1;
		activSubMenuName = "";
	}
}

//funkcja obslugujaca pojawianie się koncowych galezi gazdego z podmenu

function makeMeVisible(name, ver)
{
	subMenu = document.getElementById(name);
	subMenu.busy = true;
	subMenu.visible = true;
	widthChange2(name, ver);
	subMenu.showFinalLeavs = window.setInterval(
	function(){
		if(!subMenu.busy)
		{
			//alert("NAME: "+ name + " sub left: "+subMenu.style.left+" sub top: "+subMenu.style.top + " width: "+subMenu.style.width);
			window.clearInterval(subMenu.showFinalLeavs);
		}
	}, 100);
}
