var ebook_list = {
	page_has_filter: 0,
	filter_has_parameters: false,
	
	search_form_id: 'ebook-search-form',
	search_result_id: 'search-result-wrapper',
	search_url: '/ajax_php/ebook_search.php',
	company_page_url: 'company.php?id=',
	
	image_scroller_id: '',
	
	search_result_data: new Array(),
	
	filter: new Hash({
		keyword:'', company: '', person:'',
		category:'', service:'', video:'',
		city:'', region:'', country:'', product:''
	}),
	
	init: function(){
	//	Events
		ebook_list.observe_events();
	//	big scroller
		
	//	External_search
		var _filtered_page = this.get_parameters();
		$("ebook-search-form").getInputs('text').first().focus();	// First Element
	},
//	Set events observers
	observe_events: function(){
	//	Scroller
		
	//	Search
		var _form = $("ebook-search-form");
		if(_form){
			_form.onsubmit = function() {
				var _inputsbuttons = _form.getInputs('text');
				_inputsbuttons.invoke('disable');
				ebook_list.fill_filter(_inputsbuttons);
				_inputsbuttons.invoke('enable');
				return false;
			}
		}
	},
//	Get qstring parameters
	get_parameters: function(){
		var qs_s = window.location.search.substring(1).strip();
		if(!qs_s.blank()){
			var qs_filter = qs_s.split('&');
			qs_filter.each(function(value){
				var qs_ele = value.split("=");
				var qs_key = qs_ele[0].toLowerCase();
				var qs_value = qs_ele[1].toLowerCase();
				if((this.keys().indexOf(qs_key)) >= 0){
					this.set(qs_key, qs_value);
					ebook_list.page_has_filter = true;
				}
			}, ebook_list.filter);
		}
		if(ebook_list.page_has_filter == true){
			ebook_list.fill_search_form();
			ebook_list.search_ebook();
		}
		return(ebook_list.page_has_filter);
	},
	
	fill_search_form: function(){
		ebook_list.filter.each(function(pair){
			if(!pair.value.strip().blank()){
				if($(pair.key)){
					$(pair.key).value = pair.value.strip(); 
				}
			}
		});
	},
	
//	Format filter
	fill_filter: function(_inputsbuttons){
		_inputsbuttons.each(function(_text_input_element, index) {
			if((ebook_list.filter.keys().indexOf(_text_input_element.id)) >= 0){
				if(!_text_input_element.value.strip().blank()){
					ebook_list.filter_has_parameters = true ;
					ebook_list.filter.set(_text_input_element.id,_text_input_element.value);
				}
			}
		});
		if (ebook_list.filter_has_parameters == true){
			ebook_list.search_ebook();
		}else{
			var _result_container = $(ebook_list.search_result_id); 
			_result_container.update('<div id="search-in-progress">Inserire almeno un parametro di ricerca.</div>');
		}
	},
//	Search
	search_ebook: function(){
		//	check filter
		var _result_container = $(ebook_list.search_result_id); 
		_result_container.update('<div id="search-in-progress">Ricerca in corso</div>');
		
		var _search_result = new Array();
		
		new Ajax.Request(ebook_list.search_url,{
			method: 'post',
			asynchronous: true,
			evalJS: false,
			parameters: ebook_list.filter,
			onFailure: function(transport) {
				//alert("Impossibile recuperare i dati [2]");
				_result_container.update("Nessun risultato.");
			},
			onSuccess: function(transport) {
				var _to_eval_code = transport.responseText;
				if(!_to_eval_code.blank()){
					eval(_to_eval_code);
					var _result_container = $(ebook_list.search_result_id); 
					
					if(_search_result.size()>0){
						ebook_list.search_result_data = _search_result;
						_result_container.update(ebook_list.format_output());
					}else{
						//No result
						_result_container.update('<div id="search-in-progress">Nessun risultato trovato ' +
								'con i parametri di ricerca inseriti.</div>');
					}
				}
			}
		});
		ebook_list.reset_filter();
	},
	
//	Format output
	format_output: function(){
		var _ret= new String('');
		var _count = 0;
		var syntax = /(^|.|\r|\n)(\<%=\s*(\w+)\s*%\>)/;
		
		var _result_header_t = new Template('<div id="search-result-head">Sono state trovate <span ' +
				'class="bold"><%= _count %></span> agenzie che soddisfano i parametri di richiesta.</div>', syntax);

		var _company_t = new Template('<tr class="company-row">' +
				'<td class="first"><a href="' + ebook_list.company_page_url + 
				'<%= id %>" title="Visualizza la scheda completa"><%= name %></a></td>' +
				'<td><%= city %></td>' +
				'<td class="justified"><%= services %></td>' +
				'<td><%= category %></td>' +
				'<td class="last"><%= url %></td>' +
				'</tr>', syntax);
				
		_count = ebook_list.search_result_data.size();
		_ret += _result_header_t.evaluate({'_count':_count});

		_ret += '<div id="company-list-wrapper">';
		_ret += '<table id="company-list" cellspacing="0">';
		_ret += '<tr class="company-row">' +
				'<th id="agenzia-col">Agenzia</th>' +
				'<th id="sede-col">sede</th>' +
				'<th id="servizi-col">servizi</th>' +
				'<th id="categoria-col">categoria</th>' +
				'<th id="contatti-col">contatti</th></tr>';
		
		
		
		ebook_list.search_result_data.each(function(_comapny_data){
			// image NOT image
			_ret += _company_t.evaluate(_comapny_data);
		});
		_ret += "</table>";	//#company-list
		
		return (_ret);
	},
	reset_filter: function(){
		ebook_list.filter.each(function(pair){
			ebook_list.filter.set(pair.key,'');
		});
		ebook_list.filter_has_parameters = false;
	}
};

var ebook_dectail={
	init: function(){}
};
var ebook_starter={
	youmark_home_id:'ebook-home-scroller',
	ebook_search_id:'ebook-search-scroller',
	ebook_home_id:'ebook-image-scroller',
	eb_dectail_id:'',
	
	init: function(){
		if($('main-menu-list')){
			var menu = new mainmenu('main-menu-list','A.clickme', 'DIV.toShow');
		}
		if($('home-mini-menu')){
			var menu = new mainmenu('home-mini-menu','A.clickme', 'DIV.toShow');
		}
		
		if($(ebook_starter.youmark_home_id)){
			//ebook_home.init();
			var cS = new C_scroller;
		}

		if($(ebook_starter.ebook_home_id)){
			//ebook_home_id.init();
			var cS = new C_scroller({url_data: '/ajax_php/ebook_companies.php?view=logo'});
		}

		if($(ebook_starter.ebook_search_id)){
			var cis = new C_scroller({
				next_btn: $$(".scroller-next A").first(),
				prev_btn: $$(".scroller-prev A").first(),
				content_container:  $("scroller-content"),
				base_company_path: '/company.php?id=',
				url_data: '/ajax_php/ebook_search.php'
			});
			//ebook_list.init();
		}
	}
};
document.observe("dom:loaded", function(){
	ebook_starter.init();
});