/*

© korrekturlesen.org

Dieses Skript ist Eigentum von korrekturlesen.org.

Unerlaubte Vervielfältigung wird strafrechtlich verfolgt.

*/


auftrag = function()
{
    if (document.getElementById('probekorrektorat'))
    {
        newAddFileButton('probekorrektorat');
        document.getElementById('probekorrektorat').onsubmit = function() { LoadingBox.open('loadingBox'); return true; };
    }

    if (document.getElementById('probelektorat'))
    {
        newAddFileButton('probelektorat');
    }

    if (document.getElementById('auftrag'))
    {
        newAddFileButton('auftrag');
    }

    var formName;

    formId = document.getElementById('anfrage') ? 'anfrage' : '';

    if (!formId.length)
    {
        formId = document.getElementById('probelektorat') ? 'probelektorat' : '';
    }

    if (!formId.length)
    {
        formId = document.getElementById('auftrag') ? 'auftrag' : '';
    }

    if (formId.length)
    {
        $('#' + formId).submit
        (
            function()
            {
                var error = false;
                var pflichtfelder = ['name', 'vorname', 'mail'];

                if (formId == 'anfrage' || formId == 'probelektorat' || formId == 'auftrag')
                {
                    if (document.getElementById('sprache').options.selectedIndex == 0)
                    {
                        error = true;
                    }
                }

                if (formId == 'auftrag')
                {
                    var pflichtfelder_auftrag = ['strasse', 'plz', 'ort', 'telefon'];
                    for (i=0; i<pflichtfelder_auftrag.length; i++)
                    {
                        pflichtfelder.push(pflichtfelder_auftrag[i]);
                    }

                    if (document.getElementById('auftragsart').options.selectedIndex == 0)
                    {
                        error = true;
                    }
                }

                for (var i=0; i<pflichtfelder.length; i++)
                {
                    if (!$('#' + pflichtfelder[i]).val().length)
                    {
                        error = true;
                    }
                }


                if (!document.getElementById('file_1').value.length)
                {
                    error = true;
                }

                if (document.getElementById('anrede').options.selectedIndex == 0)
                {
                    error = true;
                }

                if (error)
                {
                    var select = $('#not-all-fields');

                    select.dialog(dialog);
                    select.dialog('option', 'title', 'Da stimmt was nicht ...');
                    select.dialog('option', 'width', 260);
                    select.dialog('open');

                    return false;
                }
                else
                {
                    LoadingBox.open('loadingBox');
                    return true;
                }
            }
        );
    }


    if (document.getElementById('anfragedatum'))
    {
        $('#anfragedatum').attr('readonly', 'readonly');
        $('#anfragedatum').datepicker
        (
            {
                dateFormat: 'dd.mm.y',
                dayNames: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'],
                dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
                dayNamesShort: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
                monthNames: ['Januar','Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
                monthNamesShort: ['Jan','Feb','Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],
                firstDay: 1,
                prevText: 'Monat zuvor',
                nextText: 'Monat danach',
                showWeek: true,
                weekHeader: 'Wo',
                showButtonPanel: true,
                hideIfNoPrevNext: true,
                maxDate: 0,
                showAnim: 'slide',
                currentText: 'heute',
                closeText: 'schließen'
            }
        );
    }
};

function newAddFileButton(form)
{
    if (document.getElementById(form) == null)
    {
        return;
    }

    var input = document.getElementById(form).getElementsByTagName('input');
    var length = input.length;
    var last, uploadFields = new Array(), uploadFieldsLength = 0;

    for (var i=0; i<length; i++)
    {

        if (input[i].type == 'file')
        {
            last = i;
            uploadFieldsLength++;
        }
    }


    var addFile, a;

    addFile = document.createElement('span');
    addFile.className = 'addFileButton';

    a = document.createElement('a');
    a.href = 'javascript:newAddFileField(\'' + form + '\')';
    a.appendChild(document.createTextNode('+'));

    addFile.appendChild(a);

    input[last].parentNode.insertBefore(addFile, input[last].nextSibling);
}


function newAddFileField(form)
{
    var input = document.getElementById(form).getElementsByTagName('input');
    var length = input.length;
    var last, uploadFieldsLength = 0;

    for (var i=0; i<length; i++)
    {
        if (input[i].type == 'file')
        {
            last = i;
            uploadFieldsLength++;
        }
    }


    if (input[last].value == '')
    {
        var select = $('#select-file');
        select.dialog(dialog);
        select.dialog('option', 'title', 'Da stimmt was nicht ...');
        select.dialog('option', 'width', 270);
        select.dialog('open');
        return;
    }


    var label, inputField, htmlRefLabel;

    label = document.createElement('label');
    label.setAttribute('for', form + '_file_' + (uploadFieldsLength+1));
    label.appendChild(document.createTextNode('Datei mitschicken'));

    inputField = document.createElement('input');
    inputField.type = 'file';
    inputField.name = 'files[]';
    inputField.id = form + '_file_' + (uploadFieldsLength+1);
    inputField.setAttribute('size', '31');

    br = document.createElement('br');


    input[last].parentNode.removeChild(input[last].nextSibling);

    htmlRefLabel = input[last].parentNode.insertBefore(label, input[last].nextSibling.nextSibling);
    htmlRefLabel.parentNode.insertBefore(inputField, htmlRefLabel.nextSibling);
    htmlRefLabel.parentNode.insertBefore(br, htmlRefLabel.nextSibling.nextSibling);

    if (uploadFieldsLength == 4)
    {
        var select = $('#too-many-files');

        select.dialog(dialog);
        select.dialog('option', 'title', 'Hinweis!');
        select.dialog('option', 'width', 290);
        select.dialog('open');

        return;
    }

    newAddFileButton(form);
}

onloadEvents.push(auftrag);
