<!--
//uncat main javascript file

function switchView(view) {
	var query = dbtw_params;
	var pairs = query.split("&");
	for (var i in pairs) {
		var pos = pairs[i].indexOf('=');
		if (pos >= 0) {
			var argname = pairs[i].substring(0,pos);
			var value = pairs[i].substring(pos+1);
			if (argname == 'MR') {
				var MR = parseInt(value);
			}
			if (argname == 'RN') {
				var RN = parseInt(value);
				var RNpos = i;
			}
			if (argname == 'RF') {
				pairs[i] = 'RF='+view;
			}
		}
	}
	var newUrl = 'http://www.iwmcollections.org.uk/dbtw-wpd/exec/dbtwpub.dll?AC=PREV_BLOCK';
	pairs.splice(RNpos,1);
	for (var i=0;i<pairs.length;i++) {
		newUrl += '&'+pairs[i];
	}
	newUrl += '&RN='+(RN+MR);
	window.location.href = newUrl;
} 

function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
    { 
    c_start=c_start + c_name.length+1; 
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    } 
  }
return "";
}

function setCookie(c_name,value,expiredays) {
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	var cookieText = c_name+ "=" +escape(value);

	if (expiredays==null) {
		var expires = "";
	} else {
		var expires = ";expires="+exdate.toGMTString();
	}

	cookieText += expires+"; path=/";
	document.cookie = cookieText;	
}

function pageLinks(recordCount) {

	var params = window.dbtw_params;
	var RNtmp = params.match(/RN=(\d+)/);
	var RN = parseInt(RNtmp[1]);
	var MRtmp = params.match(/MR=(\d+)/);
	var recordsPerPage = parseInt(MRtmp[1]);
	var numberOfPages = Math.ceil(recordCount/recordsPerPage);
	var arrayOfLinks = new Array();
	var firstPageRN = 0;
	var lastPageRN = ((numberOfPages-1) * recordsPerPage) - recordsPerPage;
	var currentPage = Math.round(RN / recordsPerPage)+1;
	var paramRN = 'RN='+RN;
	var toReplace = new RegExp(paramRN, 'i');	
	var pageWindow = 3;	
	var pagesAfter = numberOfPages - currentPage;
	
	
	if (numberOfPages > 1) {

		if (numberOfPages > 7) {
			if (currentPage > 1) {
				var firstPageLink = '<a href="javascript:dbtw_next(\'/dbtw-wpd/exec/dbtwpub.dll?AC=PREV_BLOCK'+params.replace(toReplace, 'RN='+recordsPerPage)+'\')" style="text-decoration:none;"><< first</a>';
			}
			if (currentPage < numberOfPages) {
				var lastPageLink = '<a href="javascript:dbtw_next(\'/dbtw-wpd/exec/dbtwpub.dll?AC=NEXT_BLOCK'+params.replace(toReplace, 'RN='+lastPageRN)+'\')" style="text-decoration:none;">last >></a>';
			}
		}

		if (currentPage > 1) {
			var prevPage = RN - (recordsPerPage*2);
			var previousPageLink = '<a href="javascript:dbtw_next(\'/dbtw-wpd/exec/dbtwpub.dll?AC=NEXT_BLOCK'+params.replace(toReplace, 'RN='+prevPage)+'\')" style="text-decoration:none;"><strong>< previous</strong></a>';
		}
		if (currentPage < numberOfPages) {
			var nextPageLink = '<a href="javascript:dbtw_next(\'/dbtw-wpd/exec/dbtwpub.dll?AC=NEXT_BLOCK'+params.replace(toReplace, 'RN='+RN)+'\')" style="text-decoration:none;"><strong>next ></strong></a>';
		}
		
		var rangeForward = numberOfPages - currentPage;
		var rangeBackward = currentPage - 1;				
		var pagesForward = (pagesAfter > 0) ? ((pagesAfter > 3) ? 3 : pagesAfter) : 0;
		var pagesBackward = (currentPage > 1) ? ((currentPage > 3) ? 3 : (currentPage - 1)): 0;
		
		if ((pagesForward - pagesBackward) > 0) pagesForward = pagesForward + (pagesForward - pagesBackward);
		if ((pagesBackward - pagesForward) > 0) pagesBackward = pagesBackward + (pagesBackward - pagesForward);
		if (pagesForward > rangeForward) pagesForward = rangeForward;
		if (pagesBackward > rangeBackward) pagesBackward = rangeBackward;

		arrayOfLinks.push('<span style="font-size: .7em;">');

		if (firstPageLink !== '') {
			arrayOfLinks.push(firstPageLink);
		}
		
		if (previousPageLink !== '') {
			arrayOfLinks.push(previousPageLink);
		}
		
		var pageNo = currentPage + 1;
		var pageNoB = currentPage - pagesBackward;
		var RNB = RN - (recordsPerPage * (pagesBackward-1));		
		
		for (var i = 0 ; i < pagesBackward && i < pageNoB + i ; i++) {
			var neuRN = RNB + (i * recordsPerPage);
			arrayOfLinks.push('<a href="javascript:dbtw_prev(\'/dbtw-wpd/exec/dbtwpub.dll?AC=PREV_BLOCK'+params.replace(toReplace, 'RN='+neuRN)+'\')" style="text-decoration:none;">['+(pageNoB + i)+']</a> ');
		}
		
		arrayOfLinks.push(' '+currentPage+' ');
		
		for (var i = 0 ; i < pagesForward && i < pageNo + i ; i++) {
			var neuRN = RN + (i * recordsPerPage);
			arrayOfLinks.push('<a href="javascript:dbtw_next(\'/dbtw-wpd/exec/dbtwpub.dll?AC=NEXT_BLOCK'+params.replace(toReplace, 'RN='+neuRN)+'\')" style="text-decoration:none;">['+(pageNo + i)+']</a> ');
		}

		if (nextPageLink !== '') {
			arrayOfLinks.push(nextPageLink);
		}

		if (lastPageLink !== '') {
			arrayOfLinks.push(lastPageLink);
		}
		
		arrayOfLinks.push('</span>');
	}
	return arrayOfLinks.join(' ');
}

function imageRedirect(newURL, scriptName)
{
	//this function will direct photo popups to the My Order screen
	//other images will display normally
	if (scriptName == "Photographs")
	{
		//alert("photo");
		//replace report format with zOrderImage
		newURL = replace(newURL, "zPopupImage", "zOrderImage");
	}
	//open image window
	popupImage(newURL);
}

function zeroPad(num,count)
{ 
var numZeropad = num + '';
while(numZeropad.length < count) {

numZeropad = "0" + numZeropad; 
}
return numZeropad;
}


//popHeader frame window
function popupHelp(URL)
{
var newWindow
newWindow = window.open(URL,"help","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=650,height=450");
}

function popupImage(URL)
{
	//strip out weird chars
var newURL
	newURL = URL;
	newURL = replace(newURL, "(", " ");
	newURL = replace(newURL, ")", " ");

var newWindow
newWindow = window.open("","image","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=450,height=480");
newWindow.focus();
newWindow.document.location = newURL;
}


function photoWindow()
{
var newWindow
newWindow = window.open("","photowin","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=720,height=450");
newWindow.focus();
//newWindow.document.location = strURL;
}


function cartWindow()
{
var newWindow
newWindow = window.open("","cartwin","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=720,height=450");
newWindow.focus();
//newWindow.document.location = strURL;
}


// - jump to search screen
function jumpTo(where)
{
	if (where.options[where.selectedIndex].value != "")
		parent.location = where.options[where.selectedIndex].value;
}

// - jump to search screen
function jumpToRev(where)
{
	if (where.options[where.selectedIndex].value != "")
		parent.location = where.options[where.selectedIndex].value;
}


/*
Written by Peter Tyrrell, Andornot Consulting 2003
Inmagic report next & previous buttons

put "</head><body ID=dbtw_ID_Body bgcolor=#FFFFFF><!--" at end of Inmagic report head section
put "-->" at beginning of Inmagic report body section as report header
set search page hidden input NP value to 1 (next/previous at top of page)
*/
	
function nextprev_block(record_count)
{
	/* this is used for moving to next/previous blocks of results */
	var params = window.dbtw_params;
	var next_write = "";
	var next_link = "";
	var prev_write = "";
	var prev_link = "";
	var nextprev_link = "";
	var rc = parseInt(record_count);

	// find the record number
	var rns = params.match(/RN=(\d+)/);
	var rn = parseInt(rns[1]);

	// MR is records at a time
	var mrs = params.match(/MR=(\d+)/);
	var mr = parseInt(mrs[1]);

	//comparison number for next block
	var next_total = (rc - mr - rn);

	//comparison number for prev block
	var prev_total = (rn - mr);

	// determine if a "Previous x Records" link should be made
	if (prev_total >= 0)
	{
		prev_write = "Previous " + mr + " Records";	
		prev_link += "<a href='javascript:dbtw_prev(\"";
		prev_link +=  "/dbtw-wpd/exec/dbtwpub.dll?AC=PREV_BLOCK" + params;
		prev_link += "\")' >";
		prev_link += "<img src='/common/icons/butPreviousResults.gif' alt='" + prev_write + "' /></a>";
	}
	
	// determine if a "Next x Records" link should be made
	if (next_total < mr && next_total > 0)
	{
		next_write = "Next " + next_total + " Records";
	}
	else if (next_total >= mr)
	{
		next_write = "Next " + mr + " Records";
	}
	if (next_write != "")
	{
		next_link += "<a href='javascript:dbtw_next(\"";
		next_link +=  "/dbtw-wpd/exec/dbtwpub.dll?AC=NEXT_BLOCK" + params;
		next_link += "\")' >";
		next_link += "<img src='/common/icons/butNextResults.gif' alt='" + next_write + "' /></a>";
	}
	// build the final string to write into HTML
	if (next_link == "" && prev_link == "")
	{
		nextprev_link = "";	
	}
	else if (next_link != "" && prev_link == "")
	{
		//nextprev_link += "<form action='/dbtw-wpd/exec/dbtwpub.dll?AC=NEXT_BLOCK" + params + "' method='post'>" + next_link + "</form>";
		nextprev_link += next_link;
	}
	else if (next_link == "" && prev_link != "")
	{
		nextprev_link += prev_link;	
	}
	else
	{ 
		nextprev_link += prev_link + "&nbsp;" + next_link;		
	}
	return nextprev_link;
}


function nextprev_record(record_count)
{
	/* used to display the next/previous record buttons
	shown on the record detail pages */
	var params = window.dbtw_params;
	var next_write = "";
	var next_link = "";
	var prev_write = "";
	var prev_link = "";
	var nextprev_link = "";
	var rc = parseInt(record_count);

	// find the record number
	var rns = params.match(/RN=(\d+)/);
	var rn = parseInt(rns[1]);

	// find the record number
	var nextprevstr = params.match(/NP=(\d+)/);
	var nextprevcount = parseInt(nextprevstr[1]);

	// determine if a "Previous Record" link should be made
	if (rn > 0)
	{
		prev_write = "<img src=\"/common/icons/butPreviousRecord.gif\" alt=\"Previous Record\" />";

		prev_link += "<a href='javascript:dbtw_prev(\"";
		prev_link +=  "/dbtw-wpd/exec/dbtwpub.dll?AC=PREV_RECORD" + params;
		prev_link += "\")' >";
		prev_link += prev_write + "</a>";
	}
	
	// determine if a "Next Record" link should be made
	if (rn+1 < rc)
	{
		next_write = "<img src=\"/common/icons/butNextRecord.gif\" alt=\"Next Record\" />";

		next_link += "<a href='javascript:dbtw_next(\"";
		next_link +=  "/dbtw-wpd/exec/dbtwpub.dll?AC=NEXT_RECORD" + params;
		next_link += "\")' >";
		next_link += next_write + "</a>";
	}

	// build the final string to write into HTML
	if (next_link == "" && prev_link == "")
	{
		nextprev_link = "";	
	}
	else if (next_link != "" && prev_link == "")
	{
		nextprev_link += next_link;
	}
	else if (next_link == "" && prev_link != "")
	{
		nextprev_link += prev_link;	
	}
	else
	{ 
		nextprev_link += prev_link + next_link;		
	}

	if (nextprevcount > 1)
	{
		//if the np = 3 then we are viewing selected records.
		//do not display the next/prev link
		return "";
	}
	else
	{
		//return the next/prev link
		return nextprev_link;
	}
}



//javascript to link record detail page,
//back to search results page for any given query result.
function back_to_results()
{
	var params = window.dbtw_params;

	// find the next/prev number
	var nextprevstr = params.match(/NP=(\d+)/);
	var nextprevcount = parseInt(nextprevstr[1]);

	//if we have any of these, it means that the user, has chosen view selected records
	// the result of which is another query - so the back to results function will not work
	//instead we use the history.go(-1)

	if ((params.indexOf("RF=MainResults") < 0) && (params.indexOf("RF=SoundResults") < 0) && (params.indexOf("RF=FilmResults") < 0) && (params.indexOf("RF=DocumentsResults") < 0) &&  (params.indexOf("RF=ThemedResults") < 0) &&  (nextprevcount > 1))
	{
		history.go(-1);
	}
	else
	{
		// find the record number
		var rns = params.match(/RN=(\d+)/);
		var rn = parseInt(rns[1]);
	
		// MR is records at a time
		var mrs = params.match(/MR=(\d+)/);
		var mr = parseInt(mrs[1]);
	
		// find the lower multiple of mr and add another mr to it to fool PREV_BLOCK
		var remainder = (rn % mr);
		var start = (rn - remainder + mr);
	
		var i = params.indexOf("RN=") + 3;
		var j = params.indexOf("&", i);
	
		var url = "/dbtw-wpd/exec/dbtwpub.dll?AC=PREV_BLOCK" + params.substring (0, i) + start + params.substring(j, params.length);
		window.location.href = url;
	}
}


function ExpandRecord(recordnum, newWindow)
{
	var params = dbtw_params;
	var snipA = "";
	var snipZ = "";
	var myUrl = window.location.href.replace(window.location.search, "");
	
	if (recordnum == 1)
	{
		snipA = params.indexOf("RN=") + 3;
		snipZ = params.indexOf("&", snipA);
		params = params.substring(0, snipA) + (recordnum) + params.substring(snipZ, params.length);
		myUrl += "?AC=PREV_RECORD" + params;
	}
	else
	{
		snipA = params.indexOf("RN=") + 3;
		snipZ = params.indexOf("&", snipA);
		params = params.substring(0, snipA) + (recordnum-2) + params.substring(snipZ, params.length);	
		myUrl += "?AC=NEXT_RECORD" + params;
	}
	
	if (newWindow && newWindow == true)
	{
	    window.open(myUrl);
	}
	else
	{
	    window.location.href = myUrl;
	}
}


//this replace function is use to replace strings in javascript
function replace(str, original, replacement)
{
	var result;
	result = "";
	while(str.indexOf(original) != -1)
	{
		if (str.indexOf(original) > 0)
			result = result + str.substring(0, str.indexOf(original)) + replacement;
		else
			result = result + replacement;
		str = str.substring(str.indexOf(original) + original.length, str.length);
	}
	return result + str;
}

function stripos ( f_haystack, f_needle, f_offset ) {
    var haystack = (f_haystack+'').toLowerCase();
    var needle = (f_needle+'').toLowerCase();
    var index = 0;
 
    if ((index = haystack.indexOf(needle, f_offset)) !== -1) {
        return index;
    }
    return false;
}


//-->

