// podrobne vyhledavani

function option_exists(select, id) {
	var result = false;
	for (var i=0; i<select.options.length; i++) {
		if (select.options[i].value == id) {
			result = true;
			break;
		}
	}
	return result;
}

function add_option(select, id, text, check) {
	var exists = false;
	if (check) {
		exists = option_exists(select, id);
	}
	if (!exists) {
		var option = document.createElement('option');
		option.value = id;
		option.appendChild(document.createTextNode(text));
		select.appendChild(option);
	}
}

function rem_option(select, id) {
	for (var i=select.options.length-1; i>=0; i--) {
		if (select.options[i].value == id) {
			select.removeChild(select.options[i]);
			break;
		}
	}
}

function rem_selected_options(select) {
	for (var i=select.options.length-1; i>=0; i--) {
		if (select.options[i].selected) {
			select.removeChild(select.options[i]);
		}
	}
}

function select_all_options(select) {
	for (var i=0; i<select.options.length; i++) {
		select.options[i].selected = true;
	}
}

function set_okresy() {
	var so = document.getElementById('okres');
	if (so) {
		for (var k in json.data) {
			add_option(so, k, json.data[k], false);
		}
	}
}

function kraj_change() {
	if (!document.getElementById) return;
	var sk = document.getElementById('kraj');
	var so = document.getElementById('okres');
	var sm = document.getElementById('mesto');

	if (sk && so && sm) {
		for (var i=so.options.length-1; i>=0; i--) {
			if (so.options[i].value != '-1') {
				so.removeChild(so.options[i]);
			}
		}
		for (var i=sm.options.length-1; i>=0; i--) {
			if (sm.options[i].value != '-1') {
				sm.removeChild(sm.options[i]);
			}
		}
		var kraj_id = sk.options[sk.selectedIndex].value;
		json.init();
		json.ondata = set_okresy;
		json.url = 'ajax/districts.php?type=kraj&id='+ kraj_id;
		json.open();
	}
}

function set_mesta() {
	var sm = document.getElementById('mesto');
	if (sm) {
		for (var k in json.data) {
			add_option(sm, k, json.data[k], false);
		}
	}
}

function okres_change() {
	if (!document.getElementById) return;
	var so = document.getElementById('okres');
	var sm = document.getElementById('mesto');

	if (so && sm) {
		for (var i=sm.options.length-1; i>=0; i--) {
			if (sm.options[i].value != '-1') {
				sm.removeChild(sm.options[i]);
			}
		}
		var okres_id = so.options[so.selectedIndex].value;
		if (okres_id != '-1') {
			json.init();
			json.ondata = set_mesta;
			json.url = 'ajax/districts.php?type=okres&id='+ okres_id;
			json.open();
		}
	}
}

function show(element) {
	if (element)
		element.style.display = '';
}

function hide(element) {
	if (element)
		element.style.display = 'none';
}

function objtype_change() {
	if (!document.getElementById) return;
	var ob = document.getElementById('objtype');

	var r1 = document.getElementById('tr_rooms');
	var r2 = document.getElementById('tr_buildyear');
	var r3 = document.getElementById('tr_housetype');
	var r4 = document.getElementById('tr_area');
	var r5 = document.getElementById('tr_livingarea');
	var r6 = document.getElementById('tr_landarea');
	var r7 = document.getElementById('tr_state');
	var r8 = document.getElementById('tr_ownership');
	var r9 = document.getElementById('tr_building');
	var r10 = document.getElementById('tr_floors');
	var r11 = document.getElementById('tr_purpose');
	var r12 = document.getElementById('tr_housetype_cottage');
	var r13 = document.getElementById('tr_infrastructure');
	var r14 = document.getElementById('tr_garagetype');
	var r15 = document.getElementById('tr_garagestands');
	var r16 = document.getElementById('tr_capacity');
	var r17 = document.getElementById('tr_buildarea');
	var r18 = document.getElementById('tr_flats');
	var r19 = document.getElementById('tr_floor');

	if (ob) {
		var id = parseInt(ob.options[ob.selectedIndex].value);

		// byt
		if (id == 0) {
			show(r1); hide(r2); hide(r3); show(r4); hide(r5); hide(r6); show(r7); show(r8); show(r9); hide(r10); hide(r11); hide(r12); hide(r13); hide(r14); hide(r15); hide(r16); hide(r17); hide(r18); show(r19);
		}
		// nebytove prostory
		else if (id == 1) {
			hide(r1); hide(r2); hide(r3); show(r4); hide(r5); hide(r6); hide(r7); hide(r8); hide(r9); hide(r10); show(r11); hide(r12); hide(r13); hide(r14); hide(r15); hide(r16); hide(r17); hide(r18); hide(r19);
		}
		// rodinny dum
		else if (id == 2) {
			hide(r1); show(r2); show(r3); hide(r4); show(r5); show(r6); hide(r7); hide(r8); hide(r9); show(r10); hide(r11); hide(r12); hide(r13); hide(r14); hide(r15); hide(r16); hide(r17); hide(r18); hide(r19);
		}
		// chata nebo chalupa
		else if (id == 3) {
			hide(r1); show(r2); show(r3); hide(r4); show(r5); show(r6); hide(r7); hide(r8); hide(r9); show(r10); hide(r11); show(r12); hide(r13); hide(r14); hide(r15); hide(r16); hide(r17); hide(r18); hide(r19);
		}
		// pozemek
		else if (id == 4) {
			hide(r1); hide(r2); hide(r3); show(r4); hide(r5); hide(r6); hide(r7); hide(r8); hide(r9); hide(r10); hide(r11); hide(r12); show(r13); hide(r14); hide(r15); hide(r16); hide(r17); hide(r18); hide(r19);
		}
		// garaz
		else if (id == 5) {
			hide(r1); hide(r2); hide(r3); show(r4); hide(r5); hide(r6); hide(r7); show(r8); hide(r9); hide(r10); hide(r11); hide(r12); hide(r13); show(r14); show(r15); hide(r16); hide(r17); hide(r18); hide(r19);
		}
		// hotel nebo penzion
		else if (id == 6) {
			hide(r1); show(r2); hide(r3); hide(r4); hide(r5); show(r6); hide(r7); hide(r8); hide(r9); show(r10); hide(r11); hide(r12); hide(r13); hide(r14); hide(r15); show(r16); show(r17); hide(r18); hide(r19);
		}
		// cinzovni dum
		else if (id == 7) {
			hide(r1); show(r2); hide(r3); hide(r4); hide(r5); show(r6); hide(r7); hide(r8); hide(r9); show(r10); hide(r11); hide(r12); hide(r13); hide(r14); hide(r15); hide(r16); show(r17); show(r18); hide(r19);
		}
	}
}

function rem_district() {
	if (!document.getElementById) return;
	var sd = document.getElementById('districts');
	if (sd) {
		rem_selected_options(sd);
	}
}

function add_district() {
	if (!document.getElementById) return;
	var sk = document.getElementById('kraj');
	var so = document.getElementById('okres');
	var sm = document.getElementById('mesto');
	var sd = document.getElementById('districts');

	if (sk && so && sm && sd) {
		var id = sm.options[sm.selectedIndex].value;
		if (id != '-1') {
			add_option(sd, 'M-'+id, sm.options[sm.selectedIndex].text, true);
		}
		else {
			var id = so.options[so.selectedIndex].value;
			if (id != '-1') {
				add_option(sd, 'O-'+id, so.options[so.selectedIndex].text, true);
			}
			else {
				var id = sk.options[sk.selectedIndex].value;
				if (id != '-1') {
					add_option(sd, 'K-'+id, sk.options[sk.selectedIndex].text, true);
				}
			}
		}
	}
}

function select_rooms(size) {
	if (!document.getElementById) return;
	if (size == 1) {
		var r10 = document.getElementById('room10');
		var r1k = document.getElementById('room1k');
		var r11 = document.getElementById('room11');
		if (r10 && r1k && r11) {
			if (r10.checked && r1k.checked && r11.checked) {
				r10.checked = false;
				r1k.checked = false;
				r11.checked = false;
			}
			else {
				r10.checked = true;
				r1k.checked = true;
				r11.checked = true;
			}
		}
	}
	else if (size == 2) {
		var r20 = document.getElementById('room20');
		var r2k = document.getElementById('room2k');
		var r21 = document.getElementById('room21');
		if (r20 && r2k && r21) {
			if (r20.checked && r2k.checked && r21.checked) {
				r20.checked = false;
				r2k.checked = false;
				r21.checked = false;
			}
			else {
				r20.checked = true;
				r2k.checked = true;
				r21.checked = true;
			}
		}
	}
	else if (size == 3) {
		var r3k = document.getElementById('room3k');
		var r31 = document.getElementById('room31');
		if (r3k && r31) {
			if (r3k.checked && r31.checked) {
				r3k.checked = false;
				r31.checked = false;
			}
			else {
				r3k.checked = true;
				r31.checked = true;
			}
		}
	}
	else if (size == 4) {
		var r4k = document.getElementById('room4k');
		var r41 = document.getElementById('room41');
		if (r4k && r41) {
			if (r4k.checked && r41.checked) {
				r4k.checked = false;
				r41.checked = false;
			}
			else {
				r4k.checked = true;
				r41.checked = true;
			}
		}
	}
}

function search_onsubmit() {
	if (!document.getElementById) return;
	var sd = document.getElementById('districts');
	if (sd) {
		select_all_options(sd);
	}
}

function search_onload() {
	objtype_change();
}

window.onload = search_onload;
