<!--
//File Name: ls-home.js
//Purpose: This is used for quick catalogue search on library's homepage
//Version: 1.0
//Author:  Sharen Chen (27/03/2009)
//			
//Date of update: 27/03/2009

//Quick catalogue search
//------------------------------------------------------
//Codes from OPAC catalogue basic search form
function doClear() {
     document.sform.LINE1.value = "";
     document.sform.fields1.options[0].selected = true;
     document.sform.OPERATOR1.options[0].selected = true;
     document.sform.LINE1.focus();
}


function processTerms (line, operator) {
   // splits the line based on space and inserts the operator (AND/OR) between each term
     var newString = "";
     var tempArray = line.split(" ");
     var tempIndex = 0;
     while (tempIndex < tempArray.length) {
       if (tempArray[tempIndex] != "") {
         if (newString == "") {
           newString += tempArray[tempIndex];
         } else {
           newString += " " + operator + " " + tempArray[tempIndex];
         }
       }
       tempIndex++;
     }
     return (newString);
}


function buildSearch (operator, searchText, field) {
   
     var tempText = "";
     switch (operator) {
       case "AND":  // all
         if (field == "") {
           tempText += "(" + processTerms(searchText, "AND") + ")";
         } else {
           tempText += "(" + processTerms(searchText, "SAME") + ")." + field + ".";
         }
         break;
       case "OR":  // any
         if (field == "") {
           tempText += "(" + processTerms(searchText, "OR") + ")";
         } else {
           tempText += "(" + processTerms(searchText, "OR") + ")." + field + ".";
         }
         
         break;
       case "ADJ0":  // phrase
         if (field == "") {
           tempText += "(\"" + searchText + "\").";
         } else {
           tempText += "(" + field + " $ \"" + searchText + "\")";
         }
         break;
       case "SW":  // starts with
         if (field == "") {
           tempText += "(\"" + searchText + "\"*)";       
         } else {
           tempText += "(" + field + " = \"" + searchText + "\"*)";       
         }
         break;
       case "MA":   // exact match
         if (field == "") {
           tempText += "(\"" + searchText + "\")";       
         } else {
           tempText += "(" + field + " = \"" + searchText + "\")";       
         }
         break;
     }  
     
     return (tempText);
   
}


function doSearch() {
     var searchString = "";
     // strip leading and trailing spaces from search string
     tempTerm = document.sform.LINE1.value; 
     tempTerm = (tempTerm.replace(/^\ +/,'')).replace(/\ +$/,'');
     document.sform.LINE1.value = tempTerm;
   
     if (document.sform.LINE1.value != "") {
       searchString += buildSearch(document.sform.OPERATOR1.value, document.sform.LINE1.value, document.sform.fields1.value);
     }
   
     document.sform.SRCHAD.value = searchString; 
     document.sform.submit();
}
// END of codes from OPAC catalogue basic search form
//------------------------------------------------------




//------------------------------------------------------
// Functions for tabbed content boxes (Catalogue search and notices)
function noticebox_Display(passid) {
for(var i = 1; i <= 3; i++) {
  if(i == passid) {
    document.getElementById('ntab'+i).className = "selected";
    document.getElementById('ndiv'+i).style.display = "block";
    }
  else {
    document.getElementById('ntab'+i).className = "unselected";
    document.getElementById('ndiv'+i).style.display = "none";
    }
  }
}


function catabox_Display(passid) {
for(var i = 1; i <= 2; i++) {
  if(i == passid) {
    document.getElementById('ctab'+i).className = "selected";
    document.getElementById('cdiv'+i).style.display = "block";
    }
  else {
    document.getElementById('ctab'+i).className = "unselected";
    document.getElementById('cdiv'+i).style.display = "none";
    }
  }
}


function noticebox_Initialize() {
var idlist = new Array();
var idlist2 = new Array();
for(var i = 1; i <= 3; i++) {
  idlist.push('ntab'+i);
  idlist.push('ndiv'+i);
  }
for(var i = 1; i <= 2; i++) {
  idlist2.push('ctab'+i);
  idlist2.push('cdiv'+i);
  }
noticebox_Display(1);
catabox_Display(1);
}
//------------------------------------------------------
//-->

