//<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 = "You do not have the right to " + GetRightName(rightNo) + " this title."
	message += "\n\nClick OK to browse a list of products for \npurchase that include this title.";
	if (confirm(message))
		OnGotoInfoPage();
}

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)
{
	var oDoc = getToolbar();
	if (n == 0)
	{
		toggleImage(oDoc, "imgPrevHighlight", true);
		toggleImage(oDoc, "imgNextHighlight", true);
		toggleImage(oDoc, "imgToggleHighlight", true);
	}
	if (q.resultsCount == 1)
	{
		toggleImage(oDoc, "imgPrevDoc", true);
		toggleImage(oDoc, "imgNextDoc", true);
	}
	showHideLock();
	if (hasComment)
	{
		var imgHndl = oDoc.getElementById("imgComments");
		if (imgHndl)
			imgHndl.src = imgHndl.src.replace(/addcomment/i, "changecomment");
	}
}



function initTemplatesCombo()
{
	function onTemplatesLoaded(xmlTemplates)
	{
		if (xmlTemplates.documentElement == null)
			return;
		var oTemplates = xmlTemplates.selectNodes("/templates/template");
		var numTemplates = oTemplates.length;
		if (numTemplates < 2)
		{
			templatesCombo.setAttribute("view", "0");
			return;
		}
		for (var i = 0; i < numTemplates; i++) {
			var o = oTemplates.item(i);
			var sName = o.getAttribute("name");
			if (sName == "Legislation")
			    continue;
			var sTitle = o.getAttribute("title");
			if (sTitle == null || sTitle == "")
				sTitle = sName;
			var oOption = new Option(sTitle + " display", 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) {
	    if (q.template == "Legislation") {
	        templatesCombo.style.display = "none";
	        return;
	    }
	    XmlDoc.createIsland("srvrutil_templatesList.aspx?dbID=" + q.dbID, onTemplatesLoaded);
	}
}

function showCommentsDialog(imgHndl)
{
	    var oTopbar = getTopbar();
	    if(!oTopbar.isLoggedIn())
	    {
	        alert(MSG_LOGIN_FIRST);
	        q.showLogin("document", false);
		    return;
	    }

	try
	{
		var sHeight = 390;
		var features = Compat.fixDialogSize({ width: 450, height: sHeight, heightIE7: sHeight - 20, heightIE: sHeight + 10, help: "no", scroll: "no", status:"no" });
		var args = { openerwin: window, imgHndl: imgHndl};
		Compat.showModalDialog("../Comments.html", args, features);
	}
	catch(e)
	{
		if (e.number == -2147024891) // Popup blocker "Access is denied"
			alert(MSG_POPUP_BLOCK);
	}
}

function showCommentsDialogRL(docNo, header, imgHndl)
{
	try
	{
	    var oTopbar = getTopbar();
	    if(!oTopbar.isLoggedIn())
	    {
	        alert(MSG_LOGIN_FIRST);
	        q.showLogin("results", true);
		    return;
	    }

		var sHeight = 390;
		var features = Compat.fixDialogSize({ width: 450, height: sHeight, heightIE7: sHeight - 20, heightIE: sHeight + 10, help: "no", scroll: "no", status:"no" });
		var iTilde = header.indexOf("~~");
		if(iTilde !=-1)
			header = header.substring(0, iTilde);
		if (header == "")//Globes...
		{
			header = getTopbar().top.sMareMakom;
			var iIndex = header.indexOf(" | ");
			header = (iIndex != -1)? header.substr(iIndex + 2) : header;
		}
		var args = { openerwin: window, userID :userID, docID: docNo, header: header, imgHndl: imgHndl};
		Compat.showModalDialog("../Comments.html", args, features);
	}
	catch(e)
	{
		if (e.number == -2147024891) // Popup blocker "Access is denied"
			alert(MSG_POPUP_BLOCK);
	}
}
///////////////////Result List ////////////////////////////////////

//Changes on the fly in Result list
function fixRL(oXml)
{
try{
	var oItems = oXml.selectNodes("//item");
	var arrCommentsRL = null;
	var arrHasCommentsRL = null;
	var sAttrValue;
	for (var i = 0; i < oItems.length; i++)
	{
		//set the Comments column
		if(arrCommentsRL == null)
		{
			var resDocElement = getDocComment();
			if(typeof(resDocElement) == "object")
            {
			    arrCommentsRL = resDocElement.selectSingleNode("docID").text.split("~");
			    arrHasCommentsRL = resDocElement.selectSingleNode("hasComment").text.split("~");
            }
		}
        if(arrCommentsRL != null)
        {
		    oItems.item(i).setAttribute("CommentsRL", arrCommentsRL[i]);
		    oItems.item(i).setAttribute("HasCommentsRL", arrHasCommentsRL[i]);
        }
		
	}
	return oXml;
}catch(e){return oXml;}
}
function getDocComment()
{
	var xmlhttp = XmlHttp.createNew();
	var URL = q.appRoot + "getDocComments.aspx?userID=" + userID;
	URL += "&qid=" + q.qid + "&key=" + q.key + "&sortField=" + q.sortField + "&sortOrder=" + q.sortOrder; //clientParams
	URL += "&page=" + q.page + "&RPP=" + q.resultsPerPage;		
	xmlhttp.open("GET", URL, false);
	xmlhttp.send("");
	var doc = xmlhttp.responseXML;
	var root = doc.documentElement;
	if (root == null || root.tagName == "error") 
		return "";
	else
		return root;
}

//get cookie
function getCookie(sName)
{
  //cookies are separated by semicolons
  var aCookie = document.cookie.split("; ");
  for (var i=0; i < aCookie.length; i++)
  {
    //a name/value pair (a crumb) is separated by an equal sign
    var aCrumb = aCookie[i].split("=");
    if (sName == aCrumb[0])
      return (aCrumb[1] == null) ? null : unescape(aCrumb[1]);
  }
 
  //a cookie with the requested name does not exist
  return null;
}


function _showHideLock()
{
	var oDoc;
	try //No SafeView
	{
		oDoc = getToolbar();
	}catch(e)// In SafeView
	{
		oDoc = getContainerDocument();
	}
	if(oDoc.readyState != "complete")
		setTimeout(_showHideLock, 1000);
		
	var oImg = oDoc.getElementById("imgSendToFriend");
	if (oImg != null)   //If there is no toolbar
		oImg.style.visibility = "visible";
}

function showHideLock()
{
	var viewingRights;
	try //No SafeView
	{
		viewingRights = rights[Rights.VIEW];
	}catch(e)// In SafeView
	{
		viewingRights = SafeView.getNode().CheckLocalRight(Rights.VIEW);
	}
	if (viewingRights != 0 )
		_showHideLock();
}


function sendToFriend()
{	

	var docFrameID = frameElement.id.replace("fdoc","");
 	//var docTitle = parent.document.getElementById("font_" + docFrameID).title;
    var docTitle="";
    
	try
	{	// Safe-View docURL == null
		var o = SafeView.getObject();
		var node = SafeView.getNode();
		for ( var param in node.childNodes)
			if (node.childNodes[param].name == "DocID")
				var docID = node.childNodes[param].value;
		getTopbar().sendToFriend(null, docID, docTitle);
	}catch(e)
	{/*Low protection docID == null */
		getTopbar().sendToFriend(docURL, null, docTitle);
	}
}

function onLinkClick(fieldsName, fieldsValues)
{
	try 
	{
		var oTopbar = Compat.getFrame("topbar");
		qLink = Compat.getFrame("topbar").createQuery("results");

		var arrFieldsName = fieldsName.split(";");
		var arrFieldsValue = fieldsValues.split(";");
		var fieldName = "";	
		var fieldValue = "";	
		qLink.terms = "<t f=\"Type\" type=\"word\" v=\"Psika\"/>";
		for (i = 0; i < arrFieldsName.length; i++)
		{
			fieldName = arrFieldsName[0];
			fieldValue = arrFieldsValue[0];
			qLink.terms += "<t f=\"" + fieldName + "\" v=\"" + fieldValue + "\" type=\"word\"/>";
			
		}
		qLink.sortBy("DateSort", -1);
		qLink.sortField2 = "";
		qLink.sortOrder2 = 0;
		qLink.template = "Advanced";
		qLink.showResultsDRM();
		if (qLink.resultsCount > 0)
			oTopbar.setResultListTab();
	}
	catch(e)
	{
	    if(typeof(e) == "object")
	        alert(e.description);
	    else
		    alert(e.toString());
	}
}


