﻿/* support login1 */
window.addEvent('domready', function() {
  $$('.displayNone1').removeClass('displayNone1');
  $$('.displayNone2').removeClass('displayNone2').addClass('displayNone');
  function showAreas(areas, show) {
    for (var i=0; i<areas.length; ++i) {
      var area = areas[i];
      if (show) {
        area.removeClass('displayNone');
        area.getElements('input').removeClass('displayNone');
        area.getElements('a').removeClass('displayNone');
      } else {
        area.addClass('displayNone');
        area.getElements('input').addClass('displayNone');
        area.getElements('input[type=text],input[type=password]').set('value', '');
        area.getElements('a').addClass('displayNone');
      }
    }
  }
  function handleLogin1() {
    var txtCustNo = $('txtCustNo');
    var txtUserPassword;
    var userName = txtCustNo.get('value');
    var userPassword = '';
    if (userName) userName = userName.trim();
    if (!userName) {
      showAreas($$('tr[id^=trAuthorizationKey]'), false);
      showAreas($$('tr[id^=trPassword]'), false);
    }
    else if (userName.match(/^[0-9]*$/)) {
      var maxZeichen = 9;
      //Numerische Werte - WIC-ART-Nummer
      userName = userName.replace(/[^0-9]/g , '');
      if (userName.length > maxZeichen) {
        userName = userName.substring(0, maxZeichen);
      }
      showAreas($$('tr[id^=trAuthorizationKey]'), true);
      showAreas($$('tr[id^=trPassword]'), false);
      var txtKey = $('txtKey');
      if (txtKey) {
        userPassword = txtKey.get('value');
        if (userPassword && userPassword.match(/[^0-9]/)) {
          userPassword = userPassword.replace(/[^0-9]/g , '');
          txtKey.set('value', userPassword);
        }
      }
      txtUserPassword = txtKey;
    }
    else {
      showAreas($$('tr[id^=trAuthorizationKey]'), false);
      showAreas($$('tr[id^=trPassword]'), true);
      var txtPassword = $('txtPassword');
      if (txtPassword) {
        userPassword = txtPassword.get('value');
      }
      txtUserPassword = txtPassword;
    }
    if (txtCustNo.get('value') != userName) {
      txtCustNo.set('value', userName);
    }
    showAreas($$('tr[id^=trLogin]'), userPassword);
    if (txtCustNo.fixFocusHandling === true) {
        txtCustNo.fixFocusHandling = false;
        if (txtUserPassword) {
            txtUserPassword.focus();
        }
    }
    if (txtUserPassword && txtUserPassword.fixFocusHandling === true) {
        txtUserPassword.fixFocusHandling = false;
        if (userPassword) {
            $('btnSubmit').focus();
        }
    }
  }
  var txtCustNo = $('txtCustNo');
  if (txtCustNo) {
    txtCustNo.focus();
    handleLogin1();
    $$('#txtCustNo,#txtKey,#txtPassword').addEvent('keyup', handleLogin1).addEvent('blur', handleLogin1);
    if (Browser.Engine.trident) {
        $$('#txtKey,#txtPassword').addEvent('keydown', function(event) {
            if (event.key == "enter") {
                event.stop();
                $(event.target).getParent('form').submit();
            }
        });
    }
    if (Browser.Engine.gecko) {
        $$('#txtCustNo,#txtKey,#txtPassword').addEvent('keypress', function(evt) {
            if (evt.key == 'tab' && !evt.shift) {
                this.fixFocusHandling = true;
            }
        });
    }
  }
});

/* support login3 + einstellungen */
window.addEvent('domready', function() {
    var minVisiblePart = 0;
    var lastVisiblePart = 0;
    var maxVisiblePart = 0;
    function changeLastVisiblePart(step) {
        lastVisiblePart = (lastVisiblePart + step).limit(0, maxVisiblePart-1);
        if ($('kind_counter'))  $('kind_counter').set('value', lastVisiblePart + 1);
    }
    function manageShowHide() {
        var btMinusList = $$('.bt_minus');
        for (var i=0; i<btMinusList.length; ++i) {
            btMinusList[i].getParent('.content').setStyle('display', i > lastVisiblePart ? 'none' : '' );
            btMinusList[i].getParent('table').setStyle('display', i <= minVisiblePart || i < lastVisiblePart ? 'none' : '' );
        };
        $$('.bt_plus').forEach(function(btnPlus) {
            btnPlus.getParent('.content').setStyle('display', lastVisiblePart+1 < maxVisiblePart ? '' : 'none');
        });
    }
    function btMinusClick(evt) {
        this.getParent('.content').getElements('input[type=text]').set('value','').fireEvent('blur');
        changeLastVisiblePart(-1);
        scrollToItem($$('.bt_minus')[lastVisiblePart].getParent('.content'));
        manageShowHide();
        evt.preventDefault();
    }
    function btPlusClick(evt) {
        changeLastVisiblePart(1);
        manageShowHide();
        scrollToItem($$('.bt_minus')[lastVisiblePart].getParent('.content'));
        evt.preventDefault();
    }
    function initPlusMinus() {
        var btMinusList = $$('.bt_minus');
        for (var i=0; i<btMinusList.length; ++i) {
            btMinusList[i].addEvent('click', btMinusClick);
        }
        $$('.bt_plus').addEvent('click', btPlusClick);
        maxVisiblePart  = getIntValue('kind_counter_max', btMinusList.length).limit(0, btMinusList.length);
        lastVisiblePart = getIntValue('kind_counter', 1).limit(1, maxVisiblePart) - 1;
        minVisiblePart = lastVisiblePart;
        manageShowHide();
    }
    function getIntValue(fieldId, defaultValue) {
        var field = $(fieldId);
        if (field && field.get('value')) {
            var intValue = field.get('value').toInt();
            if ($type(intValue) == 'number')
                return intValue;
        }
        return defaultValue;
    }
    function initInputPattern(els, pattern) {
        els.forEach(function(inp) {
            if (!inp.get('value')) {
                inp.set('value', pattern);
            }
        });
        els.addEvent('focus', function() {
            if (this.get('value') == pattern) {
                this.set('value', '');
            }
        });
        els.addEvent('blur', function() {
            if (!this.get('value')) {
                this.set('value', pattern);
            }
        });
    }
    initPlusMinus();
    initInputPattern($$('[name^=txtDateOfBirthTT]'), 'TT');
    initInputPattern($$('[name^=txtDateOfBirthMM]'), 'MM');
    initInputPattern($$('[name^=txtDateOfBirthJJJJ]'), 'JJJJ');
});
/**
 * scroll message or error to the viewport
 * focus input near by the error message
 */
window.addEvent('domready', function() {
    var msg = $$('.errorBox,.messageBox');
    if (msg.length > 0) {
        var y = 0;
        msg = msg[0];
        var container = msg.getParent('.content');
        if (container) {
            y = Math.min(container.getTop() + (container.getHeight() - window.getHeight()) / 2, container.getTop() - 10);
            y = Math.min(y, msg.getTop() - 15);
            y = Math.max(y, msg.getTop() + msg.getHeight() + 30 - window.getHeight());
        } else {
            y = msg.getTop() + (msg.getHeight() - window.getHeight()) / 2;
        }
        window.scrollTo(0, Math.max(y, 0));
        if (container && msg.hasClass('errorBox')) {
            var tr = msg.getParent('tr');
            if (tr) {
                var input = tr.getElement('input[type=text],input[type=password]');
                if (input) {
                    input.focus();
                }
            }
        }
    }
});
