var optionprices = [];

$(document).ready(function(){
    $('.simplecolourid select')
        .change(copyoverleftcolour)
        .click(copyoverleftcolour)
        .each(copyoverleftcolour);
    $('.simple-quantity')
        .change(copyoverleftqty);
    $('.buy-row').each(function(){
        var row = $(this);
        var colourid = row.find('.colourid select');
        var markeroptionid = row.find('.markeroptionid select').disable();
        var realboxid = row.find('.realboxid select').disable();
        var qty = row.find('.advanced-quantity').disable();
        var price = row.find('.price');
        var submit = row.find('.submit');
        var optionid = row.find('input[name=colourid]');
        submit.disable();

        colourid.val('');
        markeroptionid.val('').disable().find('option').hide();
        realboxid.val('').disable().find('option').hide();

        // Colour changing actions
        colourid.change(function(){
            var opts = colourid.val().split(/:/);
            markeroptionid.val('').disable().find('option').hide();
            realboxid.val('').disable().find('option').hide();
            price.html('choose options');
            submit.disable();
            if (colourid.val() == '') return;
            markeroptionid.find('option').each(function(){
                var markeropt = $(this);
                var opts_ = markeropt.val().split(/:/);
                $.each(opts_,function(){
                    var opt = this;
                    $.each(opts,function(){
                        if (1*this == 1*opt) {
                            markeropt.show();
                            markeroptionid.enable();
                        }
                    });
                });
            });
        });

        // Marker changing actions
        markeroptionid.change(function(){
            var opts = markeroptionid.val().split(/:/);
            realboxid.val('').disable().find('option').hide();
            price.html('choose options');
            submit.disable();
            if (colourid.val() == '') return;
            realboxid.find('option').each(function(){
                var realbox = $(this);
                var opts_ = realbox.val().split(/:/);
                var opts__ = colourid.val().split(/:/);
                $.each(opts_,function(){
                    var opt = this;
                    $.each(opts__,function(){
                        var opt_ = this;
                        $.each(opts,function(){
                            if ((1*this == 1*opt) && (1*opt_ == 1*this)) {
                                realbox.show();
                                realboxid.enable();
                            }
                        });
                    });
                });
            });
        });

        // Realbox changing actions
        realboxid.change(function(){
            var cs = colourid.val().split(/:/),
            os = markeroptionid.val().split(/:/),
            rs = realboxid.val().split(/:/);
            for (var c in cs) {
                for (var o in os) {
                    for (var r in rs) {
                        if (cs[c] == os[o] && rs[r] == os[o]) {
                            for (var p in optionprices)
                                if (optionprices[p].option == cs[c]) {
                                    var id = cs[c];
                                    price.html('&pound;' + optionprices[p].price);
                                    optionid.val(id);
                                    submit.enable();
                                    return;
                                }
                        }
                    }
                }
            }
        });
    });
});

$.fn.disable = function() { return $(this).attr('disabled','disabled').addClass('disabled').fadeTo('slow',0.5); };
$.fn.enable = function() { return $(this).fadeTo('fast',1).removeAttr('disabled').removeClass('disabled'); };

function copyoverleftcolour() {
    $(this).parent().next().next().find('input[name=colourid]').val($(this).val());
}

function copyoverleftqty() {
    $(this).parent().next().find('input[name=quantity]').val(Math.max(1,$(this).val()));
}

