/*

  JavaScript for navigating through the diglib page turner
  Written by: Kevin S. Clarke (ksclarke@princeton.edu)

*/

/* We need this for a safari workaround */
var agt = navigator.userAgent.toLowerCase();
var is_safari = ((agt.indexOf('safari')!=-1)&&(agt.indexOf('mac')!=-1))?true:false;

/* Gets the key that was just pressed */
function getKey(aEvent) {
	if (window.event)
		return window.event.keyCode;
	else if (aEvent)
		return aEvent.which;
	else
		return null;
}

/*
	A workaround for IE because IE fires the form.submit() before triggering
	the onchange() event.
*/
function submitIfEnter(aEvent, aIndex, aInset) {
	var key = getKey(aEvent);
	
	if (key != null && (key == 13 || key == 3)) {
		setCurrentIndex(aIndex, aInset);
	}
}

/*
	A workaround for IE because IE fires the form.submit() before triggering
	the onchange() event.
*/
function submitIfEnter2(aEvent, aIndex, aInset) {
	var key = getKey(aEvent);

	if (key != null && (key == 13 || key == 3)) {
		interactWith(aIndex, aInset);
	}
}

function interactWith(aIndex, aInset) {
	var form = document.getElementById("pageturner");

    /* We want to start at the beginning again */
	if (typeof(form.elements['_action']) != 'undefined') {
		form._action.value = '';
		form._viewheight.value = '';
		form._viewwidth.value = '';
		form._reslevels.value = '';
		form._rotation.value = '';
		form._fullimage.value = 'true';
		form._res.value = '3';
	}

	if (aInset == '') {
		form._inset.value = '0';
	}
	else {
		form._inset.value = aInset;
	}

	form._index.value = aIndex;
	form.action = "navigate";

	if (is_safari) {
		var href = document.location.href;
		var end = href.indexOf('/', 8);
		var url;
	
		if (end != -1 && end != 0) {
			url = href.substring(0, end) + '/navigate?';
		}
		else {
			url = href + '/navigate?';
		}
	
		for (var index = 0; index < form.elements.length; index++) {
			var name = form.elements[index].name;
			var value = form.elements[index].value;
		
			url += name + '=' + value + '&';
		}

		/* alert(url); */
		document.location.href = url;
		/*form.submit();*/
	}
	else {
		form.submit();
	}
};

function getPageTurner(aIndex, aInset) {
	var form = document.getElementById("pageturner");

	/* Reset insert because we will be using image index value */
	if (aInset == '') {
		form._inset.value = '0';
	}
	else {
		form._inset.value = aInset;
	}
	
	form._index.value = aIndex;
	form.action = "view";
	form.submit();
};

function getThumbnails(aIndex, aInset) {
	var form = document.getElementById("pageturner");

	/* Reset insert because we will be using image index value */
	if (aInset == '') {
		form._inset.value = '0';
	}
	else {
		form._inset.value = aInset;
	}
	
	form._index.value = aIndex;
	form.action = "browse";
	form.submit();
};

function submitThumbnailClick(aIndex, aInset) {
	var form = document.getElementById("pageturner");
	
	if (aInset == '') {
		form._inset.value = '0';
	}
	else {
		form._inset.value = aInset;
	}
	
	form._index.value = aIndex;
	form._action.value = 'thumbclick';
	form.submit();
};

function submitAction(aAction, aIndex, aInset) {
	var form = document.getElementById("pageturner");

	if (aInset == '') {
		form._inset.value = '0';
	}
	else {
		form._inset.value = aInset;
	}

	form._index.value = aIndex;
	form._action.value = aAction;
	form.submit();
};

function setCurrentIndex(aIndex, aInset) {
	var form = document.getElementById("pageturner");
	
	if (aInset == '') {
		form._inset.value = '0';
	}
	else {
		form._inset.value = aInset;
	}
	
	if (form.action == 'browse') {
		form.action = "view";
	}
	
	form._index.value = aIndex;
	
	form.submit();
};