/**

 Author: David-Alexandre Bourbonnais
 Modification: Mahdi Bentakouk 02-20-2007 
 Last revision: 04-20-2007
 Copyright 2007 Purelink Technology Inc.

 Based on Image Cross Fade Redux Version 1.0 by Slayer Office
 http://slayeroffice.com/code/imageCrossFade/xfade2.html

**/

window.addEventListener ? window.addEventListener( "load", plk_init, false ) : window.attachEvent( "onload", plk_init );

var image,
	imgs = new Array(),
	currentImage, nextImage, currentMouseImage, endImage = 8,
	onMouseOver = false,
	timer, timerRestart, timerOver, timerOff;

function plk_init()
{
	if( !document.getElementById || !document.createElement ) return;

	imgs[0] = plk_createImage("images/default/loop_Purelink.jpg");
	imgs[1] = plk_createImage("images/default/loop_Plane.jpg");
	imgs[2] = plk_createImage( "images/default/loop_Medical.jpg" );
	imgs[3] = plk_createImage( "images/default/loop_Hand.jpg" );
	imgs[4] = plk_createImage( "images/default/loop_Refinery.jpg" );
	imgs[5] = plk_createImage(  "images/default/loop_BFCE.jpg");
	imgs[6] = plk_createImage("images/default/loop_OSforRTLS.jpg");
	imgs[7] = plk_createImage( "images/default/loop_BFReporter.jpg" );
	imgs[8] = plk_createImage(  "images/default/loop_Station.jpg");
	imgs[9] = plk_createImage( "images/default/flashAirportMouseOver.jpg" );
	imgs[10] = plk_createImage( "images/default/flashWarehouseMouseOver.jpg" );
	imgs[11] = plk_createImage( "images/default/flashSeaportMouseOver.jpg" );
	imgs[12] = plk_createImage( "images/default/flashIndustrialMouseOver.jpg" );
	imgs[13] = plk_createImage( "images/default/flashHealthcareMouseOver.jpg" );
    imgs[14] = plk_createImage( "images/default/flashETCMouseOver.jpg" );


	plk_start();
}

function plk_start()
{
	/* Initialize first image */
	currentImage = 0;
	nextImage = 1;
	imgs[currentImage].xOpacity = .99;
	imgs[currentImage].style.display = "block";

	for( i = 0; i < imgs.length; i++ )
	{
		if( i != 0 )
			imgs[i].xOpacity = 0;
		plk_setOpacity( imgs[i] );
	}

	if( timer )
		clearTimeout( timer );
	timer = setTimeout( plk_fade, 9000);
}

function plk_fade()
{
	if( onMouseOver )
		return;

	imgs[currentImage].xOpacity -= .05;
	plk_setOpacity( imgs[currentImage] );

	if( nextImage != -1 )
	{
		imgs[nextImage].xOpacity += .05;
		imgs[nextImage].style.display = "block";
		plk_setOpacity( imgs[nextImage] );
	}

	clearTimeout( timer );
	if( imgs[currentImage].xOpacity <= 0 )
	{
		imgs[currentImage].style.display = "none";
		if( nextImage != -1 )
			currentImage = nextImage;
		nextImage = currentImage + 1 <= endImage ? currentImage + 1 : 0;
		timer = setTimeout( plk_fade, 9000 );
	}
	else
	{
		timer = setTimeout( plk_fade, 50 );
	}
}

function plk_fadeOver()
{
	if( !onMouseOver )
		return;

	if( imgs[currentImage].xOpacity > 0 )
		imgs[currentImage].xOpacity -= .1;
	if( nextImage != -1 && imgs[nextImage].xOpacity > 0 )
		imgs[nextImage].xOpacity -= .1;
	imgs[currentMouseImage].xOpacity += .1;

	plk_setOpacity( imgs[currentImage] );
	plk_setOpacity( imgs[nextImage] );
	plk_setOpacity( imgs[currentMouseImage] );

	clearTimeout( timerOver );
	if( imgs[currentMouseImage].xOpacity < .99 )
		timerOver = setTimeout( plk_fadeOver, 25 );
	else
	{
		nextImage = -1;
//		currentImage = 0;
	}
}

function plk_mouseOver( index )
{
	if( timerRestart )
		clearTimeout( timerRestart );
	if( timerOff )
		clearTimeout( timerOff );
	onMouseOver = true;


	//previousMouseImage = currentMouseImage ? currentMouseImage : 0;
	if( nextImage == -1 )
		nextImage = currentMouseImage;
	else if( currentMouseImage && currentMouseImage != 0 && currentMouseImage != index + 9 )
	{
		var smaller = imgs[currentMouseImage].xOpacity < imgs[nextImage].xOpacity ? currentMouseImage : nextImage;
		smaller = imgs[smaller].xOpacity < imgs[currentImage].xOpacity ? smaller : currentImage;
		imgs[smaller].xOpacity = 0;
		plk_setOpacity( imgs[smaller] );
		imgs[smaller].style.display = "none";

		if( smaller != currentMouseImage )
		{
			if( smaller == nextImage )
				nextImage = currentMouseImage;
			else
				currentImage = currentMouseImage;
		}
	}
	currentMouseImage = index + 9;
	imgs[currentMouseImage].style.display = "block";

	if( timerOver )
		clearTimeout( timerOver );
	timerOver = setTimeout( plk_fadeOver, 25 );
}

function plk_mouseOut()
{
	if( timerOver )
		clearTimeout( timerOver );
	onMouseOver = false;



	/* Image all off */
	/*imgs[currentImage].xOpacity = 0;
	imgs[currentImage].style.display = "none";
	imgs[nextImage].xOpacity = 0;
	imgs[nextImage].style.display = "none";
	if( mouseImage )
	{
		imgs[mouseImage].xOpacity = 0;
		imgs[mouseImage].style.display = "none";
	}*/
	

	//nextImage = nextImage.xOpacity > currentImage.xOpacity ? nextImage : currentImage;
	currentImage = 0;
	imgs[currentImage].style.display = "block";
	imgs[currentImage].xOpacity = 0;
	if( timerOff )
		clearTimeout( timerOff )
	timerOff = setTimeout( plk_fadeOff, 25 );

	/* Main loop */
	/*timerRestart = setTimeout( plk_start, 10 );*/
}

function plk_fadeOff()
{
	if( onMouseOver )
		return;

	if( imgs[currentMouseImage].xOpacity > 0 )
		imgs[currentMouseImage].xOpacity -= .1;
	if( nextImage != -1 && imgs[nextImage].xOpacity > 0 )
		imgs[nextImage].xOpacity -= .1;
	imgs[currentImage].xOpacity += .1;

	plk_setOpacity( imgs[currentMouseImage] );
//	plk_setOpacity( imgs[nextImage] );
	plk_setOpacity( imgs[currentImage] );

	if( imgs[currentImage].xOpacity < .99 )
	{
		clearTimeout( timerOff );
		setTimeout( plk_fadeOff, 25 );
	}
	else
	{
//		alert( "else" );
//		imgs[nextImage].xOpacity = 0;
//		imgs[nextImage].style.display = "none";
//		imgs[currentMouseImage].xOpacity = 0;
		imgs[currentMouseImage].style.display = "none";
		currentMouseImage = 0;

		/* Main loop */
		if( timerRestart )
			clearTimeout( timerRestart );
		timerRestart = setTimeout( plk_start, 10 );
	}
}

function plk_createImage( str )
{
	if( !document.getElementById || !document.createElement ) return;

	obj = document.createElement( "img" );
	obj.setAttribute( "src", str );
	obj.setAttribute( "height", "255" );
	obj.setAttribute( "width", "509" );

	document.getElementById( "image" ).appendChild( obj );

	return obj;
}



function plk_setOpacity( obj )
{
	if( obj.xOpacity > .99 )
	{
		obj.xOpacity = .99;
	}
	obj.style.opacity = obj.xOpacity;
	obj.style.MozOpacity = obj.xOpacity;
	obj.style.filter = "alpha(opacity=" + ( obj.xOpacity * 100 ) + ")";
}
function makevisible(cur,which)
        {
        if(document.getElementById)
                {
                if (which==0)
                        {
                        if(document.all)
                                cur.filters.alpha.opacity=80
                        else
                                cur.style.setProperty("-moz-opacity", 0.8, "");
                        }
                else
                        {
                        if(document.all)
                                cur.filters.alpha.opacity=100
                        else
                                cur.style.setProperty("-moz-opacity", 1, "");
                        }
                }
        }