HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: /home/mmickelson/old.loveandlaughterpreschool.com/templates/rt_versatility4_j15/js/rokslidestrip.js
/**
 *  @author Olmo Maldonado, <http://olmo-maldonado.com
 *  
 *  Fixed resize issue - Djamil Legato <djamil [at] djamil.it>
 *  version 1.9
 */
var RokSlide = new Class({
	version: '1.9',
	options: {
		active: '',
		fx: {
			wait: false,
			duration: 350
		},
		scrollFX: {
			wait: false,
			transition: Fx.Transitions.Sine.easeInOut	
		},
		
		dimensions: {
			width: 722,
			height: 200
		},
		
		dynamic: false,
		tabsPosition: 'top',
		arrows: true
	},
	
	initialize: function(contents, options) {
		this.setOptions(options);
		this.content = $(contents);
		this.sections = this.content.getElements('.tab-pane');
		if(!this.sections.length) return;
	
		this.filmstrip = new Element('div').injectAfter(this.content);
		this.buildToolbar();
		this.buildFrame();
		if(window.ie) this.fixIE();
		
		this.scroller = $('scroller');
		this.startposition = $(this.sections[0].id.replace('-tab', '-pane')).getPosition().x;
		//this.scroller.fx = this.scroller.effects(this.options.fx);
		this.scroller.scrollFX = new Fx.Scroll(this.scroller, this.options.scrollFX);
		if(this.options.active) this.scrollSection(this.options.active.test(/-tab|-pane/) ? this.options.active : this.options.active + '-tab');
		else this.scrollSection(this.sectionptr[0]);

		if (this.options.tabsPosition == 'bottom') {
			this.filmstrip.getElement('hr').inject(this.filmstrip);
			var ul = this.filmstrip.getElement('ul'); ul.inject(this.filmstrip);
			var tab_height = ul.getSize().size.y, frame = $('frame');
			frame.setStyle('height', frame.getStyle('height').toInt() - tab_height);
		}
	},
	
	buildToolbar: function() {	
		var lis = [];
		var that = this;
		this.sectionptr = [];
		var h1, title;

		if (!!this.options.dynamic) this.width = $(this.options.dynamic).getCoordinates().width;
		else this.width = this.options.dimensions.width;
		var width = this.width;
		
		this.sections.each(function(el) {
			el.setStyles({
				width: width - ((!!this.options.dynamic) ? 0 : (!this.options.arrows) ? 0 : 142),
				height: this.options.dimensions.height
			});
			this.sectionptr.push(el.id.replace('-pane', '-tab'));
			h1 = el.getElement('.tab-title');
			title = h1.innerHTML;
			h1.empty().remove();
			lis.push(new Element('li', {
				id: el.id.replace('-pane', '-tab'),
				events: {
					'click': function() {
						this.addClass('active');	
						
						that.scrollSection(this);
					},
					'mouseover': function() {
						this.addClass('hover');
						this.addClass('active');
					},
					'mouseout': function() {
						this.removeClass('hover');
						this.removeClass('active');
					}
				}
			}).setHTML(title));
		}, this);
		
		var length = lis.length - 1;
		lis[0].addClass('first');
		lis[length].addClass('last');
		
		this.filmstrip.adopt(new Element('ul', {
					id: 'rokslide-toolbar',
					styles: {
						width: width
					}
				}).adopt(lis), new Element('hr'));
	},
	
	buildFrame: function() {
		var width = this.width;
		
		var that = this, events = {
			'click': function() {
				that.scrollArrow(this)
			},
			'mouseover': function() {
				this.addClass('hover');
			},
			'mouseout': function() {
				this.removeClass('hover');
			}
		};
		
		var arrows = {
			'left': (this.options.arrows) ? new Element('div', {'class': 'button','id': 'left','events': events}) : '',
			'right': (this.options.arrows) ? new Element('div', {'class': 'button','id': 'right','events': events}) : ''
		};
		
		this.filmstrip.adopt(
			new Element('div', {
				id: 'frame', 
				styles: {
					width: width,
					height: this.options.dimensions.height
				}
			}).adopt(
				arrows.left,
				new Element('div', { 
					id: 'scroller',
					styles: {
						width: 	width - ((!!this.options.dynamic) ? 0 : (!this.options.arrows) ? 0 : 102),
						height: this.options.dimensions.height
					}
				}).adopt(this.content.setStyle('width', this.sections.length * 1600)),
				arrows.right
			)
		);	
	},
	
	fixIE: function() {
		// if(window.ie6) {
		// 	this.sections.each(function(el) {
		// 		el.setStyle('margin', '0px 10px');
		// 	});
		// }
		
		this.filmstrip.getElement('hr').setStyle('display', 'none');
		
		// [$('frame'), this.scroller].merge(this.sections).merge($$('#frame div.button')).each(function(el) {
		// 	if(el) el.setStyle('height', '75.5em');
		// });
	},
	
	scrollSection: function(element) {
		element = $($(element || this.sections[0]).id.replace('-pane', '-tab'));
		this.startposition = $(this.sections[0].id.replace('-tab', '-pane')).getPosition().x;
		
		var oldactive = element.getParent().getElement('.current');
		if(oldactive) oldactive.removeClass('current');
		element.addClass('current');
	
		var offset = $(element.id.replace('-tab', '-pane')).getPosition().x - this.startposition;
		this.scroller.scrollFX.scrollTo(offset, false);
		/*var that = this;
		this.scroller.fx.start({
			opacity: 0	
		}).chain(function() {
			that.scroller.fx.start({
				opacity: 1
			});
		});*/
	},
	
	scrollArrow: function(element) {
		var direction = Math.pow(-1, ['left','right'].indexOf(element.id) + 1);
		var current = this.sectionptr.indexOf(this.filmstrip.getElement('.current').id);
		var to = current + direction;
		this.scrollSection(this.sectionptr[to < 0 ? this.sectionptr.length - 1 : to % this.sectionptr.length]);
	}
});
RokSlide.implement(new Options);