var Ranking = null;
var RankingShow = null;

function soap_init() {
	if(Ranking == null)
		Ranking = new RankingService();
	if(RankingShow == null)
		RankingShow = new RankingShowService();
	Ranking.staedteInBundesland.callback = function(staedte) {
		var sel_stadt = document.getElementById('select_stadt');
		clearList(sel_stadt, 1);
		for(var i = 0; i < staedte.length; i++) {
			addOption(sel_stadt, staedte[i],
					staedte[i]);
		}	
	};
	RankingShow.staedte.callback = function(staedte) {
		var sel_stadt = document.getElementById('select_stadt_show');
		clearList(sel_stadt, 2);
		clearList(document.getElementById('select_krankenhaus_show'), 2);
		clearList(document.getElementById('select_fachbereich_show'), 2);
		if(staedte == null)
			return;
		for(var i = 0; i < staedte.length; i++)
			addOption(sel_stadt, staedte[i], staedte[i]);
	};
}

function staedteAktualisieren() {
	if(Ranking == null)
		soap_init();
	var bundesland_id = document.getElementById('select_bundesland').value;
	if(bundesland_id < 0)
		return;
	Ranking.callAsync = true;
	Ranking.staedteInBundesland(bundesland_id);
	Ranking.callAsync = false;
	//var staedte = Ranking.staedteInBundesland(bundesland_id); 
}

function krankenhaeuserAktualisieren() {
	if(Ranking == null)
		soap_init();
	var stadt_id = document.getElementById('select_stadt').value;
	if(stadt_id < 0)
		return;
	var krankenhaeuser = Ranking.krankenhaeuserInStadt(stadt_id); 
	var sel_krankenhaus = document.getElementById('select_krankenhaus');
	clearList(sel_krankenhaus, 1);
	for(var i = 0; i < krankenhaeuser.length; i++)
		addOption(sel_krankenhaus, krankenhaeuser[i].id, krankenhaeuser[i].name);
}

function show_staedte() {
	//var fachbereich_id = document.getElementById('select_fachbereich_show').value;
	var bundesland_id = document.getElementById('select_bundesland_show').value;
	if(bundesland_id < 0)
		return;
	if(RankingShow == null)
		soap_init();
	RankingShow.callAsync = true;
	RankingShow.staedte(bundesland_id);
	RankingShow.callAsync = false;
//	var staedte = RankingShow.staedte(bundesland_id);
}

function show_krankenhaeuser() {
	var bundesland_id = document.getElementById('select_bundesland_show').value;
	var stadt_name = document.getElementById('select_stadt_show').value;
	if(bundesland_id < 0 || stadt_name < 0)
		return;
	if(RankingShow == null)
		soap_init();
	var krankenhaeuser = RankingShow.stadtKrankenhaeuser(bundesland_id, stadt_name);
	var sel_krankenhaus = document.getElementById('select_krankenhaus_show');
	clearList(sel_krankenhaus, 2);
	clearList(document.getElementById('select_fachbereich_show'), 2);
	if(krankenhaeuser == null)
		return;
	for(var i = 0; i < krankenhaeuser.length; i++)
		addOption(sel_krankenhaus, krankenhaeuser[i].id, krankenhaeuser[i].name);
	show_fachbereiche();
}

function show_fachbereiche() {
	var krankenhaus_id = document.getElementById('select_krankenhaus_show').value;
	var sel_fachbereich = document.getElementById('select_fachbereich_show');
	if(krankenhaus_id < 0)
		return;
	if(RankingShow == null)
		soap_init();
	var fachbereiche = RankingShow.fachbereiche(krankenhaus_id);
	clearList(sel_fachbereich, 2);
	if(fachbereiche == null)
		return;
	for(var i = 0; i < fachbereiche.length; i++)
		addOption(sel_fachbereich, fachbereiche[i].id, fachbereiche[i].name);
}

function addOption(sel_element, value, caption, selected) {
	var opt = document.createElement('option');
	opt.value = value;
	opt.appendChild(document.createTextNode(caption));
	if(selected)
		opt.setAttribute('selected', 'selected');
	sel_element.appendChild(opt);
}

function clearList(sel_element, skip) {
	var _opts = sel_element.getElementsByTagName('option');
	for(var i = _opts.length - 1; i >= skip; i--)
		sel_element.removeChild(_opts[i]);
}

function checkShowInput() {
	var _b = document.getElementById('select_bundesland_show').value;
	if(_b <= 0) {
		alert('Bitte wählen Sie ein Bundesland aus.');
		return false;
	}
	var _s = document.getElementById('select_stadt_show').value;
	if(_s <= 0) {
		alert('Bitte wählen Sie eine Stadt aus.');
		return false;
	}
	return true;
}

