
$(document).ready(function() {
  var language = stentor.getLanguage();
  $('.focus').focus();

  $('.add_to_order').each(function() {
    var self = $(this);
    var inforow = document.getElementById('info-' + self.id);
    var quantity = $('input.q', self);
    var initial_quantity = $(quantity).val();
    var submitbutton = $('.add_to_order-submit', self);
    $(quantity).keypress(function(event) {
      if (event.keyCode == '13') {
        event.preventDefault();
      }
    });
    $(self).submit(function() {
      $(submitbutton).click();
      return false;
    });
    $(submitbutton).click(function() {
      var self = $(this);
      self.attr('oldsrc', self.attr('src'));
      self.attr('src', '/style/ajax-loader.gif');
      var q = $(quantity).val();
      q = parseInt(q, 10);
      if (!q || q<0 || q.toString(10)!==$(quantity).val()) {
        $(quantity).val('???');
        $(quantity).focus();
        self.attr('src', self.attr('oldsrc'));
        return false;
      }
      var artnr = $(self).attr('id').replace(/order\[(.*?)\]/, '$1');
      $.ajax({
        url: '/en/basket/order/add/article/' + artnr + '/' + q,
        type: 'POST',
        data: {'returntype':'json'},
        dataType: "json",
        error: function() { }, //info.html('??'); infototal.html('??'); },
        success: function(data) {
          self.attr('src', self.attr('oldsrc'));
          $('#artcount').html(data.itemcount);
          $(quantity).val('ok');
          window.setTimeout(function() {$(quantity).val('');}, 4000);
        }
      });
      return false;
    });
    var checkbutton = $('.check_stock', self);
    $(checkbutton).click(function() {
      var self = this;
      self.oldsrc = self.src;
      self.src = '/style/ajax-loader.gif';
      var q = $(quantity).val();
      q = parseInt(q, 10);
      if (!q || q<0 || q.toString(10)!==$(quantity).val()) {
        $(quantity).val('???');
        $(quantity).focus();
        self.src = self.oldsrc;
        return false;
      }
      var artnr = $(self).attr('id').replace(/check\[(.*?)\]/, '$1');
      $.ajax({
        url: '/' + language + '/basket/order/check/article/' + artnr + '/' + q,
        type: 'POST',
        data: {'returntype':'json'},
        dataType: "json",
        error: function() { window.alert('fout'); },
        success: function(data)
        {
          self.src = self.oldsrc;
          $('tr.info').each(function() { this.style.display = 'none'; });
          var i = document.getElementById('info-art' + artnr);
          i.style.display = $.browser.msie ? 'block' : 'table-row';
          var t = i.getElementsByTagName('TD')[0];
          var h = '';
          var ba = $.evalJSON(data.returnvalue);
          for (i in ba) {
            for (j in ba[i]) {
              if (j == 'stock' || j == 'price') continue;
              h += '<p>' + j + ' : ' + ba[i][j] + '</p>';
            }
          }
          t.getElementsByTagName('DIV')[0].getElementsByTagName('DIV')[0].innerHTML = h;
          t.getElementsByTagName('DIV')[0].style.display = 'block';
        }
      });
      return false;
    });
    var favtogglebutton = $('.toggle_favorites', self);
    $(favtogglebutton).click(function() {
      var self = this;
      self.oldsrc = self.src;
      self.src = '/style/ajax-loader.gif';
      var artnr = $(self).attr('id').replace(/fav\[(.*?)\]/, '$1');
      $.ajax({
        url: '/' + language + '/basket/favorite/toggle/article/' + artnr,
        type: 'POST',
        data: {'returntype':'json'},
        dataType: "json",
        error: function(data) { self.src = '/style/error.png'; },
        success: function(data)
        {
          self.src = (self.oldsrc.split('/').pop() == 'favadd.png' ? '/style/favrem.png' : '/style/favadd.png');
        }
      });
      return false;
    });
  });
  $('table.articles').each(function() { this.style.width = this.offsetWidth + 'px'; });
  $('tr.info').each(function() { this.style.display = 'none'; });

  $('input.updateq').keypress(function() {
    var inputq = this;
    var inputsubmit = $('input.update', $(inputq).parents('div.updateq'));
    $(inputsubmit).addClass('alert');
  });
  $('input.update').each(function() {
    var self = this;
    $(self).click(function() {
      var self = this;
      var f = self;
      while (!(f.tagName && f.tagName.toUpperCase() == 'DIV')) {
        f = f.parentNode;
      }
      var form = f;
      while (!(form.tagName && form.tagName.toUpperCase() == 'FORM')) {
        form = form.parentNode;
      }
      var ips = f.getElementsByTagName('INPUT');
      var newamount = ips[0].value;
      var theid = $(self).attr('id').replace(/.*?\[(.*?)\]/, '$1');
      self.src = '/style/ajax-loader.gif';
      $.ajax({
        url: '/' + language + '/basket/order/update/' + theid + '/' + newamount,
        type: 'POST',
        data: {'returntype':'json'},
        dataType: "json",
        error: function(data) { form.submit(); },
        success: function(data) { form.submit(); }
      });
      return false;
    });
  });

  $('a.more').each(function() {
    var self = this;
    $(self).click(function() {
      var theid = self.href.split('#').pop();
      var row = document.getElementById('info-art' + theid);
      var now = typeof(row.style.display) != 'undefined' ? row.style.display : 'none';
      $('tr.info').each(function() { this.style.display = 'none'; });
      if (now == 'none') {
        row.style.display = $.browser.msie ? 'block' : 'table-row';
      }
    });
  });

  $('button[type=reset]').each(function() {
    var self = this;
    $(self).click(function() {
      var f = self;
      while (!(f.tagName && f.tagName.toUpperCase() == 'FORM')) {
        f = f.parentNode;
      }
      for (i = 0; i < f.elements.length; i++) {
        switch (f.elements[i].tagName.toUpperCase()) {
          case 'SELECT':
            var os = f.elements[i].getElementsByTagName('OPTION');
            for (var j = 0; j < os.length; j++) {
              os[j].selected = j ? false : true;
            }
            break;
          case 'INPUT':
            if (f.elements[i].type != 'hidden') {
              f.elements[i].value = '';
            }
            break;
        }
      }
      return false;
    });
  });
  $('select#deliverypicker').change(function(event) {
    var address = addresses[this.value];
    if ($.browser.msie) address = addresses[this.value].replace(/\n/g, '<br>');
    $('#orderdeliveryaddress').html(address);
  });

  $('input.add_to_order-check').each(function() {
    var self = this;
    $(self).click(function() {
      var f = self;
      while (!(f.tagName && f.tagName.toUpperCase() == 'FORM')) {
        f = f.parentNode;
      }
      var e = document.forms['orderoptions'].elements;
      for (i = 0; i < e.length; i++) {
        if (typeof(e[i].name) == 'undefined') continue;
        var p = document.createElement('INPUT');
        p.type = 'hidden';
        p.name = e[i].name;
        switch (e[i].name) {
          case 'order[deliverypicker]':
          case 'order[deliverydate][day]':
          case 'order[deliverydate][month]':
          case 'order[deliverydate][year]':
            var os = e[i].getElementsByTagName('OPTION');
            for (j = 0; j < os.length; j++) {
              if (os[j].selected) {
                p.value = os[j].value;
                break;
              }
            }
            break;
          default:
            p.value = e[i].value;
        }
        f.appendChild(p);
      }
      return true;
    });
  });
  $('input.add_to_order-back').each(function() {
    var self = this;
    $(self).click(function() {
      var loc = '';
      loc += window.location;
      window.location = loc.replace(/checkall\/?#?$/, '');
    });
  });

  $('input.note').each(function() {
    var self = this;
    $(self).click(function() {
      var pos = $(self).position();
      var n = document.forms['note'];
      n.style.display = 'block';
      n.style['top'] = (pos['top'] - 8) + 'px';
      n.style['left'] = (pos['left'] - n.offsetWidth + 18) + 'px';
      n.elements['note[item_id]'].value = this.id.replace(/note\[(.*?)\]/, '$1');
      n.elements['note[note]'].value = this.value;
      return false;
    });
  });
  $('#note_cancel').click(function() {
    document.getElementById('note').style.display = 'none';
    return false;
  });
  $('#note_delete').click(function() {
    document.forms['note'].elements['note[note]'].value = '';
    document.forms['note'].style.display = 'none';
    submitnote();
    return false;
  });
  $('#note_ok').click(function() {
    var f = document.forms['note'];
    var i = document.getElementById('note[' + f.elements['note[item_id]'].value + ']');
    i.value = f.elements['note[note]'].value;
    if (f.elements['note[note]'].value.length) {
      i.src = '/style/icons/note_edit.png';
    } else {
      i.src = '/style/icons/note_add.png';
    }
    f.style.display = 'none';
    submitnote();
    return false;
  });
  $('.add_to_order-file').each(function() {
    var self = this;
    $(self).click(function() {
      document.getElementById('fileupload').style.display = 'block';
      return false;
    });
  });
  $('.add_to_order-upload-cancel').each(function() {
    var self = this;
    $(self).click(function() {
      document.forms['fileupload'].style.display = 'none';
      return false;
    });
  });
});

function submitnote()
{
  var language = stentor.getLanguage();
  var f = document.forms['note'];
  var id = f.elements['note[item_id]'].value;
  document.getElementById('note[' + id + ']').src = '/style/ajax-loader.gif';
  document.getElementById('note[' + id + ']').value = f.elements['note[note]'].value;
  $.ajax({
    url: '/' + language + '/basket/order/note/' + id + '/' + escape(f.elements['note[note]'].value),
    type: 'POST',
    data: {'returntype':'json'},
    dataType: "json",
    error: function(data) { },
    success: function(data) {
      document.getElementById('note[' + data.id + ']').src = '/style/icons/note_' + (data.note.length ? 'edit' : 'add') + '.png';
    }
  });
}

