function checkcode(val){
	reg0=/\//g;reg1=/\\/g;
    reg2=/!/g;reg3=/#/g;
    reg5=/%/g;reg6=/\^/g;reg7=/\&/g;reg8=/\(/g;reg9=/\)/g;reg10=/\|/g;
    reg11=/\?/g;reg12=/\*/g;reg13=/\+/g;reg14=/\-/g;
    val=val.replace(reg5,'%2525');
    val=val.replace(reg7,'%2526');
    val=val.replace(reg10,'%257C');
    val=val.replace(reg9,'%2529');
    val=val.replace(reg8,'%2528');
    val=val.replace(reg6,'%255E');
    val=val.replace(reg3,'%2523');
    val=val.replace(reg2,'%2521');
    val=val.replace(reg1,'%255C');
    val=val.replace(reg0,'%252F');
    val=val.replace(reg11,"%253f");
    val=val.replace(reg12,"%252a");
    val=val.replace(reg13,"%252b");
    val=val.replace(reg14,"%252d");
    return val;
}
function subName(val){/* References spreads in various portal pages */
val=val.replace( /^\s*/, "" ).replace( /\s*$/, "" );
val=val.replace(/\s*&+\s*/g,"-and-").replace(/\s*-+\s*/g,"-").replace(/\s*\/+\s*/g,"-").replace(/\s*,+\s*/g,"-").replace(/\s*'+\s*/g,"-").replace(/\s*"+\s*/g,"-").replace(/\s+/g,"-");
return val;
}
function trim(value){
	return value.replace(/(^\s*)|(\s*$)/g, "");
}
/***********************************************************
 */
var xn=['products','suppliers','sellingleads','buyingleads'];
function sw(n,start) {
  DocUtil.get('topMethod').value=xn[n];
  for (var i=0;i<4;i++){
    (document.all?document.all['dv'+i]:document.getElementById('dv'+i)).className=i==n?'b10-gblue':'';
  }
  if(start)go(true);
  kwfocus();
}
function kwfocus(){
try{
  var kw=document.getElementById('topKeyword');
  if(kw) kw.focus();
}catch(e){}
}
function go(silence) {
  var str="";
  var strkey=DocUtil.get('topKeyword').value;
  var re = /^\s+$/;
  if(re.exec(strkey)||strkey==""){
    if(!silence)alert("Please fill the keywords ");
    try{
      DocUtil.get('topKeyword').focus;
    }catch(e){}
    return;
  }
  strkey=checkcode(strkey);
  str=getSearchBarURL(DocUtil.get('topMethod').value);/** <te:url> from search_bar.jsp **/
  str=str.replace("@value@",strkey);
  eval("to"+"p.loca"+"tion.href"+"=str");
}
/********************************************************
 */
function pageLoadHdle() {
	var completeConfiguration = {
	instanceName: "autoComplete",
	textbox: document.getElementById('topKeyword'),
	height: 100
  };
	create_new_autocomplete(completeConfiguration);
}
function expand(kw){
	if(trim(kw).length == 0) return;
	if(autoComplete == null) return;
	autoComplete.expandAllItem();
}
var catchKw='';
function ajaxhandle (evt) {
/** If the keycode is not a valid key or the query value in the cache, show autocomplete **/
var kw=document.getElementById('topKeyword').value;
try{
if(catchKw==trim(kw)&&isValidKey(evt.keyCode)) return;
}catch(e){
	return;
}
catchKw=trim(kw);
if(!kw || trim(kw).length == 0) {
	if(autoComplete != null)
	autoComplete.close();
	return;
}
var url=getSearchBarURL("suggestion");/** te:url from search_bar.jsp **/
url=url.replace("@key@", trim(kw));
	if(autoComplete==null){
		var completeConfiguration = {
		instanceName: "autoComplete",
		textbox: document.getElementById('topKeyword'),
		height: 100
		};
	  create_new_autocomplete(completeConfiguration);
	}
AjaxHdle(evt,url);
}
function isValidKey(nKeyCode){
var invalidKeyCode=[13,38,40,27];
//13:Enter,27:Esc,38:Up Arrow, 40:Dw Arrow
for (var key in invalidKeyCode) {
	if (nKeyCode==invalidKeyCode[key])return false;
}
return true;
}
/********************************************************
 * Run onload
 */
init_autocomplete();
/** Global XMLHttpRequest and autoComplete object **/
if (document.all){
  window.attachEvent('onload',pageLoadHdle)//IE
}else{
  window.addEventListener('load',pageLoadHdle,false);//firefox
}
var o=DocUtil.get('topKeyword');
o.onkeyup=function(event){
	if(event == null){event = window.event;}		
	if(event.keyCode!=13){
		if(isValidKey(event.keyCode)){
			window.setTimeout(function(){ajaxhandle(event);},1000);
		}else{
			ajaxhandle(event);
		}
	}else{
		catchKw='';
		go();
	}
}

if (document.URL.indexOf('#') < 0) {
	if (document.all) {
		window.attachEvent('onload', kwfocus)//IE
	}
	else {
		window.addEventListener('load', kwfocus, false);//firefox
	}
}
