// JavaScript Document

// banner

var currentBannerID = -1;
var nextBannerID = 0;
var bannerCount = 0;

var radiusX = 300; 
var radiusY = 40; 
var centerX = 320; 
var centerY = 100;
var imageDivs = '';

var logos = '';

function initCarousel()
{
  
	var carousel = $('carousel');
	
	if(carousel == null)
	{
		return;	
	}

	var banners = $('banners').getElements('li');
	imageDivs = carousel.getElementsByTagName("div");
	var carouselElements = carousel.getElements('div');

  	bannerCount = banners.length;
	logos = $('logo').getElementsByTagName("div"); 
	
	var myEffect = new Fx.Morph('bannerImage', {duration: 'normal', transition: Fx.Transitions.Quad.easeInOut});
	
	for(i=0; i < bannerCount; i++)
	{
		$(logos[i]).style.visibility = 'hidden';
		
	}
	
	carouselElements.addEvents({'click': function(){
					
			var index = carouselElements.indexOf($(this));
			nextBannerID = index;
			//if(index < currentBannerID || index - currentBannerID >= carouselElements.length-1 || currentBannerID - index >= carouselElements.length-1)
			//{
				
				myEffect.start({
					'margin-left': [0, -document.body.parentNode.clientWidth]
				});
				
			/*}
			else
			{
				myEffect.start({
					'margin-left': [0, -document.body.parentNode.clientWidth]
				});
				
			}*/
			
			
	 }});

	
	
	$('prevbutton').addEvent('click', function(e){
		e.stop();
		myEffect.start({
			'margin-left': [0, -document.body.parentNode.clientWidth]
		});
		
		
		
		nextBannerID = currentBannerID +1;
		
	});
	 
	$('nextbutton').addEvent('click', function(e){
		e.stop();
		myEffect.start({
			'margin-left': [0,-document.body.parentNode.clientWidth]
		});
		nextBannerID = currentBannerID -1;
	});
	
	myEffect.addEvent('complete', function()
	{
		//swfobject.removeSWF("banner_flash");
		setBanner(nextBannerID,true);
		
	});
	setBanner(Math.floor(Math.random()*bannerCount),false);
	
}


function setBanner(id,anim)
{
	var fixedId = id;
	
	if(id < 0) {fixedId = bannerCount -1}
	if(id > bannerCount -1) {fixedId = 0;}
	
	var banners = $('banners').getElements('li');
	/*var banners_dyn = $('banners_dyn').getElements('li');
	
	var bannerFlash = new Element('div',{id:'banner_flash'});
	bannerFlash.inject($('bannerImage'));
	
	var params = {
				  menu: "false",
				  wmode: "transparent"
				  
				};
	swfobject.embedSWF(banners_dyn[fixedId].firstChild.src, "banner_flash", "100%", "100%", "10.0.0","script/expressinstall.swf",[],params);	*/
	
	$('bannerImage').style.background = "url(" + banners[fixedId].getElements('img')[0].src +") no-repeat top center";
	
	var myEffect = new Fx.Morph('bannerImage', {duration: 'normal', transition: Fx.Transitions.Quad.easeInOut});
	 
	//if(id < currentBannerID || id-currentBannerID == (banners.length-1) || currentBannerID-id == -(banners.length-1))
	//{
		if(anim == true)
		{
			myEffect.start({
				'margin-left': [document.body.parentNode.clientWidth,0]
			});
		}
		else
		{
			$('bannerImage').style.marginLeft = '0px';
		}
	//}
	/*else
	{
		// going left
		myEffect.start({
			'margin-left': [document.body.parentNode.clientWidth,0]
		});
	}*/
	
	
	
	currentBannerID = fixedId;
	
	setPack(currentBannerID);
	setLogo(currentBannerID);
	
	var carouselElements = $('carousel').getElements('div');
	var current = carouselElements[currentBannerID];
	setAccordionContent($(current).getProperty('gameid'));
	// setup request
}

function setAccordionContent(id)
{
	var htmlRequest = new Request({url:"?key=mastiff.displayGameContent&id="+id, 'method':"GET"});
	
	htmlRequest.addEvent('success', function(responseText, responseXML)
   {
	 
		$('accordion').set('html',responseText);
	   
	   initAccordion();
   });
	
	htmlRequest.addEvent('failure', function(xhr)
	 {
		 $('accordion').set('html',contents[id] + "  failure : " + String(xhr) );
	 });
	
	htmlRequest.send({method:'get'});
}


// carousel
function setLogo(id)
{
	var logo = $('logo');

	logo.style.background = "url(" + logos[ id ].getElements('img')[0].src +") no-repeat bottom center";

}



function setPack(id)
{
	
	
	for(i=0; i < bannerCount; i++)
	{
		var el = $(imageDivs[ i ]);
		
		var ef = new Fx.Morph($(imageDivs[ i ]), {duration: 'normal', transition: Fx.Transitions.Quad.easeInOut});
		imageDivsStyle = el.style; 
		imageDivsStyle.position='absolute'; 
		
		var lastPosX = imageDivsStyle.left;
		var lastPosY = imageDivsStyle.top;
		var lastPosZ = imageDivsStyle.zIndex;
		var lastWidth = imageDivsStyle.width;
		
		angle = i * ( Math.PI * 2 ) / bannerCount;
		
		var posX = ( Math.sin( id * ( ( Math.PI * 2 ) / bannerCount) - angle )* radiusX + centerX );
		var posY = ( Math.cos( id * ( ( Math.PI * 2 ) / bannerCount) - angle )* radiusY + centerY );
		var imageDivWidth = (posY*1.2);
		
		posY = centerY + (radiusY -posY) + (posY/10);
		
		var imageDivZIndex = Math.round(imageDivWidth)+100;
		

		ef.start({
			'left': [lastPosX,posX],
			'top': [lastPosY,posY],
			'width': [lastWidth,imageDivWidth],
			'z-index': [lastPosZ,imageDivZIndex]
		});
		
		
	}
	
}

