/**********************************************************************************/
/* Init */

var rbt_timer = null;
var rbt_toSelect = "";
var rbt_currentItem = null;
var rbt_currentTimer = null;
var rbt_selectedItem = null;
var rbt_panelTopMargin = 16;

/**********************************************************************************/
/* Loaders */

function RangeByType_OnLoad()
  {
  RangeByType_NiftyLoad();
  RangeByType_SelectCurrent();
  RangeByType_UpdatePanel();
  
  var contentPanel = document.getElementById("contentPanel");
  if (contentPanel != null)
    rbt_panelTopMargin = /*Tools_GetPosition(contentPanel).Top*/ + rbt_panelTopMargin;
  }

function RangeByType_NiftyLoad()
  {
  Nifty("div.rangeItem", "transparent");
  Nifty("div.InfoLinks");
  }

/**********************************************************************************/
/* Action responder */

function RangeByType_OnClose()
  {
  Tools_Show("infoPanel", false)
  if (rbt_selectedItem != null)
    {
    rbt_selectedItem.className = "rangeItem";
    rbt_selectedItem = null;
    }
  }

function RangeByType_SelectCurrent()
  {
  var params = Tools_GetQueryParams();
  var model = params["model"];

  var found = false;

  /*
  if (Tools_IsNullOrEmpty(model) == false && Tools_IsNullOrEmpty(grBody) == false)
    found = RangeByType_Select(model + "_" + grBody);
  else if (Tools_IsNullOrEmpty(rbt_toSelect) == false)
    found = RangeByType_Select(rbt_toSelect);
  */
  
  if (found == false)
    Tools_Show("infoPanel", true);
  }

function RangeByType_Select(toSelect)
  {
  var list = document.getElementById("contentPanel");
  if (list != null)
    {
    var divs = list.getElementsByTagName("div");
    for (var i = 0; i < divs.length; i++)
      if (divs[i].className == "rangeItem" && divs[i].id.indexOf(toSelect)>-1)
        {
        RangeByType_OnClick(divs[i]);
        return true;
        }
    }
  
  return false;
  }

/**********************************************************************************/
/* FadeIN/FadeOUT responder */

function RangeByType_OnOut()
  {
  rbt_currentItem = null;
  RangeByType_SetAllAlpha(100);
  }

function RangeByType_OnItemEnter(obj)
  {
  window.clearTimeout(rbt_currentTimer);
  if (rbt_currentItem != obj)
    {
    if (rbt_currentItem != null)
      {
      if (rbt_currentItem.className.indexOf("selected") == -1)
        Tools_Fade(rbt_currentItem.id, 100, 20);
      }
    else RangeByType_SetAllAlpha(20);
    
    rbt_currentItem = obj;
    if (rbt_currentItem.className.indexOf("selected") == -1)
      Tools_Fade(obj.id, 20, 100);
    }
  }

function RangeByType_OnItemOut(obj)
  {
  window.clearTimeout(rbt_currentTimer);
    rbt_currentTimer = window.setTimeout(RangeByType_OnOut, 1000);
  }


function RangeByType_SetAllAlpha(value)
  {
  var obj = document.getElementById("contentPanel");
  var items = obj.getElementsByTagName("div");
  if (items == null)
    return ;
  
  for (var i = 0; i < items.length; i++)
    {
    var item = items[i];
    if (item.className == "rangeItem" && rbt_currentItem != item)
      {
      // var start = (value == 100) ? 20 : 100;
      // Tools_Fade(item.id, start, value);
      Tools_SetAlpha(item.id, value);
      }
    }
  }

/**********************************************************************************/
/* Ajax responder */

function RangeByType_OnClick(obj, url)
  {
  if (obj.className.indexOf("selected") != -1)
    return;
  
  if (rbt_selectedItem != null)
    {
    rbt_selectedItem.className = "rangeItem";
    Tools_Fade(rbt_selectedItem.id, 100, 20);
    }

  rbt_selectedItem = obj;
  rbt_selectedItem.className = "rangeItem selected";
  
  RangeByType_UpdateInfoPanel(url);
  }

function RangeByType_UpdateInfoPanel(url)
  {
  if (rbt_selectedItem == null)
    {
    Tools_Show("infoPanel", false);
    return;
    }
  ajaxGet(url, RangeByType_UpdateInfoPanel_Callback);
  }

function RangeByType_UpdateInfoPanel_Callback(response)
  {
  Tools_Show("infoPanel", true);
  Tools_Show("welcomePanel", false);
  Tools_Show("closePanel", true);
  Tools_SetHtml("infoPanelContent", response);
  }

/**********************************************************************************/
/* Info panel */
                      
function RangeByType_UpdatePanel()
  {
  if (rbt_timer != null)
    clearTimeout(rbt_timer);
  rbt_timer = setTimeout(RangeByType_MovePanel, 200);
  }
    
function RangeByType_GetDistance()
  {
  var panel = document.getElementById("infoPanel");
  if (panel != null)
    {
    if (window.innerHeight)
      pos = window.pageYOffset
    else if (document.documentElement && document.documentElement.scrollTop)
      pos = document.documentElement.scrollTop
    else if (document.body)
      pos = document.body.scrollTop
    return pos - panel.offsetTop + rbt_panelTopMargin;
    }
  return 0;
  }

function RangeByType_MovePanel()
  {
  var panel = document.getElementById("infoPanel");
  if (panel == null)
    return ;
  var distance = RangeByType_GetDistance();
  if (Tools_Absolute(distance) > 0)
    {
    var direction = (distance > 0 ? 1 : -1);
    var velocity = Tools_Absolute(distance * 0.08);
    var speed = ((velocity < 1) ? 1 : velocity) * direction;
    panel.style.top = (panel.offsetTop + speed) + "px";
    if (rbt_timer != null)
      clearTimeout(rbt_timer);
    rbt_timer = setTimeout(RangeByType_MovePanel, 10);
    }
  else if (rbt_timer != null)
    {
    clearTimeout(rbt_timer);
    rbt_timer = null;
    }
  }

