jQuery.fn.gallery = function(s,slideshow,styling) {	
		var gallery = this;
		var img = [];
		var currentImage = 0;
		var currentState=0;

		var speed = 1000; if(s) speed = parseInt(s,10);
		var ssOption = '<li><a href="#" id="playstop" title="Play/Stop SlideShow">&nbsp;</a></li>';
		var take = 0;
		if(slideshow==undefined) {
			slideShowSpeed = speed*2.5;
		} else if(slideshow) {
			slideShowSpeed = slideshow;
		} else if (!slideshow) {
			ssOption = '';
			take = 1;
		}
		var galleryStructure = '<div id="img-gallery"><img style="display:none" /><ul>'+ssOption+'</ul></div>';
		var started = false;
		
		$(gallery).load(function(){			
			img.push([this.src,this.alt,$(this).attr('longdesc'), $(gallery).index(this)]);
			if ($(gallery).length == img.length) start();
		}).each(function(){
			if(this.complete || (jQuery.browser.msie && parseInt(jQuery.browser.version) == 6))
				$(this).trigger("load");
		});		
		
		function start(){
			// img array may be sorted randomly, by order of appearance, when images load from server, not cache
			// we need to sort it in right order in those cases
		
			var img2 = img.slice(0);
			
			for (var i in img2) {
				img[img2[i][3]] = img2[i];
			}		
			
			// EDITABLE:
			$('div#slider_div').append(galleryStructure); // DESTINATION OF GALLERY (YOU CAN CHANGE THIS)
			// --------
		    $('#img-gallery ul').append('<li><div id="left_round"></div></li>');							
			$(img).each(function(i){
				    $('#img-gallery ul').append('<li><a href="#img' + (i + 1) + '"> </a></li>');				
			})
		    $('#img-gallery ul').append('<li><div id="right_round"></div></li>');
		    $('#img-gallery img').show();		

			$('#img-gallery ul a:not(#playstop)').click(function(){
				var imgToLoad = $(this).attr('href');
				imgToLoad = imgToLoad.split('#');
				imgToLoad = parseInt(imgToLoad[1].substr(3)) - 1;
				changeImage(imgToLoad);
//				if(window['ssr']) $('#img-gallery ul a#playstop').click();
				if (currentState) {
					$('#img-gallery ul a#playstop').click();
					currentState=0;
				}
			
				stopSlideShow();
				return false;
			})

$('#img-gallery ul a#playstop').toggle(
   function(){
      if(gallery.length > 1){
         $(this).toggleClass('stop');
         stopSlideShow();
         return false;
      }else{
         $(this).toggleClass('stop');
         startSlideShow();
         return false;
      }
currentState=0;
   },
   function(){
      if(gallery.length > 1){
         $(this).toggleClass('stop');
         startSlideShow();
         return false;
      }else{
         $(this).toggleClass('stop');
         stopSlideShow();
         return false;	
      }
currentState=1;
   }
);
 
if(gallery.length > 1){
   $('#img-gallery ul a#playstop').toggleClass('stop');
   startSlideShow();
}

/*
			$('#img-gallery ul a#playstop').toggle(function(){
				$(this).toggleClass('stop');
				startSlideShow();
				return false;
			}, function(){
				$(this).toggleClass('stop');
				stopSlideShow();$('#img-gallery ul')
				return false;
			})
*/
			function changeImage(n, callback){
				var prevSrc = $('#img-gallery img').attr('src');
				var width = 0;
				var height = 0;

				currentImage = n;

			//	$('#img-gallery #img-description').fadeOut(speed / 5);
				if (prevSrc) $('#img-gallery img').fadeOut(speed*2, showImage);
				else showImage();
				
				function showImage() {							
					var originalWidth = $('#img-gallery img').width();
					$('#img-gallery img').attr('src', img[n][0]).attr('alt', img[n][1]);
					if (n ==5) {
						$('#img-gallery img').attr('onClick', "window.location.href='Try-Myforex'");
						$('#img-gallery img').css('cursor', 'pointer');
					}
					width = $('#img-gallery img').width();
					height = $('#img-gallery img').height();
					//if (width == originalWidth || !originalWidth) { fadeInAll(); } else { animate(); }
					fadeInAll();
				}
				
				function animate(){				
					$('#img-gallery ul').fadeOut(speed / 2, function(){
						$('#img-gallery').animate({
							width: width,
							height: height
						}, speed / 2, function(){
							fadeInAll(true)
						})
					})
				}
				function fadeInAll(fromAnimate){
					var localSpeed = speed;
					if (!fromAnimate) 
						localSpeed = speed*8;
	//						$('#img-gallery #img-description').html('<p>' + img[n][2] + '</p>');
	//					$('#img-gallery #img-description').fadeIn();
					if (prevSrc) $('#img-gallery img').fadeIn(localSpeed / 2);
					//$('#img-gallery ul').fadeIn(localSpeed / 2);					
					$('#img-gallery ul a').removeClass('active');
					$('#img-gallery ul a:eq(' + (n + 1 - take) + ')').addClass('active');
					if (callback) callback();
					if (styling) styling();
				}
					
				
				if (img[n][2] == undefined) {
				//	$('#img-gallery #img-description').hide();
				}
				else {
					//$('#img-gallery #img-description').show();
				}
			}
/*
			function startSlideShow(){
				var imgToLoad = $('#img-gallery ul a.active:eq(0)').attr('href');
				imgToLoad = imgToLoad.split('#');
				window['ssr'] = true;
				imgToLoad = parseInt(imgToLoad[1].substr(3));
				if (imgToLoad == gallery.length) {
					imgToLoad = 0;
				}
				window['galleryTimeout'] = setTimeout(function(){
					startSlideShow()
				}, slideShowSpeed)
				changeImage(imgToLoad, function(){
					eval(galleryTimeout);
				});
			}
*/

function startSlideShow(){
     imgToLoad = currentImage;
     if (imgToLoad == gallery.length) {imgToLoad = 0;}
     window['galleryTimeout'] = setTimeout(function(){startSlideShow()}, slideShowSpeed)
     changeImage(imgToLoad, function(){eval(galleryTimeout);});
     currentImage++;
currentState=1;
}
			function stopSlideShow(){
				window['ssr'] = false;
				clearTimeout(eval(galleryTimeout));
currentState=0;
			}
		}
}

