var doc = document;
var days_to_keep_cookie = 90;
var ms_per_day = 24*60*60*1000;
var cookie_path = "/";
var functions_style = undefined;
var cookiesCanBeUsed = false;
var cookieNames = new Array("showHits_");
var ls = new Array(); //links array
var mipp;
var op;

var RC_TREE_REF_MS=1000;
var H_TREE_REF_MS=1000;
var mouseX = 0;
var mouseY = 0;
var mouseScreenX = 0;
var mouseScreenY = 0;
var MAXTABLEWIDTH = 380;

var RCTreeShownAll = false;
var numberOfCheckedItems = 0;

var hideHand2 = false;

var rsto = null;

var cell1 = null;
var cell2 = null;
var cell3 = null;
var cell4 = new Array();

var hand2 = null;

//For table format
var chRTs = 0; 
var chRTs_cl = 0;

var imgsSrc = new Array();
var imgsSuSrc = new Array();
var imgsIrSrc = new Array();
var imgsOrSrc = new Array();
var ih = new Array(); //images' hrefs
var imgsObj = new Array();
var imgsOrgHeight = new Array();

var selImageOffset = "0";

var showGlobalProgressBar=true;
var showSearchProgressBar=true;

//searching
var oldButtonStat = READY_STATUS;
var buttonStat;
var startNewSearch = false;
var autostopref = undefined;
var lengthOfProcBar = typeof processBarText != 'undefined' ? processBarText.length+4 : 4; //+4 is the percentage
var processBarPhase;
var processBarFullPhases = 1;
var fullbar="||||";
var numOfProgPhases = fullbar.length;
var searchFormDownloaded = false;

var targids = new Array(); // (= search ids!!!)
var catOfTarg = new Array();

var helpWindow;

var turnOnShortSummaryLinks = false;
var hitCountShowingFailed = false;

var showDownloading = false;

var other_results_width = 0;
var reqAuto = false;

var rcTreeWithAjax = false;

var ssid; //search stat id

var histChang = "";
var histcnt = 0; //history counter - helping firefox with unique url fragments
var paged = false;


function getTidsId(which, treeNumber) {
	var i = 1;
	var tids = window["tids_" + treeNumber];
	while(obj = tids[i] ) {
		if (obj==which) {
			return i;
		}
		i++;
	}
}

function noResultFound() {
	resultsFound = false;
}

function sct(text, treeNumber, main) {
	var tree = window["tree_" + treeNumber + "_"];
	var es = window["es_" + treeNumber];
	var i = getTidsId(text, treeNumber);
	if(statswitch) {
		var term = sStrip(es[i]);
		var terms = sStrip(clustDisplStr);
		if(terms!="") {
			terms+=" > ";
		}
		terms += term;
		actnode = tree.aNodes[i];
		var fullterm=term;
		while(actnode._p && actnode._p.id) {
			actnode = actnode._p;
			fullterm = es[actnode.id] + "/" + fullterm;
		}
		addStat(ssid+"!RCC!"+sStrip(encURI(fullterm))+"!"+actTreeOrder()+"!"+tree.aNodes[i]._dn+"!"+encURI(terms)+"!"+sStrip(encURI(swthnstr))+"!"+treeNumber);
	}
	tree.doOpen(i);
	searchClusteringAjax(text, main, treeNumber);
}

function searchClusteringAjax(text, main) {
	if (text!="") {
		valueNow = xg("clusterids").value;
		var newValue = valueNow + (valueNow=="" ? "" : ".") + text;
		xg("clusterids").value = newValue;
		if(newValue.indexOf(".")<0 ) {
		    dhtmlHistory.add( "cluster" ,  newValue );
		}
		histChang="";
		xg("isclustering").value = 'true';
		xg("isclusteringvariants").value = main;
		var reqUrl = createReqUrlForFiltering(); 
		var ajaxRequest = new AjaxRequest( ajaxStubURL+ "?dest=" + reqUrl, filterResultCallBack );	
		ajaxRequest.sendRequest();
	}
}


function va() { //View All result (AJAX)
	paged = false;
	if(statswitch && treeExists) {
		addStat(ssid+"!RCV!"+actTreeOrder()+"!"+sStrip(encURI(clustDisplStr))+"!"+sStrip(encURI(swthnstr)));
	}
	xg("clusterids").value =  "";
	xg("isclustering").value = "false";
	xg("isclusteringvariants").value = "";
	xg("cstree").value = "";
	xg("qry").value=origq_text;
	var reqUrl = createReqUrlForFiltering();
	/*if(dhtmlHistory.getCurrentLocation()=="cluster") {
	    history.back();
	} else {*/
	    var ajaxRequest = new AjaxRequest( ajaxStubURL+ "?dest=" + reqUrl, viewAllCallBack );	
	    ajaxRequest.sendRequest();
	//}
}

function actQueryType() {
	var qtVal = "";
	var qtObj = xg('pageform').querytype;
	if(qtObj) {
		for(i=0; i<qtObj.length; i++) {
			if(qtObj[i].checked) qtVal = qtObj[i].value;
		}
	}
	return qtVal;
}

function createReqUrlForFiltering() {
	var cotree = "";
	for (i=0; i<treeNumbers.length; i++){
		cotree += "&cotree_" + treeNumbers[i] + "=" + xg("cotree_" + treeNumbers[i]).value;
	}
	return "filterResults.jsp" + 
			"&q=" + encURI(xg("qry").value) + 
			//"&cotree=" + xg("cotree").value + 
			cotree + 
			"&cstree=" + xg("cstree").value + 
			"&clusterids=" + xg("clusterids").value + 
			"&querytype=" + actQueryType() + 
			"&isclustering=" + xg("isclustering").value + 
			"&deloldclusters=" + xg("deloldclusters").value + 
			"&isclusteringvariants=" + xg("isclusteringvariants").value 
			; 
}

var redispImgs = false; //images should be redisplayed
var redispImgsAjax = false; //... with AJAX
function filterResultCallBack(ajaxRequest_) { 
	locCache = new Array();
	refreshRCTree();
	actPageOffset = "0";
	refrHeader = true;
	refreshResultCenter();
	show(xg("viewalltable"));
}

function viewAllCallBack(ajaxRequest_) { 
	locCache = new Array();
	refreshRCTree();
	actPageOffset = "0";
	refrHeader = true;
	refreshResultCenter();
	hide( xg("viewalltable") );
/*
	if(clusterPending!="") {
	    sct(clusterPending,0,true);
	    clusterPending="";
	    return;
	}
*/
}


function searchClusteringTree(text, main) {
	var regexp = /,/g;
	var tmp = text.replace(regexp,".");
	xg("cstree").value = xg("cstree").value + tmp;
	if (text!="") {
		xg("deloldclusters").value = "true";
		if(statswitch) {
			var arr = text.split(",");
			var terms = clustDisplStr!="" ? (sStrip(encURI(clustDisplStr))+" > ") : "";
			var terms2 = "(";
			var terms3 = "(";
			var numstr="";
			for(i=0; i<arr.length;i++) {
				var t = arr[i];
				if(t!="") {
					var returnedIdTreeNumber = getId(t, "SEARCH");
					var id = returnedIdTreeNumber.id;
					var treeNumber = returnedIdTreeNumber.treeNumber;
					var tree = window["tree_" + treeNumber + "_"];
					var es = window["es_" + treeNumber];
					var term = sStrip(encURI(es[id]));
					if(terms2!="(") {
						terms2+=" or ";
						terms3+=" or ";
					}

					var actnode = tree.aNodes[id];
					var fullterm=term;
					while(actnode._p && actnode._p.id) {
						actnode = actnode._p;
						fullterm = es[actnode.id] + "/" + fullterm;
					}
					terms2 += fullterm;
					terms3 += term;
					numstr+=tree.aNodes[id]._dn + ((i==arr.length-1) ? "" : ",");
				}
			}
			if(arr.length<=2) {
				terms2 = terms2.substring(1,10000);
				terms3 = terms3.substring(1,10000);
			} else {
				terms2 += ")";
				terms3 += ")";
			}
			addStat(ssid+"!RCC!"+sStrip(encURI(terms2))+"!"+actTreeOrder()+"!"+numstr+"!"+terms + terms3+"!"+sStrip(encURI(swthnstr)));
		}
		searchClusteringAjax(text, main);
	}
}

function sa(termid, treeNumber) { //search again - from rc tree
	i = 1;
	var tids = window["tids_" + treeNumber];
	var es = window["es_" + treeNumber];
	len = es.length; 
	while(i<len && tids[i]!=termid && (tids[i]!="_"+termid) ) {
		i++;
	}
	if(i<len) {
		text = es[i];
		space_yes = text.indexOf(' ')>=0; 	
		if (space_yes) text = '"' +  text + '"'; 
		changeQ_add(text);
	}
}

function closeLocalMenu() {
	hide(xg('tvcbwrap'));
	window.clearTimeout(catmenutos);
}



function showMoreTerms(count) {
	var showallchecked = xg("showallswitch") && xg("showallswitch").checked;
	xg("showallclicked").value= showallchecked ? "true" : "false";
	xg("morecount").value = "" + (morecount + (count ? count : 1) );
	xg("morercclicked").value = "true";
	xg("pageform").submit();
}

function showAllTerms() {
	showMoreTerms(10000);
}


function showInMain(link) {
	location.href = link;
}


function searchSubmitted(forceSearchBack) {
	xg("searchError").style.display='none';
	xg("qry").value = normalizeQuery(xg("qry").value);
	if(((forceSearchBack == undefined) || !forceSearchBack) && xg("qry").value == "") {
		alert(enterQuerytext);
		return;
	}
	sf = xg("pageform");
	sf.action = searchPageUrl;
	sf.submit();
	xg("searchButtonSection").style.visibility  = "hidden";
}

function initpvls() {
	var i = 1;
	while( i<=maxpvlid) {
		obj = xg('pvlink'+i);
		if(obj) {
			obj.innerHTML = "<span id='pvl" + i + "'>" + previewLabelHtml + "</span>";
		}
		i++;
	}
}

//preview
function prv(id, position, stype) {
	var url = ls[id];

	var previewFrame = xg('pvif'+id);
	var previewLink = xg('pvlink'+id);
	var previewLabel = xg('pvl'+id);

	var previewLabelText = previewLabel.innerHTML;
	var openit = previewLabelText.indexOf(whatSearchInPreviewLabelText)==-1;

	if(openit) {
		previewLabel.innerHTML = closePreviewLabelHtml;
		previewFrame.height = previewHeight;
		previewFrame.src = url;

	} else if(previewFrame) {
		previewLabel.innerHTML = previewLabelHtml;
		previewFrame.height = 0;
		previewFrame.src = '';
	}
	if(statswitch) {
		addStat(ssid+"!RLPV!"+ (openit?"1!":"0!") + sStrip(encURI(url)) +"!"+ stype +  "!"+actOrder()+ "!" +
			(parseInt(actPageOffset)+1)+"!"+ position +"!"+sStrip(encURI(clustDisplStr))+"!"+sStrip(encURI(swthnstr)));		
	}

}

function previewOn(id, url ) {
	var previewFrame = xg('pvif'+id);
	var previewLabel = xg('pvl'+id);
	previewLabel.innerHTML = closePreviewLabelHtml;
	if(previewFrame) {
		previewFrame.height = previewHeight;
		previewFrame.src = url;
	} 
}
	

function linkparamreplace(str1 , str2) {
	ls = doc.links;
	len = doc.links.length;
	for(i=0; i<len; i++) {
		where1 = ls[i].href.indexOf(str1);
		if(where1>=0) {
			ls[i].href = ls[i].href.replace(str1, str2);
		} else {
			if(ls[i].href.indexOf("pager")>0) {
				ls[i].href = ls[i].href.replace('?', '?'+str2+'&');					
			}
		}
	}
}

function showTargetsOf(catid) {
	sel1 = xg("sgcb"+catid);
	if(sel1) {
		dispo(xg("tgof"+catid), sel1.checked );
	}
}

function newSearch(text) {
	space_yes = text.indexOf(' ')>=0; 	
	text = ( space_yes ? '"' : '' ) +  text +  ( space_yes ? '"' : '' ); 
	changeQ_add(text);
}

function changeQ(withThis,t,n) {
	if(n && statswitch) {
		addStat(ssid+"!" + t + "Y!" + sStrip(encURI(withThis)) + "!" + n );		
	}
	changeQuery(withThis);
	ajaxSearchSubmitted();
}

function changeQ_add(withThis) {
	changeQuery(xg("qry").value + " " + withThis);
	ajaxSearchSubmitted();
}

function clearQ(focusfname) {
	changeQuery('');
	focusfield = xg(focusfname);
	focusfield.focus();
}

function changeQuery(withThis) {
	xg("qry").value = withThis;
	doc.afterLogoutForm.q.value = withThis;
}

var synarr = new Array();
function changeQueryByCheckbox(text, boxState) {
	var theSpan = xg("origq_cb_span");
	var remove_orig = theSpan.style.display=="none";
	show(xg("origq_cb_span"));
	if (boxState){
		if(remove_orig) {
			removeQuery(origq_text);
		}
		addQuery(text);
		if(statswitch) {
			addStat(ssid+"!SY1!" + sStrip(encURI(text)) );		
		}
	} else {
		if(statswitch) {
			addStat(ssid+"!SY0!" + sStrip(encURI(text)) );		
		}
		removeQuery(text);
	}
}

function changeQueryByCheckbox2(boxState) {
	if (boxState){
		addQuery(origq_text);
	}else{
		removeQuery(origq_text);
	}
}

function addQuery(addThis) {
	var actualQuery = xg("qry").value;
	xg("qry").value = actualQuery + " " + addThis;
	doc.afterLogoutForm.q.value = actualQuery + " " + addThis;
}

function removeQuery(removeThis) {
	var actualQuery = xg("qry").value;
	var actualQueryArray = actualQuery.split(" ");
	var bingo = false;
	var actualWordNum = 0;
	var newQuery = "";
	var removeThisArray = removeThis.split(" ");
	if (removeThisArray.length == 1){
	while ((actualWordNum < actualQueryArray.length) && !bingo){
		var actualWord = actualQueryArray[actualWordNum];
		if (actualWord != removeThis){
			if (actualWordNum == 0){
				newQuery = actualWord;
			}else{
				newQuery = newQuery + " " +actualWord;
			}
		}else{
			bingo = true;
		}
		actualWordNum++;
	}
	}else{
	while (actualWordNum < actualQueryArray.length){
		var actualWord = actualQueryArray[actualWordNum];
		if (actualWord == removeThisArray[0]){
			var tempActualWordNum = actualWordNum+1;
			while ( (tempActualWordNum < actualQueryArray.length) && (tempActualWordNum - actualWordNum < removeThisArray.length) && (actualQueryArray[tempActualWordNum] == removeThisArray[tempActualWordNum-actualWordNum])){
				tempActualWordNum++;
			}
			if (tempActualWordNum - actualWordNum == removeThisArray.length) {
				actualWordNum = tempActualWordNum - 1;
				bingo = true;
			}else{
				if (actualWordNum == 0){
					newQuery = actualWord;
				}else{
					newQuery = newQuery + " " +actualWord;
				}					
			}
		}else{
			if (actualWordNum == 0){
				newQuery = actualWord;
			}else{
				newQuery = newQuery + " " +actualWord;
			}
		}
		actualWordNum++;
	}
	}
	if (bingo && (actualWordNum < actualQueryArray.length)){
	while (actualWordNum < actualQueryArray.length){
		var actualWord = actualQueryArray[actualWordNum];
		if (actualWordNum == 0){
			newQuery = actualWord;
		}else{
			newQuery = newQuery + " " +actualWord;
		}			
		actualWordNum++;
	}
	}
	xg("qry").value = newQuery;
	doc.afterLogoutForm.q.value = newQuery;
}

//showDuplicates
function sd(number,u,n,stype) {
	var duplicates  = xg('dup' + number );
	var dupanchor  = xg('da' + number );
	var on = duplicates.style.display!='';
	if(statswitch) {
		addStat(ssid+"!RL" + (on ? "V" :"H")+ "D!" +sStrip(encURI(u))+ "!" + stype + "!"+actOrder()+"!"+ 
			(parseInt(actPageOffset)+1)+"!"+ n +"!"+sStrip(encURI(clustDisplStr))+"!"+sStrip(encURI(swthnstr)));		
	}
	if(duplicates && dupanchor) {
		dispo(duplicates,on);
		dupanchor.innerHTML = on ? hideDuplicatesStr : showDuplicatesStr;
	}
}


function viewAll() {
	if(treeExists) {
		for (i=0; i < treeNumbers.length; i++)
			 window["tree_" + treeNumbers[i] + "_"].clearAllSelection();
	}
	xg("clusterids").value = '';
	xg("isclustering").value = false;
	changeQuery('');
	xg("pageform").submit();
}


function log(msg) {
	loggersect_obj = xg('loggersect');
	var style_ = new xbStyle(loggersect_obj);
	style_.display = "";
	loggersect_obj.innerHTML=loggersect_obj.innerHTML+msg+'<BR>';
	//loggersect_obj.innerHTML=msg+'<BR>';
}



var starttime = 0;
function showTime(msg) {
	if(starttime == 0) {
		starttime = new Date().getTime();
	}
	log(msg + ": " + (new Date().getTime() - starttime) + " ms");
}

function RCTreeSwitch(imageUriPrefix) {
	RCTreeShownAll = !RCTreeShownAll;
	if(RCTreeShownAll) {
		for (i=0; i < treeNumbers.length; i++)
			window["tree_" + treeNumbers[i] + "_"].openAll();
	} else {
		for (i=0; i < treeNumbers.length; i++)
			window["tree_" + treeNumbers[i] + "_"].closeAll();
	}
	if(xg("RCHeaderImage")) {
		xg("RCHeaderImage").src = imageUriPrefix + (RCTreeShownAll ? 
			'/nlm.gif' : '/nlp.gif');
	}
}

//Resizing columns
var _RES_HAND_CLASS = "resHand";
var _NO_RES_HAND_CLASS = "noResHand";
var _RES_CONT_CLASS ="resCont";
var _MIN_W_ATTR = "minW";
var _INIT_WIDTH_ATTR = "initW";
var _CELL_ATTR = "ix";
var draggedElem = null;
var rst;
function initResizing(){
	rst = xg("resultlisttable")
	cell1 = xg("treecell");
	cell2 = xg("resultlistcell");
	cell3 = xg("otherdbres");
	hand2 = xg("hand2");
	if (hideHand2 && hand2) {
		hide(hand2);
	}
        
	var row = null;
	if(typeof rst != 'undefined' && rst) {
		row = rst.rows[0];
	}
	if(row){
		var cells=row.cells;
		if(cells){
			for(var i=0;i<cells.length;i++){
				var cell = cells[i];
				cell.__CELL_ATTR = i;
				if(cell.className==_RES_HAND_CLASS){
					if(cell.addEventListener){
						cell.addEventListener("mousedown", handleMouseDown, false);
					}else{
						cell.onmousedown=handleMouseDown;
					}
				}
			}
		}
	}
}

function handleMouseDown(evt){
	evt = evt ? evt : event;
	targ = evt.currentTarget?evt.currentTarget:evt.srcElement;
	while(targ && targ.tagName!="TD"){
		targ=targ.parentNode;
	}
	if(targ){
		draggedElem=targ;
		draggedElemRow=draggedElem.parentNode;
		for(var i=0; i<draggedElemRow.cells.length; i++){
			var cell=draggedElemRow.cells[i];
			if(!cell.getAttribute(_MIN_W_ATTR)){
				cell.setAttribute(_MIN_W_ATTR,1);
			}
			cell.setAttribute(_INIT_WIDTH_ATTR,cell.offsetWidth);
		}
		if(window.addEventListener) {
			window.addEventListener("mousemove", handleMouseMove, true);
			window.addEventListener("mouseup", handleMouseUp, true);
		} else if(targ.setCapture) {
			targ.setCapture();
			targ.onmousemove=handleMouseMove;
			targ.onmouseup=handleMouseUp;
		} else {
			window.onmousemove=handleMouseMove;
			window.onmouseup=handleMouseUp;
			doc.onmousemove=handleMouseMove;
			doc.onmouseup=handleMouseUp;
			doc.body.onmousemove=handleMouseMove;
			doc.body.onmouseup=handleMouseUp;
		}
		if(typeof evt.pageX!="undefined"){
			offsetX=evt.pageX;
		}else{
			offsetX=evt.screenX;
		}
		if(evt.preventDefault){
			evt.preventDefault();
		}
	}
}

function handleMouseMove(evt){
	evt=evt ? evt : event;
	if(draggedElem){
		if(evt.preventDefault){
			evt.preventDefault();
		}
		evt.cancelBubble=true;
		var newX;
		var d; //delta
		if(typeof evt.pageX!="undefined"){
			newX=evt.pageX;
		}else{
			newX=evt.screenX;
		}
		d=newX-offsetX;
		if(d){
			var actlChange=0;
			if(d<0){
				d=-d;
				for(var i=draggedElem.__CELL_ATTR-1;i>=0;i--){
					var cell=draggedElemRow.cells[i];
					if(cell.className==_RES_CONT_CLASS&&!isHidden(cell)){
						initialWidth=parseInt(cell.getAttribute(_INIT_WIDTH_ATTR));
						var newWidth=initialWidth;
						if(d>0){
							minWidth=parseInt(cell.getAttribute(_MIN_W_ATTR));
							var availDelta=initialWidth-minWidth;
							if(availDelta>0){
								if(availDelta<d){
									newWidth=minWidth;
									actlChange+=availDelta;
									d-=availDelta;
								}else{
									newWidth=initialWidth-d;
									actlChange+=d;
									d=0;
								}
							}
						}
						ow = cell.offsetWidth;
						setCellWidth(cell,newWidth);
						/*if(i==draggedElem.__CELL_ATTR-1 && ow<=cell.offsetWidth) {
							handleMouseUp(null);
							return;
						}*/
					}
				}
				for(var i=draggedElem.__CELL_ATTR+1;	i<draggedElemRow.cells.length;i++){
					var cell=draggedElemRow.cells[i];
					if(cell.className==_RES_CONT_CLASS&&!isHidden(cell)){
						initialWidth=parseInt(cell.getAttribute(_INIT_WIDTH_ATTR));
						var newWidth=initialWidth;
						if(actlChange>0){
							newWidth=initialWidth+actlChange;
							actlChange=0;
						}
						setCellWidth(cell,newWidth);
					}
				}
			}else{
				for(var i=draggedElem.__CELL_ATTR+1;	i<draggedElemRow.cells.length;i++){
					var cell=draggedElemRow.cells[i];
					if(cell.className==_RES_CONT_CLASS&&!isHidden(cell)){
						initialWidth=parseInt(cell.getAttribute(_INIT_WIDTH_ATTR));
						var newWidth=initialWidth;
						if(d>0){
							minWidth=parseInt(cell.getAttribute(_MIN_W_ATTR));
							var availDelta=initialWidth-minWidth;
							if(availDelta>0){
								if(availDelta<d){
									newWidth=minWidth;
									actlChange+=availDelta;
									d-=availDelta;
								}else{
									newWidth=initialWidth-d;
									actlChange+=d;
									d=0;
								}
							}
						}
						setCellWidth(cell,newWidth);
					}
				}
				for(var i=draggedElem.__CELL_ATTR-1;i>=0;i--){
					var cell=draggedElemRow.cells[i];
					if(cell.className==_RES_CONT_CLASS&&!isHidden(cell)){
						initialWidth=parseInt(cell.getAttribute(_INIT_WIDTH_ATTR));
						var newWidth=initialWidth;
						if(actlChange>0){
							newWidth=initialWidth+actlChange;
							actlChange=0;
						}
						setCellWidth(cell,newWidth);
					}
				}
			}
		}
	}
	//logWidths();
}

function setCellWidth(cell,width, inanycase){
	if(cell && (cell.width!=width || inanycase) ){
		cell.width=width;
		for(var i=0;i<cell.childNodes.length;i++){
			var child=cell.childNodes[i];
			var className_ = child.className;
			if( className_
			   && (className_.indexOf("rtdtree")==0 || className_.indexOf("reslistable")==0 || 
				   className_=="adstableclass" || className_=="otherdbresclass" )
			   && navigator.userAgent.indexOf("Netscape")==-1 && child.id!="adstable_rowformat") {
				child.style.width=width;
			}
		}
	}
	return true;
}

function isHidden(cell){
	return cell.style.display=="none";
}

function handleMouseUp(evt){
	evt = evt ? evt : event;
	if(draggedElem){
		if(window.removeEventListener){
			window.removeEventListener("mousemove", handleMouseMove, true);
			window.removeEventListener("mouseup", handleMouseUp, true);
		}else if(draggedElem.releaseCapture){
			draggedElem.releaseCapture();
			draggedElem.onmousemove="";
			draggedElem.onmouseup="";
		}else{
			doc.body.onmousemove = '';
			doc.body.onmouseup = '';
			window.onmousemove = '';
			window.onmouseup = '';
			doc.onmousemove = '';
			doc.onmouseup = '';
		}
		window.onmousemove = null;
		window.onmouseup = null;
		window.status = "";
		draggedElem = null;
		if(evt && evt.preventDefault){
			evt.preventDefault();
		}
	}
}


function resizeColumnToFitTheTableToWindowWidth(cell) {
	if(typeof rst == "undefined" || !rst) return;
	if(cell && getWidthOfWindow()<rst.offsetWidth) {
		width = getWidthOfWindow() - rst.offsetWidth + cell.offsetWidth;
	   setCellWidth(cell, width>0 ? width : 1);
	}
}


function getWidthOfWindow() {
	if (self.innerWidth) {
		return self.innerWidth;
	}
	else if (doc.documentElement && doc.documentElement.clientWidth) {
		return doc.documentElement.clientWidth;
	}
	else if (doc.body) {
		return doc.body.clientWidth;
	}
	else return;
}


function showOrHideCommandLinks() {
	obj = xg("commandLinks1");
	dispn("commandLinks1", !(chRTs==0  && chRTs_cl==0));
	dispn("commandLinks2", !(chRTs==0  && chRTs_cl==0));
	dispn("commandLink1_cl", chRTs_cl!=0);
	dispn("commandLink2_cl", chRTs_cl!=0);
}


//"show more from this site"
function smfts(id_,n,stype, lsid) {
	showmoreindentedid = id_;
	if(statswitch) {
		addStat(ssid+"!RLSS!" + "!" +sStrip(encURI(ls[lsid]))+ "!" + stype + "!"+actOrder()+"!"+
			(parseInt(actPageOffset)+1)+"!"+ n +"!"+sStrip(encURI(clustDisplStr))+"!"+sStrip(encURI(swthnstr)));
	}
	refrHeader = true;
	reqResCenter(true);
}

function hmfts(id_,n,stype, lsid) {
	hidemoreindentedid = id_;
	showmoreindentedid = id_;
	if(statswitch) {
		addStat(ssid+"!RLSH!" + "!" +sStrip(encURI(ls[lsid]))+ "!" + stype + "!"+actOrder()+"!"+
			(parseInt(actPageOffset)+1)+"!"+ n +"!"+sStrip(encURI(clustDisplStr))+"!"+sStrip(encURI(swthnstr)));
	}
	reqResCenter(true);
}


//"More with this title"
function mwtt(id_,n,stype) {
	showmoreindentedid = id_;
/*	if(statswitch) {
		addStat(ssid+"!RLWT!" + "!" +sStrip(encURI(id_))+ "!" + stype + "!"+actOrder()+"!"+ 
			(parseInt(actPageOffset)+1)+"!"+ n +"!"+sStrip(encURI(clustDisplStr))+"!"+sStrip(encURI(swthnstr)));		
	}*/
	morewiththistitle = true;
	refrHeader = true;
	reqResCenter(true);		
}

function hmwtt(id_,n,stype) {
	hidemoreindentedid = id_;
	showmoreindentedid = id_;
	morewiththistitle = true;
/*	if(statswitch) {
		addStat(ssid+"!RLHWT!" + "!" +sStrip(encURI(id_))+ "!" + stype + "!"+actOrder()+"!"+ 
			(parseInt(actPageOffset)+1)+"!"+ n +"!"+sStrip(encURI(clustDisplStr))+"!"+sStrip(encURI(swthnstr)));		
	}*/
	reqResCenter(true);
}



function hit(stid) {
	return true;
}


function setUrlParameter(url, paramname, paramvalue) {
	var ret = "";
	var start = url.indexOf(paramname);

	if (start > -1) {
		var begin = url.slice(0,start);
		var nextParamIndex = url.indexOf('&', start);
		var end = "";
		if (nextParamIndex > -1) {
			end = url.slice(nextParamIndex);
		}
		ret = begin + paramname + '=' + paramvalue + end;

	} else {

		ret = url + '&' + paramname + '=' + paramvalue;
	}
	return ret;
}

function setCookieSpec(cookieNameArg, cookieValueArg) {
	if(useCookies) {
		var expdate = new Date();
		expdate.setTime(expdate.getTime() + days_to_keep_cookie*ms_per_day); 
		setCookie(cookieNameArg, cookieValueArg, expdate,cookie_path);
	}
}


//Ajax:
//util funct
function showNewImages(imgIdPrefix, imgsSrcArray) {
	if(doc.images) {
		var j=0;
		var i_ = 0;
		var imglen = imgsSrcArray.length;
		if(imglen>0 && imgIdPrefix=="img") {
			imgsObj = new Array();
		}
		for(i_=0; i_<imglen; i_++ ) {
			img_ = doc.images[imgIdPrefix+i_];
			if(img_ ) {
				if(imgIdPrefix=="img") {
					imgsObj[j++]=img_;
				}
				img_.src = imgsSrcArray[i_];
			}
		}
	}
}


//1 - short result summary ------------
function showSearchSummaryUp() {
	t = xg("ssumt"); 
	th = xg("ssumth");
	if(t) {
		if(t.style.display == '') {
			hide(t);
			hide(th);
			checked = false;
		} else {
			if(summaryDownloaded) {
				show(t);
				show(th);
			}
			checked = true;
			if(statswitch) addStat(ssid+"!HS");
		}
		if(statswitch) addStat(ssid+"!H" + (checked ? "S" :"H"));	
		showHits_ = checked ? "1" : "0";
		setCookieSpec("pm_showHits_"+uname+cat_id,showHits_);
		dispn('shortSummaryOrderAnchor',checked);
		if(!useCookies  || !cookiesCanBeUsed) {
			form_ = xg("uisettingform");
			if(checked && !summaryDownloaded) {
				form_.resubmit.value = '1';
			} else {
				form_.resubmit.value = '0';
			}
			form_.ssw.value = showHits_;
			form_.submit();
		} 
		if(checked && !summaryDownloaded) {
			ajaxRequestSearchSummary();
		}
		shl_obj = xg('showhitslink');
		shl_obj.innerHTML = checked ? hideHitsStr : showHitsStr;
	}
}

function ajaxRequestSearchSummary() {
	if(!showHits_) {
		return;
	}	
	var order = xg("shortsummaryorder").value;
	var reqUrl = ""; 
	if(order==SUM_ORDER_ABC) {
		reqUrl = "searchsumsectionAlpha.jsp";
	} else {
		reqUrl = "searchsumsection.jsp";
	}
	if( locCache[reqUrl] ) {
		showSearchSummarySection(locCache[reqUrl], locCache[reqUrl + "_SCRIPT" ]);
		return;
	}
	var ajaxRequest = new AjaxRequest( ajaxStubURL+ "?dest=" + reqUrl, showAjaxSearchSummaryCallBack );	
	ajaxRequest.setRequestID(reqUrl)
	ajaxRequest.sendRequest();
}

function showAjaxSearchSummaryCallBack(ajaxRequest_) { 
	var text = ajaxRequest_.getHtmlResponse();
	var scriptText = ajaxRequest_.getScriptResponse();
	showSearchSummarySection( text, scriptText );
	locCache[ajaxRequest_.getRequestID()] = text;
	locCache[ajaxRequest_.getRequestID() + "_SCRIPT"] = scriptText;
	summaryDownloaded = true;
}

function showSearchSummarySection(text, scriptText) {
	var spanObj = xg("shortresultsummary_span");
	if(spanObj) {
		spanObj.innerHTML = "<TABLE class=\'shortresultsummary_table\' cellpadding=\'0\' cellspacing=\'0\'>" +  text + "</TABLE>";
		show(spanObj);
	}
	show(xg("ssumt"));
	imgsSuSrc = new Array();
	eval(scriptText);
	showNewImages("imgsu", imgsSuSrc);		
}



function showAjaxImageSectionCallBack(ajaxRequest_) { 
	var text = ajaxRequest_.getHtmlResponse();
	var scriptText = ajaxRequest_.getScriptResponse();
	showImageSection( text, scriptText );
	locCache[ajaxRequest_.getRequestID()] = text;
	locCache[ajaxRequest_.getRequestID() + "_SCRIPT"] = scriptText;
}


//3 - result list central section ------------
var actPageOffset = "0";
var showmoreindentedid = null;
var hidemoreindentedid = null;
var morewiththistitle=false;
var resultPagingOnBottom = false;
var refrHeader = false;

function page(reqParam, bottom) {
	var newpage = parseInt(reqParam.substring(reqParam.indexOf("=")+1,100))+1;
	if(statswitch) {
		addStat(ssid+"!RLP!" + (parseInt(actPageOffset)+1)+"!"+ newpage + "!"+
			actOrder() +"!"+sStrip(encURI(clustDisplStr))+"!"+sStrip(encURI(swthnstr)));		
	}
	if(!paged) {
	    dhtmlHistory.add( "cluster" ,  "page");
	}
	paged = true;
	var str = "<span class='downloadingMessage'>" + downloadingMessage + "</span>";
	xg("pagesect").innerHTML = str;
	xg("pagesect2").innerHTML = str;
	actPageOffset = reqParam.substring(reqParam.indexOf("=")+1, reqParam.length );
	resultPagingOnBottom = bottom;
	reqResCenter();
}

function resultOrdering() {
	if(statswitch) {
		addStat(ssid+"!RLO!" + actOrder() + "!"+ 
			(parseInt(actPageOffset)+1) +"!"+sStrip(encURI(clustDisplStr))+"!"+sStrip(encURI(swthnstr)));		
	}
	actPageOffset = "0";
	refrHeader = true;
	showDownloading = true;
	reqResCenter(true);
}

function refreshResultCenter() {
	reqResCenter(false);
}

function reqResCenter(dontreadfromcache) {
	if(showmoreindentedid!=null || hidemoreindentedid!=null) {
		//Erase local cache. Coarse - but effective.
		locCache = new Array();
	}
	var order = actOrder();

	if(showDownloading) {
		var obj = xg("resultordercell");
		if(obj) {
			obj.setAttribute("valign","top");
		}
		var spanObj = xg("resultorderselect");
		if(spanObj) {
			spanObj.innerHTML = "<span class='downloadingMessage'>" + downloadingMessage + "</span>";
		}
		showDownloading = false;
	}

	var reqParam = "resultpager.offset="+actPageOffset+"&resultorder=" + order;
	var mapkey="resultsTableCenterColumn.jsp?" + reqParam ;
	if( !dontreadfromcache && locCache[mapkey]) {
		showCenterColumn(locCache[mapkey], locCache[mapkey + "_SCRIPT" ]);
		if(resultPagingOnBottom) {
			xg("topoftree").scrollIntoView();
			resultPagingOnBottom = false;
		}
		return;
	}
	var reqParam2 = "";
	if(showmoreindentedid!=null) {
		if(!morewiththistitle) {
			reqParam2 = "&showmoreindentedid=" + (IEBrowser ? escape(showmoreindentedid) : encURI(showmoreindentedid)) ;
		} else {
			reqParam2 = "&showmoreindentedid=" + showmoreindentedid;
			morewiththistitle = false;
		}
		showmoreindentedid = null;
	}
	if(hidemoreindentedid!=null) {
		if(!morewiththistitle) {
			reqParam2 = "&hidemoreindentedid=" + (IEBrowser ? escape(hidemoreindentedid) : encURI(hidemoreindentedid)) ;
		} else {
			reqParam2 = "&hidemoreindentedid=" + hidemoreindentedid;
			morewiththistitle = false;
		}
		hidemoreindentedid = null;
	}
	var ajaxRequest = new AjaxRequest( ajaxStubURL + "?dest=inc/resultsTableCenterColumn.jsp&" + reqParam + reqParam2, showAjaxResultCenterColumnCallBack );	

	ajaxRequest.setRequestID(mapkey);
	ajaxRequest.sendRequest();
}


function showAjaxResultCenterColumnCallBack(ajaxRequest_) { 
	var text = ajaxRequest_.getHtmlResponse();
	var scriptText = ajaxRequest_.getScriptResponse();
	showCenterColumn( text, scriptText );
	locCache[ajaxRequest_.getRequestID()] = text;
	locCache[ajaxRequest_.getRequestID() + "_SCRIPT"] = scriptText;
	if(resultPagingOnBottom) {
		xg("topoftree").scrollIntoView();
		resultPagingOnBottom = false;
	}
	if(refrHeader){
		refreshListHeader();
		refrHeader = false;
	}
}


function showCenterColumn(text, scriptText) {
	var spanObj = xg("resultlistspan");
	if(spanObj) {
		spanObj.innerHTML = text;
	}
	imgsIrSrc = new Array();
	imgsSrc = new Array();
	eval(scriptText);
	showNewImages("imgir",imgsIrSrc);
	//showNewImages("imgo",imgsOrSrc);
	showNewImages("img",imgsSrc);
}

//4 - rel term tree
function showRCTreeSectionCallBack(ajaxRequest_) { 
	var text = ajaxRequest_.getHtmlResponse();
	var scriptText = ajaxRequest_.getScriptResponse();
	if(scriptText.indexOf("//EMPTY_RT_MSG")>=0) {
		window.setTimeout("refreshRCTree()", RC_TREE_REF_MS);
	} else {
		showRCTreeSection( text, scriptText );
	}
}

function showRCTreeSection(text, scriptText) {
	var spanObj = xg("rctreesectspan");
	if(spanObj) {
		treeExists = true;
		spanObj.innerHTML = text;
	}
	eval(scriptText);
}

function actTreeOrder() {
	var order = defSelTreeRelTermOrder;
	var obj_ = xg("treereltermorder");
	if(obj_) {
		order = obj_.value;
	}
	return order;
}

function createRCTreeReqParam(selectedTree) {
	var cotree = "";
	for (i=0; i<treeNumbers.length; i++){
		cotree += "&cotree_" + treeNumbers[i] + "=" + xg("cotree_" + treeNumbers[i]).value;
	}
	if (!rcCountForTree[selectedTree]) {
		 rcCountForTree[selectedTree] = initNumOfNodesInRCTree;
	}
	return "treereltermorder=" + actTreeOrder() + 
			"&treeNumbers=" + treeNumbers + 
			cotree + 
			"&cstree=" + xg("cstree").value + 
			"&rcCountForTree=" + rcCountForTree[selectedTree];
}


function more(id, treeNumber) {
	if(statswitch) {
		var i = getId(id, treeNumber);
		var actnode = window["tree_" + treeNumber + "_"].aNodes[i];
		var dn = actnode._p._dn;
		var term = "";
		while(actnode._p && actnode._p.id) {
			actnode = actnode._p;
			term = window["es_" + treeNumber][actnode.id] + (term=="" ? "" : "/") + term;
		}
		addStat(ssid+"!RCM!"+ sStrip(encURI(term)) +"!"+actTreeOrder()+"!"+ dn +"!"+sStrip(encURI(clustDisplStr))+"!"+sStrip(encURI(swthnstr)));
	}
	var reqParam = createRCTreeReqParam();
	var mapkey="RCtreeSection.jsp?" + reqParam ; 
	var ajaxRequest = new AjaxRequest( ajaxStubURL + "?dest=inc/RCtreeSection.jsp&" + reqParam + "&scrolltodiv=divtree_"+treeNumber+"_"+getId(Number(id.substring(1,100)), treeNumber)+ "&morecountfornode=" + id.substring(1,100), showRCTreeSectionCallBack);
	ajaxRequest.setRequestID(mapkey);
	ajaxRequest.sendRequest();
}

function relTermOrderChanged(calledFromTree) {
	if(calledFromTree) {
		var reqParam = createRCTreeReqParam();
		if(statswitch) {
			addStat(ssid+"!RCO!"+actTreeOrder()+"!"+sStrip(encURI(clustDisplStr))+"!"+sStrip(encURI((swthnstr))));
		}
		var mapkey="RCtreeSection.jsp?" + reqParam ;
		var ajaxRequest = new AjaxRequest( ajaxStubURL + "?dest=inc/RCtreeSection.jsp&" + reqParam , showRCTreeSectionCallBack);	
		ajaxRequest.setRequestID(mapkey);
		ajaxRequest.sendRequest();
	} else {
		xg("pageform").submit();
	}
}

//Show More Terms for Tree
function smtt(selectedTree, allclickednow) {
	if (!rcCountForTree[selectedTree]) {
		 rcCountForTree[selectedTree] = initNumOfNodesInRCTree;
	}
	rcCountForTree[selectedTree] = "" + (allclickednow ?  10000 : (parseInt(rcCountForTree[selectedTree]) + 8) );
	if(statswitch) {
		addStat(ssid+"!RC" + (allclickednow ? "A!" : ("S!"+ rcCountForTree + "!")) +actTreeOrder()+"!"+sStrip(encURI(clustDisplStr))+"!"+sStrip(encURI(swthnstr)));
	}
	var reqParam = createRCTreeReqParam(selectedTree);
	var mapkey="RCtreeSection.jsp?" + reqParam ; // not caching
	var ajaxRequest = new AjaxRequest( ajaxStubURL + "?dest=inc/RCtreeSection.jsp&" + reqParam + "&selectedTree=" + selectedTree + "&scrolltodiv=div"+lastZeroLevelNode, showRCTreeSectionCallBack);	
	ajaxRequest.setRequestID(mapkey);
	ajaxRequest.sendRequest();
}

function refreshRCTree() {
	if(xg("rctreesectspan")) {
		var reqParam = createRCTreeReqParam() + (rcTreeWithAjax ? "&firstcalled=true" : "");
		var mapkey="RCtreeSection.jsp?" + reqParam ;
		var ajaxRequest = new AjaxRequest( ajaxStubURL + "?dest=inc/RCtreeSection.jsp&" + reqParam , showRCTreeSectionCallBack);	
		ajaxRequest.setRequestID(mapkey);
		ajaxRequest.sendRequest();
	}
}

//Show All Terms for Tree
function satt(selectedTree) {
	smtt(selectedTree, true);
}


//5 - search
var startedSearch = false;
function ajaxSearchSubmitted(clearWiwContentId) {
	xg("searchError").style.display='none';
        if (startedSearch){
            return;
        }
        startedSearch = true;
	resultsFound = true;
	hitCountShowingFailed = false;
	locCache = new Array();
	//Stop the current search if runs
//	if (oldButtonStat != READY_STATUS) {
//		startNewSearch = true;
//		shutDownSearches();
//		return;
//	}

  queryObj = xg("qry");
	queryObj.value = normalizeQuery(queryObj.value);
	s = queryObj.value;
	if(s == "") {
		alert(enterQuerytext);
                startedSearch = false;
		return;
	}
	doc.title = title_prefix + s;
        
	hide(xg("viewalltable"));
	hide(xg("helptable"));
	hide(xg("resultlisttable"));
        hide(xg("bottom-search"));
        show(xg("startSearching"));
	var obj = xg("searchsum_help_span");
	if(obj) {
		obj.style.visibility = "hidden";
	}
	obj = xg("summarytab");
	if(obj) {
		obj.style.visibility = "hidden";
	}
	hide(xg("topoftree"));
	hide(xg("noresultsfound"));
	if(showHits_=="1") {
		hide(xg("ssumt")); 
	}
	obj = xg("didyoumeanspan"); 
	if(obj) {
		obj.innerHTML="";
	}
	for (ind=0; ind<targids.length; ind++) {
		var obj_1=xg('ssum'+targids[ind]);
		var obj_2=xg('ssumhit'+targids[ind]);
		if(obj_1) {
			obj_1.style.visibility = "hidden";
		}
		if(obj_2) {
			obj_2.style.visibility = "hidden";
		}
		var i=1;
		while(xg("categoryname"+i) ) {
			xg("categoryname"+i).style.visibility = "hidden";
			i++ ;
		}
	}

	showProcessBar(true);
	var frm = xg("pageform");
	frm.sq.value = frm.q.value;
	if(!searchFormDownloaded) {
		var ajaxRequest = new AjaxRequest( ajaxStubURL + "?dest=searchfr_form.jsp", insertSearchFormCallBack);
		if (clearWiwContentId) {
			xg("pageform").wiwcontentid.value='';
		}
		ajaxRequest.addFormElements("pageform");
		ajaxRequest.sendRequest();
	} else {
		var sfo = e1; //searchForm object;
		if(sfo.sc && frm.sc) {
			sfo.sc.value = frm.sc.value;
		}
		sfo.q.value = frm.q.value
		searchSubmitted2();	
	}
}

function insertSearchFormCallBack(ajaxRequest_) { 
	var scriptText = ajaxRequest_.getScriptResponse();
	eval(scriptText);
	searchFormDownloaded = true;
	searchSubmitted2();
}
	

// Call back method - called by server from Search servlet
function notAuthenticated() {
	startLoadingSummaryPage();
    //doc.afterLogoutForm.q.value = xg("pageform").q.value;
    //doc.logoutForm.submit();
}

// Logout synchronized to profile saving 
function profileSaved() {
    if (logoutAfter) {
        doc.logoutForm.submit();
    }
}

function initProcessBar(activeSearches) {
	processBarFullPhases = activeSearches * numOfProgPhases;
}

function showProcessBar(show_) {
	if (showGlobalProcessBar) {
		var processbarRow_obj = xg("processbarRow");
		if (show_) {
			processBarPhase = 0;
			processBarFullPhases = 1;
			show(processbarRow_obj);
			var processbarRowSpace_obj = xg("processbarRowSpace");
			show(processbarRowSpace_obj);
			updateProcessBar(0);
		} else {
			hide(processbarRow_obj);
		}
	}
}

function updateProcessBar(step) {
	if (showGlobalProcessBar) {
		processBarPhase+=step;
		phase = processBarPhase/processBarFullPhases;
		num = parseInt(phase*100, 10);
		snum = ''+num;
		if (snum.length==1) {
			snum = "__"+snum;
		} else if (snum.length==2) {
			snum = "_"+snum;
		}
		fullpagetable_obj = xg("fullpagetable");
		fullpagetable_style = new xbStyle(fullpagetable_obj);
		cw = fullpagetable_style.getClientWidth();
		fullLength= parseInt(cw/20) - lengthOfProcBar;
		if (fullLength < 0) fullLength = 0;
		actProcessBarText = processBarText+snum+"%";
		emptyPartLength = parseInt(fullLength/2);
		if (emptyPartLength != fullLength/2) actProcessBarText = "_"+actProcessBarText;
		for (ind=0; ind<emptyPartLength; ind++) {
			actProcessBarText = "_"+actProcessBarText+"_";
		}
		actPhase = parseInt(phase*actProcessBarText.length, 10);

		var tmp1 = actProcessBarText.substr(0, actPhase);
		tmp1 = tmp1.replace(/_/g, "&nbsp;");
		var tmp2 = actProcessBarText.substr(actPhase);
		tmp2 = tmp2.replace(/_/g, "&nbsp;");
		procbar_obj = xg("procbar");
		procbar_style = new xbStyle(procbar_obj);
		procbar_style.setInnerHTML(tmp1);
		bgprocbar_obj = xg("bgprocbar");
		bgprocbar_style = new xbStyle(bgprocbar_obj);
		bgprocbar_style.setInnerHTML(tmp2);
	}
}


function showBar(sid, phase) {	
	if (phase >0 && phase<=numOfProgPhases) {
		//Update processbar too
		updateProcessBar(1);
	}
}

function hitCount(sid, result) {	
	if(showTargetsService &&  showHits_=="1") { 
		var obj=xg('ssumhit'+sid);
		if(obj) {
			var link_obj = xg("sumlink"+sid);
			var addLink = false;
			if(link_obj.innerHTML.indexOf("ssumhit")<0 ) {
				addLink = true;
			}
			obj.innerHTML = (addLink ? ('<a href=\"\" id=\"ssumhitlink' + sid +  '\">' ) :"" ) + "&nbsp;-&nbsp;" + result + "&nbsp;" + (addLink ? "</a>" :"" );
			if(addLink) {
				var x = xg("ssumhitlink" + sid);
				x.href = summaryURLs[sid]; 
				x.target = null;
			}
			obj.style.visibility = "visible";
		} else {
			hitCountShowingFailed = true;
		}
		showCatNameRow(sid);
	}
}

function showCatNameRow(sid) {
	obj=xg('categoryname'+ catOfTarg[sid]);
	if(obj && obj.style.visibility=="hidden") {
		obj.style.visibility="visible";
	}
}



function searchSubmitted2() {
	window.onresize=resizeProcessBar;
	var sfo = e1;
	if(sfo) {
		sfo.q.value = normalizeQuery(sfo.q.value);
		oldButtonStat = SUBMITTED_STATUS;
		sfo.submit();
	}
}

function normalizeQuery(q) {
	if(q.length>300) {
		q = q.substring(0,300);
	}
    q = trim(q);
    q = q.replace(/\\+/, "");
    return q;
}

function numOfResultAvailable(numofres) {
	//show(xg("preparingsect"));
	//hide(xg("processbarRow"));
	//var preparingsect_cont_obj = xg("preparingsect_content");
	//preparingsect_cont_style=new xbStyle(preparingsect_cont_obj);
	//preparingsect_cont_style.setInnerHTML(analyzeTextOne +" " + numofres + " " + analyzeTextTwo);
        //preparingsect_cont_style.setInnerHTML(analyzeTextOne);
}

function resizeProcessBar() {
	updateProcessBar(0);
}

function shutDownSearches() {
	sdform = xg("sddummyForm");
	sdform.nextcallwillcome.value = ""+startNewSearch;
	sdform.submit(); 
}

function delayedImageShowing() {
	var i = 0;var j=0;
	var imgs=doc.images;
	var imglen;
	if(imgs) {
		imglen = imgsSrc.length;
		for(i=0; i<imglen; i++ ) {
			var t = imgs["img"+i];
			if(t) {
				imgsObj[j++]=t;
				t.src = imgsSrc[i];
			}
		}
		imglen = imgsOrSrc.length;
		for(i=0; i<imglen; i++ ) {
			var t = imgs["imgo"+i];
			if(t) {
				t.src = imgsOrSrc[i];
			}
		}
		imglen = imgsSuSrc.length;
		for(i=0; i<imglen; i++ ) {
			if(imgs["imgsu"+i]) {
				imgs["imgsu"+i].src = imgsSuSrc[i];
			}
		}
		imglen = imgsIrSrc.length;
		for(i=0; i<imglen; i++ ) {
			if(imgs["imgir"+i]) {
				xg("ia"+i).href = ih[i];
				imgs["imgir"+i].src = imgsIrSrc[i];
			}
		}
	}
}

function mouseMovedMs(pe) {
	mouseX = doc.body.scrollLeft + window.event.clientX;
	mouseY = doc.body.scrollTop + window.event.clientY;
	mouseScreenX = window.event.screenX;
	mouseScreenY = window.event.screenY;
}

function mouseMovedOther(pe) {
	mouseX = pe.pageX;
	mouseY = pe.pageY;
	mouseScreenX = pe.screenX;
	mouseScreenY = pe.screenY;
}

//6 -  clustering and searchwithin
function refreshListHeader() {
	ajaxRequestForListHeader();
}

function ajaxRequestForListHeader() {
	var ajaxRequest = new AjaxRequest( ajaxStubURL+ "?dest=inc/resultListHeaderRefresher.jsp", ajaxListHeaderCallBack );	
	ajaxRequest.sendRequest();
}

function ajaxListHeaderCallBack(ajaxRequest_) { 
	var obj = xg("resultlistheader_leftside_span");
	if(obj) {
		obj.innerHTML = ajaxRequest_.getHtmlResponse();
	}
	eval(ajaxRequest_.getScriptResponse());
}

function refreshSummarySection() {
	ajaxRequestSearchSummary();
}

function refreshSummarySection2() {
	var obj = xg("ssumt");
	if( obj && obj.style.display=="" ) {
		ajaxRequestSearchSummary();
	}

}


function saveStat(gotResult) {
	saveStat_(gotResult);
}

function saveStat_(gotResult){
	var ajaxRequest = new AjaxRequest( ajaxStubURL+ "?dest=../stat&method=savesearchresulttime&gotresult=" + gotResult, dummyCallBack );
	ajaxRequest.sendRequest();
}

function dummyCallBack() {
}

function ajaxRequestSearchSummaryAndStartSearch(selcat) {
	if(shSumArr) {
		showTargetsService = shSumArr[selcat];
	}
	var sp = xg("shortresultsummary_span");
	var st = xg("summarytab");
	if(showTargetsService) {
		sp.style.display = "";
		if(st) st.style.display = "";
		var order = xg("shortsummaryorder").value;
		var reqUrl = ""; 
		if(order==SUM_ORDER_ABC) {
			reqUrl = "inc/searchsumsectionAlpha_empty.jsp";
		} else {
			reqUrl = "inc/searchsumsection_empty.jsp";
		}
		reqUrl += "&selcat=" + selcat;
		var ajaxRequest = new AjaxRequest( ajaxStubURL+ "?dest=" + reqUrl, showAjaxSearchSummaryCallBack2 );	
		ajaxRequest.setRequestID(reqUrl)
		ajaxRequest.sendRequest();
	} else {
		sp.style.display = "none";
		if(st) st.style.display = "none";
		ajaxSearchSubmitted();
	}
}

function showAjaxSearchSummaryCallBack2(ajaxRequest_) { 
	var text = ajaxRequest_.getHtmlResponse();
	var scriptText = ajaxRequest_.getScriptResponse();

	var spanObj = xg("shortresultsummary_span");
	if(spanObj) {
		spanObj.innerHTML = "<TABLE class=\'shortresultsummary_table\' cellpadding=\'0\' cellspacing=\'0\'>" +  text + "</TABLE>";
	}
	xg("ssumt").style.display = ""; 
	imgsSuSrc = new Array();
	eval(scriptText);
	showNewImages("imgsu", imgsSuSrc);		

	summaryDownloaded = true;
	ajaxSearchSubmitted();
}

function refreshOtherResultsAuto() {
	reqAuto = true;
	refreshOtherResults();
}

function refreshOtherResults() {
	refreshOtherResults_();
}

function refreshOtherResults_() {
	var ajaxRequest = new AjaxRequest( ajaxStubURL+ "?dest=inc/otherDatabasesResults.jsp&auto=" + (reqAuto ? "true" : "false" ), refreshOtherResultsCallBack );	
	ajaxRequest.sendRequest();
}

function refreshOtherResultsCallBack(ajaxRequest_) { 
	var text = ajaxRequest_.getHtmlResponse();
	var scriptText = ajaxRequest_.getScriptResponse();
	if(text.indexOf("<!-- NONEWOTHERRESULTS -->")<0) {
		var spanObj = xg("otherdbres");
		if(spanObj) {
			spanObj.innerHTML = "<TABLE id=\'otherdbrestable\' class=\'otherdbresclass\' cellspacing=\'0\' width=\'" + other_results_width + "\'>" +  text + "</TABLE>";
		}
	} 
	otherResultsIncomplete = false;
	eval(scriptText);
	if(!multiDimSearch) {
		//refreshImageResults();
	} else {
		showNewImages("imgo",imgsOrSrc);
		if(otherResultsIncomplete) {
			window.setTimeout("refreshOtherResultsAuto()", 2000);
			otherResultsIncomplete = false;
		}
	}
}


function startLoadingSummaryPage() {
	reloadThisPageWithRefreshedURL();
	return;
	var ajaxRequest = new AjaxRequest( ajaxStubURL+ "?dest=remakeResultLists.jsp", remakeResultListsCallBack );	
	ajaxRequest.addFormElements_FormObj(e4);  
	ajaxRequest.sendRequest();
}

function remakeResultListsCallBack(ajaxRequest_) {
	reloadThisPageWithRefreshedURL();
}

function reloadThisPageWithRefreshedURL() {
	s0 = xg("pageform");
	sf = xg("pageform2");
	sf.q.value = s0.q.value;
	sf.sc.value = s0.sc.value;
	sf.wiwcontentid.value = s0.wiwcontentid.value;
	sf.submit();
}

function logout() {
	doc.logoutForm.submit();
}

function afterLogout() {
	doc.afterLogoutForm.submit();
}

function showTargetsSearchMode(dontsavequery) {
	s0 = xg("pageform");
	sf = xg("searchfrform");
	sf.sq.value = dontsavequery ? '' : s0.q.value;
	s0.sq.value = dontsavequery ? '' : s0.q.value;
	changeQuery('');
	sf.q.value = s0.q.value;
	sf.sc.value = s0.sc.value;
	sf.catchanged.value = s0.catchanged.value;
	sf.submit();
}

function showSourceSearchMode(){
	sf = xg("pageform");

	sf.sq.value = sf.q.value;
	sf.showtargets.value = "true";
	changeQuery('');
	sf.action = searchPageUrl;
	sf.submit();
}

function setRcTreeLinkTitles(titlestr1,titlestr2, treeNumber) {
	if( typeof window["tids_" + treeNumber] == 'undefined') return;
	var i=0;
	var obj;
	while( i<window["tids_" + treeNumber].length ) {
		obj=xg("stree_" + treeNumber + "_" + i);
		if(obj && obj.nodeName=="A"  ) {
			if(obj.getAttribute("href").indexOf(":sa(")>=0  ) {
				obj.title=titlestr2;
			} else if(obj.getAttribute("href").indexOf(":sct(")>=0  ) {
				obj.title=titlestr1;
			}
		}
		i++;
	}
	i=0;
	while( i<window["tids_" + treeNumber].length ) {
		obj=xg("sxtree"+i);
		if(obj && obj.nodeName=="A"  ) {
			if(obj.getAttribute("href").indexOf(":sa(")>=0  ) {
				obj.title=titlestr2;
			} else if(obj.getAttribute("href").indexOf(":sct(")>=0  ) {
				obj.title=titlestr1;
			}
		}
		i++;
	}

}

function showOtherResults() {
    var v = cell3 ? cell3.style.display : "none";
    var newSwitch = v=="none" ? true : false;

    setCookieSpec("pm_showothers_"+uname, ""+newSwitch);
    if(cell3) {
        dispo(xg("hand2"), newSwitch);
        xg("col3head").style.display = newSwitch ? "none" : "";
        dispo(cell3, newSwitch);
        var cs = xg("columnopener_separator_other");
        fourthColHead = xg("fourthColHeadSpan");
        var isFourthColHead = (fourthColHead && fourthColHead.style.display=="");
        fifthColHead = xg("fifthColHeadSpan");
        var isFifthColHead = (fifthColHead && fifthColHead.style.display=="");
        var cs = xg("columnopener_separator_other");
        if (!newSwitch && (isFourthColHead || isFifthColHead)){
            show(cs);
        }else{
            hide(cs);
        }
    } 
}

function stn(u,n,stype) {
	sxw(u,n,stype,"N");
}

function stw(u,n,stype) {
	sxw(u,n,stype,"T");
}

function actOrder() {
	var order = defSelResultOrder;
	var obj_ = xg("resultorder");
	if(obj_) {
		order = obj_.value;
	}
	return order;
}

function sxw(u,n,stype,subtype) {
	if(statswitch) {
		addStat(ssid+"!RL" + subtype + "W!" + "!" +sStrip(encURI(u))+ "!" + stype + "!"+actOrder()+"!"+ 
			(parseInt(actPageOffset)+1)+"!"+ n +"!"+sStrip(encURI(clustDisplStr))+"!"+sStrip(encURI(swthnstr)));		
	}
}

function cxw(u,ctype, subtype) {
	if(statswitch) {
		addStat(ssid+"!RC" + subtype + "W!" + "!" + sStrip(encURI(u))+ "!" + ctype +
			sStrip(encURI(clustDisplStr))+"!"+sStrip(encURI(swthnstr)));
	}
}

function sto(u,st,n) {
	if(statswitch) {
		addStat(ssid+"!RLOC!" + sStrip(encURI(u))+ "!" + st+ "!"+ n);		
	}
}

//Click on Image - stat
function ic(n) {
	if(statswitch) {
		addStat(ssid+"!IC!" + encURI(sStrip(ih[n])) +"!" + ((op/mipp)+1) + "!" + (n+1));
	}
}

//Click on Advertisement - stat
function ac(u,n) {
	if(statswitch) {
		addStat(ssid+"!AU!" + encURI(sStrip(u)) + "!" + n);
	}
}

var toDim;
function showdim(catid) {
	if( trim(xg("qry").value)!= trim(origq_text) ) {
		changeCategory(catid);
		return;
	}

	var ok = eval("typeof dimOK" + catid + " != 'undefined';");
	if(!ok) return;
	eval("ok = dimOK"+ catid + ";" );
	if(!ok) return;
	toDim = catid;
	var obj = xg("viewalltable");
	if(obj && obj.style.display=='') {
		xg("clusterids").value =  "";
		xg("isclustering").value = "false";
		xg("isclusteringvariants").value = "";
		xg("cstree").value = "";
		var reqUrl = createReqUrlForFiltering(); 
		var ajaxRequest = new AjaxRequest( ajaxStubURL+ "?dest=" + reqUrl, showdimCallback1 );	
		ajaxRequest.sendRequest();
	} else {
		showdimCallback1();
	}
}

function showdimCallback1() {
	var ajaxRequest = new AjaxRequest( ajaxStubURL+ "?dest=reload.jsp", showdimCallback2 );		
	ajaxRequest.sendRequest();
}

function showdimCallback2() {
	var catid = toDim;
	var loc = location.href;
	if( loc.indexOf("#") == (loc.length-1) ) {
		loc = loc.substring(0,loc.length-1);
	} 
	if(loc.indexOf("?")<0) {
		loc = loc + "?sc=" + catid;
	} else {
		var i = loc.indexOf("sc=");
		if(i>=0) {
			var loc2 = loc.substring(i+3,9999);
			loc =  loc.substring(0,i+3);
			var i2 = loc2.indexOf("&");
			if(i2>=0) {
				loc2 = loc2.substring(i2,1000)
			} else {
				loc2 ="";
			}
			loc = loc + catid + loc2;
		} else {
			loc = loc + "&sc=" + catid;
		}
	}
	location.href = loc;
}

var imgs_c = 4; //images are displayed in 4 columns
var ratio = 10; //=img width/padding
var imgs_wmax;

//image loaded
var fd=0;
function imgld(imgobj) {
	if(imgobj.width<5){
		imgobj.style.display="";
		return;
	}
	var imglen = imgsObj.length;
	var found = false;
	var i;
	for(i=0; !found && i<imglen; i++ ) {
		found = (imgsObj[i].src==imgobj.src); 
		if(found) {
			imgsOrgHeight[i]=imgobj.height;
		}
	}
	if(imgobj.height>imgs_wmax) imgobj.height=imgs_wmax;
	if(imgobj.width>imgs_wmax) imgobj.height=imgobj.height*imgs_wmax/imgobj.width;
	imgobj.style.display="";
}


var lastwidth=0;
var f = 0;
function resultlistresized() {
	var imglen = imgsObj.length;
	if(imglen==0) return;
	var w = Number(getWidthOfWindow())- (cell3 ? Number(cell3.offsetWidth) : 0 )-35;
	if(w<500) w=500;
	if(w>932) w=932;
	if( (lastwidth-30)<w && (lastwidth+30)>w ) {
		return;
	}
	lastwidth = w;

	
	imgs_wmax = ( (ratio*w) - (ratio*2*imgs_c)  ) / ( (ratio*imgs_c) + imgs_c + 1) - (2.5*imgs_c)+(IEBrowser ? 2 : 0); 
	var i;
	for(i=0; i<imglen; i++ ) {
		var iobj = imgsObj[i];
		var orh = imgsOrgHeight[i];
		if(orh>imgs_wmax) {
			iobj.height=imgs_wmax; 
		} else if(iobj.height!=orh) {
			iobj.height=imgsOrgHeight[i];
		}
		if(iobj.width>imgs_wmax) iobj.height=iobj.height*imgs_wmax/iobj.width;
	}
}
var cQA;

function toggleContentSection(cSectId, imageUriPrefix) {
	var sect = xg("content_" + cSectId);
	false;
	if (sect) {
		 var displayed = (sect.style.display != "none");
		 if (displayed) {
			  sect.style.display="none";
			  // xg("contentimg_" + cSectId).src=imageUriPrefix + "/nlp.gif";
                          xg("contentimg_" + cSectId).className="iconNLPlus";
		 } else {
			  sect.style.display="";
			  // xg("contentimg_" + cSectId).src=imageUriPrefix + "/nlm.gif";
                          xg("contentimg_" + cSectId).className="iconNLMinus";
		 }
	}
}

var highightMappings = new Array();
var highlightRequestSent = false;

function getHighlightedResultSummaries(query) {
    var q = query;
    var startIdx = query.indexOf("|");
    if (startIdx > -1) {
        q = query.substring(0, startIdx);
    }
	q = q.replace(/"/g, "");
    var url = "../itb_highlight?q=" + encURI(q) + "&ids=";
    for (var i = 0; i < highlightMappings.length; i++) {
        url += highlightMappings[i].docId;
        if (i != highlightMappings.length - 1) {
            url += ",";
        }
    }
    if (!highlightRequestSent) {
        highlightRequestSent = true;
        var ajaxReq = new AjaxRequest(url, highlightCallback );
        ajaxReq.sendRequest();
    }
    
}
function highlightCallback(ajaxRequest) {
    var json_text = ajaxRequest.getHtmlResponse();
    if(json_text){
      var results = eval("(" + json_text + ")");
      for (var docId in results) {
        for (var i = 0; i < highlightMappings.length; i++) {
            if (highlightMappings[i].docId == docId ) {
              var resultId = highlightMappings[i].resultId;
              var resSumDiv = xg('resSum_' + resultId);
              if (resSumDiv && results[docId] != null) {
                resSumDiv.innerHTML = results[docId];
              } else {
                  //alert('not found: resSum_' + resultId)
              }
              break;
            }
        }
        //alert(docId + ": " + results[docId]);
      }
    }
    highlightRequestSent = false;
}

/**
 *
 */
function submitFooterQuery(e) {
	var keynum;
	var keychar;
	var numcheck;
	if(window.event) { // IE
	  keynum = e.keyCode;
	} else if(e.which) {// Netscape/Firefox/Opera
	  keynum = e.which;
	}
	if (keynum == 13) { //enter
		xg('qry').value=xg('qryFooter').value;
		ajaxSearchSubmitted();
		return false;
	} else {
		return true;
	}
}

function unloadfunction() {
	var ajaxRequest = new AjaxRequest( ajaxStubURL+ "?dest=", dummyCallBack );
	ajaxRequest.setASync(false);
	ajaxRequest.sendRequest();
}

statAutoSaveEnabled = true;

function statAutoSave() {
	if (statstr.length > 0) {
		var ajaxRequest = new AjaxRequest( ajaxStubURL+ "?dest=", dummyCallBack );
		ajaxRequest.sendRequest();
	}
}

function callWiW(query, wiwcontentid) {
	//alert('callWiW(' + query + ', ' + wiwcontentid + ')');
	var ajaxRequest = new AjaxRequest(ajaxStubURL+ "?dest=" + encodeURIComponent("http://www.itbusiness.hu/szolgaltatasok/whoiswho/?ajaxrequest=ItWiwUserPolymetaSearchAction&query=" + encodeURIComponent(query) + (wiwcontentid ? ("&contentid=" + wiwcontentid) : "")), wiwCallBack );
	var wiwObj = xg('wiwContent');
	if (wiwObj){
		wiwObj.innerHTML = "<img src='../images/spinner.gif' />";
		xg('wiw').style.display = "";
	}
	ajaxRequest.sendRequest();
}

function wiwCallBack(ajaxRequest_) {
	var wiwObj = document.getElementById('wiwContent');
	if (wiwObj){
		var response = ajaxRequest_.getHtmlResponse();
		if (hideWiwText && response.indexOf(hideWiwText) > -1){
			xg('wiw').style.display = "none";
		}else{
			wiwObj.innerHTML = ajaxRequest_.getHtmlResponse();
			if (wiwObj.scrollHeight > 250){
				wiwObj.style.height = "250px";
			}
		}
	}
}

function nstc(targetName) { //not searched target clicked
	if(statswitch) {
		addStat(ssid+"!HCOL!" + targetName  );
		var ajaxRequest = new AjaxRequest( ajaxStubURL, dummyCallBack );
		ajaxRequest.sendRequest();
	}
	return true;
}
