﻿
function optionen_check() {

    

    var xoptionen_list = document.getElementById("ctl00_Main_optionen_zwingend").value;

    if (xoptionen_list == '') { return true };

    var xstatus = document.getElementById("ctl00_Main_upload_status");

    var xreturn = true;

    var xpos = 1
    while (xpos > 0) {

        if (xoptionen_list == '') { return xreturn };
    
        xpos = xoptionen_list.indexOf(";");
        xcbl = xoptionen_list.substring(0, xpos);
        xoptionen_list = xoptionen_list.substring(xpos + 1, xoptionen_list.length);

        xpos = xoptionen_list.indexOf(";");
        xvalue = xoptionen_list.substring(0, xpos);
        xoptionen_list = xoptionen_list.substring(xpos + 1, xoptionen_list.length);

        xpos = xoptionen_list.indexOf(";");
        xtextbox = xoptionen_list.substring(0, xpos);
        xoptionen_list = xoptionen_list.substring(xpos + 1, xoptionen_list.length);

        radioObj = document.getElementById("ctl00_Main_" + xcbl);

               
            var radioList = radioObj.getElementsByTagName ('input');	
            for ( var i = 0; i < radioList.length; i++)
            	{
            	if (radioList[i].checked ) {
            	    if (xvalue == radioList[i].value) {
            	        if (document.getElementById("ctl00_Main_" + xtextbox).className == 'optionen_eingabe_watermark') {
            	            document.getElementById("ctl00_Main_" + xtextbox).style.borderColor = 'red';
            	            xstatus.className = 'status_fehler';
            	            xstatus.innerHTML = unescape('Es wurden nicht alle Felder ausgfüllt');
            	            xreturn = false;
            	        }
            	        else {

            	            if (document.getElementById("ctl00_Main_" + xtextbox).value == '') {
            	                document.getElementById("ctl00_Main_" + xtextbox).style.borderColor = 'red';
            	                xstatus.className = 'status_fehler';
            	                xstatus.innerHTML = unescape('Es wurden nicht alle Felder ausgfüllt');
            	                xreturn = false;
            	            }
            	        }
            	        ;    
            	        
            		
            			}	
            			}
            
            };    

    }


    
    

    return xreturn;
    
    
    

}


function optionen_farbe_check() {

    
    var xoptionen_list = document.getElementById("ctl00_Main_optionen_farbe_zwingend").value;

    if (xoptionen_list == '') { return true };

    var xstatus = document.getElementById("ctl00_Main_upload_status");

    var xreturn = true;

    var xpos = 1
    while (xpos > 0) {

        if (xoptionen_list == '') { return xreturn };
    
        xpos = xoptionen_list.indexOf(";");
        xoption_farbe = xoptionen_list.substring(0, xpos);
        xoptionen_list = xoptionen_list.substring(xpos + 1, xoptionen_list.length);

            var xfarbe_selected = document.getElementById("ctl00_Main_farbe_selected_" + xoption_farbe).title;
                                                           
            if (xfarbe_selected == '') 
                {
                xstatus.className = 'status_fehler';
                xstatus.innerHTML = unescape('Es wurden keine Farbe gewählt.');
                xreturn = false;
                };

        };    


return xreturn;

}



function upload_onclick() {

    var xstatus = document.getElementById("ctl00_Main_upload_status");
    xstatus.className = 'status_leer';
    xstatus.innerHTML = "";

    var ocheck = optionen_check(); 

    if (ocheck == false) { return false};


    var ocheck_farbe = optionen_farbe_check();

    if (ocheck_farbe == false) { return false };

    

    var fl = document.getElementById('files_list');
        
    
    var fa = document.getElementById("ctl00_Main_upload_anz");
    var fd = fl.getElementsByTagName("DIV")
    xanz = fd.length;

    var dateien = new Array()
    
    var xanz_liste = "";
    
    for (var i=0; i<xanz; i++)	
    {

        xanz_liste = xanz_liste + fd[i].childNodes[0].value + ";";
        dateien[i] = fd[i].childNodes[2].innerHTML
        
      
    }

    
    fa.value = xanz_liste;
    
    var xzwingend = document.getElementById("ctl00_Main_Upload_zwingend").value;

    // keine Datei
    if (xanz == 0) {
        if (xzwingend == "0") {
            return true;
        }
        else {
            xstatus.className = 'status_fehler';
            xstatus.innerHTML = unescape("Es wurde keine Datei gew%E4hlt.");
            return false;
        }
       
    }

    var xcheck = document.getElementById("ctl00_Main_Upload_java_check").value;
    if (xcheck == "0") {
        document.getElementById("upload_abbrechen").style.visibility = "visible";
        return true;
    }

    // Dateien Namen
    for (var i = 0; i < xanz; i++) {
         if (FileName_valid(dateien[i]) == false) {
                xstatus.className = 'status_fehler';
                xstatus.innerHTML = unescape('Der Dateiname/typ ist ung%FCltig (' + dateien[i] + ')');
                return false;
            }


    }
    

    // Dateien Extensions
    var xallowed_extensions = document.getElementById("ctl00_Main_Upload_extensions").value;

    xallowed_extensions = xallowed_extensions.toLowerCase();

    if (xallowed_extensions.length > 0) {

        for (var i = 0; i < xanz; i++) {

            var datei = getFileName(dateien[i])
            // var datei = dateien[i]
            
            try
            
            {

            if (datei.length == 0) {
                xstatus.className = 'status_fehler';
                xstatus.innerHTML = unescape('Der Dateiname/typ ' + datei + ' ist ung%FCltig (nur ' + xallowed_extensions + ' zul%E4ssig)');
                return false;
            }

        }

        catch (e) {
            xstatus.className = 'status_fehler';
            xstatus.innerHTML = unescape('Der Dateiname/typ ' + dateien[i] + ' ist ung%FCltig (nur ' + xallowed_extensions + ' zul%E4ssig)');
            return false;

        }

            

            var xextension = getExtension(datei);
            xextension = xextension.toLowerCase();

            if (xextension.length == 0) {
                xstatus.className = 'status_fehler';
                xstatus.innerHTML = unescape('Der Dateityp ist ung%FCltig (' + datei + ')');
                return false;
            }

            if (xallowed_extensions.indexOf(xextension) == -1) {
                xstatus.className = 'status_fehler';
                xstatus.innerHTML = unescape('Der Dateityp ' + datei + ' ist ung%FCltig (nur ' + xallowed_extensions + ' zul%E4ssig)');
                return false;
            }
       }
    }

    document.getElementById("upload_abbrechen").style.visibility = "visible";
    return true;
}

function FileName_valid(path) {

    try {

        if (path.indexOf("<") > -1) { return false; }
        if (path.indexOf(">") > -1) { return false; }
        if (path.indexOf("*") > -1) { return false; }
        if (path.indexOf("#") > -1) { return false; }
        if (path.indexOf("{") > -1) { return false; }
        if (path.indexOf("}") > -1) { return false; }
              
        return true;
    }

    catch (e) {

        return false;

    }


}



function getFileName(path) {

    try 
{
    return path.substring(path.lastIndexOf("\\") + 1,path.length);
    
    //return path.match(/[-_\w]+[.][\w]+$/i)[0];
}

catch(e)

{

}


}

function getExtension(file) {

    
    return file.substring(file.lastIndexOf("."), file.length);
}


function upload_add(list_target, max) {

      
    

    this.ctl00_Main_list_target = list_target;
    this.count = 0;
    this.id = 0;
    if (max) {
        this.max = max;
    } else {
        this.max = -1;
    };

    this.addElement = function(element) {
        if (element.tagName == 'INPUT' && element.type == 'file') {

            element.name = 'file_' + this.id++;
            element.multi_selector = this;
            element.onchange = function() {


                var new_element = document.createElement('input');
                new_element.type = 'file';
                new_element.style.width = '700px';

                this.parentNode.insertBefore(new_element, this);
                this.multi_selector.addElement(new_element);

                this.multi_selector.addListRow(this);
                this.style.position = 'absolute';
                this.style.left = '-1000px';

            };
            if (this.max != -1 && this.count >= this.max) {
                element.disabled = true;
            };

            this.count++;
            this.current_element = element;

        } else {

            alert('Fehler: Kein Fileinput-Element');
        };

    };
    
    this.addListRow = function(element) {

        var xzeile = this.id;

        // Row div
        var new_row = document.createElement('div');
        new_row.className = "upload_div";
        new_row.id = "uploaddiv" + xzeile;

        var new_row_anz = document.createElement('input');
        new_row_anz.className = "upload_anz";
        new_row_anz.value = '1';
        new_row_anz.name = 'anz' + xzeile;
        new_row_anz.id = 'anz' + xzeile;
        new_row_anz.title = "Anzahl eingeben";

        var new_row_button = document.createElement('img');
        new_row_button.className = "upload_btn";
        new_row_button.src = 'delete_small.png';
        new_row_button.style.verticalalign = 'bottom';
        new_row_button.style.cursor = 'pointer';
        new_row_button.title = "Eintrag löschen";

        var new_row_file = document.createElement('text');
        new_row_file.className = "upload_file";
        new_row_file.innerHTML = element.value;
        new_row_file.name = 'filename_' + xzeile;
        new_row_file.title = "Upload Datei";

        new_row.element = element;

        // Delete function
        new_row_button.onclick = function() {
            this.parentNode.element.parentNode.removeChild(this.parentNode.element);
            this.parentNode.parentNode.removeChild(this.parentNode);
            this.parentNode.element.multi_selector.count--;
            this.parentNode.element.multi_selector.current_element.disabled = false;
            return false;
        };

        new_row.appendChild(new_row_anz);
        new_row.appendChild(new_row_button);
        new_row.appendChild(new_row_file);

        this.ctl00_Main_list_target.appendChild(new_row);

    };


};
