//Search database
var page;
var onpage;
var query;
var entries;
var whole;
var ln=new Array(
'products_bf-321_F.asp',
'products_bf-601_F.asp',
'products_bf-800_F.asp',
'products_bf-810_F.asp',
'products_bf-812_F.asp',
'products_bf-816_F.asp',

'products_bf-1284_F.asp',
'products_bf-3001_F.asp',
'products_bf-3300_F.asp',
'products_bf-3301_F.asp',
'products_bf-3311_F.asp',
'products_bf-3350_F.asp',
'products_bf-3351_F.asp',
'products_bf-3355_F.asp',
'products_bf-3356_F.asp',
'products_bf-3357_F.asp',
'products_bf-3358_F.asp',
'products_bf-3359_F.asp',
'products_bf-3360_F.asp',
'products_bf-3361_F.asp',
'products_bf-3362_F.asp',
'products_bf-3363_F.asp',
'products_bf-3366_F.asp',
'products_bf-3370_F.asp',
'products_bf-3379_F.asp',

'products_bf-4001_F.asp',
'products_bf-4005_F.asp',
'products_bf-4302_F.asp',
'products_bf-4700_F.asp',
'products_bf-4901_F.asp',
'products_bf-4902_F.asp',
'products_bf-4903_F.asp',
'products_bf-4911_F.asp',

'products_bf-7011_F.asp',
'products_bf-7312_F.asp',
'products_bf-7313_F.asp',
'products_bf-8018_F.asp',
'products_bf-8019_F.asp',
'products_bf-8028_F.asp',
'products_bf-8029_F.asp',

'products_bf-601_F.asp');



var ds=new Array(
'BF-321  USB 2.0 Ethernet Adapter',
'BF-601  USB to PS/2 Adapter',
'BF-800  USB to Serial Adapter (DB25)',
'BF-810  USB to Serial Adapter (DB9)',
'BF-812  USB to Serial Adapter (DB9)',
'BF-816  USB to Serial Adapter (DB9) 2 Port',

'BF-1284  USB to Parallel Printer Adapter',
'BF-3001  USB 2.0 Extension Cable',
'BF-3300  Video DVI Dual Link Extender Adapter',
'BF-3301  Video DVI Single Link Extender Adapter',
'BF-3311  HDMI Single Link Extender Adapter',
'BF-3350  SVGA 2-to-1 Switch',
'BF-3351  SVGA 1-to-2 Splitter',
'BF-3355  DVI Single Link 1-to-2 Splitter',
'BF-3356  DVI Single Link 3-to-1 Switch',
'BF-3357  SVGA 1-to-4 Splitter',
'BF-3358  SVGA 3-to-1 Switch with Audio',
'BF-3359  SVGA 1-to-3 Splitter with Audio',
'BF-3360  SVGA 1-to-4 Splitter with Audio',
'BF-3361  SDVI Single Link& Audio 3-to-1 Switch With Remote',
'BF-3362  HDMI 3-to-1 Switch With Remote',
'BF-3363  DVI Single Link 1-to-3 Splitter with Audio',
'BF-3366  HDMI Splitter 1 to 3',
'BF-3370  DVI Single Link Repeater',
'BF-3379  HDMI Extender over CAT',

'BF-4001  USB 2.0 Slim 4 Port Hub',
'BF-4005  USB 2.0 4 Port Mini Hub',
'BF-4302  USB 2.0 4 Port Mini Hub',
'BF-4700  USB 2.0 Desktop 7 Port Hub',
'BF-4901  USB A / B Switch',
'BF-4902  USB Extension over CAT5',
'BF-4903  USB to External Serial-ATA (eSATA) Adapter',
'BF-4911  VGA Extender over CAT',

'BF-7011  USB IrDA Adapter',
'BF-7312  USB 2.0 File Transfer Cable',
'BF-7313  Easy Transfer Cable for Windows Vista',
'BF-8018  Bluetooth v2.0 Class-1 EDR USB Dongle',
'BF-8019  Bluetooth v2.0 Class-2 EDR USB Dongle',
'BF-8028  Bluetooth v2.0 Class-1 EDR USB Dongle',
'BF-8029  Bluetooth v2.0 Class-2 EDR USB Dongle',

'BF-601  USB to PS/2 Adapter');




var kw=new Array(
'BF-321+BF321+USB+Ethernet+Adapter',
'BF-601+BF601+PS/2+Adapter',
'BF-800+BF800+USB+Serial+Adapter+DB25',
'BF-810+BF810+USB+Serial+Adapter+DB9',
'BF-812+BF812+USB+Serial+Adapter+DB9',
'BF-816+BF816+USB+Serial+Adapter+DB9+2PORT',

'BF-1284+BF1284+USB+Parallel+Printer+Adapter',
'BF-3001+BF3001+USB+Extension+CABLE',
'BF-3300+BF3300+Video+DVI+Dual+Link+Extender+Adapter',
'BF-3301+BF3301+Video+DVI+Single+Link+Extender+Adapter',
'BF-3311+BF3311+HDMI+Single+Link+Extender+Adapter',
'BF-3350+BF3350+SVGA+2to1+Switch',
'BF-3351+BF3351+SVGA+1to2+Splitter',
'BF-3355+BF3355+DVI+Single+Link+1to2+Splitter',
'BF-3356+BF3356+DVI+Single+Link+3to1+Switch',
'BF-3357+BF3357+SVGA+1to4+Splitter',
'BF-3358+BF3358+SVGA+3to1+Switch+Audio',
'BF-3359+BF3359+SVGA+1to3+Splitter+Audio',
'BF-3360+BF3360+SVGA+1to4+Splitter+Audio',
'BF-3361+BF3361+DVI+Single+Link+Audio+3to1+Switch+Remote',
'BF-3362+BF3362+HDMI+3to1+Switch+Remote',
'BF-3363+BF3363+DVI+Single+Link+1to3+Splitter+Audio',
'BF-3366+BF3366+HDMI+Splitter+1to3',
'BF-3370+BF3370+DVI+Single+Link+Repeater',
'BF-3379+BF3379+HDMI+Extender+CAT',

'BF-4001+BF4001+USB2.0+Slim+4Port+Hub',
'BF-4005+BF4005+USB2.0+4Port+Mini+Hub',
'BF-4302+BF4302+USB2.0+4Port+Mini+Hub',
'BF-4700+BF4700+USB2.0+Desktop+7Port+Hub',
'BF-4901+BF4901+USB+A/B+Switch',
'BF-4902+BF4902+USB+Extension+CAT5',
'BF-4903+BF4903+USB+External+Serial+ATA+eSATA+Adapter ',
'BF-4911+BF4911+VGA+Extender+CAT',

'BF-7011+BF7011+USB+IrDA+Adapter',
'BF-7312+BF7312+USB2.0+File Transfer+Cable',
'BF-7313+BF7313+Easy Transfer+Cable+Vista',
'BF-8018+BF8018+Bluetooth+v2.0+Class-1+EDR+USB+Dongle',
'BF-8019+BF8019+Bluetooth+v2.0+Class-2+EDR+USB+Dongle',
'BF-8028+BF8028+Bluetooth+v2.0+Class-1+EDR+USB+Dongle',
'BF-8029+BF8029+Bluetooth+v2.0+Class-2+EDR+USB+Dongle',

'BF-601+BF601+PS/2+Adapter');

var p='+';
 
function DisplayVector (e,nline,val)
{

var nStr=new String (ds[e]);
var re=new RegExp(val,"i");
var str=nStr.replace(re,'<b>'+val+'</b>');
var url=ln[e].substring(ln[e].lastIndexOf(p)+1,ln[e].length);
//Draw result
parent.main.document.write('\
<tr><td>\
<dl><b><font color="#5795da">'+(nline)+'</font></b>.&nbsp; '+str+'<img src="images/next-img.jpg" align="absmiddle"><a href="'+url+'">'+url+'</a></dl></td></tr>\
');

return true;
}
function pc(n){var a=ln[n].indexOf(p);return ln[n].substring(0,a);}

function WriteHeaderOfPage()

{
parent.main.document.write ('<HTML>\
<HEAD>\
<TITLE>Search</TITLE>\
<style>\
body,table {  \
font-family: Verdana, Arial, Helvetica, sans-serif; \
font-size: 9pt; \
color: #000066\
}\
</style> \
</HEAD> \
<BODY TEXT=#000066 link="#c69840" vlink="#c69840" scrollbar-face-color: "#6DCBCD" scrollbar-highlight-color: "#ffffff" scrollbar-shadow-color: "#48B2B5" scrollbar-3dlight-color: "#78C4D4" scrollbar-arrow-color: "#ffffff" scrollbar-darkshadow-color: "#ffffff" scrollbar-track-color: "#EBF9FF" scrollbar-base-color: "#48B2B5" onLoad="javascript: init();">\
<TABLE ALIGN=CENTER WIDTH=600 BORDER=0 CELLSPACING=1>\
');
}

function WriteTrailer()
{
parent.main.document.write ('\
</TABLE>\
</td></tr></table>\</BODY>\
</HTML>\
');
}


function ManageEntries (vector, val)
{
  if (vector.length==0)
  {
     alert (" Your search ,did not match any documents!");
  }
  //else
  {
	entries=vector.length;  
    WriteHeaderOfPage();
    window.status="<<<準備中...>>>";
   
	 	 parent.main.document.write(' <br> <tr> <td align=left bgcolor="#b0bed6">　Search： <b>'+val+'</b> &nbsp;Showing <b>' + ((page-1)*onpage+1)+ '-' + (page*onpage < vector.length ? page*onpage : vector.length) + '</b> For <b>'+vector.length+'</b></td></tr><tr height=10><td></td></tr>');
    // show results
    var i=(page-1)*onpage;
    n=vector.length;
    if (n != 0)
    {
      while (i<n && i<page*onpage)
      {
        DisplayVector(vector[i],i+1,val);
        i++;
      }
    }
    WriteTrailer();
  }
  window.status="<<<Search Results for>>>";
}

//
// main search function
//
function SearchArray (init_strng, wholewords)
{
query=init_strng;
whole=(new Boolean(wholewords)).toString();
var i=0; var j=0; var r=0;
var and_search=0;
var stop_search=0;
var array2= new Array();
var flags= new Array();


var pairs = init_strng.split(" and ");

  if (pairs.length>1) and_search=1;
  else pairs = init_strng.split(" or ");
  if (pairs.length<2) 
  {
  pairs = init_strng.split(" ");
  and_search=1;
  }

  while (i<(kw.length)) {

	if (and_search)
	{
	     for (var l=0; l<pairs.length; l++)
	     {
		   flags[l]=0;
	     }
	}
	     nStr=new String (kw[i]);
	     stop_search=0;
	     for (var l=0; l<pairs.length; l++)
	     {
			// substring search
		  	  	if (!wholewords)
		 	    	idx=nStr.toLowerCase().indexOf(pairs[l]);
		  	// whole words search								
				else
				{
				  idx=-1;
				  var words=nStr.toLowerCase().split(p);
				  for (var z=0; z<words.length; z++)
				  {
				     if (pairs[l]==words[z])
				     	{
							idx=0;
							break;
						}
				  }
				}
	 	    if (idx != -1)
	 	    {
   	 		flags[l]=1;
   	 		if (and_search==0)
   	 		{
   	 		      array2[j]=i;	j++;
   	 		      if (j==100) { alert("最多只顯示100筆紀錄 !"); stop_search=2; break; }
   	 		      i++;
   			      stop_search=1;
   			      break;
   			}
		    }
	    if (stop_search) break;
 	}

     if (stop_search==2) break;
     if (stop_search) continue;

     if (and_search)
     {
	     stop_search=0;
	     for (var l=0; l<pairs.length; l++)
	     {
		if (flags[l]==0)
		{
			stop_search=1;
			break;
		}
	     }
      	     if (stop_search==0)
  	     {
 		array2[j]=i;	j++;
	 		      if (j==100) { alert("最多只顯示100筆紀錄 !"); break; }
 	     }
     }
    i++;
  }
  return array2;
}


function Search (qs)
{
	var val;				
	var wholewords;   
  window.status="<<<搜尋中...請等待>>>";
  // parse query string	   
	if (qs.charAt(0)=='?')
		qs=qs.substr(1);
						   
  var arr=qs.split('&');
	for (var i=0;i<arr.length;++i)
	{
		if (arr[i].indexOf('srchname=')==0)
			val = arr[i].substr(9);
		if (arr[i].indexOf('wholewords=')==0)
			wholewords = (new Boolean(arr[i].substr(11).indexOf('true')==0)).valueOf();
		if (arr[i].indexOf('page=')==0)
			page = parseInt(arr[i].substr(5));
		if (arr[i].indexOf('onpage=')==0)
			onpage = parseInt(arr[i].substr(7));
	}

  if (val.length==0 || val.value==" ")
  {
	alert ("您得輸入資料 !");
  }
  else
  {
		valor=SearchArray(val.toLowerCase(), wholewords);
		parent.main.document.close();
		ManageEntries (valor, val);
		WritePagination();
  }
}
function WritePagination()
{
		parent.main.document.write("<table rows='1' cols='1' align='center' width='95%' border='0'>");
		parent.main.document.write("<tr valign='center'><td align='center'>");
		if (page>1)
			parent.main.document.write("<a style=\"TEXT-DECORATION: none\" target=_top href=" + GotoPageUrlString(page-1) + ">Previous</a> ");
		parent.main.document.write("<b>[</b>");
		var counter	= 1;
		
		for(;counter<=Math.ceil(entries/onpage);counter++)
		{
			if (counter != page) parent.main.document.write("&nbsp;<a style=\"TEXT-DECORATION: none\" target=_top href=\"" + GotoPageUrlString(counter)+"\">" + counter+"</a>");
			else parent.main.document.write("&nbsp;<b>" + counter + "</b>");
		}
		parent.main.document.write("&nbsp;<b>]</b>");
		if (page<Math.ceil(entries/onpage))
			parent.main.document.write(" <a style=\"TEXT-DECORATION: none\" target=_top href=" + GotoPageUrlString(page+1) + ">Next</a>");
		parent.main.document.write("</td></tr></table>");	
}

function GotoPageUrlString(c)
{
 if(c<1||c>Math.ceil(entries/onpage)) return '';
 return parent.document.location.pathname+'?srchname='+escape(query)+'&wholewords='+whole+'&page='+c+'&onpage='+onpage;

}

function init()
{
if (parent.window.location.search.length>0)
	Search(unescape(parent.window.location.search));
}

