var GRAPH_WIDTH = 180;

//slider vars
var budgetslider_left;
var budgetslider_right;
var kmslider_left;
var kmslider_right;

var increments=0;
var scale_budget=0;
var scale_km=0;
var graphsliders_initdone = 0;
var right_offset = 20;

function graphsliders_init(inc, price1, price2, km1, km2)
{
  increments = inc;
  scale_budget = increments / 10;
  scale_km = 1000; //1086;
  
  
  YAHOO.util.Dom.setStyle("middle", "opacity", 0.7);

  budgetslider_left = YAHOO.widget.Slider.getHorizSlider("budgetrange_slider", "budgetslider_left", 0, 175, 0);
  budgetslider_right = YAHOO.widget.Slider.getHorizSlider("budgetrange_slider", "budgetslider_right", right_offset, 175-right_offset, 0);  
    
  budgetslider_left.backgroundEnabled = false;
  budgetslider_right.backgroundEnabled = false;
  
  kmslider_left = YAHOO.widget.Slider.getHorizSlider("kmrange_slider", "kmslider_left", 0, 175, 0);
  kmslider_right = YAHOO.widget.Slider.getHorizSlider("kmrange_slider", "kmslider_right", right_offset, 175-right_offset, 0);  
  
  kmslider_left.backgroundEnabled = false;
  kmslider_right.backgroundEnabled = false;
  
  budgetslider_left.subscribe("change", function() {
    var lefty = Math.min(budgetslider_left.getXValue(), budgetslider_right.getXValue()+64);
    var righty = Math.max(budgetslider_left.getXValue(), budgetslider_right.getXValue()+64);
    YAHOO.util.Dom.setStyle("blank_left", "width", lefty);
    YAHOO.util.Dom.setStyle("middle", "width", righty - lefty);
    document.getElementById("budgetmin").innerHTML = "Min: " + (lefty>0 ? lefty*scale_budget : '-')
    document.getElementById("budgetmax").innerHTML = "Max: " + (righty<175 ? righty*scale_budget : '-');
  });
  
  budgetslider_right.subscribe("change", function() {
    var lefty = Math.min(budgetslider_left.getXValue(), budgetslider_right.getXValue()+64);
    var righty = Math.max(budgetslider_left.getXValue(), budgetslider_right.getXValue()+64);
    YAHOO.util.Dom.setStyle("blank_left", "width", lefty);
    YAHOO.util.Dom.setStyle("middle", "width", righty - lefty);
    document.getElementById("budgetmin").innerHTML = "Min: " + (lefty>0 ? lefty*scale_budget : '-');
    document.getElementById("budgetmax").innerHTML = "Max: " + (righty<175 ? righty*scale_budget : '-');
  });
  
  budgetslider_left.subscribe("slideEnd", function() {
    var lefty = Math.min(budgetslider_left.getXValue(), budgetslider_right.getXValue()+64);
    var righty = Math.max(budgetslider_left.getXValue(), budgetslider_right.getXValue()+64);
    document.getElementById("price1input").value = lefty>0 ? lefty*scale_budget : '';
    document.getElementById("price2input").value = righty<175 ? righty*scale_budget : '';
    if (graphsliders_initdone) updateCounter(document.getElementById("frm_refine_filters"), 'refinefilter_results');
  });
  
  budgetslider_right.subscribe("slideEnd", function() {
    var lefty = Math.min(budgetslider_left.getXValue(), budgetslider_right.getXValue()+64);
    var righty = Math.max(budgetslider_left.getXValue(), budgetslider_right.getXValue()+64);    
    document.getElementById("price1input").value = lefty>0 ? lefty*scale_budget : '';
    document.getElementById("price2input").value = righty<175 ? righty*scale_budget : '';
    if (graphsliders_initdone) updateCounter(document.getElementById("frm_refine_filters"), 'refinefilter_results');
  });
  
  kmslider_right.subscribe("change", function() {
    var lefty = Math.min(kmslider_left.getXValue(), kmslider_right.getXValue()+64);
    var righty = Math.max(kmslider_left.getXValue(), kmslider_right.getXValue()+64);
    document.getElementById("kmmin").innerHTML = "Min: " + (lefty>0 ? lefty*scale_km : '-');
    document.getElementById("kmmax").innerHTML = "Max: " + (righty<175 ? righty*scale_km : '-');
  });
  
  kmslider_left.subscribe("change", function() {
    var lefty = Math.min(kmslider_left.getXValue(), kmslider_right.getXValue()+64);
    var righty = Math.max(kmslider_left.getXValue(), kmslider_right.getXValue()+64);
    document.getElementById("kmmin").innerHTML = "Min: " + (lefty>0 ? lefty*scale_km : '-');
    document.getElementById("kmmax").innerHTML = "Max: " + (righty<175 ? righty*scale_km : '-');
  });
  
  kmslider_left.subscribe("slideEnd", function() {
    var lefty = Math.min(kmslider_left.getXValue(), kmslider_right.getXValue()+64);
    var righty = Math.max(kmslider_left.getXValue(), kmslider_right.getXValue()+64);
    document.getElementById("km1input").value = lefty>0 ? lefty*scale_km : '';
    document.getElementById("km2input").value = righty<175 ? righty*scale_km : '';
    if (graphsliders_initdone) updateCounter(document.getElementById("frm_refine_filters"), 'refinefilter_results');
  });
  
  kmslider_right.subscribe("slideEnd", function() {
    var lefty = Math.min(kmslider_left.getXValue(), kmslider_right.getXValue()+64);
    var righty = Math.max(kmslider_left.getXValue(), kmslider_right.getXValue()+64);
    document.getElementById("km1input").value = lefty>0 ? lefty*scale_km : '';
    document.getElementById("km2input").value = righty<175 ? righty*scale_km : '';
    if (graphsliders_initdone) updateCounter(document.getElementById("frm_refine_filters"), 'refinefilter_results');
  });
  
  price1 = price1 != null ? price1/scale_budget : 0;
  price2 = price2 != null ? price2/scale_budget-right_offset : 175;
  km1 = km1 != null ? km1/scale_km : 0;
  km2 = km2 != null ? km2/scale_km-right_offset : 175;
  budgetslider_left.setValue(price1, true);//false, false);
  budgetslider_right.setValue(price2, true);//false, false);
  kmslider_left.setValue(km1, true);//false, false);
  kmslider_right.setValue(km2, true);//false, false);
  updateCounter(document.getElementById("frm_refine_filters"), 'refinefilter_results');
  graphsliders_initdone = 1;
}

function graphsliders_setincrement(inc) {
  /*var lefty = Math.min(budgetslider_left.getXValue(), budgetslider_right.getXValue()+64);
  var righty = Math.max(budgetslider_left.getXValue(), budgetslider_right.getXValue()+64);  
  lf = lefty*scale_budget;
  rt = righty*scale_budget;*/
  
  increments = inc;
  scale_budget = increments / 10;
  
  lf = document.getElementById("price1input").value;
  rt = document.getElementById("price2input").value;
  if (lf != '') budgetslider_left.setValue(Math.round(lf/scale_budget), true);
  if (rt != '') budgetslider_right.setValue(Math.round(rt/scale_budget-right_offset), true);  
}


function parse_px(div, att)
{
  var str = YAHOO.util.Dom.getStyle(div, att)
  var i = 0;
  var num = "";
  while(str.charAt(i) != "p"){
    num = num + str.charAt(i)
    i++;
  }
  return parseInt(num);
}

function moveRight(amount)
{
  var w = parse_px("blank_left", "width");
  YAHOO.util.Dom.setStyle("blank_left", "width", w+amount);
}

function moveLeft(amount)
{
  var w = parse_px("blank_left", "width");
  YAHOO.util.Dom.setStyle("blank_left", "width", w-amount);
}

function growLeft(amount)
{
  moveLeft(amount);
  var w = parse_px("middle", "width");
  YAHOO.util.Dom.setStyle("middle", "width", w+amount);
}

function growRight(amount)
{
  //moveRight(amount);
  var w = parse_px("middle", "width");
  var w_left = parse_px("blank_left", "width");
  if(amount>0){
    if(w+w_left<180)
      YAHOO.util.Dom.setStyle("middle", "width", w+amount);
    else
      YAHOO.util.Dom.setStyle("middle", "width", GRAPH_WIDTH-w_left);
  }
  else
    YAHOO.util.Dom.setStyle("middle", "width", w+amount);
}
