var hideImageId;
var showImageId;
var myInterval;
var currentImage;
var split_id;
var toBeShown;

var showcase = $('showcase');
showcase.cleanWhitespace();// clear white spaces between the <li>'s
var totalImages = showcase.childNodes.length;

function swapImagesOnLoad()
{
    //replacelinks();

    var imageCount = totalImages + 1;
    var buttonList  =   $('mm_footer');
    var ulObj       =   document.createElement('ul');
    ulObj.id        =   'showcase_buttons';

	/* Count total banners and create a button for each banner */
	for(var i=1;i<imageCount;i++)
	{
		liObj = document.createElement('li');
		liObj.id = 'li_id_' + i;
		a = document.createElement('a');
		a.href='#';
		a.onclick=clickSwap;
		a.id = 'a_id_' + i;
		a.image_number = i;
		a.className='showcase_button_inactive';
		a.appendChild(document.createTextNode(i));
		liObj.appendChild(a);
		ulObj.appendChild(liObj);
	}
	buttonList.appendChild(ulObj);

	/* Hide all banners despite the first one */
	$$('#showcase li').each
	(
		function(element)
		{
		    element.id = element.id.substr(7,8); // strip "banner_" part from the li id's
			element.hide();

			currentImage = $('showcase').firstChild;
			currentImage.show();
			var currentImageId = currentImage.id;

			$('a_id_' + (currentImageId)).removeClassName('showcase_button_inactive');
			$('a_id_' + (currentImageId)).addClassName('showcase_button_active');
		}
	);

	/* Hide the loading div and show the showcase */
	$('showcase_loading').toggle();
	$('showcase').toggle();

	startSwap();
}

/* Swap banner */
function swapImage(showImage, hideImage)
{
	Effect.Fade(hideImage, {duration:1.7, from:1.0, to:0.0}); // fade out
	currentImage = $('showcase').childNodes[showImage];

	hideImageId = hideImage.id;
	showImageId = currentImage.id;

	/* Make all buttons inactive */
	if ($('a_id_' + (hideImageId)).hasClassName('showcase_button_active'))
	{
        /* add timer */
	    $('a_id_' + (hideImageId)).removeClassName('showcase_button_active');
	    $('a_id_' + (hideImageId)).addClassName('showcase_button_inactive');
	}

	/* add timer */
	$('a_id_' + (showImageId)).removeClassName('showcase_button_inactive');
	$('a_id_' + (showImageId)).addClassName('showcase_button_active');

	Effect.Appear(currentImage, {duration:1.7, from:0.0, to:1.0}); // fade in
}

/* Automatically swap banners */
function timedSwap()
{
    toBeShown = currentImage.id;
	if(currentImage.id == totalImages)
	{
		currentImage.id = totalImages;
		toBeShown = 0;
	}

	swapImage(toBeShown, currentImage);
}

/* Manually swap banners */
function clickSwap(e)
{
	stopSwap();

	var dinges;
	if (!e)
	{
	    var e = window.event;
	}

	if (e.target)
	{
	    dinges = e.target;
	}
	else if(e.srcElement)
	{
	   dinges = e.srcElement;
	}

	if (dinges.nodeType == 3) // defeat Safari bug
	{
	    dinges = dinges.parentNode;
	}

	split_id = dinges.id.split('_');
	
	toBeShown = split_id[2] - 1;
	
	swapImage(toBeShown, currentImage);
	return false;
}

/* Swap banner every 5 seconds */
function startSwap()
{
    stopSwap();
    timedSwap();
	myInterval = setInterval('timedSwap()',7000);
}

/* Stop swapping banners */
function stopSwap()
{
	clearInterval(myInterval);
}

/* Switch the control button between Pause and Start */
function switchControl()
{
    if($('showcase_control').hasClassName('showcase_control_pause'))
    {
        $('showcase_control').removeClassName('showcase_control_pause');
        $('showcase_control').addClassName('showcase_control_play');
        stopSwap();
    }
    else
    {
        $('showcase_control').removeClassName('showcase_control_play');
        $('showcase_control').addClassName('showcase_control_pause');
        startSwap();
    }
}

window.onload = swapImagesOnLoad