/* from pylize, PLies clone in pyton by Christopher Arndt
   http://www.chrisarndt.de/en/software/pylize/
   modified to work with Internet Explorer (and Opera) by Dobrica Pavlinusic
*/

if (!document.all) {
	window.captureEvents(Event.KEYPRESS);
} else {
	document.onkeypress = handleKey;
}
window.onkeypress = handleKey;

var counter = 0;
var d;

function initPage() {
    d = getDelayedElements();
}

function openTOC() {
  window.open('toc.html', 'toc',
    'locationbar=no,menubar=no,status=no,width=' + String(screen.availWidth) +
    ',height=' + String(screen.availHeight));
  return false;
}

function getDelayedElements() {
    var a = new Array();
    var el = document.getElementsByTagName("*");
    for (i=0; i < el.length; i++) {
        if (el[i].className == "delayed") {
            a.push(el[i]);
        }
    }
    return a
}

function showNextDelayed() {
    if (counter < d.length) {
        d[counter].style.visibility = "visible";
        counter++;
        return true;
    }
    else {
        return false;
    }
}

function find_link(name) {
	if (!document.all) {
		return document.links[name];
	} else {
		for(var i=0; i < document.links.length; ++i) {
			if (document.links[i].name == name) {
				return document.links[i].href;
			}
		}
	}
}

function handleKey(e) {
	var code;
	var link;

	if (!document.all) {
		code = e.which;
	} else {
		code = window.event.keyCode;
	}
//	alert("Key pressed! ASCII-value: " + code);
	switch (code) {
		case 32: // space
		case 110: // n
			if (! showNextDelayed()) {
				link = find_link("next") || find_link("forward");
			}
			break;
		case 8: // BS
		case 98: // b
			link = find_link("back") || find_link("toc");
			break;
//		case 113: // q
//			window.close();
		case 116: // t
		case 27: // esc
			link = find_link("toc");
			break;
	}
	if (link) {
		top.location = link;
		return false;
	}

	window.routeEvent(e)
	return true;
}

