/* wlm | nbsp GmbH | 05.08.2010 12:07:05 PM |
 * 
 * Slideshow aus fvwsf40/publications/master/html-data/global/js/extapp/home/slideshow-v2.js
 * kopiert und angepasst
 */

// KW - Globale Variablen setzen
var slideShowData;
var mySlideShowRunner;
var mySlideShowItems;
var mySlideShowRunI = 0;
var mySlideShowRunFirst = 1;
var mySlideShowClassID = 0;
var mySlideShowTask;
var actImg = 0;
var stopActions = 0;

function doLoadSlideShow(cid, values){
	// KW - Store mit Bildern und Daten der SlideShow
	/*homeSlideShowData = new Ext.data.JsonStore({
		url: '/index.cfm?event=cmp.cst.seitenstruktur.getslideshow&cid=' + cid,
	    root: 'data',
	    totalProperty: 'totalcount',
		autoLoad: true,
	    fields: ['imagetitle', 'alttitle', 'path', 'url'],
	    listeners: {
			load: startSlideShow			
		}
	});*/
	homeSlideShowData = new Ext.data.SimpleStore({
		data: values,
		fields: [
			'imagetitle', 'alttitle', 'path', 'url'
		],
		listeners: {
			load: startSlideShow
		}
	});
	
	return;
}

function startSlideShow(pStore, pData) {
	slideShowData = pData;
	mySlideShowItems = slideShowData.length;
	
	// Wenn nur ein Bild gefunden, dann keine Slideshow, sondern nur das Bild anzeigen
	if(mySlideShowItems > 1) {
		// KW - aufruf der Interval-function
 		runMyInterval();
	} else {
		Ext.get('slideshow_img_1').dom.src = slideShowData[0].data.path;
	} 
	
	return;
}

function runMyInterval(){
	// erst mal beide img-Tags auf hide setzen
	Ext.get('slideshow_img_1').hide();
	Ext.get('slideshow_img_2').hide();
	Ext.get('slideshow_img_3').hide();
	
	// KW - runner und interval erstellen
	mySlideShowTask = {
	 	run: function(){
	 		if(mySlideShowRunI < (mySlideShowItems)){
	 			
	 			/*
	 			Ext.get('slideshow_urltitle_div').update('<a href="'+slideShowData[mySlideShowRunI].data.url+'">&raquo; '+slideShowData[mySlideShowRunI].data.urltitle+'</a>');
	 			Ext.get('slideshow_img_atag').dom.href = ''+slideShowData[mySlideShowRunI].data.url;
	 			*/
	 				 			
	 			doSetImg(mySlideShowRunI,mySlideShowRunFirst, 1);
	 			
	 			mySlideShowRunI++;
	 		}else{
	 			mySlideShowRunI = 0;
	 		}
	 	},
	    interval: 6000 // 6 second
	 }
	 mySlideShowRunner = new Ext.util.TaskRunner();
	 
	 // KW - runner starten
	 mySlideShowRunner.start(mySlideShowTask);
}

function doSetImg(pI, pRunFirst, pDir) {
	stopActions = 1;
	duration = 2;
	
	if(pI < mySlideShowItems - 1)
		nextImg = pI + 1;
	else
		nextImg = 0;
	
	if(pI > 0)
		prevImg = pI - 1;
	else
		prevImg = mySlideShowItems - 1;
	
	
	if(pDir > 0)
		bNext = true;
	else
		bNext = false;
	
	if(pRunFirst == 1){
		mySlideShowRunFirst = 0;
		
		Ext.get('slideshow_img_1').dom.src = slideShowData[pI].data.path;
		
		Ext.get('slideshow_img_2').dom.src = slideShowData[nextImg].data.path;
		
		Ext.get('slideshow_img_3').dom.src = slideShowData[prevImg].data.path;
		
		/* wlm Erstes Bild nicht faden
		Ext.get('slideshow_img_1').fadeIn(
			{
				endOpacity: 1,
				easing:'easeOut',
				duration: duration,
				useDisplay: true,
				callback: function() {
					stopActions = 0;
				}
			});
		*/
		Ext.get('slideshow_img_1').show();
	}else{
		
		if(bNext)
			next_Img = nextImg;
		else
			next_Img = prevImg;
		
		if(Ext.get('slideshow_img_1').isVisible()){
			Ext.get('slideshow_img_1').fadeOut(
			{
				endOpacity: 0,
				easing:'easeOut',
				duration: duration,
				remove: false,
				useDisplay: true
			});
			
			if(bNext){
				dSlideSet 	= 'slideshow_img_3';
				dSlideFade	= 'slideshow_img_2';
			}
			else{
				dSlideSet 	= 'slideshow_img_2';
				dSlideFade	= 'slideshow_img_3';
			}
			
			
			
			Ext.get(dSlideSet).dom.src = slideShowData[next_Img].data.path;			
			Ext.get(dSlideFade).fadeIn(
			{
				endOpacity: 1,
				easing:'easeOut',
				duration: duration,
				useDisplay: true,
				callback: function() {
					stopActions = 0;
				}
			});
		}else if (Ext.get('slideshow_img_2').isVisible()){
			Ext.get('slideshow_img_2').fadeOut(
			{
				endOpacity: 0,
				easing:'easeOut',
				duration: duration,
				remove: false,
				useDisplay: true				
			});
			
			if(bNext){
				dSlideSet 	= 'slideshow_img_1';
				dSlideFade	= 'slideshow_img_3';
			}
			else{
				dSlideSet 	= 'slideshow_img_3';
				dSlideFade	= 'slideshow_img_1';
			}
			
			
			
			Ext.get(dSlideSet).dom.src = slideShowData[next_Img].data.path;
			Ext.get(dSlideFade).fadeIn(
			{
				endOpacity: 1,
				easing:'easeOut',
				duration: duration,
				useDisplay: true,
				callback: function() {
					stopActions = 0;
				}
			});
			
		} else{
			Ext.get('slideshow_img_3').fadeOut(
			{
				endOpacity: 0,
				easing:'easeOut',
				duration: duration,
				remove: false,
				useDisplay: true
			});
			
			if(bNext){
				dSlideSet 	= 'slideshow_img_2';
				dSlideFade	= 'slideshow_img_1';
			}
			else{
				dSlideSet 	= 'slideshow_img_1';
				dSlideFade	= 'slideshow_img_2';
			}
			
			
			
			Ext.get(dSlideSet).dom.src = slideShowData[next_Img].data.path;
			Ext.get(dSlideFade).fadeIn(
			{
				endOpacity: 1,
				easing:'easeOut',
				duration: duration,
				useDisplay: true,
				callback: function() {
					stopActions = 0;					
				}
			});
		}		
	}
	
	Ext.get('slideshow_title_div').update(slideShowData[pI].data.imagetitle);
		
	if(slideShowData[pI].data.url.length > 0 && slideShowData[pI].data.url != '##'){
	 	Ext.get('slideshow_img_atag').dom.href = ''+slideShowData[pI].data.url;
	 	Ext.get('slideshow_title_atag').dom.href = ''+slideShowData[pI].data.url;				 	
 	}else{			 		
 		Ext.get('slideshow_img_atag').dom.removeAttribute('href');
 		Ext.get('slideshow_title_atag').dom.removeAttribute('href');
 	}
	
	//Ext.get('slideshow_paging_div').update('Bild <strong>' + (pI + 1) + '</strong> / ' + mySlideShowItems);
	actImg = pI;
}

