/* external links */

function genevest(param)
{ 	var url = 'https://www.genevestigator.com/gv/directlink.jsp?geneIDs=' + param + '&tool=T_PRO_AN&source=genevestigator';
	window.open(url, 'genevest', 'width=1024,height=768,toolbar=yes,menubar=yes,scrollbars=yes,location=yes,resizable=1');
}
function tigr(param)
{	var url = 'http://www.tigr.org/tigr-scripts/euk_manatee/shared/ORF_infopage.cgi?db=ath1&orf=' + param;    
        window.location.href = url;                                                                           
}
function genoscopeGrape(param)
{	var url = 'http://www.genoscope.cns.fr/cgi-bin/ggb/vitis/gbrowse/vitis?name=' + param.replace(/^Vv/,"GSVIVT00");    
        window.location.href = url;                                                                           
}
function tigrRice(param)
{	var url = 'http://rice.plantbiology.msu.edu/cgi-bin/ORF_infopage.cgi?db=osa1r5&orf=LOC_' + param;    
        window.location.href = url;                                                                           
}
function ncbiHuman(param)
{	var url = 'http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=Protein&cmd=search&term=' + param.replace(/\..*/, "");
        window.location.href = url;                                                                           
}
function sgdYeast(param)
{	var url = 'http://db.yeastgenome.org/cgi-bin/locus.pl?locus=' + param;
        window.location.href = url;                                                                           
}
function kazusaCyano(param)
{       var cyano = {a:'Anabaena', g:'Gloeobacter', s:'Synechocystis', t:'Thermo'};
        var url = 'http://bacteria.kazusa.or.jp/cyanobase/'+ cyano[param.substr(0,1)] +'/cgi-bin/orfinfo.cgi?title=Chr&name=' + param + '&iden=1';
        window.location.href = url;
}
function ncbiStdd(param)
{	var url = 'http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=Protein&cmd=search&term=' + param.replace(/\..*/, "");
        window.location.href = url;                                                                           
}


function mips(param)
{       var url = 'http://mips.gsf.de/cgi-bin/proj/thal/search_gene?code=' + param;
        window.location.href = url;                                                                           
}
function tair(param)
{       var url = 'http://arabidopsis.org/servlets/TairObject?type=locus&name=' + param;
        window.location.href = url;                                                                           
}
function openNcbiTaxonomy(param)
{       var url = 'http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id=' + param + '&lvl=3&lin=f&keep=1&srchmode=1&unlock';
        window.location.href = url;                                                                           
}
function openPfamDescription(param)
{		var url = 'http://pfam.sanger.ac.uk/family?acc=' + param;
      window.location.href = url;                                                                           
}
function openGoBrowser(param, cat)
{       var i = 7 - param.length;
			var n = '';
			while(i > 0)
			{	n += '0';
				i--;
			} 
			switch (cat)
			{	case 3: cat = 'component';
				case 6: cat = 'function';
				case 16: cat = 'process';
				default: cat = 'all_ont';
			}
			//www.ebi.ac.uk/ego/DisplayGoTerm?id=GO:0016020&viz=none
			var url = 'http://www.ebi.ac.uk/ego/DisplayGoTerm?id=GO%3A' + n + param + '&mode=id&ontology=' + cat + '&viz=none';
		
        window.location.href = url;                                                                           
}
function ncbiProt(param)
{	var url = 'http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=Protein&cmd=Search&term=' + param + '&doptcmdl=GenBank';
	//var url = 'http://www.ncbi.nlm.nih.gov:80/entrez/query.fcgi?cmd=Retrieve&db=Protein&list_uids=' + param + '&dopt=GenPept';
	window.location.href = url;
}
function swissProt(param)
{	var url = 'http://www.expasy.org/cgi-bin/niceprot.pl?' + param;
	window.location.href = url;
}
function ncbiNuc(param)
{	var url = 'http://www.ncbi.nlm.nih.gov:80/entrez/query.fcgi?cmd=Retrieve&db=Nucleotide&list_uids=' + param + '&dopt=GenBank';
	window.location.href = url;
}
function ncbiPubmed(param)
{	var url = 'http://www.ncbi.nlm.nih.gov:80/entrez/query.fcgi?cmd=Retrieve&db=PubMed&list_uids=' + param + '&dopt=Abstract';
	window.location.href = url;
}
function ncbiBac(param)
{	var url = 'http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=Nucleotide&cmd=Search&term=' + param + '&doptcmdl=GenBank';
	window.location.href = url;
}
function openTcDefinition(param)
{	var params = param.split('.');
	params = params.slice(0,3);
	var url = 'http://www.tcdb.org/tcdb/index.php?tc=' + params.join('.');
	//window.location.href = url;
	window.open(url, 'tc', 'width=1024,height=768,toolbar=yes,menubar=yes,scrollbars=yes,location=yes,resizable=1');
}

/* internal links */

function openLegend(param)
{  param = param ? param + '.ep' : 'legend.ep';	
	window.open(param,'legend','width=550,height=700,scrollbars=yes');
}
function openProject(param)
{  	var url = 'proj_view.ep?id=' + param + '&mode=1';
	window.open(url, 'project','width=1024,height=800,toolbar=yes,menubar=yes,scrollbars=yes,location=yes,resizable=1');
}
function openRefGene(GeneID)
{	var url = 'ref_view.ep?mode=0&GeneID=' + GeneID;
	var newRef = window.open(url, 'newRef', 'width=800,height=800,toolbar=yes,menubar=yes,scrollbars=yes,location=yes,resizable=1');
	newRef.focus();
}
function openRef(MethodID, hasOnlineService)
{	var url = 'ref_view.ep?mode=1&MethodID=' + MethodID + '&online=' + (hasOnlineService == null ? 1 : hasOnlineService);
	window.open(url, 'newRef', 'width=800,height=800,toolbar=yes,menubar=yes,scrollbars=yes,location=yes,resizable=1');
}
function openRefSig(GeneID)
{	var url = 'ref_view.ep?mode=2&GeneID=' + GeneID;
	window.open(url, 'newRef', 'width=800,height=800,toolbar=yes,menubar=yes,scrollbars=yes,location=yes,resizable=1');
}
function openRefNews(NewsID)
{	var url = 'ref_view.ep?mode=3&NewsID=' + NewsID;
	var newRef = window.open(url, 'newRef', 'width=1024,height=800,toolbar=yes,menubar=yes,scrollbars=yes,location=yes,resizable=1');
	newRef.focus();
}
function openRefRef(RefID)
{	var url = 'ref_view.ep?mode=4&RefID=' + RefID;
	var newRef = window.open(url, 'newRef', 'width=800,height=800,toolbar=yes,menubar=yes,scrollbars=yes,location=yes,resizable=1');
	newRef.focus();
}
function openTmSub2(GeneID, ModelID, MethodID)
{	var url = 'tm_sub2.ep?GeneID=' + GeneID + '&ModelID=' + ModelID + '&MethodID=' + MethodID;
	var winName = 'w2' + GeneID;
	window.open(url, winName, 'width=1024,height=800,toolbar=yes,menubar=yes,scrollbars=yes,resizable=1');
}	
function openTmSub(GeneID, ModelID)
{	var url = 'tm_sub.ep?GeneID=' + GeneID + '&ModelID=' + ModelID;
	var winName = 'w' + GeneID;
	window.open(url, winName, 'width=1024,height=800,scrollbars=yes,resizable=1');
}	
function openSeqViewRef(RefID)
{	var url = 'seq_view.ep?cat=12&RefID=' + RefID; 
//	window.location.href = url;
	opener.focus();
	opener.location = url;
}
function openSeqView(paramNoOrgm, OrgID, showTaxons)
{	var url = 'seq_view.ep?' + paramNoOrgm + '&orgm=' + OrgID + '&showTaxons=' + showTaxons;
	window.location.href = url;
}
function openSeqSub(GeneID)
{ 	var url = 'seq_sub.ep?GeneID=' + GeneID;
	var winName = 'w' + GeneID;
	window.open(url, winName, 'width=1024,height=768,toolbar=yes,menubar=yes,scrollbars=yes,location=yes,resizable=1');
}
function replaceSeqSub(GeneID, ModelID, target, fasta)
{ 	var url = 'seq_sub.ep?GeneID=' + GeneID + '&ModelID=' + ModelID + '&target=' + target + '&fasta=' + fasta;
   window.location.href = url;                                                                           
}
function openCluster(GeneID, GeneFamID, MotifID)
{	var all = new Array();
        for (var i = 0; i < window.document.filterform.orgid.length; i++)
        {       if (window.document.filterform.orgid[i].checked)
                {       all.push(window.document.filterform.orgid[i].value);
                }
        }
        var filtered = all.length == 0 ? '0' : all.join('-');
	var url = 'cluster_view.ep?GeneID=' + GeneID + '&GeneFamID=' + GeneFamID + '&MotifID=' + MotifID + '&orgids=' + filtered;
   	window.location.href = url;                                                                           
}
function replaceTmModel(GeneID, ModelID)
{ 	var url = 'tm_sub.ep?GeneID=' + GeneID + '&ModelID=' + ModelID;
   window.location.href = url;                                                                           
}
function replaceSeqModel(GeneID, ModelID)
{ 	var url = 'seq_sub.ep?GeneID=' + GeneID + '&ModelID=' + ModelID;
   window.location.href = url;                                                                           
}
function openParaView(GeneID, GeneFamID)
{	var url = 'para_view.ep?GeneID=' + GeneID + '&GeneFamID=' + GeneFamID;
	window.open(url, 'newWinRel', 'width=1280,height=768,toolbar=yes,menubar=yes,scrollbars=yes,resizable=1');
}
function openParaViewTxt(GeneID, GeneFamID, isFamID)
{	var url = 'para_viewTxt.ep?GeneID=' + GeneID + (isFamID == 1 ? '&GeneFamID=' : '&ClusterID=') + GeneFamID;
	window.open(url, 'newWinTxt', 'width=1024,height=768,scrollbars=yes,resizable=1');
}
function openTreeView(GeneID, GeneFamID, OrgID)
{	var url = 'tree_view.ep?GeneID=' + GeneID + '&GeneFamID=' + GeneFamID + '&OrgID=' + OrgID;
	window.open(url, 'treeWin', 'width=1200,height=768,scrollbars=yes,resizable=1');
}
function openExtraTreeView(GeneID, ExtraFamID, ExtraID)
{	var url = 'extra_sub2.ep?GeneID=' + GeneID + '&ExtraFamID=' + ExtraFamID + '&ExtraID=' + ExtraID + '&format=1';
	window.open(url, 'treeWin', 'width=1200,height=768,scrollbars=yes,resizable=1');
}
function replaceTreeView(GeneID, GeneFamID, OrgID, format)
{	var url = 'tree_view.ep?GeneID=' + GeneID + '&GeneFamID=' + GeneFamID + '&OrgID=' + OrgID + '&format=' + format;
   window.location.href = url;                                                                           
}
function openClustalView(GeneID)
{	var url = 'clustal_view.ep?GeneID=' + GeneID;
	window.open(url, 'clustWin', 'width=1024,height=768,scrollbars=yes,resizable=1');
}
function openOrthoView(GeneID, GeneFamID)
{	//var url = 'ortho_view.ep?GeneID=' + GeneID + '&GeneFamID=' + GeneFamID;
	var url = 'cluster_view.ep?GeneID=' + GeneID + '&GeneFamID=' + GeneFamID;
	window.open(url, 'newWinRel', 'width=1280,height=768,toolbar=yes,menubar=yes,scrollbars=yes,resizable=1');
}
function openOntologyView(GeneID)
{	var url = 'ontol_view.ep?GeneID=' + GeneID;
	window.open(url, 'newWinOntol', 'width=800,height=600,toolbar=yes,menubar=yes,scrollbars=yes,location=yes,resizable=1');
}
function openMotifView(GeneID)
{	var url = 'motif_view.ep?GeneID=' + GeneID;
	window.open(url, 'newWinMotif', 'width=800,height=600,toolbar=yes,menubar=yes,scrollbars=yes,location=yes,resizable=1');
}
function openSeqViewBlastTxt()
{	var url = 'seq_viewBlastTxt.ep';
	window.open(url, 'newWinTxt', 'width=800,height=768,toolbar=yes,menubar=yes,scrollbars=yes,resizable=1');
}

/* control functions */
var currX = 150;
var currY = 300;
var MIN_DISTANCE = 30;
function setCurrY(e)
{	currY = (window.event) ? window.event.clientY : e.pageY;
}
function helpIn(id) 
{	if(document.getElementById)
	{	var hint = document.getElementById('help' + id);

		if (window.event)
		{	setCurrY();
		}
      else          
    	{	document.captureEvents(Event.MOUSEMOVE);
    		document.onmousemove=setCurrY;
		}	
		
		hint.style.top = (currY + MIN_DISTANCE) + 'px';
		hint.style.left = currX + 'px';
		hint.style.visibility = 'visible';
	}
}
function helpOut(id)
{	if(document.getElementById)
	{	var hint = document.getElementById('help' + id);
		hint.style.visibility = 'hidden';
	}
}	
function setReturnLink(ix, path)
{	var url;
	if (path.indexOf('javascript') > -1)
	{	url = path;
	}
	else
	{	url = window.location.protocol + "//" + window.location.host + "/" + path + window.location.search;
	}	
	window.document.links[ix].href = url;
}
function markCell(line)
{ if (document.getElementById)
  {  var ea = document.getElementById("markable_a" + line);
     ea.setAttribute("class", "sibeT");
     var eb = document.getElementById("markable_b" + line);
     eb.setAttribute("class", "sibeT");
     var ec = document.getElementById("markable_c" + line);
     ec.setAttribute("class", "sibeT");
  }
}
