/*
 * Foto film
 *
 * Developer: UVM - Petr Hamtil
 *
 * Depends:
 *	jQuery, timers
 *
 */


(function($) {
	
$.fn.fotofilm = function(options) {

	/*
	 * Nastavení defaultních hodnot
	 */
	var opt = {
		img: "",
		height: 200,
		width: 150,
		position: 0,
		imgPreload: [],
		picArray: "none",
		timer: "",
		interval: 10000,
		efekt: false,
		pause: false
	};

	/*
	 * Inicializace
	 */
	if (options) $.extend(opt, options);

	/*
	 * Vytvoření interfacu
	 */
	create = function(e){
		
		var wrap = $("<div>");
		wrap.height(opt.height);
		
		// buffrování images
		for (var i=0;i<opt.picArray.length;i++){
			opt.imgPreload[i] = $("<div>");
			opt.imgPreload[i].css('background-color', 'white');
			opt.imgPreload[i].css('background-image', 'url("'+opt.picArray[i][0]+'")');
			opt.imgPreload[i].css({'position':'absolute', 'left':'0px', 'top':'0px', 'z-index':'50'});
			opt.imgPreload[i].height(opt.height);
			opt.imgPreload[i].width(opt.width);		
			opt.imgPreload[i].click(function () { 
				window.location = opt.picArray[opt.position][1];
		    });			
			//imgPreload[i] = $("<img>");
			//imgPreload[i].attr("src",opt.picArray[i][0])
		}
		
		opt.imgPreload[opt.position].addClass("fotoImgPreload_show");
		wrap.prepend(opt.imgPreload[opt.position]);
		
		for (var i=0;i<opt.picArray.length;i++){
			if (opt.position != i)
				wrap.prepend(opt.imgPreload[i]);
		}
		

		
/*		opt.img = $("<div>");
		opt.img.css('background-image', 'url("'+opt.picArray[opt.position][0]+'")');
		opt.img.css({'position':'absolute', 'left':'0px', 'top':'0px', 'z-index':'50'});
		opt.img.height(opt.height);
		opt.img.width(opt.width);
		
		opt.img.click(function () { 
			window.location = opt.picArray[opt.position][1]; // ve stejnem okne
			//window.open(opt.picArray[opt.position][1]); // v novem okne
			//alert(opt.picArray[opt.position][1]); 
	    });	*/	
		
		if ($.browser.msie) {
		    opt.efekt = false;
		}

		if (opt.efekt){
			opt.imgOld = $("<div>");
			opt.imgOld.addClass("fotofilm_background_image");
			opt.imgOld.css('background-image', 'url("'+opt.picArray[opt.position][0]+'")');
			opt.imgOld.height(opt.height);
			wrap.append(opt.imgOld);		
		}
		
		//wrap.append(opt.img);
		wrap.append('<div class="fotofilm_toolbar"><span class="fotofilm_back">Předchozí</span><span class="fotofilm_pos">'+opt.position+'</span><span class="fotofilm_next">Další</span></div>');
		$(e).append(wrap);
		
	    for (var i=0;i<opt.picArray.length;i++){	    	
			if (opt.position != i){		
				opt.imgPreload[opt.position].hide();
			}
	    }
		

		/*
		 * Nastavení časovače
		 */
	    if ( !(jQuery.browser.msie && parseInt(jQuery.browser.version)==6) ) {
		    $(e).oneTime(opt.interval, function() {
		    	// Nastavení stálého časovače
				$(e).everyTime(opt.interval, 'fftimer_'+$(e).attr("id"), function() {
					if (opt.pause) return;		
					next();		
				});	
			});	
	    }


	    
	    
		
	    $(e).mouseover(function(){	    	
	    	opt.pause = true;	        
	      }).mouseout(function(){	    	  
	    	opt.pause = false;	        
	      });
	    
	};
	
	/*
	 * Znovunačtení obrázku
	 */
	reload = function(e){	
		
		$(".fotoImgPreload_show").fadeOut("slow", function () {
		//opt.img.fadeOut("slow", function () {			
			$(this).removeClass("fotoImgPreload_show");
			//$(this).hide();
			//$(this).css('background-image', 'url("'+opt.picArray[opt.position][0]+'")');
			opt.imgPreload[opt.position].fadeIn("slow", function () {
				opt.imgPreload[opt.position].addClass("fotoImgPreload_show");
				if (opt.efekt){
					$(".fotofilm_background_image").css('background-image', 'url("'+opt.picArray[opt.position][0]+'")');
				}				
			});		
	      });		
		$(".fotofilm_pos").text(opt.position);
	};
	
	/*
	 * Přepnutí na další obrázek
	 */
	next = function(e){
		//posun na další obrázek
		(opt.position >= opt.picArray.length-1)?opt.position=0:opt.position++;

		reload();
		return false;
	};
	
	/*
	 * Přepnutí na předchozí obrázek
	 */
	back = function(e){
		//posun na předchozí obrázek
		(opt.position <= 0)?opt.position=opt.picArray.length-1:opt.position--;

		reload();
		return false;
	};	
	
	/*
	 * Inicializace elementů
	 */
	this.each(function(i) {
		
		if (opt.picArray == "none") return;

		create(this);

 		$(this).find(".fotofilm_next").live("click", next);
 		$(this).find(".fotofilm_back").live("click", back);

	});
	return this; 
}

})(jQuery); 
