admin.lenders = {

  textCounter: function(field, element, limit) {
    if (field.value.length > limit) {
      field.value = field.value.substring(0, limit);
      return false;
    } else {
      element.set('html', '('+(limit - field.value.length)+' characters remaining)');
    }
  },

  init: function(){

    admin.lenders.listSort = new Sortables($(document).getElement('ul.sortable'),{
      constrain: true,
      clone: true,
      handle: '.handle',
      opacity: 0.25,
      revert: true,
      onComplete: function(element){
        var finance = $('finance').getProperty('value');
        var lenders = [];
        $each(element.getParent('ul').getElements('li[id^=lender]'), function(element, index){
          var exClass = '';
          if (element.hasClass('inactive')) exClass = ' inactive';
          if (element.hasClass('disabled')) exClass = ' disabled';
          element.set('class', index % 2 ? 'odd'+exClass : 'even'+exClass);
          lenders.push(element.getProperty('id').replace('lender_',''));
        });
        new Request({
          url: '/affiliates/handler.php',
          method: 'get',
          link: 'cancel',
          noCache: true
        }).send('action=reorder_lenders&finance='+finance+'&lenders='+encodeURI(JSON.encode(lenders)));
        console.log(lenders);
      }
    });

    admin.lenders.listSort.removeItems($$('li.head'), $$('li.subhead'));

    admin.lenders.modalbox = new Element('div', {id: 'modalbox'});

    admin.lenders.pageMask = new Mask(document.body, {
      hideOnClick: true,
      maskMargins: true,
      useIframeShim: true,
      onShow: function(){
        admin.lenders.pageMask.resize();
      },
      onHide: function(){
        admin.lenders.datarequest.cancel();
        admin.lenders.modalbox.hide().set('html', '');
      }
    });

    admin.lenders.datarequest = new Request.HTML({
      url: '/affiliates/handler.php',
      method: 'get',
      noCache: true,
      evalScripts: true,
      update: admin.lenders.modalbox,
      onRequest: function(){
        admin.lenders.pageMask.show();
        admin.lenders.modalbox.set('html', '<p class="spinner">Retrieving data&hellip;</p>').inject(document.body).position({position: 'center'}).show();
      },
      onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript){},
      onComplete: function(){
        admin.lenders.modalbox.position({position: 'center'});
      }
    });

  },

  last5: function(id){
    admin.lenders.datarequest.send('action=last5&id='+id);
  },

  pixel: function(id){
    admin.lenders.datarequest.send('action=pixel&id='+id);
  }

};
