var options = {
  target: "#multi_content",
  beforeSubmit: showRequest, // функция, вызываемая перед передачей
  success: showResponse, // функция, вызываемая при получении ответа
  timeout: 3000 // тайм-аут
};

var tmp_val = 1;
var bascount = '';
var basket_left = 0;
var basket_top = 0;
var show_wind = '';
var fly = '';
var order_block = '';
var is_check = false;

function init_basket() {
  fly = $('#fly');
  order_block = $("#order_block");
  bascount = $("#right_menu");
  show_wind = $("#show_window");
  show_calc = $("#show_calc");
  putItemToBasket(0, 0);
  basket_left = $(window).width() - 30;
  basket_top = fly.offset().top;
  order_block.css({ left:basket_left , top:  basket_top});
  fnSiteCounts();  
  set_top();
}

function set_top() {
  var doc = $(document);
  if (doc.scrollTop() > basket_top) {
    jqSlideTo('order_block', basket_left, doc.scrollTop(), 500);
    if ($('#basket_content').css('display') == 'block') {
      jqSlideTo('basket_content', basket_left , doc.scrollTop(), 500);
      jqSlideTo('show_window', show_wind.offset().left, doc.scrollTop(), 500);
    }
  } else { 
    jqSlideTo('order_block',basket_left, basket_top, 500); 
    if ($('#basket_content').css('display') == 'block') {
      jqSlideTo('basket_content', basket_left , basket_top, 500);
      jqSlideTo('show_window', show_wind.offset().left, basket_top, 500);
    }
  }
}  

/* Фильтры */              
function fnSetFilter(name, val, obj, reload) {
  $("a", $(obj).parent()).removeClass('sel');
  $.ajax({
    type: "POST",
    url: 'ajax/filter-'+name+'-'+val+'.ajax',
    cache:false,
    success: function(page) {
      $(obj).addClass('sel');
      if (reload) {
        document.location.href = document.location.href;
      }
    }
  }); 
}

/* Ajax заказ */   

function putItemToBasket(item_id, count_obj, fly_id) {
  if (count_obj) {
    var item_count = $("#"+ count_obj +"").val();
    var url = '/ajax/get_item-'+item_id+'-'+item_count+'.ajax';
  } else {
    var url = '/ajax/get_item-'+item_id+'.ajax';
  }
  $.ajax({
    type: "POST",
    url: url,
    cache:false,
    success: function(page) {
      if (fly_id) {
        item_id = fly_id; 
      }
      if (item_id) {
        var env = $("#envelop_"+item_id);
        if (env.length > 0) {
          var postop =  env.offset().top;
          var posleft =  env.offset().left;
          var fly = $("#hidden-fly");
          fly.css("top",postop+"px");
          fly.css("left",posleft + 12 +"px");
          //env.css("display","none");
          fly.css("display","block");         
          fly.animate({ left: bascount.offset().left + 5, top: bascount.offset().top + 5, opacity: 1 }, 600, function() {
            $("#right_menu").html(page);
            //env.css("display","block");
            fly.css("display","none");
          });
        }
      } else {
        $("#right_menu").html(page);
        //fnInitCompare();
      }
    }
  });
}

function basket_show() { 
  if ($("#site_wrap").length == 0) {
   fnCreateOverlay();
  }
  var wind_basket = show_wind;
  var basket_content = $('#basket_content');
  var order_sets = $('#order_sets');  
  var basket_ico = $('#basket');  
  basket_left = $(window).width() - 29; 
  if (order_block.hasClass('open')) { //убрать       
    order_block.width(674); 
    wind_basket.css({left: -950});
    basket_content.removeClass('no_bg');               
    order_sets.animate({ marginLeft: "645px" }, 1000, function(){
      order_sets.css({ marginLeft: 0 });
      order_block.css({ width: "29px", left: basket_left });
      basket_ico.height(162);
      order_block.removeClass('open');
      fnHideOverlay("dark");
      $(document).unbind("keydown");
      set_top(); 
    });    
    $(window).scroll(function() { set_top(); })
  } else { //показать     
    $(document).keydown(function(event) {
     if (event.keyCode == 27) {
       basket_show();
     } 
    });  
    $(window).unbind('scroll');
    basket_ico.height(175);
    var divdescr = 'multi_content';
    var ajax_url = '/ajax/basket.ajax';
      $.ajax({
        type: "POST",
        url: ajax_url,
        cache:false,
        success: function(page) {               
          $("#"+divdescr+"").empty().html(page);
          fnAfterLoad();
          fnShowOverlay("dark");
          if (wind_basket.height()) {            
            basket_left = basket_left - 645;
            order_block.css({ left: basket_left, width: "674px", height: ""+wind_basket.height()+"px" });
            order_sets.css({ marginLeft: "645px" });
            basket_content.css({ width: "645px", height: ""+wind_basket.height()+"px", opacity:"0.2" });
            order_sets.animate({ marginLeft: 0 }, 800, function() {              
              basket_content.addClass('no_bg');
              wind_basket.css({left: basket_left + 22, top: order_block.offset().top });
              order_block.width(29);
            });
          }
          order_block.addClass('open');
        }
      }); 
    $(window).scroll(function() { set_top(); })   
  }                  
  return false;      
}

function fnAfterLoad() {
  if (!$.browser.msie) {
    //$("#tabs a").corner("tl tr 8px");
    //$("#tab_content").corner("tr bl br 8px");
  }     

  //$(".count_cont").mouseover(function(){ $(this).addClass('sell_cont');  }); 
  //$(".count_cont").mouseout(function(){ $(this).removeClass('sell_cont'); });
  //$("#multi_control div").mouseover(function(){  $("#multi_control div").removeClass('sell'); $(this).addClass('sell'); }); 
  //$("#multi_control div").mouseout(function(){ $(this).removeClass('sell'); }); 
  
  $(".count_min").click(function(){
    var inp_obj = $("#inp_"+$(this).attr("item")+"");
    var inp_obj2 = $("#field_"+$(this).attr("item")+"");
    if (parseInt(intval(inp_obj.val())) > 2) {      
      inp_obj.val(parseInt(intval(inp_obj.val())) - 1);      
    } else {
      inp_obj.val(1);      
    }          
    inp_obj2.val(inp_obj.val());
    fnPlusMin($(this).attr("item"), inp_obj.val());
    return false;
  });        
  
  //$(".count_min").mouseover(function(){ $(this).addClass('chose_min');  }); 
  //$(".count_min").mouseout(function(){ $(this).removeClass('chose_min'); });
  
  //$(".count_plus").mouseover(function(){ $(this).addClass('chose_plus');  }); 
  //$(".count_plus").mouseout(function(){ $(this).removeClass('chose_plus'); });
         
  $(".count_plus").click(function(){
    var inp_obj = $("#inp_"+$(this).attr("item")+"");
    var inp_obj2 = $("#field_"+$(this).attr("item")+"");
    if (parseInt(intval(inp_obj.val())) < 0) {
      inp_obj.val(1);
    } else {      
      inp_obj.val(parseInt(intval(inp_obj.val())) + 1);            
    }          
    inp_obj2.val(inp_obj.val());    
    fnPlusMin($(this).attr("item"), inp_obj.val());
    return false;
  });
  
  $(".count_input").focus( function() { tmp_val = $(this).val(); });
  
  $(".count_input").change( function() {     
     if (/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test($(this).val())) {
       if ($(this).val() <= 0) {
         $(this).val(tmp_val);
         alert('Допустимы только числовые значение больше 0!'); 
       } else {         
         fnPlusMin($(this).attr("item"), $(this).val());         
       }
     } else {
       $(this).val(tmp_val);
       alert('Допустимы только числовые значение больше 0!'); 
     }             
  });
  
  $(".count_input").keyup( function() {           
    var it_id = $(this).attr("item");
    var inp_obj2 = $("#field_"+it_id+"");
    if (/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test($(this).val())) {
       if ($(this).val() <= 0) {
         $(this).val(tmp_val);         
       }
    } else {
       $(this).val(tmp_val);
    }   
    fnPlusMin(it_id, $(this).val());
    inp_obj2.val($(this).val());          
  });
  
  $(".item_del").click(function(){          
    fnDellChartItem("multi_content", $(this).attr("item"));
  }); 
  
  $(".item_del").mouseover(function(){ $(this).addClass('sel_del');  }); 
  $(".item_del").mouseout(function(){ $(this).removeClass('sel_del'); });  
 
}

function fnShowOrder(divdescr) {
  SetLoader(divdescr);    
  $.ajax({
    type: "POST",
    url: 'ajax/order.ajax',
    cache:false,
    success: function(page) {      
      $("#"+divdescr+"").empty().html(page);
      $("#order_form").submit(function() {
        $(this).ajaxSubmit(options);
        return false;
      });
      fnAfterLoad();
    }
  });
}

function fnShowDeliv(divdescr) {
  SetLoader(divdescr);    
  $.ajax({
    type: "POST",
    url: 'ajax/deliv.ajax',
    cache:false,
    success: function(page) {      
      $("#"+divdescr+"").empty().html(page);
      $("#order_form").submit(function() {
        $(this).ajaxSubmit(options);
        return false;
      });
      fnAfterLoad();
    }
  });
}   

function fnSetDelivery(type, obj) {
  SetLoader('multi_control'); 
  $('#deliv_types a').removeClass('sel');
  $.ajax({
    type: "POST",
    url: 'ajax/set_deliv-'+type+'.ajax',
    cache:false,
    success: function(page) {      
      $('#multi_control').html('<a class="arrowl" href="#" onClick="fnShowBasket(\'multi_content\'); return false;">Обратно в корзину</a><a class="arrowr" href="#" onClick="fnShowOrder(\'multi_content\'); return false;">Перейти к оформлению</a>');
      $(obj).addClass('sel');
    }
  });    
}

function fnShowLogin(divdescr) {
  SetLoader(divdescr);    
  $.ajax({
    type: "POST",
    url: 'ajax/login.ajax',
    cache:false,
    success: function(page) {      
      $("#"+divdescr+"").empty().html(page);
      $("#order_form").submit(function() {
        $(this).ajaxSubmit(options);
        return false;
      });
      fnAfterLoad();
    }
  });
}

function fnShowBasket(divdescr) {
  var order_form_fields = $("#order_form").serialize();
  SetLoader(divdescr);
  $.ajax({
    //url: 'ajax/savefield.htm?'+order_form_fields,
    success: function(html) {
      $.ajax({
        type: "POST",
        url: 'ajax/basket.ajax',
        cache:false,
        success: function(page) {
          $("#"+divdescr+"").empty().html(page);
          fnAfterLoad();
        }
      });
    }
  });
}

function fnSetBasketPage(ord, page, obj) {
  $("#page_select a").removeClass("sel");
  var items = $(".table_basket tr[order='true']");
  var items_count = items.length;
  var last_item = ord;
  var first_item = ord - 7;
  var item_id = 0;
  
  items.each(function (i) {
    item_id = i + 1;    
    if ((item_id > last_item) || (item_id <= first_item)) {
      $(this).hide();
    } else {
      $(this).show();
    }    
  }); 
  $("#ord_now").val(page);  
  $(obj).addClass("sel");
}

function fnScrollNextPrev(ord, type) {
  if (!ord) ord = 1;    
  var now_page = parseInt($("#ord_now").val());
  var items = $(".table_basket tr[order='true']");
  var items_count = items.length;  
  var all_pages = Math.ceil( items_count / ord );
  var first_item = 0;
  var last_item = 0;
  var item_id = 0;
  var old_page = 0;
  
  
    
  if (type == 'next') {
    var old_page = now_page;
    if (all_pages > old_page) {
      first_item = now_page * ord;    
      now_page = now_page + 1;    
      last_item = now_page * ord;
    }
  } else if (type == 'prev') {
    var old_page = now_page; 
    if (old_page > 1) {      
      now_page = now_page - 1;
      last_item = now_page * ord;
      first_item = (now_page * ord) - ord;
    }
  }               
  
  if (now_page > 0) {        
    items.each(function (i) {
      item_id = i + 1;      
      if (type == 'next' && (all_pages > old_page)) {
        if ((item_id > last_item) || (item_id <= first_item)) {          
          $(this).hide();
        } else {
          $(this).show();
        }
      } else if (type == 'prev' && old_page > 1) {
        //alert('i='+item_id+'&l='+last_item+'&f='+first_item+'');
        if ((item_id <= last_item) && (item_id > first_item)) {
          $(this).show();
        } else {
          $(this).hide();
        }
      }      
    }); 
    $("#ord_now").val(now_page);
  }
  //$(".table_basket tr[order='next']").removeClass("order_tr").addClass("hidden_tr");
}

function fnCloseBanner() {
  $("#banner_cont").hide();
  fnHideOverlay();
}

function fnFormClose(win_id) {
/*  $("#img_cart").hide();
  $("#"+win_id+"").hide();
  fnHideOverlay();
  //fnShowScroll();  
  var left_b = $("#smbg").offset().left;
  var left_p = $("#smbg").offset().left + $("#smbg").width() - price_b.width();
  basket_b.css("left", left_b);
  price_b.css("left", left_p); */
}

function showRequest(formData, jqForm, options) {
  var queryString = $.param(formData);
  //alert('Вот что мы передаем: \n\n' + queryString);
  SetLoader('multi_content');
  return true;
}

function SetLoader(win_id) {
  $("#"+win_id+"").html($("#loader").html());
}
           

function showResponse(responseText, statusText)  {
    $.ajax({
      type: "POST",
      url: '/ajax/empty_basket.ajax',
      cache:false,
      success: function(page) {
        fnAfterLoad();
        putItemToBasket(0, 0);       
      }
    });   
}

function fnSendOnly()  {
  SetLoader('multi_content');
  $.ajax({
    type: "POST",
    url: '/ajax/order/send_only.ajax',
    cache:false,
    success: function(page) { 
      $("#multi_content").empty().html(page);
      var id = $("#order_id").val();
      var link = '/cabinet/order-'+ id +'.htm';
      
      if (id) {
        $.ajax({
          type: "POST",
          url: '/ajax/empty_basket.ajax',
          cache:false,
          success: function(page) {      
            return document.location.href = link;
          }
        });    
      } else {
        fnAfterLoad();
      }     
    }
  }); 
}


function fnPlusMin(item_id, count) {
  $.ajax({
    type: "POST",
    url: '/ajax/get_item-'+item_id+'.ajax?count='+count+'',
    cache:false,
    success: function(page) {      
      bascount.empty().html(page);
      $("#td_inp_"+item_id+"").html($("#item_price_inp").val());      
      $("#intogo").html($("#it_price").html());
      $("#intogo_text").html($("#it_count").html());
    }
  });  
}    

function fnAddMPrice(item_id) {
  var obj = $("#mprice_but_"+item_id+"");
  var val = obj.attr("val");
  $.ajax({
    type: "POST",
    url: '/ajax/get_mprice-'+item_id+'-'+val+'.ajax',
    cache:false,
    success: function(page) {      
      bascount.empty().html(page);
      if (val == '1') {        
        obj.attr('val', 0);
        obj.removeClass('mprice0').addClass('mprice1');
      } else {        
        obj.attr('val', 1);
        obj.removeClass('mprice1').addClass('mprice0');
      }      
      $("#td_inp_"+item_id+"").html($("#item_price_inp").val());      
      $("#intogo").html($("#it_price").html());
      $("#intogo_text").html($("#it_count").html());
    }
  });  
}        

function fnEmptyChart(divdescr) {
  SetLoader(divdescr);
  $.ajax({
    type: "POST",
    url: '/ajax/empty_basket.ajax',
    cache:false,
    success: function(page) {      
      putItemToBasket(0);
      $.ajax({
        type: "POST",
        url: '/ajax/basket.ajax',
        cache:false,
        success: function(page) {      
          $("#"+divdescr+"").empty().html(page);
          fnAfterLoad();
        }
      });
    }
  }); 
}

function fnDellChartItem(divdescr, item_id) {
  SetLoader(divdescr);
  $.ajax({
    type: "POST",
    url: '/ajax/basketdel-'+item_id+'.ajax',
    cache:false,
    success: function(page) {      
      //putItemToBasket(0);
      $.ajax({
        type: "POST",
        url: '/ajax/basket.ajax',
        cache:false,
        success: function(page) {      
          $("#"+divdescr+"").empty().html(page);
          fnAfterLoad();
        }
      });
      //$("#multi_control").hide();
    }
  }); 
}


function intval(mixed_var, base) { 
  var tmp; 
  var type = typeof( mixed_var ); 
  if (type == 'boolean'){ 
    if (mixed_var == true) { 
      return 1; 
    } else { 
      return 0; 
    } 
  } else if (type == 'string') { 
    tmp = parseInt(mixed_var * 1, 10); 
    if (isNaN(tmp) || !isFinite(tmp)) {
      return 0; 
    } else { 
      return tmp.toString(base || 10); 
    } 
  } else if (type == 'number' && isFinite(mixed_var) ) { 
    return Math.floor(mixed_var); 
  } else { 
    return 0; 
  } 
}

function fnSendOrder(obj) { 
  var go = true; 
  var now = 0;
  var loader = $("#loader");
  var oleft = $(obj).offset().left + 80 + 'px';
  var otop = $(obj).offset().top - 12 + 'px';  
  loader.css({ left: oleft, top: otop }); 
  $("div", loader).hide();
  $(obj).hide();
  loader.show();          
  
  var items = $(".afcheck");
  items.each(function (i) {   
    var item = $(this);
    var val = $(this).val();
    var link = '/ajax/check-'+ $(this).attr("fid") +'.ajax';    
    $.ajax({
      type: 'POST',
      url: link,
      data: { value: val },
      cache:false,
      success: function(page) {        
        if ($.trim(page) == 'error') {
          go = false;
          item.addClass('error');
          item.next('div').show();
        } else {
          item.removeClass('error');
          item.next('div').hide();
        }
        now = now + 1;        
        if (now == items.length) {
          if (go) {            
            loader.hide();
            //$("div", loader).text('Формирование данных...').show();
            $("#order_form").submit();
          } else {
             loader.hide();
             //$("div", loader).show();
             $(obj).show();           
          }  
        }                 
      }
    });  
  });   
}

function fnShowWindow(win_id, type, ajax_url, divdescr) {
  //fnHideScroll();
  fnShowOverlay();
  var w = $(window);
 /* if ($("#img_cart").length == 0) {
    $('<div id="img_cart"></div>').appendTo("body");
  } */

  var elem =  $("#"+win_id+"");
  if (type == 2) {
    elem.animate({ top: (w.height() - elem.height())/2+w.scrollTop() + 20 }, 1200);
  } else {
    elem.css("top",(w.height()-elem.height())/2+w.scrollTop() + "px");
    elem.css("left",(w.width()-elem.width())/2+w.scrollLeft() + "px");
  }
  if (ajax_url && divdescr) {
    SetLoader(divdescr);
    $.ajax({
      type: "POST",
      url: ajax_url,
      cache:false,
      success: function(page) {
        $("#"+divdescr+"").empty().html(page);
        fnAfterLoad();
        $("#img_cart").css("top",($("#"+win_id+"").offset().top + $("#"+win_id+"").height() - 110 + "px"));
        $("#img_cart").css("left",($("#"+win_id+"").offset().left - 50 + "px"));
        $("#img_cart").show();
      }
    });
  }
  $("#"+win_id+"").show();
}

// Ограничиваем ввод в поля ввода количества только цифрами
function recountByKey(el){
  el.value = el.value.replace(/\D+/, "");
  if(!el.value || el.value==0) el.value = 1;
}

/* Фон и не понятно */

function fnShowBanner() {
  fnShowOverlay();
  var w = $(window);
  var elem =  $("#banner_cont");
  elem.css("left","0");
  elem.css("width","100%");
  elem.css("top","-300");
  elem.animate({ top: (w.height() - elem.height())/2+w.scrollTop() + 20 }, 1200);
}

function fnCloseBanner() {
  $("#banner_cont").hide();
  fnHideOverlay();
}

/* Фон старт */

function fnCreateOverlay() {
   $('<div id="site_wrap"></div>').appendTo("body");
   $("#site_wrap").prepend('<div id="site_overlay"></div>');
   $("#site_overlay").css({'width': $(window).width(), 'height': $(document).height(), 'opacity': 0.4});
   if ($.browser.msie) {
    $("#site_wrap").prepend('<iframe id="site_bigIframe" scrolling="no" frameborder="0"></iframe>');
    $("#site_bigIframe").css({'width': $(window).width(), 'height': $(document).height(), 'opacity': 0});
   }
   $("#site_overlay, #site_bigIframe").hide();
}

function fnShowOverlay() {
  $("#site_overlay,#site_bigIframe").fadeIn("fast").show();
}

function fnHideOverlay() {
  $("#site_overlay,#site_bigIframe").fadeOut("fast").hide();
}

function fnCloseOverlay() {
  $("#site_overlay,#site_bigIframe").fadeOut("fast").remove();
}

/* Прокрутка страницы */
function fnHideScroll() {
  $("body").css("overflow", "hidden");
}

function fnShowScroll() {
  $("body").css("overflow", "auto");
}
/* End */

function fnSiteCounts() {

  $(".site_min").click(function(){
    var inp_obj = $("#field_"+$(this).attr("item")+"");
    if (parseInt(intval(inp_obj.val())) > 2) {      
      inp_obj.val(parseInt(intval(inp_obj.val())) - 1);      
    } else {
      inp_obj.val(1);      
    }
    return false;
  });        
  
  $(".site_plus").click(function(){
    var inp_obj = $("#field_"+$(this).attr("item")+"");
    if (parseInt(intval(inp_obj.val())) < 0) {
      inp_obj.val(1);
    } else {      
      inp_obj.val(parseInt(intval(inp_obj.val())) + 1);            
    }          
    return false;
  });
  
  $(".site_input").focus( function() { tmp_val = $(this).val(); });  
  $(".site_input").change( function() {    
     if (/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test($(this).val())) {
       if ($(this).val() <= 0) {
         $(this).val(tmp_val);
         alert('Допустимы только числовые значение больше 0!'); 
       } else {
         fnPlusMin($(this).attr("item"), $(this).val());
       }
     } else {
       $(this).val(tmp_val);
       alert('Допустимы только числовые значение больше 0!'); 
     }             
  });
  
  $(".site_input").keyup( function() {           
    if (/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test($(this).val())) {
      if ($(this).val() <= 0) {
         $(this).val(tmp_val);         
      }
    } else {
      $(this).val(tmp_val);
    }             
  }); 
 
}

function fnShowHiden() {
  $("#auth_link").hide();
  $("#hide_form").show();
  $("#multi_control a").show();
}

/* Поиск */

function fnScheck() {                          
  obj = $("#search_input");
  if (!obj.val() || obj.val() == 'найти на сайте' || obj.val() == 'введите запрос') {
    obj.defaultvalue("введите запрос");    
    return false;
  } else {
    return true;
  }
}



/* LEFT MENU */
function fnShowItems(href, id) {
  var obj = $("#"+id+"");
  $("div.mlinks", $(href).parent().parent()).hide();
  $("div.mlinks", $(href).parent().parent()).hide();
  $(obj).show();
  if ($(href).hasClass('ftype')) {
    $("a", $(href).parent()).removeClass('sel1'); 
    $(href).addClass('sel2');
  } else {
    $("a", $(href).parent()).removeClass('sel2');
    $(href).addClass('sel1');
  }
  
}

function fnShowCat(id, href) {
  var obj = $("#"+id+"");  
  $("div.catm", obj.parent()).hide();
  obj.show();
  $("a", $(href).parent()).removeClass('sel');
  $(href).addClass('sel');
}
