
var timerGlobalId = 0;
var timerCount    = 0;
var timerCountMax = 1;
var rowString     = '';
var short_podbor  = 0;
$(document).ready(function () {

   makeSlider("slider_emkost", "minEmk", "maxEmk", 0,400,'param_emkost');
   /*
   makeSlider("slider_tok", "minTok", "maxTok",5,2000);
   */
   //make_range_slider("", "");
   makeSlider("slider_dlina", "minDlina", "maxDlina",10,600);
   makeSlider("slider_shirina", "minShirina", "maxShirina",10,350);
   makeSlider("slider_vysota", "minVysota", "maxVysota",10,350);
   makeSlider("slider_price", "minPrice", "maxPrice",1000,8000);

   makeKeyEvents();
   makeFieldsEvents();
});
function setDelayBeforeRequest()
{
  timerCount  = timerCount + 1;
  if(timerCount>timerCountMax)
  {
    hidePreResult();
    // Останавливаем таймер, обнуляем ID таймера, счетчик тамймера и выполняем запрос
    cleartimerInterval();
    // jQuery.aJax.process ....
    makeDataRow();
    show_loader();
    $.ajax({
      type: 'GET',
      url: '/shop/podbor-po-parametram/',
      async: true,
      cache: false,
      data: rowString+'&show_result=1'+'&short_podbor='+short_podbor + '&show_result_podbor=0',
      dataType : "json",
      success: function(Data)
      {
        //alert(rowString);
        //alert(Data.param_polarnost);
        $('#podborResult').html(Data.Body);
        if(Data.param_razmer!='')
          $('#param_razmer').parent().html(Data.param_razmer);

        if(Data.param_polarnost!='')
        {
          $('#param_polarnost').parent().html(Data.param_polarnost);
          //alert(Data.param_polarnost);
        }
        if(Data.param_emkost!='')
          $('#param_emkost').parent().html(Data.param_emkost);


        if(Data.param_producer!='')
        {
          $('#param_producer').parent().html(Data.param_producer);
          //alert(Data.param_producer);
        }
        if(Data.count!='')
          showPreResult(Data.count, Data.enableLink);
        makeFieldsEvents();
        makeButtonsTransparentLink();
        make_nivoZoom();
        //alert('done');
        hide_loader();
        return ;
      },
      error: function(XMLHttpRequest, textStatus, errorThrown) {
        alert("TECHNICAL ERROR: unable to refresh the cart.\n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);
        return ;
      }
    });
  }

}
function show_result_page(page)
{
    show_loader();
    $.ajax({
      type: 'GET',
      url: '/shop/podbor-po-parametram/',
      async: true,
      cache: false,
      data: rowString+'&show_result=1'+'&short_podbor='+short_podbor + '&show_result_podbor=1',
      dataType : "json",
      success: function(Data)
      {

        $('.transparentLink').remove();
        var BodyObj = $('#podborResult');
        BodyObj.hide();
        BodyObj.html(Data.Body);
        BodyObj.show('slow', function(){
          makeAlllinks();
        });

        make_nivoZoom();
        hide_loader();
        hidePreResult();



        makeButtonsTransparentLink();
        return ;
      },
      error: function(XMLHttpRequest, textStatus, errorThrown) {
        alert("TECHNICAL ERROR: unable to refresh the cart.\n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);
        return ;
      }
    });
    return false;
}
function show_loader()
{
  $('#loader').show();
}
function hide_loader()
{
  $('#loader').hide();
}
function hidePreResult()
{
  $('#messagePodbor').hide();
  $('#sliderBlock').animate({'left': -230});
}

function showPreResult(counter, enableLink)
{
  //alert(counter);
  
  var position  = $(".podborPoParametramContainer").position();
  var Sizes     = $(".podborPoParametramContainer").height();

  var Obj = $('#messagePodbor');
  $('span',Obj).html(counter);
  Obj.css({"position":"absolute"}) ;

  Obj.show();
  $('a', Obj).show();
  if(enableLink==0) $('a', Obj).hide();
  
  $('button', Obj).show();
  if(enableLink==0) $('button', Obj).hide();
  

  /*  Новый элемент */
  
  var Obj_2 = $('#sliderBlock');
  Obj_2.css({"top": position.top+Sizes-20});
  $('span',Obj_2).html(counter);

  $('button', Obj_2).show();
  $('#specify', Obj_2).hide();
  if(enableLink==0)
  {
    $('button', Obj_2).hide();
    $('#specify', Obj_2).show();
  }
  Obj_2.animate({'left': 350});



  /*
  Obj.show("fast", function(){
    Obj.hide(5000);
  });
  */
  
}
function makeDataRow()
{
  rowString     = '';
  short_podbor  = 0;
  $(".form_podbor_by_params select, .form_podbor_by_params input[type=text], .form_podbor_by_params input:checked").each(function(){
    rowString = rowString + '&' + $(this).attr("name") + '=' + encodeURIComponent($(this).attr("value"));
  });
}
function makeDataRowShort()
{
  makeDataRow();
  short_podbor  = 1;
}
function cleartimerInterval()
{
  clearInterval(timerGlobalId);
  timerCount  = 0;

}
function podborByParamGetGoods(val)
{
  //alert('Всего 30 моделей');
  cleartimerInterval();
  $("#message_podbor_po_parametram").html(val);
  timerGlobalId        = setInterval(function(){setDelayBeforeRequest()},300);
}
function makeFieldsEvents()
{
  $(".form_podbor_by_params select, .form_podbor_by_params input").change(function(){
    podborByParamGetGoods(this.value);
  });
}
function makeMinChange(idMin,idMax, slider, val)
{
  $("input#"+idMin).change(function(){
    var value1=$("input#"+idMin).val();
    var value2=$("input#"+idMax).val();
      if(parseInt(value1) > parseInt(value2)){
      value1 = value2;
      $("input#"+idMin).val(value1);
    }
    //$("#"+slider).slider("values",val,value1);
    podborByParamGetGoods();
  });
  $("#"+idMin).val(val);
}
function makeMaxChange(idMin,idMax, slider, val)
{
  $("input#"+idMax).change(function(){
    var value1=$("input#"+idMin).val();
    var value2=$("input#"+idMax).val();
    if (value2 > val) { value2 = val; $("input#"+idMax).val(val)}
    if(parseInt(value1) > parseInt(value2)){
      value2 = value1;
      $("input#"+idMax).val(value2);
    }
    //$("#"+slider).slider("values",1,value2);
    podborByParamGetGoods();
  });
  $("#"+idMax).val(val);
}
function makeSlider(slider, minId, maxId, minVal, maxVal, select)
{
  if(select!=null)
  {
    var selectObj =  $( "#"+select );
    if(selectObj.size()>0)
    {
      var valuesSrc  =  selectObj[0].selectedIndex + 1 ;  //alert(valuesSrc);
      var rangeSrc  = "min";
      var maxValue  = document.getElementById(select).children.length;
      var minValue  = 0;
      maxVal  = selectObj[0].options[selectObj[0].length-1].value;
      minVal  = selectObj[0].options[0].value;
    }
  }
  else
  {
    var valuesSrc  =  [minVal,maxVal];
    var rangeSrc  = true;
    maxValue      = maxVal;
    minValue      = minVal;
  }
  $("#"+slider).slider({
    min: minValue,
    max: maxValue,
    values: valuesSrc,
    range: rangeSrc,
    animate: true,
    stop: function(event, ui) {
      if(select!=null)
      {

      }
      else
      {
        $("input#"+minId).val($(this).slider("values",0));
        $("input#"+maxId).val($(this).slider("values",1));

      }
      podborByParamGetGoods();
    },
    slide: function(event, ui){
      if(select!=null)
        selectObj[0].selectedIndex = ui.value - 1;
      else
      {
        $("input#"+minId).val($(this).slider("values",0));
        $("input#"+maxId).val($(this).slider("values",1));
      }
      podborByParamGetGoods();
    }
  });
  if($("#"+slider).size()>0)
  {
    makeMinChange(minId, maxId, slider, minVal);
    makeMaxChange(minId, maxId, slider, maxVal);
    $(".ui-slider-handle:last").css({"background-image": "url('/images/slider/right.gif')","margin-left":"-1px"});

    if(select!=null)
    {
      if(selectObj.size()>0)
      {

      }
    }
    else
    {
      make_grad_slider(slider, minVal, maxVal,minVal);
      make_grad_slider(slider, minVal, maxVal,maxVal);
      make_grad_slider(slider, minVal, maxVal,Math.round((maxVal-minVal)/4+minVal));
      make_grad_slider(slider, minVal, maxVal,Math.round((maxVal-minVal)/4*2+minVal));
      make_grad_slider(slider, minVal, maxVal,Math.round((maxVal-minVal)/4*3+minVal));
    }
  }

}
function make_grad_slider(slider, minVal, maxVal, currentPoint)
{

  tpl = "<div  class='ui-slider-horizontal slider_riska' id='riska_"+slider+"_"+currentPoint+"'><div class='riska_value'>"+currentPoint+"</div><div class='riska_body' ></div></div>";
  $(tpl).insertAfter("#"+slider);

  var tmp = $('#'+slider).offset();
  var parent_top  =  tmp.top;
  var parent_left =  tmp.left;
  var parent_width=  $('#'+slider).width();
  var parent_height=  $('#'+slider).height();
  var ElementLeft = Math.round(parent_width/(maxVal-minVal)*(currentPoint - minVal)) ;
  //alert(parent_left+' '+parent_width+' '+currentPoint+' '+ElementLeft);
  $("#riska_"+slider+"_"+currentPoint).css({"left": parent_left+ElementLeft, "top": parent_top - 10});

}
function make_range_slider(slider, range)
{
  var select = $( "#param_emkost" );
  var maxValue  = document.getElementById('param_emkost').children.length;
  var slider = $( "<div id='slider_emkost'></div>" ).insertAfter(select ).slider({
    min: 1,
    max: maxValue,
    range: "min",
    value: select[0].selectedIndex + 1,
    slide: function( event, ui ) {
      select[ 0 ].selectedIndex = ui.value - 1;
    },
    css: {"width":"400px"}
  });

  $( "#param_emkost" ).change(function() {
    slider.slider( "value", this.selectedIndex + 1 );
  });
  

  
}
// фильтрация ввода в поля
function makeKeyEvents()
{
  $('.form_podbor_by_params input[type=text]').keypress(function(event){
    var key, keyChar;
    if(!event) var event = window.event;
    if (event.keyCode) key = event.keyCode;
    else if(event.which) key = event.which;
    if(key==null || key==0 || key==8 || key==13 || key==9 || key==46 || key==37 || key==39 ) return true;
    keyChar=String.fromCharCode(key);
    if(!/\d/.test(keyChar)) return false;
  });

}
