function diOrder()
{
  this.e = {
    submit_block1: _ge('car_submit_block1'),
    submit_block2: _ge('car_submit_block2')
  };

  this.total_price = 0;

  this.finish_stage = function(stage)
  {
    switch (stage*1)
    {
      case 2:
        this.e.submit_block1.style.display = 'none';
        this.e.submit_block2.style.display = 'block';
        break;

      case 3:
        if (qp_form.onSubmit())
          document.forms.order_form.submit();
        break;
    }
  }

  this.refresh = function()
  {
    if (typeof cars_ar == 'undefined')
      return;

    var ending = this.get_dates_href_ending();
    var len = this.get_period();

    // cars hrefs and prices
    for (var i = 0; i < cars_ar.length; i++)
    {
      var id = cars_ar[i].id;
      var href = language_href_prefix+'/cars/'+id+'/?'+ending;
      var price = this.get_current_price(cars_ar[i].price, len);

      var lh1 = _ge('left_car_href1['+id+']');
      var lh2 = _ge('left_car_href2['+id+']');
      var ih1 = _ge('inside_car_href1['+id+']');
      var ih2 = _ge('inside_car_href2['+id+']');

      var lp = _ge('left_car_price['+id+']');

      if (lh1) lh1.href = href;
      if (lh2) lh2.href = href;
      if (ih1) ih1.href = href;
      if (ih2) ih2.href = href;

      if (lp) lp.innerHTML = price;
    }

    if (car_id_selected && typeof services_ar != 'undefined' && services_ar)
    {
      var base_price = this.get_current_price(this.get_price_ar_of_car(car_id_selected), len);
      var services_price = 0;

      for (var i = 0; i < services_ar.length; i++)
      {
        var id = services_ar[i].id;
        var e = _ge('service_'+id);

        if (e && e.checked)
          services_price += services_ar[i].price*1;
      }

      var price = base_price + services_price;

      this.total_price = Math.round(price * len);

      var total1 = _ge('inside_total_cost1');
      var total2 = _ge('inside_total_cost2');

      if (total1) total1.innerHTML = this.total_price;
      if (total2) total2.innerHTML = this.total_price;
    }
  }

  this.get_price_ar_of_car = function(id)
  {
    for (var i = 0; i < cars_ar.length; i++)
    {
      if (cars_ar[i].id*1 == id*1)
        return cars_ar[i].price;
    }

    return [0,0,0,0,0];
  }

  this.get_period = function()
  {
    var date1 = _ge('date1').value;
    var date2 = _ge('date2').value;

    var date_ar1 = date1.split(/\./);
    var date_ar2 = date2.split(/\./);

    if (date_ar1.length == 3 && date_ar2.length == 3)
    {
      var dt1 = new Date(date_ar1[2], date_ar1[1] - 1, date_ar1[0]);
      var dt2 = new Date(date_ar2[2], date_ar2[1] - 1, date_ar2[0]);

      return Math.round(dt2.getTime() / 86400000 - dt1.getTime() / 86400000);
    }

    return 0;
  }

  this.get_current_price = function(price_ar, len)
  {
    if (len && price_ar.length == 5)
    {
      if (len >= 1 && len <= 3) return price_ar[0]*1;
      else if (len >= 4 && len <= 7) return price_ar[1]*1;
      else if (len >= 8 && len <= 15) return price_ar[2]*1;
      else if (len >= 16 && len <= 30) return price_ar[3]*1;
      else if (len > 30) return price_ar[4]*1;
      else return 0;
    }

    return 0;
  }

  this.get_dates_href_ending = function()
  {
    var date1 = _ge('date1').value;
    var h1 = _ge('h1').value;
    var m1 = _ge('m1').value;

    var date2 = _ge('date2').value;
    var h2 = _ge('h2').value;
    var m2 = _ge('m2').value;

    return 'date1='+date1+'&h1='+h1+'&m1='+m1+'&date2='+date2+'&h2='+h2+'&m2='+m2;
  }
}

