

var rbt_currentItem = null;
var rbt_currentTimer = null;
var rbt_selectedItem = null;
var rbt_timer = null;
var rbt_panelTopMargin = 10;
// var rbt_sending = false;

function RangeByType_OnLoad()
{
	RangeByType_NiftyLoad();
	RangeByType_SelectCurrent();
	RangeByType_UpdatePanel();
}

function RangeByType_NiftyLoad()
{
	Nifty("td.UpRoundedBox", "top");
	Nifty("td.DownRoundedBox", "bottom");
	Nifty("div.RangeItem", "transparent");
	Nifty("div.InfoLinks");
}

function RangeByType_SelectCurrent()
{
	var params = Tools_GetQueryParams();
	var model = params["Model"];
	var grBody = params["GrBodyStyle"];
	
	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)
	{
		// Mode tutorial
		Tools_Show("tutorialLayer", true);
		Tools_Show("classicLayer", false);
		Tools_Show("closeLabel", false);
		Tools_Show("infoPanel", true);
	}
}

function RangeByType_Select(toSelect)
{
	Tools_Show("tutorialLayer", false);
	Tools_Show("classicLayer", true);
	Tools_Show("closeLabel", true);

	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 == toSelect)
			{
				RangeByType_OnClick(divs[i]);
				return true;
			}
	}
	
	return false;
}

function RangeByType_OnClose()
{
	Tools_Show("infoPanel", false)
	if (rbt_selectedItem != null)
	{
		rbt_selectedItem.className = "RangeItem";
		rbt_selectedItem = null;
	}
}

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);
		}
	}
}


function RangeByType_OnClick(obj)
{
	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();
}


// Mise à jour du bloc d'informations en fonction du
// couple modèle / regroupement de silhouettes choisi
function RangeByType_UpdateInfoPanel()
{
	if (rbt_selectedItem == null)
	{
		Tools_Show("infoPanel", false);
		return ;
	}
	
	var category = rbt_selectedItem.parentNode.id;
	var model = rbt_selectedItem.id.substr(0, 4);
	var grBody = rbt_selectedItem.id.substr(5); 
	
	var queryParams = Tools_GetQueryParams();
	var categoryType = queryParams["RangeCategoryType"];
	
	var params = new Array();
	params["model"] = model;
	params["grBody"] = grBody;
	params["category"] = category;
	params["categoryType"] = categoryType;

	var infoPrice = document.getElementById("infoPrice");
	if (infoPrice != null)
	{
		var priceLabel = Tools_SelectByClass(rbt_selectedItem, "PriceLabel");
		if (priceLabel != null)
			infoPrice.innerHTML = Tools_Trim(priceLabel.innerHTML);
	}
	
	// rbt_sending = true;
	Ajax_Execute(location.pathname, "GetInfos", params, RangeByType_UpdateInfoPanel_Callback);
}


function RangeByType_UpdateInfoPanel_Callback(response)
{
	// rbt_sending = false;
	
	var source = response["ext_src"];
	Tools_Show("infoImageExt", false);
	Tools_Show("infoAnimExt", false);
	Tools_SetHtml("infoAnimExt", "");
	
	if (Tools_EndsWith(source, ".swf"))
	{
		var infoAnimExt = document.getElementById("infoAnimExt");
		if (infoAnimExt != null)
		{
			Tools_Show("infoAnimExt", true);
			infoAnimExt.innerHTML = '<embed quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" src="' + source + '"/>';
			infoAnimExt.style.display = "block";
		}
	}
	else
	{
		var infoImageExt = document.getElementById("infoImageExt");
		if (infoImageExt != null)
		{
			Tools_Show("infoImageExt", true)
			infoImageExt.src = source;
			infoImageExt.style.display = "block";
		}
	}

	var infoImageLabel = document.getElementById("infoImageLabel");
	if (infoImageLabel != null)
		infoImageLabel.src = response["label_src"];

	RangeByType_SetLink("infoLinkA", response["a_url"], response["a_label"]);
	RangeByType_SetLink("infoLinkB", response["b_url"], response["b_label"]);
		
	Tools_Show("tutorialLayer", false);
	Tools_Show("classicLayer", true);
	Tools_Show("infoLinkC", false);
	Tools_Show("closeLabel", true);
	
	if (Tools_IsNullOrEmpty(response["error"]))
	{
		if (Tools_IsNullOrEmpty(response["c_url"]) == false)
		{
			RangeByType_SetLink("infoLinkC", response["c_url"], response["c_label"]);
			Tools_Show("infoLinkC", true);
		}
		if (Tools_IsNullOrEmpty(response["desc"]) == false)
		{
			Tools_SetHtml("infoDesc", response["desc"]);
			Tools_Show("infoDesc", true);
		}
		Tools_Show("infoPanel", true);	
	}
	else
		Tools_Show("infoPanel", false);
}


function RangeByType_SetLink(id, url, label)
{
	var link = document.getElementById(id);
	if (link != null)
	{
		link.href = url;
		link.innerHTML = label;
	}
}

											
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)
		return document.body.scrollTop - 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;
	}
}