



var nxblender = {




	fadeDuration: 2.5,
	displayDuration: 3,




	init: function() {

		nxblender.nxBlenderItems = [];
		var targetBox = nxblender.createTargetBoxFor('#nxblender-eyecatcher');
		var blenderElements = nxblender.getBlenderElements();
		nxblender.injectBlenderElementsIntoTargetBox(blenderElements, targetBox);
		nxblender.resetBlender(blenderElements);

		nxblender.blend(blenderElements, 0, true);

	},




	createTargetBoxFor: function(boxSelector) {

		var targetBox = new Element('div');
		targetBox.setAttribute('id', 'nxblender-eyecatcher-targetBox');

		var wrappingElement = $$(boxSelector).first();

		wrappingElement.select('*').each(function(innerElement) {
			innerElement.setStyle({'visibility': 'hidden'});
		});

		var displayAttribute = wrappingElement.getStyle('display');
		wrappingElement.setStyle({'display': displayAttribute});

		wrappingElement.insert({before: targetBox});

		targetBox.setStyle({
			position: 'absolute',
			overflow: 'hidden',
			height: wrappingElement.getHeight(),
			width: wrappingElement.getWidth()
		});

		return targetBox;

	},




	getBlenderElements: function() {

		var blenderItems = [];
		var itemNumber = 0;
		$$('.tx-nxblender-pi1 .nxblender-item').each(function(element) {
			blenderItems.push({
				itemNumber: itemNumber,
				nextItem: ++itemNumber,
				DOMObject: element
			});
		});

		blenderItems.last().nextItem = 0;

		return blenderItems;

	},




	injectBlenderElementsIntoTargetBox: function(blenderElements, targetBox) {
		blenderElements.each(function(elementConfig) {
			elementConfig.DOMObject.setStyle({
				position: 'absolute'
			});
			targetBox.insert(elementConfig.DOMObject);
		});
	},




	resetBlender: function(blenderElements) {
		var currentElement = 0;
		blenderElements.each(function(elementConfig) {
			elementConfig.DOMObject.setStyle({
				opacity: 0
			});
		});
		blenderElements.first().DOMObject.setStyle({opacity: 1});
	},




	blend: function(blenderElements, startingIndex, firstBlend) {
		nextIndex = startingIndex;

		if (!firstBlend) {

			nextIndex = blenderElements[startingIndex].nextItem;
			var currentElement = blenderElements[startingIndex].DOMObject;
			var nextElement = blenderElements[nextIndex].DOMObject;

			var effectA = new Effect.Opacity(currentElement, {
				duration: nxblender.fadeDuration,
				from: 1.0,
				to: 0.0
			});
			var effectB = new Effect.Opacity(nextElement, {
				duration: nxblender.fadeDuration,
				from: 0.0,
				to: 1.0
			});

		}

		nxblender.blend.delay(nxblender.displayDuration, blenderElements, nextIndex, false);

	}




};


















var nxblende = {


	nxBlenderItems: [],
	nxBlenderFadeDuration: 2.5,
	nxBlenderDisplayDuration: 5,
	nxBlenderStartIndex: -1,
	timeout: 0,


	init: function() {

		nxblender.getPluginWrappers();


	},



	getPluginWrappers: function() {
		$$('.tx-nxblender-pi1').each(function(pluginWrapper) {
			nxblender.getBlenderItems(pluginWrapper);
		});
	},



	getBlenderItems: function(pluginWrapper) {
		pluginWrapper.select('div.nxblender-item').each(function(blenderItems) {
			nxblender.getBlenderItem(blenderItems);
		});
	},



	getBlenderItem: function(blenderItem) {
		nxblender.nxBlenderItems.push({
			eyecatcher: blenderItem.select('div.nxblender-eyecatcher')
		});
	},



	getStartIndex: function(){

		if(nxblender.nxBlenderStartIndex < 0){
			var j = 0;
			$('nxblender-wrapper').select('div.nxblenderitem').each(function(items){
				items.select('.nxblender-eyecatcher').each(function(item){

					if(item.select('img')[0].src == $('nxblender-eyecatcher').src){
						nxblender.nxBlenderStartIndex = j;
					}
				});
				j++;
			});

			nxblender.nxBlenderStartIndex = (nxblender.nxBlenderStartIndex+1) % nxblender.nxBlenderItems.length;
		}else{
			nxblender.nxBlenderStartIndex = (nxblender.nxBlenderStartIndex+1) % nxblender.nxBlenderItems.length;
		}

	},

	putAllImagesOverAnother: function(){

		var wrapper = new Element('div', {id: "nxblender-wrapper"});

		var i = 0;
		nxblender.nxBlenderItems.each(function(blenderItem) {

			var newBlenderItem = new Element('div', {
				id: "nxblenderitem_"+i,
				'class': "nxblenderitem"
			});

			var newImage = new Element('div', {'class': "image"});
			newImage.insert(blenderItem.eyecatcher[0]);
			/* newImage.clonePosition($('nxblender-eyecatcher')); */

			/*var newOverlay = new Element('div', {'class': "text"});
			newOverlay.insert(blenderItem.overlay[0]);
			newOverlay.clonePosition($('nxblender-text'));

			var newText = new Element('div', {'class': "caption"});
			newText.insert(blenderItem.caption[0]);
			newText.clonePosition($('nxblender-caption'));*/


			if ( Prototype.Browser.IE ){
				var oldStyle = newImage.getStyle('left');
				/*var newStyle = oldStyle.substr(0,3) - 218;*/

				/*newImage.setStyle({left: newStyle+'px'});*/
				/*newText.setStyle({left: newStyle+'px'});*/
			}


			newBlenderItem.insert(newImage);
			/*newBlenderItem.insert(newOverlay);
			newBlenderItem.insert(newText);*/

			wrapper.insert(newBlenderItem);
			i++;



		});

		$('body').insert(wrapper);
		nxblender.hideNxblenderItems();
		nxblender.getStartIndex();
	},

	getOldImage: function(){
		return 'nxblender-eyecatcher';
	},
	/*getOldOverlay: function(){
		return 'nxblender-text';
	},
	getOldText: function(){
		return 'nxblender-caption';
	},*/




	hideNxblenderItems: function(){
		$('nxblender-wrapper').select('div.nxblenderitem').each(function(items){
			items.setStyle({
				opacity: '0'
			});

		});
	},





	getNewImage: function(){
		return nxblender.nxBlenderItems[nxblender.nxBlenderStartIndex];
	},




	blender: function() {

		nxblender.putAllImagesOverAnother();

		// ausblenden
		new Effect.Opacity(nxblender.getOldImage(), { duration: nxblender.nxBlenderFadeDuration, from: 1.0, to: 0.0 });
		/*new Effect.Opacity(nxblender.getOldOverlay(), { duration: nxblender.nxBlenderFadeDuration, from: 1.0, to: 0.0 });
		new Effect.Opacity(nxblender.getOldText(), { duration: nxblender.nxBlenderFadeDuration, from: 1.0, to: 0.0 });*/

		// einblenden
		// image, overlay und text auf 0 setzen
		// wrapper auf 1
		$$('.nxblenderitem').each(function(tempBlenderItem){
			tempBlenderItem.select('.nxblender-eyecatcher')[0].setStyle({opacity: '0'});
			/*tempBlenderItem.select('.nxblender-text')[0].setStyle({opacity: '0'});
			tempBlenderItem.select('.nxblender-caption')[0].setStyle({opacity: '0'});*/
		});
		$('nxblenderitem_'+nxblender.nxBlenderStartIndex).setStyle({opacity:1});

		new Effect.Opacity($('nxblenderitem_'+nxblender.nxBlenderStartIndex).select('.nxblender-eyecatcher')[0], { duration: nxblender.nxBlenderFadeDuration, from: 0.0, to: 1.0 });
		/*new Effect.Opacity($('nxblenderitem_'+nxblender.nxBlenderStartIndex).select('.nxblender-text')[0], { duration: nxblender.nxBlenderFadeDuration, from: 0.0, to: 1.0 });
		new Effect.Opacity($('nxblenderitem_'+nxblender.nxBlenderStartIndex).select('.nxblender-caption')[0], { duration: nxblender.nxBlenderFadeDuration, from: 0.0, to: 1.0 });
		*/


		// das naechste bild einblenden
		new PeriodicalExecuter(function(){
			nxblender.next();
		}, nxblender.nxBlenderFadeDuration + nxblender.nxBlenderDisplayDuration);

	},


	next: function(){
		var oldImageId = nxblender.nxBlenderStartIndex;
		nxblender.getStartIndex();


		// einblenden
		//new Effect.Opacity($('nxblenderitem_'+nxblender.nxBlenderStartIndex), { duration: nxblender.nxBlenderFadeDuration, from: 0.0, to: 1.0 });

		// einblenden
		// image, overlay und text auf 0 setzen
		// wrapper auf 1
		$('nxblenderitem_'+nxblender.nxBlenderStartIndex).select('.nxblender-eyecatcher')[0].setStyle({opacity: '0'});
		/*$('nxblenderitem_'+nxblender.nxBlenderStartIndex).select('.nxblender-text')[0].setStyle({opacity: '0'});
		$('nxblenderitem_'+nxblender.nxBlenderStartIndex).select('.nxblender-caption')[0].setStyle({opacity: '0'});*/
		$('nxblenderitem_'+nxblender.nxBlenderStartIndex).setStyle({opacity:1});

		new Effect.Opacity($('nxblenderitem_'+nxblender.nxBlenderStartIndex).select('.nxblender-eyecatcher')[0], { duration: nxblender.nxBlenderFadeDuration, from: 0.0, to: 1.0 });
		/*new Effect.Opacity($('nxblenderitem_'+nxblender.nxBlenderStartIndex).select('.nxblender-text')[0], { duration: nxblender.nxBlenderFadeDuration, from: 0.0, to: 1.0 });
		new Effect.Opacity($('nxblenderitem_'+nxblender.nxBlenderStartIndex).select('.nxblender-caption')[0], { duration: nxblender.nxBlenderFadeDuration, from: 0.0, to: 1.0 });
		*/



		// ausblenden
		//new Effect.Opacity($('nxblenderitem_'+oldImageId), { duration: nxblender.nxBlenderFadeDuration, from: 1.0, to: 0.0 });

		// ausblenden
		new Effect.Opacity($('nxblenderitem_'+oldImageId).select('.nxblender-eyecatcher')[0], { duration: nxblender.nxBlenderFadeDuration, from: 1.0, to: 0.0 });
		/*new Effect.Opacity($('nxblenderitem_'+oldImageId).select('.nxblender-text')[0], { duration: nxblender.nxBlenderFadeDuration, from: 1.0, to: 0.0 });
		new Effect.Opacity($('nxblenderitem_'+oldImageId).select('.nxblender-caption')[0], { duration: nxblender.nxBlenderFadeDuration, from: 1.0, to: 0.0 });
		*/
		//$('nxblenderitem_'+nxblender.nxBlenderStartIndex).setStyle({opacity:0});

	}




};




//document.observe("dom:loaded", function() {
Event.observe(window, 'load', function() {
	nxblender.init.delay(1);

});