

	var pagers = [];

jQuery(document).ready(function () {
	initGallery();
});

function initGallery() {
    
	jQuery("#lead-wrapper").each(function () {
	
	var items = jQuery(this).find(".views-row");
	
	if(items.length > 1){
          var pager = new Pager('ServicesPager');
            pager.root = jQuery(this);
          	pager.targets = items;
            pager.pagerContainer = jQuery('<div class="pager-container"></div>');
            jQuery('.pager-wrapper').append(pager.pagerContainer);
            pager.buildControls=true;
            pager.controlSteps = true;
            pager.controlNumbers = true;
            pager.controlNumbersText = false;
            pager.controlsCenter = true;
            pager.transition = 'slide';
            pager.speedactive = 1000;

            pager.build();
		}
		jQuery('.pager-wrapper').show();
    });
    
}


function Pager (type) {
    var pager = this
    
    pager.type = "" + type;
    pager.root = null;
    // defaults
    pager.pagerHtml = "";
    
    pager.buildControls = false;
    pager.controlNumbers = false;
    pager.controlNumbersText = false;
    pager.controlSteps = false;
    pager.controlStepsText = false;
    pager.controlEnds = false;
    pager.controlEndsText = false;
    pager.controlsCenter = false;
    pager.controls = null;
    pager.pagerContainer = jQuery('body');
    
    pager.timeout = 8000;
    pager.speedidle = 1000;
    pager.speedactive = 500;

    // basics
    pager.index = pagers.length
    pager.current = 0;
    pager.transition = "fade";
    
    pager.targets = null;
    pager.showPageExtend = null;
    
    pagers.push(pager);
}

Pager.prototype.build = function(){
    var pager = this;
    
    if (pager.targets != null && pager.targets.length > 1) {
        var count = 0;

        if(pager.buildControls){
            if (pager.controlSteps ) {
                pager.pagerHtml += '<a class="pager-control pager-control-step pager-prev" rel="prev">';
                if (pager.controlStepsText) {
                    pager.pagerHtml += '&lt;';
                }
                pager.pagerHtml += '</a>';
            }
    
            if (pager.controlNumbers) {
                for (var i = 0; i < pager.targets.length; i++) {
                    var classes = "pager-control pager-control-number ";
                    classes += " pager-control-number-" + i + " ";
                    if (i == 0) { classes += " pager-control-first "; }
                    if (count == pager.targets.length - 1) { classes += " pager-control-last "; }
                    pager.pagerHtml += '<a class="' + classes + '" rel="' + i + '" >';
                    if (pager.controlNumbersText) {
                        pager.pagerHtml += (i + 1) ;
                    } else {
                    	pager.pagerHtml += "&nbsp;";
                    }
                    pager.pagerHtml += '</a>';
                }
            }
            
            if (pager.controlImg) {
                for (var i = 0; i < pager.targets.length; i++) {
                    var classes = "pager-control pager-control-img ";
                    classes += " pager-control-number-" + i + " ";
                    if (i == 0) { classes += " pager-control-first "; }
                    if (count == pager.targets.length - 1) { classes += " pager-control-last "; }
                    pager.pagerHtml += '<a class="' + classes + '" rel="' + i + '" >';
                    if (pager.controlNumbersText) {
                        pager.pagerHtml += (i + 1) ;
                    }
                    pager.pagerHtml += '</a>';
                }
            }
    
            if (pager.controlSteps) {
                pager.pagerHtml += '<a class="pager-control pager-control-step pager-next" rel="next">';
                if (pager.controlStepsText) {
                    pager.pagerHtml += '&gt;';
                }
                pager.pagerHtml += '</a>';
            }
    
            // finish pager
            if (pager.controlsCenter) {
                pager.pagerHtml = '<div class="c1"><div class="c2"><div class="c3">' + pager.pagerHtml + '</div></div></div>';
            }
            pager.pagerHtml = '<div class="pager pager-' + pager.index + ' pager-' + pager.type + '" rel="' + pager.index + '">' + pager.pagerHtml + '</div>';
            pager.pagerContainer.append(pager.pagerHtml);
            pager.controls = jQuery(".pager-" + pager.index + " .pager-control");
        }

        // pager events
        pager.controls.click(function () {
            pager.doAction(jQuery(this).attr("rel"));
        });

        // pager timer
        if (pager.timeout > 0) {
            pager.timer = setTimeout("pagerDoAction(" + pager.index + ", 'next')", pager.timeout);
        }

        if (pager.transition == "fade" || pager.transition == "slide" || pager.transition == "slide-h") {
           pager.targets.css({ 'z-index': 50, 'opacity': 0, 'display':'inline' });
        } else if (pager.transition == "trainslide"){
          pager.targets.each(function(){
             jQuery(this).css({ 'z-index': 50, 'position':'relative', 'float':'left'});
          });
        }

        pager.targets.filter(':first').addClass("active");
        pager.targets.filter(':first').css({ 'z-index': 51, 'opacity': 1 });
        pager.controls.filter('.pager-control-first').addClass("active").addClass("pager-control-number-active");
    } 
}

Pager.prototype.getCurrentPage = function() {
    var pager = this;

    var current = jQuery(pager.targets.get(pager.current));

    if (!current || current.length == 0) {
        current = pager.targets.filter(":first");
    }
    return current;
}

Pager.prototype.doAction = function(action, idle){
    var pager = this;
    var speed = pager.speedactive;
    if(idle == true){
        speed = pager.speedidle;
    }
    
    if(action == "next"){
        pager.nextPage(pager.speedactive);
    } else if (action == "prev"){
        pager.prevPage(pager.speedactive);
    } else {
        pager.showPage(parseInt(action), pager.speedactive);
    }
}

Pager.prototype.nextPage = function(speed) {
    var pager = this;

    var current = pager.getCurrentPage();

    var targetIndex = pager.current + 1;
    if (targetIndex >= pager.targets.length) {
        targetIndex = 0;
    }

    pager.showPage(targetIndex, speed, "forward");
}

Pager.prototype.prevPage = function(speed) {
    var pager = this;

    var current = pager.getCurrentPage();

    var targetIndex = pager.current - 1;
    if (targetIndex < 0) {
        targetIndex = pager.targets.length - 1;
    }

    pager.showPage(targetIndex, speed, "backward");
}

Pager.prototype.showPage = function(targetIndex, speed, direction) {
    var pager = this;

    if (pager.current == targetIndex) {
        return false;
    }

    if (!speed || speed == "undefined") {
        speed = pager.speedidle;
    }
    if (!direction || direction == "undefined") {
        if (targetIndex < pager.current) {
            direction = "backward";
        }
    }

    var current = pager.getCurrentPage();
    var target = jQuery(pager.targets.get(targetIndex));
    if (!target || target.length == 0) {
        return false;
    }

    pager.current = targetIndex;

    pager.targets.removeClass("active");
    target.addClass("active");

    if (pager.transition == "showhide") {
        pager.targets.stop(true, true).hide();
        target.stop(true, true).show();
    }
    if (pager.transition == "fade") {

        pager.targets.stop(true, true);
        pager.targets.css({ 'z-index': 50 });

        current.css({ 'z-index': 51 });

        target.css({ 'z-index': 52, 'opacity': 0 });
        target.animate({ 'opacity': 1 }, speed);
    }
    if (pager.transition == "slide" || pager.transition == "slide-h") {
        pager.targets.stop(true, true);

        var startX = target.width();
        var finishX = -startX;
        if (direction == "backward") {
            startX = -startX;
            finishX = -finishX;
        }

        pager.targets.css({ 'z-index': 50, 'position': 'absolute', 'left': startX });

        current.css({ 'z-index': 51, 'left': 0, 'opacity': 1 });
        current.animate({ 'left': finishX, 'opacity': 0 }, speed);

        target.css({ 'z-index': 52, 'left': startX, 'opacity': 0 , 'display':'block'});
        target.animate({ 'left': 0, 'opacity': 1 }, speed);
    }
    if (pager.transition == "trainslide"){
      
        pager.parent.find(".remove").remove();
        pager.parent.find(".field-item").stop(true, true).css({'left':0, 'right':0});
        
        
        if (direction == "backward") {
          
          var last = pager.parent.find(".field-item:last");
        var shiftX = last.width();
        
        var clone = last.clone();
        pager.parent.prepend(clone);
        clone.css({'opacity':0});
          var items = pager.parent.find(".field-item");
          items.css({'left': -shiftX});
        
        last.addClass('remove').animate({ 'left': 0, 'opacity':0}, speed, function(){
          jQuery(this).remove();
        });
        
        for(var i = 0; i < items.length-1; i++){
            jQuery(items.get(i)).animate({ 'left': 0, 'opacity':1}, speed,  function(){
            jQuery(this).css({'left':0, 'right':0});
          });
        }
        
                    
        } else {
          
          var first = pager.parent.find(".field-item:first");
        var shiftX = first.width();
        
        var clone = first.clone();
        pager.parent.append(clone);
        clone.css({'opacity':0});
        
          var items = pager.parent.find(".field-item");
        
        first.addClass('remove').animate({ 'left': -shiftX, 'opacity':0}, speed, function(){
          jQuery(this).remove();
        });
        
        for(var i = 1; i < items.length; i++){
            jQuery(items.get(i)).animate({ 'left': -shiftX, 'opacity':1}, speed,  function(){
            jQuery(this).css({'left':0, 'right':0});
          });
        }
                  
        }
    }

    pager.controls.removeClass('active').removeClass('pager-control-number-active');
    pager.controls.filter('[rel="'+targetIndex+'"]').addClass("active").addClass("pager-control-number-active");

    if (pager.timeout > 0) {
        clearTimeout(pager.timer);
        pager.timer = setTimeout("pagerDoAction(" + pager.index + ", 'next')", pager.timeout);
    }
    if(pager.showPageExtend != null){
        pager.showPageExtend(pager, targetIndex, speed, direction);
    }
}

function pagerDoAction(pagerIndex, action){
    var pager = getPager(pagerIndex);
    pager.doAction(action, true);
}

function getPager(pagerIndex) {
    for (i in pagers)
    {
        if(pagers[i].index == pagerIndex){
            return pagers[i];
        }
    }
}

function groupEvery(jparent, jItems, wrapClass, itemLimit){
  
  var itemCount = itemLimit;
  
  jItems.each(function(){
        
      itemCount += 1;
      if(itemCount >= itemLimit){
          
        jQuery(this).parent().append('<div class="'+wrapClass+'"></div>');
        itemCount = 0;
            
      }
      jparent.find("."+wrapClass+":last").append(jQuery(this));
          
    });

}


