(function($) {
    $.extend({
        add2cart: function(source, target, callback) {
            var shadow = $('#' + source.id + '_shadow');
            if( !shadow.attr('id') ) {
                $('body').prepend('<div id="'+source.attr('id')+'_shadow" style="display: none; background-color: #ddd; border: solid 1px darkgray; position: static; top: 0px; z-index: 100000;">&nbsp;</div>');
                var shadow = $('#'+source.attr('id')+'_shadow');
            }
            if( !shadow ) {
                alert('Cannot create the shadow div');
            }
            shadow.width(source.css('width')).height(source.css('height')).css('top', source.offset().top).css('left', source.offset().left).css('opacity', 0.5).show();
            shadow.css('position', 'absolute');
            shadow.animate( { width: target.innerWidth(), height: target.innerHeight(), top: target.offset().top, left: target.offset().left }, { duration: 300 } )
            .animate( { opacity: 0 }, { duration: 100, complete: function() {
                shadow.css( 'display', 'none' );
                if( callback != undefined ) {
                    callback();
                }
            } } );
        }
    });
})(jQuery);

function cart_add_callback( data ) {
    if(data!=Dajaxice.EXCEPTION) {
        //alert( data.cartHTML );
        $('#cart').html( data.cartHTML );
        $('#carttab').fadeIn();
        $.add2cart( $('#add-cart'), $('#carttab'), function() {
            $('#carttab .count').animate( { 'height': 'hide' }, 100, function() { $('#carttab .count').text( "" + data.cartCount ) } ).delay( 200 ).animate( { 'height': 'show' }, 100 );
            add_remove_clicks();
        } );
        $('.priceAction').html( data.buttonHTML );
        /*$('#cart').slideUp('fast', function() {
            $('ul#cart-list li.justadded').animate(
                {
                    'background-color': "#ffffff"
                }, 2500
            );
            //$('ul#cart-list li.justadded').css( 'background-color', '#ffffff' );
            $('#cart').slideDown();
            add_remove_clicks();
            $('#add-form').html( "<p><strong>In your downloads cart..</strong></p>" );
        } );*/
    }

}
function cart_remove_callback( data ) {
    if(data!=Dajaxice.EXCEPTION) {
        //alert( data.cartHTML );
        $('#cart').slideUp('fast', function() {
            $('#cart').html( data.cartHTML );
            $('#cart').slideDown();
            add_remove_clicks();
        } );
    }

}

function add_remove_clicks() {
    $('button.remove').click( function() {
        game_pk = this.form.elements[ 'game' ].value;
        if( game_pk ) {
            Dajaxice.get.cart.cart_remove('cart_remove_callback', { 'game_pk' : game_pk  } );
        }
        return false;
    } );
}
$(window).load(function () {
    $('button.add-cart').click( function() {
        game_pk = this.form.elements[ 'game' ].value;
        if( game_pk ) {
            Dajaxice.get.cart.cart_add('cart_add_callback', { 'game_pk' : game_pk  } );
        }
        return false;
    } );
    add_remove_clicks();
    $('#showCart').click( function() {
        $('#cart').slideToggle('fast')
        return false;
    } );
} );




