function Swiper(config){
    var that = this;
    //that[__$id] = _SwiperStaticId++;
    that[__element] = config[__element];
    that[__eventHandlers] = config[__eventHandlers];
    
    that[__tapDuration] = config[__tapDuration] || provider[__tapDuration]; 
    that[__moveTolerance] = config[__moveTolerance] || provider[__moveTolerance];
    that[__preventDuration] = config[__preventDuration] || provider[__preventDuration];
    that[__moveBufferRadius] = config[__moveBufferRadius] || provider[__moveBufferRadius] ;
    that[__preventMouseFromTouch] = config[__preventMouseFromTouch] || provider[__preventMouseFromTouch];
    //that[__preventMoveFromDrag] = config[__preventMoveFromDrag] || provider[__preventMoveFromDrag];
    that[__clickbusterThreshold] = config[__clickbusterThreshold] || provider[__clickbusterThreshold];
    
    that[__$scope] = config[__$scope] ;
    that[__callApply] = config[__callApply] || true ;
    that[__callDestroy] = config[__callDestroy] || true ;
    that[__blurGhostClickElement] = config[__blurGhostClickElement] || true;
    
    
    that[__hasTouchEvents] = false; // to find if this browser has touch events (need to stay in separate var!)
    that[__lastStartEvent] = null;
    that[__lastMoveEvent] = null;
    that[__lastEndEvent] = null;
    that[__lastCancelEvent] = null;

    that[__tapping] = false;       // to simulate the 'tap' event
    that[__dragging] = false;      // to simulate de 'drag' event
    that[__startTime] = 0;         // Used to check if the tap was held too long.
    that[__touchStartX] = 0; 
    that[__touchStartY] = 0; 
    that[__totalX] = 0;            // Absolute total movement, used to control swipe vs. scroll.
    that[__totalY] = 0;            // Absolute total movement, used to control swipe vs. scroll.
    that[__startCoords] = null;    // Coordinates of the start position.
    //that[__lastPos] = null;        // Last event's position.
  }
/**
   * @ngdoc Class
   * @name Swiper
   * 
   * @description
   * This is the Swiper class, used by the {@link ngTouch $swipe} module to hold
   * the configuration of the actual bind call.
   * 
   * Every time a 'bind call' is executed an instance of this class will be
   * created to hold the configurations and to handle the events.
   * 
   * @param {object} config Configuration object to override the default values
   */
@ngdoc Class
@name Swiper

@description
This is the Swiper class, used by the  ngTouch $swipe module to hold
the configuration of the actual bind call.

Every time a 'bind call' is executed an instance of this class will be
created to hold the configurations and to handle the events.

@param {object} config Configuration object to override the default values
@ngdoc Class @name Swiper @description This is the Swiper class used by the ngTouch $swipe module to hold the configuration of the actual bind call . Every time a ' bind call ' is executed an instance of this class will be created to hold the configurations and to handle the events . @param { object } config Configuration object to override the default values
function Swiper(config){
    var that = this;
    that[__element] = config[__element];
    that[__eventHandlers] = config[__eventHandlers];
    that[__tapDuration] = config[__tapDuration] || provider[__tapDuration]; 
    that[__moveTolerance] = config[__moveTolerance] || provider[__moveTolerance];
    that[__preventDuration] = config[__preventDuration] || provider[__preventDuration];
    that[__moveBufferRadius] = config[__moveBufferRadius] || provider[__moveBufferRadius] ;
    that[__preventMouseFromTouch] = config[__preventMouseFromTouch] || provider[__preventMouseFromTouch];
    that[__clickbusterThreshold] = config[__clickbusterThreshold] || provider[__clickbusterThreshold];
    that[__$scope] = config[__$scope] ;
    that[__callApply] = config[__callApply] || true ;
    that[__callDestroy] = config[__callDestroy] || true ;
    that[__blurGhostClickElement] = config[__blurGhostClickElement] || true;
    that[__hasTouchEvents] = false; 
    that[__lastStartEvent] = null;
    that[__lastMoveEvent] = null;
    that[__lastEndEvent] = null;
    that[__lastCancelEvent] = null;
    that[__tapping] = false;       
    that[__dragging] = false;      
    that[__startTime] = 0;         
    that[__touchStartX] = 0; 
    that[__touchStartY] = 0; 
    that[__totalX] = 0;            
    that[__totalY] = 0;            
    that[__startCoords] = null;    
  }
function Swiper ( config ) { var that = this ; that [ __element ] = config [ __element ] ; that [ __eventHandlers ] = config [ __eventHandlers ] ; that [ __tapDuration ] = config [ __tapDuration ] || provider [ __tapDuration ] ; that [ __moveTolerance ] = config [ __moveTolerance ] || provider [ __moveTolerance ] ; that [ __preventDuration ] = config [ __preventDuration ] || provider [ __preventDuration ] ; that [ __moveBufferRadius ] = config [ __moveBufferRadius ] || provider [ __moveBufferRadius ] ; that [ __preventMouseFromTouch ] = config [ __preventMouseFromTouch ] || provider [ __preventMouseFromTouch ] ; that [ __clickbusterThreshold ] = config [ __clickbusterThreshold ] || provider [ __clickbusterThreshold ] ; that [ __$scope ] = config [ __$scope ] ; that [ __callApply ] = config [ __callApply ] || true ; that [ __callDestroy ] = config [ __callDestroy ] || true ; that [ __blurGhostClickElement ] = config [ __blurGhostClickElement ] || true ; that [ __hasTouchEvents ] = false ; that [ __lastStartEvent ] = null ; that [ __lastMoveEvent ] = null ; that [ __lastEndEvent ] = null ; that [ __lastCancelEvent ] = null ; that [ __tapping ] = false ; that [ __dragging ] = false ; that [ __startTime ] = 0 ; that [ __touchStartX ] = 0 ; that [ __touchStartY ] = 0 ; that [ __totalX ] = 0 ; that [ __totalY ] = 0 ; that [ __startCoords ] = null ; }
@ngdoc Class
 @name Swiper
@ngdoc Class @name Swiper
//that[__$id] = _SwiperStaticId++; //that[__preventMoveFromDrag] = config[__preventMoveFromDrag] || provider[__preventMoveFromDrag]; // to find if this browser has touch events (need to stay in separate var!) // to simulate the 'tap' event // to simulate de 'drag' event // Used to check if the tap was held too long. // Absolute total movement, used to control swipe vs. scroll. // Absolute total movement, used to control swipe vs. scroll. // Coordinates of the start position. //that[__lastPos] = null;        // Last event's position.