
var Tabeller = new Class( {
	initialize: function(basedir) {
		this.basedir = basedir;
	},
	
	autoComplete: function() {
		
		objx = this;

         $('searchstring').addEvent('keyup', function(event){
		 	if (event.key == 'esc') {
				$('autocomplete').set('class', 'inactive');
				return;
			}
			
	        var burl = objx.basedir + '/ajax/autocomplete';
	
			if ($('searchstring').value.length >= 2) {
		        arequest = new Request({
					url:burl,
		        	method: 'get',
					onRequest: function() {
						var title = new Element('h3').inject($('autocomplete'));
						$('autocomplete').empty();
						var msg = new Element('p').set('html', 'Søker...').inject(title);
					},
					
		            onComplete: function(request) {
		                $('autocomplete').empty();
		                $('autocomplete').setProperty('class', 'active clearfix');
						
		                if (request) var results = JSON.decode(request);
		                if (results) objx.buildResults(results);
		             }
					 
		        });
				
		        arequest.send('s=' + escape($('searchstring').value) + '&format=json&filter=' + $('sportsearch').value);
	        }
        });
		
	},
	
    buildResults: function(results) {
		
		objx = this;
		
        var container = $('autocomplete'); //search results
        
        var close = new Element('img', {'src': this.basedir + '/public/assets/graphics/x.gif', 'style':'float:right;margin-top:0px;'}).inject(container);
        
        close.addEvent('click', function(event) { 
        	$('autocomplete').toggleClass('inactive');
        });
         
		if (results.length < 1) {
			var msg = new Element('p').set('html', 'Ingen treff').inject(container);			
		} else {
			results.each(function(result, i) {
				var searchHit = new Element('div', {'class':'search_hit'}).inject(container);
				
				searchHit.addEvent('click', function(event) {
					window.location = objx.basedir + '/tabell/vis/id/'+result.id;
				});
				
				var searchHeader = new Element('h3').inject(searchHit);
 				searchHeader.set('html', (i + 1) + '. ' + result.title);
 
				var link = new Element('a', {
					'href': objx.basedir + '/tabell/vis/id/' + result.id,
					'class': 'acA'
				}).set('html', objx.highlight(result.description)).inject(searchHeader, 'after');
				
				break1 = new Element('br').inject(link, 'bottom');
			});
		}
    },
	
	highlight: function(text) {
		var str = new String($('searchstring').value);
		return text.replace(eval('/'+str+'/ig'), '<span class="highlight">'+str.toUpperCase()+'</span>');
	},
		
	doSearch: function() {
		var sstring = $('searchstring').value;
		var sfilter = $('sportsearch').value;
		objx = this;
				
		if (sstring != '') {
			var searchreq = new Request(	{	
				method: 'get', 
				url: objx.basedir + '/treff/' + sstring + '/filter/' + sfilter,
				onSuccess: function(responseText, responseXML) {
				if ($('searchres')) $('searchres').destroy();
					if (responseText) {
						content = new Element('div', {
							'id': 'searchres'
						}).inject('search', 'after');
						content.set('html', responseText);
					}
				}
			});			
			
			searchreq.send('format=html');	
		}	
	},
	
	showSelect: function() {
		$('textsearch').removeClass('current');
		$('search_html').removeClass('visible');
		$('serie').addClass('current');
		$('select_html').addClass('visible');			
	},
	
	showSearch: function() {
		$('serie').removeClass('current');
		$('select_html').removeClass('visible');
		$('textsearch').addClass('current');
		$('search_html').addClass('visible');			
	},
	
	toggleAutoComplete: function(event) {
		ev = new Event(event);
			
		if (ev.target.id != 'autocomplete' && window.aShow)
			$('autocomplete').set('class', 'inactive clearfix');
	}
	
} );
