var hash     = new Array();
var pages    = new Array();
var sections = new Array();

function __init()  {
	hash = new Array();
	pages = new Array();
	sections = new Array();
}

function initXML(url)  {
	var xml = null;

	if (window.XMLHttpRequest)
		xml = new XMLHttpRequest();
	else if (window.ActiveXObject)
		xml = new ActiveXObject("Microsoft.XMLHTTP");
	else
		return null;

	xml.open("GET", url);
	xml.onreadystatechange = function()  {
		if (xml.readyState == 4 && xml.status == 200)
			parseXML(xml.responseText);
	}

	xml.send(null);
}

function parseXML(xml)  {
	var xmlParser = null;

	if (window.DOMParser)  {
		xmlParser = new DOMParser().parseFromString(xml, 'text/xml');
	} else {
		xmlParser = new ActiveXObject("Microsoft.XMLDOM");
		xmlParser.async = false;
		xmlParser.loadXML(xml);
	}

	var xmlRoot = xmlParser.getElementsByTagName('pages')[0];
	var sectionIndex = 0;
	var pagesIndex = 0;
	var foo = document.getElementById('foo');

	for (var i=0; i < xmlRoot.childNodes.length; i++)  {
		var sectionNode = xmlRoot.childNodes[i];

		if (sectionNode.tagName == 'section')  {
			sections.push(sectionNode.getAttribute('id'));
			pages[pagesIndex] = new Array();

			for (var j=0; j < sectionNode.childNodes.length; j++)  {
				var linkNode  = sectionNode.childNodes[j];
				var linkIndex = 0;

				if (linkNode.tagName == 'link')  {
					pages[pagesIndex].push(linkNode.getAttribute('text'));
					hash[linkNode.getAttribute('text')] = linkNode.getAttribute('url');
				}
			}

			pagesIndex++;
		}
	}
}


function irc()  {
	var content = document.getElementById('content');

	if (content.innerHTML.match('IRC')==null)  {
		content.innerHTML = "IRC channel on #blacklight@blacklight.gotdns.org:6667";
	} else {
		content.innerHTML = 'if (new_guy_here)  { printf ("greetz by BlackLight. LULZ! LULZ!"); }<br><br>' +
			'This page is 100% HTML valid. <a href="http://validator.w3.org/check?uri=http%3A%2F%2Fblacklight.gotdns.org%2Findex.php" target="_blank" style="display: inline">W3C guys</a> told me. Moreover, this website has the power of the super cow.';
	}
}

function contact()  {
	var content = document.getElementById('content');
	var pgp = "<a href=\"/pgp.txt\" target=\"_blank\">PGP key</a>";

	if (content.innerHTML.match('Contact')==null)  {
		content.innerHTML = "Contact me at blacklight[at]ieee[dot]org | blacklight[at]0x00[dot]ath[dot]cx | blacklight[at]autistici[dot]org, ONLY " +
			"using my " + pgp;
	} else {
		content.innerHTML = 'if (new_guy_here)  { printf ("greetz by BlackLight. LULZ! LULZ!"); }<br><br>' +
			'This page is 100% HTML valid. <a href="http://validator.w3.org/check?uri=http%3A%2F%2Fblacklight.gotdns.org%2Findex.php" target="_blank" style="display: inline">W3C guys</a> told me. Moreover, this website has the power of the super cow.';
	}

}		

function mailing()  {
	var content = document.getElementById('content');

	if (content.innerHTML.match('subscribe') == null)  {
		content.innerHTML = '<div id="mailform">' +
			"You can subscribe our mailing list and receive news about my software and projects.<br>" +
			"Just enter your email address below (there will be no spam and a very low email traffic, don't worry).<br>" +
			"If you wish to unsubscribe, just send an email address with subject \"unsubscribe &lt;your_email&gt;\" " +
			"to blacklight[AT]0x00.ath.cx<br><br>" +
			"Your email address: <input type=\"text\" name=\"mail\" id=\"address\"/>" +
			"<button style=\"background-color: #000; color: #fff\" " +
			"onClick='subscribe(document.getElementById(\"address\").value, document.getElementById(\"response\"))'>" +
			"Subscribe</button></div><div id=\"response\"></div>";
	} else {
		content.innerHTML = 'if (new_guy_here)  { printf ("greetz by BlackLight. LULZ! LULZ!"); }<br><br>' +
			'This page is 100% HTML valid. <a href="http://validator.w3.org/check?uri=http%3A%2F%2Fblacklight.gotdns.org%2Findex.php" target="_blank" style="display: inline">W3C guys</a> told me. Moreover, this website has the power of the super cow.';
	}
}

function subscribe(email,div)  {
	var xmlhttp;

	if (window.XMLHttpRequest)  {
		xmlhttp = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	} else  {
		div.innerHTML = "<br>Sorry, your browser doesn't support AJAX technology...";
		return false;
	}

	div.innerHTML = "<br>Loading...";

	xmlhttp.onreadystatechange = function()  {
		if (xmlhttp.readyState == 4)  {
			div.innerHTML = "<br>" + xmlhttp.responseText;
		}
	}

	xmlhttp.open("GET", "mailing.php?addr=" + escape(email), true);
	xmlhttp.send(null);
}

function radio()  {
	var content = document.getElementById('content');
	var xmlhttp;

	if (content.innerHTML.match('8000')==null)  {
		content.innerHTML = "You can listen 0x00 - BlackLight radio online. Just tune on<br><b>http://0x00.ath.cx:8000/mpd.ogg.m3u</b> " +
			"using your favourite music player<br><br>Now playing:";

		if (window.XMLHttpRequest)  {
			xmlhttp = new XMLHttpRequest();
		} else if (window.ActiveXObject) {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} else  {
			content.innerHTML += "<br><b>Sorry, your browser doesn't support AJAX technology...</b>";
			return false;
		}

		content.innerHTML += "<br>Loading...";

		xmlhttp.onreadystatechange = function()  {
			if (xmlhttp.readyState == 4)  {
				content.innerHTML = content.innerHTML.replace(/<br>Loading.../, ' ' + xmlhttp.responseText);
			}
		}

		xmlhttp.open("GET", "radio.php", true);
		xmlhttp.send(null);
	} else {
		content.innerHTML = 'if (new_guy_here)  { printf ("greetz by BlackLight. LULZ! LULZ!"); }<br><br>' +
			'This page is 100% HTML valid. <a href="http://validator.w3.org/check?uri=http%3A%2F%2Fblacklight.gotdns.org%2Findex.php" target="_blank" style="display: inline">W3C guys</a> told me. Moreover, this website has the power of the super cow.';
	}
}

function donate()  {
	var content = document.getElementById('content');
	var paypal = '<form action="https://www.paypal.com/cgi-bin/webscr" method="post">' +
		'<input type="hidden" name="cmd" value="_s-xclick">' +
		'<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----">' +
		//'<input type="image" src="http://black01.freeshell.org/donate.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online.">' +
		'<button style="background-color: #000; color: #fff; border: 1px solid #fff" onmouseover=' +
		"\"this.style.backgroundColor='#222'\" onmouseout=\"this.style.backgroundColor='#000'\">Donate</button>" +
		'<img alt="" border="0" src="https://www.paypal.com/it_IT/i/scr/pixel.gif" width="1" height="1">' +
		'</form>';

	if (content.innerHTML.match('onate') == null)  {
		content.innerHTML = "I manage this website on my own on an old server I keep at home. The server means<br> expenditure to me, and all " +
			"the services you see here are mantained freely, just for<br> fun and passion. Anyway, you could make a donation to make this service " +
			"a little better<br> (I can't promise but we'll make the best effort), if you wish,<br>" +
			"using PayPal and just clicking the button below.<br><br>" + paypal;
	} else {
		content.innerHTML = 'if (new_guy_here)  { printf ("greetz by BlackLight. LULZ! LULZ!"); }<br><br>' +
			'This page is 100% HTML valid. <a href="http://validator.w3.org/check?uri=http%3A%2F%2Fblacklight.gotdns.org%2Findex.php" target="_blank" style="display: inline">W3C guys</a> told me. Moreover, this website has the power of the super cow.';
	}
}

function proxy()  {
	var content = document.getElementById('content');
	if (content.innerHTML.match('Proxy')==null)  {
		content.innerHTML = "Proxy HTTP server listening on " +
			"blacklight.gotdns.org:8080";
	} else {
		content.innerHTML = 'if (new_guy_here)  { printf ("greetz by BlackLight. LULZ! LULZ!"); }<br><br>' +
			'This page is 100% HTML valid. <a href="http://validator.w3.org/check?uri=http%3A%2F%2Fblacklight.gotdns.org%2Findex.php" target="_blank" style="display: inline">W3C guys</a> told me. Moreover, this website has the power of the super cow.';
	}
}

function setPos()  {
	if (
		(document.getElementById('about') != null) &&
		(document.getElementById('text') != null)
	   )  {
		var obj1 = document.getElementById('about');
		var obj2 = document.getElementById('text');
		var offset = (screen.width/2) - 300;

		obj1.style.left = offset + 'px';
		obj2.style.paddingLeft = offset + 'px';
	}
}

function wifiInsert()  {
	var form = document.getElementById('insertform');

	if (form.innerHTML != '')
		form.innerHTML = '';
	else  {
		form.innerHTML =
			'<br><table border="0">' +
			'<tr><td style="border: 0px">#username</td><td style="border: 0px"><input type="text" name="user"></td></tr>' +
			'<tr><td style="border: 0px">#SSID</td><td style="border: 0px"><input type="text" name="ssid"></td></tr>' +
			'<tr><td style="border: 0px">#city</td><td style="border: 0px"><input type="text" name="city"></td></tr>' +
			'<tr><td style="border: 0px">#province</td><td style="border: 0px"><input type="text" name="prov"></td></tr>' +
			'<tr><td style="border: 0px">#location</td><td style="border: 0px"><input type="text" name="loc"></td></tr>' +
			'<tr><td style="border: 0px">#encryption</td><td style="border: 0px"><select name="enc">' + 
			'<option value="None">None</option><option value="WEP">WEP</option><option value="WPA">WPA</option></select></td></tr>' +
			'</table><br>' +
			'<input type="submit" value="#submit">';
	}
}

function checkEvent(e)  {
	var menu = null;
	var menuX = 0;
	var menuY = 0;
	var submenu = null;

	if (!e)
		var e = window.event;

	if (e.button > 1)  {
		if (!(menu = document.getElementById('menu')))  {
			menu = document.createElement('div');

			var id = document.createAttribute('id');
			id.nodeValue = 'menu';

			menu.setAttributeNode(id);
			menu.style.border = '1px solid #fff';
			menu.style.top  = e.clientY + 'px';
			menu.style.left = e.clientX + 'px';
			menu.innerHTML =
				'<div style="border-bottom: 1px solid #fff" onmouseover="' +
					"if ((submenu = document.getElementById('submenu')))" +
					"document.body.removeChild(submenu)\">~ 0x00 b0x</div>";

			for (var i=0; i < sections.length; i++)
				menu.innerHTML +=
					'<li id="voice" onmouseover="createSubmenu(this)">#' + sections[i] + '()</li>';

			menuX = menu.style.left;
			menuY = menu.style.top;
			var re = new RegExp('px', 'g');

			menuX = menuX.replace(re, '');
			menuY = menuY.replace(re, '');
			
			document.body.appendChild(menu);
		} else {
			document.body.removeChild(menu);
			
			if ((submenu = document.getElementById('submenu')))
				document.body.removeChild(submenu);
		}
	} else {
		if ((menu = document.getElementById('menu')))
			document.body.removeChild(menu);
	}
}

function disableUp(e)  {
	document.oncontextmenu = new Function("return false");
}

function createSubmenu(element)  {
	var menu = document.getElementById('menu');
	var submenu = null;

	if ((submenu = document.getElementById('submenu')))
		document.body.removeChild(submenu);

	if (menu)  {
		var menuX = menu.style.left;
		var menuY = menu.style.top;
		var re = new RegExp('px', 'g');
		var index = 0;

		menuX = menuX.replace(re, '');
		menuY = menuY.replace(re, '');
		menuX = parseInt(menuX) + 80;
		menuY = parseInt(menuY) + 15;

		submenu = document.createElement('div');

		var id = document.createAttribute('id');
		id.nodeValue = 'submenu';

		submenu.setAttributeNode(id);
		submenu.style.border = '1px solid #fff';
		submenu.style.left = menuX + 'px';
		submenu.innerHTML  = '';

		switch (element.innerHTML)  {
			case '#main()':
				index = 0;
				break;

			case '#dev()':
				index = 1;
				break;

			case '#community()':
				index = 2;
				break;

			case '#services()':
				index = 3;
				break;
		}

		menuY += index*20;
		submenu.style.top  = menuY + 'px';

		for (var i=0; i < pages[index].length; i++)
			submenu.innerHTML +=
				'<li><a href="' + hash[pages[index][i]] + '">~ ' + pages[index][i] + '</a></li>';

		document.body.appendChild(submenu);
	} else
		document.body.removeChild(submenu);
}

function includeJS (fname)  {
	var head = document.getElementsByTagName('head')[0];
	var script = document.createElement('script');
	script.language = 'javascript';
	script.type = 'text/javascript';
	script.src = fname;
	head.appendChild(script);
}

