/*
 * Autocomplete Funktion zur Auswahl einer Region nach Vorwahl
 * Parameter:
 *  - vorwahlInput = Element das Autocomplete-Funktion erhaehlt (erwartet wird <input type="text" />)
 *  - region_id    = Vorbelegung mit Region-ID
 *  - region_name  = Vorbelegung, Name der Region
 *  - lookup_url   = URL des Webservice der abgefragt werden soll
 *  - land         = wird als Zusatzparameter mit an Webservice uebertragen
 */
function imonitor_autocomplete(vorwahlInput, region_id, region_name, lookup_url, land) {
    var vorwahlInput = $(vorwahlInput);
    vorwahlInput.after($('<input type="hidden" name="region_id" id="ac_region_id" value="' + region_id + '" />'));
    vorwahlInput.after($('<span id="ac_ort">' + region_name + '</span>'));

    var ortEl = $('#ac_ort');
    var regionInput = $('#ac_region_id');
    var vorwahlInputDefaultText = vorwahlInput.attr('value');

    function formatItem(row) {
        return row[0] + ' <em>' + row[1] + '</em>';
    }

    function formatResult(row) {
        return row[0];
    }

    // remove browsers autocomplete
    vorwahlInput.attr('autocomplete', 'off');

    // vorwahlInput show/hide default text
    /*
    vorwahlInput.focus(function() {
        if($(this).attr('value') == vorwahlInputDefaultText) {
            $(this).attr('value', '');
        }
    });
    vorwahlInput.blur(function() {
        if ($(this).attr('value') == '') {
            $(this).attr('value', vorwahlInputDefaultText);
            ortEl.text('');
            regionInput.attr('value', '');
        }
    });
    */

    // remote autocomplete
    vorwahlInput.autocomplete(lookup_url, {
        minChars: 2,
        delay: 50,
        cacheLength: 1,
        selectFirst: false,
        mustMatch: true,
        max: 25,
        width: 300,
        scrollHeight: 300,
        highlight: false,
        formatItem: formatItem,
        formatResult: formatResult,
        extraParams: {
            land: land
        }
    });
    vorwahlInput.result(function(event, data, formatted) {
        if (data) {
            ortEl.text(data[1]);
            regionInput.val(data[2]);
        }
    });

}


/*
 * Sparkline mit jquery.sparkline Plugin fuer iMonitor Startseite 
 * Parameter:
 *  - data       = Daten fuer die Sparkline als Array
 *  - selector   = CSS-Selektor fuer Element in das gezeichnet werden soll
 *  - color      = Farbe der Linie und Fuellung
 *  - chart_link = URL fuer onclick des Elements (siehe selector)
 */
function spark_chart(data, selector, color, chart_link) {
    var chartElement = $(selector);
    chartElement.sparkline(data, {
        height: 81,
        defaultPixelsPerValue: 111 / data.length,
        lineColor: color,
        fillColor: color,
        spotColor: '',
        minSpotColor: '',
        maxSpotColor: '',
        /*
        normalRangeMin: 0,
        normalRangeMax: 5,
        */
        chartRangeMin: 0,
        chartRangeMax: 10
    });
    chartElement.click( function() { window.location.href = chart_link } );
    chartElement.mouseenter( function() { $(this).css('cursor', 'pointer'); } );
    chartElement.mouseleave( function() { $(this).css('cursor', 'auto'); } );
}

