var stop_caroucel_ctrl = false;
$(document).ready(function() {

   $(".pagelist_carousel").each (function (ind, element) {
      $(".carousel_ctrl_left", element).click(function (evt) {        
         if ($(evt.currentTarget.firstChild).hasClass("hasnext")) {
            if (stop_caroucel_ctrl)
               return;
            var count = $('ul li', element).length;
            var a = $('ul', element).css("width");
            var b = a.replace("px", "")
            var len   = parseInt(b);
            var itemlen = len / count;
            var c = $('ul', element).css("left");
            var d;
            if (c == "auto")
               d = 0;
            else
               d = c.replace("px", "");
            var e = parseInt(d);
            var pos = (Math.abs(e) / itemlen);
            var nextpos = ( pos - 1 ) * itemlen * - 1;
            if (pos > 0) {
               stop_caroucel_ctrl = true;
               $('ul', element).animate({ left:nextpos }, 500, function () {
                  if (pos < 2) {
                     $(evt.currentTarget.firstChild).removeClass("hasnext");
                  }
                   if (!$(evt.currentTarget).siblings('.carousel_ctrl_right').children().hasClass("hasnext"))
                      $(evt.currentTarget).siblings('.carousel_ctrl_right').children().addClass("hasnext");
                  stop_caroucel_ctrl = false;
               });
            }
         }
      });
      $(".carousel_ctrl_right", element).click(function (evt) {
         if ($(evt.currentTarget.firstChild).hasClass("hasnext")) {
            if (stop_caroucel_ctrl)
               return;
            var count = $('ul li', element).length;
            var a = $('ul', element).css("width");
            var b = a.replace("px", "")
            var len   = parseInt(b);
            var itemlen = len / count;
            var c = $('ul', element).css("left");
            var d;
            if (c == "auto")
               d = 0;
            else
               d = c.replace("px", "");
            var e = Math.abs(parseInt(d));
            var pos = 1 + (e / itemlen);
            var nextpos = pos * itemlen * -1;
            if (pos < count) {
                stop_caroucel_ctrl = true;
                $('ul', element).animate({ left:nextpos }, 500, function () {
                   if (pos == count - 1) {
                      $(evt.currentTarget.firstChild).removeClass("hasnext");
                   }
                   if (!$(evt.currentTarget).siblings('.carousel_ctrl_left').children().hasClass("hasnext"))
                      $(evt.currentTarget).siblings('.carousel_ctrl_left').children().addClass("hasnext");
                   stop_caroucel_ctrl = false;
                });
            }
         }
      });
   });
});
