function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("Your Browser does not support this feature.");
		return false;
	}
}
var searchReq = getXmlHttpRequestObject();

function searchSuggest() {
	if (searchReq.readyState == 4 || searchReq.readyState == 0 ) {
		var req = buildRequest('bvsearch.php');
		if(req!=false){
		   searchReq.open("GET", req , true);
		   searchReq.onreadystatechange = handleSearchSuggest; 
		   searchReq.send(null);
		}
		else{
		  searchReq.abort();
		}
		
   }		
}

function handleSearchSuggest() {
   if(document.getElementById('bvfilter').value=='1'){var box='bresults'; var picks=document.getElementById('bpick').value;}else{var box='vresults'; var picks=document.getElementById('vpick').value;}
   if (searchReq.readyState == 4){ 
        var ss = document.getElementById(box);
		ss.innerHTML = '';
        var buff='';
		var rtn = searchReq.responseText;
		picks=picks.toLowerCase();
		rtn = removeHtmlEtt( rtn );
		var arr = rtn.split("^");
		for(i=0; i < arr.length; i++) 
		{
		   var entry = arr[i].replace(/\s*[(][0-9]+[)]\s*/i,'');
		   if(entry!=""){
			 var suggest  = '<div onclick="javascript:setPick(this.innerHTML);suggestClicked(this);" onmouseout="javascript:suggestOut(this);" onmouseover="javascript:suggestOver(this);" ';
			 if( picks.indexOf(entry.toLowerCase()) == -1 ){    
				suggest += ' class="bv_link">';
			 }
			 else{
				suggest += ' class="bv_clicked">';
			 }
			 suggest += entry + '</div>';
			 buff += suggest;
		   }
        }
		ss.innerHTML=buff;
   }
	else{
	  document.getElementById(box).innerHTML='<img src="images/loading1.gif" alt="loading..." title="loading..." style="margin:100px auto 0 200px;" />loading...';
	}
}


function suggestOver(div_value) {
	if( div_value.className != 'bv_clicked' ){div_value.className = 'bv_link_over';}
}

function suggestOut(div_value) {
	if( div_value.className != 'bv_clicked' ){div_value.className = 'bv_link';}
}


function suggestClicked(div_value) {
	if( div_value.className == 'bv_clicked' ){div_value.className = 'bv_link';}
	else{div_value.className = 'bv_clicked';}
}


function setPick(entry){
   var qtype = document.getElementById('bvfilter').value;
   var picks ='';
   if( qtype == 1 ){pick = document.getElementById('bpick'); }
   else{pick = document.getElementById('vpick');}
   entry = entry.replace(/\s*[(][0-9]+[)]\s*/, "");
   var picks=pick.value.toLowerCase();
   var arr = picks.split("^");
   var act=false;
   for(i=0;i<arr.length;i++){if(arr[i]==entry.toLowerCase()){act=true; break;}}
   if(!act){
	 var prefix='';  
	 if(pick.value==''){ prefix='';}  
	 else{if(pick.value.substr(pick.value.length-1)=='^'){ var prefix=''; }else{var prefix='^';}}  
     pick.value += prefix+entry;
   }
   else{
	 var rep=entry;  
	 if(entry.length != pick.value.length){
	 if( (act+entry.length) == pick.value.length ){rep='^'+entry; }else{rep=entry+'^';}}
     pick.value = pick.value.replace(rep, '');
   }
   if(pick.value==""){searchSuggest();}
}


function buildRequest(dest)
{
   var qtype = document.getElementById('bvfilter');
   var common = document.getElementById('bvcommonreq').value;
   common +=qtype.value;
   if(qtype.value=='1' || qtype.value=='2'){
   if(qtype.value=='1'){ var qry = escape(document.getElementById('bQ').value); }
   else{ var qry = escape(document.getElementById('vQ').value); }}
   else{return false;}
   common += pick2url('&brand[]=', document.getElementById('bpick').value);
   common += pick2url('&vendor[]=', document.getElementById('vpick').value); 
   if(qry!='Type%20to%20search' && qry!=''){ common += '&q='+qry; }
   common = dest + common;
   return common; 
}

function pick2url(prefix, picks){
   var rtn='';
   picks = removeHtmlEtt( picks );
   var arr = picks.split("^");
   for(i=0; i < arr.length; i++) {
	 if( arr[i] != '' ){
       rtn += prefix+encodeURIComponent(arr[i]);
	 }
   }
   return rtn;
}

function removeHtmlEtt( str ){
  str = str.replace("&amp;","&","gi");
  str = str.replace("&#39;","'","gi");
  str = str.replace("&#039;","'","gi");
  str = str.replace("&apos;","'","gi");
  str = str.replace("&quot;","\"","gi");
  return(str);
}


function SendTopSearch()
 {
   dest = 'http://'+location.hostname+buildRequest('/search.php');
   window.location = dest;
 }
 
function bvClear(qtype){
  if(qtype=='1'){
    var pick='bpick';
	var Q = 'bQ';
  }
  else{
    var pick='vpick';
	var Q = 'vQ';
  }
  document.getElementById(Q).value='';
  document.getElementById(pick).value='';
  setTimeout("searchSuggest()",1000);
}

function bvReset(qtype){
	  document.getElementById('bvfilter').value=qtype;
      document.getElementById('bpick').value='';
	  document.getElementById('bQ').value='';
	  document.getElementById('vpick').value='';
	  document.getElementById('vQ').value='';
	  document.getElementById('bresults').value='';
	  document.getElementById('bresults').innerHTML='';
	  document.getElementById('vresults').value='';
	  document.getElementById('vresults').innerHTML='';
}

function colour_click( elem , col ){
  var colours = document.getElementById('colourpick');
  if( colours.value != "" ){
    if(colours.value.indexOf(col) == -1){
	  colours.value += col+'^';
	  elem.className = 'li_colour_item_clicked';
	}
	else{
	  colours.value = colours.value.replace(col, '');
	  colours.value = colours.value.replace('^^', '^');
	  if(colours.value=='^'){colours.value='';}
	  elem.className = 'li_colour_item';
	}
  }
  else{
    colours.value= col + '^'; 
	elem.className = 'li_colour_item_clicked';
  }
}


function searchKickOff(qtype){
  document.getElementById('bvfilter').value=qtype;
  var req=false;
  if(qtype=='1' && document.getElementById('bresults').innerHTML==""){req=true}
  else{if(qtype=='2' && document.getElementById('vresults').innerHTML==""){req=true}}
  if(req){setTimeout("searchSuggest()",1000);}
}


function MM_showHideLayers() { //v9.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i < (args.length-2); i+=3) 
  with (document) if (getElementById && ((obj=getElementById(args[i]))!=null)) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function resultsFrameCompact(){
e=document.getElementById("bresults");
e.style.height = 1 + 'px';
e.style.overflow = 'hidden';
f=document.getElementById("vresults");
f.style.height = 1 + 'px';
f.style.overflow = 'hidden';
}

function resultsFrameExpand(){
e=document.getElementById("bresults");
e.style.height = '255px';
e.style.overflow = 'auto';
f=document.getElementById("vresults");
f.style.height = '255px';
f.style.overflow = 'auto';
}