text: if (!(window.console && console.log)) {
    (function() {
      var noop = function() {};
      var methods = ['assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error', 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', 'markTimeline', 'profile', 'profileEnd', 'markTimeline', 'table', 'time', 'timeEnd', 'timeStamp', 'trace', 'warn'];
      var length = methods.length;
      var console = window.console = {};
      while (length--) {
        console[methods[length]] = noop;
      }
    }());
  }
  
  /**
   * jQuery Plugin to obtain touch gestures from iPhone, iPod Touch and iPad, should also work with Android mobile phones (not tested yet!)
   * Common usage: wipe images (left and right to show the previous or next image)
   *
   * @author Andreas Waltl, netCU Internetagentur (http://www.netcu.de)
   * @version 1.1.1 (9th December 2010) - fix bug (older IE's had problems)
   * @version 1.1 (1st September 2010) - support wipe up and wipe down
   * @version 1.0 (15th July 2010)
   */
  (function($) {
     $.fn.touchwipe = function(settings) {
       var config = {
          min_move_x: 20,
          min_move_y: 20,
        wipeLeft: function() { },
        wipeRight: function() { },
        wipeUp: function() { },
        wipeDown: function() { },
        preventDefaultEvents: true
     };
  
       if (settings) $.extend(config, settings);
  
       this.each(function() {
         var startX;
         var startY;
         var isMoving = false;
  
         function cancelTouch() {
           this.removeEventListener('touchmove', onTouchMove);
           startX = null;
           isMoving = false;
         }
  
         function onTouchMove(e) {
           if(config.preventDefaultEvents) {
             e.preventDefault();
           }
           if(isMoving) {
             var x = e.touches[0].pageX;
             var y = e.touches[0].pageY;
             var dx = startX - x;
             var dy = startY - y;
             if(Math.abs(dx) >= config.min_move_x) {
              cancelTouch();
              if(dx > 0) {
                config.wipeLeft();
              }
              else {
                config.wipeRight();
              }
             }
             else if(Math.abs(dy) >= config.min_move_y) {
                cancelTouch();
                if(dy > 0) {
                  config.wipeDown();
                }
                else {
                  config.wipeUp();
                }
               }
           }
         }
  
         function onTouchStart(e)
         {
           if (e.touches.length == 1) {
             startX = e.touches[0].pageX;
             startY = e.touches[0].pageY;
             isMoving = true;
             this.addEventListener('touchmove', onTouchMove, false);
           }
         }
         if ('ontouchstart' in document.documentElement) {
           this.addEventListener('touchstart', onTouchStart, false);
         }
       });
  
       return this;
     };
  
   })(jQuery);
  