var rechergs_xmlHttp;

var highest_rech_result = 0;

var reference_res_number = 1;

var actual_load_counts = new Array();

var rechergs_pre_store = new Array();

var rechergs_store = new Array();

var rechergs_store_check = new Array();

var rider_resu_titles = new Array();

var rechergs_count = new Array();

function show_rechergs(element_id, rech_nr){
	var parameters;

	var cont = rechergs_pre_store[rech_nr][element_id];

	var cont_url = "";
	
	var comma = "";
	
	actual_tree_number = rech_nr;
	
	for(var i=0; i<cont.length; i++){
		cont_url += comma+cont[i];
		comma = "~";	
	}

	parameters = "id=" + element_id;
	parameters += "&content=" + cont_url;

	var url = "rechergs.php?ar_id="+ar_id;
	url += "&nr="+rech_nr;
	
	show_waiter_rech();

	rechergs_xmlHttp = new net.ContentLoader(url,rechergs_stateChanged, false, "POST", parameters);

}

function rechergs_stateChanged(){

	rechergs_store[actual_tree_number] = new Array();
		
	rechergs_store_check[actual_tree_number] = new Array();

	var new_inner = this.req.responseText;

	var count = new_inner.substr(0,new_inner.indexOf('*'));
	
	actual_middle_count = count;

	new_inner = new_inner_to_actual_rech_result(new_inner.substr(new_inner.indexOf('*')+1), actual_tree_number);

	split_new_inner(new_inner, count, true, actual_tree_number);

	actual_load_counts[actual_tree_number] = const_results_on_page;

	document.getElementById('results').style.height=(windowInnerHeight-document.getElementById('results').offsetTop)+"px";

	document.getElementById('results').style.visibility = 'visible';

	if(!document.getElementById('tab_resu'+actual_tree_number)){
		document.getElementById('results').innerHTML = document.getElementById('results').innerHTML + "<div id='tab_resu"+actual_tree_number+"' style='position:absolute; z-index:100; height:100%; border-left: 1px solid black; background-color: #ffffff;'></div>";
	}
	else{
		document.getElementById('tab_resu'+actual_tree_number).innerHTML = ""; 	
	}
	
	res_slider_pos[actual_tree_number] = 0;

	res_count[actual_tree_number] = count;
	
	res_det_bar_ids[actual_tree_number] = new Array();
	res_det_bar_be_ids[actual_tree_number] = new Array();
	res_det_bar_kinds[actual_tree_number] = new Array();

	var actual_res_tab = document.getElementById('tab_resu'+actual_tree_number);
	
	var table = document.getElementById('store_content_'+actual_tree_number).getElementsByTagName('table')[0];
	
	var rows = table.getElementsByTagName('tr');
	
	divide_rechergs(rows, actual_tree_number, count);
	
	var content = "<div style='position:absolute; width:90%' id='res_contents"+actual_tree_number+"'>"
					+"<table style='border: none;' border='1' align='center' width='100%'>";
					
	for(var i=1; i<rechergs_store[actual_tree_number].length; i++){
			content += "<tr>"+rechergs_store[actual_tree_number][i]+"</tr>";
	}					
					
	content += "</table></div>";
	
	actual_res_tab.innerHTML = document.getElementById('store_header_'+actual_tree_number).innerHTML+content;
	
	rider_resu_titles[actual_tree_number] =
	document.getElementById('rechdet_head'+actual_tree_number).getElementsByTagName('b')[0].innerHTML;
	
	reference_res_number = actual_tree_number;
	
	document.getElementById('res_contents'+actual_tree_number).style.width = (windowInnerWidth - document.getElementById('slider').offsetWidth-20)+"px";//!!konstante: willk. abst. zum slider
			
	if(!remote_rech_done) hide_waiter_rech();
	else{
		document.getElementById('init_timer').style.visibility = 'hidden';
		document.getElementById('init_timer_text').style.visibility = 'hidden';		
	}
	
	tab_click('resu'+actual_tree_number);
	
	adjust_slider();
	
	if(actual_load_counts[actual_tree_number] < count) reload_rest_results();
	
	hide_waiter_rech();
}

function result_stateChanged(){

		highest_rech_result++;
	
		actual_rech_parent = false;
		
		actual_tree_number = highest_rech_result;
	
		rechergs_pre_store[actual_tree_number] = new Array();
		rechergs_pre_store[actual_tree_number]['a_'+ar_id] = new Array();
		
		var new_inner = this.req.responseText;
		
		var found_element;
		
		var found_element_id;
		
		var found_cont_elements;
		
		var found_be_id;
		
		document.getElementById('blackbox').innerHTML = new_inner;
		
		var new_inner_split = document.getElementById('result_list').innerHTML.split(const_sep_rech_element);
	
		var new_front = document.getElementById('result_front').innerHTML;
		
		document.getElementById('blackbox').innerHTML = "";
		
		if(new_inner_split!=""){
		
			rechergs_count[highest_rech_result] = new_inner_split.length;
			
			var i,j;
			
			for(i=0; i<new_inner_split.length; i++){
			
				found_element = new_inner_split[i].split(const_sep_rech_field);
		
				found_element_id = found_element[0].split("_");
			
			found_cont_elements = found_element[1].split("*");
	
			for(j=0; j<found_cont_elements.length-1; j++){
				
				if(!rechergs_pre_store[actual_tree_number][found_cont_elements[j]]){
					rechergs_pre_store[actual_tree_number][found_cont_elements[j]] = new Array();	
				}
	
				rechergs_pre_store[actual_tree_number][found_cont_elements[j]][rechergs_pre_store[actual_tree_number][found_cont_elements[j]].length] = found_element[0];
				rechergs_pre_store[actual_tree_number]['a_'+ar_id] = rechergs_pre_store[actual_tree_number]['a_'+ar_id].concat(found_element[0]);				
			}
		}
	}
	else{
		rechergs_count[highest_rech_result] = 0;
	}
	
	hide_waiter_rech();
	
	set_lock_mouse_pointer(false);

	build_rech_tree();
	
	tab_stack.push("resu"+actual_tree_number);
	
	document.getElementById('results').innerHTML = document.getElementById('results').innerHTML + "<div id='tab_resu"+actual_tree_number+"' style='position:absolute; z-index:100; width:100%; height:1400px; border-left: 1px solid black; background-color: #ffffff;'></div>";
	
	document.getElementById('tab_resu'+actual_tree_number).innerHTML = new_front;
	
	actual_middle_count = -1;
	
	tab_click('resu'+actual_tree_number);
}

/*
function result_stateChanged(){
	if(remote_rech){
		tab_click('resu1');
	}

	highest_rech_result++;
	
	rechergs_store[highest_rech_result] = new Array();
	
	rechergs_store_check[highest_rech_result] = new Array();

	var new_inner = this.req.responseText;

	var count = new_inner.substr(0,new_inner.indexOf('*'));

	new_inner = new_inner_to_actual_rech_result(new_inner.substr(new_inner.indexOf('*')+1), highest_rech_result);

	split_new_inner(new_inner, count, true, highest_rech_result);

	actual_load_counts[highest_rech_result] = const_results_on_page;

	document.getElementById('results').style.height=(windowInnerHeight-document.getElementById('results').offsetTop)+"px";

	document.getElementById('results').style.visibility = 'visible';

	document.getElementById('results').innerHTML = document.getElementById('results').innerHTML + "<div id='tab_resu"+highest_rech_result+"' style='position:absolute; z-index:8; background-color: #ffffff;'></div>";

	tab_stack.push("resu"+highest_rech_result);
	
	res_slider_pos[highest_rech_result] = 0;

	res_count[highest_rech_result] = count;
	
	res_det_bar_ids[highest_rech_result] = new Array();
	res_det_bar_be_ids[highest_rech_result] = new Array();
	res_det_bar_kinds[highest_rech_result] = new Array();

	var actual_res_tab = document.getElementById('tab_resu'+highest_rech_result);
	
	var table = document.getElementById('store_content_'+highest_rech_result).getElementsByTagName('table')[0];
	
	var rows = table.getElementsByTagName('tr');
	
	divide_rechergs(rows, highest_rech_result, count);
	
	var content = "<div style='position:absolute; width:90%' id='res_contents"+highest_rech_result+"'>"
					+"<table style='border: none;' border='1' align='center' width='100%'>";
					
	for(var i=1; i<rechergs_store[highest_rech_result].length; i++){
			content += "<tr>"+rechergs_store[highest_rech_result][i]+"</tr>";
	}					
					
	content += "</table></div>";
	
	actual_res_tab.innerHTML = document.getElementById('store_header_'+highest_rech_result).innerHTML+content;
	
	rider_resu_titles[highest_rech_result] =
	document.getElementById('rechdet_head'+highest_rech_result).getElementsByTagName('b')[0].innerHTML;
	
	reference_res_number = highest_rech_result;
	
	document.getElementById('res_contents'+highest_rech_result).style.width = (windowInnerWidth - document.getElementById('slider').offsetWidth-20)+"px";//!!konstante: willk. abst. zum slider
			
	if(!remote_rech_done) hide_waiter_rech();
	else{
		document.getElementById('init_timer').style.visibility = 'hidden';
		document.getElementById('init_timer_text').style.visibility = 'hidden';		
	}

	tab_click('resu'+highest_rech_result);
	
	adjust_slider();
	
	if(actual_load_counts[highest_rech_result] < count) reload_rest_results();
}
*/
function reload_rest_results(){
	var actual_res_number = actual_tab.substr(4);
	
	do_load_rest_results(actual_load_counts[actual_res_number], actual_res_number);
}

function do_load_rest_results(min, actual_res_number){
	
	while(min<res_count[actual_res_number]){
		if(rechergs_store_check[actual_res_number][min]) min++;
		else break;
	}

	if(min<res_count[actual_res_number] && min > 0){
		
		for(var i=min; i<(Number(min)+const_results_on_page); i++){
			if(i<res_count[actual_res_number]) rechergs_store_check[actual_res_number][i] = true;
		}
	
		var url="rech_arid-"+ar_id+"-min-"+min+"-nr-"+actual_res_number+".html";
		reload_xmlHttp = new net.ContentLoader(url,rest_results_stateChanged);
	}
}

function rest_results_stateChanged(){

	var actual_res_number = actual_tab.substr(4);

	var new_inner = this.req.responseText;
	
	var min = Math.abs(new_inner.substr(0,new_inner.indexOf('*')));
	
	new_inner = new_inner.substr(new_inner.indexOf('*')+1);
	
	var count = new_inner.substr(0,new_inner.indexOf('*'));
	
	new_inner = new_inner_to_actual_rech_result(new_inner.substr(new_inner.indexOf('*')+1), actual_res_number);

	split_new_inner(new_inner, count, false, actual_res_number)

	if(document.getElementById('store_content_'+actual_res_number)){
	
		var actual_res_tab = document.getElementById('res_contents'+actual_res_number);
	
		var table = document.getElementById('store_content_'+actual_res_number).getElementsByTagName('table')[0];
		
		var rows = table.getElementsByTagName('tr');
	
		divide_rechergs(rows, actual_res_number, -1);
	
		var diff = res_slider_pos[actual_res_number];
		
		build_rech_content(diff, actual_res_tab, actual_res_number);
	
		actual_load_counts[actual_res_number] += const_results_on_page;
		if(actual_load_counts[actual_res_number] > count) actual_load_counts[actual_res_number] = count;
		
		if(actual_load_counts[actual_res_number]<count){
			document.getElementById('rechdet_load_count'+actual_res_number).innerHTML = "("+actual_load_counts[actual_res_number]+"/"+count+")";
			reload_rest_results();
		}
		else document.getElementById('rechdet_load_count'+actual_res_number).innerHTML = "";
	}
	
	rechdet_preview_blocked = true;
}

function reload_res_move(){

	var actual_res_number = actual_tab.substr(4);
		
	var diff = res_slider_pos[actual_res_number];
		
	var count = document.getElementById('store_count_'+actual_res_number).innerHTML;

	var actual_res_tab = document.getElementById('res_contents'+actual_res_number);
	
	var table = document.getElementById('store_content_'+actual_res_number).getElementsByTagName('table')[0];
	
	var rows = table.getElementsByTagName('tr');

	build_rech_content(diff, actual_res_tab, actual_res_number);

	if(actual_load_counts[actual_res_number] < diff+const_results_on_page){
		do_load_rest_results(diff, actual_res_number);
	}
}

function build_rech_content(diff, actual_res_tab, result_number){

	var content = "<table style='border: none;' border='1' align='center' width='100%'>";

	for(var i=diff+1; i<=diff+const_results_on_page; i++){
			if(i<=res_count[result_number])	content += "<tr>"+rechergs_store[result_number][i]+"</tr>";
			else break;
	}		

	content += "</table>";

	actual_res_tab.innerHTML = content;

	document.getElementById('res_contents'+result_number).style.width 
	= (windowInnerWidth - document.getElementById('slider').offsetWidth-20)+"px";//!!konstante: willk. abst. zum slider

	//rechdets_preview_hide();

	adjust_resu(result_number);
}

function split_new_inner(new_inner, count, do_init, result_number){

	document.getElementById('blackbox').innerHTML = new_inner;
	
	if(do_init){	
		var header = document.getElementById('blackbox_res_header').innerHTML;
		
		var content = document.getElementById('blackbox_res_content').innerHTML;

		if(document.getElementById('store_content_'+result_number)){
			document.getElementById('result_store').removeChild(document.getElementById('store_count_'+result_number));
			document.getElementById('result_store').removeChild(document.getElementById('store_header_'+result_number));
			document.getElementById('result_store').removeChild(document.getElementById('store_content_'+result_number));	
		}

		var store = document.getElementById('result_store').innerHTML;
		
		store += "<div id='store_count_"+result_number+"'>"+count+"</div>"
				+"<div id='store_header_"+result_number+"'>"+header+"</div><div id='store_content_"+result_number+"'>"+content+"</div>"; 
		document.getElementById('result_store').innerHTML = store;

	}
	else{
		var content = "<table>";
		
		if(document.getElementById('blackbox_res_content')) content += document.getElementById('blackbox_res_content').getElementsByTagName('table')[0].innerHTML;

		content += "</table>";
		
		if(document.getElementById('store_content_'+result_number)) document.getElementById('store_content_'+result_number).innerHTML = content;
	}
	
	document.getElementById('blackbox').innerHTML = "";
}

function new_inner_to_actual_rech_result(new_inner, result_number){
	new_inner = str_replace('res_contents','res_contents'+result_number, new_inner);
	new_inner = str_replace('rechdet_riders','rechdet_riders'+result_number, new_inner);
	new_inner = str_replace('rechdet_head','rechdet_head'+result_number, new_inner);
	new_inner = str_replace('rechdet_load_count','rechdet_load_count'+result_number, new_inner);
	new_inner = str_replace('rechdet_right_head','rechdet_right_head'+result_number, new_inner);
	new_inner = str_replace("close_res('resu","close_res('resu"+result_number, new_inner);
	new_inner = str_replace('rechdet_endofhead','rechdet_endofhead'+result_number, new_inner);	
	new_inner = str_replace('rechdet_container','rechdet_container'+result_number, new_inner);
	new_inner = str_replace('rechdet_cont_path','rechdet_cont_path'+result_number, new_inner);
	new_inner = str_replace('rechdet_cont_content','rechdet_cont_content'+result_number, new_inner);	
	
	return new_inner;
}

function divide_rechergs(rows, result_number, count){

	var j=0;

	for(var i=0; i<rows.length; i++){
		if(rows[i].innerHTML.substr(11,7)=='<tbody>' || rows[i].innerHTML.substr(15,7)=='<TBODY>'){
			var _count = rows[i].getElementsByTagName('span')[0].innerHTML;		
			rechergs_store[result_number][_count] = rows[i].innerHTML;
			j++;
		} 
	}
	
	if(count!=-1){
		for(j++; j<=count; j++){
			rechergs_store[result_number][j] = "<td><table><tbody><tr><td width='500'><span class='st'>"+j+" <i> loading... </i> </span></td><td><table><tbody><tr><td></td><td></td></tr><tr><td></td><td></td></tr><tr><td></td><td></td></tr><tr></tr></tbody></table></td></tr></tbody></table></td>";	
		}
	}
}

