﻿$(document).ready(function() {
    // show full thesaurus JS functionality
    var table = $("table#ratsmitglieder");
    table.find("tr").css("cursor", "pointer");
    var tableBody = table.children("tbody");

    i18n.rm = {};
    i18n.rm.name = 'Name';
    i18n.rm.buergerorte = 'B&uuml;rgerort';
    i18n.rm.born = 'Geboren';
    i18n.rm.died = 'Gestorben';
    i18n.rm.gender = 'Geschlecht';
    i18n.rm.canton = 'Kanton';
    i18n.rm.fraction = 'Fraktion';
    i18n.rm.party = 'Partei';
    i18n.rm.council = 'Rat';
    switch (i18n.lang) {
        case "i":
            i18n.rm.name = 'Nome';
            i18n.rm.buergerorte = 'Originario/a di';
            i18n.rm.born = 'Nato/a il';
            i18n.rm.died = 'Deceduto';
            i18n.rm.gender = 'Sesso';
            i18n.rm.canton = 'Canton';
            i18n.rm.fraction = 'Gruppo';
            i18n.rm.party = 'Partito';
            i18n.rm.council = 'Consiglio';
            break;
        case "e":
        case "f":
            i18n.rm.name = 'Nom';
            i18n.rm.buergerorte = 'Origine';
            i18n.rm.born = 'Né(e) le';
            i18n.rm.died = 'Décédé';
            i18n.rm.gender = 'Sexe';
            i18n.rm.canton = 'Canton';
            i18n.rm.fraction = 'Groupe';
            i18n.rm.party = 'Parti';
            i18n.rm.council = 'Conseil';
            break;
    }

    // summarize rows for same council
    var rows = tableBody.children("tr");
    var lastFirstName = "";
    var lastLastName = "";
    rows.each(function() {
        var tdLastName = $(this).children("td:first");
        var tdFirstName = $(this).children("td:eq(1)");
        if (lastFirstName == tdFirstName.html() && lastLastName == tdLastName.html()) {
            tdLastName.html('<span class="hidden">' + tdLastName.html() + '</span>');
            tdFirstName.html('<span class="hidden">' + tdFirstName.html() + '</span>');
            tdLastName.parent().prev().removeClass("borderbottom");
        }
        else {
            lastFirstName = tdFirstName.html();
            lastLastName = tdLastName.html();
        }
    });

    tableBody.click(function(e) {
        var tr = $(e.target).parents("tr");
        if (tr.hasClass("expanded")) {
            tr.prev().show();
            tr.remove();
        } else {
            tr.hide();
            var c = tr.children("td");

            var abbrRE = /<abbr title="([^"]*)">([^"]*)<\/abbr>/;
            var ne = function(s) {
                return s != null && s.length > 0 ? s : "&nbsp;";
            }

            var name = '<strong>' + $(c[0]).text() + '</strong> ' + $(c[1]).text();
            var ort = $(c[10]).text();
            var geboren = $(c[7]).text();
            var gestorben = $(c[8]).text();
            var geschlecht = $(c[9]).text();
            var kanton = $(c[2]).html().replace(abbrRE, '$1 ($2)');
            var fraktion = $(c[3]).text();
            var partei = $(c[11]).text();

            var von = $(c[5]).text(), bis = $(c[6]).text()
            var rat = $(c[4]).html().replace(abbrRE, '$1') + " (" + von + " &ndash; " + (bis == "im Amt" ? "" : bis) + ")";

            tr.after(
				'<tr class="expanded" style="cursor:pointer"><td colspan="10">'
			  + '<dl class="services">'
			  + '<dt class="first">' + i18n.rm.name + ':</dt><dd class="first">' + ne(name) + '</dd>'
			  + '<dt class="first">' + i18n.rm.buergerorte + ':</dt><dd>' + ne(ort) + '</dd>'
			  + '<dt class="first">' + i18n.rm.born + ':</dt><dd>' + ne(geboren) + '</dd>'
			  + '<dt class="first">' + i18n.rm.died + ':</dt><dd>' + ne(gestorben) + '</dd>'
			  + '<dt class="first">' + i18n.rm.gender + ':</dt><dd>' + ne(geschlecht) + '</dd>'
			  + '<dt class="first">' + i18n.rm.canton + ':</dt><dd>' + ne(kanton) + '</dd>'
			  + '<dt class="first">' + i18n.rm.fraction + ':</dt><dd>' + ne(fraktion) + '</dd>'
			  + '<dt class="first">' + i18n.rm.party + ':</dt><dd>' + ne(partei) + '</dd>'
			  + '<dt class="first">' + i18n.rm.council + ':</dt><dd>' + ne(rat) + '</dd>'
			  + '</td></tr>'
			);
        }
    });

    // "im amt" checkbox
    var dropDowns = $('.in-office-hidable');
    $("#inputLeavingImamt").change(function() {
        dropDowns.val("");
        dropDowns.attr("disabled", this.checked ? "disabled" : false);
    });

    // move checkbox behind datepicker
    var imAmt = $("#inputLeavingImamt").parent('label');
    imAmt.appendTo(imAmt.parent('fieldset.datepicker'));
    imAmt.prev('img').css('float', 'left').css('margin-right', '1em');

    // handle initial state
    if ($("#inputLeavingImamt").is(":checked")) {
        dropDowns.val("");
        dropDowns.attr("disabled", "disabled");
    }
});

