/**
Thomas Rubbert
10.08.2006, 02:18 Uhr
Funktion: Stellt Javascriptfunktionen zur Verfügung welche Ajax erleichern.
Details: form2url(formname) generiert eine für prototype passende 'pars'-Liste
verify(formname, url) verschickt die Daten des Formulars and die Url.
checkForErrory() empfängt ein Errorobjekt, welches die eventuellen Fehlermeldungen enthält und speist sie
direkt in das HTML ein.
04.12.2006, 18:10 Uhr
Funktion getKreise(kreisSelector, regionId) fügt die Kreise aus Region regionId in kreisSelection ein.
Funktion getRegionen(regionSelector) fügt Regionen in regionSelector ein
01.01.2007, 22:23 Uhr
Function getCity(citySelector, kreisId) fügt alle Städte in dem Kreis in den Cityselector ein
*/
function show(id) {
    new Effect.Appear(id);
}
function hide(id) {
    new Effect.Fade(id);
}
function form2url(formname) {
    var html = "";
    var form = document.forms[formname];
    for (i=0; i<form.elements.length; i++) {
        switch (form.elements[i].type) {
            case "reset":
            case "submit":
            case "button":
            break;
            case "radio":
            case "checkbox":
                if (form.elements[i].checked == true) {
                    html += form.elements[i].name + "=" + form.elements[i].value + "&";
                }
            break;
            case "file":
                alert("Diese Funktion darf nicht mit File-Datentypen verwendet werden.\n Bitte verständige einen Administrator dass du diese Fehlermeldung erhalten hast.");
                return false;
            break;
            default:
                html += form.elements[i].name + "=" + form.elements[i].value + "&";
            break;
        }
    }
    html = html.substr(0, (html.length-1));
    return html;
}
function verify(formname, url) {
    var pars = form2url(formname);
    pars += "&mode=check";
    var url = "/" + url;
    var myAjax = new Ajax.Request( url, { method: 'get', parameters: pars, onComplete: checkForErrors });
}
function checkForErrors(response) {
    var error = eval('(' + response.responseText + ')');
    for (i=0; i<error.errorMessages.length; i++) {
        var elementId = error.errorMessages[i].id + '_error';
        $(elementId).innerHTML = error.errorMessages[i].errorMessage;
    }
    if (!error.error) {
        show('erfolg');
        setTimeout("hide('erfolg')", 3000);
    }
}
//Usernamen suchen
function returnName(userName) {
    $('user_name_input').value = userName;
    switch_usersearch();
}
function switch_usersearch() {
    Element.toggle('usersearch');
}
function usersearch() {
    var url = '/admin/search.username.php';
    var pars = 'mode=json&search_username='+$('search_username').value;
    var myAjax = new Ajax.Request( url, { method: 'get', parameters: pars, onComplete: showSearchResult });
}
function showSearchResult(res, response) {
    if (response.error) {
        $('search_error').innerHTML = response.errorMessage;
    } else {
        $('search_error').innerHTML = "";
        var html = '<ul style="margin-top:0px; margin-bottom:0px;">';
        for(var i = 0; i < response.userName.length; i++) {
            html += '<li>' + '<a href="#" onclick="returnName(\'' + response.userName[i].user_name + '\')">';
            html += response.userName[i].user_name;
            html += '</a></li>';
        }
        html += '</ul>';
        if (response.userName.length == 19) {
            html += "Du gab viele Suchergebnisse, versuche etwas genauer zu suchen";
        }
        $('usersearch_list').innerHTML = html;
    }
}
function ajaxUpdate(url, parameter, content_id) {
    parameter += "&return_ajax=true";
    $(content_id).innerHTML = '<img src="/images/grafik/symbole/ajax-loader_small.gif" />';
    var myAjax = new Ajax.Updater( content_id, url, { method: 'get', encoding: 'ISO-8859-1', parameters: parameter, onLoading: alertLoading, onComplete: alertComplete, onFailure: reportError });
}
function alertLoading(res) {
    //alert("Lade nun die Daten vom Server");
}
function alertComplete(res) {
    //alert("Anfrage erfolgreich");
    //alert(res.responseText);
}
function reportError(request) {
    alert("Die benötigte Datei konnte nicht vom Server geladen werden.");
}
function getRegionen(regionContainer, regionName, updateKreise, updateKreiseName, preselectRegion, preselectKreis) {
    var url = "/lib/rks.php";
    var pars = "mode=regionen&select_name="+regionName;
    pars += "&update_kreise="+updateKreise+"&update_kreise_name="+updateKreiseName;
    pars += "&preselect="+preselectRegion+"&preselect_kreis="+preselectKreis;
    ajaxUpdate(url, pars, regionContainer);
}
function getKreise(kreisContainer, kreisName, regionId, preselect) {
    var url = "/lib/rks.php";
    var regionIdValue = "";
    if ($(regionId)) {
        regionIdValue = $(regionId).value;
    } else {
        regionIdValue = regionId;
    }
    var pars = "mode=kreise&select_name="+kreisName+"&region_id="+regionIdValue+"&preselect="+preselect;
    ajaxUpdate(url, pars, kreisContainer);
}
function getCities(citySelector, kreisId) {
    var url = "/lib/rks.php";
    var pars = "mode=city&kreis_id="+ kreisId +"&selector="+citySelector;
    var myAjax = new Ajax.Request( url, { method: 'get', parameters: pars, onComplete: populateCitySelector });
}
function getCategory(sectionId, categoryContainer) {
    var url = "/lib/rks.php";
    var pars = "mode=categories&section_id="+ sectionId;
        ajaxUpdate(url, pars, categoryContainer);
}
function populateCitySelector(res) {
    if (res.responseText == "error") {
        alert("Es ist ein Datenfehler aufgetreten, Staedte konnten nicht ausgelesen werden");
        return;
    }
    cities = eval('(' + res.responseText + ')');
    if (cities.error != "false") {
        alert("Es konnten keine Staedte ausgelesen werden");
        return;
    }
    var selector = cities.content[cities.content.length-1].selector;
    for (var i in $(selector).options) {
        $(selector).options[i] = null;
    }
    if (!$(selector)) {
        alert("Es konnte kein Zielfeld gefunden werden, bitte gib einen Selektor an");
        return;
       }
       var html = '<select name="city_name">';
       html += '<option value="" selected="selected">Alle Städte</option>';
    for (var i=0; i < cities.content.length; i++) {
        if (i < (cities.content.length-1)) {
            var option = '<option value="'+cities.content[i].townname+'">';
            option += cities.content[i].townname;
            option += '</option>';
            html += option;
        }
    }
    html += '</select>';
    $(selector).innerHTML = html;
}

function enlargeImage(imageSrc) {
    win = window.open("/showPic.php?file="+imageSrc, "Bild", "width=800,height=800,left=15,top=15,dependent=yes,location=no,menubar=no,resizable=yes,status=no,toolbar=no");
    win.focus();
}
