// Copyright (c) 2009 NextBio.  All Rights Reserved
// Additional JavaScript subject to other copyrights

document.observe("nb:historyChanged1", function(evt) {
var map = evt.memo.map;
var omap = evt.memo.oldMap;
$$(".PageContainer",".HistContainer").each(function(div) {
var reload = false;
if (div.hasClassName("PageContainer")) {
var ph = div.getAttribute("nbPageHist");
if (ph && map[ph+'P'] != omap[ph+'P']) {
reload = true;
}
}
var hi = div.getAttribute("nbHistItems");
if (hi) {
var a = hi.split(",");
for (var i=0; i<a.length; i++) {
if (map[a[i]] != omap[a[i]]) {
reload = true;
}
}
}
if (reload) {
if (div.hasClassName("PageContainer")) {
pageTo(0,div);
} else {
loadFromServer({target:div,replace:true,noResize:true})
}
}
});
});
// Copyright (c) 2009 NextBio.  All Rights Reserved
// Additional JavaScript subject to other copyrights

function setCounts(counts) {
for (var a in counts) {
var el = $("cnt_"+a);
if (el) {
el.innerHTML = " &#40;<span id='lftcnt" + a + "'>" + commaNumber(counts[a]) + "</span>&#41;";
}
}
}
Event.observe(self,'load',function() {
if (self.needUpdateCounts && !self.dontUpdateCounts) {
var s="q="+encodeURIComponent(searchInfo.q);
if (searchInfo.id) s += "&id="+encodeURIComponent(searchInfo.id);
if (searchInfo.type) s += "&type="+encodeURIComponent(searchInfo.type);
if (searchInfo.synonym) s += "&synonym="+encodeURIComponent(searchInfo.synonym);
jsonFromServer(nb.root+"/search/counts.nb",s,setCounts);
}
});// Copyright (c) 2009 NextBio.  All Rights Reserved
// Additional JavaScript subject to other copyrights

var filterInputText = 'Enter a term to filter results';
var filterAutoCompleteTextID = 'textFilter';
var filterAutoCompleteItem = null;
var allowAnon = null;
function filterFocus(f) {
if (f.searchBox) f = f.searchBox;
var f=$(f);
if(f.value==filterInputText)f.value='';
if (!f.hasFocus) {
f.select();
f.hasFocus = true;
}
}
function filterBlur(f) {
if (f.searchBox) f = f.searchBox;
var f=$(f);
if(f.value==''){
f.value=filterInputText;
}
f.hasFocus = false;
}
function setTextFilter(s,f) {
s = s||"";
if (nb.anon && s && !allowAnon) {
signInLink();
return;
}
s = s.strip();
var f=$(f||"filterText");
if (!f) return;
if (s || f.hasFocus) {
f.value = s;
} else {
f.value=filterInputText;
}
nbRsh.start();
var tfName = f.getAttribute("nbTfName")||"";
var histId = tfName+"tf";
var otf = nbRsh.get(histId);
nbRsh.putIfSet(histId, s);
var ntf = nbRsh.get(histId);
if (otf != ntf) {
document.fire("nb:textFilterChanged", {tf: s, tfName:tfName});
textFilterChanged(s);
}
nbRsh.finish();
if(s != "")
{
var ftlable = ' <a href="" onclick="clearTextFilter(\'filterTextbg\');return false;"><img src="'+nb.img+'/i_RemoveGreen.png" alt="Remove Icon" class="Png"/></a> &nbsp; '+s;
var elem = $("biogroupFilterList");
if(elem){
var taxf = $("biogroupFilterList").innerHTML;
if(taxf == 'None'){
$("biogroupFilterList").update();
}
$("biogroupautoFilter").update(ftlable);
}
}
}
function clearFeatureTextFilter(text) {
var s = "";
var f=$("filterText");
if (text) {
f.value = text;
} else {
f.value='Search features by genes or keywords';
}
nbRsh.start();
var histId = f.getAttribute("nbHistId")||"tf";
var otf = nbRsh.get(histId);
nbRsh.putIfSet(histId, s);
var ntf = nbRsh.get(histId);
if (otf != ntf) {
document.fire("nb:textFilterChanged", {tf: s, histId:histId});
textFilterChanged(s);
}
nbRsh.finish();
}
function clearTextFilter(filterName){
setTextFilter("",filterName);
clearTaxFilterBCLabel();
}
function clearTaxFilterBCLabel(){
if($("biogroupFilterList")){
var taxf = $("biogroupFilterList").innerHTML;
if(taxf == ''){
$("biogroupFilterList").update("None");
}
$("biogroupautoFilter").update();
}
}
realTextFilterChanged = textFilterChanged = function (s) {
$$(".AutoTextFilter").each (function (e) {
if (e.hasClassName("PageContainer")) {
pageTo(1,e);
} else {
e.loadFromServer(true);
}
});
}
function submitTextFilter(f) {
var f=f||"filterText";
var tf = $F(f);
if (tf == filterInputText) tf = '';
setTextFilter(tf,f);
}
Event.observe(self,'load',function() {
$$(".FilterText").each(function(el) {
nbApi.createAutocomplete({
searchBoxId: el.id,
defaultText: filterInputText,
nbMessageId: filterAutoCompleteTextID,
itemType: filterAutoCompleteItem,
onClick: function(owner, cfg) {
if (!owner || !cfg) return false;
setTextFilter('\"' + cfg.symbol + '\"', el);
nbApi.autocompleteShowList(cfg, false);
nbApi.autocompleteDeselectItem(cfg.currentItem, true);
return true;
}
});
});
});
document.observe("nb:historyChanged2", function(evt) {
$$(".FilterText").each(function(el) {
var name = el.getAttribute("nbTfName");
if (name) {
setTextFilter(nbRsh.get(name+"tf"),"filterText"+name);
} else {
setTextFilter(nbRsh.get("tf"));
}
});
});
// Copyright (c) 2009 NextBio.  All Rights Reserved
// Additional JavaScript subject to other copyrights

function setSort(sort) {
nbRsh.start();
var oSort = nbRsh.get("sortBy");
if (sort == 'date') {
nbRsh.put("sortBy", "date");
$("sortDate").radioClass("Selected");
} else if(sort == 'AtoZ'){
nbRsh.put("sortBy", "AtoZ");
$("sortAtoZ").radioClass("Selected");
} else if(sort == 'ZtoA'){
nbRsh.put("sortBy", "ZtoA");
$("sortZtoA").radioClass("Selected");
}
else {
nbRsh.remove("sortBy");
$("sortRelevance").radioClass("Selected");
}
var nSort = nbRsh.get("sortBy");
if (nSort != oSort) {
$$(".AutoSort").each (function (e) {
if (e.hasClassName("PageContainer")) {
pageTo(1,e);
} else {
e.loadFromServer(true);
}
});
document.fire('nb:sortByChanged',{sortBy: nSort});
}
nbRsh.finish();
}
document.observe("nb:historyChanged2", function(evt) {
var el;
if (nbRsh.get("sortBy") == "date") {
el = $("sortDate");
}else if(nbRsh.get("sortBy") == "AtoZ"){
el =$("sortAtoZ");
}else if(nbRsh.get("sortBy") == "ZtoA"){
el =$("sortZtoA");
}
else {
el = $("sortRelevance");
}
if (el) {
el.radioClass("Selected");
}
});// Copyright (c) 2009 NextBio.  All Rights Reserved
// Additional JavaScript subject to other copyrights

function addQAttrs() {
$$("a.AddQ").each(function(el) {
el.removeClassName("AddQ");
if (self.searchInfo) {
if (searchInfo.q) {
appendParam(el, "q0", searchInfo.q, true);
}
if (searchInfo.id) {
appendParam(el, "id0", searchInfo.id, true);
}
if (searchInfo.type) {
appendParam(el, "t0", searchInfo.type, true);
}
if (searchInfo.synonym) {
appendParam(el, "s0", searchInfo.searchInfo, true);
}
if (searchInfo.prebc) {
appendParam(el, "bc0", searchInfo.prebc, true);
}
}
});
}
Event.observe(self,'load',addQAttrs);
document.observe('nb:page',addQAttrs);
document.observe('nb:details',addQAttrs);// Copyright (c) 2009 NextBio.  All Rights Reserved
// Additional JavaScript subject to other copyrights

function Breadcrumbs(cb,id) {
this.id = id = id||"mainBc";
this.cb = cb;
this.length=0;
this.bc0=$(id+"LastBc");
Breadcrumbs.list[id] = this;
}
Breadcrumbs.list={};
Breadcrumbs.prototype.update = function(a){
if (a.length == 0) {
this.reset();
return;
}
if (!this.bc0open) {
this.bc0.insert({after:"<a id='"+this.id+"bc0open' href='javascript:Breadcrumbs.click(\""+this.id+"\",0)'>"+this.bc0.innerHTML+"</a><span id='"+this.id+"bcSpan'></span>"});
this.bc0open=$(this.id+"bc0open");
this.bcSpan=$(this.id+"bcSpan");
}
var s="";
for (var i=0; i<a.length-1; i++) {
s +=  "<i><b>&rarr;</b></i> <a href='javascript:Breadcrumbs.click(\""+this.id+"\","+(i+1)+")'>"+a[i]+"</a>";
}
s +=  "<i><b>&rarr;</b></i> "+a[i]+"";
this.bcSpan.update(s);
this.bc0.hide();
this.bc0open.show();
this.bcSpan.show();
}
Breadcrumbs.prototype.reset = function() {
if (this.bc0open) {
this.bc0open.hide();
this.bcSpan.hide();
}
this.bc0.show();
}
Breadcrumbs.click = function(id,idx) {
Breadcrumbs.list[id].cb(idx);
}