//<script>
// overWrite SafeView functions
var DbID_Books = 3;
var DbID_Biblio = 75;
function OnGotoInfoPage()
{
	q.submitTo("CollectionInfo.aspx?dbID=" + q.dbID);
}

function OnGotoSearchScreen()
{
	q.showSearch();
}

function OnGotoResultList()
{
	q.showResults();
}

function OnEndPreview()
{
    if (getViewType() == "ResultList") 
		q.submitTo("endpreviewResultList.aspx");
    else 
		q.submitTo("endPreview.aspx?titleID=" + titleID + "&resultsCount=" + q.resultsCount);
}

function OnEndTime()
{
	OnEndPreview();
}

function OnHasNoRight(rightNo)
{
	Compat.showModalDialog("../upgradeRights.aspx?rightNo=" + rightNo, null, { width: 336, height: 250 },
	function(ret) {
		if (ret)
			OnGotoInfoPage();
	});
}

function getFieldFlags(fieldName)
{
	var numFields = ["pageSort", "pageNavig", "CollectionID", "AncestorID"];
	for (var i in numFields)
		if (numFields[i] == fieldName)
			return "n";
	return "twpe";
}

//if there is one result hide non use icon in the toolbar
function initToolbar(sQueryType)
{
	var oDoc = document;
	if(!isInSafeView())
		oDoc = getToolbar();
	if(q.resultsCount != 1)
	{
		oDoc.getElementById("imgPrevDocument").style.display = "inline";
		oDoc.getElementById("imgNextDocument").style.display = "inline";
		oDoc.getElementById("imgGotoResultList").style.display = "inline";
	}
	try{
	if( getHighlightCount() > 0)
	{
		oDoc.getElementById("imgNextHighlight").style.display = "inline";
		oDoc.getElementById("imgPrevHighlight").style.display = "inline";
	}
	}catch(e){}
}

function OnLinkClicked(query)
{
	try
	{
		var qNavig = q.makeCopy();
		if (qNavig.queryType != "paging")
			top.savedQuery.copyFrom(qNavig, searchSettings);
		qNavig.newSearch();
		qNavig.queryType = "paging";
	
		//var HtmlCtl = SafeView.getObject();
		//var query = new String(HtmlCtl.GetQuery());
		var fields = query.split(";");
		for (i = 0; i < fields.length; i++)
		{
			var fieldStr = new String(fields[i]);
			var fieldVals = fieldStr.split(":");
			fieldVals[1] = fieldVals[1].replace(/%20/g," ").replace(/'$/g,"");
			if (fieldVals[0] == "RecordId")
			{
				var ar = fieldVals[1].match(/(\d+r)(\d+)/);
				if (ar != null)
					fieldVals[1] = ar[1] + "* " + OP_NOT + " " + ar[0];	
			}
			qNavig.addTerm(fieldVals[0], fieldVals[1],getFieldFlags(fieldVals[0]));
		}
		qNavig.showResultsDRM();
	}
	catch(e)
	{
		alert(MSG_INVALID_LINK);
	}
}

function OnHighlightDone(n)
{
	if (n > 0)
	{
		document.getElementById("imgPrevHighlight").style.display = "inline";
		document.getElementById("imgNextHighlight").style.display = "inline";
	}
}


function OnReturnToSrcDoc()
{
	var oTopbar = Compat.getFrame("topbar");
	var arr = oTopbar.arDoc;
	var length = arr.length;
	if(length > 1)
	{
		var query = arr[length - 2];
		oTopbar.arDoc.length = length - 2;
		var qNavig = q.makeCopy();
		if (qNavig.queryType != "paging")
			top.savedQuery.copyFrom(qNavig, searchSettings);
		qNavig.newSearch();
		qNavig.queryType = "paging";
		var fields = query.split(";");
		for (i = 0; i < fields.length; i++)
		{
			var fieldStr = new String(fields[i]);
			var fieldVals = fieldStr.split(":");
			fieldVals[1] = fieldVals[1].replace(/%20/g," ");
			qNavig.addTerm(fieldVals[0], fieldVals[1],getFieldFlags(fieldVals[0]));
		}
		qNavig.showDoc(1);
	}
	else
	{
		if(q.resultsCount == 1)
			OnGotoSearchScreen();
		else
			OnGotoResultList();
	}	
}

/* marketing tools */
function doCancel()
{
	document.getElementById("exportDiv").style.display = "none";
	document.getElementById("printDiv").style.display = "none";
}
function GoExport()
{
	doCancel();
	if (!CheckMarketingRight(Rights.SAVE)) return;
	document.getElementById("exportDiv").style.display = "block";
	initExport(); 
}

function GoPrint()
{
	doCancel();
	if (!CheckMarketingRight(Rights.PRINT)) return;
	document.getElementById("printDiv").style.display = "block";
	initPrint(); 
}

/* result list */
function initTemplatesCombo()
{
	function onTemplatesLoaded(xmlTemplates)
	{
		if (xmlTemplates.documentElement == null)
			return;

		if((q.template.indexOf("Combination") != -1) || (q.template.indexOf("BasicBiblio") != -1) || (q.template.indexOf("BasicBooks") != -1))
		{
			templatesCombo.setAttribute("view", "0");
			return;
		}
		    
		var oTemplates = xmlTemplates.selectNodes("/templates/template");
		var numTemplates = oTemplates.length;

		if (numTemplates < 2)
		{
			templatesCombo.setAttribute("view", "0");
			return;
		}
			
		//Books
		var bBooks = (q.template.indexOf("Books") != -1);
		var bBiblio = (q.template.indexOf("Biblio") != -1)
		if((!bBiblio) && (!bBooks))
		{
			for (var i = 0; i < numTemplates; i++) {
				var o = oTemplates.item(i);
				var sName = o.getAttribute("name");
		        
				if((sName.indexOf("Books") != -1) ||(sName.indexOf("Biblio") != -1) || (sName == "Combination"))
					continue;

				var sTitle = o.getAttribute("title");
				if (sTitle == null || sTitle == "")
					sTitle = sName;
				var oOption = new Option(sTitle, sName);
				templatesCombo.options.add(oOption);
				if (sName == q.template)
					oOption.selected = true;
			}
			// Templates combo is hidden by default.
			// Only show it if more than one template is available.
			templatesCombo.style.display = "inline";
		}
	}
	var templatesCombo = document.getElementById("templates");
	if (templatesCombo != null)
		XmlDoc.createIsland("srvrutil_templatesList.aspx?dbID=" + q.dbID, onTemplatesLoaded);
}

function isInSafeView()
{
	return (getSafeViewObject() != null);
}

function getSafeViewObject()
{
	// IE test
	try { window.external.Test(); return window.external; } catch (e) { }
	// Mozilla test
	var o = document.getElementsByTagName("object");
	for (var i = 0; i < o.length; i++)
		if (o[i].type == "application/x-safeview")
			return o[i];
	return null;
}

function getToolbar()
{
	var o = document.getElementsByTagName("frame").item(0);
	if (o)
		return o.contentWindow.document;
	return document;
}


function getContainerDocument()
{
	var oSafeView = getSafeViewObject();
	if (oSafeView == null || oSafeView.Parent == null)
		return document;
	var doc = oSafeView.Parent.document;
	return (doc == null) ? oSafeView.Parent.Document : doc;
}

function getTopbar()
{
	var doc = getContainerDocument();
	var w = doc.parentWindow;
	return w.Compat.getFrame("topbar");
}

function isInApplication()
{
	// If in application there is a topbar
	return (getTopbar() != null);
}
