var searchready = false;
window.addEvent('domready', function(){
	var el = $('num_results').getElement('.slider');
	var values = [10,25,50,75,100];
	new Slider(el, el.getElement('.knob'), {
		steps: 4,
		snap: true,
		onComplete: function(value){
			update('results',values[value])
		}
	}).set(1);
	var el = $('price_min').getElement('.slider');
	var upd = $('price_min').getElement('.upd');
	var fx = new Fx.Tween(upd);
	var values2 = [0,100,500,'1k','2k','5k','10k','20k','50k','100k','200k','500k','750k','1m','2m','5m','10m'];
	new Slider(el, el.getElement('.knob'), {
		steps: 16,
		onComplete: function(value){
			update('price_min',values2[value])
		},
		onChange: function(value){
			upd.set('html',values2[value]);
			fx.set('left', (value*5.5)-17);
		}
	}).set(0);
	var el = $('price_max').getElement('.slider');
	var upd2 = $('price_max').getElement('.upd');
	var fx2 = new Fx.Tween(upd2);
	new Slider(el, el.getElement('.knob'), {
		steps: 16,
		onComplete: function(value){
			update('price_max',values2[value])
		},
		onChange: function(value){
			upd2.set('html',values2[value]);
			fx2.set('left', (value*5.5)-17);
		}
	}).set(16);
	var el = $('length_min').getElement('.slider');
	var upd3 = $('length_min').getElement('.upd');
	var fx3 = new Fx.Tween(upd3);
	new Slider(el, el.getElement('.knob'), {
		range: [0,50],
		onComplete: function(value){
			update('length_min',value)
		},
		onChange: function(value){
			upd3.set('html',value);
			fx3.set('left',(value*1.76)-17);
		}
	}).set(0);
	ready();
	var el = $('length_max').getElement('.slider');
	var upd4 = $('length_max').getElement('.upd');
	var fx4 = new Fx.Tween(upd4);
	new Slider(el, el.getElement('.knob'), {
		range: [0,50],
		onComplete: function(value){
			update('length_max',value)
		},
		onChange: function(value){
			upd4.set('html',value);
			fx4.set('left',(value*1.76)-17);
		}
	}).set(50);

	var myAccordion = new Accordion($('accordion'), 'span.toggler', 'div.element', {
		opacity: false
	});

});
function ready(){
	searchready = true;
}
var hash = new Hash({page:1});
function paginate(){
	if(hash.get('page') == 1)
		document.getElementById('back').style.display = 'none';
	else
		document.getElementById('back').style.display = '';

	if(hash.get('page') == Math.ceil(hash.get('num_results')/hash.get('results')))
		document.getElementById('forward').style.display = 'none';
	else
		document.getElementById('forward').style.display = '';
}
function update(key, value){
	if(key != 'page' && (hash.get('page') != 1)){
		hash.set('page', '1');
		$('pagecount').set('html','1');
	}else if(key == 'page'){
		$('pagecount').set('html',value);
	}
	hash.set(key, value);
	paginate();
	if(!searchready)
		return;
	$('results').empty();
	var loader = new Element('div',{'class': 'loader'});
	loader.inject($('results'));
	url = '?1=1';
	hash.each(function(value, key){
		url = url+'&'+key+'='+value;
	});
	new Request.JSON({
		url: 'search.php'+url,
		onComplete: function(jsonObj) {
				$('results').empty();
			if(jsonObj){
				if(jsonObj[0]){
					hash.set('num_results', 1);
					new Element('div', {'class':'graph','id' : 'container'}).inject($('results'));
					graphing(jsonObj);
				}else{
					hash.set('num_results', jsonObj.data[0].num_results);
					manage(jsonObj.data);
				}
			}else
				hash.set('num_results', 1);
			paginate();
		}
	}).send();
}

function graphing(json_data){
	window.addEvent('domready', function(){
		var d1 = [];
		var d2 = [];
		var i=0;
		json_data[1].data.each(function(item){
			d1.push([item]);
		});
		json_data[0].total.each(function(item){
			d2.push([i,item]);
			i = i+1;
		});
		var f = Flotr.draw(	
			$('container'),
			[{data:d2, points: {show: true},lines: {show: true}}],
			{
				xaxis:{noTicks: 30,tickFormatter: function(n){ return Math.floor(n); },min: 0,max: 30},
				mouse:{track: true,lineColor: 'black',sensibility: 10,trackDecimals: 0,trackFormatter: function(obj){ return "<div class='graphdomains'>" + d1[obj.x] +'</div>' }}
			}
		);	
	});
}
var manage = function(list) {
	list.each(function(item) {
		if(!item.num_results){
			var parent = new Element('div',{'class': 'result'});
			var info = new Element('a', {'href': 'http://namebio.com/info/'+item.domain, 'title':'information'}).inject(parent);
			new Element('span', {'class': 'domain','html': item.domain}).inject(info);
			var image = new Element('span', {'class': 'info'}).inject(parent);
			var info = new Element('a', {'href': 'http://namebio.com/info/'+item.domain, 'title':'information'}).inject(image);
			new Element('img', {'src': 'images/information.png', 'alt':'information'}).inject(info);
			new Element('span', {'class': 'price','html': '$'+item.cash_f}).inject(parent);
			new Element('span', {'class': 'date','html': item.date}).inject(parent);
			new Element('span', {'class': 'location','html': item.location}).inject(parent);
			parent.inject($('results'));
		}
	});
};
function page(title){
	if(title == 'first')
		update('page','1');
	else if(title == 'previous')
		update('page',hash.get('page')-1);
	else if(title == 'next')
		update('page',hash.get('page')*1+1);
	else
		update('page',Math.ceil(hash.get('num_results')/hash.get('results')));
}
function truefalse(object){
	if(object.alt == 'true'){
		object.src = 'images/false.png';
		object.alt = 'false';
	}else{
		object.src = 'images/true.png';
		object.alt = 'true';
	}
	update(object.id,object.alt);
}
function dropdown(key,object){
	update(key,object.options[object.selectedIndex].value);
}
function textbox(key,object){
	var run = function(){update(key,object.value);}
	if (object.zid){
		clearTimeout(object.zid);
	}
	object.zid = setTimeout(run,1000);
}
var current = '';
var current_obj = '';
function searchbox(object){
	var parent = object.parentNode.parentNode;
	if(parent.className == 'inactive' || parent.className == 'rollover'){
		parent.className = 'active';
		if(current == ''){
			document.getElementById('general').className = 'inactive';
			document.getElementById('general_c').style.display = 'none';
			document.getElementById(object.title+'_c').style.display = '';
		}else{
			current.className = 'inactive';
			document.getElementById(current_obj.title+'_c').style.display = 'none';
			document.getElementById(object.title+'_c').style.display = '';
		}
		current = parent;
		current_obj = object;
	}
}
function rollover(object){
	var parent = object.parentNode.parentNode.className;
	if(parent == "active")
		return;
	else if(parent == "rollover")
		object.parentNode.parentNode.className = "inactive";
	else{
		object.parentNode.parentNode.className = "rollover";
	}
}
function navroll(object){
	object = object.parentNode;
	if(object.className != 'active'){
		if(object.style.backgroundColor == '' || object.style.backgroundColor == "#787878")
			object.style.backgroundColor = '#787878';
		else
			object.style.backgroundColor = '';
	}
}
function csv(){
	url = 'http://namebio.com/namebio.csv?csv=true'
	hash.each(function(value, key){
		url = url+'&'+key+'='+value;
	});
	location.href = url;
}
function popout(){
	url = 'http://namebio.com/search.php?popout=true'
	hash.each(function(value, key){
		url = url+'&'+key+'='+value;
	});
	window.open(url, '', "width=760,scrollbars=yes");
}
var cancel = "";

function cancelgotolink(){
	cancel = true;
}

function gotolink(url){
	if(cancel)
		cancel = false;
	else
		window.location = url;
}