
var Discover_URL = null;
var rbt_currentItem = null;
var rbt_selectedItem = null;
var rbt_timer = null;
var rbt_timerExit = null;
var rbt_panelTopMargin = 0;

function RangeByType_OnLoad()
{
	RangeByType_SyncHeights();
}

// Retrouve la hauteur maximale d'un élément pour chaque
// groupe puis ajuste la hauteur des autres éléments
function RangeByType_SyncHeights()
{
	var list = document.getElementById("contentPanel");
	if (list != null)
	{
		var categories = Tools_FindAllByClass(list, "div", "RangeItems");
		Tools_ForEach(categories, function (category)
		{
			var maxHeight = 0;
			var items = Tools_FindAllByClass(category, "div", "ItemBody");
			Tools_ForEach(items, function (item) { maxHeight = Tools_Max(item.offsetHeight, maxHeight) });
			Tools_ForEach(items, function (item) { item.style.height = maxHeight + "px"; });
		});
	}
}

function RangeByType_OnClose()
{
	Tools_Show("topTabLabel", false);
	Tools_Show("infoPanel", false);
	if (rbt_selectedItem != null)
	{
		rbt_selectedItem.className = "RangeItem";
		rbt_selectedItem = null;
	}
}

function RangeByType_OnOut()
{
	rbt_currentItem = null;
}


function RangeByType_OnItemEnter(obj)
{
	if (rbt_timer != null)
		window.clearTimeout(rbt_timer);
	rbt_timer = setTimeout(function()
	{
		RangeByType_OnClick(obj);
		if (rbt_currentItem != obj)
			rbt_currentItem = obj;
		RangeByType_ShowPanel();
	}, 500);
}

function RangeByType_OnItemOut(obj)
{
	window.clearTimeout(rbt_timer);
}

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";
	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, 8);
	var derivedModel = rbt_selectedItem.id.substr(14, 8);
	var count = rbt_selectedItem.id.substr(23); 
		
	var params = Tools_GetQueryParams();
	var categoryType = params["RangeCategoryType"];
	if (categoryType == null)
		categoryType = rbt_categoryType;
	
	var parameters = new Array();
	parameters["model"] = model;
	parameters["derivedModel"] = derivedModel;
	parameters["grBody"] = grBody;
	parameters["category"] = category;
	parameters["categoryType"] = categoryType;
	parameters["count"] = count;
	parameters["vehicleUse"] = Tools_Default(Tools_Default(params["vehicleUse"], params["VehicleUse"]), "VP");
	parameters["language"] = Tools_Default(params["language"], params["Language"]);
	parameters["languageAO"] = Tools_Default(params["languageAO"], params["LanguageAO"]);

	var infoPrice = document.getElementById("infoPrice");
	if (infoPrice != null)
	{
		var priceLabel = Tools_FindByClass(rbt_selectedItem, "div", "PriceLabel");
		if (priceLabel != null)
			infoPrice.innerHTML = Tools_Trim(priceLabel.innerHTML);
	}
	
	var infoPanel = document.getElementById("infoPanelContent");
	var infosLoading = document.getElementById("infosLoading");
	if (infoPanel != null && infosLoading != null)
	{
		infosLoading.style.height = infoPanel.offsetHeight + "px";
		infosLoading.style.display = "block";
	}
	Ajax_Execute(location.pathname, "GetInfos", parameters, RangeByType_UpdateInfoPanel_Callback);
}

function Discover()
{
	document.location=Discover_URL;
}

function RangeByType_UpdateInfoPanel_Callback(response)
{
	Tools_Show("infosLoading", false)
	if (Tools_IsNullOrEmpty(response["error"]) == false || rbt_selectedItem == null)
	{
		Tools_Show("infoPanel", false);
		return ;
	}
	
	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" height="121px" 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";
			if (Tools_EndsWith(source, "png") && document.body.className == "IE6")
				doFix(infoImageExt);
		}
		Discover_URL = response["a_url"];
	}

	// Rend la grande image de droite cliquable.
	// (le lien mène vers la page découverte si elle existe)
	var infoImageExtLink = document.getElementById("infoImageExtLink");
	if (infoImageExtLink != null)
	{
		var discoveryUrl = response["a_url"];
		infoImageExtLink.href = (discoveryUrl != null) ? discoveryUrl : "#";
		
		var imageNotFoundOnMouse = response["ext_src_mouseOver"];
		if (imageNotFoundOnMouse != null)
			ImageTools_SetImageNotFoundOnMouse(infoImageExtLink, imageNotFoundOnMouse);
	}

	Tools_Show("infoLinkA", false);
	if (Tools_IsNullOrEmpty(response["a_label"]) == false)
	{
		RangeByType_SetLink("infoLinkA", response["a_url"], response["a_label"]);
		Tools_Show("infoLinkA", true);
	}
	
	Tools_Show("infoLinkB", false);
	if (Tools_IsNullOrEmpty(response["b_url"]) == false)
	{
		RangeByType_SetLink("infoLinkB", response["b_url"], response["b_label"]);
		Tools_Show("infoLinkB", true);
	}
	
	Tools_Show("infoLinkC", false);
	if (Tools_IsNullOrEmpty(response["c_url"]) == false)
	{
		RangeByType_SetLink("infoLinkC", response["c_url"], response["c_label"]);
		Tools_Show("infoLinkC", true);
	}
	
	Tools_Show("infoDesc", false);
	if (Tools_IsNullOrEmpty(response["desc"]) == false)
	{
		Tools_SetHtml("infoDesc", response["desc"]);
		Tools_Show("infoDesc", true);
	}
			
	Tools_Show("tutorialLayer", false);
	Tools_Show("classicLayer", true);
	Tools_Show("closeLabel", true);
	Tools_Show("infoPanel", true);
	Tools_Show("topTabLabel", true);
}

function RangeByType_SetLink(id, url, label)
{
	var button = $('#' + id);
	button.attr("href", url);
	button.find(".ButtonText").html(label);
}

function RangeByType_ShowPanel()
{
	var panel = document.getElementById("infoPanel");
	if (panel != null && rbt_currentItem != null)
	{
		var topTabLabel = document.getElementById("topTabLabel");
		topTabLabel.innerHTML = "";
		topTabLabel.style.display = (panel.style.display == "block") ? "block" : "none";
		topTabLabel.style.left = Tools_GetPosition(rbt_selectedItem).Left + "px";
		
		var top = Tools_GetPosition(rbt_selectedItem).Top;
		if (document.body.className.indexOf("Safari") != -1)
			top -= 5;
		
		topTabLabel.style.top = (top - 5) + "px";
		panel.style.top = (top + 15) + "px";
		panel.style.left = "0px";
	}
}

function RangeByType_OnInfosExit()
{
	RangeByType_OnClose();
}


