//<script>
// overWrite SafeView functions
if (typeof(NetisQuery) == "function")
{
	NetisQuery.prototype.showPage__base = NetisQuery.prototype.showPage;
	NetisQuery.prototype.showPage = function(pageID, bReload)
	{
		var ar = pageID.split(",");
		if (ar.length > 1)
		{
			var pageID = ar.shift();
			this.setReturnPage(ar.join(","), bReload);
			this.submitTo(pageID);
			return;
		}
		var oTopbar = getTopbar();
		switch (pageID)
		{
			case "search" : oTopbar.setAdvancedSearchTab(); break;
			case "results": oTopbar.showResults(bReload, this); break;
			case "document": oTopbar.showDoc(this); break;
			case "generalSearch": oTopbar.sendQuery(); break;
			case "toc": top.doOnTreeClick(top.oFocused); break;
			default: this.showPage__base(pageID, bReload); break;
		}
	}
	
	NetisQuery.prototype.showCollectionProducts = function()
	{
		var oTopbar = getTopbar();
		oTopbar.showCollectionProducts(this);
	}

	NetisQuery.prototype.showDocumentProducts = function(titleID)
	{
		var oTopbar = getTopbar();
		oTopbar.showDocumentProducts(titleID, this);
	}

	NetisQuery.prototype.goBack = function()
	{
		var oTopbar = getTopbar();
		oTopbar.showPreviousTab();
	}

	NetisQuery.prototype.showLogin__base = NetisQuery.prototype.showLogin;
	NetisQuery.prototype.showLogin = function(returnPage, bReload)
	{
		var oTopbar = getTopbar();
		if (oTopbar == null)
			document.location.href = this.appRoot + "?ret=" + encodeURIComponent(returnPage);
		else
			oTopbar.showLogin(returnPage, bReload, this);
	}

	function checkStandalone()
	{
		var oTopbar = getTopbar();
		if (oTopbar != null)
			return;
		var p = document.location.pathname;
		var s = document.location.search;
		if (!s.match(/\btoolbar=no/))
			return;
		var r = q.appRoot;
		if (p.substr(0, r.length).toLowerCase() == r.toLowerCase())
			p = p.substr(r.length);
		document.location.href = r + "?ret=" + encodeURIComponent(p + s);
	}

	try { checkStandalone(); } catch (e) { }
}

function getTopbar()
{
	var doc = getContainerDocument();
	var w = doc.parentWindow;
	return w.Compat.getFrame("topbar");
}

function showPopup(url, features, onReturn)
{
	try {
		var href = document.location.href;
		url = makeAbsolute(href.substr(0, href.lastIndexOf("/")), url);
		Compat.showModalDialog(url, null, features, onReturn);
	} catch (e) {
		alert("Please enable popups on this website");
	}
}

function testRet(ret)
{
	if (ret)
		OnGotoInfoPage();
	else
		OnGotoResultList();
}

function testRetRL(ret)
{
	if (ret)
		OnGotoInfoPage();
	else
		OnGotoSearchScreen();
}

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)
{
	var message = MSG_HAS_NO_RIGHT_TO_1 + GetRightName(rightNo) + MSG_HAS_NO_RIGHT_TO_2;
	if (q.regMode == 2) // e-commerce on 
	{
		message += MSG_HAS_NO_RIGHT_3;
		if (confirm(message))
			OnGotoInfoPage();
	}
	else
		alert(message);	
}

function getSafeViewObject()
{
	// IE test
	try { window.external.Test(); return window.external; } catch (e) { }
	// Mozilla test
	//  Because of the way result list is organized (resultlistInner in an <IFRAME> inside resultlistClient),
	//  we may need to go up the window hierarchy until we reach the safeview-protected document.
	for (var w = window; true; w = w.parent)
	{
		var doc = w.document;
		var o = doc.getElementsByTagName("object");
		for (var i = 0; i < o.length; i++)
			if (o[i].type == "application/x-safeview")
				return o[i];
		if (w == w.parent)	// top of hierarchy reached, safeview not found.
			break;
	}
	return null;
}

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 goDoc(docNo)
{
	// Save result selection before leaving this page
	q.docNo = docNo;
	var oTopbar = getTopbar();
	oTopbar.showDoc(q);
}

function _openDoc(docId, target)
{
	var qTemp = q.makeCopy(globalSettings | resultSettings);
	qTemp.newSearch();
	qTemp.key = "searchDoc";
	qTemp.addParsedTerm(qTemp.makeTerm("DocId", docId));
	
	var oRequest = XmlHttp.createNew();
	var sURL = makeAbsolute(qTemp.appRoot, "NetisUtils/srvrutil_xmlquery.aspx?key=" + qTemp.key);
	oRequest.open("POST", sURL, false);
	oRequest.send(qTemp.getQueryXML());

	var doc = oRequest.responseXML;
	var root = doc.documentElement;
	switch (root.tagName)
	{
		case "login" :
			alert(MSG_LOGIN_FIRST);
//			Compat.getFrame("topbar").showLogin("toc.aspx");
			return;
			break;
		case "error": throw "Server error:\n\n" + root.text;		// the server threw an exception
		case "info": throw root.text;								// server wants to tell us something
		case "query": break;										// proceed with parsing
		default: throw "Unexpected server response";
	}
	
	var total = parseInt(root.getAttribute("total"));
	qTemp.qid = root.getAttribute("qid");
	switch (total)
	{
		case 0:
			alert("The requested document not found [" + docId + "]");
			break;
		case 1:
			// in case of 1 result - keep the original result list in topbar frame
			Compat.getFrame("topbar").parent.saveQueryParameters(q);
			qTemp.showDoc(1);
			break;
		default:
			if (confirm(total + " matching documents found. Display search results?"))
				qTemp.showResults();
			break;
	}
}

function toggleImage(doc, sImgId, bDisabled)
{
	try{
		var oImg = doc.getElementById(sImgId);
		oImg.disabled = bDisabled;
		oImg.src = oImg.src.replace(/(-dis)?.gif/i,((bDisabled) ? "-dis" : "") + ".gif");
		oImg.style.cursor = ((bDisabled) ? "default" : "pointer");
		if(!oImg.onclickORIG)
		{
			oImg.onclickORIG = oImg.onclick;
			oImg.onclick = function() { if (!this.disabled) this.onclickORIG(); }
		}
	}catch(e) {}
}

function OnHighlightDone(n)
{
	if (n == 0)
	{
		var oDoc = getToolbar();
		toggleImage(oDoc, "imgPrevHighlight", true);
		toggleImage(oDoc, "imgNextHighlight", true);
		toggleImage(oDoc, "imgToggleHighlight", true);
	}
}

function displayImage(evt)
{
	evt = Compat.getEvent(evt);
	var o = evt.target;
	var ref = o.src;
	ref = ref.replace(/coverpage/i,"detailspage");
	ref = ref.replace(/\.jpg$/i,".html");
	Compat.showModalDialog(ref, null, { height: 500, width: 700, left: 100, scroll: 'yes'} );
	evt.preventDefault();	
	evt.stopPropagation();
}

/* flipper view on toolbar */
function setCookie(sName, sValue)
{ 
	path = "/";
	document.cookie = sName + "=" + escape(sValue) + "; expires=Fri, 31 Dec 3000 23:59:59 GMT;path=" + path;
}

function bookView()
{
    setCookie("view", "flipp");
    //q.addParam("isFlipperView", "yes");
    q.showDoc(q.docNo);
}
