YAHOO.widget.TreeView.prototype.getNodeByLabelEl=function(labelEl){var index=labelEl.id.slice('ygtvlabelel'.length);var node=this.getNodeByIndex(index);return node;};YAHOO.widget.ContextMenu.prototype.addTriggerNode=function(node){var triggers=this.cfg.getProperty("trigger");if(triggers==undefined){triggers=[];}
if(!triggers.ddiiContains(node.labelElId)){triggers.push(node.labelElId);this.cfg.setProperty("trigger",triggers);}};YAHOO.widget.ContextMenu.prototype.removeTriggerNode=function(node){var triggers=this.cfg.getProperty("trigger");if(triggers==undefined){triggers=[];}
var elId=node.labelElId.toLowerCase();for(var i=0;i<triggers.length;i++){if(triggers[i].toLowerCase()===elId){triggers.splice(i,1);}}
this.cfg.setProperty("trigger",triggers);};function Tree(){this.view="search";var tree;var contextMenu;var varsContextMenu;var datasetContextMenu;var variableContextMenu;var currentNode;var activeCatalogNode;var activeDatasetNode;var activeVariableNode;var activeVarGroupNode;var activeSavedSearchNode;var showHomePage=true;var hitsPerPage=20;var catalogDepth=3;var allowBrowse;var integrateNesstar;var rootURL;var catalogAccumulate;var expandHitFolder;var catalogs;var datasetVariables;var that=this;init();this.loggedIn=function(user){resetTree();updateLoginNode(true);setRootNodeCaption(user);};this.loggedOut=function(){resetTree();updateLoginNode(false);setRootNodeCaption(null);};this.setView=function(mode){if(mode==="search"){this.view="search";}else{this.view="browse";}};this.showHomePage=function(value){showHomePage=value;if(showHomePage===true){addHomePageNode();}else{var node=tree.getNodeByProperty("id","home");if(node!=null){tree.removeNode(node);}}};this.hitsPerPage=function(value){hitsPerPage=value;};this.allowBrowse=function(value){allowBrowse=value;if(allowBrowse===true){addBrowseNode();}else{var node=tree.getNodeByProperty("browse");if(node!==null){tree.removeNode(node);}}};this.integrateNesstar=function(value){integrateNesstar=value;if(integrateNesstar===true){integrateBrowseNode();}};this.rootURL=function(value){rootURL=value;integrateBrowseURL(rootURL);};this.OpenIdURL=function(value){tree.getNodeByProperty("id","login").data.url=value;};this.catalogAccumulate=function(value){catalogAccumulate=value;};this.expandHitFolder=function(value){expandHitFolder=value;};this.updateSavedSearches=function(searchNames){if(that.view!=="search"){that.setView("search");}
if(searchNames===null){return;}
if(searchNames.length===0){return;}
var savedSearchesNode=tree.getNodeByProperty("id","savedSearches");tree.removeChildren(savedSearchesNode);for(var i=0;i<searchNames.length;i++){var node=new YAHOO.widget.TextNode({label:searchNames[i],id:searchNames[i]},savedSearchesNode,false);node.onLabelClick=onSavedSearchClick;node.labelStyle="ygtvlabel icon-folderClosed";contextMenu.addTriggerNode(node);}
savedSearchesNode.refresh();savedSearchesNode.expand();};this.addSavedSearch=function(searchName){var savedSearchesNode=tree.getNodeByProperty("id","savedSearches");var node=new YAHOO.widget.TextNode({label:searchName,id:searchName},savedSearchesNode,false);node.onLabelClick=onSavedSearchClick;node.labelStyle="ygtvlabel icon-folderClosed";contextMenu.addTriggerNode(node);savedSearchesNode.refresh();savedSearchesNode.expand();};this.activeSession=function(){if(this.view==="search"){var lastSearchNode=tree.getNodeByProperty("id","lastSearch");var savedSearchesNode=tree.getNodeByProperty("id","savedSearches");if(lastSearchNode.hasChildren()||savedSearchesNode.hasChildren()){return true;}}else if(activeCatalogNode!==undefined){return true;}
return false;};this.loadCatalog=function(catalogTree){catalogs=catalogTree;var browseNode=tree.getNodeByProperty("id","browse");for(var server in catalogs){var node=new YAHOO.widget.TextNode({label:server,id:"catalog",href:null},browseNode,true);node.labelStyle="ygtvlabel icon-folderOpen";node.onLabelClick=onCatalogNodeClick;node.data.catalogPath=[server];onCatalogNodeClick(node,true);}
browseNode.expand();browseNode.refresh();};this.loadCatalogDatasets=function(searchResults){var hits=searchResults.datasets;var server=DDIUtil.getQueryStringParam(activeCatalogNode.data.queryString,"server");var queryString="server:["+server+"] queryField:[ddiiDatasetID] queryFieldType:[variable] variableSort:[ddiiIndexOrder] maxDocs:[10000] matchSynonyms[false] matchSimilar:[false] phraseProximity:[0]";for(var i=0;i<hits.length;i++){var hit=hits[i];var url=encodeRedirectURL("results.jsp")+"?search=ddiiBrowseCatalog&type=dataset&action=browse&id="+hit.id;var node=new YAHOO.widget.TextNode({label:hit.name},activeCatalogNode,false);node.labelStyle="ygtvlabel icon-"+hit.fileType;node.onLabelClick=onGetDatasetVariables;node.data.queryString=queryString+" queryAnd:["+hit.id+"]";node.data.id=hit.id;node.data.url=url;node.data.URL=hit.URL;datasetContextMenu.addTriggerNode(node);}
if(hits.length>0){activeCatalogNode.refresh();}};this.loadDatasetVariables=function(searchResults){var node;var groups=[];var variableTree;if(searchResults!==undefined){try{parent.frames["searchResults"].document.location=activeDatasetNode.data.url;}catch(err){}
datasetVariables=searchResults;node=activeDatasetNode;variableTree=datasetVariables;}else{node=currentNode;variableTree=datasetVariables;groups=node.data.groups;for(var i=0;i<groups.length;i++){variableTree=variableTree[groups[i]];}}
if(node.hasChildren()){tree.removeChildren(node);}
for(group in variableTree){if(group!=="ddiiVariables"){var nodeGroups=groups.slice();nodeGroups.push(group);var newNode=new YAHOO.widget.TextNode({label:group,title:group},node,false);newNode.labelStyle="ygtvlabel icon-vargroup";newNode.onLabelClick=onGetGroupVariables;newNode.data.groups=nodeGroups;}}
loadMoreDatasetVariables(node);node.refresh();};this.removeLastSearch=function(){var lastSearchNode=tree.getNodeByProperty("id","lastSearch");tree.removeChildren(lastSearchNode);contextMenu.removeTriggerNode(lastSearchNode);};this.loadSearch=function(search){var searchNode=tree.getNodeByProperty("id",search.name);if(searchNode===null){addSavedSearch(search.name);searchNode=tree.getNodeByProperty("id",search.name);}
if(activeSavedSearchNode!==undefined){tree.removeChildren(activeSavedSearchNode);activeSavedSearchNode=undefined;}
tree.removeChildren(searchNode);var node=new YAHOO.widget.TextNode("Query",searchNode,false);node.labelStyle="ygtvlabel icon-query";node.onLabelClick=onGetQueryInfo;var expandDatasets=false;if(expandHitFolder&&search.name==="lastSearch"&&search.numDatasets>0){expandDatasets=true;}
if(expandDatasets){node=new YAHOO.widget.TextNode({id:search.name+"//datasets"},searchNode,true);node.labelStyle="ygtvlabel icon-folderOpen";}else{node=new YAHOO.widget.TextNode({id:search.name+"//datasets"},searchNode,false);node.labelStyle="ygtvlabel icon-folderClosed";}
var expandVariables=false;if(!expandDatasets&&expandHitFolder&&search.name==="lastSearch"&&search.numVariables>0){expandVariables=true;}
if(expandVariables){node=new YAHOO.widget.TextNode({id:search.name+"//variables"},searchNode,true);node.labelStyle="ygtvlabel icon-folderOpen";}else{node=new YAHOO.widget.TextNode({id:search.name+"//variables"},searchNode,false);node.labelStyle="ygtvlabel icon-folderClosed";}
varsContextMenu.addTriggerNode(node);if(search.datasets!==null)
this.loadSavedHits(search,"dataset");if(search.variables!==null)
this.loadSavedHits(search,"variable");if(search.name!=="lastSearch"){activeSavedSearchNode=searchNode;}
contextMenu.addTriggerNode(searchNode);searchNode.refresh();if(search.name==="lastSearch"){searchNode.expand();}};this.loadSavedHits=function(search,hitType,refresh){var hits;var hitsInSearch;var parentNode;var label;var queryString;var hit;var caption;var node;var url;if(hitType==="dataset"){hits=search.datasets;hitsInSearch=search.numDatasets;parentNode=tree.getNodeByProperty("id",search.name+"//datasets");label=search.datasetFilter?"Datasets (filtered, ":"Datasets (";queryString="server:["+search.server+"] queryField:[ddiiDatasetID] queryFieldType:[variable] variableSort:[ddiiIndexOrder] maxDocs:[10000] matchSynonyms[false] matchSimilar:[false] phraseProximity:[0]";}else if(hitType==="variable"){hits=search.variables;hitsInSearch=search.numVariables;parentNode=tree.getNodeByProperty("id",search.name+"//variables");label=search.variableFilter?"Variables (filtered, ":"Variables (";}else{throw new Error("Invalid hit type passed to loadSearchHits ("+hitType+")");}
if(parentNode.hasChildren()){tree.removeChildren(parentNode);}
label+=DDIUtil.addCommasToNumber(hitsInSearch)+" hits)";var labelEl=parentNode.getLabelEl();if(labelEl!=null){labelEl.innerHTML=label;}
parentNode.label=label;if(hits.length==0){return;}
for(var i=0;i<hits.length;i++){hit=hits[i];caption=DDIUtil.getHitCaption(hit);node=new YAHOO.widget.TextNode({label:caption,title:caption,href:encodeRedirectURL("results.jsp")+"?search="+search.name+"&type="+hitType+"&id="+hit.id,target:"searchResults"},parentNode,false);node.labelStyle="ygtvlabel icon-"+hit.fileType;node.data.URL=hit.URL;if(hitType==="dataset"){node.onLabelClick=onGetDatasetVariables;node.data.queryString=queryString+" queryAnd:["+hit.id+"]";node.data.id=hit.id;datasetContextMenu.addTriggerNode(node);}
if(hitType==="variable"){node.onLabelClick=onDatasetVariable;node.data.id=hit.id;}}
if(hits.length<hitsInSearch){node=new YAHOO.widget.TextNode({label:"More Hits..."},parentNode,false);node.labelStyle="ygtvlabel icon-plus";node.onLabelClick=onGetMoreHits;node.data.hitType=hitType;node.data.searchName=search.name;}
if(refresh){parentNode.refresh();}};this.loadSearchPage=function(page){var hit;var caption;var node;var queryString;var parentNode=tree.getNodeByProperty("id",page.searchName+"//"+page.hitType+"s");if(page.hitType==="dataset"){queryString="server:["+page.server+"] queryField:[ddiiDatasetID] queryFieldType:[variable] variableSort:[ddiiIndexOrder] maxDocs:[10000] matchSynonyms[false] matchSimilar:[false] phraseProximity:[0]";}
for(var i=0;i<page.hits.length;i++){hit=page.hits[i];caption=DDIUtil.getHitCaption(hit);node=new YAHOO.widget.TextNode({label:caption,title:caption,href:encodeRedirectURL("results.jsp")+"?search="+page.searchName+"&type="+page.hitType+"&id="+hit.id,target:"searchResults"},parentNode,false);node.labelStyle="ygtvlabel icon-"+hit.fileType;node.data.URL=hit.URL;if(page.hitType==="dataset"){node.onLabelClick=onGetDatasetVariables;node.data.queryString=queryString+" queryAnd:["+hit.id+"]";datasetContextMenu.addTriggerNode(node);}
if(page.hitType==="variable"){node.onLabelClick=onDatasetVariable;node.data.id=hit.id;}}
if(page.hitsRetrieved<page.hitsInSearch){node=new YAHOO.widget.TextNode({label:"More Hits..."},parentNode,false);node.labelStyle="ygtvlabel icon-plus";node.onLabelClick=onGetMoreHits;node.data.hitType=page.hitType;node.data.searchName=page.searchName;}
parentNode.refresh();parentNode.expand();};this.removeSearch=function(searchName){var searchNode=tree.getNodeByProperty("id",searchName);var ssNode=searchNode.parent;if(searchNode!=null){if(searchNode==activeSavedSearchNode){activeSavedSearchNode=undefined;}
tree.removeNode(searchNode,true);}
if(!ssNode.hasChildren()){ssNode.expanded=false;}};this.renameSearch=function(oldName,newName){var searchNode=tree.getNodeByProperty("id",oldName);if(searchNode!=null){var labelEl=searchNode.getLabelEl();labelEl.innerHTML=newName;searchNode.label=newName;searchNode.data.id=newName;var datasetsNode=tree.getNodeByProperty("id",oldName+"//datasets");if(datasetsNode!=null){datasetsNode.data.id=newName+"//datasets";DDIUtil.changeSearchInURLs(datasetsNode,oldName,newName);}
var variablesNode=tree.getNodeByProperty("id",oldName+"//variables");if(variablesNode!=null){variablesNode.data.id=newName+"//variables";DDIUtil.changeSearchInURLs(variablesNode,oldName,newName);}}};function init(){tree=new YAHOO.widget.TreeView("treediv");var treeRoot=tree.getRoot();var rootNode=new YAHOO.widget.TextNode({label:"Data Searches",id:"root",href:"javascript:;"},treeRoot,true);rootNode.labelStyle="ygtvlabel icon-root";var node=new YAHOO.widget.TextNode({label:"Login",id:"login",href:"login.jsp?noCheckSession=true&headless=true",target:"searchResults"},rootNode,false);node.labelStyle="ygtvlabel icon-login";node=new YAHOO.widget.TextNode({label:"Search",id:"search",href:"javascript:DDIINDEX.user.search();"},rootNode,false);node.labelStyle="ygtvlabel icon-search";node=new YAHOO.widget.TextNode({label:"Advanced Search",id:"searchAdvanced",href:"javascript:DDIINDEX.user.searchAdvanced();"},rootNode,false);node.labelStyle="ygtvlabel icon-advSearch";node=new YAHOO.widget.TextNode({label:"Search History",id:"history",href:"javascript:DDIINDEX.user.getHistory();"},rootNode,false);node.labelStyle="ygtvlabel icon-history";node=new YAHOO.widget.TextNode({label:"Last Search",id:"lastSearch"},rootNode,false);node.labelStyle="ygtvlabel icon-folderClosed";node=new YAHOO.widget.TextNode({label:"Saved Searches",id:"savedSearches"},rootNode,false);node.labelStyle="ygtvlabel icon-folderClosed";tree.draw();tree.subscribe("expand",onFolderExpand);tree.subscribe("collapse",onFolderCollapse);contextMenu=new YAHOO.widget.ContextMenu("contextMenu",{itemdata:[[{text:"Save Search",classname:"icon-save",onclick:{fn:onSaveLast}}],[{text:"Delete Search",classname:"icon-delete",onclick:{fn:onDeleteSearch}},{text:"Rename Search",classname:"icon-rename",onclick:{fn:onRenameSearch}}]]});contextMenu.triggerContextMenuEvent.subscribe(onTriggerContextMenu,contextMenu,true);contextMenu.render("treediv");varsContextMenu=new YAHOO.widget.ContextMenu("varsContextMenu",{itemdata:[{text:"Filter Variables",classname:"icon-applyFilter",onclick:{fn:onApplyFilter}},{text:"Show All",classname:"icon-removeFilter",onclick:{fn:onRemoveFilter}},]});varsContextMenu.triggerContextMenuEvent.subscribe(onTriggerVarContextMenu,varsContextMenu,true);varsContextMenu.render("treediv");datasetContextMenu=new YAHOO.widget.ContextMenu("datasetContextMenu",{itemdata:[{text:"Open in Nesstar",classname:"icon-open",onclick:{fn:onOpenInNesstar}},{text:"Bookmark",classname:"icon-bookmark",onclick:{fn:onBookmark}}]});datasetContextMenu.triggerContextMenuEvent.subscribe(onTriggerDatasetContextMenu,datasetContextMenu,true);datasetContextMenu.render("treediv");variableContextMenu=new YAHOO.widget.ContextMenu("variableContextMenu",{itemdata:[{text:"Open in Nesstar",classname:"icon-open",onclick:{fn:onOpenInNesstar}}]});variableContextMenu.triggerContextMenuEvent.subscribe(onTriggerDatasetContextMenu,variableContextMenu,true);variableContextMenu.render("treediv");}
function onTriggerContextMenu(p_oEvent,p_oMenu){currentNode=tree.getNodeByLabelEl(this.contextEventTarget);var menuItems=this.getItems();if(currentNode.data.id==="lastSearch"){if(currentNode.hasChildren()){menuItems[0].cfg.setProperty("disabled",false);}else{menuItems[0].cfg.setProperty("disabled",true);}
menuItems[1].cfg.setProperty("disabled",true);menuItems[2].cfg.setProperty("disabled",true);}else{menuItems[0].cfg.setProperty("disabled",true);menuItems[1].cfg.setProperty("disabled",false);menuItems[2].cfg.setProperty("disabled",false);}}
function onTriggerVarContextMenu(p_oEvent,p_oMenu){currentNode=tree.getNodeByLabelEl(this.contextEventTarget);}
function onTriggerDatasetContextMenu(p_oEvent,p_oMenu){currentNode=tree.getNodeByLabelEl(this.contextEventTarget);var menuItems=this.getItems();if(currentNode.data.URL===null){menuItems[0].cfg.setProperty("disabled",true);}else{menuItems[0].cfg.setProperty("disabled",false);}}
function onFolderExpand(node){if(node.labelStyle==="ygtvlabel icon-folderClosed"){var labelEl=node.getLabelEl();labelEl.className="ygtvlabel icon-folderOpen";node.labelStyle="ygtvlabel icon-folderOpen"}
return true;}
function onFolderCollapse(node){if(node.labelStyle==="ygtvlabel icon-folderOpen"){var labelEl=node.getLabelEl();labelEl.className="ygtvlabel icon-folderClosed";node.labelStyle="ygtvlabel icon-folderClosed"}
return true;}
function onSavedSearchClick(node){var searchName=node.data.id;DDIINDEX.user.getSearch(searchName);}
function onCatalogNodeClick(node,expand){if(node.hasChildren()){return;}
if(activeCatalogNode!==undefined){tree.removeChildren(activeCatalogNode);}
var path=node.data.catalogPath;var server=path[0];var catalog=catalogs[server];for(var i=1;i<path.length;i++){catalog=catalog[path[i]];}
for(var folder in catalog){var folderInfo=folder.split("//");var folderLabel=folderInfo[0];var folderName=(folderInfo.length===1?folderInfo[0]:folderInfo[1]);if(catalog[folder]==null){var queryString="queryFieldType:[dataset] queryField:[ddiiCatalogNames] server:["+server+"] datasetSort:[ddiiDatasetName] matchSynonyms[false] matchSimilar:[false] phraseProximity:[0]";if(catalogAccumulate[server]){if(folderName.search(/\s/)===-1){queryString=DDIUtil.updateQueryStringParam(queryString,"queryAnd",folderName);}else{queryString=DDIUtil.updateQueryStringParam(queryString,"queryPhrase","\""+folderName+"\"");}}else{for(var i=0;i<path.length;i++){if(i>0){var keyStrings=path[i].split("//");var keyCatalogName=(keyStrings.length==1?keyStrings[0]:keyStrings[1]);if(keyCatalogName.search(/\s/)==-1){queryString=DDIUtil.updateQueryStringParam(queryString,"queryAnd",keyCatalogName);}else{queryString=DDIUtil.updateQueryStringParam(queryString,"queryPhrase","\""+keyCatalogName+"\"");}}}
if(folderName.search(/\s/)==-1){queryString=DDIUtil.updateQueryStringParam(queryString,"queryAnd",folderName);}else{queryString=DDIUtil.updateQueryStringParam(queryString,"queryPhrase","\""+folderName+"\"");}}
var newNode=new YAHOO.widget.TextNode({label:folderLabel},node,false);newNode.labelStyle="ygtvlabel icon-folderClosed";newNode.onLabelClick=onGetCatalogDatasets;newNode.data.queryString=queryString;}else{var open=expand&&node.depth<catalogDepth;var newNode=new YAHOO.widget.TextNode({label:folderLabel},node,open);if(open){newNode.labelStyle="ygtvlabel icon-folderOpen";}else{newNode.labelStyle="ygtvlabel icon-folderClosed";}
newNode.onLabelClick=onCatalogNodeClick;var folderPath=path.slice();folderPath.push(folder);newNode.data.catalogPath=folderPath;if(expand){if(node.depth<catalogDepth){onCatalogNodeClick(newNode,true);}}}}
if(expand){node.expand();}else{node.refresh();}}
function onGetCatalogDatasets(node){if(activeCatalogNode!==undefined){tree.removeChildren(activeCatalogNode);}
activeCatalogNode=node;activeDatasetNode=undefined;DDIINDEX.user.getCatalogDatasets(node.data.queryString);}
function onGetDatasetVariables(node){if(activeDatasetNode!==undefined){var previousNode=activeDatasetNode;}
activeDatasetNode=node;node.labelStyle="selected ygtvlabel icon-dataset";DDIINDEX.user.getDatasetVariables(node.data.queryString);if(previousNode!==undefined){tree.removeChildren(previousNode);previousNode.labelStyle="ygtvlabel icon-dataset";}}
function onGetGroupVariables(node){if(activeVarGroupNode!==undefined){var previousNode=activeVarGroupNode;}
activeVarGroupNode=node;node.labelStyle="selected ygtvlabel icon-vargroup";node.parent.refresh();currentNode=node;that.loadDatasetVariables();if(previousNode!==undefined){if(node.parent!=previousNode){tree.removeChildren(previousNode);}
previousNode.labelStyle="ygtvlabel icon-vargroup";previousNode.parent.refresh();}}
function onDatasetVariable(node){if(activeVariableNode!==undefined){var previousNode=activeVariableNode;}
activeVariableNode=node;node.labelStyle="selected ygtvlabel icon-variable";variableContextMenu.addTriggerNode(node);if(previousNode!==undefined){tree.removeChildren(previousNode);previousNode.labelStyle="ygtvlabel icon-variable";}}
function onGetQueryInfo(node){var searchNode=node.parent;var searchName=searchNode.data.id;parent.frames["searchResults"].location=encodeRedirectURL("queryInfo.jsp")+"?search="+searchName;}
function onGetMoreHits(node){var searchName=node.data.searchName;var hitType=node.data.hitType;tree.removeNode(node);DDIINDEX.user.getMoreHits(searchName,hitType);}
function onSaveLast(){contextMenu.hide();DDIINDEX.user.saveLast();}
function onDeleteSearch(){contextMenu.hide();DDIINDEX.user.deleteSearch(currentNode.label);}
function onRenameSearch(){contextMenu.hide();DDIINDEX.user.renameSearch(currentNode.label);}
function onApplyFilter(){varsContextMenu.hide();var searchName=currentNode.parent.data.id;DDIINDEX.user.getVariableFilter(searchName);}
function onRemoveFilter(){varsContextMenu.hide();var searchName=currentNode.parent.data.id;DDIINDEX.user.removeVariableFilter(searchName);}
function onOpenInNesstar(){if(integrateNesstar){var url=currentNode.data.URL;if(url!==null){var dsWindow=window.open(url,"dataServer");dsWindow.focus();}}}
function addHomePageNode(){var loginNode=tree.getNodeByProperty("id","login");var rootNode=loginNode.parent;if(manageAttr!=="null"){var homeURL="home.jsp?manage";}else{var homeURL="home.jsp";}
var homeNode=new YAHOO.widget.TextNode({label:"Home",id:"home",href:homeURL,target:"searchResults"},rootNode,false);homeNode.labelStyle="ygtvlabel icon-home";homeNode.insertAfter(loginNode);rootNode.refresh();}
function addBrowseNode(){var historyNode=tree.getNodeByProperty("id","history");var rootNode=historyNode.parent;var browseNode=new YAHOO.widget.TextNode({label:"Browse by Topic",title:"Browse all data by topic classification",id:"browse",href:"javascript:DDIINDEX.user.browse();"},rootNode,false);browseNode.labelStyle="ygtvlabel icon-topics";browseNode.insertAfter(historyNode);rootNode.refresh();}
function integrateBrowseNode(){var historyNode=tree.getNodeByProperty("id","history");var rootNode=historyNode.parent;var webviewNode=new YAHOO.widget.TextNode({label:"Browse by Catalogue",title:"Browse the Nesstar Data Catalogue",id:"webview",href:null},rootNode,false);webviewNode.labelStyle="ygtvlabel icon-browse";webviewNode.insertAfter(historyNode);webviewNode.target="webview";rootNode.refresh();}
function integrateBrowseURL(url){var browseNode=tree.getNodeByProperty("id","webview");if(browseNode!==null&&browseNode.target==="webview"){browseNode.href=url+"/webview";browseNode.target="_parent";tree.getNodeByProperty("id","history").parent.refresh();}}
function onBookmark(){if(currentNode!==undefined){var server=DDIUtil.getQueryStringParam(currentNode.data.queryString,"server");var id=currentNode.data.id;top.location.href="index.jsp?queryString=queryAnd:["+id+"]+queryFieldType:[both]+queryField:[Dataset+ID]+server:["+server+"]";}}
function resetTree(){var node=tree.getNodeByProperty("id","lastSearch");if(node!==null){tree.removeChildren(node);}
node=tree.getNodeByProperty("id","savedSearches");if(node!==null){tree.removeChildren(node);}
if(activeCatalogNode!=undefined){tree.removeChildren(activeCatalogNode);activeCatalogNode=undefined;}
activeSavedSearchNode=undefined;}
function updateLoginNode(login){var node=tree.getNodeByProperty("id","login");if(login==true){node.label="Logout";node.href="javascript:DDIINDEX.user.logout();";node.target="tree";node.parent.refresh();}else{node.label="Login";node.href="login.jsp?noCheckSession=true&headless=true";node.target="searchResults";top.location.href=node.data.url+"logout.jsp"+"?return_url="+top.location.href;}}
function setRootNodeCaption(user){var node=tree.getNodeByProperty("id","root");if(user==undefined||user==null){node.label="Data Searches";}else{node.label="Data Searches ("+user+")";}
node.parent.refresh();}
function loadMoreDatasetVariables(parentNode){var startVar=1;if(parentNode.data.id==="morehits"){var moreHitsNode=parentNode;parentNode=moreHitsNode.parent;startVar=moreHitsNode.data.startVar;tree.removeNode(moreHitsNode,false);}
var variableGroups=parentNode.data.groups;var variableTree=datasetVariables;if(variableGroups!==undefined){for(var i=0;i<variableGroups.length;i++){variableTree=variableTree[variableGroups[i]];}}
var variables=variableTree["ddiiVariables"];if(variables==undefined)
return;var i;for(i=startVar;i<(startVar+hitsPerPage);i++){var hit=variables[i-1];if(hit==undefined)
break;var displayName=hit.name;if(hit.label!="")
displayName+=" ("+hit.label+")";var node=new YAHOO.widget.TextNode({label:displayName,title:displayName,href:encodeRedirectURL("results.jsp")+"?search=ddiiBrowseDataset&type=variable&action=browse&id="+hit.id,target:"searchResults"},parentNode,false);node.labelStyle="ygtvlabel icon-variable";node.onLabelClick=onDatasetVariable;node.data.id=hit.id;node.data.URL=hit.URL;}
if(variables[i-1]!=undefined){var node=new YAHOO.widget.TextNode({label:"More Hits...",id:"morehits"},parentNode,false);node.labelStyle="ygtvlabel icon-morehits";node.data.startVar=i;node.onLabelClick=loadMoreDatasetVariables;}
parentNode.refresh();}}