// Copyright Dockgreen Ltd. 2003

var curTbl;

function build(){
  window.status="Building...";
  var ti=0;
  for(var tName in DS){
    var t=DS[tName];
    t.Index=[];
    t.Name=tName;
    var hasKey=t.CType[0]==KEY;
    var d=t.Data;
    for(var i in d){
      d[i]=d[i].split("|");
      if(hasKey) t.Index[d[i][0]]=i;
      else t.Index[i]=i;
    }
  }
  curTbl=t;
  ma=MSDS.split(' ');
  MS={};
  for(var i in ma) MS[ma[i]]=1;
  shoFltI(colIndex(curTbl,"ProdGroup"));
  window.status="Done";
}

function shoFltI(ci){
  var oFlt=document.f.flt.options;
  oFlt[0]=new Option("All Products");
  oFlt[0].value=-1;
  fltCol=ci;
  var ltn=curTbl.CName[ci];
  var lt=DS[ltn];
  var li=colIndex(lt,ltn);
  if(!lt || li<0) return;
  var fi=1;
  for(var i in lt.Data){
    oFlt[fi]=new Option(lt.Data[i][li]);
    oFlt[fi++].value=lt.Data[i][0];
  }
  oFlt.selectedIndex=0; //ALL=0
  shoLst(oFlt[oFlt.selectedIndex].value);
}

function shoLst(k){
  var oLst=document.f.lst.options;
  var d=curTbl.Data;
  var c=colIndex(curTbl,curTbl.Name);
  Q=filter(d,fltCol,k);
  for(var i in Q) oLst[i]=new Option(d[Q[i]][c]);
  oLst.length=Q.length;
}

function shoRow(qr){
  if(qr<0 || qr>=Q.length){
    curRow=curTbl.Data[0];
    return;
  }
  var r=Q[qr];
  curRow=curTbl.Data[r];
  html=curTbl.Template;
  for(var i in curRow){
    var re=new RegExp("%"+curTbl.CName[i],"gi");
    html=html.replace(re,lookup(curTbl,curRow,i))
  }
  sho(html);
//  alert(MSDS.indexOf(curRow[0]));
  document.f.msds.disabled=!MS[curRow[0]];
  document.f.spec.disabled=!MS[curRow[0]+'s'];
}

function sho(s){
//alert("SHOW "+s);
	doc=frames[0].document;
	doc.open();
	doc.writeln(s);
	doc.close();
}

function lookup(t,r,c){
  var v=r[c];
  var n=t.CName[c];
  var lt,dr;
  if(t.CType[c]==BOOLEAN) v=(v>0)?"Yes":"No";
  else if(t.CType[c]==TEXT) while(v.indexOf('\n')>0) v=v.replace("\n","<p>");
  else if(t.CType[c]==MLOOKUP && (lt=DS[n])) v=phrases(lt,v);
  else if(t.CType[c]&LOOKUP && (lt=DS[n])  && (dr=lt.Data[lt.Index[v]])){
    var ci=colIndex(lt,lt.Name);
    if(ci>=0) v=dr[ci];
  }
  return v==""?"-":v; //&nbsp
}

function phrases(lt,v){
  if(v<="") return v;
  var dr,v1="<ul>";
  var ci=colIndex(lt,lt.Name);
  var a=v.split(',');
  for(var i in a) if(dr=lt.Data[lt.Index[a[i]]]) v1+="<li>"+dr[ci];
  return v1+"</ul>";
}

function colIndex(t,cn){
  if(t && t.CName) for(var i in t.CName) if(t.CName[i]==cn) return i;
  return -1;
}

function filter(d,c,x){
  var a=[], k=0;
  for(var i in d) if(x<0||d[i][c]==x) a[k++]=i;
  return a;
}

function shoms(id){
  //if(parent.frames[2].f1.eid)
  window.open("epc/msds/"+id+".pdf",id,"width=600 height=500 resizable");
  //else alert("You must login first!");
}