function log(s) { } function createVorschlagDiv(input) { $('.vorschlag').remove(); var vorschlag = $('#vorschlag_' + input.attr('id')); if (vorschlag.length === 0) { input.after('
'); vorschlag=$('#vorschlag_' + input.attr('id')); vorschlag.width(input.outerWidth() - 2); vorschlag.show(); $('body').click(function (event) { if (event.target.id !== 'vorschlag_' + input.attr('id')) { vorschlag.remove(); event.stopPropagation(); } } ); } return vorschlag; } function vorschlagClick(event) { var id=event.target.id; var input=$('#' + id); var vorschlag=$('#vorschlag_' + id); log("click: " + event.target.id + ": " + vorschlag); fillVorschlag(input, vorschlag); vorschlag.show(); event.stopPropagation(); } function vorschlagKeydown(event) { var id=event.target.id; var input=$('#' + id); var vorschlag=$('#vorschlag_' + id); log("down: " + event.target.id + ": " + vorschlag + ": " + event.which); switch (event.which) { case 9 : vorschlag.remove(); break; case 38 : event.preventDefault(); break; case 40 : event.preventDefault(); break; } } function vorschlagKeyup(event) { var id=event.target.id; var input=$('#' + id); var vorschlag=$('#vorschlag_' + id); switch (event.which) { case 9 : break; case 13 : if (vorschlag.length !== 0 && vorschlag.is(':visible')) { vorschlag.hide(); input.removeClass('err'); input.val($('.sel').html()); vorschlag.remove(); event.stopPropagation(); } else { submitSuchformular(input); } break; case 27 : vorschlag.remove(); break; case 37 : break; case 38 : vorschlag.show(); var sel=$('.sel'); var prev=sel.prev('.opt'); if (prev.hasClass('opt')) { sel.removeClass('sel'); prev.addClass('sel'); } break; case 39 : break; case 40 : vorschlag.show(); var sel=$('.sel'); var next=sel.next('.opt'); if (next.hasClass('opt')) { sel.removeClass('sel'); next.addClass('sel'); } break; default: if (input.val().length > 2) { fillVorschlag(input,vorschlag) } else { vorschlag.remove(); } break; } } function fillVorschlag(input, vorschlag){ if (vorschlag.length === 0) { vorschlag=createVorschlagDiv(input); } $.ajax({ cache: false, type: 'POST', url: "/aws/suchen/vorschlag_ajax.jsp", data: { q: input.val(), t: input.attr('name') } }).done(function (html) { html=$.trim(html); if (startsWithFachanwalt(input.val()) && !validFachanwalt(input.val())) { input.addClass('err'); } else if (startsWithNotar(input.val()) && !validNotar(input.val())) { input.addClass('err'); } else { input.removeClass('err'); } if (html.length > 0) { vorschlag.html(html); if (vorschlag.children().first().hasClass('opt')) { vorschlag.children().first().addClass('sel'); } else { vorschlag.children().first().next().addClass('sel'); } vorschlag.show(); $('.opt').click(function () { vorschlag.hide(); input.removeClass('err'); input.val($(this).html()); vorschlag.remove(); }); $('.opt').mouseenter(function () { var sel = $('.sel'); sel.removeClass('sel'); $(this).addClass('sel'); }); } else { vorschlag.remove(); } }); } function checkSubmit(jForm) { var wo = jForm.elements['wo'].value; var was = jForm.elements['was'].value; if (wo == '') { modal.open('Suchformular', "bitte wählen Sie etwas im Feld 'Wo' aus!"); return false; } if (was == '') { modal.open('Suchformular', "bitte wählen Sie etwas im Feld 'Was' aus!"); return false; } if (wo.match(/[0-9][0-9][0-9][0-9][0-9].*/)) { jForm.elements['plz'].value = wo.substring(0, 5); jForm.elements['ort'].value = wo.substring(6); } else { jForm.elements['plz'].value = ''; jForm.elements['ort'].value = wo; } jForm.elements['rechtsgebiet'].value = ''; jForm.elements['fachgebiet'].value = ''; jForm.elements['notargebiet'].value = ''; if (startsWithFachanwalt(was)) { jForm.elements['fachgebiet'].value = was.split(' ')[2]; } else if (startsWithNotar(was)) { jForm.elements['notargebiet'].value = was.split(' ')[2]; } else { if (was.indexOf('(') != -1) { jForm.elements['rechtsgebiet'].value = was.substring(was.indexOf('(') + 1, was.length - 1); } else { jForm.elements['rechtsgebiet'].value = was; } } _submitHiddenSuchformular( jForm.elements['plz'].value ,jForm.elements['ort'].value ,jForm.elements['rechtsgebiet'].value ,jForm.elements['fachgebiet'].value ,jForm.elements['notargebiet'].value ); return false; } function submitSuchformular(jInput) { var jForm = jInput.closest('form')[0]; if (checkSubmit(jForm)) { jForm.submit(); } } function _submitHiddenSuchformular(plz,ort,rechtsgebiet,fachgebiet,notargebiet) { $('#__suchen').remove(); var form = $(""); if(plz!=''){ $(form).append(""); } if(ort!=''){ $(form).append(""); } if(rechtsgebiet!=''){ $(form).append(""); } if(fachgebiet!=''){ $(form).append(""); } if(notargebiet!=''){ $(form).append(""); } $('body').append(form); $(form).submit(); } function startsWithFachanwalt(s) { return s.toLowerCase().indexOf('fachanw') == 0; } function startsWithNotar(s) { return s.toLowerCase().indexOf('notar') == 0; } function validFachanwalt(s) { var fachanwaltArray = []; fachanwaltArray.push('Fachanwalt für Agrarrecht'); fachanwaltArray.push('Fachanwältin für Agrarrecht'); fachanwaltArray.push('Fachanwalt für Arbeitsrecht'); fachanwaltArray.push('Fachanwältin für Arbeitsrecht'); fachanwaltArray.push('Fachanwalt für Bankrecht/Kapitalmarktrecht'); fachanwaltArray.push('Fachanwältin für Bankrecht/Kapitalmarktrecht'); fachanwaltArray.push('Fachanwalt für Baurecht/Architektenrecht'); fachanwaltArray.push('Fachanwältin für Baurecht/Architektenrecht'); fachanwaltArray.push('Fachanwalt für Erbrecht'); fachanwaltArray.push('Fachanwältin für Erbrecht'); fachanwaltArray.push('Fachanwalt für Familienrecht'); fachanwaltArray.push('Fachanwältin für Familienrecht'); fachanwaltArray.push('Fachanwalt für Gewerblicher Rechtsschutz'); fachanwaltArray.push('Fachanwältin für Gewerblicher Rechtsschutz'); fachanwaltArray.push('Fachanwalt für Handelsrecht/Gesellschaftsrecht'); fachanwaltArray.push('Fachanwältin für Handelsrecht/Gesellschaftsrecht'); fachanwaltArray.push('Fachanwalt für IT-Recht'); fachanwaltArray.push('Fachanwältin für IT-Recht'); fachanwaltArray.push('Fachanwalt für Insolvenzrecht'); fachanwaltArray.push('Fachanwältin für Insolvenzrecht'); fachanwaltArray.push('Fachanwalt für Medizinrecht'); fachanwaltArray.push('Fachanwältin für Medizinrecht'); fachanwaltArray.push('Fachanwalt für Mietrecht'); fachanwaltArray.push('Fachanwältin für Mietrecht'); fachanwaltArray.push('Fachanwalt für Sozialrecht'); fachanwaltArray.push('Fachanwältin für Sozialrecht'); fachanwaltArray.push('Fachanwalt für Steuerrecht'); fachanwaltArray.push('Fachanwältin für Steuerrecht'); fachanwaltArray.push('Fachanwalt für Strafrecht'); fachanwaltArray.push('Fachanwältin für Strafrecht'); fachanwaltArray.push('Fachanwalt für Transportrecht/Speditionsrecht'); fachanwaltArray.push('Fachanwältin für Transportrecht/Speditionsrecht'); fachanwaltArray.push('Fachanwalt für Urheberrecht/Medienrecht'); fachanwaltArray.push('Fachanwältin für Urheberrecht/Medienrecht'); fachanwaltArray.push('Fachanwalt für Verkehrsrecht'); fachanwaltArray.push('Fachanwältin für Verkehrsrecht'); fachanwaltArray.push('Fachanwalt für Versicherungsrecht'); fachanwaltArray.push('Fachanwältin für Versicherungsrecht'); fachanwaltArray.push('Fachanwalt für Verwaltungsrecht'); fachanwaltArray.push('Fachanwältin für Verwaltungsrecht'); for (var i = 0; i < fachanwaltArray.length; i++) { if (fachanwaltArray[i].indexOf(s) === 0) { return true; } } return false; } function validNotar(s) { var notarArray = []; notarArray.push('Notar für Erbrecht'); notarArray.push('Notarin für Erbrecht'); notarArray.push('Notar für Familienrecht'); notarArray.push('Notarin für Familienrecht'); notarArray.push('Notar für Gesellschaftsrecht'); notarArray.push('Notarin für Gesellschaftsrecht'); notarArray.push('Notar für Immobilienrecht'); notarArray.push('Notarin für Immobilienrecht'); for (var i = 0; i < notarArray.length; i++) { if (notarArray[i].indexOf(s) === 0) { return true; } } return false; }