var last_preview = 0;

function show_preview(id)
{
 var container = $("preview_container" + id), preview = $("preview" + id), image = $("image" + id), time = 250, zoom = 2.5, size = get_size(image);
 if (last_preview) hide_preview(last_preview);
 if (container.style.display == "none" && get_opacity(container) == 1)
 {
  set_opacity(container, 0);
  set_size(preview, size.width, size.height);
 }
 container.style.display = "";
 var width = Math.round(size.width * zoom), height = Math.round(size.height * zoom);
 fade_opacity(container, 1, time);
 fade_size(preview, width, height, time);
 last_preview = id;
}

function hide_preview(id)
{
 var container = $("preview_container" + id), preview = $("preview" + id), image = $("image" + id), time = 500, size = get_size(image);
 fade_opacity(container, 0, time, function() { container.style.display = "none"; });
 fade_size(preview, size.width, size.height, time);
 last_preview = 0;
}

function load_product(item)
{
 load_json("data.php?mode=products&item=" + item, "", function(jso) {
  if (typeof jso == "object")
  {
   $("product_photo").name = jso.photo.image;
   $("product_photo").src = "preview.php?canvas=files/images/bg.jpg&image=media/photos/" + jso.photo.image + "&overlay=files/images/frame.png&padding=5";
   for (var i = 0; i < 3; i++)
    if (i < jso.products.length)
    {
     show($("product" + (i + 1)));
     show($("product" + (i + 1) + "x"));
     $("product_name" + (i + 1)).innerHTML = jso.products[i].name;
     $("product_info" + (i + 1)).innerHTML = jso.products[i].description;
     //show($("product_info_link" + (i + 1)));
     $("product_info_link" + (i + 1)).name = jso.products[i].index;
     //show($("buy_product_link" + (i + 1)));
     $("buy_product_link" + (i + 1)).name = jso.products[i].index;
    }
    else
    {
     hide($("product" + (i + 1)));
     hide($("product" + (i + 1) + "x"));
     $("product_name" + (i + 1)).innerHTML = "---";
     $("product_info" + (i + 1)).innerHTML = "";
     //hide($("product_info_link" + (i + 1)));
     $("product_info_link" + (i + 1)).name = "";
     //hide($("buy_product_link" + (i + 1)));
     $("buy_product_link" + (i + 1)).name = "";
    }
  }
 });
 hide_product_info_panel();
}

function show_product_photo(image)
{
 if (image)
 {
  $("large_photo").src = "preview.php?canvas=files/images/bg600.jpg&image=media/photos/" + image + "&overlay=files/images/frame.png&padding=5";
  show($("main_overlay"));
  fade_opacity($("main_overlay"), 1, 333);
 }
}

function hide_product_photo()
{
 fade_opacity($("main_overlay"), 0, 333, function() { hide($("main_overlay")); });
}

function show_product_info(item)
{
 show($("overlay"));
 fade_opacity($("overlay"), 1, 333);
 load_url("data.php?mode=productinfo&item=" + item, "", $("overlay_contents"));
}

function show_buy_form(item)
{
 show($("overlay"));
 fade_opacity($("overlay"), 1, 333);
 load_url("data.php?mode=buyform&item=" + item, "", $("overlay_contents"));
}

function hide_product_info_panel()
{
 fade_opacity($("overlay"), 0, 333, function() { hide($("overlay")); });
}

function update_colors_select(form)
{
 if (form.elements.model.value)
 {
  var callback = (arguments.length > 1 && typeof arguments[1] == "function") ? arguments[1] : null;
  load_select_options("data.php?mode=colors&model=" + form.elements.model.value, "", form.elements.color, callback);
 }
 else remove_select_options(form.elements.color);
}

function update_sizes_select(form)
{
 if (form.elements.model.value)
 {
  var callback = (arguments.length > 1 && typeof arguments[1] == "function") ? arguments[1] : null;
  load_select_options("data.php?mode=sizes&model=" + form.elements.model.value, "", form.elements.size, callback);
 }
 else remove_select_options(form.elements.size);
}

function update_growths_select(form)
{
 if (form.elements.model.value && form.elements.size.value)
 {
  var callback = (arguments.length > 1 && typeof arguments[1] == "function") ? arguments[1] : null;
  load_select_options("data.php?mode=growths&model=" + form.elements.model.value + "&size=" + form.elements.size.value, "", form.elements.growth, callback);
 }
 else remove_select_options(form.elements.growth);
}

function update_price(form)
{
 if (form.elements.model.value)
 {
  var callback = (arguments.length > 1 && typeof arguments[1] == "function") ? arguments[1] : null;
  load_json("data.php?mode=price&model=" + form.elements.model.value, "", function(jso) { form.elements.price.value = jso; }, callback);
 } else form.elements.price.value = "";
}

function buy_product(form)
{
 var fields = get_fields(form);
 if (fields.product && fields.model && fields.color && fields.size && fields.growth && fields.quantity)
  load_url("cart.php?action=add&product=" + fields.product + "&model=" + fields.model + "&color=" + fields.color +
   "&size=" + fields.size + "&growth=" + fields.growth + "&quantity=" + fields.quantity + "&show=totals", "", $("overlay_contents"));
 else alert("Заполните все поля");
}

function format_price(x)
{
 x = x.toString().split(".");
 if (x.length < 2) x[1] = "00"; else
 if (x[1].length < 2) x[1] += "0";
 return x.join(".");
}

function update_quantity(item)
{
 var price = parseFloat($("cart_price_" + item).innerHTML), quantity = parseInt($("cart_quantity_" + item).value);
 load_url("cart.php?action=update&item=" + item + "&quantity=" + quantity + "&show=totals", "", $("cart_totals"), function (request) {
  if (!isNaN(price) && !isNaN(quantity) && (quantity > 0))
   $("cart_total_" + item).innerHTML = format_price(Math.round(price * quantity * 100) / 100) + "&nbsp;грн";
  else
  {
   $("cart_quantity_" + item).value = 1;
   if (!isNaN(price)) $("cart_total_" + item).innerHTML = format_price(price) + "&nbsp;грн";
  }
 });
}

function delete_table_row(element)
{
 element.parentNode.parentNode.tBodies[0].deleteRow(element.parentNode.parentNode.sectionRowIndex);
}

function remove_from_cart(item)
{
 load_url("cart.php?action=delete&item=" + item + "&show=totals", "", $("cart_totals"), function(request) { var element = $("cart_item_" + item); element.parentNode.removeChild(element); });
}

function buy(form)
{
 load_url("cart.php?action=buy", serialize_form(form), $("cart_container"));
}

function sound(value)
{
 load_url("sound.php?sound=" + value, "", null);
}