﻿var currentid;
var rels = new Array();
var list;

function toggle(el) {
	if (el.style.display) el.style.display = 'none';
	else el.style.display = '';
}

function getUrlVars() {
	var map = {};
	var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(m,key,value){map[key] = value;});
	return map;
}

function createRequest() {
	var request = false;
	try {
		request = new XMLHttpRequest();
	} catch (trymicrosoft) {
		try {
			request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (othermicrosoft) {
			try {
				request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (failed) {
				request = false;
			}
		}
	}
	if (!request) alert("Error initializing XMLHttpRequest!");
	else return request;
}

function showlist() {
	if (list) {
		document.getElementById('links').innerHTML = '';
		document.getElementById('list').innerHTML = list;
		document.getElementById('entry').innerHTML = '';
		return true;
	}
	document.getElementById('list').innerHTML = 'loading...';
	var url = 'ajxlist.php';
	var mpreq = createRequest();
	mpreq.open('GET', url, true);
	mpreq.onreadystatechange = function() {
		if (mpreq.readyState == 4) {
			if (mpreq.status == 200) {
				eval(mpreq.responseText);
				showlist();
			}
			else alert('sl code '+mpreq.status);
		}
	};
	mpreq.send(null);
}

function getrel(id) {
	if (rels[id]) {
		showrel(id);
		return true;
	}
	document.getElementById('entry').innerHTML = 'loading...';
	currentid = id;
	var url = 'ajxentry.php?cat='+id;
	var mpreq = createRequest();
	mpreq.open('GET', url, true);
	mpreq.onreadystatechange = function() {
		if (mpreq.readyState == 4) {
			if (mpreq.status == 200) {
				eval(mpreq.responseText);
				getrel(currentid);
			}
			else alert('gr code '+mpreq.status);
		}
	};
	mpreq.send(null);
}

function getrelx(id) {
	el = document.getElementById(id);
	if (rels[id]) {
		if (el.innerHTML) toggle(el);
		else el.innerHTML = rels[id];
		return true;
	}
	el.style.display = '';
	currentid = id;
	var url = 'ajxentry.php?cat='+id;
	var mpreq = createRequest();
	mpreq.open('GET', url, true);
	mpreq.onreadystatechange = function() {
		if (mpreq.readyState == 4) {
			if (mpreq.status == 200) {
				eval(mpreq.responseText);
				getrelx(currentid);
			}
			else alert('grx code '+mpreq.status);
		}
	};
	mpreq.send(null);
}

function showrel(id) {
	var links = '<ul>';
	if (rels[id]['nbl']) links += '<li>&laquo;&nbsp;<a href="?rel='+rels[id]['nbl']+'" onclick="getrel(\''+rels[id]['nbl']+'\');return false;">'+rels[id]['nbl']+'</a></li>';
	if (rels[id]['next'] && rels[id]['next'] != rels[id]['nbl']) links += '<li>&laquo;&nbsp;<a href="?rel='+rels[id]['next']+'" onclick="getrel(\''+rels[id]['next']+'\');return false;">'+rels[id]['next']+'</a></li>';
	links += '<li><a href="#" onclick="showlist();return false;">list</a></li>';
	if (rels[id]['prev'] && rels[id]['prev'] != rels[id]['pbl']) links += '<li><a href="?rel='+rels[id]['prev']+'" onclick="getrel(\''+rels[id]['prev']+'\');return false;">'+rels[id]['prev']+'</a>&nbsp;&raquo;</li>';
	if (rels[id]['pbl']) links += '<li><a href="?rel='+rels[id]['pbl']+'" onclick="getrel(\''+rels[id]['pbl']+'\');return false;">'+rels[id]['pbl']+'</a>&nbsp;&raquo;</li>';
	links += '</ul>';
	document.getElementById('links').innerHTML = links;
	document.getElementById('list').innerHTML = '';
	document.getElementById('entry').innerHTML = rels[id]['data'];
}

function starthere() {
	var map = getUrlVars();
	if (map['rel']) getrelx(map['rel']);
//	else showlist();
}

