var xmlDoc;
var menuArray;
var browser;
var host = 'http://www.pedofili.info/';
var color1 = '#db6852';
var color2 = '#245dc6';
var colore = '#12a53f';


function go()
{
	browser = findBrowser();
	

   	doTextSize(textSize());
	


	xmlDoc = null
	
	if (browser == 'Mozilla')
	{
		xmlDoc = document.implementation.createDocument('', '', null);
		xmlDoc.load('Controls/Menu.xml');
		xmlDoc.onload = initializeMenu;
	}
	else
		try
		{
			xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
			xmlDoc.onreadystatechange = 
				function () 
				{
					if (xmlDoc.readyState == 4)
						initializeMenu();
				};
			xmlDoc.load('Controls/Menu.xml');			
		}
		catch (err) {}
		
}
function findBrowser()
{
    if (!(document.getElementById || document.all || document.layers))
	{
		alert('Din nettleser kan ikke håndtere DHTML');
		return "";	
	}
	
    if (window.ActiveXObject)
        // IE
        return "IE";
    else if (document.implementation && document.implementation.createDocument)
        // MOZILLA, FIREFOX, etc
	{
		document.getElementById('MenuScroll').addEventListener('DOMMouseScroll', doWheel, false);
		return "Mozilla"; 
	}               
    else
        return "";
}
function loadMenuArray()
{
	var length = parseInt(countMenus()) + 1;
	menuArray = null;
	menuArray = new Array(length);
	
	for (var i = 0; i < length; i++)
		menuArray[i] = false;
		
	menuArray[0] = true;  // top level always open
}
function deleteMenu()
{
    	var mytable = document.getElementById('myTable');
    	var tablebody = mytable.getElementsByTagName('tbody').item(0);
    
    	var length = tablebody.rows.length;  
	for (var i = 0; i < length; i++)
		tablebody.deleteRow(-1); 
}
function initializeMenu()
{

	loadMenuArray();	
		
	deleteMenu();

	var dummy = expandMenu(0);
		
	loadMenu(0);

	setTop();
}
function countMenus()
{
	var node = xmlDoc.getElementsByTagName('Menu')[0];
	var menus = 0;
	
	
	if (node.hasChildNodes())
		for (var i = 0; i < node.childNodes.length; i++)
		{
			var childNode = node.childNodes[i];
			
			if (childNode.hasChildNodes())	
				for (var j = 0; j < childNode.childNodes.length; j++)
					switch (childNode.childNodes[j].tagName)
					{
						case 'Image'  : break;
						case 'Width'  : break;
						case 'Height' : break;
						case 'Url'    :	break;
						case 'Total'  :	break;
						case 'Menu'   : if (childNode.childNodes[j].childNodes[0].nodeValue > menus)
						                    menus = childNode.childNodes[j].childNodes[0].nodeValue;
										break;
						case 'Level'  : break;
						default:;	
					}
		}
	
	return menus;	
}

var pos;

function expandMenu(menu)
{
	var node = xmlDoc.getElementsByTagName('Menu')[0];
	var match = false;

	if (menu == 0)
		pos = 0;
	
	
		
	if (node.hasChildNodes())
		for (var i = 0; i < node.childNodes.length; i++)
		{
			var childNode = node.childNodes[i];
			var thismenu;
			
			if (childNode.hasChildNodes())	
				for (var j = 0; j < childNode.childNodes.length; j++)
					switch (childNode.childNodes[j].tagName)
					{
						case 'Image'  : break;
						case 'Width'  : break;
						case 'Height' : break;
						case 'Url'    :	if (window.location == host + childNode.childNodes[j].childNodes[0].nodeValue)													
											match = true;
										break;
						case 'Total'  :	if (menu == 0)
											pos += parseInt(childNode.childNodes[j].childNodes[0].nodeValue);
										break;
						case 'Menu'   : thismenu = childNode.childNodes[j].childNodes[0].nodeValue;
										break;
						case 'Level'  : if (menu == thismenu)
								{
									if (match)
									{
										menuArray[menu] = true;
										return true;
									}
									else
									{	
										if (childNode.childNodes[j].childNodes[0].nodeValue != '-1')
											if (expandMenu(childNode.childNodes[j].childNodes[0].nodeValue))
											{
												menuArray[menu] = true;
												return true;
											}
									}
								}									
										break;
						default:;	
					}
		}
		
	return false;	
}
function mouseIn()
{
    this.bgColor = '#6483c3';
}
function mouseOut()
{
    if (window.location != host + this.id) 
        this.bgColor = '';
}
function linkIn()
{
    document.body.style.cursor = 'pointer';   
    document.body.style.cursor = 'hand';   
}
function linkOut()
{
    document.body.style.cursor = 'pointer';
    document.body.style.cursor = 'default';
}
function loadMenu(menu)
{
    	if (!menuArray[menu])
        	return; // menu not opened

	var node = xmlDoc.getElementsByTagName('Menu')[0];
	var mytable = document.getElementById('myTable');
	var tablebody = mytable.getElementsByTagName('tbody').item(0);
	var num = 0; // number of menuitems in menu 0
	
	
	if (node.hasChildNodes())
		for (var i = 0; i < node.childNodes.length; i++)
		if (node.childNodes[i].nodeType == 1)
		{
		    	var stop = false;
			var childNode = node.childNodes[i];  
			var newrow = document.createElement('tr');
			
			newrow.align = 'center';
			newrow.onmouseover = mouseIn; 
			newrow.onmouseout = mouseOut; 
			
			var lnkimg = document.createElement('img');
			lnkimg.setAttribute('id', 'link' + i);
			lnkimg.onmouseover = linkIn; 
			lnkimg.onmouseout = linkOut;
			
			var lnkdiv = document.createElement('div');
			lnkdiv.style.width = '117px';
			lnkdiv.appendChild(lnkimg);
			
			
			
			if (childNode.hasChildNodes())	
				for (var j = 0; j < childNode.childNodes.length; j++)
				if (stop == false && childNode.childNodes[j].nodeType == 1)	
					switch (childNode.childNodes[j].tagName)
					{
						case 'Image'  : lnkimg.setAttribute('src', childNode.childNodes[j].childNodes[0].nodeValue);
										break;
						case 'Width'  : lnkimg.setAttribute('width', childNode.childNodes[j].childNodes[0].nodeValue);
									    break;
						case 'Height' : lnkimg.setAttribute('height', childNode.childNodes[j].childNodes[0].nodeValue);
									    break;
						case 'Url'    :	newrow.id = childNode.childNodes[j].childNodes[0].nodeValue; 
										str = 'saveTop(); window.location = "' + host + newrow.id + '";';
										lnkimg.onclick = new Function(str);
										if (window.location == host + newrow.id)
											newrow.bgColor = '#6483c3';
										break;
						case 'Total'  :	newrow.setAttribute('height', childNode.childNodes[j].childNodes[0].nodeValue);
										break;
						case 'Menu'   : if (childNode.childNodes[j].childNodes[0].nodeValue != menu)
						                   stop = true;
										break;
						case 'Level'  : if (childNode.childNodes[j].childNodes[0].nodeValue != '-1')
										{	
																			
											var colorsdiv = document.createElement('div');
											colorsdiv.style.height = newrow.height - 1;
											colorsdiv.style.width = '4px';
											if (menu == 0)
											{
											    if (num % 2 == 0)
											         colorsdiv.style.backgroundColor = color1;
											    else
											         colorsdiv.style.backgroundColor = color2;
											    num++;
											}
											else
											    colorsdiv.style.backgroundColor = colore;
											    
											colorsdiv.style.lineHeight = (newrow.getAttribute('height') - 2) + 'px';
											colorsdiv.innerHTML = '&nbsp;';
											
											var colors = document.createElement('td');
										    	colors.className = 'menuleft';
										    	colors.style.width = '4px';
										    	colors.appendChild(colorsdiv);
											
											
										    	var lnk = document.createElement('td');
											lnk.className = 'menumiddle';
											lnk.style.width = '117px';
											lnk.appendChild(lnkdiv);
											
											
											var expimg = document.createElement('img');
											expimg.className = 'expand';
											if (menuArray[childNode.childNodes[j].childNodes[0].nodeValue] == true)
												expimg.setAttribute('src', 'Controls/Images/ArrowUp.gif');
											else
												expimg.setAttribute('src', 'Controls/Images/ArrowDown.gif');
											expimg.onclick = 
												new Function('toggleMenu("' + childNode.childNodes[j].childNodes[0].nodeValue + '");');
												
											var expdiv = document.createElement('div');
			                                				expdiv.style.width = '27px';
			                                				expdiv.appendChild(expimg);	
										    
										    
                                            						var exp = document.createElement('td');
											exp.className = 'menuright';
											exp.appendChild(expdiv);												
											
											
											newrow.appendChild(colors);
											newrow.appendChild(lnk);
											newrow.appendChild(exp);
											tablebody.appendChild(newrow);
											
											
											loadMenu(childNode.childNodes[j].childNodes[0].nodeValue);
										}
										else if (menu == 0)
											{
												var colorsdiv = document.createElement('div');
												colorsdiv.style.height = newrow.height - 1;
												colorsdiv.style.width = '4px';
												if (num % 2 == 0)
												     colorsdiv.style.backgroundColor = color1;
												else
												     colorsdiv.style.backgroundColor = color2;
												num++;     
												colorsdiv.style.lineHeight = (newrow.getAttribute('height') - 2) + 'px';
												colorsdiv.innerHTML = '&nbsp;';
												
												var colors = document.createElement('td');
											    	colors.className = 'menuleft';
											    	colors.style.width = '4px';
                                                						colors.appendChild(colorsdiv);


                                                						var lnk = document.createElement('td');
												lnk.className = 'menumiddle';
												lnk.style.width = '117px';
												lnk.appendChild(lnkimg);
												
											    
												
												var exp = document.createElement('td');
												exp.className = 'menuright';
												exp.colSpan = '2';
												
												
												var expdiv = document.createElement('div');
												expdiv.innerHTML = '&nbsp;';
												exp.appendChild(expdiv);
												
												
												newrow.appendChild(colors);
												newrow.appendChild(lnk);
												newrow.appendChild(exp);
												tablebody.appendChild(newrow);																
											}
											else	
											{
											    	var colorsdiv = document.createElement('div');
											    	colorsdiv.style.height = newrow.height - 1;
											    	colorsdiv.style.width = '4px';
											    	colorsdiv.style.backgroundColor = colore;
											    	colorsdiv.style.lineHeight = (newrow.getAttribute('height') - 2) + 'px';
											    	colorsdiv.innerHTML = '&nbsp;';
											
											    	var colors = document.createElement('td');
										        	colors.className = 'menuleft';
										        	colors.style.width = '4px';
										        	colors.appendChild(colorsdiv);

											    			
											    	var lnk = document.createElement('td');
												lnk.className = 'menuright';
												lnk.colSpan = '3';
												lnk.appendChild(lnkimg);
												
												
												newrow.appendChild(colors);
												newrow.appendChild(lnk);
												tablebody.appendChild(newrow);	
											}
										break;
						default:;	
					}  // switch
		}  // for
	
	//setTimeout('', 50);
	//if (pos > 50) document.getElementById("MenuScroll").scrollTop = pos - 50;

}
function toggleMenu(menu)
{
	menuArray[menu] = !menuArray[menu];
	
	deleteMenu();


	loadMenu(0);
}



var stop = true;

function scrollWindow(speed)
{
	var pss = document.getElementById('MenuScroll').scrollTop;
	var end = document.getElementById('MenuScroll').scrollHeight - 
				document.getElementById('MenuScroll').style.height;
	
	if (!stop)
	{
		pss += speed;
		
		if (pss < 0)
		{
			pss = 0;
			stop = true;
		}
		else if (pss > end)
		{
			pss = end - 1;
			stop = true;
		}
		document.getElementById('MenuScroll').scrollTop = pss;
		setTimeout('scrollWindow(' + speed + ')', 100);
	}
}
function startScroll(speed)
{
	stop = !stop;
	scrollWindow(speed);
}
function endScroll()
{
	stop = true;
}
function doWheel(event)
{
	var delta = 0;
	if (!event) event = window.event;
	if (event.wheelDelta)
  	{
    		// IE & Opera
   		delta = event.wheelDelta / 120;
  	}
  	else if (event.detail) // W3C
  	{
    		delta = -event.detail / 3;
  	}
	var str = (delta > 0 ? 'MenuUp' : 'MenuDown');	
	doDownId(str);
	setTimeout('doUpId("' + str + '")', 100);
	document.getElementById('MenuScroll').scrollTop -= (delta)*15;	
	if (event.stopPropagation) 
	{
		event.stopPropagation();
		event.preventDefault();
	}
}
function doDown(obj)
{
	obj.style.backgroundImage = obj.style.backgroundImage.replace(/s.gif/i,'.gif');
}
function doUp(obj)
{
	if (obj.style.backgroundImage.match(/s.gif/i) == null)
		obj.style.backgroundImage = obj.style.backgroundImage.replace(/.gif/i,'s.gif');
}
function doDownId(str)
{
	var obj = document.getElementById(str);
	if (obj != null)
		doDown(obj);
}
function doUpId(str)
{
	var obj = document.getElementById(str);
	if (obj != null)
		doUp(obj);
}
function currentIndex()
{
    	var node = xmlDoc.getElementsByTagName('Menu')[0];
    
	for (var i = 0; i < node.childNodes.length; i++)
		if (node.childNodes[i].nodeType == 1)
			if (node.childNodes[i].hasChildNodes())	
				for (var j = 0; j < node.childNodes[i].childNodes.length; j++)
					if (node.childNodes[i].childNodes[j].nodeType == 1)
						if (node.childNodes[i].childNodes[j].tagName == 'Url')
	    						if (window.location == host + node.childNodes[i].childNodes[j].childNodes[0].nodeValue)
	        						return i;
		
	return node.childNodes.length - 1;
}
function nextUrl(fromIndex)
{
	var node = xmlDoc.getElementsByTagName('Menu')[0];
    
	for (var i = fromIndex + 1; i < node.childNodes.length; i++)
		if (node.childNodes[i].nodeType == 1)
			if (node.childNodes[i].hasChildNodes())	
				for (var j = 0; j < node.childNodes[i].childNodes.length; j++)
					if (node.childNodes[i].childNodes[j].nodeType == 1)
						if (node.childNodes[i].childNodes[j].tagName == 'Url')
	    						return node.childNodes[i].childNodes[j].childNodes[0].nodeValue;
	
	for (var i = 0; i <= fromIndex; i++)
		if (node.childNodes[i].nodeType == 1)
			if (node.childNodes[i].hasChildNodes())	
				for (var j = 0; j < node.childNodes[i].childNodes.length; j++)
					if (node.childNodes[i].childNodes[j].nodeType == 1)
						if (node.childNodes[i].childNodes[j].tagName == 'Url')
	    						return node.childNodes[i].childNodes[j].childNodes[0].nodeValue;  
		
	return '';		
}
function lastUrl(fromIndex)
{
	var node = xmlDoc.getElementsByTagName('Menu')[0];
    
	for (var i = fromIndex - 1; i >= 0; i--)
		if (node.childNodes[i].nodeType == 1)
			if (node.childNodes[i].hasChildNodes())	
				for (var j = 0; j < node.childNodes[i].childNodes.length; j++)
					if (node.childNodes[i].childNodes[j].nodeType == 1)
						if (node.childNodes[i].childNodes[j].tagName == 'Url')
	    						return node.childNodes[i].childNodes[j].childNodes[0].nodeValue;
	
	for (var i = node.childNodes.length - 1; i >= fromIndex; i--)
		if (node.childNodes[i].nodeType == 1)
			if (node.childNodes[i].hasChildNodes())	
				for (var j = 0; j < node.childNodes[i].childNodes.length; j++)
					if (node.childNodes[i].childNodes[j].nodeType == 1)
						if (node.childNodes[i].childNodes[j].tagName == 'Url')
	    						return node.childNodes[i].childNodes[j].childNodes[0].nodeValue;  
		
	return '';		
}
function nextPage()
{	
    	var i = currentIndex();
    	
	window.location = host + nextUrl(i);
}
function lastPage()
{
    	var i = currentIndex();
        
	window.location = host + lastUrl(i);
}
