var initSlider = function(slideWrapper,slideObject,slideSelector,speed,threshold,verticalScroll,navPrev,navNext){
    // console.log(navPrev+":"+navNext);
    //console.log('test');
    
    var slideCurrent=0;
    var slideNum=$(slideObject).length;
    var slides = $(slideWrapper);
    
    var allowPageScroll="vertical";
    if(verticalScroll==true){
        allowPageScroll="none";
    }
    
    
    var prevDistance = 0;
    var currentVert=0;
    
    var swipeOptions=
    {
        triggerOnTouchEnd : true,    
        swipeStatus : swipeStatus,
        allowPageScroll:allowPageScroll,
        threshold:threshold
    }
    
    slides.swipe( swipeOptions );

    function getSlideWidth(){
        return $(slideObject).width();
    }
    
    function swipeStatus(event, phase, direction, distance){
        var slideWidth=getSlideWidth();
        
        if( phase=="move" && (direction=="left" || direction=="right") ){
            var duration=0;
            if (direction == "left"){
                scrollSlides((slideWidth * slideCurrent) + distance, duration);
            }else if (direction == "right"){
                scrollSlides((slideWidth * slideCurrent) - distance, duration);
            }
        }else if ( phase == "cancel"){
            scrollSlides(slideWidth * slideCurrent, speed);
        }else if ( phase =="end" ){
            if (direction == "right"){
                previousSlide();
            }else if (direction == "left"){
                nextSlide();
            }
        }
        
        if(verticalScroll==true){
            if( phase=="move" && (direction=="up" || direction=="down") ){
                var duration=0;
                if (direction == "up"){
                    scrollSlidesVert("-"+Math.abs(currentVert - (distance-prevDistance)).toString(), duration);
                    prevDistance=distance;
                }
                else if (direction == "down"){
                    scrollSlidesVert((currentVert + (distance-prevDistance)), duration);
                    prevDistance=distance;
                }
                scrollSlides( getSlideWidth() * slideCurrent,speed);
            }else if ( phase == "cancel"){
                prevDistance=0;
            }else if ( phase =="end" ){
                prevDistance=0;
            }
        }
    }

    function previousSlide(){
        $(navNext).removeClass('disabled');
        slideCurrent = Math.max(slideCurrent-1, 0);
        scrollSlides( getSlideWidth() * slideCurrent,speed);
        setSelected();
    }

    function nextSlide(){
        $(navPrev).removeClass('disabled');
        slideCurrent = Math.min(slideCurrent+1, slideNum-1);
        scrollSlides( getSlideWidth() * slideCurrent,speed);
        setSelected();
    }
    
    // auto advance for desktop only
    var docWidth = $(document).width();
	var	numberItems = $(slideObject).size()-1;

	/* uncomment when site goes live
    if(docWidth >= 1025){
	    var interval	=	setInterval(function() { nextSlide().setSelected(); }, 5000);
	    $(document).ready(function(){
	    	$(slideWrapper).hover(function(){ 
	    		interval = clearInterval(interval);
	    	}, function(){ 
				interval = setInterval(function() { nextSlide().setSelected(); }, 5000);				
	    	});		
			
		});
	}
    */

	
    if(navPrev!=''){
        $(navPrev).click(function(){previousSlide();return false;});
        $(navNext).click(function(){nextSlide();return false;});
        $(navPrev).addClass('disabled');
    }
    function scrollSlides(distance,speed){
        var duration=(speed/1000).toFixed(1) + "s";
        slides.css({"transition-duration":duration,"-webkit-transition-duration":duration,"-moz-transition-duration":duration,"-o-transition-duration":duration});
        
        
        //inverse the number we set in the css
        var value = (distance<0 ? "" : "-") + Math.abs(distance).toString();
        
        if($.browser.msie){
            slides.animate({marginLeft:value},duration);
        }else if(Modernizr.csstransforms3d){
            slides.css({"-webkit-transform":"translate3d("+value +"px,0px,0px)","transform":"translateX("+value +"px)","-moz-transform":"translateX("+value +"px)","-o-transform":"translateX("+value +"px)"});
        }else{
            slides.css("margin-left", value +"px");
        }
        
        
        if(navPrev!=''){
            if(slideCurrent<slideNum-1&&slideCurrent>0){
                $(navPrev).removeClass('disabled');
                $(navNext).removeClass('disabled');
            }else if(slideCurrent==slideNum-1){
                $(navPrev).removeClass('disabled');
                $(navNext).addClass('disabled');
            }else if(slideCurrent==0){
                $(navNext).removeClass('disabled');
                $(navPrev).addClass('disabled');
            }
        }
    }
    
    function scrollSlidesVert(distance,speed){
        
        var duration=(speed/1000).toFixed(1) + "s";
        $(slideObject).eq(slideCurrent).css({"transition-duration":duration,"-webkit-transition-duration":duration,"-moz-transition-duration":duration,"-o-transition-duration":duration});
        
        var value = distance*1;
        
        if(value>0){
            value=0;
        }else if(value<"-"+Math.abs($(slideObject).eq(slideCurrent).height()-$(slideWrapper).height())){
            value="-"+Math.abs($(slideObject).eq(slideCurrent).height()-$(slideWrapper).height());
        }
        
        //slides.css({"-webkit-transform":"translate3d("+value +"px,0px,0px)","transform":"translateX("+value +"px)","-moz-transform":"translateX("+value +"px)","-o-transform":"translateX("+value +"px)"});
        $(slideObject).eq(slideCurrent).css("margin-top", value +"px");
        currentVert=parseInt($(slideObject).eq(slideCurrent).css('margin-top'));
    }
    
    function selectSlide(slideNum){
        slideCurrent = slideNum;
        scrollSlides( getSlideWidth() * slideCurrent,speed);
        setSelected();
    }
    
    function setSelected(){
        if(slideSelector){
            $(slideSelector+" li.selected").removeClass('selected');
            $(slideSelector+" li:nth-child("+(slideCurrent+1)+")").addClass('selected');
        }
    }
    
    if(slideSelector){
        $(slideSelector+" li a").click(function(){
            //selectSlide($(this).parent().index());
            var myIndex = $(this).parent().prevAll().length;
            selectSlide(myIndex);
            return false;
        });
    }
    
    selectSlide(0);
    $(window).resize(function(){
        selectSlide(slideCurrent);
    });
}
