var zaehler = 0;
var rechtsgebieteValues = new Array();
var rechtsgebieteText = new Array();

function buildButtons() {
	// help buttons
	$.each($('#anwaltsuche p.help'), function(key,obj) {
		$(obj).children('span.helptext').before('<span class="buttons"><a href="#" class="helpButton" tile="Hilfe">Hilfe</a></span>');
		$('a.helpButton').click(function() {
			$(this).parent().siblings('span.helptext').css('height','auto');
			$(this).parent().siblings('span.helptext').show(); return false;
		});
	});
	// help-close buttons
	$.each($('#anwaltsuche span.helptext'), function(key,obj) {
		$(obj).hide().append('<a href="#" class="close" title="Hilfe schließen">Hilfe schließen</a>');
		$('span.helptext a.close').click(function() {
			$(this).parent().siblings('span.helptext').css('height','0');
			$(this).parent().hide(); return false;
		});
	});
	// duplicate buttons
	$.each($('#anwaltsuche p.duplicatable'), function(key,obj) {
		if ($(obj).children('span.buttons').html()!=null)
			$(obj).children('span.buttons').append('<a href="#" class="duplicateButton" title="Feld duplizieren">Feld duplizieren</a>');
		else
			$(obj).append('<span class="buttons"><a href="#" class="duplicateButton" title="Feld duplizieren">Feld duplizieren</a></span>');
		$(obj).find('a.duplicateButton').click(function() {
			elem = $(this).parent().parent().clone(true);
			// count
			count = $('#anwaltsuche select.'+$(elem).find('select').attr('class')).length;
			if ($(elem).find('select').attr('class')=='fremdsprache' && count==3) return false;
			if ($(elem).find('select').attr('class')=='rechtsgebiet' && count==5) return false;
			if ($(elem).find('select').attr('class')=='fachanwaltschaft' && count==2) return false;
			if ($(elem).find('select').attr('class')=='weiterer-beruf' && count==6) return false;
			if ($(elem).find('select').attr('class')=='arge' && count==26) return false;
			if ($(elem).find('select').attr('class')=='recht-anderer-laender' && count==5) return false;
			// change ids, fors, ...
			zaehler = zaehler+1;
			$.each($(elem).find('select[id],label[for]'), function(key,obj) {
				if ($(obj).attr('id')) 	$(obj).attr('id',$(obj).attr('id')+zaehler);
				if ($(obj).attr('for')) {
					$(obj).attr('for',$(obj).attr('for')+zaehler);
					$(obj).html('und '+$(obj).html());
				}
			});
			$(this).parent().parent().after(elem);
			$(elem).find('span.buttons').html('<a href="#" class="deleteButton" title="Feld löschen">Feld löschen</a>');
			$(elem).find('a.deleteButton').click(function() {
				$(this).parent().parent().remove();
				return false;
			});
			return false;
		});
	});
}

function selectKategorie() {
	// get Rechtsgebiete
	$.each($('#anwaltsuche select.rechtsgebiet option'), function(key,obj) {
		rechtsgebieteValues[key] = $(obj).val();
		rechtsgebieteText[key] = $(obj).text();
	});
	$('#kategorie').change(function() {
		value = $(this).find('option:selected').val();
		if (value!='') {
			selectedRechtsgebiete = value.split('#');
			selectedRechtsgebiete.length = selectedRechtsgebiete.length-1;
		} else
			selectedRechtsgebiete = rechtsgebieteValues;
		elem = $(this).siblings('select.rechtsgebiet')[0];
		$(elem).html('');
		elem.options[0] = new Option(rechtsgebieteText[0],rechtsgebieteValues[0],false,false);
		x = 1;
		for (b=1;b<rechtsgebieteValues.length;b++) {
			for (c=0;c<selectedRechtsgebiete.length;c++) {
				if (selectedRechtsgebiete[c]==rechtsgebieteValues[b]) {
					elem.options[x] = new Option(rechtsgebieteText[b],rechtsgebieteValues[b],false,false);
					x++;
				}
			}
		}
	});
}

function enableUmkreis() {
	if ($('#plz').val()!='')	$('#umkreis').attr('disabled',false);
	else						$('#umkreis').attr('disabled',true);
}

function disabledUmkreis() {
	if ($('#umkreis option:selected').val()=='')
		$('#umkreis').attr('disabled',true);
	$('#plz').keyup( function() { enableUmkreis(); });
	$('#plz').focus( function() { enableUmkreis(); });
	$('#plz').blur( function() { enableUmkreis(); });
	$('#ort').keyup( function() { enableUmkreis(); });
	$('#ort').focus( function() { enableUmkreis(); });
	$('#ort').blur( function() { enableUmkreis(); });
}

// call functions
$(document).ready(function() {
	buildButtons();
	selectKategorie();
	disabledUmkreis();
	$('a.deleteButton').click(function() {
		$(this).parent().parent().remove();
		return false;
	});
	$("#ort").suggest("/plugins/anwaltsuche-ajax.php?land="+$('#land option:selected').val(), { });
});
