// longueur totale visible en pixel
var ImageBar_VisibleWidth = 874;
// longueur totale des éléments en pixel
var ImageBar_TotalWidth = 874;
// le chemin vers le dossier des miniatures
var ImageBar_ThumbsDir = '../images/thumbs/';
// le chemin vers l'image spacer
var ImageBar_SpacerImage = '../images/charte/spacer.gif';
// l'espacement en pixel entre chaque images
var ImageBar_SpacerWidth = 10;
// la largeur des miniatures en pixel
var ImageBar_ThumbWidth = 100;
// la hauteur des miniatures en pixel
var ImageBar_ThumbHeight = 70;
// le prefix de l'id des images de la barre pour indequer leur index
var ImageBar_IndexIdPrefix = 'ImageBarIndex_';
// la liste des informations sur les images à afficher
var ImageBar_ImageListInfos;

// méthode de gestion du déplacement de la souris dans la barre d'image
function ImageBar_MonitorMouse(e, elementId)
{
	var divRef = document.getElementById(elementId); 
	var positionDiv = Common_GetElementPosition(divRef);
	var marginLeftCorrection = 40;
	var marginRightCorrection = 10;
	
	Common_UpdateMousePositions(e);

	var diffx = Common_currentMousePositionX - positionDiv.x;
	var diffxPrc = 100 - ( ImageBar_VisibleWidth - diffx ) * 100 / ImageBar_VisibleWidth;
	var leftDiv = marginLeftCorrection + diffxPrc * (ImageBar_TotalWidth + marginRightCorrection - ImageBar_VisibleWidth) / 100;
	
	ImageBar_ScrollInnerDiv('Inner'+elementId, leftDiv);
}

function ImageBar_ScrollInnerDiv(elementId, delta)
{
	var innerDiv = document.getElementById(elementId);	

	// on ne déplace la barre qui si elle dépasse du cadre total
	//if( ImageBar_VisibleWidth < ImageBar_TotalWidth)
		innerDiv.style.left = -delta+'px';
}

// méthode d'ajout d'une image dans la barre d'image
function ImageBar_WriteImage(imageObject, clickHandler)
{
	// méthode pour ie
	if( Common_currentBrowser.ie6 || Common_currentBrowser.ie5 || Common_currentBrowser.ie4 ) 
	{
		var imageNode = document.createElement('div');
		
		// création de l'objet
		imageNode.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + imageObject.src + "', sizing='image')";
		imageNode.style.width = imageObject.width + "px";
        imageNode.style.height = imageObject.height + "px";
		
		// pour pouvoir connaitre la source lors d'un clic
		imageNode.setAttribute('src', imageObject.src);
	}
	// méthode standard pour les navigateurs potables
	else
	{
		var imageNode = document.createElement('img');

		// création de l'objet
		imageNode.setAttribute('src', imageObject.src);
	    imageNode.setAttribute('width',  imageObject.width);
	    imageNode.setAttribute('height', imageObject.height);
	}
	
	imageNode.id = imageObject.id;
	imageNode.style.cursor = 'pointer';
	imageNode.className = "Block FloatLeft";
	imageNode.style.position = 'relative';
		
	if (imageNode.addEventListener)
      	imageNode.addEventListener('click', eval(clickHandler), false);

	else if (imageNode.attachEvent)
      	imageNode.attachEvent('onclick', eval(clickHandler) );

	return imageNode;
}

// ajout d'un espacement
function ImageBar_WriteSpacer()
{
	var imageNode = document.createElement('img');
	
	imageNode.setAttribute('src', ImageBar_SpacerImage);
    imageNode.style.position = 'relative';
    imageNode.style.width = ImageBar_SpacerWidth+'px';
    imageNode.style.height = '1px';
    imageNode.className = "Block FloatLeft";
    
    return imageNode;
}

// méthode de construction du contenu de la barre d'images
function ImageBar_BuildImageBar( containerId, imageInfos, clickHandler )
{
	var container = document.getElementById(containerId);
	var middle = 0;
	
	// ajout du premier spacer
	var currentImage = new Image(ImageBar_SpacerWidth, 1);
	container.appendChild( ImageBar_WriteSpacer() );

	// mise à jour de la taille totale de la barre
	ImageBar_TotalWidth = ImageBar_SpacerWidth;
				
	// parcours des images à ajouter
	for(i=0; i < imageInfos.length; i++)
	{
		// ajout de l'image courante
		currentImage = new Image(ImageBar_ThumbWidth, ImageBar_ThumbHeight);
		currentImage.src = ImageBar_ThumbsDir+imageInfos[i].ThumbUrl;
		currentImage.id = imageInfos[i].Id;
		container.appendChild( ImageBar_WriteImage(currentImage, clickHandler) );
		ImageBar_TotalWidth += ImageBar_ThumbWidth;
		
		// ajout d'un spacer
		if( i < imageInfos.length-1) 
		{
			currentImage = new Image(ImageBar_SpacerWidth, 1);
			container.appendChild( ImageBar_WriteSpacer() );
			ImageBar_TotalWidth += ImageBar_SpacerWidth;
		}
	}
	
	middle = (ImageBar_VisibleWidth - ImageBar_TotalWidth) / 2;
	container.style.left = middle+'px';
	container.style.width = ImageBar_TotalWidth+'px';
}