
window.addEvent('domready', function(){
	// Select the search bar when loaded
	document.forms.search_form.q.focus();
	
	slide = new Fx.Slide('options'); //.hide('vertical');
	
	// Instantly hide the search options
	slide.element.parentNode.setStyle('height', '0px');
	slide.element.setStyle('margin', '-325px 0 0');
	
	$('options_toggle').addEvent('click', function(e){
		e.stop();
		slide.toggle();
	});

	ports = [];
	
	function togglePort(args) {
		splice = false;
		
		for (i = 0; i < ports.length; i++) {
			if (ports[i] == args) {
				splice = true;
				ports.splice(i, 1);
			}
		}
		
		if (!splice)
			ports.push(args);
	}
	
	function formatQuery() {
		var query = $('search_input').get('value');
		var args = query.split(' ');
		
		for (var i = 0; i < args.length; i++) {
			// Current item is the ports filter
			if (args[i].substr(0, 5) == 'port:') {
				args.splice(i, 1); // remove it
			}
		}
		query = args.join(' ');
		
		if (ports.length > 0)
			$('search_input').value = query + ' port:' + String(ports);
		else
			$('search_input').value = query;
	}
	
	$$('.service').each(function(el){
		var name = el.get('name');
		var port;
		
		if (name == 'http') port = 80;
		else if (name == 'https') port = 443;
		else if (name == 'telnet') port = 23;
		else if (name == 'ssh') port = 22;
		else if (name == 'snmp') port = 161;
		else port = 21; // FTP
		
		el.addEvent('click', function(evt){
			togglePort(port);
			formatQuery();
		});
	});
});
