//--> Hulpvariable

	var meAantal		= 0;
	var meGeselecteerd	= null;
	var meVerschuif		= null;
	var meLocaties		= new Array();
	var muLocatie		= new Array();
	var vmPosMinimaal	= new Array();
	var vmPosMaximaal	= new Array();
	var ovAfmTop		= 0;
	var ovAfmLeft		= 0;




//--> Selectie disable
	
	//--> Disable functie
	function olDisableSelect()
	{
		//--> Selectie uitschakelen
		disableSelect("startpagina");
	}
	
	//--> Selectie uitschakelen
	function disableSelect(veld)
	{
		//--> Wanneer er geselecteerd gaat worden niets doen
		document.getElementById(veld).onselectstart		= function (){ return false; };
		document.getElementById(veld).unselectable			= "on";
		document.getElementById(veld).style.MozUserSelect	= "none";
		document.getElementById(veld).style.cursor			= "default";
	}




//--> Interne functies
	
	//--> Overige pagina afmetingen uitlezen
	function ovPaginaAfm(scrollPositie)
	{	
		//--> Locatie(1) -> Index
		ovAfmTop			= document.getElementById('index').offsetTop;
		ovAfmLeft			= document.getElementById('index').offsetLeft;
		
		//--> Locatie(2) -> Index -> Cel Pagina
		ovAfmTop			+= document.getElementById('celPagina').offsetTop;
		ovAfmLeft			+= document.getElementById('celPagina').offsetLeft;
		
		//--> Locatie(3) -> Index -> Cel SubPagina
		ovAfmTop			+= document.getElementById('celSubPagina').offsetTop;
		ovAfmLeft			+= document.getElementById('celSubPagina').offsetLeft;
		
		//--> Locatie(3) -> Index -> Cel SubPagina
		ovAfmTop			+= document.getElementById('celInhoud').offsetTop;
		ovAfmLeft			+= document.getElementById('celInhoud').offsetLeft;
		
		//--> Locatie(3) -> Index -> Cel SubPagina
		ovAfmTop			+= document.getElementById('celSubInhoud').offsetTop;
		ovAfmLeft			+= document.getElementById('celSubInhoud').offsetLeft;
		
		//--> Locatie(3) -> Index -> Cel SubPagina
		ovAfmTop			+= document.getElementById('mGeheel').offsetTop;
		ovAfmLeft			+= document.getElementById('mGeheel').offsetLeft;
		
		//--> Locatie(4) -> Scroll positie
		if(scrollPositie)
		{
			ovAfmTop			-= document.body.scrollTop;
			ovAfmLeft			-= document.body.scrollLeft;
		}
	}
	
	
	//--> Menu locaties uitlezen
	function menuLocaties()
	{
		//--> Menu 1 t/m 3 uitlezen
		for(var i = 1; i <= meAantal; i++)
		{
			//--> Veld uitlezen
			var veld		= document.getElementById('mLocatie_' + i);
			
			//--> Locatie uitlezen
			var boven		= ovAfmTop + veld.offsetTop;						//--> Boven
			var rechts		= ovAfmLeft + veld.offsetLeft + veld.offsetWidth;	//--> Rechts
			var onder		= ovAfmTop + veld.offsetTop + veld.offsetHeight;	//--> Onder
			var links		= ovAfmLeft + veld.offsetLeft;						//--> Links
			
			//--> Locatie wegschrijven
			meLocaties[i]	= new Array(boven, rechts, onder, links);
		}
	}
	
	
	//--> Muis locatie uitlezen
	function muisLocatie()
	{
		//--> Muis locatie uitlezen
		muLocatie[0]		= window.event.clientX;		//--> Links
		muLocatie[1]		= window.event.clientY;		//--> Boven
	}
	
	
	//--> Verschuimenu locaties uitlezen
	function vmLocaties()
	{			
		//--> Schuifmenu 1 uitlezen
		vmPosMinimaal[1]	= ovAfmTop + document.getElementById('mSchuifVak_1').offsetTop;
		vmPosMaximaal[1]	= meLocaties[1][0]+((meLocaties[1][2]-meLocaties[1][0])/2);
		
		//--> Schuifmenus tussenin opstellen
		for(var i = 2; i <= meAantal; i++)
		{
			//--> Schuifmenu 2 uitlezen
			vmPosMinimaal[i]	= vmPosMaximaal[(i-1)];
			vmPosMaximaal[i]	= meLocaties[i][0]+((meLocaties[i][2]-meLocaties[i][0])/2);
		}

		//--> Schuifmenu 4 uitlezen
		vmPosMinimaal[(meAantal+1)]	= vmPosMaximaal[meAantal];
		vmPosMaximaal[(meAantal+1)]	= ovAfmTop + document.getElementById('mSchuifVak_' + (meAantal+1)).offsetTop + document.getElementById('mSchuifVak_' + (meAantal+1)).offsetHeight;
	}
	
	
	//--> Versleep menu instellen
	function menuVerslepenSet(status)
	{
		//--> Als menu geselecteerd moet worden
		if(status == "select")
		{
			//--> Locaties uitlezen
			ovPaginaAfm(false);
			
			//--> Veld uitlezen
			var veldLocatie		= document.getElementById('mLocatie_' + meGeselecteerd);
			var veldMenu		= document.getElementById('mTotaal_' + meGeselecteerd);
			
			//--> Afmetingen overnemen
			document.getElementById('mVerschuiven').style.width			= veldMenu.offsetWidth;
			document.getElementById('mVerschuiven').style.height		= veldMenu.offsetHeight;
			
			//--> Locatie overnemen
			document.getElementById('mVerschuiven').style.left			= ovAfmLeft + veldLocatie.offsetLeft+1;
			document.getElementById('mVerschuiven').style.top			= ovAfmTop + veldLocatie.offsetTop+1;
							
			//--> Rand weergeven
			document.getElementById('mVerschuiven').style.border		= "solid 2px #333333";
			
			//--> Verschuifmenu weergeven
			document.getElementById('mVerschuiven').style.visibility	= "visible";
		}
		
		//--> Als menu verborgen moet worden
		if(status == "deselect")
		{
			//--> Verschuifmenu verbergen
			document.getElementById('mVerschuiven').style.visibility	= "hidden";
		}
	}
	
	
	//--> Menu verslepen
	function menuVerslepenMove()
	{
		//--> Als een menu vast gehouden wordt
		if(meGeselecteerd != null)
		{			
			//--> Locaties uitlezen
			menuLocaties();
			muisLocatie();
			vmLocaties();
			
			//--> Hoogte van verschuif menu instellen
			document.getElementById('mVerschuiven').style.top			= muLocatie[1]+document.body.scrollTop-14;
			
			//--> Verschuif menu wissen
			meVerschuif		= null;
			
			//--> Muispositie met verschuifmenu 1 t/m 4 uitlezen	
			for(var i = 1; i <= (meAantal+1); i++)
			{
				//--> Controleer of deze min en max positie overeenkomen
				if(vmPosMinimaal[i] < (muLocatie[1]+document.body.scrollTop) && vmPosMaximaal[i] >= (muLocatie[1]+document.body.scrollTop))
				{
					//--> Verschuifvak kleurgeven
					document.getElementById('mSchuifVak_' + i).style.backgroundColor	= "#CA7900";
					
					//--> Verschuif menu installen
					meVerschuif	= i;
				}else
				{
					//--> Verschuifvak kleur wissen
					document.getElementById('mSchuifVak_' + i).style.backgroundColor	= "";
				}
			}
		}
	}




//--> Externe functies

	//--> Menu selectie
	function menuSelect()
	{
		//--> Wis de te zenden info
		smSendInfo	= "";
		
		//--> Locaties uitlezen
		ovPaginaAfm(true);
		menuLocaties();
		muisLocatie();
		
		//--> Muispositie met menu 1 t/m 3 vergelijken
		for(var i = 1; i <= meAantal; i++)
		{
			//--> Als muis binnen het menu valt
			if(meLocaties[i][0] <= muLocatie[1] && meLocaties[i][1] >= muLocatie[0] && meLocaties[i][2] >= muLocatie[1] && meLocaties[i][3] <= muLocatie[0])
			{
				//--> Menu selectie instellen
				meGeselecteerd	= i;
			}
		}
		
		//--> Als er een menu geselecteerd is
		if(meGeselecteerd != null)
		{
			//--> TempMenu vullen
			document.getElementById('mTemp').value	= document.getElementById('mLocatie_' + meGeselecteerd).innerHTML;
			
			//--> Verschuif menu instellen
			menuVerslepenSet("select");
		}		
	}
	
			
	//--> Menu deselect
	function menuDeselect()
	{
		//--> Als er een menu geselecteerd is en er een schuif menu geselecteerd is
		if(meGeselecteerd != null && meVerschuif != null)
		{
			//--> Als het menu niet tegen het huidige menu aan licht
			if(meGeselecteerd != meVerschuif && meGeselecteerd != meVerschuif-1)
			{
				//--> Geselecteerde menu standaard op 0 zetten
				smTVArrayToevoegen(meGeselecteerd, 0);
		
				//--> Als er omhoog geschoven moet worden
				if(meGeselecteerd < meVerschuif)
				{
					//--> Alles boven dit item omlaag schuiven
					for(var i = meGeselecteerd+1; i < meVerschuif; i++)
					{
						//--> Niveau laten zakken
						smTVArrayToevoegen(i, (i-1));
					}
					
					//--> Geselecteerde menu niveau aanpassen
					smTVArrayToevoegen(0, (meVerschuif-1));
				}
				
				//--> Als er omlaag geschoven moet worden
				if(meGeselecteerd > meVerschuif)
				{
					//--> Alles boven dit item omlaag schuiven
					for(var i = meGeselecteerd-1; i >= meVerschuif; i = i-1)
					{
						//--> Niveau laten zakken
						smTVArrayToevoegen(i, (i+1));
					}
					
					//--> Geselecteerde menu niveau aanpassen
					smTVArrayToevoegen(0, meVerschuif);
				}
				
				//--> Alles verplaatsen
				smDBVerplaatsen();
			}
			else
			{
				//--> NIETS
				smClearSelect();
			}
		}else
		{
			//--> NIETS
			smClearSelect();	
		}
	}






/*
FUNCTIE - SAMENSTELLEN VAN VERPLAATS LIJST
*/

//--> Variable
var smTVArray	= Array();
var smTVNr		= 0;

//--> Functie zelf
function smTVArrayToevoegen(van, naar)
{
	//--> Toevoegen aan array
	smTVArray[smTVNr]		= Array();
	smTVArray[smTVNr][0]	= van;
	smTVArray[smTVNr][1]	= naar;
	
	//--> Array ophogen
	smTVNr	+= 1;
}


/*
FUNCTIE - VERPLAATSEN VAN MENU OP STARTPAGINA
*/

//--> Functie zelf
function smVerplaatsen()
{
	//--> Als er een menu geselecteerd is en er een schuif menu geselecteerd is
	if(meGeselecteerd != null && meVerschuif != null)
	{
		//--> Als het menu niet tegen het huidige menu aan licht
		if(meGeselecteerd != meVerschuif && meGeselecteerd != meVerschuif-1)
		{
			//--> Als er omhoog geschoven moet worden
			if(meGeselecteerd < meVerschuif)
			{
				//--> Alles boven dit item omlaag schuiven
				for(var i = meGeselecteerd+1; i < meVerschuif; i++)
				{
					//--> Omlaag schuiven
					document.getElementById('mLocatie_' + (i-1)).innerHTML			= document.getElementById('mLocatie_' + i).innerHTML;
					document.getElementById('mLocatie_' + i).innerHTML				= "";
					
					//--> Hernoem menu
					document.getElementById('mTotaal_' + i).id						= "tmpMeTotaal_" + (i-1);
					document.getElementById('mTitel_' + i).id						= "tmpMeTitel_" + (i-1);
				}
				
				//--> Uiteindelijke veld in gewenst veld plaatsen
				document.getElementById('mLocatie_' + (meVerschuif-1)).innerHTML	= document.getElementById('mTemp').value;
				
				//--> Hernoem menu
				document.getElementById('mTotaal_' + meGeselecteerd).id				= "tmpMeTotaal_" + (meVerschuif-1);
				document.getElementById('mTitel_' + meGeselecteerd).id				= "tmpMeTitel_" + (meVerschuif-1);
			}
			
			//--> Als er omlaag geschoven moet worden
			if(meGeselecteerd > meVerschuif)
			{
				//--> Alles boven dit item omlaag schuiven
				for(var i = meGeselecteerd-1; i >= meVerschuif; i = i-1)
				{
					//--> Omlaag schuiven
					document.getElementById('mLocatie_' + (i+1)).innerHTML			= document.getElementById('mLocatie_' + i).innerHTML;
					document.getElementById('mLocatie_' + i).innerHTML				= "";
					
					//--> Hernoem menu
					document.getElementById('mTotaal_' + i).id						= "tmpMeTotaal_" + (i+1);
					document.getElementById('mTitel_' + i).id						= "tmpMeTitel_" + (i+1);
				}
				
				//--> Uiteindelijke veld in gewenst veld plaatsen
				document.getElementById('mLocatie_' + (meVerschuif)).innerHTML		= document.getElementById('mTemp').value;	
				
				//--> Hernoem menu
				document.getElementById('mTotaal_' + meGeselecteerd).id				= "tmpMeTotaal_" + meVerschuif;
				document.getElementById('mTitel_' + meGeselecteerd).id				= "tmpMeTitel_" + meVerschuif;
			}
			
		
			//--> Alle menus weer originele naam geven
			for(var i = 1; i <= meAantal; i++)
			{
				if(document.getElementById('tmpMeTotaal_' + i) != null){ document.getElementById('tmpMeTotaal_' + i).id	= "mTotaal_" + i; }
				if(document.getElementById('tmpMeTitel_' + i) != null){ document.getElementById('tmpMeTitel_' + i).id	= "mTitel_" + i; }
			}
		}
	}
	
	//--> Wis selectie
	smClearSelect();
}


//--> Wis de selectie
function smClearSelect()
{
	//--> Geselecteerde menu wissen
	meGeselecteerd	= null;
	
	//--> Menu geselecteerd wissen
	document.getElementById('mTemp').value	= "";
	
	//--> Verschuif menu instellen
	menuVerslepenSet("deselect");
	
	//--> Verschuifvak kleur wissen
	if(meVerschuif >= 1 && meVerschuif <= (meAantal+1))
	{
		document.getElementById('mSchuifVak_' + meVerschuif).style.backgroundColor	= "";
	}
	
	//--> Menuschuif wissen
	meVerschuif		= null;	
}



/*
FUNCTIE VOOR HET OPSLAAN VAN DE HUIDIGE SITUATIE
*/

//--> Variable
var smVerbinding	= false;
var smURL			= "extern.php?p=0000";
var smSendHistory	= "";
var smSendInfo		= "";
var smActie			= "";



//--> Functie zelf
function smDBUpdaten()
{
	//--> Verbinding openen
	if(window.XMLHttpRequest)
	{
		try
		{
			//--> Probeer verbinding op te zetten
			smVerbinding	= new XMLHttpRequest();
		}catch(e)
		{
			//--> Verbinding opzetten mislukt
			smVerbinding	= false;
		}
	}else if(window.ActiveXObject)
	{
		try
		{
			try
			{
				//--> Probeer verbinding op te zetten
				smVerbinding = new ActiveXObject("Msxml2.XMLHTTP");	
			}catch(e)
			{
				//--> Probeer verbinding op te zetten
				smVerbinding = new ActiveXObject("Microsoft.XMLHTTP");
			}
		}catch(e)
		{
			//--> Verbinding opzetten mislukt
			smVerbinding	= false;
		}
	}
	
	//--> Als er een pagina gevonden is
	if(smVerbinding)
	{
		//--> Verbinden
		smVerbinding.onreadystatechange = smDBVoltooid;
		smVerbinding.open("POST", smURL, true);
		smVerbinding.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		smVerbinding.setRequestHeader("Content-lengt", smSendInfo.length);
		smVerbinding.send(smSendInfo);
	}
}



//--> Functie voor voltooiing
function smDBVoltooid()
{	
	//--> Status 4 [complete]
	if(smVerbinding.readyState == 4 && smVerbinding.status == 200)
	{
		//--> Als actie verplaatsen is submenus verplaatsen
		if(smActie == "verplaatsen")
		{
			//--> Actie aanroepen
			smVerplaatsen();
		}
		
		//--> Als actie verplaatsen is submenus verplaatsen
		if(smActie == "maximaliseren")
		{
			//--> Actie aanroepen
			document.getElementById('mInhoud_' + smMinMaxSelect).innerHTML	= smVerbinding.responseText;
		}
	}
}



//--> Functie voor verplaatsing in de database
function smDBVerplaatsen()
{
	//--> Als er geen smSendInfo is
	if(smSendInfo == "")
	{
		//--> Variable
		smSendInfo	= "a=verplaatsen&aantal=" + smTVNr;
		smActie		= "verplaatsen";
		
		//--> Doorloop alle verplaatsingen
		for(var i = 0; i < smTVNr; i++)
		{
			//--> Locaties uitlezen
			var van		= smTVArray[i][0];
			var naar	= smTVArray[i][1];
			
			//--> Send inhoud
			smSendInfo	+= "&van" + i + "=" + van + "&naar" + i + "=" + naar;
		}
		
		//--> Verplaatsen
		smDBUpdaten();
		
		//--> Herstellen
		smTVArray	= Array();
		smTVNr		= 0;
	}
}



//--> Functie voor minimalisatie in de database
var smMinMaxSelect	= null;
function smDBMinMax(menuID)
{
	//--> Send inhoud
	smSendInfo	= "a=minmax&menu=" + menuID;

	//--> Selectie overnemen
	smMinMaxSelect	= menuID;

	//--> MinMax knop aanpassen
	
		//--> Huidige status uitlezen
		var status	= document.getElementById('mMinMaxStatus_' + menuID).value;
		
		//--> Ingeklapt
		if(status == 1)
		{
			//--> Uitklappen
			document.getElementById('mMinMaxStatus_' + menuID).value	= 0;
			document.getElementById('mMinMaxKnop_' + menuID).src		= "afbeeldingen/opbouw/index/startmenu/minimaliseren.jpg";
			
			//--> Actie type aanpassen
			smActie		= "maximaliseren";
		}
		
		//--> Uitgeklapt
		if(status == 0)
		{
			//--> Uitklappen
			document.getElementById('mMinMaxStatus_' + menuID).value	= 1;
			document.getElementById('mMinMaxKnop_' + menuID).src		= "afbeeldingen/opbouw/index/startmenu/maximaliseren.jpg";
			document.getElementById('mInhoud_' + menuID).innerHTML		= "&nbsp;";
			
			//--> Actie type aanpassen
			smActie		= "minimaliseren";
		}
	
	//--> Database updaten
	smDBUpdaten();
}



//--> Functie voor sluiten in de database
function smDBSluiten(menuID)
{	
	//--> Verwijder uit het zicht
	menuSelect();
	meVerschuif	= meAantal+1;
	
	//--> Menu deselecteren
	smVerplaatsen();
	
	//--> Opnieuw meVerschuif samenstellen
	meVerschuif	= meAantal;
	
	//--> Wis laatste menu
	document.getElementById('mLocatie_' + meVerschuif).innerHTML		= "";
	meAantal	-= 1;
	
	//--> Send inhoud
	smSendInfo	= "a=sluiten&menu=" + menuID;
	
	//--> Database updaten
	smDBUpdaten();
}
