
var glob_Probefl_Anz = 0;

function plus_minus (elementid, action){
    var selectedInput = document.getElementById(elementid);
    var actualValue = Math.abs(selectedInput.value);
    if (isNaN(actualValue)) {
        actualValue = 1;
    }
    if (action == "+"){
        selectedInput.value = actualValue+1;
    }
    if (action == "-"){
        actualValue = actualValue-1;
        if (actualValue < 0) {
            actualValue = 0;
        }
        selectedInput.value = actualValue;
    }
}

function countProperties(obj) {
  var count = 0;

  for(var prop in obj) {
    if(obj.hasOwnProperty(prop))
      ++count;
  }

  return count;
}

function output_value (id, value) {
  let done = 0;
  if (document.getElementById(id)) {
    const output_element = document.getElementById(id);
    if (output_element.tagName == "INPUT") output_element.value = value;
    if (output_element.tagName == "TEXTAREA") output_element.value = value;
    if (output_element.tagName == "DIV") output_element.innerHTML = value;
    done = 1;
  }
  if (done == 0) console.error('no Field '+id);
}

function ajaxcall_filter(call, value, var_function){
    value = (typeof value !== 'undefined') ?  value : 0;
    var_function = (typeof var_function !== 'undefined') ?  var_function : "call";

  var feedback;
  document.getElementById("winelist_all2").innerHTML = ' ';

  if (window.XMLHttpRequest) {
    xmlhttp=new XMLHttpRequest();
  }
  else
  {
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }

  xmlhttp.onreadystatechange = function() {
  if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
      feedback = xmlhttp.responseText;
      document.getElementById("winelist_all2").innerHTML = feedback;
    }
  }
  let form = new FormData();
  form.append("f", var_function);
  form.append("q", call);
  form.append("v", value.toString());
  xmlhttp.open("POST", "/php/ajax/ajax_Bestellseite.php");
  xmlhttp.send(form);
}


function show(id) {
    if (document.getElementById) {
        var mydiv = document.getElementById(id);
        mydiv.style.display = (mydiv.style.display=='block'?'none':'block');
    }
}

function SelUnsel (SelectID){
    var ClassName = document.getElementById(SelectID).className;
    var res = SelectID.split("-");
    var str_hiddenfield = 'Posit_'+res[1];
    var str_button = 'abschicken'+str_hiddenfield;

    if (ClassName == "gn_selected"){
        glob_Probefl_Anz--;
        document.getElementById(SelectID).className = "weinselect";
        document.getElementById(str_hiddenfield).value = "0";
            document.getElementById(str_button).className = "buttonsmall";
            output_value (str_button, ' in den Probenkarton '); 
    }
    else {
        if (glob_Probefl_Anz < glob_Probefl_Anz_Max){
            glob_Probefl_Anz++;
            document.getElementById(SelectID).className = "gn_selected";
            output_value (str_hiddenfield, "1");
        
                document.getElementById(str_button).className = "buttonsmall_checked";
                output_value (str_button, ' ausgewählt '); 
        }
        else {
            alert("Ihr Probenkarton\n ist leider voll");
        }
    }
    document.getElementById("FlaschenInsgesamt").value = glob_Probefl_Anz;
    document.getElementById("BoxFlaschen").value = glob_Probefl_Anz;
}


function resizeImg (Bild, relation) {
    var x_screen = screen.width;
    var y_screen = screen.height;

    var Bildrelation = Bild.width / Bild.height;
    var Bildhoehe = y_screen * (relation / 100);

    Bild.height = Bildhoehe;
    var Bildbreite = Bildrelation * Bild.height;
    Bild.width = Bildbreite;
}

function round (x, n) {
    n = (typeof n !== 'undefined') ?  n : 0;
    var a = Math.pow(10, n);
    return (Math.round(x * a) / a);
}



function scroll_navi () {

}

function Validate_Email(inputText)
{
    var mailformat = /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/;
    if (inputText.value.match(mailformat))
    {
        return (true)
    }
        return (false)
}

function check_checkbox (alert_aufruf) {
    if (document.getElementById("inp_mail")){
        var emailvalue = document.getElementById("inp_mail");
        emailvalue.value = emailvalue.value.toLowerCase();

        if (Validate_Email(emailvalue)){
            if (document.getElementById("retreatcheck").checked == false){
                
                if (confirm('Die Widerrufsbelehrung haben Sie gelesen\n und akzeptiert?')) {
                  document.getElementById("retreatcheck").checked = true;
                  console.log('Thing was saved to the database.');
                } else {

                  return false;
                }
            }
            if (document.getElementById("agecheck").checked == false){

                if (confirm('Sie bestätigen, dass Sie\nüber 18 Jahre\n alt sind?')) {
                  document.getElementById("agecheck").checked = true;
                  console.log('Thing was saved to the database.');
                } else {

                  return false;
                }
            }

            document.getElementById("submit").disabled = false;

        }
        else {
            alert("In der angegebenen Emailadresse\nscheint ein Fehler zu sein.");
            return false;
        }
    }
}


function Restzucker () {
    var UMG;
    var GS;
    var Brix;
    var SreKorr;
    var A;
    var B;
    var C;
    var RZ;
    var Alk;
    var Zuschlag_UMG;
    var Zuschlag_GS;
    var Zuschlag_Total;

    if (document.getElementById("UMG")){
        UMG = document.getElementById("UMG").value.replace(',','.');
        GS = document.getElementById("GS").value.replace(',','.');
        Brix = document.getElementById("Brix").value.replace(',','.');

        SreKorr = 0; 

        A = (0.33182731*UMG-0.19041165)+((GS-6.8)*0.1);
        B = (4.4288134*UMG)-2.3971473;   
        C =  ((2.5*B)-25)/(UMG-A); 

        RZ = (C*(Brix-A));
        output_value ("Result" , round(RZ,1) + " g/l");

        output_value ("Nullpunkt", round(A,1) + " Brix");


        Alk = (((2.5*B)-24)-RZ)*0.48;
        output_value ("Alk", round(Alk,1) + "g/l " + round((Alk/7.89),1) + "%vol");

        Zuschlag_UMG = 0.2 * B  - 10.4;
        Zuschlag_GS = (GS - 4.5) * 0.4;
        Zuschlag_Total = Zuschlag_UMG - Zuschlag_GS;

        output_value ("OEDLR",  round(((RZ/2)-Zuschlag_Total),1) + "°Oe");

        setCookie("UMG", UMG, 365);
        setCookie("GS", GS, 365);
        setCookie("Brix", Brix, 365);
    }
}

function setCookie (cname, cvalue, exdays, path) {
    cvalue = (typeof cvalue !== 'undefined') ?  cvalue : '';
    exdays = (typeof exdays !== 'undefined') ?  exdays : 720;
    path = (typeof path !== 'undefined') ?  path : '/';

    if (getCookie('mbmcookie') == '1'){
        var d = new Date();
        d.setTime(d.getTime() + (exdays*24*60*60*1000));
        var expires = "expires="+d.toUTCString();
        cvalue = encodeURI(cvalue);
        document.cookie = cname + "=" + cvalue + "; " + expires +"; path="+path+"; secure";
    }
}

function getCookie (cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            var tmp = decodeURIComponent(c.substring(name.length, c.length));
            return tmp.replaceAll("+", " ");
        }
    }
    return "";
}

function checkCookieRZReload () {
    var user = getCookie("UMG");

    if (user != "" && document.getElementById("UMG")) {

    }
}

function RzDLR (){

    if (document.getElementById("UMGs")){

        var UMGs = Number(document.getElementById("UMGs").value.replace(',','.'));
        var GSs = Number(document.getElementById("GSs").value.replace(',','.'));
        var OE = Number(document.getElementById("OE").value.replace(',','.'));

        if (UMGs !== 0) {
            console.info('forward calc');
            if (UMGs<2){
                UMGs = (UMGs-1)*1000;
                document.getElementById("UMGs").value = round(UMGs,0);
            }
            if (OE<2 && document.getElementById("OE").value.length>4) {
                OE = (OE-1)*1000;
                document.getElementById("OE").value = round(OE,0);
            }
            var Zuschlag_UMG = (0.2 * UMGs)  - 10.4;
            console.log('Zuschlag_UMG: '+Zuschlag_UMG);

            var Zuschlag_GS = (GSs - 4.5) * 0.4;
            console.log('Zuschlag_GS: '+Zuschlag_GS);

            var Zuschlag_Total = Zuschlag_UMG - Zuschlag_GS;
            console.log('Zuschlag_Total: '+Zuschlag_Total);

            var RZ = (Zuschlag_Total + OE) * 2;
            console.log('RZ: '+RZ);

            if (document.getElementById('result_RZ')) {

              output_value ('result_RZ', round(RZ,1));
            }

            output_value ("Results", round(RZ,1));
        }
        else {
            console.info('reverse calc');
            if (UMGs<2){
                UMGs = (UMGs-1)*1000;
                document.getElementById("UMGs").value = round(UMGs,0);
            }
            if (OE<2 && document.getElementById("OE").value.length>4) {
                OE = (OE-1)*1000;
                document.getElementById("OE").value = round(OE,0);
            }
            var RZ = Number(document.getElementById("Results").value.replace(',','.'));
            console.log('RZ: '+RZ);

            var Zuschlag_ges = (RZ/2)-OE;
            console.log('Zuschlag_ges: '+Zuschlag_ges);

            var Zuschlag_GS = (GSs - 4.5) * 0.4;
            console.log('Zuschlag_GS: '+Zuschlag_GS);

            var Zuschlag_UMG = Zuschlag_ges + Zuschlag_GS;
            console.log('Zuschlag_UMG: '+Zuschlag_UMG);

            var UMG = (Zuschlag_UMG + 10.4)*5; 
            console.log('UMG: '+UMG);

            var GA = ((UMG * 2.5)-20) * 0.5;
            document.getElementById("out_zu").innerHTML = '<br>'+round(UMG,1)+' Oe | '+round(GA,1)+' g/l GA';
            document.getElementById("UMGs").value = round(UMG,1)+' Oe | '+round(GA,1)+' g/l GA';
        }
    }
}

  function UMGUmrechnung (selector) {

    var Brix=0;
    var Oe=0;
    var GA=0;
    if (selector==1){
      Brix=Number(document.getElementById("UMG").value.replace(',','.'));
      
      Oe = (((4.1887904*Brix))+0.63708799);
      document.getElementById("UMGO").value=round(Oe,0);
      GA = (((Oe*2.5)-22)*0.5);
      document.getElementById("UMGA").value=round(GA,1);
    }

    if (selector==2){
      Oe = Number(document.getElementById("UMGO").value.replace(',','.'));
      GA = (((Oe*2.5)-22)*0.5);
      document.getElementById("UMGA").value = round(GA,1);

      Brix = (Oe - 0.63708799) / 4.1887904;
      document.getElementById("UMG").value = round(Brix,1);
    }

    if (selector==3){
      GA=Number(document.getElementById("UMGA").value.replace(',','.'));
      Oe=((GA/0.5)+22)/2.5;
      document.getElementById("UMGO").value = round(Oe,1);
      Brix = (Oe - 0.63708799) / 4.1887904;
      document.getElementById("UMG").value = round(Brix,1);
    }
  }

function nl2br (str, is_xhtml) {
    if (typeof str === 'undefined' || str === null) {
        return '';
    }
    var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '<br />' : '<br>';
    return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + breakTag + '$2');
}

function repos_buttons ( autofill ) {

    autofill = (typeof autofill !== 'undefined') ?  autofill : 1;

    var checkcookie = checkCookieRZReload();
    var Reload = 0;
    var fade_end = 70; 

    var logo_center = 0;
    var Bild_width = 0;
    var Bild_height = 0;

    if ( sessionStorage.getItem("autosave")) {

        Reload = 1;
    }
    sessionStorage.setItem("autosave", "gesetzt");

    var UserAgent = navigator.userAgent.toLowerCase();


    var mobil = 0;
    if(UserAgent.search(/(iphone|ipod|opera mini|fennec|palm|blackberry|android|symbian|series60)/)>-1){

        mobil = 1;
    }

    var ViewX = "0";
    var ViewY = "0";
    var Orientation = 0;


    ViewX = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
    ViewY = window.innerHeight || document.documentElement.clientHeight ||document.body.clientHeight;

    if (ViewY > ViewX) {
        Orientation = 1;
    }



    if (document.getElementById("navi_top")) {
        var NaviTop = document.getElementById("navi_top");
        NaviTop.style.width = '100%';
        NaviTop.style.position = 'fixed';
    }
    if (document.getElementById("navi_bottom")) {
        var NaviBottom = document.getElementById("navi_bottom");
        NaviBottom.style.width = '100%';
    }

    var css_border_offset = 2;
    if (document.getElementById("box_center_top")){
      css_border_offset = document.getElementById("box_center_top").style.borderWidth;
      console.log('border: '+css_border_offset);
    }


    var Refference = ViewY;
    var scale_1 = 0.12;
    var scale_2 = 0.18;
    if (Orientation == 1) {
        Refference = ViewX;
        scale_1 = 0.12;
        scale_2 = 0.18;
    }
    
    var Box_size_center = (Refference * scale_1)+(css_border_offset*2);

    var width_center_frame = Box_size_center * 1.41421356;
    var Refpoint_center_x = (ViewX/2);
    var Refpoint_center_y = (ViewY/2);

    var Pos_x_center = round(Refpoint_center_x-((width_center_frame/2)*0.70710678),0);
    var Pos_y_center = round((width_center_frame*0.2)+(ViewY * 0.04),0);

    
    if (document.getElementById("box_center_top")){
        var BoxCenterTop = document.getElementById("box_center_top");
        BoxCenterTop.style.left = Pos_x_center + "px";
        BoxCenterTop.style.top = Pos_y_center + "px";

        BoxCenterTop.style.visibility = "visible";
    }


    if (document.getElementById("img_center_logo")) {
        logo_center = document.getElementById("img_center_logo");
        Bild_width = logo_center.width;
        Bild_height = logo_center.height;
        Bildrelation = Bild_width / Bild_height;

        var ImgCenterLogo = document.getElementById("img_center_logo");
        var Bildhoehe = round(width_center_frame*0.4,0);
        ImgCenterLogo.style.height = Bildhoehe;
        var Bildbreite = round(Bildrelation * Bildhoehe,0);
        ImgCenterLogo.style.width = Bildbreite;
        ImgCenterLogo.style.visibility = "visible";
    }

    if (document.getElementById("content_table")) {
        var TableContent = document.getElementById("content_table");

        TableContent.width= round(ViewX*0.9,0)+"px";
        var TableContLeft= round(ViewX*0.05,0)+"px";
        var TableContTop= round((ViewY*0.1)+Bildhoehe,0)+"px";
    }

    if (document.getElementById("content_table2")) {
        var TableContent2 = document.getElementById("content_table2");
        TableContent2.width= round(ViewX*0.9,0)+"px";
        TableContLeft= round(ViewX*0.05,0);
        TableContTop= round((ViewY*0.15)+Bildhoehe,0);
        $("#mydiv").css('top', TableContTop);
        $("#mydiv").css('left', TableContLeft);
    }

    if (autofill == 1) {
        var elements;
        var i;
        var obj_type;
        var obj_id;
        var obj_cookieval;
        if(document.all) {
            elements=document.all;
        }
        else {
            if(document.getElementsByTagName && !document.all) {
                elements=document.getElementsByTagName("*");
            }
        }
        for (i=0;i<elements.length;i++) {
            if(elements[i].getAttribute("id") != null && elements[i].getAttribute("id") != ""){
                obj_type = elements[i].getAttribute('type');
                obj_id = elements[i].getAttribute("id");
                if (obj_type == 'text' || obj_id.substring(0,4) == 'inp_') {
                    obj_cookieval = decodeURI(getCookie(obj_id));
                    if (obj_cookieval !== ''){
                        document.getElementById(obj_id).value = decodeURI(obj_cookieval);
                    }
                }
            }
        }
    }
}

function suchen (suchtext)
  {
  var txt, i, found;
  if (suchtext == "")
    {
    return false;
    }
  if (NS4)
    {
    if (!this.find(suchtext))
      {
      while(this.find(suchtext, false, true))
      zaehler++;
      }
    else
      {
      zaehler++;
      }
    if (zaehler == 0)
      {
      alert(suchtext + " was not found on this page.");
      }
    }
  if (IE4)
    {
    txt = this.document.body.createTextRange();
    for (i = 0; i <= zaehler && (found = txt.findText(suchtext)) != false; i++)
      {
      txt.moveStart("character", 1);
      txt.moveEnd("textedit");
      }
    if (found)
      {
      txt.moveStart("character", -1);
      txt.findText(suchtext);
      txt.select();
      txt.scrollIntoView();
      zaehler++;
      }
    else
      {
      if (zaehler > 0)
        {
        zaehler = 0;
        suchen(suchtext);
        }
      else
        {
        alert("Der Text \"" + suchtext + "\" wurde nicht gefunden.");
        }
      }
    }
  return false;
}

function preview (override) {

        override = (typeof override !== 'undefined') ?  override : 0;

        var x = event.which || event.keyCode;
        if (x==13 || override == 1) {
            if (override == 0){
                if (document.getElementById('nl2br')){
                    if (document.getElementById('nl2br').checked == false){
                        if (x==13 && !event.shiftKey){
                            insertAtCursor(source, "<br>");
                        }
                    }
                }
                else {
                    if (x==13 && !event.shiftKey){
                        insertAtCursor(source, "<br>");
                    }
                }
            }

            var Preview = document.getElementById('preview');
            var Source = document.getElementById('source');
            var Source2 = Source.value;
            if (document.getElementById('nl2br')){
                if (document.getElementById('nl2br').checked == true){
                    Source2 = nl2br(Source2, false);
                }
            }
            Preview.innerHTML = Source2;
        }
}

function insertAtCursor (myField, myValue) {
    
    if (document.selection) {
        myField.focus();
        sel = document.selection.createRange();
        sel.text = myValue;
    }
    
    else if (myField.selectionStart || myField.selectionStart == '0') {
        var startPos = myField.selectionStart;
        var endPos = myField.selectionEnd;
        var selectionCopy = myField.value.substring(startPos, endPos);
        var slashpos = myValue.indexOf("/");
        if (slashpos >0){
            slashpos = slashpos -1;
        }
        else {
            slashpos = myValue.length;
        }
        myValue = myValue.substring(0,slashpos) + selectionCopy + myValue.substring(slashpos,999);
        myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);
        myField.focus();
        myField.selectionEnd = startPos + slashpos;
        myField.selectionStart = startPos + slashpos;
    } else {
        myField.value += myValue;
    }
}

function simleInsertAtCursor (myField, myValue) {

    var myField = document.getElementById(myField);
    var startPos = myField.selectionStart;
    var endPos = myField.selectionEnd;
    myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);
    myField.focus();
    myField.selectionStart = startPos;
    myField.selectionEnd = startPos + myValue.length;
}

function validateEmail (email) {
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return re.test(email);
}


function validate () {
    var $result = $("#result");
    var email = $("#email").val();
    $result.text("");

    if (validateEmail(email)) {
        $result.text(email + " is valid :)");
        $result.css("color", "green");
    } else {
        $result.text(email + " is not valid :(");
        $result.css("color", "red");
    }
    return false;
}

function get_votes(int) {

    int = (typeof int !== 'undefined') ?  int : 0;

    if (window.XMLHttpRequest) {
        
        xmlhttpreq = new XMLHttpRequest();
    } else {
        
        xmlhttpreq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttpreq.onreadystatechange = function() {
      
      if (this.readyState == 4 && this.status==200) {
        document.getElementById("ajax_poll").innerHTML=this.responseText;
      }
    }
    xmlhttpreq.open("GET","poll_votes.php?res="+int,true);
    xmlhttpreq.send();
}

function catalog_images () {
    var img_list = document.querySelectorAll('img');
    var counter = 0;
    var id_new = '';
    img_list.forEach(element => {
        if (element.src.indexOf("weingut",2)){
            if (typeof element.id == 'undefined' || element.id == ''){
                id_new = 'img_id' + counter.toString();
                counter = counter + 1;
                element.id = id_new;
                
            }
        }
    });
}

function zoom_img (image_source){
    var image_selected = document.getElementById( image_source );
    var image_zoom = document.getElementById('zoom_image');
    var div_zoom = document.getElementById('zoom_bg');

    var image_portrait = 1;
    if ( image_selected.height < image_selected.width ){
        image_portrait = 0;
    }

    console.log(image_portrait);

    image_zoom.src = image_selected.src;
    div_zoom.style.display = 'flex';

    if (image_portrait == 1){
        image_zoom.style.height = '80%';
        image_zoom.style.width = 'auto';
    }
    else {
        image_zoom.style.height = 'auto';
        image_zoom.style.width = '80%';
    }
}
