// Simple Search Static Class
var SSearch = {
	box: "search_box", // Id of search input
	url: new Template('<a href="listings.php?id=#{section_id}#q#{id}">#{question}</a>'),
	params: {"cmd": "search"},
	init: function(){
		this.box = $("search_box");
		if(!this.box){
			Main.showDebug("Simple Search does not work.");
			return false;
		}
		this.pe = new PeriodicalExecuter(this.checkSearch.bind(this), 2);
		this.box.observe("click", this.clickToSearch.bind(this));
		this.box.observe("blur", this.blurSearch.bind(this));
		this.start_value = this.box.getValue();
		this.result_box = new Element("div", {"class": "faq-search-result-box", "style": "display: none;"});
		var _label = new Element("div", {"class": "f_l results-label"});
		_label.update("Предлагаем следующие ответы по Вашему поиску:");
		this.result_box.insert(_label);
		var btn_hide = new Element("div", {"class": "f_r pointer hide_results"});
		btn_hide.observe("click", this.hideResults.bind(this));
		this.result_box.insert(btn_hide.update("убрать результаты"));

		this.result_box.insert(new Element("div", {"class": "clear"}));
		this.result_contet = new Element("div");
		this.result_box.insert(this.result_contet);
		$(this.box.parentNode).insert(new Element("div", {"class": "upload-box", "id": "upload_box"}));
		$(this.box.parentNode).insert(this.result_box);

		this.box.setStyle({"marginBottom":"0px"});
		if(typeof customurl != "undefined"){
			this.url = customurl;
		}
		if(typeof section_id != "undefined"){
			this.params["section_id"] = section_id;
		}
	},
// -----------------------------------------------
	uploadBox: function(id, hide){
		var v = $(id);
		if(v){
			if(hide){
				v.className = "upload-box";
			}else{
				v.className = "upload-box show";
			}
		}
	},
	clickToSearch: function(){
		if(this.start_value == this.box.getValue()){
			this.box.setValue("");
		}
	},
	blurSearch: function(){
		this.box.setValue(this.start_value);
	},
// ------------------------------------------------
	hideResults: function(){
		this.result_box.hide();
		this.request_sent = null;
	},
	checkSearch: function(){
		//this.pe.stop(); //Stop periodical executor
		var value = this.box.getValue();
		if(this.request_sent == null || this.last_result != value){
			if(value != "" && value != this.start_value){
				this.sendRequest(value);
			}
		}
	},
	sendRequest: function(value){
		this.uploadBox("upload_box");
		this.request_sent = true;
		this.params["value"] = value;
		Main.request('ajax_faq.php', {
			parameters: this.params,
			onSuccess: function(j){
				this.result_box.show();
					if(j.data && j["total"] > 0){
					var questions = "<ul>";
					for(var i = 0; i < j["total"]; i++){
						questions += '<li>'+this.url.evaluate(j['data'][i])+'</a></li>';
					}
					questions +="</ul>";
					this.result_contet.update(questions);
				}else{
					this.result_contet.update("В соответствии с Вашим запросом ничего ненайдено.");
				}
				this.last_result = value;
				this.uploadBox("upload_box", true);

			},
			onFail: function(j){
				this.result_box.hide();
				this.request_sent = null;
				this.uploadBox("upload_box", true);
			},
			scope: this
		});
	}
}
Main.onReady(SSearch.init, SSearch);
