//ressearch.js - this is JavaScript file of the resource's search engine

// Resource Search Criteria (RSC):
var WordAny = "";
var Nolinks = "";

var initial = 0;
var medium = 1;
var high = 2;

//var spacer = " ----------- ";
var RSC_Objects = new Array(); 
var RSC_PhpysFields = new Array(); 

var cards = new Array();
var rate = new Array();

function classCard(){
    this.name = "";
    this.url = "";
    this.img = "";
    this.objects;
    this.level;
    this.physFields;
    this.comments = "";
}

function setsArray(arr) {
  arr.sort();
  if (arr.length>2)
  for (i=0; i<arr.length-1; i++) 
    for (j=1; arr[i]==arr[i+j];j++)
      arr[i+j] = "";
  arr.sort();
  for (; arr[0]=="";) arr.shift();
}

function initRSCarrays() {
   RSC_Objects.push(WordAny);
   RSC_PhpysFields.push(WordAny);
   for (i=0; i<cards.length; i++) {
       for (j=0; j<cards[i].objects.length; j++) RSC_Objects.push(cards[i].objects[j]);
       for (j=0; j<cards[i].physFields.length; j++) RSC_PhpysFields.push(cards[i].physFields[j]);
    if (cards[i].img=="") cards[i].img = "../images/noimg.gif";
   }
       setsArray(RSC_Objects);
       setsArray(RSC_PhpysFields);
}
//Resource pages must have:
//         ID="selectPhF"
//         ID="selectLevel"
//         ID="selectObj"
function drawSearcher(){
  initRSCarrays();
  var s='<select name="selectObj">';
   for (i=0; i<RSC_Objects.length; i++) s+='<option value="'+i+'">'+RSC_Objects[i]+'</option>';
    document.getElementById("selectObj").innerHTML = s + '</select>';
   s=' <select name="selectLevel" ><option value="-1">'+WordAny+'</option>';
   s+='<option value="'+initial+'">'+Level[initial]+'</option>';
   s+='<option value="'+medium+'">'+Level[medium]+'</option>';
   s+='<option value="'+high+'">'+Level[high]+'</option>';
    document.getElementById("selectLevel").innerHTML = s + '</select>';
   s='<select name="selectPhF" >';
   for (i=0; i<RSC_PhpysFields.length; i++) s+='<option value="'+i+'">'+RSC_PhpysFields[i]+'</option>';
    document.getElementById("selectPhF").innerHTML = s + '</select>';    
}

function rateCards(){
document.getElementById("Results").innerHTML = "<p>Wait please</p>";
    edl = parseInt(document.frm.selectLevel.value);
    phf = parseInt(document.frm.selectPhF.value);
    obj = parseInt(document.frm.selectObj.value);
    var max = 3;
    var min;
    for (i=0; i<cards.length; i++) {
      min = 0;
      //Rate by
      // object 
       for (j=0; j<cards[i].objects.length; j++) if ((cards[i].objects[j]==RSC_Objects[obj])||(obj==0)) {
         min++;
         break;
       }
      // level
       if ((cards[i].level==edl)||(edl<0)) {
         min++;
       }
      // physFields 
       for (j=0; j<cards[i].physFields.length; j++) if ((cards[i].physFields[j]==RSC_PhpysFields[phf])||(phf==0)) {
         min++;
         break;
       }
      rate[i]=Math.round(100*min/max);
    }
}

//Resource pages must have <DIV ID="Results"></DIV>
function drawResults(){
   var s="";
   var res = '<center>';
   for (i=0; i<rate.length; i++)
     if (rate[i]==100) {
       s = ''
       res += '<table width="90%"  cellpadding="4" cellspacing="0" style="border: thin solid Black;"><tr>'+
             '<td style="height: 30; background-image:url(../images/search_fon.gif);"><font size=4 color="red">&#155;&#155;&#155;</font>'+
             '&nbsp;<strong>';
       if (cards[i].url=="") {res += '<a href="javascript:window.alert(Nolinks)">';}
       else {res += '<a href="' + cards[i].url + '" target="_blank">';}
       res += cards[i].name + '</a></strong></td></tr>' +
             '<tr><td style="border-top: thin solid Black;"><img src="' + cards[i].img + '" hspace="10" vspace="10" align="left">' + 
             cards[i].comments + '</td></tr></table><br>';
       
     }
    document.getElementById("Results").innerHTML = res + '</center>';
}
