var wish = "#rp_gallery-list-wish";

jQuery(function($) {
   $.fn.touchwipe = function(settings) {
     var config = {
    		min_move_x: 20,
 			wipeLeft: function() { alert("left"); },
 			wipeRight: function() { alert("right"); },
			preventDefaultEvents: true
	 };
     
     if (settings) $.extend(config, settings);
 
     this.each(function() {
    	 var startX;
		 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 dx = startX - x;
	    		 if(Math.abs(dx) >= config.min_move_x) {
	    			cancelTouch();
	    			if(dx > 0) {
	    				config.wipeLeft();
	    			}
	    			else {
	    				config.wipeRight();
	    			}
	    		 }
    		 }
    	 }
    	 
    	 function onTouchStart(e)
    	 {
    		 if (e.touches.length == 1) {
    			 startX = e.touches[0].pageX;
    			 isMoving = true;
    			 this.addEventListener('touchmove', onTouchMove, false);
    		 }
    	 }    	 
    	
    	 if(this.addEventListener){
    		 this.addEventListener('touchstart', onTouchStart, false);
    	 }
     });
 
     return this;
   };
 
   $(wish).cycle({
		timeout: 0,
		fx: 'scrollHorz',
		next: '#next',
		prev: '#prev',
		startingSlide: $(wish + " .selected").index(),
		fit: 1,
		containerResize: 0,
		slideResize: 0,
	    after: function (currSlideElement, nextSlideElement, options, forwardFlag) {
	    	var $ht = $(this).height();
	    	{
	    		$(this).parent().animate({height: $ht});
	    	}
	    }
	});
   
	$(wish).touchwipe({
 		wipeLeft: function() {
 	 		$(wish).cycle("next");
 		},
 		wipeRight: function() {
 	 		$(wish).cycle("prev");
 		}
	});
	
	$(wish+" .rp_gallery-previous").click(function() {
		$(wish).cycle("prev");
		return false;
	});

	$(wish+" .rp_gallery-next").click(function() {
		$(wish).cycle("next");
		return false;
	});
	
	$(wish+" *").mousedown(function() {
		return false;
	});
   
   var cache = [];
	  // Arguments are image paths relative to the current page.
	  $.preLoadImages = function() {
	    var args_len = arguments.length;
	    for (var i = args_len; i--;) {
	      var cacheImage = document.createElement('img');
	      cacheImage.src = arguments[i];
	      cache.push(cacheImage);
	    }
	  }
	  
	  $(wish + " .selected img").load( function() {
		  $(wish).css("height", $(wish + " .selected").height());
		 });
	  
});
 
	

