var prod_box_width = null;
var prod_box_frames = {};
var prod_box_backgrounds = {};
function prod_box_type(width) {
    var boxes = $("div.prod_box").css("display", "none");
    if (prod_box_width !== width) {
        if (prod_box_width !== null) {
            boxes.removeClass("box_" + prod_box_width);
        }
        boxes.addClass("box_" + width);
        prod_box_width = width;
    }
}
function prod_box_cart(event) {
    event.stopPropagation();
    if (!$("div.prod_box a.prod_box_trial_" + event.data.id).hasClass("disabled")) {
        add_to_cart(event.data.id, function(success) {
            if (success) {
                $("div.prod_box a.prod_box_trial_" + event.data.id).text(
                        prodbox_is_in_cart_text).attr("title",
                        prodbox_is_in_cart_hint_text).addClass("disabled");
            }
        });
    }
}
function prod_box_cart_verify(event) {
    event.stopPropagation();
    $("#" + event.data.id_prefix + "_prod_box_add_to_cart_" + event.data.id).submit();
}
function prod_box_links(box, fp_id, name, available_trial, available_buy, in_cart, verifymode, id_prefix) {
    var text = prodbox_trial_text;
    var title = null;
    var disabled = false;
    var click = null;
    var click_data = null;
    var a = $("a.prodbox_trial_link", box);
    if (available_trial) {
        if (in_cart) {
            text = prodbox_is_in_cart_text;
            title = prodbox_is_in_cart_hint_text;
            disabled = true;
        }
        else {
            title = prodbox_is_available_hint_text;
            if (verifymode) {
                click = prod_box_cart_verify;
                click_data = {id:fp_id, id_prefix:id_prefix};
            }
            else {
                click = prod_box_cart;
                click_data = {id:fp_id};
            }
        }
    }
    else {
        title = prodbox_is_out_hint_text[0] + name + prodbox_is_out_hint_text[1];
        disabled = true;
    }
    a.removeClass().addClass("prodbox_trial_link").addClass("prod_box_trial_" + fp_id);
    a.text(text).attr("title", title).toggleClass("disabled", disabled);
    a.unbind("click", prod_box_cart);
    a.unbind("click", prod_box_cart_verify);
    if (click) {
        a.bind("click", click_data, click);
    }
    
    a = $("a.prodbox_buy_link", box);
    text = prodbox_buy_text;
    title = prodbox_can_order_hint_text;
    var link = "/frames/" + fp_id + "/";
    disabled = false;
    if (!available_buy) {       
        title = prodbox_can_not_order_hint_text;        
        link = "javascript:void(0);";       
        disabled = true;        
    }
    a.text(text).attr("title", title).toggleClass("disabled", disabled).attr("href", link);

    a = $("a.prodbox_info_link", box);
    text = prodbox_info_text;
    var link = "/frames/" + fp_id + "/";
    a.text(text).attr("href", link);
}
function prod_box_set(prod_box_id, fp_id, width, img_group) {
    var box = $("#prod_box_" + prod_box_id);
    var fp = prod_box_frames[fp_id];
    box.unbind("click");
    box.bind("click", function() {window.location=fp["url"]});
    
    $("div.price", box).text(fp["price"]);
    $("div.price_text_under_frames", box).text(price_text_under);
    
    prod_box_links(box, fp_id, fp["name"], fp["available_trial"], fp["available_buy"], fp["in_cart"], false, null);
    
    $("a.fname", box).attr("href", fp["url"]).text(fp["name"]); 
    
    if (!img_group) {
        img_group = Math.round(Math.random()) ? "f" : "m";
    }
    background = prod_box_backgrounds[width + img_group];
    if (background && background[fp_id]) {
        box.css("background-image", "url(" + background[fp_id] + ")")
    } else {
        if (img_group == "f") {img_group = "m"; }
        else  {img_group = "f";}
        background = prod_box_backgrounds[width + img_group];
        if (background && background[fp_id]) {
            box.css("background-image", "url(" + background[fp_id] + ")")
        }
        else {
            box.css("background-image", "url(/static/model_missing.jpg)");
        }
    }
    
    box.css("display", "block");
}

