// --------------------------------------------------
// jQuery
// Plug-In: imageSurfing
// Version: Jul 2008
// Dependencies:
//  jquery-1.2.6.js
// --------------------------------------------------
(function($){
	jQuery.fn.imageSurfing = function(config){

		// Image Surfing Config
		config = jQuery.extend({
			selected: 0,
			event: "click"
		},config);

		// Image Surfing Properties and Methods
		var target            = this;
		var imageItems        = [];
		var imageItemsCaption = [];
		var imageSurfingChange = function(targetObj,imgItem,imgItemCaps,num){
			jQuery("div",targetObj).fadeTo(200,0,function(){
				if(imgItemCaps[num]){
					jQuery("div",targetObj).html(imgItem[num]).append('<p class="imagesurfing-caption">'+imgItemCaps[num]+'</p>');
				}else{
					jQuery("div",targetObj).html(imgItem[num]);
				}
				jQuery("div",targetObj).fadeTo(200,1.0);
			});
		}
		var imageSurfingPreviews = function(targetObj,num){
			jQuery("ul>li>a",targetObj).map(function(i){
				if(num == i) jQuery(this).addClass("imagesurfing-selected");
				else jQuery(this).removeClass("imagesurfing-selected");
			});
		}

		jQuery("ul>li>a",target).map(function(i){

			imageItems[i]        = new Image();
			imageItems[i].src    = this.href;
			imageItemsCaption[i] = this.title;

			if(config.event == "click"){
				jQuery(this).click(function(){
					imageSurfingChange(target,imageItems,imageItemsCaption,i);
					imageSurfingPreviews(target,i);
					return false;
				});
			}else if(config.event == "mouseover"){
				jQuery(this).mouseover(function(){
					imageSurfingChange(target,imageItems,imageItemsCaption,i);
					imageSurfingPreviews(target,i);
					return false;
				});
				jQuery(this).click(function(){
					return false;
				});
			}
		});

		// Default Image Surfing
		imageSurfingChange(target,imageItems,imageItemsCaption,config.selected);
		imageSurfingPreviews(target,config.selected);
	}
})(jQuery);