
function handleKey(e) {
    var key;
	if (e == null) {
		// IE
		key = event.keyCode
	} else { 
		// Mozilla
		if (e.altKey || e.ctrlKey) {
			return true
		}
		key = e.which
	}
	switch(key) {
		case 8: go( 'previous' ); break
		case 13: go( 'next' ); break
		case 32: go( 'next' ); break
		case 66: go( 'previous' ); break
		case 98: go( 'previous' ); break
		case 110: go( 'next' ); break
		default: //window.alert(e.which)
	}
    return false;
}

var currentDiv = 0;
var slides;
var bar;
var pwidth = 100;

function go ( dir ) {
    if ( slides == null ) {
        slides = [];
        var divs = document.getElementsByTagName( 'div' );
        for ( var d = 0; d < divs.length; d++ ) {
            if ( divs[ d ].className.match( 'slide' ) ) {
                var s = [ divs[ d ] ];
                if ( divs[ d ].parentNode.className.match( 'slide' ) ) {
                    s.push( divs[ d ].parentNode );
                    if ( slides.length > 0 && slides[ slides.length -1 ].length == 1 ) {
                        slides.pop();
                    }
                }
                slides.push( s );
            }
        }
        bar = document.getElementById( 'bar' );
        currentDiv = 0;
    }
    var from = slides[ currentDiv ];
    var toDiv;
    if ( dir == 'next' ) {
        var toDiv = currentDiv + 1;
        if ( toDiv >= slides.length ) return;
        var to = slides[ toDiv ];
    } else {
        var toDiv = currentDiv - 1;
        if ( toDiv < 0 ) return;
        var to = slides[ toDiv ];
    }
    for ( var n = 0; n < from.length; n++ ) {
        from[ n ].style.display = 'none';
    }
    for ( var n = 0; n < to.length; n++ ) {
        to[ n ].style.display = '';
    }
    currentDiv = toDiv;
    bar.style.width = ( currentDiv / ( slides.length - 1 ) * pwidth ) + 'px';
}

document.onkeypress = handleKey


