//<!--

var MAX_SUGTERM_BOUND = 10;
var SUGTERM_SHOW_MODE_MATCH = 1;
var SUGTERM_SHOW_MODE_NO_MATCH = 2;
var MAX_DCCTG_FILTER_BOUND = 4;

/* output search page header 
paramList['CGIPrefix'] is CGI path prefix
paramList['PagePrefix'] is static Page path prefix
paramList['QueryString'] is the previous query string 
*/
var _hintDelay = null;
var _fullName = null;
var _isHintShow = false;
var _orisCookie = GenCookieList( );
var _sessChkUrl = param['CGIPrefix'] + "admin/sesschk.cgi";

function OutSPageHeader(param)
{
   var htmlStr = new String();
   var bgImgStr = new String();
   var fgImgStr = new String();
   var queryStr = new String();
   var queryLinkStr = new String();
   var logoLinkStr = new String();
   var focusStr = new String();
   var qsugStr = "";

   /* start auto-logout timer */
   if(null != _orisCookie && null != _orisCookie['ORISKEY'] && 
      32 == TrimStr(_orisCookie['ORISKEY'].split("!")[0]).length)
      window.setTimeout(ChkSess, 60000); 
   
   bgImgStr = "this.style.backgroundImage='url("
              + param['PagePrefix'] + "img/button_22_over.gif)'";
   fgImgStr = "this.style.backgroundImage='url("
              + param['PagePrefix'] + "img/button_22.gif)'";
   queryLinkStr = "search/qpage.cgi?act=simple"
      + ((param["tmplSetName"] != "")?"&tmpl="+param["tmplSetName"]:"")
      + ((param["uiLang"] != undefined)?"&uilang="+param["uiLang"]:"");
   queryStr = "NewQuery('top')";
   if(null == param["logoLinkUrl"])
   {
      logoLinkStr = "window.location='" + param['CGIPrefix']
         + "search/qpage.cgi?act=simple"
         + ((param["tmplSetName"] != "")?"&tmpl="+ param["tmplSetName"]:"")
         + ((param["uiLang"] != undefined)?"&uilang="+param["uiLang"]:"")
         + "'";
   }
   else
   {
      logoLinkStr = "window.location='" + param["logoLinkUrl"] +"'";
   }
   focusStr = "param['QueryFocus'] = 'top'";
   
   /* show delrec link only if above free version */
   if(param['verType'].toLowerCase() != "free")
   {
      if(param['loginPriv'] == "admin")
         delLinkStr = "<a href='" + param["CGIPrefix"] + "search/query.cgi?" + param["DelLinkUrl"]
                      + ((param["uiLang"] != undefined)?"&uilang="+param["uiLang"]:"")
                      + "'>" + MSG_MENU_DELREC + "</a>"
      else
         delLinkStr = "";
   }
   else
      delLinkStr = "";
      
   if(param['ShowQSug'])
      qsugStr = 'onFocus="QSugBind(event); '+ focusStr +'" onBlur="QSugUnBind(event)" onKeyDown="QSugGetKey(event)" onKeyUp="QSugSelectTerm(event)"';
   else
      qsugStr = 'onFocus="' + focusStr + '"';
      

   htmlStr = '<tr> <td height="71" background="'
             + param["PagePrefix"] +
             'img/topbg.gif"> <table width="100%" height="69"  border="0" cellpadding="0" cellspacing="0">  \
             <tr> <td width="17">&nbsp;</td>    \
             <td width="220"><div class="result_logo" onClick="' + logoLinkStr + '"></div>             \
             </td><td width="18">&nbsp;&nbsp;&nbsp;&nbsp;</td> \
             <td><table width="100%"  border="0" align="right" cellpadding="2" cellspacing="4">  \
             <tr><td width="364" nowrap class="top_body13gray">   \
             <div align="left" class="body13gray">                \
             <table width="100%"  border="0" cellspacing="0" cellpadding="0">    \
             <tr><td> <input id="topqstr" type="text" autocomplete="off" class="listmenu" style="width:291" value="'
             + param["QueryString"] +
             '" size="39" ' + qsugStr + '></td><td>    \
             <table width="66" height="24" align="center" cellpadding="0" cellspacing="0">      \
             <tbody><tr>      \
             <td align=middle valign="middle" style="BACKGROUND-IMAGE: url('
             + param["PagePrefix"] +
             'img/button_22.gif); CURSOR: default" onMouseOver="'
             + bgImgStr + 
             '" onMouseOut="'
             + fgImgStr +
             '" onClick="'+ queryStr + '"> <div align="center" class="body13gray19">'
             + MSG_MENU_QUERY + 
             '</div>    \
             </td></tr></tbody></table>   \
             </td></tr></table>           \
             </div></td><td nowrap class="body13link"><span class="body13link">     \
             <a href="' + param["CGIPrefix"] + queryLinkStr + '">'
             + MSG_MENU_QUERY_SIMPLE + 
             '</a><br>';
	     
	     
   if(null != param['helpId'] && param['helpId'].length >= 0)
      htmlStr += '<a href="#" \
		 onClick="window.open(\''
		 + param['CGIPrefix'] +
                 'admin/help.cgi?act=show&id=' 
                 + param['helpId']
                 + ((param["uiLang"] != undefined)?"&uilang="+param["uiLang"]:"")
                 + '\')">'
                 + MSG_MENU_ASSIST_INFO +
                 '</a><br>';
	     
   htmlStr += delLinkStr +
             '</span></td>       \
             <td width="5" class="top_body13gray">&nbsp;</td>              \
             </tr></table>       \
             </td></tr></table>  \
             </td></tr>';
   
   document.write(htmlStr);
}

function OutSPageFooter(param)
{
   var htmlStr = new String();
   var bgImgStr = new String();
   var fgImgStr = new String();
   var queryStr = new String();
   var focusStr = new String();

   bgImgStr = "this.style.backgroundImage='url(" + param['PagePrefix'] + "img/button_22_over.gif)'";
   fgImgStr = "this.style.backgroundImage='url(" + param['PagePrefix'] + "img/button_22.gif)'";
   queryStr = "NewQuery('bottom')";
   focusStr = "param['QueryFocus'] = 'bottom'";

   htmlStr = '<table width="96%"  border="0" align="center" cellpadding="0" cellspacing="0">       \
              <tr>            \
              <td background="' + param['PagePrefix'] + 'img/list_line.gif"><img src="' + param['PagePrefix'] +
              'img/list_line.gif" width="3" height="2"></td>   \
              </tr>           \
              <tr>            \
              <td bgcolor="F6F6F6">  \
              <table height="60" border="0" align="center" cellpadding="0" cellspacing="0">        \
              <tr>            \
              <td class="body13gray"><div align="center">      \
              <input id="bottomqstr" type="text" class="listmenu" style="width: 340" size="46" onFocus="' + focusStr + '">  \
              </div></td>     \
              <td width="80" align="center" class="body13gray"><table width="66" height="24" cellpadding="0" cellspacing="0">  \
              <tbody>         \
              <tr>            \
              <td align=middle valign="middle"  \
              style="BACKGROUND-IMAGE: url(' + param['PagePrefix'] + 'img/button_22.gif); CURSOR: default" onmouseover="'
              + bgImgStr + '" onmouseout="' + fgImgStr + '" onClick="' + queryStr + '"><div align="center" class="button">' + MSG_MENU_QUERY + '</div></td>\
              </tr>           \
              </tbody>        \
              </table></td>   \
              <td class="body13link"><span class="s"><a href="#" class="body13link" onClick="QueryInResult()">' + MSG_MENU_QUERY_INRESULT + '</a></span></td>\
              </tr>           \
              </table></td>   \
              </tr>           \
              <tr><td background="' + param['PagePrefix'] + 'img/list_line.gif"><img src="'
              + param['PagePrefix'] + 'img/list_line.gif" width="3" height="2"></td>\
              </tr></table>';

   document.write(htmlStr);
}

function OutCopyRight()
{
   var htmlStr = '<div align="center" class="copyright">' 
               + MSG_FOOTER_COPYRIGHT +
                 '</div>';

   document.write(htmlStr);
}

function TrimStr(str)
{
   return str.replace(/^[ \t\r\n]+|[ \t\r\n]+$/g, "");
}

function ToggleOption()
{
   var sortOption = document.getElementById("sortoption");
   var dbList = document.getElementById("dblist");

   if(dbList.style.display == "none")
   {
      dbList.style.display = "";
      MoreOptToCookie(1);
   }
   else
   {
      dbList.style.display = "none";
      MoreOptToCookie(0);
   }

   if(sortOption.style.display == "none")
      sortOption.style.display = "";
   else
      sortOption.style.display = "none";

}

/*
function OutDelRecPage( )
{
  document.forms["query_form"].del.value = "1";
  document.forms["query_form"].submit( );
}
*/

function NewQuery(where)
{
   if(where == "bottom")
      var qStr = document.getElementById("bottomqstr");
   else
      var qStr = document.getElementById("topqstr");

   if(TrimStr(qStr.value) == "")
   {
      alert(MSG_QPAGE_NO_QUERY);
      return false;
   }
   if(qStr.value.length == 1)
   {
      alert(MSG_QPAGE_SINGLE_TERM);
      return false;
   }
   
   /*
      check the query form whether it has newquery cgi variable first.
      If it is yes, set the value of 'newquery' variable to '1'.
   */
   if(document.forms["query_form"].newquery != null)
   {
      document.forms["query_form"].newquery.value = "1";
   }

   /* clear all filter */
   ClearAllFilter();

   document.forms["query_form"].q.value = qStr.value;
   document.forms["query_form"].submit( );
}

function QueryInResult( )
{
   var qStr = document.forms["query_form"].q;
   var oqStr = document.forms["query_form"].oq;
   var newQStr = document.getElementById("bottomqstr");

   if(TrimStr(newQStr.value) == "")
   {
      alert(MSG_QPAGE_NO_QUERY);
      return false;
   }
   if(newQStr.value.length == 1)
   {
      alert(MSG_QPAGE_SINGLE_TERM);
      return false;
   }
   
   /*
      check the query form whether it has newquery cgi variable first.
      If it is yes, set the value of 'newquery' variable to '1'.
   */
   if(document.forms["query_form"].newquery != null)
   {
      document.forms["query_form"].newquery.value = "1";
   }

   if(oqStr.value != "")
      qStr.value = "(" + oqStr.value + ")" + " & (" + newQStr.value + ")";
   else
      qStr.value = newQStr.value;
   document.forms["query_form"].submit( );
}

function Init()
{
   var sortBy;
   var direction;
   var nRec;

   /* set sortby */
   sortBy = document.forms["query_form"].sortby;
   for(i = 0; i < sortBy.options.length; i++)
   {
      if(sortBy.options[i].value == param["SortBy"])
         sortBy.options[i].selected = true;
   }
   
   /* set direction */
   direction = document.forms["query_form"].direction;
   for(i = 0; i < direction.options.length; i++)
   {
      if(direction.options[i].value == param["Direction"])
         direction.options[i].selected = true;
   }

   /* set n */
   nRec = document.forms["query_form"].n;
   for(i = 0; i < nRec.options.length; i++)
   {
      if(nRec.options[i].value == param["PageRec"])
         nRec.options[i].selected = true;
   }

   /* score doesn't have direction */
   if(sortBy.options[sortBy.selectedIndex].value == "score")
      direction.disabled = true;
   else
      direction.disabled = false;

   /* if moreopt in ORISOPT is set */
   var moreOpt = MoreOptFromCookie( );
   if(moreOpt != null)
   {
      if(moreOpt == "1")
         param["MoreOpt"] = 1;
      else
         param["MoreOpt"] = 0;
   }

   if(param["MoreOpt"] == 1)
   {
      document.getElementById("sortoption").style.display = "";
      document.getElementById("dblist").style.display = "";
   }
   else
   {
      document.getElementById("sortoption").style.display = "none";
      document.getElementById("dblist").style.display = "none";
   }

   /* re-set the form value for back to previous page */
   document.forms["query_form"].dtype.value = param['dtype'];
   document.forms["query_form"].fdate.value = param['fdate'];
   document.forms["query_form"].ftype.value = param['ftype'];
   document.forms["query_form"].fauthor.value = param['fauthor'];
   document.forms["query_form"].ftheme.value = param['ftheme'];
   document.forms["query_form"].fcake.value = param['fcake'];
   document.forms["query_form"].fservice.value = param['fservice'];
   document.forms["query_form"].oq.value = DecodeHtmlEntity(param['QueryString']);
   document.forms["query_form"].q.value = DecodeHtmlEntity(param['QueryString']);
   
   /* re-set query box, cause init js uses compiled value instead of current one */
   document.getElementById("topqstr").value = document.forms["query_form"].oq.value;

   /* new hint for full author name */
   _fullName = new Hint();
}

function KeyPressSubmit(e, func)
{
   var nKey;
   var arg = new String();
   
   arg = "('" + param['QueryFocus'] + "')";

   /* get key code from event */
   /* IE only */
   if(document.all)
      nKey = event.keyCode;
   /* FireFox only */
   else
      nKey = e.which;

   /* if this key code is 'Enter' */
   if(nKey == 13)
      eval(func + arg);
      
   return;
}

function MoreOptToCookie(moreopt)
{
   var c = "ORISOPT=" + moreopt + ";";
   document.cookie=c;
}

function MoreOptFromCookie( )
{
   var nameEQ = "ORISOPT=";
   var ca = document.cookie.split(';');
   for(var i=0; i < ca.length; i++)
   {
      var c = ca[i];
      while (c.charAt(0)==' ') c = c.substring(1,c.length);
      if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
   }
   return null;
}

/* diatango, 060420, get suggestion term */
function TryToGetSugTerm(actDBName, actDBCnt, q, dbs, element, showMode)
{
   var xmlhttp;
   var url;
   var postData;
   var encQ;
   var targetDB;
   var args = new Array();

   actDBCnt = actDBCnt.replace(",", "");
   if(actDBCnt > MAX_SUGTERM_BOUND)
      return true;
   
   /* init xmlhttp */
   xmlhttp = XMLHTTPInit( );
   if(null == xmlhttp)
      return false;
      
   /* set target db */
   if(actDBName == "ALL")
      targetDB = dbs;
   else
      targetDB = actDBName;
   
   /* set arguments */
   url = "/cgi-bin/search/sugterm.cgi";

   encQ = XMLHTTPEscPostValue(q);
   postData = "act=get&v=1&dbs="+targetDB+"&q="+encQ+"&count="+actDBCnt+"&magno="+Math.random();

   args[0] = element;   
   args[1] = targetDB;
   args[2] = showMode;
   
   if(showMode == SUGTERM_SHOW_MODE_MATCH)
      XMLHTTPAsyncResult(xmlhttp, url, ProcSugTermInMatch, args, postData);
   else if(showMode == SUGTERM_SHOW_MODE_NO_MATCH)
      XMLHTTPAsyncResult(xmlhttp, url, ProcSugTermInNoMatch, args, postData);
   
   return true;
}

/* diatango, 060420, callback function of xmlhttp for TryToGetSugTerm() */
function ProcSugTermInMatch(result, args)
{
   var e;   
   var str;
   var url;   
   var term;   

   if(result.indexOf("OK\n") != 0)
      return false;
   
   term = TrimStr(result.substr(3))   
   str = "&nbsp;&nbsp;";
   str += TEXT_QUERY_SUGTERM_1;
   str += " <span class=\"result_sugterm\" onclick=\"SugTermSubmit('"+term+"', '"+args[1]+"');\">"+term+"</span>&nbsp;";
   str += TEXT_QUERY_SUGTERM_2;   
   
   /* show result */   
   e = document.getElementById(args[0]);
   e.innerHTML = str;   
}

/* diatango, 060424, callback function of xmlhttp for TryToGetSugTerm() */
function ProcSugTermInNoMatch(result, args)
{
   var e;   
   var str;
   var url;   
   var term;   

   if(null == result)
      return false;

   if(result.indexOf("OK\n") != 0)
      return false;
   
   term = TrimStr(result.substr(3));
   str = TEXT_QUERY_NO_MATCH_MSG_4;
   str += " <span class=\"result_sugterm\" onclick=\"SugTermSubmit('"+term+"', '"+args[1]+"');\">"+term+"</span>&nbsp;";
   str += TEXT_QUERY_NO_MATCH_MSG_5;
   str += "<br>";
   
   /* show result */   
   e = document.getElementById(args[0]);
   e.innerHTML = str;   
}

/* diatango, 060421, submit for sugterm */
function SugTermSubmit(term, targetDB)
{
   document.forms["query_form"].q.value = term;
   if(targetDB != "ALL")
      document.forms["actdb"] = targetDB;
   document.forms["query_form"].submit( );
}

function QueryInDateGroup(type, year, month)
{
   var fDateStr = document.forms["query_form"].fdate;
   var groupDateType = document.forms["query_form"].dtype;
   var filterDateStart = new String( );
   var filterDateEnd = new String( );
   var newDate;

   switch(type)
   {
      case "none":
         groupDateType.value = "0";
         break;
      case "year":
         newDate = new Date(year, 0, 1)
         filterDateStart = SResultGetDateStr(newDate.getFullYear(), newDate.getMonth()+1, newDate.getDate());

         newDate = new Date(year, 11, 31)
         filterDateEnd = SResultGetDateStr(newDate.getFullYear(), newDate.getMonth()+1, newDate.getDate());
         groupDateType.value = "1";
         break;
      case "month":
         newDate = new Date(year, month-1, 1)
         filterDateStart = SResultGetDateStr(newDate.getFullYear(), newDate.getMonth()+1, newDate.getDate());

         newDate = new Date(year, month, 0)
         filterDateEnd = SResultGetDateStr(newDate.getFullYear(), newDate.getMonth()+1, newDate.getDate());
         groupDateType.value = "1";
         break;
      case "older":
         newDate = new Date(1900, 0, 1)
         filterDateStart = SResultGetDateStr(newDate.getFullYear(), newDate.getMonth()+1, newDate.getDate());

         newDate = new Date(year-1, 11, 31)
         filterDateEnd = SResultGetDateStr(newDate.getFullYear(), newDate.getMonth()+1, newDate.getDate());
         groupDateType.value = "2";
         break;
      default:
         groupDateType.value = "0";
         break;
   }

   if(groupDateType.value == "0")
      fDateStr.value = "";
   else
      fDateStr.value = TrimStr(filterDateStart+" "+filterDateEnd);
   document.forms["query_form"].submit( );
}

function QueryInGroup(type, value)
{
   var filterObj;
   var filterStr;
   var fCheckBound = false;

   switch(type)
   {
      case "filetype":
         filterObj = document.forms["query_form"].ftype;
         break;
      case "author":
         filterObj = document.forms["query_form"].fauthor;
         break;
      case "theme":
         filterObj = document.forms["query_form"].ftheme;
         fCheckBound = true;
         break;
      case "cake":
         filterObj = document.forms["query_form"].fcake;
         fCheckBound = true;
         break;
      case "service":
         filterObj = document.forms["query_form"].fservice;
         fCheckBound = true;
         break;
      default:
         alert(ERR_INVALID_FILTER_TYPE + ": " + type);
         return;
   }

   if(filterObj.value.toLowerCase().indexOf(value.toLowerCase()) < 0)
   {
      if(fCheckBound == true)
      {
         /* check if the dc category filter count exceeds the maximum */
         var filterCodeStr = filterObj.value;
         var filterCodeResult = filterCodeStr.split(" ");
         if(filterCodeResult.length >= MAX_DCCTG_FILTER_BOUND)
         {
            alert(MSG_DCCTG_FILTER_BOUND);
            return;
         }
      }
      
      filterStr = filterObj.value + " " + value;
      filterObj.value = TrimStr(filterStr);
   }

   document.forms["query_form"].submit( );
}

function ClearFilter(type)
{
   var filterObj;

   switch(type)
   {
      case "date":
         filterObj = document.forms["query_form"].fdate;
         break;
      case "size":
         filterObj = document.forms["query_form"].fsize;
         break;
      case "filetype":
         filterObj = document.forms["query_form"].ftype;
         break;
      case "author":
         filterObj = document.forms["query_form"].fauthor;
         break;
      case "theme":
         filterObj = document.forms["query_form"].ftheme;
         break;
      case "cake":
         filterObj = document.forms["query_form"].fcake;
         break;
      case "service":
         filterObj = document.forms["query_form"].fservice;
         break;
      default:
         alert(ERR_INVALID_FILTER_TYPE + ": " + type);
         return;
   }

   filterObj.value = "";
}

function ClearAllFilter()
{
  ClearFilter("date");
  ClearFilter("size");
  ClearFilter("filetype");
  ClearFilter("author");
  ClearFilter("theme");
  ClearFilter("cake");
  ClearFilter("service");
}

function QueryInDCPath(type, value)
{
   var filterObj;
   var filterObj;

   /* clear keyword */
   document.forms["query_form"].q.value = "";

   /* clear filters */
   ClearAllFilter();

   switch(type)
   {
      case "theme":
         filterObj = document.forms["query_form"].ftheme;
         break;
      case "cake":
         filterObj = document.forms["query_form"].fcake;
         break;
      case "service":
         filterObj = document.forms["query_form"].fservice;
         break;
      default:
         alert(ERR_INVALID_FILTER_TYPE + ": " + type);
         return;
   }
   
   filterObj.value = value;

   document.forms["query_form"].submit( );
}

function QueryInClearFilter(type)
{
   if(type != "dcctg")
      ClearFilter(type);
   else
   {
      ClearFilter("theme");
      ClearFilter("cake");
      ClearFilter("service");
   }

   document.forms["query_form"].submit( );
}

function SResultGetDateStr(year, month, day)
{
   var dateStr;

   dateStr = year + ((month<=9)?"0":"") + month + ((day<=9)?"0":"") + day;

   return dateStr;
}

function ShowHint(e, fullname)
{
   if(document.all)
      e = event;
      
   var x = e.clientX + document.getElementsByTagName("BODY")[0].scrollLeft+5;
   var y = e.clientY + document.getElementsByTagName("BODY")[0].scrollTop+5;
   

   window.clearTimeout(_hintDelay);
   _hintDelay = window.setTimeout("_fullName.Show('<div class=\"hint\">"
                                  + fullname 
                                  + "</div>', null, " + x + ", " + y
                                  + ")", 1000);
   _isHintShow = true;
}

function HideHint()
{
   clearTimeout(_hintDelay);
   _fullName.Hide();
   _isHintShow = false;
}

function GetFilterInfo(fdate, fsize, ftype, fauthor, fthemeDis, fthemeFull, fcakeDis, fcakeFull, fserviceDis, fserviceFull)
{
   var fdateInfo = new String();
   var fsizeInfo = new String();
   var filterInfo = new String();
   var beginDate = new String();
   var endDate = new String();
   var fsizeRange;
   var fthemeStr;
   var fcakeStr;
   var fserviceStr;

   fdate = TrimStr(fdate);
   fsize = TrimStr(fsize);

   if(fdate != "")
   {
      beginDate = fdate.substring(0, 4) + '/' + fdate.substring(4, 6) + '/' + fdate.substring(6, 8);
      endDate = fdate.substring(9, 13) + '/' + fdate.substring(13, 15) + '/' + fdate.substring(15, 17);
      fdateInfo = beginDate + ' - ' + endDate;
   }

   if(fsize != "")
   {
      fsizeRange = fsize.split(" ");
      if(fsizeRange.length >= 2)
      {
         if(fsizeRange[0].charAt(0).toLowerCase() == "0")
            fsizeInfo = TEXT_QUERY_SIZE_NO_LIMIT + " - ";
         else if(fsizeRange[0].charAt(0).toLowerCase() != "b")
            fsizeInfo = fsizeRange[0].substring(1, fsizeRange[0].length) + fsizeRange[0].charAt(0) + 'B - ';
         else
            fsizeInfo = fsizeRange[0].substring(1, fsizeRange[0].length) + 'bytes - ';

         if(fsizeRange[1].charAt(0).toLowerCase() == "0")
            fsizeInfo = fsizeInfo + TEXT_QUERY_SIZE_NO_LIMIT;
         else if(fsizeRange[1].charAt(0).toLowerCase() != "b")
            fsizeInfo = fsizeInfo + fsizeRange[1].substring(1, fsizeRange[1].length) + fsizeRange[1].charAt(0) + 'B';
         else
            fsizeInfo = fsizeInfo + fsizeRange[1].substring(1, fsizeRange[1].length) + 'bytes';
      }
   }

   if((fdateInfo != "") && (fsizeInfo != ""))
      filterInfo = fdateInfo + ' , ' + fsizeInfo;
   else
      filterInfo = fdateInfo + fsizeInfo;

   if(ftype != "")
   {
      if(filterInfo != "")
         filterInfo = filterInfo + " , <span class='body13grayb'>" + TEXT_QUERY_TYPE_FILTER + "</span>: " + ftype;
      else
        filterInfo = "<span class='body13grayb'>" + TEXT_QUERY_TYPE_FILTER + "</span>: " + ftype;
   }

   if(fauthor != "")
   {
      if(filterInfo != "")
         filterInfo = filterInfo + " , <span class='body13grayb'>" + TEXT_QUERY_AUTHOR_FILTER + "</span>: " + fauthor;
      else
        filterInfo = "<span class='body13grayb'>" + TEXT_QUERY_AUTHOR_FILTER + "</span>: " + fauthor;
   }

   if(fthemeDis != "")
   {
      fthemeStr = '<span onMouseOver="ShowHint(event, \'' + fthemeFull + 
                   '\');" onMouseOut="HideHint();" onFocus="ShowHint(event, \'' + 
                   fthemeFull + '\');" onBlur="HideHint();">' + fthemeDis + '</span>';
      if(filterInfo != "")
         filterInfo = filterInfo + " , <span class='body13grayb'>" + TEXT_QUERY_DC_THEME + "</span>: " + fthemeStr;
      else
        filterInfo = "<span class='body13grayb'>" + TEXT_QUERY_DC_THEME + "</span>: " + fthemeStr;
   }

   if(fcakeDis != "")
   {
      fcakeStr = '<span onMouseOver="ShowHint(event, \'' + fcakeFull + 
                   '\');" onMouseOut="HideHint();" onFocus="ShowHint(event, \'' + 
                   fcakeFull + '\');" onBlur="HideHint();">' + fcakeDis + '</span>';
      if(filterInfo != "")
         filterInfo = filterInfo + " , <span class='body13grayb'>" + TEXT_QUERY_DC_CAKE + "</span>: " + fcakeStr;
      else
        filterInfo = "<span class='body13grayb'>" + TEXT_QUERY_DC_CAKE + "</span>: " + fcakeStr;
   }

   if(fserviceDis != "")
   {
      fserviceStr = '<span onMouseOver="ShowHint(event, \'' + fserviceFull + 
                   '\');" onMouseOut="HideHint();" onFocus="ShowHint(event, \'' + 
                   fserviceFull + '\');" onBlur="HideHint();">' + fserviceDis + '</span>';
      if(filterInfo != "")
         filterInfo = filterInfo + " , <span class='body13grayb'>" + TEXT_QUERY_DC_SERVICE + "</span>: " + fserviceStr;
      else
        filterInfo = "<span class='body13grayb'>" + TEXT_QUERY_DC_SERVICE + "</span>: " + fserviceStr;
   }

   if(filterInfo != "")
      filterInfo = '(<span class="body13grayb">' + TEXT_QUERY_FILTER_INFO + "</span>" + filterInfo + ')';

   document.write(filterInfo);
}

/* decode "&quot;", "&#39;", "&#92;", "&lt;", "&gt;" */
function DecodeHtmlEntity(str)
{
   str = str.replace(/&quot;/g, "\"");
   str = str.replace(/&#39;/g, "'");
   str = str.replace(/&#92;/g, "\\");
   str = str.replace(/&lt;/g, "<");
   str = str.replace(/&gt;/g, ">");
   return str;
}

function ChkSess()
{
   var conn = XMLHTTPInit();
   var result = XMLHTTPSyncResult(conn, _sessChkUrl + "?magno=" + Math.random());

   if(null != result)
   {
      if(("OK\r\n" == result.substr(0, 4) || "OK\n" == result.substr(0, 3))) 
         window.setTimeout(ChkSess, 60000);
      else if(("ER\r\n" == result.substr(0, 4) || "ER\n" == result.substr(0, 3))) 
         location.href = param['CGIPrefix'] + "admin/sessmgr.cgi?act=logout";
   }
   return;
}

//-->

