﻿var arrCountryFound = new Array('', '', '');
var i = 0;
var anzahl = 0;
var ortHasFocus = false;
var aktFormName = "";
var submit = false;
var selectedSubrubriken = "";
var selectedBeruf = "";
var selectedSoftskills = "";
var coordinates = new Object();
var eingabefeld

function VorbereitenAjaxAusgabe(obj, anchorname) {
    eingabefeld = obj;
    coordinates = getAnchorPosition(anchorname);
    SetzenFormName(obj.form.name)
    ortHasFocus = true
}

function EntfernenFocus() {
    ortHasFocus = false
    $("#" + aktFormName + "RssAusgabe").css({ 'display': 'none' })
}

function SetzenFormName(strFromName) {
    aktFormName = strFromName
}

function AnpassenKoordinaten(x, y) {
    coordinates.x = (Number(coordinates.x) + Number(x));
    coordinates.y = (Number(coordinates.y) + Number(y));
}


function showOrt(text) {
    if (text.length > 2) {
        textOhneUmlaut = OhneUmlaut(text)
        var url = '/json/GetOrte.html?text=' + escape(textOhneUmlaut);
        $.get(url, function(rueckgabe) { CallBackOrte(rueckgabe) });
    }
    else {
        $("#" + aktFormName + "RssAusgabe").empty();
        $("#" + aktFormName + "RssAusgabe").css({ 'display': 'none' })
    }
}

function CallBackOrte(liste) {
    var erg = '';
    $("#" + aktFormName + "RssAusgabe").empty();
    var obj = eval("(" + liste + ")");
    if (obj == "") {
        $("#" + aktFormName + "RssAusgabe").append("Kein Ort gefunden");
        return;
    }
    if (obj.length > 0) {
        for (var i = 0; i < obj.length; i++) {
            if (erg.length > 0)
                erg += '|';
            erg += obj[i].Ort;
        }
    }
    else {
        erg = obj.Ort;
    }
    var arrCountry = new Array();
    arrCountry = erg.split('|');
    var tmpString = document.forms[aktFormName].ort.value.toLowerCase();
    var tmpLen = tmpString.length;
    arrCountryFound = new Array("", "", "");
    
    var j = 0;
    for (i = 0; i < arrCountry.length; i++) {
        //wenn die ersten tmpLen Buchstaben aus dem Array = tmpString -> schreibe in Layer
        var tmpLand = arrCountry[i].toLowerCase();
        if (tmpLand.substring(0, tmpLen) == tmpString) {
            zaehler = j+1
            $("#" + aktFormName + "RssAusgabe").append("<p id=\"ort" + zaehler + "\" onClick=\"javascript:hideOrtSelection();\" onmouseover=\"MouseOverOrt(" + zaehler + ");\" onmouseout=\"this.style.background='';\">" + arrCountry[i] + "</p>")
            arrCountryFound[j] = arrCountry[i];
            j++;
        }
    }
    anzahl = j;
    document.getElementById(aktFormName+"RssAusgabe").style.left = coordinates.x + "px";
    document.getElementById(aktFormName+"RssAusgabe").style.top = coordinates.y + "px";
    document.getElementById(aktFormName+"RssAusgabe").style.display = "block";
}

function OhneUmlaut(text) {
    textOhneUmlaut = text.replace('ä', 'ae')
    textOhneUmlaut = text.replace('Ä', 'Ae')
    textOhneUmlaut = textOhneUmlaut.replace('ü', 'ue')
    textOhneUmlaut = textOhneUmlaut.replace('Ü', 'Ue')
    textOhneUmlaut = textOhneUmlaut.replace('ö', 'oe')
    textOhneUmlaut = textOhneUmlaut.replace('Ö', 'Oe')
    return textOhneUmlaut 
}


function hideOrtSelection()
{
    $("#" + aktFormName + "RssAusgabe").css({ 'display': 'none' })
	anzahl = 0;
}
	
function tasteGedrueckt(event) {
    if (!event) {
        event = window.event;
    }
    if (event.keyCode) {
        Tastencode = event.keyCode;
    } else if (event.which) {
        Tastencode = event.which;
    }

    if (aktFormName != "" && Tastencode == 13 && aktFormName != "anzeigenschaltung" && $("#" + aktFormName + "RssAusgabe").css('display') == "none") {
        document.forms[aktFormName].submit()
    }

    if (ortHasFocus) {
        var klicks;
        var strKlick = document.forms[aktFormName].klick.value;
        if (strKlick == "")
            klicks = 0;
        else
            klicks = parseInt(strKlick);

        if (Tastencode == 40 && klicks >= 0 && klicks < anzahl)		//Pfeil runter
        {
            klicks++;
            document.forms[aktFormName].klick.value = klicks;
            nachUnten(klicks);
        }
        else if (Tastencode == 13 && klicks > 0 && klicks <= anzahl)		//Enter
        {
            enter(klicks);
            klicks = 0;
            document.forms[aktFormName].klick.value = klicks;
        }
        else if (Tastencode == 38 && klicks > 1 && klicks <= anzahl)		//Pfeil rauf
        {
            klicks--;
            document.forms[aktFormName].klick.value = klicks;
            nachOben(klicks);
        }
        else if (Tastencode == 27) 											//Taste ESC
        {
            hideOrtSelection();
            klicks = 0;
            document.forms[aktFormName].klick.value = klicks;
        } else if (Tastencode != 40 && Tastencode != 13 && Tastencode != 38 && Tastencode != 27) {
        showOrt(eingabefeld.value)
        }
    }    
}




function farbeOn(nrZeile) {
    if (nrZeile != null) {
        document.getElementById("ort" + nrZeile).style.background = '#CCCCCC';
        eingabefeld.value = document.getElementById("ort" + nrZeile).innerHTML
    }
}
function farbeOut(nrKlicks) {
    for (i = 1; i <= anzahl; i++) {
        if (i != nrKlicks) {
            document.getElementById("ort" + i).style.background = '';
        }
    }
    farbeOn(nrKlicks);
}

function MouseOverOrt(nrKlicks) {
    document.forms[aktFormName].klick.value = nrKlicks;
    farbeOn(nrKlicks);
}

function nachUnten(nrKlicks) {
    farbeOut(nrKlicks);
}

function nachOben(nrKlicks) {
    farbeOut(nrKlicks);
}

function enter(nrZeile) {
	hideOrtSelection();
}

function dontSubmit() {
    if (aktFormName == "") {
        alert(submit)
    }
    return submit
}

function doSubmit(form) {
    submit = true;
    if (form.name == "neueOrtSuche" && eingabefeld.value != "") {
        form.submit();
    }
    if (form.name != "neueOrtSuche") {
    form.submit();
    }
}

function showSubrubrik(rubrik,removeAuswahl) {
    if (rubrik.length > 0) {
        var url = '/json/GetSubrubriken.html?rubrik=' + escape(rubrik);
        $.get(url, function(rueckgabe) { CallBackSubrubrik(rueckgabe) });
    }
    else {
        $("#subrubriken").empty();
    }
    if (removeAuswahl) {
        $("#subrubrikauswahl").empty();
    }
    $("#Beruf2Hide").css({ 'display': 'block' })
    $("#berufbezeichnung").html("<option>Berufe werden geladen...</option>");
}

function CallBackSubrubrik(liste) {
    var erg = '';
    $("#subrubriken").empty();
    var obj = eval("(" + liste + ")");
    if (obj == "") {
        $("#subrubriken").html("<option>Keine Subrubrik gefunden</option>");
        return;
    }
    else {
        var optionsNeu = "";
        var optionsAuswahl = "";
        for (var i = 0; i < obj.length; i++) {
            var vorhanden = false;
            for (j = 0; j < document.anzeigenschaltung.subrubrikauswahl.length; j++) {
                if (document.anzeigenschaltung.subrubrikauswahl.options[j].value == obj[i].Id) {
                    vorhanden = true;
                }
            }
            for (k = 0; k < selectedSubrubriken.length; k++) {
                if (selectedSubrubriken[k] == obj[i].Id) {
                    optionsAuswahl += "<option value=\"" + obj[i].Id + "\">" + obj[i].Bezeichnung + "</option>";
                    vorhanden = true;
                }
            }
            
            if (!vorhanden) {

                optionsNeu += "<option value=\"" + obj[i].Id + "\">" + obj[i].Bezeichnung + "</option>";
            }
        }
        if (optionsAuswahl != "") {
            $("#subrubrikauswahl").html(optionsAuswahl)
        }
        $("#subrubriken").html(optionsNeu)
    }
    selectedSubrubriken = "";
    ShowBerufe();
}

function AddSubrubrik() {
    
    for (i = 0; i < document.anzeigenschaltung.subrubriken.length; i++) {
        if (document.anzeigenschaltung.subrubriken.options[i].selected) {
            document.anzeigenschaltung.subrubrikauswahl.options[document.anzeigenschaltung.subrubrikauswahl.length] = new Option(document.anzeigenschaltung.subrubriken.options[i].text, document.anzeigenschaltung.subrubriken.options[i].value, false, false);
        }
    }
    for (i = 0; i < document.anzeigenschaltung.subrubriken.length; i++) {
        if (document.anzeigenschaltung.subrubriken.options[i].selected)
            document.anzeigenschaltung.subrubriken.options[i] = null;
    }
    ShowBerufe();
}

function RemoveSubrubrik() {
    var anzahl = document.anzeigenschaltung.subrubrikauswahl.length - 1;
    for (i = anzahl; i >= 0; i--) {
        if (document.anzeigenschaltung.subrubrikauswahl.options[i].selected)
            document.anzeigenschaltung.subrubrikauswahl.options[i] = null;
    }
    if (document.anzeigenschaltung.rubrik.value != "") {
        showSubrubrik(document.anzeigenschaltung.rubrik.value,false)
    }
    ShowBerufe();
}

function showSoftskill(softskill, removeAuswahl, setSelected) {
    if (softskill.length > 0) {
        var url = '/json/GetKompetenz.html?kompetenztyp=' + escape(softskill);
        $.get(url, function(rueckgabe) { CallBackSoftskill(rueckgabe, setSelected) });
    }
    else {
        $("#softskill").empty();
    }
    if (removeAuswahl) {
        $("#softskillauswahl").empty();
    }
}

function CallBackSoftskill(liste, setSelected) {
    var erg = '';
    $("#softskill").empty();
    if (liste == "") {
        return;
    }
    var obj = eval("(" + liste + ")");
    if (obj == "") {
        $("#softskill").html("<option>Keinen Softskill gefunden</option>");
        return;
    }
    else {
        var optionsNeu = "";
        var optionsAuswahl = "";
        for (var m = 0; m < obj.length; m++) {
            for (var i = 0; i < obj[m].Werte.length; i++) {
                var vorhanden = false;
                for (j = 0; j < document.anzeigenschaltung.softskillauswahl.length; j++) {
                    if (document.anzeigenschaltung.softskillauswahl.options[j].value == obj[m].Werte[i].Value) {
                        vorhanden = true;
                    }
                }

                if (setSelected) {
                    for (k = 0; k < selectedSoftskills.length; k++) {
                        if (selectedSoftskills[k] == obj[m].Werte[i].ausgabetext) {
                            optionsAuswahl += "<option value=\"" + kobj[m].Werte[i].Value + "\">" + obj[m].Werte[i].Ausgabetext + "</option>";
                            vorhanden = true;
                        }
                    }
                }

                if (!vorhanden) {
                    optionsNeu += "<option value=\"" + obj[m].Werte[i].Value + "\">" + obj[m].Werte[i].Ausgabetext + "</option>";
                }
            }
        }
        if (optionsAuswahl != "") {
            $("#softskillauswahl").html(optionsAuswahl)
        }
        $("#softskill").html(optionsNeu)
    }
    document.anzeigenschaltung.selectedsoftskill.value = "";
    
}

function SetSelectedSoftskills() {
    var url = '/json/GetKompetenz.html?kompetenztyp=0';
    $.get(url, function(rueckgabe) { CallBackSetSelectedSoftskill(rueckgabe) });
}

function CallBackSetSelectedSoftskill(liste) {
    var erg = '';
    $("#softskill").empty();
    var obj = eval("(" + liste + ")");
    if (obj == "") {
        $("#softskill").html("<option>Keinen Softskill gefunden</option>");
        return;
    }
    else {
        var optionsNeu = "";
        var optionsAuswahl = "";
        for (var m = 0; m < obj.length; m++) {
            for (var i = 0; i < obj[m].Werte.length; i++) {
                for (k = 0; k < selectedSoftskills.length; k++) {
                    if (selectedSoftskills[k] == obj[m].Werte[i].Ausgabetext) {

                        optionsAuswahl += "<option value=\"" + obj[m].Werte[i].Value + "\">" + obj[m].Werte[i].Ausgabetext + "</option>";
                    }
                }
            }
        }
        if (optionsAuswahl != "") {
            $("#softskillauswahl").html(optionsAuswahl)
        }
        $("#softskill").html(optionsNeu)
    }
    selectedSoftskills = "";
}

function AddSoftskill() {
    if(document.anzeigenschaltung.softskillauswahl.length < 5){
        for (i = 0; i < document.anzeigenschaltung.softskill.length; i++) {
            if (document.anzeigenschaltung.softskill.options[i].selected) {
                document.anzeigenschaltung.softskillauswahl.options[document.anzeigenschaltung.softskillauswahl.length] = new Option(document.anzeigenschaltung.softskill.options[i].text, document.anzeigenschaltung.softskill.options[i].value, false, false);
            }
        }
        for (i = 0; i < document.anzeigenschaltung.softskill.length; i++) {
            if (document.anzeigenschaltung.softskill.options[i].selected)
                document.anzeigenschaltung.softskill.options[i] = null;
        }
    }
}

function RemoveSoftskill() {
    var anzahl = document.anzeigenschaltung.softskillauswahl.length - 1;
    for (i = anzahl; i >= 0; i--) {
        if (document.anzeigenschaltung.softskillauswahl.options[i].selected)
            document.anzeigenschaltung.softskillauswahl.options[i] = null;
    }
    if (document.anzeigenschaltung.softskilltyp.value != "") {
        showSoftskill(document.anzeigenschaltung.softskilltyp.value, false, true)
    }
}

function ShowBerufe() {
    $("#berufbezeichnung").empty();
    var url = '/json/GetBerufe.html?'
     if (document.anzeigenschaltung.rubrik.length > 0) {
         $("#berufbezeichnung").html("<option>Berufe werden geladen...</option>");
         for (i = 0; i < document.anzeigenschaltung.rubrik.length; i++) {
             if (document.anzeigenschaltung.rubrik.options[i].selected)
                url += 'rubrik=' + document.anzeigenschaltung.rubrik.options[i].value + '&'; 
         }

     }
     if (document.anzeigenschaltung.subrubrikauswahl.length > 0) {
         url += 'subrubrik=';
         for (i = 0; i < document.anzeigenschaltung.subrubrikauswahl.length; i++) {
             url += document.anzeigenschaltung.subrubrikauswahl.options[i].value + ','
         }
     }
     url += '&anstellungsart=' + document.anzeigenschaltung.anstellungsart.value; 
    $.get(url, function(rueckgabe) { CallBackBeruf(rueckgabe) });
}

function CallBackBeruf(liste) {
    var erg = '';
    $("#berufbezeichnung").empty();
    var obj = eval("(" + liste + ")");

    if (obj == "") {
        $("#berufbezeichnung").html("<option>Keinen Beruf gefunden</option>");
        return;
    }
    else {
        var options = "";
        for (var i = 0; i < obj.length; i++) {
            var strSelected = "";
            if (obj[i].Bezeichnung == selectedBeruf) {
                strSelected = "selected";
            }
            options += "<option value=\"" + obj[i].BaId + "\" " + strSelected + ">" + obj[i].Bezeichnung;
        }
        $("#berufbezeichnung").html(options)
    }
}

function MarkierenAuswahlSubkategorie() {
    
    if (document.anzeigenschaltung.subrubrikauswahl.length > 0) {
        for (i = 0; i < document.anzeigenschaltung.subrubrikauswahl.length; i++) {
            document.anzeigenschaltung.subrubrikauswahl.options[i].selected = true
        }
    }
    if (document.anzeigenschaltung.softskillauswahl.length > 0) {
        for (i = 0; i < document.anzeigenschaltung.softskillauswahl.length; i++) {
            document.anzeigenschaltung.softskillauswahl.options[i].selected = true
        }
    }
}

function VorfuellenSchaltung() {
    
    if (document.anzeigenschaltung.rubrik.selectedIndex > 0) {
        var rubrikIndex = document.anzeigenschaltung.rubrik.selectedIndex;
        var rubrikID = document.anzeigenschaltung.rubrik[rubrikIndex].value;
        if (document.anzeigenschaltung.selectedSubrubriken.value != "") {
            selectedSubrubriken = document.anzeigenschaltung.selectedSubrubriken.value.split(",")
            document.anzeigenschaltung.selectedSubrubriken.value = "";
        }
        if (document.anzeigenschaltung.selectedBeruf.value != "") {
            selectedBeruf = document.anzeigenschaltung.selectedBeruf.value
            document.anzeigenschaltung.selectedBeruf.value = "";
        }
        showSubrubrik(rubrikID, false);
    }
    
    var softskillIndex = document.anzeigenschaltung.softskilltyp.selectedIndex;
    var softskillID = document.anzeigenschaltung.softskilltyp[softskillIndex].value;
    if (document.anzeigenschaltung.selectedsoftskill.value != "") {
        selectedSoftskills = document.anzeigenschaltung.selectedsoftskill.value.split(", ")
        document.anzeigenschaltung.selectedsoftskill.value = "";
    }
    showSoftskill(softskillID, false, false);
    SetSelectedSoftskills();
}

function AnpassenBerufeAnhandAnstellungsart() {
    ShowBerufe();
}