
{slideElements = [
 ['Promo_Kambee.png',
	'Kambee&nbsp;<span class="blue">Web Based Survey Solutions</span>',
	'Kambee provides a feature packed solution for surveying your customers on-line. You can create your survey in minutes, defining your questions and question formats - you can even customize the look and feel of your survey.',
	'http://kambee.com',
	'kambee.html'
 ],
 ['Promo_PerlDesk.png',
	'PerlDesk&nbsp;<span class="blue">Customer Support and Email Management Solutions</span>',
	'PerlDesk is a feature packed browser based email management and help desk software application, designed to streamline the operation of managing emails or support requests.',
	'http://perldesk.com',
	'perldesk.html'
 ],
 ['Promo_Logicbill.png',
	'LogicBill&nbsp;<span class="blue">Billing Software and Order Management Solutions</span>',
	'LogicBill is a web based billing and order management software application that allows you to effectively manage your online sales and billing.',
	'http://logicbill.com',
	'logicbill.html'
 ],
 ['Promo_Logicreach.png',
	'LogicReach&nbsp;<span class="blue">Free website monitoring service</span>',
	'Using LogicReach you can remain confident that your site is up and available 24/7, in the event we detect any problems such as down time, we will send you an email or SMS message immediately.',
	'http://logicreach.com',
	'logicreach.html'
 ]
]};

var slideShow = new Class({
 options: {
	slideImagesPath: 'images/',
	fadeSpeed: 0.8, // in seconds
	slideDuration: 5 // in seconds
 },
 initialize: function(options) {
	this.setOptions(options);
	
	// NOTE: little lazy use of innerHTML and not appendChild and createElement!
	var appendImages = '', j = 3;
	for(var i = 0, l = slideElements.length; i < l; i++)
	{
	   appendImages += '<img style="position: absolute; z-index: ' + j + ';" src="' + this.options.slideImagesPath + slideElements[i][0] +'" alt="'+ slideElements[i][0] +'" />';
	   j--;
	}
	$('slide_images').setHTML(appendImages);
 },
 slide: function() {
	
	// we are using local variables, because of the scope of "this"
	var fade_speed  = this.options.fadeSpeed*1000;
	var i = opacity_from = 0, opacity_to = 1;
	var slide_images = [];
	var imgs = $('slide_images').getElementsByTagName('img');
	var img_len = imgs.length;
	var reversed = 1;
	var paused = false;
	
		$('slide_images').addEvents({
			'mouseover': function() { paused = true;
				 $('pause').setStyle('display', 'block');	
			 },
			'mouseout': function() { paused = false;
				 $('pause').setStyle('display', 'none');
			 }
		 });
	
	for(var j = 0; j < img_len; j++)
	{
	   slide_images[j] = imgs[j];
	}
	
	// set a timer
	var slideId = setInterval(function() {			
	   
	   if( !paused )
	   {
		  if( i >= img_len-reversed )
		  {
			 opacity_from = (opacity_from == 0) ? 1 : 0;
			 opacity_to = (opacity_to == 1) ? 0 : 1;
			 slide_images.reverse();
			 slideElements.reverse();
			 if( reversed == 1 )
			 {
				i = 1;
				reversed = 0;
			 }
			 else
			 {
				i = 0;
				reversed = 1;
			 }
		  }
		  
		  // fade in & out
		  if( slide_images[i] )
		  {
			 new Fx.Style(slide_images[i], 'opacity',
			   {duration: fade_speed}).start(opacity_to, opacity_from);
			 
			 $('shortInfoTitle').setHTML(slideElements[i+reversed][1]);
			 $('shortInfoDesc').setHTML(slideElements[i+reversed][2]);
			 $('visit_site_url').setProperty('href', slideElements[i+reversed][3]);
			 $('more_info_url').setProperty('href', slideElements[i+reversed][4]);
		  }
		  
		  ++i;
	   }			
	}, (this.options.slideDuration*1000));
 }
});

slideShow.implement(new Options);

window.addEvent('load', function() {
  new slideShow({slideDuration: 2}).slide();
});

