// Unicp Search Engine v.1.0 - Copyright 2007, All rights reserved. Contact schweikhard@finance.uni-frankfurt.de for licensing
if (typeof(searchtools)!='boolean') document.writeln("<script language='JavaScript' type='text/javascript' src='/searchtools.inc.js'></script>");
if (typeof(school_search_base)!='boolean') document.writeln("<script language='JavaScript' type='text/javascript' src='/js/school_search_base.js'></script>");
var first_focus_qs=true;
num_of_rows=3;
function disable_type_checkboxes(clicked_type) {
		if (clicked_type==1) {
			if (document.search_settings.uni.checked==0) document.search_settings.fh.disabled="disabled";
			else document.search_settings.fh.disabled="";
		} else
		if (clicked_type==2) {
			if (document.search_settings.fh.checked==0) document.search_settings.uni.disabled="disabled";
			else document.search_settings.uni.disabled="";
		}
}
function update_search_frame() {
	var output="";
	var search_str=document.search_settings.search_str.value.toLowerCase();
	search_str = search_str.replace(/\s+/g, " ");
	search_str=search_str.replace(/^\s+/, "");
	search_str=search_str.replace(/\s+$/, "");
	var results=new Array();
	var uni_checked = document.search_settings.uni.checked;
	var fh_checked = document.search_settings.fh.checked;
	var selected_city=document.search_settings.selector_city.options[document.search_settings.selector_city.selectedIndex].value;
	var selected_state=document.search_settings.selector_state.options[document.search_settings.selector_state.selectedIndex].value;
	var selected_country=document.search_settings.selector_country.options[document.search_settings.selector_country.selectedIndex].value;
	var j=0,k;
	//Suchergebnisse ermitteln und in einem Array zusammenstellen
	for(var i=0;i<e.length;i++){
		var region_match;
		if ((uni_checked && e[i][3]==1) || (fh_checked && e[i][3]==2)) {
			region_match=false;
			if (selected_city>0) {
				for(k=0;k<e[i][4].length;k++) {
					if (e[i][4][k][0]==selected_city) {region_match=true;break;}
				}
				if (!region_match) continue;
			} else if (selected_state>0) {
				for(k=0;k<e[i][4].length;k++) {
					if (e[i][4][k][1]==selected_state) {region_match=true;break;}
				}
				if (!region_match) continue;				
			} else if (selected_country>0) {
				for(k=0;k<e[i][4].length;k++) {
					if (e[i][4][k][2]==selected_country) {region_match=true;break;}
				}
				if (!region_match) continue;								
			}
			if (search_str=="" || first_focus_qs || (search_str!="" && match_multiple_strings(search_str,e[i][5]))) {results[j++]=i;}//output+=sc[i][1] + ", ";
		}
	}
	//berechnen wieviele spalten die tabelle benötigt
	var num_of_cols=Math.floor(results.length/num_of_rows);
	var remainder=results.length % num_of_rows;
	if (remainder>0) num_of_cols++;
	//tabelle zeichnen
	output+="<table width=\""+ (80*num_of_cols) + "\" height=\"78\">";
	for (var row=0;row<num_of_rows;row++) {
		output+="<tr>";
		for (var col=0;col<num_of_cols;col++){
			if (col%2==1) output+="<td class=\"odd\">"; else output+="<td>";
			result_no=col*num_of_rows+row;
			if (result_no<results.length) output+="<a href=\""+ e[results[result_no]][7]+"\" target=\"_top\" title=\""+ e[results[result_no]][2]+"\">"+e[results[result_no]][1]+"</a>";
			output+="</td>";
		}
		output+="</tr>";
	}
	output+="</table>";
	// ausgabe im frame
	search_frame.document.getElementById("search_div").innerHTML = output;
}
function flush_options(obj) {
	 while (obj.length>1) {
		obj[obj.length-1]=null;
	}
}

function init_selectors(reset_country,reset_state) {
	var a;
	if (reset_country) {
		var old_country_selection=document.search_settings.selector_country.options[document.search_settings.selector_country.selectedIndex].value;
		flush_options(document.search_settings.selector_country.options);
		var new_country_index=0;
		for(a=0;a<p.length;a++) {
			document.search_settings.selector_country.options[a+1]=new Option(p[a][0],p[a][1],false,false);
			if (old_country_selection==p[a][1]) new_country_index=a+1;
		}
		document.search_settings.selector_country.selectedIndex=new_country_index;
	}	
	if (reset_state) {
		var old_state_selection=document.search_settings.selector_state.options[document.search_settings.selector_state.selectedIndex].value;
		flush_options(document.search_settings.selector_state.options);
		var unsorted_states=new Array();
		var new_state_index=0;
		for(a=0;a<r.length;a++) {
			if (document.search_settings.selector_country.selectedIndex<=0 || (document.search_settings.selector_state.selectedIndex>0 && is_part_of_array(p[search_array(p,document.search_settings.selector_country.options[document.search_settings.selector_country.selectedIndex].value)][2],r[a][1])))
			unsorted_states[unsorted_states.length]=new Array(r[a][0],r[a][1]);
		}
		unsorted_states.sort(CompareArrays);
		for (a=0;a<unsorted_states.length;a++) {
			document.search_settings.selector_state.options[a+1]=new Option(unsorted_states[a][0],unsorted_states[a][1],false,false);
			if (old_state_selection==unsorted_states[a][1]) new_state_index=a+1;
		}
		document.search_settings.selector_state.selectedIndex=new_state_index;
	}
	var unsorted_cities=new Array();
	for(a=0;a<v.length;a++) {
		if ((document.search_settings.selector_state.selectedIndex<=0) || ((document.search_settings.selector_state.selectedIndex>0) && (is_part_of_array(r[search_array(r,document.search_settings.selector_state.options[document.search_settings.selector_state.selectedIndex].value)][2],v[a][1]))))
		{unsorted_cities[unsorted_cities.length]=new Array(v[a][0],v[a][1]);}
	}
	var old_city_selection=document.search_settings.selector_city.options[document.search_settings.selector_city.selectedIndex].value;
	flush_options(document.search_settings.selector_city.options);
	unsorted_cities.sort(CompareArrays);
	var new_city_index=0;
	for (a=0;a<unsorted_cities.length;a++) {
		document.search_settings.selector_city.options[a+1]=new Option(unsorted_cities[a][0],unsorted_cities[a][1],false,false);
		if (old_city_selection==unsorted_cities[a][1]) new_city_index=a+1;
	}
	document.search_settings.selector_city.selectedIndex=new_city_index;
}
function update_after_state_change(state) {
	if (state==0) {init_selectors(false,true);return;}
	var old_city_selection=document.search_settings.selector_city.options[document.search_settings.selector_city.selectedIndex].value;
	var st_idx=search_array(r,document.search_settings.selector_state.options[document.search_settings.selector_state.selectedIndex].value);
	flush_options(document.search_settings.selector_city.options);
	var unsorted_cities=new Array();
	var new_city_index=0;
	for(var a=0;a<r[st_idx][2].length;a++) {
		var ci_idx=search_array(v,r[st_idx][2][a]);
		unsorted_cities[a]=new Array(v[ci_idx][0],v[ci_idx][1]);
	}
	unsorted_cities.sort(CompareArrays);
	for (a=0;a<unsorted_cities.length;a++) {
		document.search_settings.selector_city.options[a+1]=new Option(unsorted_cities[a][0],unsorted_cities[a][1],false,false);
		if (old_city_selection==unsorted_cities[a][1]) new_city_index=a+1;
	}
	document.search_settings.selector_city.selectedIndex=new_city_index;
}
function update_after_country_change(country) {
	if (country==0) {init_selectors(false,true);return;}
	var co_idx=search_array(p,country);
	var refresh_cities=true;
	if (is_part_of_array(p[co_idx][2],document.search_settings.selector_state.options[document.search_settings.selector_state.selectedIndex].value)) refresh_cities=false;
	var old_state_selection=document.search_settings.selector_state.options[document.search_settings.selector_state.selectedIndex].value;
	var old_city_selection=(is_part_of_array(p[co_idx][2],old_state_selection) ? 0 : document.search_settings.selector_city.options[document.search_settings.selector_city.selectedIndex].value);
	flush_options(document.search_settings.selector_state.options);
	if (refresh_cities) flush_options(document.search_settings.selector_city.options);
	var unsorted_cities=new Array();
	var c=1, new_state_index=0;
	for(var a=0;a<p[co_idx][2].length;a++) {			// Schleife über alle Staaten in dem Land
		var st_idx=search_array(r,p[co_idx][2][a]);
		document.search_settings.selector_state.options[a+1]=new Option(r[st_idx][0],p[co_idx][2][a],false,false);
		if (old_state_selection==p[co_idx][2][a]) new_state_index=a+1;
		if (refresh_cities) for(var b=0;b<r[st_idx][2].length;b++) {		// Schleife über alle Städte im jeweiligen Staat
			ci_idx=search_array(v,r[st_idx][2][b]);
			unsorted_cities[c-1]=new Array(v[ci_idx][0],r[st_idx][2][b]);
			c++;
		}
	}
	document.search_settings.selector_state.selectedIndex=new_state_index;
	if (refresh_cities) {
		unsorted_cities.sort(CompareArrays);
		var new_city_index=0;
		for (var a=0;a<unsorted_cities.length;a++) {
			document.search_settings.selector_city.options[a+1]=new Option(unsorted_cities[a][0],unsorted_cities[a][1],false,false);
			if (old_city_selection==unsorted_cities[a][1]) new_city_index=a+1;
		}
		document.search_settings.selector_city.selectedIndex=new_city_index;
	}
}
 //-->