/*  
 * Created by Henry YP @ monkiki.st
 * Copyright (c) 2009 monkiki <www.monkki.st>
 *
 * email henryyp @ monkiki.st
 *
 * slideshow system for monkiki webites with Prototype library, v1.6.2
 *
 * 
 * This script is freely distributable under the terms of an MIT-style license.
/*------------------------------------------------------------------------------*/


var ImageRolls = Class.create ({
							  
	initialize: function(id, options) {
		
		if(!$(id)) throw("Attempted to initalize slideshow: "+ id + " which was not found.");
		
		this.container = $(id);
		
		//set the options
		this.setOptions(options);
		
		//img with links
		this.arrLink = new Array();
		
		this.initLinks();
				
		
	},

	//init the image with links
	initLinks :function () {
		
		var iU = this.container.select ('a');
		
		//set the a rollover
		for (var i=0; i<iU.length; i++) {
			if (iU[i].down('img') && !iU[i].down('img').hasClassName(this.options.noRoll) && !iU[i].up('div').hasClassName(this.options.shopText)) {
				
				this.arrLink.push(iU[i].down('img'));
				
				iU[i].down('img').setOpacity (this.options.opacityOut);
				
				var mainOutHandler = this.mainOutHandler.bindAsEventListener(this);
				iU[i].down('img').observe ('mouseout', mainOutHandler);
				
				var mainOverHandler = this.mainOverHandler.bindAsEventListener(this);
				iU[i].down('img').observe ('mouseover', mainOverHandler);
			}
			else if (iU[i].down('img') && !iU[i].down('img').hasClassName(this.options.noRoll) && iU[i].up('div').hasClassName(this.options.shopText)) {
					
				this.arrLink.push(iU[i].down('img'));
				
				
				var shopOutHandler = this.shopOutHandler.bindAsEventListener(this);
				iU[i].down('img').observe ('mouseout', shopOutHandler);
				
				var shopOverHandler = this.shopOverHandler.bindAsEventListener(this);
				iU[i].down('img').observe ('mouseover', shopOverHandler);				
					
			}
		}
		
		var iM = this.container.select('img.'+this.options.isBut);
		
		
		for (var j=0; j<iM.length; j++) {
			
			//iM[j].setOpacity (this.options.opacityOut);
			
			var shopOutHandler = this.shopOutHandler.bindAsEventListener(this);
			iM[j].observe ('mouseout', shopOutHandler);
			
			var shopOverHandler = this.shopOverHandler.bindAsEventListener(this);
			iM[j].observe ('mouseover', shopOverHandler);
		}
		
	},
	
	//main images 
	mainOutHandler : function(el) {
		var s=el.element();
		s.setOpacity (this.options.opacityOut);
	},
	
	mainOverHandler : function (el) {
		var s=el.element();
		s.setOpacity (this.options.opacityOver);
	},
	
	//shop images
	shopOutHandler : function(el) {
		var s=el.element();
		s.setOpacity (this.options.opacityOver);
	},
	
	shopOverHandler : function (el) {
		var s=el.element();
		s.setOpacity (this.options.opacityOut);
	},


	
		
		
	//setting the optiosn if available
	setOptions: function(options) {
		this.options = {
			fps:50,
			speed: 0.5,
			defaultDelay: 15,
			isBut: 'isbut',
			noRoll:'noroll',
			shopText: 'shop_text',
			defaultXPos: 660,
			opacityOut: 0.5,
			opacityOver: 1.0
			
		};
		
		Object.extend(this.options, options || {});
	}							  
							  
							  
							  
							  
});

document.observe("dom:loaded", function(){
  new ImageRolls('Table_01', {suffixSeperator: '_', rolloverSuffix: 'over',
	selectedSuffix: 'active'});
  
})
