	/*--------------------------------\
	|  slideViewer v0.0.2             |
	|  author: dim73                  |
	|  licenced for : youcanforex.ru  |
	\--------------------------------*/

function copy(v){return v;}
var my_ui = {
 buttons:{
	repeat:'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'
 }
}
var viewerAdjustingMode = false;

$.slideshows = [];
$.extend($.fn,{

addSlideViewer: function(options){
	return $.slideshows.push(new $.SlideViewer("#"+$(this).attr('id'),options));
}


});

$.SlideViewer=function(rtSelector,options)
{
	var self;
	self = this;
	this.rtNode = $(rtSelector);
	this.rtNodeId = this.rtNode.attr('id');
	this.layers = [];
	this.state = 'none';
	
	this.options = {
		imagesDir:'images/',
		soundsDir:'sounds/',
		dataDir:'data/',
		dataFile:'default.json',
		showTime:true,
		autoPlay:true
	};
	
	
	/*----------------------------------------------------------------------------*/
	$.extend(this.options,options);
	/*----------------------------------------------------------------------------*/	
	
	/* main executable actions */
	this.onStartSlideshow = function()
	{
		
		self.currentSlide = 0;
		self.updateView();
		self.nextSlideTime = copy(self.imagesArr[self.currentSlide][0]);
		
		setTimeout(function(){
			jwplayer(self.playername).seek(0).setMute(false).play(true);
		},10);		
		self.state = 'playing';
	}
	this.onSlideEnds = function()
	{
		self.state = 'ends';
		jwplayer(self.playername).stop();
		self.getLayer('btnRepeat').fadeIn(500);
	}
	this.onSoundEnds = function()
	{
		self.state = 'ends';
		self.getLayer('btnRepeat').fadeIn(500);
	}
	
	this.onRepeatAction = function()
	{
		self.getLayer('btnRepeat').hide();
		self.onStartSlideshow();
	}
	
	/*preload Triggers*/
	this.mediaPreloaded = false;
	this.onMediaPreloaded = function()
	{
		self.getLayer('preloadPanel').css("display",'none'); self.mediaPreloaded = true; self.state = 'ready';
		if(self.options.autoPlay)
		{
			self.onStartSlideshow();		
		}
	}	
	this.checkMediaIsPreloaded = function()
	{
		if(self.jwPreloaded && self.slidesPreloaded ){
		self.onMediaPreloaded();
		}
	}
	this.onChangePreloadArgs = function()
	{
		var per; per = Math.ceil((self.jwPercentPreloaded+self.slidesPercentPreloaded)/2);
		self.getLayer('preloadPanel').text(per+'%');
	}
	this.imageloadTrigger = function()
	{
		self.preloadedImagesN++;
		
		self.slidesPercentPreloaded = 100 * self.preloadedImagesN / self.data_.images.length;
		self.onChangePreloadArgs();		
		
		if(self.preloadedImagesN == self.data_.images.length){
			self.slidesPreloaded = true;
			self.checkMediaIsPreloaded();
		}	
	}
	
	
	this.getLayer = function(name)
	{
		return $('#'+self.rtNodeId+'_'+name);
	}
	this.regLayer = function(name,opt)
	{
	 var b;	 
	 b =$('<div style="position:absolute;"><div>').attr('id',self.rtNodeId+'_'+name)
	 if(opt.appendTarget){
	 b.appendTo($("#"+self.rtNodeId+'_'+opt.appendTarget));
	 }else{
	  b.appendTo(self.rtNode);
	 }
	 if(opt.style){b.attr('style',opt.style);}
	 if(opt.contentCallback){opt.contentCallback(b.attr('id'));}
	}
	
	this.updateView = function()
	{
	self.getLayer('sliderImTop').css('background-image','url('+self.imagesArr[self.currentSlide][1].src+')');
	
	}
	
	this.getImagesliderCode = function(prntNode)
	{
		self.regLayer('sliderImTop',{'appendTo':prntNode});
		self.regLayer('sliderImBtm',{'appendTo':prntNode});
		self.getLayer('sliderImTop').css({'width':'100%','height':'100%','background-repeat':'no-repeat','background-position':'center center'});
		self.getLayer('sliderImBottom').css({'width':'100%','height':'100%'});
		
		self.imagesArr = [];
		self.preloadedImagesN = 0;
		var i;
		for(i in self.data_.images)
		{
			self.imagesArr[i] = [self.data_.images[i][0],new Image()];
			self.imagesArr[i][1].src = self.options.imagesDir+self.data_.images[i][1];
			self.imagesArr[i][1].onLoad = self.imageloadTrigger();
		
		}
	}	
	this.getPlayerCode = function(pasteTo)
	{
		self.playername = this.rtNodeId+'_PL';
		
		var so = new SWFObject('jwplayer/player.swf',self.playername,'0','0','9');
		so.addParam('allowscriptaccess','always');
		so.addParam('allowscriptaccess','always');
		so.addParam('allowfullscreen','true');
		so.addParam('flashvars','provider=sound');
		/*so.addVariable('plugins', 'viral-1');*/
		so.write(pasteTo);

		jwplayer(self.playername).load(self.options.soundsDir + self.data_.playlist.file);
		
		jwplayer(self.playername).play(true);
		jwplayer(self.playername).setMute(true);
		self.jwPreloaded = false;
		
		jwplayer(self.playername).onBufferChange(function(){
			if(!self.jwPreloaded){
				self.jwPercentPreloaded = jwplayer(self.playername).getBuffer();
				self.onChangePreloadArgs();
				if(self.jwPercentPreloaded>99)
				{
					self.jwPreloaded = true;
					self.checkMediaIsPreloaded();
				}			
			}
		}).onTime(function(e){
			if(self.state == 'playing' && !viewerAdjustingMode)
			{
				if(e.position >= self.nextSlideTime)
				{
					if(self.currentSlide < self.data_.images.length - 1)
					{
					self.currentSlide++;
					self.updateView();
					self.nextSlideTime = copy(self.imagesArr[self.currentSlide][0]);
					}else{
						self.onSlideEnds();
					}
				
				}
			}
		})
		.onPause(function(){self.state = 'paused';})
		.onPlay(function(){/*if(self.state == 'ends' || self.state == 'none'){}*/ self.state = 'playing';});
		
		self.rtNode.click(function(){if(self.state == 'playing' || self.state == 'paused'){jwplayer(self.playername).pause();}});
	}
	
	this.init = function(data)
	{
	
		self.data_ = data;
		
		self.jwPercentPreloaded = 0;
		self.slidesPercentPreloaded = 0;
		self.regLayer('preloadPanel',{style:'position:absolute; z-index:99; width:80px; padding-top:12px; left:50%; top:50%; margin:-5px 0 0 -40px; background:url('+self.options.imagesDir+'loader.gif) no-repeat center top; cursor:pointer; text-align:center; text-shadow:#763 1px 1px 3px; font-size:18px; color:#333;'});
		self.getLayer('preloadPanel').text('Загрузка...');
		this.state = 'loading';
		
		self.regLayer('jwplayer',{style:'position:absolute; height:0; width:0;',contentCallback:self.getPlayerCode});		
		self.regLayer('imageSlider',{contentCallback:self.getImagesliderCode});
		
		self.regLayer('btnRepeat',{style: 'position:absolute; z-index:100; left:50%; top:50%; width:48px; height:48px; margin:-24px 0 0 -24px; background: url(data:image/png;base64,'+my_ui.buttons.repeat+'); display:none;'});
		self.getLayer('btnRepeat').click(self.onRepeatAction);
	}
	$.ajax({
		type:"GET",
		url:self.options.dataDir+self.options.dataFile,
		dataType:'json',
		success:self.init
	});
	return self;
}

if(viewerAdjustingMode)
{
var adjStillsDone = 0;
var cons ='{\r\n"images":[';
$(document).bind('keydown',function(e){

	if(e.keyCode == 16)
	{
		
		if(adjStillsDone == $.slideshows[0].imagesArr.length)
		{	cons = cons.substr(0,cons.length-1) + '\r\n],\r\n"playlist":{"file":"'+$.slideshows[0].data_.playlist.file+'"}\r\n}'; 
			$.slideshows[0].onSlideEnds(); alert(cons);
		}
			cons+='\r\n\t['+jwplayer().getPosition()+',"'+$.slideshows[0].data_.images[adjStillsDone][1]+'"],';
			adjStillsDone++;
			
			$.slideshows[0].currentSlide++;
			$.slideshows[0].updateView();
		
	}

});

}
