function filterNumFormat(number) {

  number = parseInt(number);

  if( number >= 1000000) {
    number = new Number(number/1000000);
    number = number.toFixed(1)+'mil';

  } else number = (number/1000)+'k';

  return number;
}

function infinityFormatting(initValue, indicatorValue, affix) {

  var setValue;

  if(indicatorValue != initValue) {
    setValue = indicatorValue;
    affix = '';
  } else setValue = 'infinity';

  return new Array(setValue, affix);

}


//Set Start Date | Inception Slider
//@param: (<div id>, start date, set indicator date)
function inceptionSlider_init(min_r, max_r, min_value, max_value, set_step, set_indicator) {
  if(set_indicator[0] == null) set_indicator[0] = min_value;
  if(set_indicator[1] == null) set_indicator[1] = max_value;

  $("#startdate_slider").slider({
    range  : true,
    min    : min_value,
    max    : max_value,
    step   : set_step,
    values : set_indicator,
    slide  : function(event, ui) {

      var minResult = infinityFormatting(min_value, ui.values[0], '< ');
      var maxResult = infinityFormatting(max_value, ui.values[1], '');

      $("#" + min_r).val(minResult[0]);
      $("#" + max_r).val(maxResult[0]);

      // Display formatted on screen
      $("#inception_date").val(minResult[1] + ui.values[0] + ' - ' + ui.values[1] + maxResult[1]);

    }
  });

  var minResult = infinityFormatting(min_value, set_indicator[0], '< ');
  var maxResult = infinityFormatting(max_value, set_indicator[1], '');

  $("#" + min_r).val(minResult[0]);
  $("#" + max_r).val(maxResult[0]);

  $("#inception_date").val(minResult[1] + $("#startdate_slider").slider("values", 0)
      + ' - ' + $("#startdate_slider").slider("values", 1) + maxResult[1]
  );

}


//Set Minimum Return Slider
//@param: (<div id>, min value, max value, increase or decrease by, set indicator at)
function minReturnSlider_init(min_r, max_r, min_value, max_value, set_step, set_indicator) {
  if(set_indicator[0] == null) set_indicator[0] = min_value;
  if(set_indicator[1] == null) set_indicator[1] = max_value;

  $("#minreturn_slider").slider({
    range   : true,
    min     : min_value,
    max     : max_value,
    step    : set_step,
    values  : set_indicator,
    slide  : function(event, ui) {

      var minResult = infinityFormatting(min_value, ui.values[0], '< ');
      var maxResult = infinityFormatting(max_value, ui.values[1], ' >');

      $("#" + min_r).val(minResult[0]);
      $("#" + max_r).val(maxResult[0]);

      // Display formatted MIN - MAX on screen
      $("#min_return").val(minResult[1] + ui.values[0]
          + '% - ' + ui.values[1] + '%' + maxResult[1]
      );

    }
  });

  var minResult = infinityFormatting(min_value, set_indicator[0], '< ');
  var maxResult = infinityFormatting(max_value, set_indicator[1], ' >');

  $("#" + min_r).val(minResult[0]);
  $("#" + max_r).val(maxResult[0]);


  $("#min_return").val(minResult[1] + $("#minreturn_slider").slider("values", 0)
      + '% - ' + $("#minreturn_slider").slider("values", 1) + '%' + maxResult[1]
   );

}


// For Maximum Risk Slider
function maxRiskSlider_init(mval, min_value, max_value, set_indicator) {
  if(set_indicator == null) set_indicator = min_value;

  $("#maxrisk_slider").slider({
    range  : "min",
    value  : set_indicator,
    min    : min_value,
    max    : max_value,
    slide  : function(event, ui) {

      var maxResult = infinityFormatting(max_value, ui.value, ' >');

      $("#" + mval).val(maxResult[0]);
      $("#max_risk").val(ui.value + '% drawdown' + maxResult[1]);
    }
  });

  var maxResult = infinityFormatting(max_value, set_indicator, ' >');

  $("#" + mval).val(maxResult[0]);

  $("#max_risk").val($("#maxrisk_slider").slider("value") + '% drawdown' + maxResult[1]);
}


//Set AUM Slider
//@param: (<div id>, min value, max value, increase or decrease by,
//set indicator at [first,second])
function aumSlider_init(min_r, max_r, min_value, max_value, set_step, set_indicator) {

  if(set_indicator[0] == null) set_indicator[0] = min_value;
  if(set_indicator[1] == null) set_indicator[1] = max_value;

  $("#aum_slider").slider({
    range   : true,
    min     : min_value,
    max     : max_value,
    step    : set_step,
    values  : set_indicator,
    slide   : function(event, ui) {

      var minResult = infinityFormatting(min_value, ui.values[0], '');
      var maxResult = infinityFormatting(max_value, ui.values[1], ' >');

      $("#" + min_r).val(minResult[0]);
      $("#" + max_r).val(maxResult[0]);

      // Display formatted MIN - MAX on screen
      $("#aum").val(minResult[1] + filterNumFormat(ui.values[0])
          + ' - ' + filterNumFormat(ui.values[1]) + maxResult[1]
      );

    }
  });

  var minResult = infinityFormatting(min_value, set_indicator[0], '');
  var maxResult = infinityFormatting(max_value, set_indicator[1], ' >');

  $("#" + min_r).val(minResult[0]);
  $("#" + max_r).val(maxResult[0]);


  $("#aum").val(minResult[1] + filterNumFormat($("#aum_slider").slider("values", 0))
          + ' - ' +
          filterNumFormat($("#aum_slider").slider("values", 1)) + maxResult[1]
  );
}


//Set Minimum Account Size Slider
//@param: (<div id>, min value, max value, increase or decrease by,
//set indicator at [first,second])
function minAcctSlider_init(min_r, max_r, min_value, max_value, set_step, set_indicator) {

  if(set_indicator[0] == null) set_indicator[0] = min_value;
  if(set_indicator[1] == null) set_indicator[1] = max_value;

  $("#minacct_slider").slider({
    range   : true,
    min     : min_value,
    max     : max_value,
    step    : set_step,
    values  : set_indicator,
    slide   : function(event, ui) {

      var minResult = infinityFormatting(min_value, ui.values[0], '< ');
      var maxResult = infinityFormatting(max_value, ui.values[1], ' >');

      $("#" + min_r).val(minResult[0]);
      $("#" + max_r).val(maxResult[0]);

      // Display formatted MIN - MAX on screen
      $("#min_account").val(minResult[1] + filterNumFormat(ui.values[0])
          + ' - ' + filterNumFormat(ui.values[1]) + maxResult[1]
      );

    }
  });

  var minResult = infinityFormatting(min_value, set_indicator[0], '< ');
  var maxResult = infinityFormatting(max_value, set_indicator[1], ' >');

  $("#" + min_r).val(minResult[0]);
  $("#" + max_r).val(maxResult[0]);


  $("#min_account").val(minResult[1] + filterNumFormat($("#minacct_slider").slider("values", 0))
      + ' - ' + filterNumFormat($("#minacct_slider").slider("values", 1)) + maxResult[1]
   );
}


//Run Filter
//@param <form id>
function runFilter(form_id) {

  $("#"+form_id).submit();
}

