function renderDynamicHtml(result,jobId,sessionId){var groups=getGroupHierarchy(result);for(var k in groups)renderDynamicGroup(groups[k],result,jobId,sessionId);var other=getOtherActionsGroup();activeGroup(other)}
function renderDynamicGroup(group,result,jobId,sessionId){for(var i=0;i<result.outputItems.length;i++)if(!result.outputItems[i].hide)if(result.outputItems[i].group==group.domain)renderDynamicItem(result.outputItems[i],jobId,sessionId);if(group.subgroups)for(var k in group.subgroups)renderDynamicGroup(group.subgroups[k],result,jobId,sessionId);activeGroup(group)}
function activeGroup(group){$("#"+getSafetyName(group.domain)+"_header").click(function(){var safety=getSafetyName(group.domain);if($("#"+safety+"_body").is(":hidden")){$("#"+safety+"_body").slideDown("slow");$("#"+safety+"_icon").attr("src","resources/images/icons/bottom_arrow.png")}else{$("#"+safety+"_body").slideUp("slow");$("#"+safety+"_icon").attr("src","resources/images/icons/right_arrow.png")}})}
function renderDynamicItem(item,jobId,sessionId){switch(item.type){case "MESSAGE":break;case "TEXT":break;case "IMAGE":break;case "LINK":break;case "FILE":if(containsTag(item.tags,"TABLE"))loadTable(item,jobId,sessionId);else;break;case "HTML":if(containsTag(item.tags,"FILE"))loadHTMLFile(item,jobId,sessionId);else if(containsTag(item.tags,"SERVER"))loadServerHTML(item,jobId,sessionId)}}
function loadTable(item,jobId,sessionId){var format="";var termType="";var tags="";if(item.tags)for(var i=0;i<item.tags.length;i++){if(item.tags[i].indexOf("_TABLE")>0)format="&format="+item.tags[i];if(item.tags[i].indexOf("_TERM")>0)termType="&termtypes="+item.tags[i];if(i>0)tags=tags+",";tags=tags+item.tags[i]}var options=defaultTableOptions();if(containsTag(item.tags,"SUMMARY_TABLE")){options["cssClassNames"]={headerRow:"result-table-summary-header",headerCell:"result-table-summary-header-cell"};
options["sort"]="disable"}var query=new google.visualization.Query(DATASOURCE_SERVER+"?jobid="+jobId+"&filename="+item.value+"&sessionid="+sessionId+format+termType+"&tags="+tags);var callback=function(response){if(response.isError())$("#"+item.name+"_table").html("<font class='result-item-value result-message result-message-error'>"+response.getDetailedMessage());else{var data=response.getDataTable();var table=new google.visualization.Table(document.getElementById(item.name+"_table"));try{table.draw(data,
options)}catch(error){alert(error)}if($("#"+item.name+"_still_loading").length>0)$("#"+item.name+"_table").html("Error: the table has not been properly rendered. <br>Probably it is too big to perform a preview.<br> If you want to analyze the results, please click over above link to download the original file");else{var pages=data.getNumberOfRows()/options["pageSize"];if(pages>Math.floor(pages))pages=Math.floor(pages)+1;$("#"+item.name+"_table .google-visualization-table-td-page").append("<span align='right'>&nbsp;&nbsp;page 1 of "+
pages+"</span>");google.visualization.events.addListener(table,"page",function(event){$("#"+item.name+"_table .google-visualization-table-td-page").append("<span align='right'>&nbsp;&nbsp;page "+(event["page"]+1)+" of "+pages+"</span>")})}}};query.send(callback)}
function loadHTMLFile(item,jobId,sessionId){var success=function(data){$("#"+item.name+"_lazy").html(data)};var error=function(data){$("#"+item.name+"_lazy").html("Error loading content")};var params="?filename="+item.value+"&jobid="+jobId+"&sessionid="+sessionId;var url=DOWNLOADER_SERVER+params;callGetServer(url,success,error)}
function loadServerHTML(item,jobId,sessionId){var success=function(data){$("#"+item.name+"_lazy").html(data)};var error=function(data){$("#"+item.name+"_lazy").html("Error loading content")};var url=item.value;if(containsTag(item.tags,"INCLUDE_REFS"))url=url+"&jobid="+jobId+"&sessionid="+sessionId;callGetServer(url,success,error)};var GROUP_SEPARATOR=".";function getGroupHierarchy(result){var groupVector;var tree={};for(var i=0;i<result.outputItems.length;i++)if(!result.outputItems[i].hide){groupVector=getGroupVector(result.outputItems[i].group);tree=insertHierarchy(tree,groupVector,0)}return tree}
function insertHierarchy(tree,groupVector,pos){var safety;if(pos<groupVector.length){safety=getSafetyName(groupVector[pos]);if(!tree[safety]){var acum=[];for(var b=0;b<=pos;b++)acum=acum.concat(groupVector[b]);tree[safety]={label:groupVector[pos],domain:acum.join(GROUP_SEPARATOR),deep:pos,subgroups:[]}}var branch=insertHierarchy(tree[safety].subgroups,groupVector,pos+1);return tree}else return null}
function getGroupVector(group){if(group.indexOf(GROUP_SEPARATOR)==-1)return[group];else return group.split(GROUP_SEPARATOR)}
function renderGroupHeader(group){var safety=getSafetyName(group.domain);var html=new StringBuffer;var groupHeaderClass="result-group-title";var groupBodyClass="result-group-body";if(group.deep>0){groupHeaderClass="result-subgroup-title";groupBodyClass="result-subgroup-body"}html.appendln("<a name='"+safety+"'></a>");html.appendln("\t<div id='"+safety+"_header' class='"+groupHeaderClass+"'>");html.appendln(" \t&nbsp;<img  id='"+safety+"_icon' border='0' src='resources/images/icons/bottom_arrow.png'> ");
html.appendln(" \t&nbsp;"+group.label);html.appendln("\t</div>");html.appendln("\t<br><br>");html.appendln("\t<div id='"+safety+"_body' class='"+groupBodyClass+"'>");return html}function renderGroupFooter(group){var html=new StringBuffer;if(group.subgroups){var cont=0;for(var key in group.subgroups)cont++;if(cont==0)html.appendln("<div class='result-go-up-link'><a href='#results-page'>up</a></div>")}html.appendln("\t</div>");html.appendln("\t<br><br>");return html};function renderStaticHtml(result,jobId,sessionId){var html=new StringBuffer;var groups=getGroupHierarchy(result);html.appendln("<br/><br/>");html.appendln("<div class='results'>");html.appendln("<a name='results-page'></a>");html.appendln("<div class='result-header'>");html.appendln(resultsHeader(result,jobId,sessionId));html.appendln("</div>");html.appendln("<br><br>");html.appendln("<div class='result-scheme'>");html.appendln(resultsScheme(result));html.appendln("</div>");html.appendln("<br><br>");
for(var k in groups)html.appendln(renderStaticGroup(groups[k],result,jobId,sessionId));html.appendln(renderOtherActions(result,jobId,sessionId));html.appendln("</div>");html.appendln("<br/><br/>");return html}function getOtherActionsGroup(){var other={label:"Other actions",domain:"Other actions",deep:0,subgroups:{}};return other}
function renderOtherActions(result,jobId,sessionId){var html=new StringBuffer;var other=getOtherActionsGroup();html.appendln(renderGroupHeader(other));html.appendln("<div class='result-item-row'>");html.appendln("    <div class='result-item'>");html.appendln("    \t<img border='0' align='left' valign='middle' src='resources/images/square.gif'>&nbsp;");html.appendln("         <a class='result-other-actions' class='result-link' href='javascript:void(0)' onclick='openInputForm("+jobId+")'>Open input form</a>");
html.appendln("    </div>");html.appendln("</div>");html.appendln("<br>");if(FLAGS["SHOW_PVALUES"]){html.appendln("<div class='result-item-row'>");html.appendln("    <div class='result-item'>");html.appendln("    \t   <img border='0' align='left' valign='middle' src='resources/images/square.gif'>&nbsp;");html.appendln("         <font class='result-other-actions'>Change p value</font><br><br>");html.appendln("         <div style='margin-left: 50px;'>");html.appendln(renderPvalue(0.1,jobId,sessionId));
html.appendln("&nbsp;&nbsp;");html.appendln(renderPvalue(0.05,jobId,sessionId));html.appendln("&nbsp;&nbsp;");html.appendln(renderPvalue(0.01,jobId,sessionId));html.appendln("&nbsp;&nbsp;");html.appendln(renderPvalue(0.0050,jobId,sessionId));html.appendln("         </div>");html.appendln("    </div>");html.appendln("</div>")}html.appendln(renderGroupFooter(other));return html}
function renderPvalue(pvalue,jobId,sessionId){var style="";if(pvalue==GLOBAL_PARAMS["pvalue"])style="background-color: #faa; border: 1px dashed red;";return"<font style='"+style+"' class='result-pvalue'><a class='result-pvalue' href='javascript:void(0)' onclick=\"openResult( '"+GLOBAL_PARAMS.title_area+"', '"+GLOBAL_PARAMS.area+"', "+jobId+", '"+sessionId+"',{pvalue:"+pvalue+'})"/a>'+pvalue+"</a></font>&nbsp;"}
function openInputForm(jobId){var job=wc_getJob(jobId);if(job){var success=function(data){var params=eval("("+data+")");if(eval("typeof "+params.tool+"_form == 'function'"))eval(params.tool+"_form(params);")};var error=function(data){alert(data)};wc_getJobForm(jobId,success,error)}}
function resultsHeader(result,jobId,sessionId){var html=new StringBuffer;var job=wc_getJob(jobId);html.appendln(" <div class='result-tool-name'>"+result.toolTitle+"</div>");if(job){html.appendln("\t<br><br>");html.appendln("\t<div class='result-abstract-frame'>");html.appendln("The job named <font class='result-job-name'>"+job.name+"</font> was launched on <font class='result-job-field '>"+job.creationTime+"</font>");html.appendln("under the project named <font class='result-job-field '>"+job.projectName+
"</font>, and has been visited <font class='result-job-field'>"+job.visites+"</font> times");html.appendln("<br>");html.appendln("<br>");html.appendln("\t</div")}else;return html}function resultsScheme(result){var groups=getGroupHierarchy(result);var html=new StringBuffer;html.appendln("<ul class='result-scheme-list'>");for(var k in groups)html.appendln(getGroupScheme(groups[k]));html.appendln("</ul>");return html}
function getGroupScheme(group){var html=new StringBuffer;html.appendln("<li class='result-group-scheme-container'>");html.appendln("\t\t<a class='result-group-scheme' href='#"+getSafetyName(group.domain)+"'>"+group.label+"</a>");if(group.subgroups){html.appendln("<ul>");for(var k in group.subgroups)html.appendln(getGroupScheme(group.subgroups[k]));html.appendln("</ul>")}html.appendln("\t</li>");return html}
function renderStaticGroup(group,result,jobId,sessionId){var html=new StringBuffer;html.appendln(renderGroupHeader(group));var ungrouped=0;for(var i=0;i<result.outputItems.length;i++)if(!result.outputItems[i].hide){var item=result.outputItems[i];if(item.group==group.domain){html.appendln(renderStaticItem(item,jobId,sessionId));html.appendln("<br>");ungrouped++}}if(ungrouped>0)html.appendln("<br><br>");var nsubs=0;if(group.subgroups)for(var k in group.subgroups){html.appendln(renderStaticGroup(group.subgroups[k],
result,jobId,sessionId));nsubs++}html.appendln(renderGroupFooter(group));return html.toString()}
function renderStaticItem(item,jobId,sessionId){var html=new StringBuffer;switch(item.type){case "MESSAGE":html.appendln(renderMessage(item,jobId,sessionId));break;case "TEXT":html.appendln(renderText(item,jobId,sessionId));break;case "IMAGE":if(containsTag(item.tags,"CLUSTER")||containsTag(item.tags,"cluster"))html.appendln(renderClusterImage(item,jobId,sessionId));else html.appendln(renderImage(item,jobId,sessionId));break;case "LINK":html.appendln(renderLink(item,jobId,sessionId));break;case "FILE":if(containsTag(item.tags,
"TABLE"))html.appendln(renderTable(item,jobId,sessionId));else html.appendln(renderFileLink(item,jobId,sessionId));break;case "HTML":html.appendln(renderHtml(item,jobId,sessionId));break}html.append("<tr>");return html.toString()}
function renderMessage(item,jobId,sessionId){var html=new StringBuffer;var style="";if(containsTag(item.tags,"INFO"))style="result-message-info";if(containsTag(item.tags,"WARNING"))style="result-message-warning";if(containsTag(item.tags,"ERROR"))style="result-message-error";html.appendln("<div class='result-item-row'>");html.appendln("    <div class='result-item'>");if(containsTag(item.tags,"COMMENT")||containsTag(item.tags,"MINI_COMMENT"))html.appendln("        <div class='result-message-comment'>");
else{html.appendln("        <img border='0' align='left' valign='middle' src='resources/images/square.gif'>&nbsp;");html.appendln("        <font class='result-item-title'>"+item.title+"</font>");html.appendln("        <font class='result-item-separator'>:</font>")}if(containsTag(item.tags,"MINI_COMMENT"))style="result-message-mini-comment";if(containsTag(item.tags,"PRE")){var pre=item.value;html.appendln("        <br><blockquote><font class='result-item-value result-message "+style+"'><pre>"+pre.replace(/::::/g,
"\n")+"</pre></font></blockquote>")}else html.appendln("        <font class='result-item-value result-message "+style+"'>"+item.value+"</font>");if(containsTag(item.tags,"COMMENT")||containsTag(item.tags,"MINI_COMMENT"))html.appendln("        </div >");html.appendln("    </div>");html.appendln("</div>");return html}
function renderText(item,jobId,sessionId){var html=new StringBuffer;html.appendln("<div class='result-item-row'>");html.appendln("    <div class='result-item'>");html.appendln("    \t   <img border='0' align='left' valign='middle' src='resources/images/square.gif'>&nbsp;");html.appendln("        <font class='result-item-title'>"+item.title+"</font>");html.appendln("        <font class='result-item-separator'>:</font>");html.appendln("        <font class='result-item-value'>"+item.value+"</font>");
html.appendln(insertRedirections(item,jobId));html.appendln("    </div>");html.appendln("</div>");return html}
function renderImage(item,jobId,sessionId){var html=new StringBuffer;var url=DOWNLOADER_SERVER+"?filename="+item.value+"&jobid="+jobId+"&sessionid="+sessionId;html.appendln("<div class='result-item-row'>");html.appendln("    <div class='result-item'>");html.appendln("    \t<img border='0' align='left' valign='middle' src='resources/images/square.gif'>&nbsp;");html.appendln("        <font class='result-item-title'>"+item.title+"</font>");html.appendln("        <font class='result-item-separator'>:</font>");
html.appendln("    </div>");html.appendln("</div>");html.appendln("<div class='result-item-row'>");html.appendln("    <div class='result-item'>");html.appendln("        <br/><br/>");html.appendln("        <div class='result-image'>");if(containsTag(item.tags,"THUMBNAIL"))html.appendln("              <a class='result-image-thumbnail-link' target=\"_blank\" href='"+url+"'><div><img width=\"500px\" align='center' class='result-image result-image-thumbnail' border='0' src='"+url+"'></div></a>");else html.appendln("              <img align='center' class='result-image' border='0' src='"+
url+"'>");html.appendln("        </div>");html.appendln("        <br/><br/>");html.appendln("    </div>");html.appendln("</div>");return html}
function renderClusterImage(item,jobId,sessionId){var html=new StringBuffer;var url=DOWNLOADER_SERVER+"?filename="+item.value+"&jobid="+jobId+"&sessionid="+sessionId;var mapUrl=IMAGE_MAP_URL+"/"+sessionId+"/"+jobId+"/cluster/"+item.value+".html.map/"+IMAGE_MAP_SERVER;var onMouseMoveCall='markCluster("'+item.name+'", "'+mapUrl+'", event);';html.appendln("<input id='cluster_img_id' type='hidden' value='"+item.name+"'>");html.appendln("<input id='"+item.name+"_url' type='hidden' value='"+mapUrl+"'>");
html.appendln("<input id='"+item.name+"_offset' type='hidden' value=''>");html.appendln("<input id='"+item.name+"_offset' type='hidden' value=''>");html.appendln("<input id='"+item.name+"_map' type='hidden' value=''>");html.appendln("<div class='result-item-row'>");html.appendln("    <div class='result-item'>");html.appendln("    \t   <img border='0' align='left' valign='middle' src='resources/images/square.gif'>&nbsp;");html.appendln("        <font class='result-item-title'>"+item.title+"</font>");
html.appendln("        <font class='result-item-separator'>:</font>");html.appendln("    </div>");html.appendln("</div>");html.appendln("<div class='result-item-row'>");html.appendln("    <div class='result-item'>");html.appendln("        <br/><br/>");html.appendln("        <div class='result-image'>");html.appendln("              <img id='"+item.name+"' align='center' class='result-image' border='0' src='"+url+"' onmousemove='"+onMouseMoveCall+"'>");html.appendln("        </div>");html.appendln("        <br/><br/>");
html.appendln("    </div>");html.appendln("</div>");html.appendln("<script language='javascript'>");html.appendln("getClusterMap('"+item.name+"', '"+item.value+"', '"+jobId+"', '"+sessionId+"')");html.appendln("<\/script>");return html}
function renderLink(item,jobId,sessionId){var html=new StringBuffer;var url=item.value;if(containsTag(item.tags,"INCLUDE_REFS")){var symbol="?";if(url.indexOf(symbol)>-1)symbol="&";url=url+symbol+"jobid="+jobId+"&sessionid="+sessionId}html.appendln("<div class='result-item-row'>");html.appendln("    <div class='result-item'>");html.appendln("    \t   <img border='0' align='left' valign='middle' src='resources/images/square.gif'>&nbsp;");html.appendln("         <font class='result-item-title'>"+item.title+
"</font>");html.appendln("         <font class='result-item-separator'>:</font>");html.appendln("         <font class='result-item-value'><a class='result-link' target='_blank' href='"+url+"'>"+item.value+"</a></font>");html.appendln("    </div>");html.appendln("</div>");return html}
function renderFileLink(item,jobId,sessionId){var html=new StringBuffer;var params="?filename="+item.value+"&jobid="+jobId+"&sessionid="+sessionId;var url=DOWNLOADER_SERVER+params;html.appendln("<div class='result-item-row'>");html.appendln("    <div class='result-item'>");html.appendln("    \t   <img border='0' align='left' valign='middle' src='resources/images/square.gif'>&nbsp;");html.appendln("        <font class='result-item-title'>"+item.title+"</font>");html.appendln("        <font class='result-item-separator'>:</font>");
if(containsTag(item.tags,"GO_GRAPH_VIZ_JNLP")){url="http://bioinfo.cipf.es/gographviz/webstart/makeJnlpBabel.php"+params;html.appendln("    &nbsp;&nbsp;&nbsp;<a style='text-decoration: none;' class='result-file' href='"+url+"'><img alt='open with Interactive visualizator (Java Web Star)' style='display:inline-block; vertical-align: middle' border='0' src=\"resources/images/gographvizlogomini.png\" /></a>")}else html.appendln("        <font class='result-item-value'><a class='result-file' target='_blank' href='"+
url+"'>"+item.value+"</a></font>");if(containsTag(item.tags,"ANNOTATION")&&containsTag(item.tags,"GO")){url="http://bioinfo.cipf.es/blast2go/webstart/makeJnlpBabel.php"+params;html.appendln("    &nbsp;&nbsp;&nbsp;<a style='text-decoration: none;' class='result-file' href='"+url+"'><img alt='send to Blast2GO' style='display:inline-block; vertical-align: middle' border='0' src=\"resources/images/b2gweblogomini.jpg\" width='50px'/></a>")}html.appendln(insertRedirections(item,jobId));html.appendln("    </div>");
html.appendln("</div>");return html}
function getRedirections(tags){if(tags!=null&&tags.length>0){var redirections=[];var redirection,params,raw,fields;for(var i=0;i<tags.length;i++)if(tags[i].indexOf("REDIRECTION")>-1){raw=tags[i].split("(");if(raw!=null){params=raw[1];params=params.substring(0,params.length-1);fields=params.split(":");if(fields!=null&&fields.length>1){redirection={};redirection.fileName=fields[0];redirection.title=fields[1];redirections=redirections.concat(redirection)}}}return redirections}return null}
function insertRedirections(item,jobId){var html=new StringBuffer;var redirections=getRedirections(item.tags);if(redirections!=null&&redirections.length>0){var onclick;for(var i=0;i<redirections.length;i++){onclick="openRedirection("+jobId+",'"+redirections[i].fileName+"')";html.appendln("<br>&nbsp;&nbsp;&nbsp;&nbsp;<img src='resources/images/redirect.png'/>&nbsp;<a border='0' href='javascript:void(0);' onclick=\""+onclick+"\" class='result-item-redirection'>"+redirections[i].title+"</a>")}}return html.toString()}
function openRedirection(jobId,fileName){var job=wc_getJob(jobId);if(job){var success=function(data){data=data.replace(/\$JOB_NAME/g,job.name);var params=eval("("+data+")");if(eval("typeof "+params.tool.replace(/-/g,"_")+"_form == 'function'"))eval(params.tool.replace(/-/,"_")+"_form(params);")};var error=function(data){alert(data)};callRedirection(jobId,fileName,success,error)}}
function callRedirection(jobId,fileName,successCallback,errorCallback){callGetServer("redirect?jobid="+jobId+"&filename="+fileName+"&sessionid="+wc_getSessionCookie(),successCallback,errorCallback,false)}
function renderTable(item,jobId,sessionId){var html=new StringBuffer;var params="?filename="+item.value+"&jobid="+jobId+"&sessionid="+sessionId;var url=DOWNLOADER_SERVER+params;html.appendln("<div class='result-item-row'>");html.appendln("    <div class='result-item'>");html.appendln("    \t<img border='0' align='left' src='resources/images/square.gif'>&nbsp;");html.appendln("        <font class='result-item-title'>"+item.title+" </font>");html.appendln("        <font class='result-item-separator'>:</font>");
if(!containsTag(item.tags,"SUMMARY_TABLE")&&!containsTag(item.tags,"NO_LINK"))html.appendln("        <font class='result-item-value'><a class='result-file' target='_blank' href='"+url+"'>"+item.value+"</a></font>");if(containsTag(item.tags,"EXCEL"))html.appendln("        &nbsp;&nbsp;<font class='result-item-value'><a class='result-file' style='color: green' target='_blank' href='dfc"+params+"&command=tab2excel&alias="+item.value+".xls'>(download as EXCEL)</a></font>");html.appendln("    </div>");
html.appendln("</div>");html.appendln("<div class='result-item-row'>");html.appendln("    <div class='result-item'>");html.appendln("        <br/><br/>");if(containsTag(item.tags,"SUMMARY_TABLE"))html.appendln("        <table class='result-table'><tr><td>");else html.appendln("        <table align='center' class='result-table'><tr><td>");html.appendln("            <div id='"+item.name+"_table'>");html.appendln("            \t<img id='"+item.name+"_still_loading' border='0' src='resources/images/big_loading.gif'/>");
html.appendln("            </div>");html.appendln("        </td></tr></table>");html.appendln("        <br/></br>");html.appendln("    </div>");html.appendln("</div>");return html}
function renderHtml(item,jobId,sessionId){var html=new StringBuffer;html.appendln("<div class='result-item-row'>");html.appendln("    <div class='result-item'>");html.appendln("    \t   <img border='0' align='left' valign='middle' src='images/square.gif'>&nbsp;");html.appendln("        <font class='result-item-title'>"+item.title+"</font>");html.appendln("        <font class='result-item-separator'>:</font>");if(!containsTag(item.tags,"SERVER")&&!containsTag(item.tags,"FILE"))html.appendln("        <font class='result-item-value'>"+
item.value+"</font>");else{html.appendln("            <div id='"+item.name+"_lazy'>");html.appendln("            \t<img border='0' src='images/big_loading.gif'/>");html.appendln("            </div>")}html.appendln("    </div>");html.appendln("</div>");return html};var RESULTS_SERVER="Results";var DOWNLOADER_SERVER="Downloader";var DATASOURCE_SERVER="DataSourceServer";var GLOBAL_PARAMS;var FLAGS;var IMAGE_MAP_URL="ismap";var IMAGE_MAP_SERVER="ImageMapServer";
function openResult(title_area,area,jobId,sessionId,globalParams){FLAGS={};GLOBAL_PARAMS={pvalue:0.05,title_area:title_area,area:area,jobId:jobId,sessionId:sessionId};if(globalParams)for(var i in globalParams)GLOBAL_PARAMS[i]=globalParams[i];var success=function(data){var result=eval("("+data+")");var toolName="unknown";for(var i=0;i<result.inputItems.length;i++)if(result.inputItems[i].name=="tool")toolName=new String(result.inputItems[i].value);result.tool=toolName;result.toolTitle=(new String(toolName[0])).toUpperCase()+
(new String(toolName)).replace("-"," ").substring(1,toolName.length);var myflags,flag,fields;for(var i=0;i<result.metaItems.length;i++)if(result.metaItems[i].name=="flags"){myflags=(new String(result.metaItems[i].value)).split(",");for(var j=0;j<myflags.length;j++){flag=new String(myflags[j]);if(flag.indexOf("=")>-1){fields=flag.split("=");FLAGS[fields[0]]=fields[1]}else FLAGS[flag]=true}}var value,context;for(var i=0;i<result.outputItems.length;i++){result.outputItems[i].hide=false;context=new String(result.outputItems[i].context);
if(context!=""){for(var j in GLOBAL_PARAMS)context=context.replace((new String(j)).toLowerCase(),GLOBAL_PARAMS[j]);if(!eval(context))result.outputItems[i].hide=true}value=new String(result.outputItems[i].value);value=value.toLowerCase();if(value.indexOf("${")>-1)for(var j in GLOBAL_PARAMS){value=value.replace("${"+(new String(j)).toLowerCase()+"}",GLOBAL_PARAMS[j]);result.outputItems[i].value=value}}initWorkArea("Results","");$("#"+area).html(renderStaticHtml(result,jobId,sessionId)+"\n");renderDynamicHtml(result,
jobId,sessionId);loadFeedByTags([result.toolTitle,"babelomics"],area)};var error=function(){initWorkArea("ERROR","I could not open selected job")};callGetServer(RESULTS_SERVER+"?jobid="+jobId+"&sessionid="+sessionId,success,error)}function initResultsWidget(){var html=new StringBuffer;html.appendln("<div id='result-widget' class='dynamic-widget-title'>");html.appendln("results...");html.appendln("</div>");$("#dynamic_widget_container").append(html.toString())}
function defaultTableOptions(){var options={};options["allowHtml"]=true;options["page"]="enable";options["pageSize"]=10;options["alternatingRowStyle"]=true;options["pagingSymbols"]={prev:"prev",next:"next"};options["pagingButtonsConfiguration"]="auto";return options}
function geneFrame(parent,title,genes){var geneVector=(new String(genes)).split(",");var links="";for(var i=0;i<geneVector.length;i++)links=links+"<a target='_blank' class='results-gene-link' href='http://www.ensembl.org/Homo_sapiens/Search/Results?species=all;idx=;q="+geneVector[i]+"'>"+geneVector[i]+"</a>, ";miniFrame(parent,"Genes",links,{})}function containsTag(tags,tag){return indexOf(tags,tag)!=-1}function loadVisualizationAPI(){google.load("visualization","1",{packages:["table"]})}
function indexOf(array,item){var itemString=new String(item);for(var i=0;i<array.length;i++){var arrayItem=new String(array[i]);if(arrayItem.toLowerCase()==itemString.toLowerCase())return i}return-1}
function getClusterMap(itemName,itemValue,jobId,sessionId){var success=function(data){$("#"+itemName+"_map").val(data)};var error=function(data){alert(data+"\nDue to some internal errors, interactivity with cluster image is disable. Please, try later")};var mapUrl=IMAGE_MAP_URL+"/"+sessionId+"/"+jobId+"/cluster/"+itemValue+".html.map/"+IMAGE_MAP_SERVER;callSyncPostServer(mapUrl,"cmd=get_map",success,error)}
function getPosition(id){var top=0,left=0;var myTarget=document.getElementById(id);while(myTarget!=document.body){top+=myTarget.offsetTop;left+=myTarget.offsetLeft;myTarget=myTarget.offsetParent}return[left,top]}
function markCluster(imgId,mapUrl,event){var pos=getPosition(imgId);var x=event.pageX-pos[0];var y=event.pageY-pos[1];var clusters=eval("("+$("#"+imgId+"_map").val()+")");var indexSel,distance,minDistance=1E7;for(var i=0;i<clusters.length;i++){distance=Math.sqrt((clusters[i].x-x)*(clusters[i].x-x)+(clusters[i].y-y)*(clusters[i].y-y));if(distance<minDistance){minDistance=distance;indexSel=i}}var imgWidth=$("#"+imgId).width();var clusterWidth=imgWidth-parseInt(clusters[indexSel].x);var clusterHeight=
parseInt(clusters[indexSel].ymax)-parseInt(clusters[indexSel].ymin);var input=new StringBuffer;var selClusterId=imgId+"_selected";var onClickCall='callImgMapServerXY("'+imgId+'", "'+mapUrl+'", '+parseInt(clusters[indexSel].x)+", "+parseInt(clusters[indexSel].y)+", event);";var onMouseMoveCall='markCluster("'+imgId+'", "'+mapUrl+'", event);';input.appendln("<div id='"+selClusterId+"' class='generic-tooltip' onclick='"+onClickCall+"' onmousemove='"+onMouseMoveCall+"'>");input.appendln("<b>"+clusters[indexSel].name+
"</b>");input.appendln("</div>");if($("#"+selClusterId))$("#"+selClusterId).remove();$("body").append(input.toString());$("#"+selClusterId).css({left:pos[0]+parseInt(clusters[indexSel].x)+"px",top:pos[1]+parseInt(clusters[indexSel].ymin)-10+"px",width:clusterWidth+"px",height:+(clusterHeight+20)+"px"});$("#"+selClusterId).fadeIn()}
function callImgMapServerXY(imgId,mapUrl,x,y,event){var clusterInfo;var success=function(data){clusterInfo=data};var error=function(data){alert("error: "+data)};callSyncPostServer(mapUrl,"x="+x+"&y="+y,success,error);clusterToolTip(imgId,eval("("+clusterInfo+")"),x-5,y-5,event)};