var contentPage = "";
var slideIndex = -1;
var games = [ "gs2", "gs", "hex", "bee", "wordii", "52" ]; 
var numGames = games.length;
var pendingGame = "";
var whichPageIsVisible = "a";
var phoneSlideImageIndexA = 1;
var phoneSlideImageIndexB = 1;
var startCycleSlideBIntervalId = -1;

function Initialize()
{
    PreloadImages( "promo_image_gs2.png" );
    
    // setInterval( ChangeToNextSlide, 6000 );
    var game = GetUrlKeyValue( "game" );
    contentPage = game;
    if ( game == "" )
    {
        game = "gs2";
    }
    SetContent( game );
    setInterval( CycleSlideA, 5000 );
    startCycleSlideBIntervalId = setInterval( StartCycleSlideB, 2500 );
}

function Initialize2()
{
    // setInterval( ChangeToNextSlide, 6000 );
    var game = GetUrlKeyValue( "game" );
    contentPage = game;
    if ( game == "" )
    {
        game = "gs";
    }
    HandleClick( "gs" )
    // SetContent( game );
}

function InitializeHints()
{
    $( ".HintReveal" ).disableSelection();
    $( ".HintReveal" ).click( HandleHintRevealClicked );
}

function HandleHintRevealClicked( e )
{
    var element = $( this ).parent().find( ".HintContent" );
    if ( $( element ).css( "display" ) == "none" )
    {
        $( element ).css( "display", "block" )
    }
    else
    {
        $( element ).css( "display", "none" )
    }
}

function GetUrlKeyValue( key )
{
    var pairs = window.location.href.slice( window.location.href.indexOf( '?' ) + 1 ).split( '&' );
    for( var i = 0 ; i < pairs.length ; i++ )
    {
        var pair = pairs[ i ].split( '=' );
        if ( pair[ 0 ] == key )
        {
            return pair[ 1 ];
        }
    }
    
    return "";
}

function PreloadImages()
{
	var a = PreloadImages.arguments;
	
	if ( !document._savedImages )
	{
		document._savedImages = new Array();
	}
	
	if ( !document.images )
	{
		return;
	}
	
	for ( var i = 0 ; i < a.length ; i++ )
	{
		document._savedImages.push( new Image() );
		document._savedImages[ document._savedImages.length - 1 ].src = "images/" + a[ i ];
	}
}

function StartCycleSlideB()
{
    clearInterval( startCycleSlideBIntervalId );
    setInterval( CycleSlideB, 5000 );
}

function CycleSlideA()
{
    phoneSlideImageIndexA = ( phoneSlideImageIndexA + 1 ) % 6;
    if ( phoneSlideImageIndexA == 0 )
    {
        phoneSlideImageIndexA = 1;
    }
	$( "#phone_slide_image_a_id" )[ 0 ].src = "images/gs2_iphone_ar_" + phoneSlideImageIndexA.toString() + ".png";
}

function CycleSlideB()
{
    phoneSlideImageIndexB = ( phoneSlideImageIndexB + 1 ) % 6;
    if ( phoneSlideImageIndexB == 0 )
    {
        phoneSlideImageIndexB = 1;
    }
	$( "#phone_slide_image_b_id" )[ 0 ].src = "images/gs2_iphone_br_" + phoneSlideImageIndexB.toString() + ".png";
}

function HandleClick( game )
{
    SetContent( game )
    
    var index = 0;
    for ( ; index < numGames ; index++ )
    {
        if ( games[ index ] == game )
        {
            break;
        }
    }
    
    /*
    pendingGame = game;
    
    contentPage = ""
    // ChangeToGameSlide( game, 750 );
    // setInterval( ChangeToPendingGame, 750 );
    ChangeToGameSlide( game, 0 );
    // setInterval( ChangeToPendingGame, 0 );
    */
    
    if ( index != 0 )
    {
        // show the correct ring
        for ( var i = 0 ; i < numGames ; i++ )
        {
            $( "#ring_" + games[ i ] + "_id" ).css( "display", "none" );
        }
        $( "#ring_" + games[ index ] + "_id" ).css( "display", "block" );
    }

}

function SetContent( game )
{
    var index = 0;
    for ( ; index < numGames ; index++ )
    {
        if ( games[ index ] == game )
        {
            break;
        }
    }
    
    if ( game == "gs2" )
    {
        ChangeToGameSlide( game, 0 );
    }
    
    // show content area
    for ( var i = 0 ; i < numGames ; i++ )
    {
        $( "#content_block_" + games[ i ] + "_id" ).css( "display", "none" );
    }
    $( "#content_block_general_id" ).css( "display", "none" );
    if  ( game == "" )
    {
        $( "#content_block_general_id" ).css( "display", "block" );
    }
    else
    {
        $( "#content_block_" + game + "_id" ).css( "display", "block" );
    }
}

function ChangeToGameSlide( game, delay )
{
    var index = 0;
    for ( ; index < numGames ; index++ )
    {
        if ( games[ index ] == game )
        {
            break;
        }
    }
    
    ChangeSlide( slideIndex, index, delay );
}

function ChangeToNextSlide()
{
    if ( contentPage != "" )
    {
        return;
    }
    
    ChangeSlide( slideIndex, ( slideIndex + 1 ) % numGames, 750 );
}

function ChangeSlide( fromIndex, toIndex, delay )
{
    if ( whichPageIsVisible == "a" )
    {
        // start from image fading out
	    $( "#slide_image_a_id" ).fadeTo( delay, 0 );
	
	    // start to image fading in
	    $( "#slide_image_b_id" )[ 0 ].src = "images/promo_image_" + games[ toIndex ] + ".png";
	    $( "#slide_image_b_id" ).fadeTo( delay, 1 );
        
        whichPageIsVisible = "b"
    }
    else
    {
        // start from image fading out
	    $( "#slide_image_b_id" ).fadeTo( delay, 0 );
	
	    // start to image fading in
	    $( "#slide_image_a_id" )[ 0 ].src = "images/promo_image_" + games[ toIndex ] + ".png";
	    $( "#slide_image_a_id" ).fadeTo( delay, 1 );
        
        whichPageIsVisible = "a"
    }
	
    slideIndex = toIndex;
    
    if ( toIndex == 0 )
    {
        $( "#slide_image_a_id" ).css( "visibility", "visible" );
        $( "#slide_image_b_id" ).css( "visibility", "visible" );
        $( "#promo_block_id" ).css( "height", "330" );
    }
    else
    {
        $( "#slide_image_a_id" ).css( "visibility", "hidden" );
        $( "#slide_image_b_id" ).css( "visibility", "hidden" );
        $( "#promo_block_id" ).css( "height", "0" );
    }
}

function ChangeToPendingGame()
{
    window.location = "index.html?game=" + pendingGame;
}

$.fn.extend( {
    disableSelection:
        function()
        { 
            this.each(
                function()
                { 
                    if ( typeof this.onselectstart != 'undefined' )
                    {
                        this.onselectstart = function() { return false; };
                    }
                    else if ( typeof this.style.MozUserSelect != 'undefined' )
                    {
                        this.style.MozUserSelect = 'none';
                    }
                    else
                    {
                        this.onmousedown = function() { return false; };
                    }
                }
            );
        }
} );

