var eingeklappt = 0;

function einblenden(elementname) {
	document.getElementById(elementname).style.display = "block";
	document.getElementById("showmore").style.display = "none";

	var ablauf = new Date();
	document.cookie = "hgalerie_show=more; expires="
			+ ablauf.toGMTString(ablauf.setTime(ablauf.getTime()
					+ (0.5 * 24 * 60 * 60 * 1000)));
}

function ausblenden(elementname) {
	var ausblenden_element = document.getElementById(elementname);

	ausblenden_element.style.display = "none";
	document.getElementById("showmore").style.display = "block";
	document.getElementById("modelle_label").style.display = "inline";

	document.cookie = "hgalerie_show=less; expires=-1";

	eingeklappt = 0;

	var tag_names = [ 'input', 'select' ];
	for ( var j = 0; j < tag_names.length; j++) {
		var form_elemente = ausblenden_element
				.getElementsByTagName(tag_names[j]);
		for ( var i = 0; i < form_elemente.length; i++) {
			reset_form_element(form_elemente[i]);
		}
	}
	zeigeBild(document.getElementsByName('bauart')[0]);
}

function click_einblenden(elementname) {
	einblenden(elementname);
	trackingReload.reload_all();
}

function click_ausblenden(elementname) {
	ausblenden(elementname);
	trackingReload.reload_all();
}

function zeigeBild(option) {
	var new_image = "/mobil/bilder/bauart/" + option.value + ".gif";
	if ($('bauartbild').src.match(new_image) == null) {
		$('bauartbild').src = new_image;
	}
}

function change_handler(event_or_element) {
	var element = Object.isElement(event_or_element) ? event_or_element : Event
			.element(event_or_element);
    if ( element.id == "hersteller" ) {
        $('selectmodelle').style.display = "inline";
        $('modelle_label').show();
        return;
    }
	
    $('modelle_label').hide();
	$('selectmodelle').hide();

	eingeklappt = 1;
	if (this != window) {
		element = this;
	}
	markiere_auswahl(element);
}

function ModellListen(boolHeadContained) {
	if (!eingeklappt) {
		document.getElementById("selectmodelle").style.display = "inline";
		document.getElementById("modelle_label").style.display = "inline";
	}
	var intOffSet; // Offset (1-True, 0-False)
	var i; // Zähler
	var arrModellListe; // Liste der Geräte
	var objModellAuswahl; // Auswahl des Modells
	var objHerstellerAuswahl; // Auswahl des Herstellers

	objModellAuswahl = document.forms['handygalerie'].modell; // Modell aus Auswahl übernehmen
	objHerstellerAuswahl = document.forms['handygalerie'].hersteller; // Hersteller aus Auswahl übernehmen
	objModellAuswahl.selectedIndex = 0; // Anfangswert setzen (Options-Wert für Select-Liste)
	objModellAuswahl.options.length = 1; // Anfangswert setzen (Gerätenamen)

	if (boolHeadContained)
		intOffSet = 1; // True
	else
		intOffSet = 0; // False

	//Modellauswahl neu erzeugen...

	if (objHerstellerAuswahl.selectedIndex >= intOffSet) {
		// Hersteller aus Auswahl im Array suchen
		var hersteller = objHerstellerAuswahl.options[objHerstellerAuswahl.selectedIndex].text;
		var modelle = data_for_anbieter[hersteller].produkte;
		var selectPos = 0;
		var nur_verfuegbar = document.forms['handygalerie'].elements["verfuegbarkeit"].checked;
		for ( var i = 0; i < modelle.length; i++) { // Liste der Geräte aufteilen in Options-Wert für Select-Liste und Gerätenamen
			if (nur_verfuegbar == false || modelle[i].verfuegbar == "-1") {
				objModellAuswahl.options.length = selectPos + 2; // 'Bitte auswählen' überspringen
				objModellAuswahl.options[selectPos + 1].value = modelle[i].id;
				objModellAuswahl.options[selectPos + 1].text = modelle[i].name;
				selectPos++;
			}
		} //for
	}

	//Herstellerauswahl neu erzeugen...
	objHerstellerAuswahl.selectedIndex = 0; // Anfangswert setzen (Options-Wert für Select-Liste)
	objHerstellerAuswahl.options.length = 1; // Anfangswert setzen (Herstellernamen)
	var selectPos = 0;
	var nur_verfuegbar = document.forms['handygalerie'].elements["verfuegbarkeit"].checked;
	for ( var hersteller_name in data_for_anbieter) {
		if (nur_verfuegbar == false || herstellerIsActive(hersteller_name)) {
			objHerstellerAuswahl.options.length = selectPos + 2; // 'Bitte auswählen' überspringen
			objHerstellerAuswahl.options[selectPos + 1].value = data_for_anbieter[hersteller_name].id;
			objHerstellerAuswahl.options[selectPos + 1].text = hersteller_name;
			if (hersteller == hersteller_name) {
				objHerstellerAuswahl.options[selectPos + 1].selected = true;
			}
			selectPos++;
		}
	}

} //function

function herstellerIsActive(hersteller_name) {
	var modelle = data_for_anbieter[hersteller_name].produkte;
	for ( var i = 0; i < modelle.length; i++) { // Liste der Geräte aufteilen in Options-Wert für Select-Liste und Gerätenamen
		if (modelle[i].verfuegbar == "-1") {
			return true;
		}
	} //for
	return false;
}

function getCookie(name) {
	var dc = document.cookie;
	var prefix = name + "=";
	var begin = dc.indexOf("; " + prefix);
	if (begin == -1) {
		begin = dc.indexOf(prefix);
		if (begin != 0)
			return null;
	} else {
		begin += 2;
	}
	var end = document.cookie.indexOf(";", begin);
	if (end == -1) {
		end = dc.length;
	}
	return unescape(dc.substring(begin + prefix.length, end));
}

function reset_form_element(element) {
	if (element.name == 'gprs') {
		return;
	}
	switch (element.tagName) {
	case "INPUT":
		switch (element.type) {
		case "text":
			element.value = "";
			break;
		case "checkbox":
			element.checked = false;
			break;
		}
		break;
	case "SELECT":
		for ( var i = 0; i < element.options.length; i++) {
			element.options[i].selected = false;
		}
	}
}

function wechsel_kamera() {
	document.getElementsByName('nocam')[0].onclick = function() {
		var aktiv_oder_nicht = this.checked;
		document.getElementsByName('cam_res')[0].disabled = aktiv_oder_nicht;
		document.getElementsByName('cam_af')[0].disabled = aktiv_oder_nicht;
		document.getElementsByName('cam_light')[0].disabled = aktiv_oder_nicht;
	}
}

function set_change_handler() {
	$('handysuche').getElements().each( function(s) {
		var event_type = s.type == 'checkbox' ? 'click' : 'change';
		s.observe(event_type, change_handler);
	});
}

function setDefault(field, value) {
	var checkboxes = $('handysuche').getInputs('checkbox', field);
	if (checkboxes.size()) {
		// mehrere Checkboxen haben gleichen Namen
		if (checkboxes.size() > 1) {
			checkboxes.each( function(s) {
				if (s.value == value) {
					s.checked = true;
				}
			});
		} else {
			if (value != '') {
				checkboxes.first().checked = true;
			}
		}
		return markiere_auswahl(checkboxes.first());
	}

	var textfields = $('handysuche').getInputs('text', field);
	if (textfields.size()) {
		var textfield = textfields.first();
		textfield.value = value;
		return markiere_auswahl(textfield);
	}

	var selectbox = $(field);
	if (!selectbox)
		return;

	if (selectbox.type.match(/^select/)) {
		for ( var i = 0; i < selectbox.options.length; i++) {
			if (selectbox.options[i].value == value) {
				selectbox.options[i].selected = true;
			}
		}
	}

	return markiere_auswahl(selectbox);
}

function markiere_auswahl(element) {
	if (element.tagName != 'INPUT' && element.tagName != 'SELECT') {
		return;
	}

	var group_for_name = {
		preismin :'preis',
		preismax :'preis',
		bluetooth :'schnittstelle',
		usb :'schnittstelle',
		irda :'schnittstelle',
		qwertz :'tastatur',
		touch :'tastatur',
		umts :'umts',
		umtsvideo :'umts',
		sprachwahl :'weitere',
		java :'weitere',
		gps :'weitere',
		syncml :'weitere',
		dual_sim :'weitere',
		hsdpa :'daten',
		hsupa :'daten',
		edge :'daten',
		hscsd :'daten',
		pop3 :'email',
		imap4 :'email',
		pushmail :'email',
		cam_res :'cam_res',
		nocam :'cam_res',
		cam_af :'cam_weitere',
		cam_light :'cam_weitere',
		mp3 :'audio',
		wma :'audio',
		aac :'audio',
		bt_profile :'bt_profile',
		gewicht :'bauart',
		outdoor :'bauart'
	};

	var name = element.name;
	var group = group_for_name[name];
	var label = document.getElementById((group ? group : name) + '_label');

	if (!label) {
		return;
	}

	if (ist_ausgewaehlt(element)) {
		if (!label.className.match(/ ausgewaehlt/)) {
			label.className = label.className + " ausgewaehlt";
		}
	} else {
		for ( var el_name in group_for_name) {
			if (group_for_name[el_name] == group
					&& ist_ausgewaehlt(document.getElementsByName(el_name)[0])) {
				return;
			}
		}

		label.className = label.className.replace(/ ausgewaehlt/, '');
	}
}

function ist_ausgewaehlt(element) {
	switch (element.tagName) {
	case "INPUT":
		switch (element.type) {
		case "text":
			return element.value != "";
		case "checkbox":
			return element.checked;
		}
		break;
	case "SELECT":
		for ( var i = 0; i < element.options.length; i++) {
			var option = element.options[i];
			if (option.selected && option.value != 0) {
				return true;
			}
		}
	}

	return false;
}

function bluetooth_handler() {
	$('bluetooth').observe(
			'click',
			function(event) {
				if ($('bluetooth').checked == false) {
					$('handysuche').getInputs('checkbox', 'bt_profile').each(
							function(s) {
								s.checked = false;
								markiere_auswahl($('handysuche').getInputs(
										'checkbox', 'bt_profile').first());
							});
				}
			});
}

function bluetooth_profile_handler() {
	$('handysuche').getInputs('checkbox', 'bt_profile').each( function(s) {
		s.observe('click', function(event) {
			var element = Event.element(event);
			if (element.checked) {
				$('bluetooth').checked = true;
				markiere_auswahl($('bluetooth'));
			}
		});
	});
}

function bauart_handler() {
	$('bauart').observe('change', function(event) {
		var element = Event.element(event);
		zeigeBild(element);
		change_handler(element);
	});
	zeigeBild($('bauart'))
}

var onload_before_search = window.onload;
Event.observe(window, 'load', function() {
	if (onload_before_search) {
		onload_before_search();
	}
	ModellListen(true);
	set_all_defaults();
	set_change_handler();
	wechsel_kamera();

	bauart_handler();
	bluetooth_handler();
	bluetooth_profile_handler();
    $('freitext_suche').value = '';
});
