

var Search={};
Search.tmp={};
Search.tmp.keyword={};
Search.tmp.mode="note";
Search.user={};
Search.user.saveHistory;
Search.user.loadAll;
Search.user.currentCategory;
Search.user.currentTab={};
Search.user.list=[];
Search.user.history=[];

if(document.all){
	var location="";
}

//=======================================================================================================================================
Search.init=function(){
	Search.config.loadSettings();
	Search.config.loadHistory();
	Search.config.loadSearchState();
	Search.updateLanguage();
	Search.config.loadPreferedList();
	Search.config.loadQueryParameters();
	Search.search.buildUI();
	Search.attachEvents();
};

//=======================================================================================================================================
Search.addToFavorites=function(){

	var _1=$lang("title");
	var _2="/";

	if(document.all){
		window.external.AddFavorite(_2,_1);
		}else{
			if(window.sidebar){
			window.sidebar.addPanel(_1,_2,"");
		}else{
			if(window.opera&&window.print){
			var _3=document.createElement("a");
				_3.setAttribute("rel","sidebar");
				_3.setAttribute("href",_2);
				_3.setAttribute("title",_1);
				_3.click();
			}
		}
	}
};

//=======================================================================================================================================
Search.updateLanguage=function(){
	if(Search.localeLang[Search.user.langCode]){
		$langNamespace=Search.localeLang[Search.user.langCode];
	}else{
		$langNamespace=Search.localeLang[Search.defaults.langCode];
		Search.user.langCode=Search.defaults.langCode;
	}
	
	if(Search.localeList[Search.user.langCode]){
		Search.list=Search.localeList[Search.user.langCode];
	}else{
		Search.list=Search.localeList[Search.defaults.langCode];
	}
	
	Search.updateTitle();
    //$id("btn_set_home").innerHTML=$lang("set_home");
   // $id("btn_add_fav").innerHTML=$lang("add_fav");
	$id("btn_history").innerHTML=$lang("history");
	$id("btn_options").innerHTML=$lang("options");
	$id("btn_custom_prefer").innerHTML=$lang("custom_prefer");
	$id("txt_options_header").innerHTML=$lang("options");
	$id("txt_opt_lang").innerHTML=$lang("opt_lang");
	$id("txt_opt_save_history").innerHTML=$lang("opt_save_history");
	$id("txt_opt_load_all").innerHTML=$lang("opt_load_all");
	$id("txt_options_list").innerHTML=$lang("options_list");
	$id("txt_list_current_prefered").innerHTML=$lang("list_current_prefered");
	$id("txt_list_default").innerHTML=$lang("list_default");
	$id("txt_list_add_text").innerHTML=$lang("list_add_text");
	$id("txt_list_i_new").innerHTML=$lang("list_i_new");
	$id("txt_list_i_name").innerHTML=$lang("list_i_name");
	$id("txt_list_i_url").innerHTML=$lang("list_i_url");
	$id("i_note_internal").innerHTML=$lang("list_i_note_internal");
	$id("i_note_edit").innerHTML=$lang("list_i_note");
	$id("note").innerHTML=$lang("no_search_notice")+"<br/><br/><span style=\"color:#999999;\">Copyright &copy; 2008 7LL.Cn All Rights Reserved.</span>";
	$id("btn_opt_save").value="  "+$lang("save")+"  ";
	$id("btn_opt_cancel").value="  "+$lang("cancel")+"  ";
	
	document.title = $lang("title");
};

//=======================================================================================================================================
Search.updateTitle=function(_1){
	if(!_1){
		_1=="";
	}
	
	document.title=$lang("title")+(_1!=""?": "+_1:"");
};

//=======================================================================================================================================
Search.attachEvents=function(){
	$event("+","keypress",$id("keyword"),Search.search.keyword.check);
	$event("+","click",$id("btn_go"),function(){
			Search.search.checkUpdate(true);
		});
	$event("+","click",$id("btn_history"),Search.history.show);
	$event("+","click",$id("btn_options"),Search.options.show);
	$event("+","click",$id("btn_custom_prefer"),function(){
			Search.options.show("list");
		});
	$event("+","click",$id("btn_add_new"),Search.options.list.addCustomItem);
	$event("+","click",$id("btn_i_save"),Search.options.list.saveItem);
	$event("+","click",$id("btn_list_default"),Search.options.list.restoreDefault);
	$event("+","click",$id("btn_opt_save"),Search.options.save);
	$event("+","click",$id("btn_opt_cancel"),Search.search.checkUpdate);
	$event("+","blur",$id("history"),function(){
			setTimeout("Search.history.hide()",200);
		});
	$event("+","resize",window,Search.search.frame.adjustSize);
};

//=======================================================================================================================================
Search.switchMode=function(_2){
	var _3=$id("content");
	var _4=$id("note");
	var _5=$id("options");
	
	switch(_2){
	case "note":
		var _6=$id("keyword");
		if(_6){
			try {
				_6.focus();
			}catch(e){}
		}
		_3.style.display="none";
		_4.style.display="block";
		_5.style.display="none";
		break;
		
	case "search":
		_3.style.display="block";
		_4.style.display="none";
		_5.style.display="none";
		break;
		
	case "options":
		_3.style.display="none";
		_4.style.display="none";
		_5.style.display="block";
		break;
	}
	
	Search.tmp.mode=_2;
};

//=======================================================================================================================================
Search.config={};

//=======================================================================================================================================
Search.config.loadSettings=function(){
	var _7=$cookies("get","ln");
	
	if(_7==""){
		if(navigator.language){
			Search.user.langCode=navigator.language;
		}else{
			Search.user.langCode=navigator.userLanguage;
		}
	}else{
		Search.user.langCode=_7;
	}
	
	Search.user.langCode=Search.user.langCode.toLowerCase();
	
	var _7=$cookies("get","sh");
	if(_7=="false"){
		Search.user.saveHistory=false;
	}else{
		if(_7!=""){
			Search.user.saveHistory=true;
		}else{
			Search.user.saveHistory=Search.defaults.saveHistory;
		}
	}
	
	var _7=$cookies("get","la");
	if(_7=="false"){
		Search.user.loadAll=false;
	}else{
		if(_7!=""){
			Search.user.loadAll=true;
		}else{
			Search.user.loadAll=Search.defaults.loadAll;
		}
	}
};

//=======================================================================================================================================
Search.config.saveSettings=function(){
	$cookies("set","ln",Search.user.langCode);
	$cookies("set","sh",Search.user.saveHistory);
	$cookies("set","la",Search.user.loadAll);
};

//=======================================================================================================================================
Search.config.loadPreferedList=function(){
	var _8=unescape($cookies("get","pl"));

	Search.user.list=$fromJSON(_8);

	if(Search.user.list==null){
		if(Search.defaults.preferedList[Search.user.langCode]){
			Search.user.list=$clone(Search.defaults.preferedList[Search.user.langCode]);
		}else{
			Search.user.list=Search.defaults.preferedList["en-us"];
		}
	}
	
	if(!Search.list["prefered"]){
		Search.list["prefered"]={};
	}
	
	Search.list["prefered"].title=$lang("prefered");
	Search.list["prefered"].items={};
	Search.list["prefered"].items=Search.config.convertPreferedList(Search.user.list);
};

//=======================================================================================================================================
Search.config.savePreferedList=function(){
	$cookies("set","pl",escape($toJSON(Search.user.list)));
};

//=======================================================================================================================================
Search.config.convertPreferedList=function(_9){
	var _a={};
	
	for(var i=0;i<_9.length;i++){
		var _c=_9[i];
		var _d;
		
		if(!_c.c&&_c.n){
			_a[_c.n]={"custom":true,"name":_c.n,"title":_c.t,"url":_c.u};
			continue;
		}
		
		try{
			_d=Search.list[_c.c].items[_c.n];
		}catch(e){
			_d=undefined;
		}
		
		if(_d==undefined){
			_9.splice(i,1);
			i--;
			continue;
		}
		
		_a[_c.c+"_"+_c.n]={"category":_c.c,"name":_c.n,"title":_d.title+(_d.subtitle?_d.subtitle:""),"url":_d.url};
	}
	
	return _a;
};

//=======================================================================================================================================
Search.config.saveSearchState=function(){
	$cookies("set","ct",escape($toJSON(Search.user.currentTab)));
};

//=======================================================================================================================================
Search.config.loadSearchState=function(){
	Search.user.currentCategory=Search.defaults.category;
	var _e=$cookies("get","ct");
	_e=$fromJSON(unescape(_e));
	
	if(_e){
		Search.user.currentTab=_e;
	}
};

//=======================================================================================================================================
Search.config.saveHistory=function(){
	$cookies("set","kw",escape(Search.user.history.join(",")));
};

//=======================================================================================================================================
Search.config.loadHistory=function(){
	var kw=unescape($cookies("get","kw"));
	kw=kw.split(",");
	var _10=[];
	
	for(var i=0;i<kw.length;i++){
		if(i==Search.defaults.maxKeyword){
			break;
		}
		
		kw[i]=kw[i].$trim();
		
		if(kw[i]==""){
			kw.splice(i,1);
			i--;
			continue;
		}
		
		_10.push(kw[i]);
	}
	
	Search.user.history=_10;
};

//=======================================================================================================================================
Search.config.loadQueryParameters=function(){
	var _12=$parseQueryString();
	
	if(_12["q"]){
		_12["q"]=_12["q"].replace(/\+/g," ");
		_12["q"]=unescape(_12["q"]);
		_12["q"]=Search.config.decodeUTF8String(_12["q"]);
		$id("keyword").value=_12["q"];
	}
	
	if(_12["c"]){
		if(Search.list[_12["c"]]){
			Search.user.currentCategory=_12["c"];
		}
	}
};

//=======================================================================================================================================
Search.config.decodeUTF8String=function(str){
	var _14="";
	
	for(var i=0;i<str.length;i++){
		var b1=str.charCodeAt(i);
		
		if(b1<128){
			_14+=String.fromCharCode(b1);
		}else{
			if((b1>191)&&(b1<224)){
				var b2=str.charCodeAt(i+1);
				_14+=String.fromCharCode(((b1&31)<<6)|(b2&63));
				i++;
			}else{
				var b2=str.charCodeAt(i+1);
				var b3=str.charCodeAt(i+2);
				_14+=String.fromCharCode(((b1&15)<<12)|((b2&63)<<6)|(b3&63));
				i+=2;
			}
		}
	}
	
	return _14;
};

//=======================================================================================================================================
Search.search={};

//=======================================================================================================================================
Search.search.buildCategories=function(){
	var _19="";
	
	for(var cat in Search.list){
		if(!Search.tmp.keyword[cat]){
			Search.tmp.keyword[cat]={};
		}
		_19+="<a id=\"cat_"+cat+"\" href=\"javascript:Search.search.activateCategory('"+cat+"');\""+(cat=="prefered"?" class=\"prefered\"":"")+" onclick=\"this.blur()\">"+Search.list[cat].title.$encodeHTML()+"</a>";
	}
	
	$write(_19,"categories");
};

//=======================================================================================================================================
Search.search.activateCategory=function(cat){
	if(!cat){
		cat=Search.user.currentCategory;
	}
	
	try{
		$id("cat_"+Search.user.currentCategory).className=(Search.user.currentCategory=="prefered"?"prefered ":"");
	}catch(e){
	}
	
	Search.user.currentCategory=cat;
	$id("cat_"+cat).className=(cat=="prefered"?"prefered-active":"active");
	
	if(cat=="prefered"){
		$id("btn_custom_prefer_wrapper").style.display="inline";
	}else{
		$id("btn_custom_prefer_wrapper").style.display="none";
	}
	
	Search.search.buildTabs();
	Search.search.activateTab(Search.user.currentTab[cat]);
};

//=======================================================================================================================================
Search.search.buildTabs=function(){
	var cat=Search.user.currentCategory;
	var _1d=Search.list[cat].items;
	var _1e="";
	var _1f="";
	
	for(var _20 in _1d){
		if(!Search.list[cat].defaultTab){
			Search.list[cat].defaultTab=_20;
		}
		
		if(!Search.user.currentTab[cat]){
			Search.user.currentTab[cat]=_20;
		}
		
		Search.tmp.keyword[cat][_20]="";
		_1e+="<a id=\"search_"+_20+"\" href=\"javascript:Search.search.activateTab('"+_20+"');\" onclick=\"this.blur();\">"+_1d[_20].title.$encodeHTML()+"</a>";
		_1f+="<div id=\"iframe_wrapper_"+_20+"\" style=\"display: none;\">"+"</div>\n";
	}
	
	$write(_1e,"searches");
	$write(_1f,"content");
};

//=======================================================================================================================================
Search.search.activateTab=function(_21){
	var cat=Search.user.currentCategory;

	if(!Search.list[cat].items[_21]){
		_21=Search.list[cat].defaultTab;
	}
	
	try{
		$id("search_"+Search.user.currentTab[cat]).className="";
		$id("iframe_wrapper_"+Search.user.currentTab[cat]).style.display="none";
	}catch(e){
	}
	
	Search.user.currentTab[cat]=_21;
	$id("iframe_wrapper_"+_21).style.display="block";
	$id("search_"+_21).className="buttons-active";
	Search.search.frame.adjustSize();
	Search.search.checkUpdate();
};

//=======================================================================================================================================
Search.search.buildUI=function(){
	Search.search.buildCategories();
	Search.search.activateCategory();
	Search.history.build();
};

//=======================================================================================================================================
Search.search.checkUpdate=function(_23){
	var _24=Search.search.keyword.get();
	
	if(_24==""){
		Search.switchMode("note");
	}else{
		Search.history.hide();
		Search.search.execute(_23);
		Search.switchMode("search");
	}
	
	Search.updateTitle(_24);
	Search.config.saveSearchState();
};

//=======================================================================================================================================
Search.search.execute=function(_25){
	var cat=Search.user.currentCategory;
	var _27=Search.list[cat].items;
	Search.search.frame.doSearch(Search.user.currentTab[cat],_25);
	
	if(Search.user.loadAll){
		var i=0;
		for(var _29 in _27){
			if(_29!=Search.user.currentTab[cat]){
				i++;
				setTimeout("Search.search.frame.doSearch(\""+_29+"\","+_25+")",1000*i);
			}
		}
	}
};

//=======================================================================================================================================
Search.search.keyword={};

//=======================================================================================================================================
Search.search.keyword.cleanFor=function(_2a){
	return _2a;
};

//=======================================================================================================================================
Search.search.keyword.check=function(_2b){
	if(_2b.keyCode==13){
		Search.search.checkUpdate(true);
	}
};

//=======================================================================================================================================
Search.search.keyword.get=function(){
	return $id("keyword").value.$trim();
};

//=======================================================================================================================================
Search.search.keyword.set=function(_2c){
	$id("keyword").value=Search.user.history[_2c];
	Search.search.checkUpdate();
};

//=======================================================================================================================================
Search.search.frame={};

//=======================================================================================================================================
Search.search.frame.prepare=function(_2d){
	var _2e=$id("iframe_wrapper_"+_2d);
	
	if(!_2e){
	return;
	}
	
	_2e.innerHTML="";
	var _2f=window.document.createElement("iframe");
	_2f.id="iframe_"+_2d;
	_2f.src="about:blank";
	_2f.allowTransparency=true;
	_2f.frameBorder="0";
	_2e.appendChild(_2f);
	var _30;
	
	if(!window.opera){
		_30=document.documentElement.clientHeight;
	}else{
		_30=document.body.clientHeight;
	}
	
	_2f.width="100%";
	_2f.height="400px";
	Search.search.frame.showLoading(_2d);
};

//=======================================================================================================================================
Search.search.frame.showLoading=function(_31){
	var _32=$id("iframe_"+_31);
	
	if(!_32){
		return;
	}
	
	var _33="<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"+"<html xmlns=\"http://www.w3.org/1999/xhtml\">"+"<head>"+"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />"+"<title>Search Result</title>"+"<link rel=\"stylesheet\" type=\"text/css\" href=\"images/base.css\" />"+"<link rel=\"stylesheet\" type=\"text/css\" href=\"images/custom.css\" />"+"</head>";
	_33+="<body>";
	_33+="<div class=\"loading\">"+"<img src=\"images/loading.gif\" /> "+$lang("loading").$encodeHTML()+"</div>";
	_33+="</body>"+"</html>";
	
	try{
		var obj=_32.contentWindow.document;
		obj.open();
		obj.write(_33);
		obj.close();
	}catch(e){
	}
};

//=======================================================================================================================================
Search.search.frame.doSearch=function(_35,_36){
	var _37=Search.search.keyword.get();
	var cat=Search.user.currentCategory;
	
	if(Search.tmp.keyword[cat][_35]==_37&&!_36){
		return;
	}
	
	Search.history.save(_37);
	Search.search.frame.prepare(_35);
	var obj=$id("iframe_"+_35);
	
	if(!obj){
		return;
	}
	
	var url=Search.list[cat].items[_35].url;
	
	if(url.indexOf("{keyword:raw}")>-1){
		url=url.replace("{keyword:raw}",_37);
	}else{
		if(url.indexOf("{keyword:gb2312}")>-1){
			url=url.replace("{keyword:gb2312}",$GB2312.encodeURIComponent(_37));
		}else{
			url=url.replace("{keyword}",encodeURIComponent(_37));
		}
	}
	
	obj.src=url;
	setTimeout(Search.search.frame.adjustSize,100);
	Search.tmp.keyword[cat][_35]=_37;
};

//=======================================================================================================================================
Search.search.frame.adjustSize=function(){
	var _3b=Search.user.currentTab[Search.user.currentCategory];
	var obj=$id("iframe_"+_3b);
	
	if(!obj){
		return;
	}
	
	var _3d;
	
	if(!window.opera){
		_3d=document.documentElement.clientHeight;
	}else{
		_3d=document.body.clientHeight;
	}
	
	obj.height=_3d-obj.offsetTop;
};

//=======================================================================================================================================
Search.history={};

//=======================================================================================================================================
Search.history.build=function(){
	var _3e="";
	
	for(var i=0;i<Search.user.history.length;i++){
		_3e+="<a href=\"javascript:;\" onclick=\"Search.search.keyword.set("+i+")\">"+Search.user.history[i].$encodeHTML().$cut(50)+"</a>";
	}
	
	_3e+="<a href=\"javascript:;\" onclick=\"Search.history.clean();\" class=\"special\">"+$lang("clean_history")+"</a>";
	$write(_3e,"history");
	
	if(Search.user.saveHistory){
		$id("btn_history_wrapper").style.display="inline";
	}else{
		$id("btn_history_wrapper").style.display="none";
	}
};

//=======================================================================================================================================
Search.history.show=function(_40){
	var obj=_40.srcElement?_40.srcElement:_40.target;
	var _42=obj.offsetLeft;
	var top=obj.offsetTop;
	var _44=obj.offsetParent;
	
	while(_44.tagName.toUpperCase()!="BODY"){
		_42+=_44.offsetLeft;
		top+=_44.offsetTop;
		_44=_44.offsetParent;
	}
	
	var _45=$id("history");
	_45.style.top=top+obj.offsetHeight+"px";
	_45.style.left=_42+"px";
	_45.style.display="";
	_45.style.top=top+obj.offsetHeight+"px";
	_45.focus();
};

//=======================================================================================================================================
Search.history.hide=function(){
	$id("history").style.display="none";
};

//=======================================================================================================================================
Search.history.save=function(_46){
	if(Search.user.saveHistory&&_46){
		for(var i=0;i<Search.user.history.length;i++){
			if(Search.user.history[i]==_46){
				Search.user.history.splice(i,1);
				i--;
			}
		}
	
		if(Search.user.history.length>=Search.defaults.maxKeyword){
			Search.user.history.pop();
		}
		Search.user.history.unshift(_46);
	}else{
		Search.user.history=[];
	}
	
	Search.config.saveHistory();
	Search.history.build();
};

//=======================================================================================================================================
Search.history.clean=function(){
	Search.history.save();
};

//=======================================================================================================================================
Search.options={};

//=======================================================================================================================================
Search.options.currentType="";

//=======================================================================================================================================
Search.options.show=function(_48){
	var _49=$id("opt_sec_setup");
	var _4a=$id("opt_sec_list");
	_49.style.display="none";
	_4a.style.display="none";
	
	switch(_48){
		case "list":
			Search.options.list.build();
			_4a.style.display="block";
			break;
		default:
			Search.options.setup.build();
			_49.style.display="block";
	}
	
	Search.options.currentType=_48;
	Search.switchMode("options");
};

//=======================================================================================================================================
Search.options.hide=function(){
	$id("options").style.display="none";
};

//=======================================================================================================================================
Search.options.save=function(){
	switch(Search.options.currentType){
		case "list":
			Search.options.list.save();
			break;
		default:
			Search.options.setup.save();
			break;
	}
	
	Search.options.currentType="";
	Search.search.buildUI();
	Search.search.checkUpdate();
};

//=======================================================================================================================================
Search.options.setup={};

//=======================================================================================================================================
Search.options.setup.build=function(){
	var _4b=$id("opt_lang");
	_4b.innerHTML="";
	
	for(label in Search.localeLang){
		_4b.options.add(new Option(Search.localeLang[label]._name.$encodeHTML(),label));
		if(Search.user.langCode==label){
			_4b.selectedIndex=_4b.options.length-1;
		}
	}
	
	$id("opt_save_history").checked=Search.user.saveHistory;
	$id("opt_load_all").checked=Search.user.loadAll;
};

//=======================================================================================================================================
Search.options.setup.save=function(){
	var _4c=$id("opt_lang");

	var _4d=_4c.options[_4c.selectedIndex].value;

	if(Search.user.langCode!=_4d){
		Search.user.langCode=_4d;
		Search.updateLanguage();
		Search.config.loadPreferedList();
		Search.search.buildUI();
	}
	
	Search.user.langCode=_4d;
	Search.user.saveHistory=$id("opt_save_history").checked;
	Search.user.loadAll=$id("opt_load_all").checked;
	Search.config.saveSettings();
};

//=======================================================================================================================================
Search.options.list={};

//=======================================================================================================================================
Search.options.list.build=function(){
	$id("opt_edit_table").style.display="none";
	Search.options.preferedList=$clone(Search.user.list);
	Search.options.processedList=Search.config.convertPreferedList(Search.options.preferedList);
	Search.options.list.buildPrefered();
	Search.options.list.buildAll();
};

//=======================================================================================================================================
Search.options.list.save=function(){
	Search.options.list.saveItem();
	Search.user.list=Search.options.preferedList;
	Search.list["prefered"].items=Search.options.processedList;
	Search.list["prefered"].defaultTab=null;
	Search.config.savePreferedList();
};

//=======================================================================================================================================
Search.options.list.labelToIndex=function(_4e){
	for(var i=0;i<Search.options.preferedList.length;i++){
		var _50=Search.options.preferedList[i];
		var id=_50.c?_50.c+"_"+_50.n:_50.n;
		
		if(id==_4e){
			return i;
		}
	}
	return -1;
};

//=======================================================================================================================================
Search.options.list.buildPrefered=function(){
	var _52="";
	
	for(var _53 in Search.options.processedList){
		var _54=Search.options.processedList[_53];
		_52+="<div class=\"list-item-hot\" style=\"cursor:pointer;\" id=\"p_"+_53+"\""+" onclick=\"Search.options.list.selectItem('"+_53+"')\""+">"+"<div class=\"list-control\">"+"&nbsp; <img width=\"16\" height=\"16\" src=\"images\/btn_remove.png\" onclick=\"Search.options.list.removeItem('"+_53+"')\" alt=\""+$lang("list_remove")+"\"/>"+"</div>"+_54.title.$encodeHTML()+(_54.custom?" <img width=\"16\" height=\"16\" src=\"custom.png\" alt=\"Custom\"/>":"")+"</div>";
	}
	
	$write(_52,"list_prefered");
	Search.options.list.selectedItem="";
	$id("opt_edit_table").style.display="none";
};

//=======================================================================================================================================
Search.options.list.buildAll=function(){
	var _55="";
	var _56="";
	
	for(var cat in Search.list){
		if(cat=="prefered"){
			continue;
		}
		
		var _58="";
		for(var _59 in Search.list[cat].items){
			var _5a=Search.list[cat].items[_59];
			var sid=cat+"_"+_59;
			var _5c=Search.options.processedList[sid]!=undefined?true:false;
			_58+="<div id=\"a_"+sid+"\" class=\"list-item\" onclick=\"Search.options.list.addItem('"+cat+"','"+_59+"')\" alt=\""+$lang("list_add")+"\""+(_5c?" style=\"display:none;\"":"")+">"+_5a.title.$encodeHTML()+(_5a.subtitle?_5a.subtitle.$encodeHTML():"")+"</div>";
		}
		
		_55+="<div id=\"c_"+cat+"\" class=\"list-cat\" onclick=\"Search.options.list.toggleCategory('"+cat+"')\">"+"<code>-</code> "+Search.list[cat].title.$encodeHTML()+"</div>";
		_55+="<div id=\"cw_"+cat+"\">"+_58+"</div>";
	}
	
	$write(_55,"list_all");
};

//=======================================================================================================================================
Search.options.list.toggleCategory=function(cat){
	var obj=$id("c_"+cat);
	var _5f=$id("cw_"+cat);
	
	if(_5f.style.display!="none"){
		_5f.style.display="none";
		obj.innerHTML="<code>+</code> "+Search.list[cat].title.$encodeHTML();
	}else{
		_5f.style.display="block";
		obj.innerHTML="<code>-</code> "+Search.list[cat].title.$encodeHTML();
	}
};

//=======================================================================================================================================
Search.options.list.selectItem=function(_60){
	try{
		$id("p_"+Search.options.list.selectedItem).className="list-item-hot";
		Search.options.list.toggleControl(Search.options.list.selectedItem,false);
	}catch(e){
	}
	
	$id("p_"+_60).className="list-item-selected";
	Search.options.list.toggleControl(_60,true);
	
	if(Search.options.list.inEditCustom==true){
		Search.options.list.saveItem();
	}
	
	Search.options.list.selectedItem=_60;
	$id("opt_edit_table").style.display="block";
	Search.options.list.showItemData(_60);
};

//=======================================================================================================================================
Search.options.list.toggleControl=function(_61,_62){
	var obj=$id("c_p_"+_61);
	
	if(!obj){
		return;
	}
	
	if(_62){
		obj.style.visibility="visible";
	}else{
		obj.style.visibility="hidden";
	}
};

//=======================================================================================================================================
Search.options.list.moveItem=function(_64){
	var _65=Search.options.list.labelToIndex(Search.options.list.selectedItem);
	
	if(_65<0){
		return;
	}
	
	var _66=Search.options.preferedList;
	var _67=_66[_65];
	var _68=_66[_65+_64];
	
	if(_64<0){
		if(_65==0){
			return;
		}
		_66.splice(_65,1);
		_66.splice(_65+_64,1,_67,_68);
	}else{
		if(_65==(Search.options.preferedList.length-1)){
			return;
		}
		_66.splice(_65+_64,1,_68,_67);
		_66.splice(_65,1);
	}
	
	var _69=_67.c?_67.c+"_"+_67.n:_67.n;
	var _6a=_68.c?_68.c+"_"+_68.n:_68.n;
	var s=$id("p_"+_69);
	var t=$id("p_"+_6a);
	var p=s.parentNode;
	
	if(_64<0){
		p.insertBefore(s,t);
	}else{
		p.insertBefore(t,s);
	}
	
	Search.options.processedList=Search.config.convertPreferedList(Search.options.preferedList);
};

//=======================================================================================================================================
Search.options.list.addItem=function(cat,_6f){
	if(Search.options.processedList[cat+"_"+_6f]){
		alert("This search engine has already added!");
		return;
	}
	
	try{
		var _70=Search.list[cat][_6f];
	}catch(e){
		return;
	}
	
	Search.options.preferedList.push({c:cat,n:_6f});
	$id("a_"+cat+"_"+_6f).style.display="none";
	Search.options.processedList=Search.config.convertPreferedList(Search.options.preferedList);
	Search.options.list.buildPrefered();
};

//=======================================================================================================================================
Search.options.list.addCustomItem=function(){
	var _71="";
	
	for(var i=0;i<20;i++){
		_71="c_"+i;
		if(Search.options.processedList[_71]==undefined){
			break;
		}
	}
	
	var _73={n:_71,t:$lang("default_title"),u:"http://search/?q={keyword}"};
	Search.options.preferedList.push(_73);
	
	var _73={custom:true,name:_71,title:$lang("default_title"),url:"http://search/?q={keyword}"};
	Search.options.processedList[_71]=_73;
	Search.options.list.buildPrefered();
	Search.options.list.selectItem(_71);
};

//=======================================================================================================================================
Search.options.list.showItemData=function(sid){
	var _75=Search.options.processedList[sid];
	var _76=$id("i_name");
	var _77=$id("i_url");
	var _78=$id("i_note_internal");
	var _79=$id("i_note_edit");
	_76.value=_75.title;
	_77.value=_75.url;
	_78.style.display="none";
	_79.style.display="none";
	
	if(_75.custom){
		Search.options.list.inEditCustom=true;
		_79.style.display="inline";
		_76.disabled=false;
		_77.disabled=false;
	}else{
		Search.options.list.inEditCustom=false;
		_78.style.display="inline";
		_76.disabled=true;
		_77.disabled=true;
	}
};

//=======================================================================================================================================
Search.options.list.saveItem=function(){
	if(!Search.options.list.inEditCustom){
		return;
	}
	
	var _7a=Search.options.list.labelToIndex(Search.options.list.selectedItem);
	
	if(_7a<0){
		alert("invalid item");
		return;
	}

	var _7b={n:Search.options.list.selectedItem,t:$id("i_name").value.$trim(),u:$id("i_url").value.$trim()};

	if(_7b.t.length<1||_7b.t.length>20){
		alert($lang("invalid_name"));
		return;
	}
	
	if(_7b.u.indexOf("http")!=0){
		alert($lang("invalid_url"));
		return;
	}
	
	if(_7b.u.indexOf("{keyword")<0){
		alert($lang("invalid_url_keyword"));
		return;
	}
	
	Search.options.preferedList[_7a]=_7b;
	Search.options.processedList[_7b.n]={custom:true,name:_7b.n,title:_7b.t,url:_7b.u};
	Search.options.list.buildPrefered();
};

//=======================================================================================================================================
Search.options.list.removeItem=function(_7c){
	var _7d=Search.options.list.labelToIndex(_7c);
	var _7e=Search.options.preferedList[_7d];
	
	if(Search.options.preferedList.length==1){
		alert($lang("list_at_least_one"));
		return;
	}
	
	if(!_7e.c){
		if(!confirm($lang("list_delete_confirm"))){
			return;
		}
	}
	
	if(_7e.c){
		$id("a_"+_7e.c+"_"+_7e.n).style.display="block";
	}
	
	Search.options.preferedList.splice(_7d,1);
	Search.options.processedList=Search.config.convertPreferedList(Search.options.preferedList);
	Search.options.list.buildPrefered();
};

//=======================================================================================================================================
Search.options.list.restoreDefault=function(){
	if(!confirm($lang("list_default_confirm"))){
		return;
	}
	
	Search.options.preferedList=$clone(Search.defaults.preferedList[Search.user.langCode]);
	Search.options.processedList=Search.config.convertPreferedList(Search.options.preferedList);
	Search.options.list.buildPrefered();
};

