var cart = {};
var countdown;

function collect_and_activate(cn) {
    var targets = document.getElementsByClassName(cn);
    var url = 'http://www.20x200.com/cgi-bin/move/plugins/Mistletoe/mt-buyit.cgi'
    var stock_requests = [];

    $A(targets).each(function(i) {
        var stock_id = i.id.sub('stock_', '');
        var entry_data = stock_id.split('_');
        var entry_obj = {
            'entry_id': entry_data[0],
            'size': entry_data[1]
        };
        stock_requests.push(entry_obj);
    });

    var stock_params = {
        '__mode': 'number_remaining_list',
        'entry_list': stock_requests.toJSON()
    };
    new Ajax.Request(url,
    {
        parameters: stock_params,
        onSuccess: function(r, j) {
            j.each(function(e) {
                var i = $('stock_' + e.key);
                var b = $('buy_' + e.key);
                var num_rem = e.remain;
                if (num_rem > 1) {
                    i.innerHTML = num_rem + ' remaining';
                    if (b) {
                        b.show();
                    }
                }
                else if (num_rem == 1) {
                    i.innerHTML = 'Only 1 remains!';
                    if (b) {
                        b.show();
                    }
                }
                else {
                    i.innerHTML = 'SOLD OUT';
                    if (b) {
                        b.hide();
                    }
                }
            });

        }
    });

    check_for_cart();
}

function add_to_cart(i, s) {
    var cart_params = {
        entry_id: i,
        size: s,
        '__mode': 'add_to_cart'
    };
    new Ajax.Request('http://www.20x200.com/cgi-bin/move/plugins/Mistletoe/mt-buyit.cgi',
    {
        parameters: cart_params,
        onSuccess: function(r, j) {
            if (r.responseText == 'added') {
                document.location.href = 'http://www.20x200.com/cart';
            }
            else {
                $('buy_cart_' + i + '_' + s).innerHTML = r.responseText;
                return false;
            }
        }
    }
    );
}

function cart_countdown(carea, cwrap) {
    var time_now = cart.timeout_seconds;
    var time_period = 'minutes';

    if (time_now < 61) {
        time_period = (time_now == 1) ? 'second': 'seconds';
        if (time_now < 1) {
            cart.timeout_seconds = 0;
            $(cwrap).innerHTML = 'Your cart has expired.';
            clearTimeout(countdown);
            return;
        }
        else {
            $(carea).innerHTML = cart.timeout_seconds + ' ' + time_period;
            cart.timeout_seconds = time_now - 1;
            countdown = setTimeout("cart_countdown('" + carea + "')", 1000);
            return;
        }
    }
    else {
        var next_count;
        var min = (time_now / 60).ceil();
        var secs_to_next_min = time_now % 60;
        if (secs_to_next_min > 0) {
            cart.timeout_seconds -= secs_to_next_min;
            next_count = secs_to_next_min * 1000;
        }
        else {
            cart.timeout_seconds -= 60;
            next_count = 60000;
        }

        $(carea).innerHTML = min + ' ' + time_period;
        countdown = setTimeout("cart_countdown('" + carea + "')", next_count);
        return;
    }
}

function check_for_cart() {
    var r = new Ajax.Request('http://www.20x200.com/cgi-bin/move/plugins/Mistletoe/mt-buyit.cgi',
    {
        parameters: '__mode=cart_data',
        onSuccess: function(r) {
            cart = r.responseText.evalJSON();
            if (cart.items) {
                var cart_timeout = '';
                if (cart.timeout_seconds < 60) {
                    cart_timeout = cart.timeout_seconds + ' seconds';
                }
                else {
                    cart_timeout = (cart.timeout_seconds / 60).ceil() + ' minutes';
                }

                var print_lang = cart.items.length + ' print';
                if (cart.items.length != 1) {
                    print_lang += 's';
                }

                $('cart-number-items').innerHTML = print_lang;
                $('cart-time').innerHTML = cart_timeout;
                $('ihaveacart').show();
                cart_countdown('cart-time', 'ihaveacart');
            }
        }
    });
}

function show_info(cb, did) {
    if ($(cb).checked == true) {
        $(did).show();
    }
    else {
        $(did).hide();
    }
    return false;
}
