 var Node = function(){
  next=null;
  value=null;
};


var Queue = {
    size: 0,
    head:null,
    tail:null,
    
    isEmpty: function(){
      return (this.size == 0);          
    },

    create: function(){
      this.head = new Node();
      this.tail = new Node();
      
      this.head = this.tail;
      this.tail.next = this.tail;
      this.tail.prev = this.tail;
    },
    
    enqueue: function(val){
      this.tail = this.tail.next;
      this.tail.value = val;
      this.tail.next = new Node();
      this.tail.next.prev = this.tail;
      this.size++;
    },
    
    enqueueHead: function(val){
      var aux = new Node();
      aux.value = val;
      aux.next = this.head;
      this.head.prev = aux;
      this.head = aux;
      this.size++;
    },
    
    
    dequeue: function(){
      if(this.size==0)return;
      var val = this.head.value;
      this.head = this.head.next;
      this.size--;
      return val;
    },
    
    dequeueTail: function(){
      if(this.size==0)return;
      var val = this.tail.value;
      this.tail = this.tail.prev;          
      this.size--;
      return val;
    }
};


$(function(){
  /* Configuracoes *****************************/
  var tempo = 500;
  var distx = 153;//146+5+padding_demoniaco
  /*********************************************/
  
  var a = Queue;
  a.create();
  
  $("#slider1 li").each(function(){
    a.enqueue($(this).html());
  });
  
  $("#controle_dir").click(function(){
    obj = a.dequeue();
    a.enqueue(obj);
    var novoli = "<li>"+obj+"</li>";
    $("#slider1 li:first").remove();
    $("#slider1").css({marginLeft:'+='+distx}).append(novoli).animate({marginLeft:'-='+distx},tempo);
    
  });
  
  $("#controle_esq").click(function(){
    obj = a.dequeueTail();
    a.enqueueHead(obj);
    var novoli = "<li>"+obj+"</li>";
    $("#slider1 li:last").remove();
    $("#slider1").css({marginLeft:'-='+distx}).prepend(novoli).animate({marginLeft:'+='+distx},tempo);
    
  });
})
