/*
Script: FadingTabs.js
	Contains <FadingTabs>

Author:
	Alan Roemen

Class: FadingTabs
	A javascript pane fade in/out viewer

Options:
	start: Pane to display first. Default: 0
	startDelay: Delay added at start and after play button is pressed. Default: .8
	baseURL: URL of script. When set to 'false', script determines location automatically. Default: false
	className: Class assigned to wrapper. Default: 'FadingTab'
	classFile: Name of CSS file used. Set to 'false' to not have script include CSS file. Default: 'fadingtabs'
	autoRun: Automatically cycles through panes. Default: true
	autoRunDelay: Delay between auto display of panes. Default: 8
	autoRunDirection: Direction autorun cycles. Default: 'next'
	show_effect : Effect when Showing Pane. Default: {duration: 500, transition : Fx.Transitions.sineInOut}
	hide_effect : Effect when Hiding Pane. Default: {duration: 500, transition : Fx.Transitions.sineInOut}
*/

window.addEvent('domready', function(){
	if (window.ie6 && $('homepage_ads')!=null){
		$('homepage_ads').setStyle('width', '533px');
		$('homepage_ads').getElements('div').each(function(el){el.setStyle('width', '533px');});
		$('homepage_ads').getElements('img').each(function(el){el.setStyle('width', '531px');});
		$$('body')[0].setStyle('position', 'relative');
		$$('body')[0].getChildren().each(function(el){el.setStyle('position', 'relative');});
	}
	if (window.ie6 && $('ad')!=null){
		$('ad').setStyle('width', '608px');
		$('ad').getElements('div').each(function(el){el.setStyle('width', '608px');});
		$('ad').getElements('img').each(function(el){el.setStyle('width', '606px');});
		$$('body')[0].setStyle('position', 'relative');
		$$('body')[0].getChildren().each(function(el){el.setStyle('position', 'relative');});
	}
});

/*
Script: FadingTabs.js
	Contains <FadingTabs>

Author:
	Alan Roemen

Class: FadingTabs
	A javascript pane fade in/out viewer

Options:
	start: Pane to display first. Default: 0
	startDelay: Delay added at start and after play button is pressed. Default: .8
	baseURL: URL of script. When set to 'false', script determines location automatically. Default: false
	className: Class assigned to wrapper. Default: 'FadingTab'
	classFile: Name of CSS file used. Set to 'false' to not have script include CSS file. Default: 'fadingtabs'
	autoRun: Automatically cycles through panes. Default: true
	autoRunDelay: Delay between auto display of panes. Default: 8
	autoRunDirection: Direction autorun cycles. Default: 'next'
	show_effect : Effect when Showing Pane. Default: {duration: 500, transition : Fx.Transitions.sineInOut}
	hide_effect : Effect when Hiding Pane. Default: {duration: 500, transition : Fx.Transitions.sineInOut}
*/
var FadingTabs = new Class({
	options: {
		start: 0,
		startDelay: .8,
		baseURL: false,
		className: 'FadingTab',
		classFile: 'fadingtabs',
		navLoadDelay: 800,
		autoRun: true,
		autoRunDelay: 8,
		autoRunDirection: 'next',
		show_effect: {duration: 500, transition : Fx.Transitions.sineInOut},
		hide_effect: {duration: 500, transition : Fx.Transitions.sineInOut}
	},

	initialize: function(wrapper, options){
		this.wrapper = $(wrapper);
		this.setOptions(options);
		if (this.wrapper=='') return;

		// Get script base path
		if (!this.options.baseURL) {
			var elements = document.getElementsByTagName('script');
			for (var i=0; i<elements.length; i++) {
				if (elements[i].src && (elements[i].src.indexOf('fadingtabs.js') != -1)) {
					var src = elements[i].src;
					this.options.baseURL = src.substring(0, src.lastIndexOf('/'));
					break;
				}
			}
			// Get document base path
			this.documentBasePath = document.location.href;
			if (this.documentBasePath.indexOf('?') != -1)
				this.documentBasePath = this.documentBasePath.substring(0, this.documentBasePath.indexOf('?'));
			this.documentBasePath = this.documentBasePath.substring(0, this.documentBasePath.lastIndexOf('/'));
			if (this.options.baseURL.indexOf('://') == -1 && this.options.baseURL.charAt(0) != '/')
				this.options.baseURL = this.documentBasePath + "/" + this.options.baseURL;
		}

		// Adds Stylesheet
		if (this.options.classFile) new Asset.css(this.options.baseURL + '/' + this.options.classFile +'.css');

		// Setup Navigation
		this.navigation = new Element('ul', {styles: {'opacity':'0'}});

		// Setup Panes
		this.wrapper.addClass(this.options.className);
		this.panes = this.wrapper.getChildren();//this.wrapper.getElements('div');
		this.active = this.options.start;
		this.panes.each(function(el,i) {
			el.removeProperty('style');
			if (i!=this.active) el.setStyle('opacity',0);

			// Add Nav
			new Element('li', {
				'class': 'img'+(i+1) + (i==0?' img'+(i+1)+'-active':''),
				'events': {
					'click': function(e){
						this.set(i);
						try {
							_gaq.push( [ '_trackEvent', 'network_ad', 'click_button', (i+1).toString() ] );
							_gaq.push( [ 'glg._trackEvent', 'network_ad', 'click_button', (i+1).toString() ] );
						} catch(err) {}
					}.bind(this)
				}
			}).injectInside(this.navigation);
		}.bind(this));

		// Pause Nav
		this.pauseButton = new Element('li', {
			'class': 'pause',
			'events': {
				'click': function(e){
					try {
						if (this.paused) {
							this.start();
							_gaq.push( [ '_trackEvent', 'network_ad', 'click_button', 'play' ] );
							_gaq.push( [ 'glg._trackEvent', 'network_ad', 'click_button', 'play' ] );
						} else {
							this.stop();
							_gaq.push( [ '_trackEvent', 'network_ad', 'click_button', 'pause' ] );
							_gaq.push( [ 'glg._trackEvent', 'network_ad', 'click_button', 'pause' ] );
						}
					} catch(err) {}
				}.bind(this)
			}
		}).injectInside(this.navigation);
		this.navLinks = this.navigation.getElements('li');
		if (this.navLinks.length <= 2) return;
		this.navigation.injectTop(this.wrapper);
		this.navigation.effect('opacity', {
			duration: this.options.navLoadDelay,
			transition: Fx.Transitions.linear
		}).start(0,1);

		// AutoRun
		if (this.options.autoRun)
			(function(){this.setAuto();}.bind(this)).delay(this.options.startDelay*1000);

		// Setup Pause
		this.paused = false;
	},

	setAuto: function(){
		$clear(this.autoRun);
		this.autoRun = (function() {
			this[this.options.autoRunDirection]();
    }).periodical(this.options.autoRunDelay * 1000, this);
	},

	set: function(id, noReset){
		noReset = noReset || false;
		if (this.active == id) return;
		if (this.options.autoRun && !this.paused) this.setAuto();

		// Class
		this.navLinks[this.active].removeClass('img'+(this.active+1)+'-active');
		this.navLinks[this.active].addClass('img'+(this.active+1));
		this.navLinks[id].addClass('img'+(id+1)+'-active');

		// Effect
		this.panes[this.active].effect('opacity', this.options.hide_effect).start(1,0);
		this.panes[id].effect('opacity', this.options.show_effect).start(0,1);
		this.active = id;
	},

	next: function(){
		var id = this.active + 1;
		if (id >= this.panes.length) id = 0;
		this.set(id);
	},

	prev: function(){
		var id = this.active - 1;
		if (id < 0) id = this.panes.length -1;
		this.set(id);
	},

	start: function(){
		this.pauseButton.removeClass('pause-active');
		this.pauseButton.addClass('pause');
		this.paused = false;
		(function(){this[this.options.autoRunDirection]();}.bind(this)).delay(this.options.startDelay*1000);
	},

	stop: function(){
		$clear(this.autoRun);
		this.paused = true;
		this.pauseButton.removeClass('pause');
		this.pauseButton.addClass('pause-active');
	}
});

FadingTabs.implement(new Events, new Options);
