var prevthumb;
var currentPage;
var currentRefNum;
var tag;

function str_replace(haystack, needle, replacement) {
	var temp = haystack.split(needle);
	return temp.join(replacement);
}

function SetClass(cn,imgID){
	if (document.getElementById(imgID) != null) {
		var imgelement=document.getElementById(imgID);
		imgelement.className=cn;
	}
}

function getHTTPObject(){
    //instantiate new XMLHttpRequest object
    var req=(window.XMLHttpRequest)?new XMLHttpRequest():new ActiveXObject('Microsoft.XMLHTTP');
    if (!req)
		return;
    return req;
}

function toggleBM(id){
    var toggle=document.getElementById('bm_' + id);
	if (toggle.alt == '+'){
		// open
		toggle.alt = '-';
		toggle.src='images/minus.gif';

		var objHttp = getHTTPObject();
		var element = document.getElementById('content_' + id); 
		var randomNumber = Math.floor(Math.random()*9999999999);
		// Set to true to be syncronous
		objHttp.onreadystatechange = function() { 
			if (objHttp.readyState == 4 && objHttp.status == 200) { 
				element.innerHTML = objHttp.responseText; 
			}
    	} 
		objHttp.open("POST", "getPages.php" ,true); 
		objHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
		objHttp.send('form_cache_buster=' + randomNumber + '&bookmark_id=' + id); 
	
		document.getElementById('content_' + id).style.display = 'block';
		document.getElementById('children_' + id).style.display = 'block';
	} else {
		// closed
		toggle.alt = '+';
		toggle.src='images/plus.gif';
		
		document.getElementById('content_' + id).style.display = 'none';
		document.getElementById('children_' + id).style.display = 'none';
	}
}

function displayImage(tag,ref,pagenum){
	
	document.getElementById('mainImage').src = 'http://images.archives.govt.nz/preview/' + tag + '/' + ref + '.jpg'; 
	document.getElementById('hrlink').innerHTML = '<a href="http://www.archives.govt.nz/docs/?pid=archives:' + tag + '&ds=' + ref + '&download=true">Download a high-resolution TIFF version of this page</a>';    

	this.currentPage = pagenum;
	this.tag = tag;
	this.currentRefNum = str_replace(ref,'Attachment','');

	setThumbBorder();
}

function setThumbBorder(){
	SetClass('border_on','thumb_' + this.currentPage);
	if (this.prevthumb){
		if (this.prevthumb != 'thumb_' + this.currentPage){
			SetClass('border_off',this.prevthumb);
		}
	}
	this.prevthumb = 'thumb_' + this.currentPage;
}

function backPage(){
	var backPage = this.currentPage;
	backRefNum = this.currentRefNum;
	if (backPage > 1){
		backPage--;
		backRefNum--;
	}
	tag = this.tag;
	displayImage(tag,'Attachment' + backRefNum,backPage);
}

function forwardPage(){
	var nextPage = this.currentPage;
	forwardRefNum = this.currentRefNum;
	nextPage++;
	forwardRefNum++;
	tag = this.tag;
	displayImage(tag,'Attachment' + forwardRefNum,nextPage);
}
