/*
Copyright (c) 2008, OrcaTec LLC. All rights reserved.
$Id:$
*/

  var treedata;
  var nResults;
  var tree;
  var nodes = new Array();
  var count = 0;
  var totalhits = 0;
  var start = 0;
  var pageWidth = 1024;
  var query;
  var fudgeFactor = 50;
  var intDispURL = ""
  var result
  var nclus = 0;	//Number of clusters
  var secret = "4fc23";
  var accessKey = "fb116279498d02a";
  var dcarray=new Array();


function hilightClus(clusID, doclist, count){
  //alert("doclist: "+doclist+ " length: "+doclist.length);
  var currentDocs = doclist[clusID-1];
  nclus = doclist.length;
  //alert("currentDocs: "+currentDocs);
  for (var i=1; i<= doclist.length; i++) {
    document.getElementById("clable"+i).style.background="white"; 	//highlight cluster label
  }
  for (var i=1; i<= count; i++) {
    document.getElementById("res"+i).style.display="none";
  }
  document.getElementById("clable"+clusID).style.background="yellow";
  var clusterText = document.getElementById("clable"+clusID).textContent;
  if (clusterText == undefined) {
    clusterText = document.getElementById("clable"+clusID).innerText;
  }
  //alert("clusterText: "+clusterText);
  document.getElementById("clustersummary").innerHTML = "<p>Theme: <b>"+clusterText+"</b></p>";
  //var firstDoc = 999999;
  //var firstDocID = ""
  for (var i=0; i < currentDocs.length; i++) {
    document.getElementById("res"+currentDocs[i]).style.display="block";
    /*if (currentDocs[i] < firstDoc) {
      firstDoc = currentDocs[i]
      firstDocID = "res"+currentDocs[i] 
    }*/
      

  }
  document.getElementById("hlinks").scrollIntoView();

}

function showAll(count) {
  for (var i=1; i<= count; i++) {
    document.getElementById("res"+i).style.display="block";
  }
  for (var i=1; i<= nclus; i++) {
    document.getElementById("clable"+i).style.background="white"; 	//unhighlight cluster label
  }
  document.getElementById("clustersummary").innerHTML="";
  document.getElementById("hlinks").scrollIntoView();
}

function initPage(userQuery) {
  document.getElementById("contentdiv").scrollTop=0;
  window.scroll(0,0);
  //adjustresultBox()
  //var progdiv = DIV({"class":"progdiv", "name": "progdiv", "id":"progdiv"}, "<img src='/static/images/ajax-loader.gif' / >");
  var progdiv = DIV({"class":"progdiv", "name": "progdiv", "id":"progdiv"}, "Hello there");
  appendChildNodes(document.body, progdiv);
  document.getElementById("progdiv").innerHTML = "<img src='/static/images/ajax-loader.gif' / >"
  document.getElementById("progdiv").style.visibility="hidden";
  document.getElementById("querybox").value = userQuery;
  //displayResults();
}


function getInteresting(URL, dispURL){
  intDispURL = dispURL
  document.getElementById("progdiv").style.visibility="visible";
  d = loadJSONDoc("getInteresting?link="+escape(URL));
  d.addCallback(displayInteresting); 
};


function findPageWidth (){
  if (window.innerWidth) {
    return window.innerWidth;
  }
  if (document.body.offsetWidth) {
    return document.body.offsetWidth; //for IE
  }
  if (screen.availWidth) {
    //alert("screenwidth: "+ screen.availWidth);
    return screen.availWidth;
  }
 return (null);
}
function findPageHeight (){
  if (window.innerHeight) {
    return window.innerHeight;
  }
  if (document.body.offsetHeight) {
    return document.body.offsetHeight; //for IE
  }
  if (screen.availHeight) {
    //alert("screenwidth: "+ screen.availWidth);
    return screen.availHeight;
  }
 return (null);
}

function adjustresultBox() {
  //var resHgt = $("resultCell").offsetHeight;
  //alert("adjust width");
  var pageWidth = findPageWidth();
  var clusWidth = document.getElementById("clusterbar").offsetWidth;
  var newWidth = 1*(pageWidth - clusWidth - fudgeFactor);
  var newrWidth =1*(pageWidth - clusWidth - (fudgeFactor+10));
  var rDivStyle = document.getElementById("resultdiv").style;
  rDivStyle.width = newrWidth +"px";
  var sDivStyle = document.getElementById("searchdiv").style;
  sDivStyle.width = newrWidth +"px";
  var srDivStyle = document.getElementById("searchandresults").style;
  srDivStyle.width = newWidth+"px";
  //var cDivStyle = document.getElementById("contentdiv").style;
  //cDivStyle.width = pageWidth;
  var fDivStyle = document.getElementById("footer").style;
  fDivStyle.width = (pageWidth-fudgeFactor);
  var pageHeight = findPageHeight();
  var cbarTop = document.getElementById("clusterbar").offsetTop;
  //alert("cbarTop: "+cbarTop);
  var cbarHeight = document.getElementById("clusterbar").offsetHeight;
  //alert("cbarHeight: "+cbarHeight+", cbarTop: "+ cbarTop+", pageHeight: "+pageHeight);
  var newTop = pageHeight-cbarHeight-30;
  //alert("newTop: "+newTop);
  if ((cbarTop + cbarHeight) > pageHeight) {
    document.getElementById("clusterbar").style.top= newTop+"px"; 
  }
  //var hDivStyle = document.getElementById("header").style;
  //hDivStyle.width = (pageWidth-fudgeFactor);
  //document.getElementById("searchandresults").width = newWidth;
  //alert("pageWidth: "+pageWidth+", clusWidth: "+clusWidth + ", newWidth: "+newWidth);
}

function doSubmitForm(frm){
  query = frm["querybox"].value;
  src = frm["src"].value;
  var start = 0;
  getResults(query, start, src)
  //loadSectionTable(query+"~");
  //alert("query: "+query);
};
function tryIt(tryQuery) {
  document.getElementById("querybox").value = tryQuery;
  query = tryQuery;
  getResults(query,0);
};
  

/*  function getResults(query, start){
  document.getElementById("progdiv").style.visibility="visible";
  d = loadJSONDoc("searchresult?query="+query+"&start="+start);  
  d.addCallback(displayResults); 
  d.addErrback(displayNoResults);

} 
*/
function getResults(query, start, src){
  query = query.replace(/[\(\)\"]/g,"");
  //alert("query: "+ query)
  document.getElementById("progdiv").style.visibility="visible";
  url = "/search?query="+query+"&start="+start+"&src="+src;
  window.location.href=url;
}  





function displayNoResults (ermess){
  rslt = "<p>No documents are available that match your query.  Please try another search.</p>";
  document.getElementById("resultdiv").innerHTML = rslt;
  document.getElementById("progdiv").style.visibility="hidden";
}

function ShowProperties(obj){			//List an object's properties
 
 var names = "";
 for (var name in obj) names += name + ", "; //"\n";
 //document.getElementById("footdiv").innerHTML ="<p>show properties"+names+"</p>";
 //alert("show properties: " + names);
}

function reorder(){
  var rdiv = DIV({id:"sorteddiv"})
  ncats = treedata.length;
  for (var i=0; i<ncats; i++) {
    var label = treedata[i][2];
    var clusterLabel = H1({id:"label"+i},label);
    appendChildNodes(rdiv,clusterLabel);
    clist = treedata[i][4];
    for (j=0; j<clist.length; j++){
      var y = document.getElementById("res"+clist[j]);
      appendChildNodes(rdiv,y);
    }
  }
  resultdiv = document.getElementById("resultdiv");
  //swapDOM(resultdiv, rdiv);
}

function resetprv() {
  removeElement("prvdiv")
}
function resetint() {
  removeElement("intdiv")
}

  
function showPreviewDoc(URL) {
  //alert("URL: "+URL);
  newURL = URL.split("**")[1];
  //alert("newURL: "+newURL);
  if ($("prvdiv")) {
    removeElement($("prvdiv"));
  }
  var prvdiv = DIV({"class":"prvdiv", "name": "prvdiv", "id":"prvdiv"}, "");
  var buttonHTML = '<div><p class="closebutton">&nbsp; <img src="/static/images/close_16.png"  align="right" onClick = "resetprv();"></p></div>\n';
  //var buttonHTML = '<p class="closebutton" align="right"> <img src="/static/images/close_16.png" align="right" onClick = "resetprv();"></p>\n';
  //var buttonHTML = '<div><span class="previewtext"> Preview of '+URL+'</span> <span class="resetbutton"> <img src="/static/images/close_16.png" align="right" onClick = "resetint();"/> </span></div>' ;
  var size = "xlg";
  prndm = 2;
  var thumbURL = escape('http://www.shrinktheweb.com/xino.php?embed=1&u='+ secret +'&STWAccessKeyId='+ accessKey +'&rndm='+ prndm +'&Size='+ size +'&Url='+ newURL);
  var iframeHTML = '<div><iframe name="prviframe" id="prviframe" src=/redir?URL='+escape(URL)+' width="100%" height="380px"></iframe></div>';
  //var iframeHTML = '<div><iframe name="prviframe" id="prviframe" src=/redir?URL='+thumbURL+' width="100%" height="270px"></iframe></div>';
 appendChildNodes(document.body, prvdiv);
  document.getElementById("prvdiv").innerHTML = buttonHTML +iframeHTML;
  //document.getElementById("prvdiv").innerHTML = buttonHTML;
}


function displayInteresting(result) {
    

  if ($("intdiv")) {
    removeElement($("intdiv"));
  }
  var intdiv = DIV({"class":"intdiv", "name": "intdiv", "id":"intdiv"}, "this is my intdiv");
  appendChildNodes(document.body, intdiv);

  var buttonHTML = '<div><p class="closebutton">&nbsp; <img src="/static/images/close_16.png"  align="right" onClick = "resetint();"></p></div>\n';
  //var buttonHTML = '<p align="right"> <img src="/static/images/close_16.png"align="right" onClick = "resetint();"></p>\n';
  rslt = buttonHTML+"<h1>Interesting Terms for </h1><p>"+intDispURL+"</p><div id='iterms'><pre>"+result["terms"]+"</pre></div>";
  document.getElementById("intdiv").innerHTML = rslt;
  document.getElementById("progdiv").style.visibility="hidden";

}