
$(document).ready(function() {
	recount();
  init_vd();
  init_cd();
  show_srv_price();
  $('select#id_server').bind("change keyup", function(){
      show_srv_price();
      recount(); 
  });
  
	$('select#id_payment_type, input#id_qty').bind("change keyup", function(){ recount() } );
  $('input#id_amount').bind("change keyup", recount_qty ); 
  
  show_delivery_tip();
  $('select#id_delivery_type').bind("change keyup", function(){
      show_delivery_tip();
  } );  
  
});

function show_delivery_tip(){
  var delivery_method_id = $('select#id_delivery_type').val();
  if (delivery_method_id) {
      tip = delivery_methods[delivery_method_id];
      $('span#dlvr-tip').html(tip);
  } else {
      $('span#dlvr-tip').html('');
  }
}

function show_srv_price(){
  var server_id = $("select#id_server").val();
  if (server_id != '') {
      var server_price = prices[server_id];
      $("span#srv-price").html("Цена: <b>{server_price} руб. за {price_per} {price_per_name}</b>".supplant({'server_price' : server_price, 'price_per' : price_per, 'price_per_name' : price_per_name}));
  } else {
      $("span#srv-price").html("Выберите сервер, чтобы узнать цену");
  }
}

function recount(must_set_amount){
  must_set_amount = typeof(must_set_amount) != 'undefined' ? must_set_amount : true;
  var server_id = $("select#id_server").val();
  var server_price = prices[server_id];
	var method = $("select#id_payment_type").val();
	var qty = $("input#id_qty").val();
	var amount = server_price*payment_systems[method]['multiplier']*qty/price_per;
	var discount = get_discount(amount, payment_systems[method]['currency'] ); 	
	show_result(amount, discount, payment_systems[method]['unit'], must_set_amount);
}

function recount_qty(){
  var amount = parseFloat($("input#id_amount").val());
  
  var server_id = $("select#id_server").val();
  var server_price = prices[server_id];
	var method = $("select#id_payment_type").val();
  
  var raw = get_raw(amount, payment_systems[method]['currency']);
    
  var qty = parseFloat(price_per*raw/(server_price*payment_systems[method]['multiplier']) ).toFixed(2);
  
  if (!isNaN(qty)){
      $('input#id_qty').val(qty);
  } else {
      $('input#id_qty').val('');
  }
  recount(false);
}


function get_raw(amount, currency_code){
  var raw = 0;
  d2 = (cd > d) ? cd : d;
  if (currency_code == 'RUR') {
      user_volume = v;
      table = discounts;
  } else if (currency_code == 'USD') {
      user_volume = u;
      table = usd_discounts;
  }
  
  for (var volume in table) {
      raw = amount/(1-(table[volume]/100))
      if ((raw + user_volume) >= volume) {
          return (table[volume] > d2) ? raw: amount/(1-(d2/100));
      }
  }  
  return amount/(1-(d2/100));
}


function update_cd(){
  $("span#coupon-discount").html("Предоставлен купон со скидкой <b>" + cd + "%</b>");
}

function clean_cd(){
  cd = 0;
  $("span#coupon-discount").html('');
}

function is_valid_code(code) { 
  var re = /^\d\d\d\d-\d\d\d\d-\d\d\d\d-\d\d\d\d$/; 
  return code.match(re); 
}

function cinfo(code){
  if (is_valid_code(code)) {
    $.getJSON('/dyn/cinfo/?c='+ code, function(json) {
      cd = json.d;
      if (cd > 0 ){
        update_cd();
        recount();
      } else {
        clean_cd();
        recount();
      }
    });
  } else {
      clean_cd();
      recount();
  }
}

function init_cd(){
  cinfo( $('input#id_coupon_code').val()  );
  $('input#id_coupon_code').bind("change keyup blur", function(){
     cinfo($(this).val());
  });
}



