Вход Регистрация
Файл: js/al/usorter.js
Строк: 283
<?php
var usorter = {
  
sqr: function(x) {
    return 
x;
  },
  
evCoords: function(ev) {
    return 
browser.android ? [ev.touches[0].pageX + (ev.pageX || 0), ev.touches[0].pageY + (ev.pageY || 0)] : [ev.pageXev.pageY];
  },

  
animstop: function() {
    
clearInterval(usorter.animtimer);
    
usorter.animtimer false;
  },
  
animcache: {},
  
animstep: function() {
    var 
finished = [], all truetemp;
    for (var 
i in usorter.animcache) {
      if (
== 0) {
        
all false;
        
scrollNode.scrollTop += Math.ceil(usorter.animcache[i] / 5);
        continue;
      }
      var 
usorter.animcache[i], a.elFx.Transitions.easeOutQuintdt 200;
      var 
prev vkNow();
      
a.+= prev a.prev;
      
a.prev prev;
      if (
a.dt) {
        
all false;
        
e.style.left f(a.ta.sxa.dxdt) + 'px';
        
e.style.top f(a.ta.sya.dydt) + 'px';
        if (
browser.msie8) { // force redraw
          
temp e.offsetLeft;
        }
        continue;
      }
      
e.style.left = (a.sx a.dx) + 'px';
      
e.style.top = (a.sy a.dy) + 'px';
      if (
browser.msie8) { // force redraw
        
temp e.offsetLeft;
      }
      
clearInterval(a.timer);
      
finished.push(e.parentNode.id);
      if (
a.ha.h.apply(e);
    }
    for (var 
i in finished) {
      
delete(usorter.animcache[finished[i]]);
    }
    if (
all) {
      
usorter.animstop();
    }
  },
  
animdone: function(s) {
    
removeClass(domPN(this), s.clsUp);
    
setStyle(this, {left0top0});
    if (
cur.usorterSetSize) {
      
setStyle(this.parentNode, {width''height''});
    }
  },
  
animate: function(esxsyxyhandlers) {
    if (
data(e'tween')) data(e'tween').stop(true);
    if (
browser.msie8 || sx == && sy == y) {
      
removeClass(domPN(e), s.clsUp);
      
setStyle(e, {left0top0});
      if (
cur.usorterSetSize) {
        
setStyle(e.parentNode, {width''height''});
      }
      return;
    }
    var 
anim = {t0sxsxsysydxsxdysyhhandlerprevvkNow()};
    if (
usorter.animcache[e.parentNode.id]) {
      
extend(usorter.animcache[e.parentNode.id], anim);
      return;
    }
    
usorter.animcache[e.parentNode.id] = extend(anim, {ele});
    if (!
usorter.animtimer) {
      
usorter.animtimer setInterval(usorter.animstep13);
    }
  },

  
first: function(obj) {
    
el obj.firstChild;
    while(
el && el.nodeType == 3) {
      
el el.nextSibling;
    }
    return 
el;
  },

  
mousedown: function(ev) {
    var 
touch ev && ev.touches && ev.touches.length == 1;
    if (
ev && (ev.button == || ev.which == || ev.ctrlKey || ev.metaKey) && !touch) {
      return 
true;
    }
    if (
usorter.current) return;
    
cur.usorterOver false;

    var 
el thisinner usorter.first(el), el.parentNode.usorterevc usorter.evCoords(ev);
    if (
ev.target.getAttribute('nosorthandle') || el.getAttribute('nodrag')) return;

    
usorter.current s;
    
usorter.nextEl el.nextSibling;
    
extend(s, {dragel});
    
setStyle(inner, {leftel.'px'topel.'px'zIndex150});
    
addClass(els.clsUp);

    var 
size getSize(inner);
    
setStyle(el, {widthsize[0], heightsize[1]});

    
addEvent(document'mousemove drag touchmove'usorter.mousemove);
    
addEvent(document'mouseup touchend touchcancel'usorter.mouseup);
    if (
false) {
      
addEvent(usorter.scrollNode'scroll'usorter.mousemove);
    }
    
extend(s, {
      
startXevc[0],
      
startYevc[1] + (browser.msie6 pageNode.scrollTop 0),
      
beforedomNS(el),
      
newbefdomNS(el),
      
afterdomPS(el)
    });
    
extend(usorter, {lastXevc[0], lastYevc[1], lastSscrollNode.scrollTop});

    if (
window.PrivacyPrivacy.hide(-1);

    
cur.cancelClick false;

    return 
touch || cancelEvent(ev);
  },

  
mousemove: function(ev) {
    if (!
usorter.current) return;

    var 
cancel trueevc = (ev.type == 'scroll') ? [usorter.lastXusorter.lastY scrollNode.scrollTop usorter.lastS] : usorter.evCoords(ev);
    if (
ev.type == 'scroll') {
      
cancel false;
    } else {
      
usorter.lastX evc[0];
      
usorter.lastY evc[1];
      
usorter.lastS scrollNode.scrollTop;
      if (!
browser.safari_mobile && !browser.android && false) {
        var 
my evc[1] - (browser.msie6 scrollNode.scrollTop);
        if (
my 100) {
          
usorter.animcache[0] = my 100;
        } else if (
my lastWindowHeight 100) {
          
usorter.animcache[0] = my 100 lastWindowHeight;
        } else if (
usorter.animcache[0]) {
          
delete(usorter.animcache[0]);
        }
        if (
usorter.animcache[0] && !usorter.animtimer) {
          
usorter.animtimer setInterval(usorter.animstep13);
        }
      }
    }

    var 
usorter.current;
    var 
el s.drag;
    var 
dx evc[0] - s.startX;
    var 
dy evc[1] + (browser.msie6 pageNode.scrollTop 0) - s.startY;
    var 
el.xnx dxel.yny dytemp;

    if (
dx 10 || dx < -10 || dy 10 || dy < -10) {
      
cur.cancelClick true;
    }

    
setStyle(usorter.first(el), {leftnxtopny});
    if (
browser.msie8) { // force redraw
      
temp el.offsetLeft;
    }

    var 
best falsebestyfound false;
    var 
els domPN(el).childNodeselem els[0], curr elem.xprev;
    var 
cx nx el.wcy ny el.h;

    for (var 
0els.lengthl; ++i) {
      var 
next = (l) ? els[1] : {idfalsexcurr 1}, curry elem.elem.h;
      if (
found === false && curr elem.>= cx) {
        
found elem;
        if (
best === false || Math.abs(besty cy) > Math.abs(curry cy)) {
          
best elem;
          
besty curry;
        }
      }
      
prev curr;

      
elem next;
      
curr elem.x;
      if (
curr prev) {
        if (
found === false && (best === false || Math.abs(besty cy) > Math.abs(curry cy))) {
          
best elem;
          
besty curry;
        }
        
found false;
      }
    }
    if (
best.id === false) {
      
best null;
    }

    if (
best === s.newbef) return;

    if (
s.newbef !== el && s.newbef !== s.before) {
      
animate(domFC(s.newbef domPS(s.newbef) : els[1]), {left0}, 200);
      
animate(domFC(s.newbef), {left0}, 200);
    }
    
s.newbef best;
    if (
s.newbef !== el && s.newbef !== s.before) {
      if (!
s.newbef || s.newbef.el.x) {
        
animate(domFC(s.newbef domPS(s.newbef) : els[1]), {left: -5}, 200);
      } else {
        var 
newbefps domPS(s.newbef);
        if (
newbefps && newbefps.s.newbef.&& Math.abs(newbefps.newbefps.cy) < Math.abs(s.newbef.s.newbef.cy)) {
          
animate(domFC(s.newbef domPS(s.newbef) : els[1]), {left: -5}, 200);
        } else {
          
animate(domFC(s.newbef), {left5}, 200);
        }
      }
    }

    return 
cancel cancelEvent(ev) : true;
  },
  
mouseup: function(ev) {
    if (!
usorter.current) return;

    var 
usorter.current;
    var 
el s.dragevc usorter.evCoords(ev), els domPN(el).childNodes;
    var 
dx = (evc[0] || usorter.lastX) - s.startX;
    var 
dy = (evc[1] || usorter.lastY) + (browser.msie6 pageNode.scrollTop 0) - s.startY;
    
setStyle(usorter.first(el), {zIndex125});
    
usorter.current s.drag false;

    if (
s.newbef !== el && s.newbef !== s.before) {
      for (var 
0els.lengthl; ++i) {
        var 
elem els[i], first usorter.first(elem);
        if (
elem != el) {
          
addClass(elems.clsUp);
          
setStyle(elem, {widthelem.wheightelem.h});
          
setStyle(first, {zIndex120leftelem.xtopelem.y});
        }
      }
      if (
s.newbef) {
        
domPN(el).insertBefore(els.newbef);
      } else {
        
domPN(el).appendChild(el);
      }
      for (var 
0els.lengthl; ++i) {
        var 
elem els[i], first usorter.first(elem), elem.offsetLeftelem.offsetTop;
        if (
elem == el) {
          
usorter.animate(firstelem.dxelem.dyxyusorter.animdone.bind(firsts), s);
        } else {
          
usorter.animate(firstelem.xelem.yxyusorter.animdone.bind(firsts), s);
        }
        
elem.x;
        
elem.y;
      }
    } else {
      
usorter.animate(usorter.first(el), el.dxel.dyel.xel.yusorter.animdone.bind(usorter.first(el), s), s);
    }

    
usorter.stop();

    if (
usorter.animcache[0]) {
      
delete(usorter.animcache[0]);
      if (
isEmpty(usorter.animcache)) {
        
usorter.animstop();
      }
    }

    var 
before domNS(el), after domPS(el);
    if ((
before !== s.before || after !== s.after) && s.onReorder) {
      
s.onReorder(elbeforeafter);
    }
    
delete(s.before);
    
delete(s.newbef);
    
delete(s.after);

    return 
cancelEvent(ev);
  },
  
stop: function() {
    var 
usorter.current;
    
removeEvent(document'mousemove drag touchmove'usorter.mousemove);
    
removeEvent(document'mouseup touchend touchcancel'usorter.mouseup);
    
s.drag usorter.current false;
  },
  
added: function(parent) {
    if (
browser.mobile && !browser.safari_mobile && !browser.android) return;
    var 
parent.usorters.countel domFC(parent);
    for (var 
0elel domNS(el), ++i) {
      var 
first usorter.first(el);
      var 
el.offsetLeftel.offsetTopsz getSize(first);
      
extend(el, {xxyywsz[0] / 2hsz[1] / 2indexi});

      if (
>= l) {
        
addEvent(el'mousedown touchstart'usorter.mousedown);
        
setStyle(el, {cursor'move'});
      }
    }
    
s.count += (l);
  },

  
init: function(parentopts) {
    if (
browser.mobile && !browser.safari_mobile && !browser.android) return;

    
usorter.scrollNode browser.msie6 pageNode window;
    
parent ge(parent);

    if (
browser.msie7 || browser.msie6parent.style.position 'relative';

    var 
result = {
      
parentparent,
      
canDragopts.canDrag,
      
clsUpopts.clsUp,
      
count0,
      
stop: function() {
        if (
usorter.current == result) {
          
usorter.stop();
        }
        for (var 
els result.parent.childNodes0els.lengthl; ++i) {
          var 
ch els[i];
          if (
usorter.animcache[ch.id]) {
            
delete(usorter.animcache[ch.id]);
          }
        }
      },
      
destroy: function() {
        
result.stop();
        var 
el result.parentels el.childNodes;
        
removeAttr(el'usorter');
        for (var 
0els.lengthl; ++i) {
          var 
ch els[i];
          
removeEvent(ch'mousedown touchstart'usorter.mousedown);
        }
      },
      
onReorderopts.onReorder
    
}

    
parent.usorter result;
    
usorter.added(parent);
    return 
result;
  }
}

try{
stManager.done('usorter.js');}catch(e){}
?>
Онлайн: 0
Реклама