/**
 * @author meng
 */

$.ajaxSetup({
	cache : false
});

var pagereq = "";
var loadedpage = "";
var tickcount=0;

function updatePage() {
	// update the page number and load if page number lodged
	$("span.pageno").text("P" + formatPageNumber(pagereq));
	if(pagereq.length >= 3) {
		loadPage();
	};
}

function loadPage() {
	// page number is set so initiate load
    refreshPage(pagereq);
	loadedpage=pagereq;
	pagereq = "";

}

function refreshPage(pgno) {
	// retrieve the page specified and place in screen
	$("div.bodytext").text("").delay(300).load('getpage.py?page=' + pgno , function(resp, status, xhr) {
		if(status == "error") {
			$("div.bodytext").html("<br><span class=\"emph\">Error: " + xhr.status + " " + xhr.statusText+".</span><br>Go to page 100 for main index.");
		}
	});
	$("span.curpage").text(pgno);
}

function formatPageNumber(instr) {
	// pad the page number to 3 char for display
	while(instr.length < 3) {
		instr = instr + "_";
	}
	return (instr);
}

function tick() {
	// update the clock
	var now = new Date();
	$("span.date").text(now.format("ddd dd mmm"));
	$("span.time").text(now.format("HH:MM/ss"));
	// and refresh the page on an interval
	tickcount++;
	if (tickcount>30) { 
		 refreshPage(loadedpage);
		 tickcount=0;
	};
}


$.extend({
  getUrlVars: function(){
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
      hash = hashes[i].split('=');
      vars.push(hash[0]);
      vars[hash[0]] = hash[1];
    }
    return vars;
  },
  getUrlVar: function(name){
    return $.getUrlVars()[name];
  }
});


$(document).ready(function() {

	// default handler when the page loads
	pagereq = $.getUrlVar('startpage');
	if (!pagereq || pagereq.length != 3 ) {
		pagereq = "100";  // default
	}
	
	
	
	updatePage();
	tick();

	// set up timer
	window.setInterval(tick, 1000);

	$(document).keyup(function(event) {

		// number keys on top
		if(event.which >= 48 && event.which <= 57) {
			var thiskey = event.which - 48;
			pagereq = pagereq + thiskey.toString();
			updatePage();
			event.preventDefault();
		} 

		// number keys on keypad
		if(event.which >= 96 && event.which <= 105) {
			var thiskey = event.which - 96;
			pagereq = pagereq + thiskey.toString();
			updatePage();
			event.preventDefault();
		} 

		// mute
		if(event.which==77) {
			var player=document.getElementsByTagName("audio")[0];
			if (player.paused) {
				player.play();
			} else {
				player.pause();
			}
		}

		// console.log(event.which);

	});
});

