/*
 * Park Place - 09/17/2010
 * 
 * Used by /default.aspx
 * Requires common.js
 */


var MCPPParkPlaceSlides = [];
var MCPPParkPlaceIndex = 0;
var MCPPParkPlaceAutoSwitch = true;
var MCPPParkPlaceIsFading = false;
var MCPPParkPlaceContinueNext = false;
var MCPPParkPlaceContinuePrev = false;


function MCPPParkPlaceInit(id)
{
	var parkPlace = document.getElementById(id);
	
	parkPlace.onmouseover = function(event)
	{
		MCPPParkPlaceAutoSwitch = false;
	}
	
	parkPlace.onmouseout = function(event)
	{
		MCPPParkPlaceAutoSwitch = true;
	}
	
	var enumerator = [];
	var i = 0;
	var index = 0;
	
	enumerator = parkPlace.getElementsByTagName('a');
	
	for (i = 0; i < enumerator.length; ++i)
	{
		var item = enumerator[i];
		
		if (item.className == 'item')
		{
			var image = item.getElementsByTagName('img')[0];
			
			if (image)
			{
				item.image = image;
				item.index = index;
				
				/* HOVER */
				item.onmouseover = function(event)
				/* /HOVER */
				/* CLICK
				item.onclick = function(event)
				/* /CLICK */
				{
					MCPPParkPlaceSwitch(this);
					
					return false;
				}
				
				MCPPParkPlaceSlides[index] = item;
				
				++index;
			}
		}
	}
	
	MCPPParkPlaceSwitch(MCPPParkPlaceSlides[MCPPParkPlaceIndex]);
	if (MCPPParkPlaceAutoSwitch)
		window.setInterval('MCPPParkPlaceNext(false)', 6000);
	
	parkPlace.className = "bogus";
}

function MCPPParkPlaceNext(notAuto)
{
	if (MCPPParkPlaceAutoSwitch || notAuto)
	{
		var rotatePrevIndex = MCPPParkPlaceIndex;
		var rotateNextIndex = (MCPPParkPlaceIndex + 1) % MCPPParkPlaceSlides.length;
		
		if (MCPPParkPlaceIsFading)
		{
			MCPPParkPlaceContinueNext = true;
			MCPPParkPlaceContinuePrev = false;
		}
		else
		{
			MCPPParkPlaceIndex = rotateNextIndex;
			MCPPParkPlaceFade(MCPPParkPlaceIndex, rotatePrevIndex, 0.0, false);
		}
	}
}

function MCPPParkPlacePrevious(notAuto)
{
	if (MCPPParkPlaceAutoSwitch || notAuto)
	{
		var rotatePrevIndex = MCPPParkPlaceIndex;
		var rotateNextIndex = (MCPPParkPlaceIndex <= 0 ? MCPPParkPlaceSlides.length : MCPPParkPlaceIndex) - 1;
		
		if (MCPPParkPlaceIsFading)
		{
			MCPPParkPlaceContinueNext = false;
			MCPPParkPlaceContinuePrev = true;
		}
		else
		{
			MCPPParkPlaceIndex = rotateNextIndex;
			MCPPParkPlaceFade(MCPPParkPlaceIndex, rotatePrevIndex, 0.0, true);
		}
	}
}

function MCPPParkPlaceSwitch(slide)
{
	for (var i = 0; i < MCPPParkPlaceSlides.length; ++i)
	{
		/* FADE
		MCPPSetOpacity(MCPPParkPlaceSlides[i].image, 0.0);
		/* /FADE */
		/* SLIDE */
		MCPPParkPlaceSlides[i].image.style.display = 'none';
		MCPPRemoveStyle(MCPPParkPlaceSlides[i], 'left');
		/* /SLIDE */
		MCPPRemoveStyle(MCPPParkPlaceSlides[i], 'backgroundColor');
		MCPPRemoveStyle(MCPPParkPlaceSlides[i], 'background-color');
		MCPPParkPlaceSlides[i].className = "";
	}
	
	/* FADE
	MCPPSetOpacity(slide.image, 1.0);
	/* /FADE */
	/* SLIDE */
	MCPPRemoveStyle(slide.image, 'display');
	MCPPRemoveStyle(slide.image, 'left');
	/* /SLIDE */
	slide.className = "selected";
	
	MCPPParkPlaceIndex = slide.index;
	
	MCPPParkPlaceIsFading = false;
}

function MCPPParkPlaceFade(index, prevIndex, opacity, reverse)
{
	if (MCPPParkPlaceIndex != index)
		return;
	
	MCPPParkPlaceIsFading = true;
	
	if (opacity < 1.0)
	{
		setTimeout("MCPPParkPlaceFade(" + index + ", " + prevIndex + ", " + (opacity + 0.05) + ", " + reverse + ")", 50);
	}
	else
	{
		MCPPParkPlaceSwitch(MCPPParkPlaceSlides[index]);
		
		if (MCPPParkPlaceContinueNext)
			MCPPParkPlaceNext(true);
		else if (MCPPParkPlaceContinuePrev)
			MCPPParkPlacePrevious(true);
		
		MCPPParkPlaceContinueNext = false;
		MCPPParkPlaceContinuePrev = false;
		
		return;
	}

	var slide = MCPPParkPlaceSlides[index];
	var prevSlide = MCPPParkPlaceSlides[prevIndex];
	
	/* FADE
	MCPPSetOpacity(slide.image, opacity);
	MCPPSetOpacity(prevSlide.image, 1.0 - opacity);
	/* /FADE */
	/* SLIDE */
	if (reverse)
	{
		slide.image.style.left = ((1.0 - opacity) * -400) + 'px';
		prevSlide.image.style.left = (opacity * 400) + 'px';
	}
	else
	{
		slide.image.style.left = ((1.0 - opacity) * 400) + 'px';
		prevSlide.image.style.left = (opacity * -400) + 'px';
	}
	MCPPRemoveStyle(slide.image, 'display');
	MCPPRemoveStyle(prevSlide.image, 'display');
	/* /SLIDE */
	
	slide.style.backgroundColor = MCPPParkPlaceColorWithOpacity(opacity);
	prevSlide.style.backgroundColor = MCPPParkPlaceColorWithOpacity(1.0 - opacity);
}

function MCPPParkPlaceColorWithOpacity(opacity)
{
	var UNSELECTED_COLOR = [0xCC, 0xCC, 0xCC];
	var SELECTED_COLOR = [0x00, 0x33, 0x99];
	
	var diff = [UNSELECTED_COLOR[0] - SELECTED_COLOR[0],
	            UNSELECTED_COLOR[1] - SELECTED_COLOR[1],
	            UNSELECTED_COLOR[2] - SELECTED_COLOR[2]];
	
	var color = [Math.round(UNSELECTED_COLOR[0] - (diff[0] * opacity)),
	             Math.round(UNSELECTED_COLOR[1] - (diff[1] * opacity)),
	             Math.round(UNSELECTED_COLOR[2] - (diff[2] * opacity))];
	
	return 'rgb(' + color[0] + ', ' + color[1] + ', ' + color[2] + ')';
}

