var ILivePhotos = new Class(
{
	initialize: function()
	{	
		if(window.ie6)
		{
			this.initPNGFix();
		}
		this.initAccordianMenu();
		this.initFlicker();
		this.initPhotoStrip();
	},
	
	initPNGFix: function()
	{
		// This Javascript is written by Peter Velichkov (www.creonfx.com)
		// and is distributed under the following license : http://creativecommons.org/licenses/by-sa/3.0/
		// Use and modify all you want just keep this comment. Thanksfunction fixPNG(){
		$$('*').each(function(el)
		{
		 	var imgURL = el.getStyle('background-image');
		 	var imgURLLength = imgURL.length;
		 	if ( imgURL != 'none' && imgURL.substring(imgURLLength  - 5, imgURLLength  - 2) == 'png')
		 	{
		 		el.setStyles(
		 		{
		 			background: '',
		 			filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true', sizingMethod='crop', src='" + imgURL.substring(5,imgURLLength  - 2) + "')"
		 		});
		 	};
		 
			if(el.get('tag') == 'img' && el.getProperty('src').substring(el.getProperty('src').length  - 3) == 'png')
			{
		 		var imgReplacer = new Element('input', 
		 		{
		 			'styles': 
		 			{
		 				'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true', sizingMethod='crop', src='" + el.getProperty('src') + "')",
		 				'position': 'relative',
		 				'background': 'transparent'
		 			},
		 			'title': el.getProperty('alt')
		 		});
		 
				imgReplacer.setStyles(el.getStyles('padding','margin','border','height','width'));
		 		imgReplacer.setProperties(el.getProperties('id','class'));
		 		imgReplacer.disabled = true;
		 		el.replaceWith(imgReplacer);
		 	};
		});
	},
	
	initAccordianMenu: function()
	{
		if($chk($('accordionmenu')))
		{
			var myAccordion = new Accordion($('accordionmiddle'), 'div.toggler', 'div.element', {
				opacity: false,
				onActive: function(toggler, element)
				{
					var togglerColor = toggler.id.split('_');
					var togglerColorName = togglerColor[togglerColor.length - 2];
					var togglerColor = togglerColor[togglerColor.length - 1];
					
					toggler.setStyles({'background':'#' + togglerColor + ' url(styles/images/accordionitem' + togglerColorName + '.gif) left bottom no-repeat', 'color':'#f1f1f1'});
					toggler.getElement('a').setStyles({'color':'#f1f1f1'});
					element.setStyles({'background':'#' + togglerColor + ' url(styles/images/accordionitemborders.gif) left bottom repeat-y', 'color':'#f1f1f1'});
				},
				onBackground: function(toggler, element)
				{
					toggler.setStyles({'background':'url(styles/images/accordionitem.gif) no-repeat', 'color':'#000'});
					toggler.getElement('a').setStyles({'color':'#000'});
					element.setStyles({'background':'#fff', 'color':'#000'});
				}
			});
			
			$$('div.toggler').each(function(toggler)
			{
				toggler.addEvent('mouseover', function()
				{
					togglerId = toggler.id.split('_')[1];
					togglerId = togglerId.toInt();

					myAccordion.display(togglerId);
				});
			});
		}
	},
	
	initFlicker: function()
	{
		if($chk($('max_flicker_index')))
		{
			this.flickImage.delay(3000, this);
		}
	},
	
	flickImage: function()
	{
		var exceptions = '';
		$$('img.flickerimg').each(
			function(img)
			{
				exceptions += img.src.replace(window.location, '') + '|';
			}
		);
		
		var url = "index.php?json=1&action=getrandomimage";
		if($chk($('cPath')))
		{
			url += "&cPath=" + $('cPath').value;
		}
		
		var jsonRequest = new Request.JSON(
		{
			url: url, 
			onComplete: this.flickImageRetrieved.bind(this)
		}).post({'exceptions': exceptions});
	},
	
	flickImageRetrieved: function(data)
	{
		var parentObj = this;
		
		if($chk(data))
		{
			new Asset.image(data.image, 
			{
				onload: function(flickImg)
				{
					var imageId = 'flicker_' + $random(0, $('max_flicker_index').value.toInt()).toString();
		
					var imageDiv = $(imageId);
					
					var imageFader = new Fx.Tween(imageId, {'duration':1000});
					imageFader.start('opacity',1,0).chain(
					    function()
					    { 
					    	imageDiv.set('html', '');
					    	
					    	imageLinkE = new Element('a');
					    	imageLinkE.href = data.imageLink;
					    	flickImg.addClass('flickerimg');
					    	flickImg.injectInside(imageLinkE);
					    	imageLinkE.injectInside(imageDiv);
					    	
					    	imageFader.start('opacity',0,1).chain(
							    function()
							    { 
							    	parentObj.flickImage.delay(3000, parentObj);
							    }
						    );
					    }
					);
				}
			});
		}
	},
	
	initPhotoStrip: function()
	{
		if($chk($('photostrip')))
		{
			$('photostripbuttonleft').addEvent('click', this.photoStripLeftClick.bind(this));
			$('photostripbuttonright').addEvent('click', this.photoStripRightClick.bind(this));
			
			var slider = $('photostripslider');
			var sliderContainer = $('photostripslidercontainer');
			if(slider.getSize().x > sliderContainer.getSize().x)
			{
				productsID = $('products_id').value;
				var sliderContainerSize = sliderContainer.getSize();
				var sliderPos = slider.getPosition(sliderContainer);
				var thumbTarget = $('photostripthumb_' + productsID);
				var sliderFX = new Fx.Tween(slider, {'duration':500});
				var slideTo = sliderPos.x - thumbTarget.getPosition(sliderContainer).x;
				slideTo = slideTo + (sliderContainerSize.x / 2) - (thumbTarget.getSize().x / 2);
				sliderFX.start('left', sliderPos.x, slideTo);
			}
		}
	},
	
	photoStripLeftClick: function(event)
	{
		event = new Event(event).stop();
		
		var slider = $('photostripslider');
		var sliderContainer = $('photostripslidercontainer');
		var sliderPos = slider.getPosition(sliderContainer);
		if(sliderPos.x < 0)
		{
			//slide right
			var increment = parseInt($('photostripincrement').value);
			var sliderPosX = parseInt(sliderPos.x);
			
			var targetStopX = sliderPosX + increment;
			if(targetStopX > 0)
			{
				targetStopX = 0;
			}
			
			var sliderFX = new Fx.Tween(slider, {'duration':1000});
			sliderFX.start('left', sliderPos.x, targetStopX);
		}
		
		//return false;
	},
	
	photoStripRightClick: function(event)
	{
		event = new Event(event).stop();
		
		var slider = $('photostripslider');
		var sliderContainer = $('photostripslidercontainer');
		
		if(slider.getSize().x > sliderContainer.getSize().x)
		{
			var sliderPos = slider.getPosition(sliderContainer);
			if(sliderPos.x > 0 - (slider.getSize().x + sliderContainer.getSize().x))
			{
				//slide left
				var increment = parseInt($('photostripincrement').value);
				var sliderPosX = parseInt(sliderPos.x);
				
				var targetStopX = sliderPosX - increment;
				stopX = parseInt(sliderContainer.getSize().x) - parseInt(slider.getSize().x);
				if(targetStopX < stopX)
				{
					targetStopX = stopX;
				}
				
				var sliderFX = new Fx.Tween(slider, {'duration':1000});
				sliderFX.start('left', sliderPos.x, targetStopX);
			}
		}
		
		//return false;
	}
});

window.addEvent('domready', function()
{
	new ILivePhotos();
});
