var ImageScroller = function(_imageScrollerParentDivID, _imageScrollerChildDivID) {
		_imageScrollerParentDivID = getElem(_imageScrollerParentDivID);
		_imageScrollerChildDivID = getElem(_imageScrollerChildDivID);
		
		var prImagePaths = new Array();
		var prImageAltText = new Array();	
		var prImageClicks = new Array();
		var prImageDescription = new Array();
		var prImageTitreLegende = new Array();
		var prImageLegende = new Array();
			
		var iNumOfThumbsShown = 1;	
		var iNumOfImages;
		
		var bAutoScroll = 0; //0=false, 1=true
		var iScrollDelay = 2000;
		var bScrollDirection = 1; //0=back, 1=forward
		var bAutoReverse = 1; //0=false, 1=true
		
		var bEnableThumbBorder = 0; //0=no, 1=yes
		var bEnableCurrentCount = 0; //0=no, 1=yes
		var bEnableThumbDescription = 1; //0=no, 1=yes
		var bClickOpenType = 0;//0=same window, 1=new window
		var objCounterDiv = "";
		var objDescriptionDiv = "";
		
		var iSmoothSlideInterval = 3;
		var iSmoothSlideAmount = 7;
		var moveTimer;
		
		this.THUMB_HEIGHT = 62;
		this.THUMB_WIDTH = 62;
		this.THUMB_PADDING = 5;
		var CURRENT_THUMB_INDEX = 1;
		var NEW_REVERSE_OFFSET = 0;
		var MAX_REVERSE_OFFSET = 0;		
		var NEW_FORWARD_OFFSET = 0;
		var IS_SCROLLING = false;
		
		//* BEGIN FUNCTIONS *//
		this.enableThumbnailDescription = function(_descriptionDivID) {
			bEnableThumbDescription = 1;
			objDescriptionDiv = _descriptionDivID;
		};
		
		this.setClickOpenType = function(_openType) {
			if (_openType == 0 || _openType == 1) {
				bClickOpenType = _openType;
			}
		};
		
		this.enableCurrentCount = function(_counterDivID) {
			bEnableCurrentCount = 1;
			objCounterDiv = _counterDivID;
		};
				
		this.enableThumbBorder = function(_boolean) {
			bEnableThumbBorder = _boolean;
		};
		
		this.setThumbsShown = function(_newNumOfThumbsShown) {
			iNumOfThumbsShown = parseInt(_newNumOfThumbsShown);
		};
		
		this.addThumbnail = function(_thumbnailURL, _fullClickURL, _thumbnailAlt, _thumbnailDescription, _thumbnailLegendeTitre, _thumbnailLegende ) {
			prImagePaths[prImagePaths.length] = _thumbnailURL;
			prImageClicks[prImageClicks.length] = _fullClickURL;
			prImageAltText[prImageAltText.length] = _thumbnailAlt;
			prImageDescription[prImageDescription.length] = _thumbnailDescription;
			prImageTitreLegende[prImageTitreLegende.length] = _thumbnailLegendeTitre;
			prImageLegende[prImageLegende.length] = _thumbnailLegende;
		};
		
		this.setThumbnailHeight = function(_newThumbHeight) {
			this.THUMB_HEIGHT = _newThumbHeight;
		};
		
		this.getThumbnailHeight = function() {
			return this.THUMB_HEIGHT;
		};
		
		this.setThumbnailWidth = function(_newThumbWidth) {
			this.THUMB_WIDTH = _newThumbWidth;
		};
		
		this.getThumbnailWidth = function() {
			return this.THUMB_WIDTH;
		};
		
		this.setThumbnailPadding = function(_newThumbPadding) {
			this.THUMB_PADDING = _newThumbPadding;
		};
		
		this.getThumbnailPadding = function() {
			return THUMB_PADDING;
		};
		
		this.getCurrentThumbIndex = function() {
			return CURRENT_THUMB_INDEX;
		};
		
		this.getThumbnailCount = function() {
			return iNumOfImages;
		};
		
		this.renderScroller = function() {
			iNumOfImages = prImagePaths.length;
			if (iNumOfThumbsShown > iNumOfImages) {
				iNumOfThumbsShown = iNumOfImages;
			}
			
			MAX_REVERSE_OFFSET = 0 - (iNumOfImages - iNumOfThumbsShown) * this.THUMB_WIDTH;
			if (this.THUMB_PADDING > 0) {
				MAX_REVERSE_OFFSET =  MAX_REVERSE_OFFSET - (iNumOfImages * (this.THUMB_PADDING * 2));
			}		
			if (bEnableThumbBorder == 1) {
				MAX_REVERSE_OFFSET = MAX_REVERSE_OFFSET - (iNumOfImages * 4);
			}
			
			_imageScrollerParentDivID.style.width = (this.THUMB_WIDTH * iNumOfThumbsShown) + (iNumOfThumbsShown * (this.THUMB_PADDING * 2)) + "px";
			if (bEnableThumbBorder == 1) {
				_imageScrollerParentDivID.style.width = (parseInt(_imageScrollerParentDivID.style.width) + (iNumOfThumbsShown * 4)) + "px";
			}
			
			_imageScrollerParentDivID.style.height = this.THUMB_HEIGHT + (this.THUMB_PADDING * 2) + "px";
			if (bEnableThumbBorder == 1) {
				_imageScrollerParentDivID.style.height = (parseInt(_imageScrollerParentDivID.style.height) + 4) + "px";
			}
			
			_imageScrollerChildDivID.style.width = (this.THUMB_WIDTH * iNumOfImages) + (iNumOfImages * (this.THUMB_PADDING * 2)) + "px";
			if (bEnableThumbBorder == 1) {
				_imageScrollerChildDivID.style.width = (parseInt(_imageScrollerChildDivID.style.width) + (iNumOfImages * 4)) + "px";
			}
			var _sHTML = "";
			for (i = 0; i < iNumOfImages; i++) {
				<!--begin href build-->
				if (prImageClicks[i].length > 0) {
                                    _sHTML += '<a href="#"';
                                    //_sHTML +='onclick="javascript:document.getElementById(\'preview_img\').src=\''+prImageClicks[i]+'\';document.getElementById(\'thumb_desc\').innerHTML=\'<p>'+prImageDescription[i]+'</p>\';document.getElementById(\'titre_legende\').innerHTML=\''+prImageTitreLegende[i]+'\';document.getElementById(\'legende_content\').innerHTML=\'<p>'+prImageLegende[i]+'</p>\';cacher(); document.getElementById(\'thumb_active'+i+'\').style.display=\'block\';"';
                                    _sHTML +='onclick="javascript:cacher(); document.getElementById(\'thumb_active'+i+'\').style.display=\'block\';showContenu('+i+');"';
                                    _sHTML += ' alt="' + prImageAltText[i] + '"';
                                    /*if (bClickOpenType == 1) {
                                            _sHTML += ' target="_blank"';
                                    }*/
                                    _sHTML += ' title="' + prImageAltText[i] + '"';
                                    _sHTML += '>';
				}
                                <!--begin image build-->
                                _sHTML += '<img src="' + prImagePaths[i] + '"';
                                if (bEnableThumbBorder == 0) {
                                        _sHTML += ' border="0"';
                                }
                                _sHTML += ' style="margin: ' + this.THUMB_PADDING + 'px;;"';
                                _sHTML += ' width="' + this.THUMB_WIDTH + '"';
                                _sHTML += ' height="' + this.THUMB_HEIGHT + '"';
                                _sHTML += ' /><div class="thumb_active" id="thumb_active'+i+'"><img src="/images/maison-passive/fleche_top.gif" /></div>';
                                <!--end image build-->
				<!--end href build-->
				if (prImageClicks[i].length > 0) {
					_sHTML += '</a>';
				}
			}
			
			document.write(_sHTML);
			
			//show the first image
                        document.getElementById("preview_img").src=prImageClicks[0];
                        document.getElementById("thumb_active0").style.display="block";
                        //document.getElementById("thumb_desc").innerHTML="<p>"+prImageDescription[0]+"</p>";
                        //document.getElementById("titre_legende").innerHTML=prImageTitreLegende[0];
                        //document.getElementById("legende_content").innerHTML='<p>'+prImageLegende[0]+'</p>';
			
			if (bEnableCurrentCount == 1) {
				addAnEvent(window, "load", this.updateCurrentCount);
			}
			if (bEnableThumbDescription == 1) {
				addAnEvent(window, "load", this.updateCurrentDescription);
			}
		};
		
		this.scrollReverse = function() {
			_origOffset = parseInt(_imageScrollerChildDivID.style.left);
			_currentOffset = parseInt(_imageScrollerChildDivID.style.left);
			_newOffset = _currentOffset + this.THUMB_WIDTH;
			if (this.THUMB_PADDING > 0) {
				_newOffset = _newOffset + (this.THUMB_PADDING * 2);
			}
			if (bEnableThumbBorder == 1) {
				_newOffset = _newOffset + 4;
			}
			if (_newOffset <= 0) {
				if(_currentOffset > (_origOffset - this.THUMB_WIDTH)) {
					if (IS_SCROLLING == false) {
						NEW_REVERSE_OFFSET = _newOffset;
						moveScrollerRight();
					}
				}
			}
		};
		
		this.scrollForward = function() {
			_origOffset = parseInt(_imageScrollerChildDivID.style.left);
			_currentOffset = parseInt(_imageScrollerChildDivID.style.left);
			_newOffset = _currentOffset - this.THUMB_WIDTH;
			if (this.THUMB_PADDING > 0) {
				_newOffset = _newOffset - (2 * this.THUMB_PADDING);
			}
			if (bEnableThumbBorder == 1) {
				_newOffset = _newOffset - 4;
			}
			if (IS_SCROLLING == false && _newOffset >= MAX_REVERSE_OFFSET) {
				NEW_FORWARD_OFFSET = _newOffset;
				moveScrollerLeft();
			}
		};
		
		this.scrollEnd = function() {
			if (IS_SCROLLING == false) {
				NEW_FORWARD_OFFSET = MAX_REVERSE_OFFSET;
				CURRENT_THUMB_INDEX = iNumOfImages - iNumOfThumbsShown;
				moveScrollerLeft();
			}
		};
		
		this.scrollBegin = function() {
			if (IS_SCROLLING == false) {
				NEW_REVERSE_OFFSET = 0;
				CURRENT_THUMB_INDEX = 2;
				moveScrollerRight();
			}
		};
		
		this.updateCurrentDescription = function() {
			//getElem(objDescriptionDiv).innerHTML = prImageDescription[CURRENT_THUMB_INDEX - 1];
		};
		
		this.updateCurrentCount = function() {
			getElem(objCounterDiv).innerHTML = CURRENT_THUMB_INDEX + "/" + iNumOfImages;
		};
		
		function moveScrollerRight() {
			_ElementObj = _imageScrollerChildDivID;
			_currentOffset = parseInt(_ElementObj.style.left);
			
			if (_currentOffset < NEW_REVERSE_OFFSET && (_currentOffset + iSmoothSlideAmount) <= NEW_REVERSE_OFFSET) {
				_ElementObj.style.left = _currentOffset + iSmoothSlideAmount + "px";
				IS_SCROLLING = true;
				moveTimer = window.setTimeout(moveScrollerRight, 10);
			} else if (_currentOffset < NEW_REVERSE_OFFSET) {
				_ElementObj.style.left = _currentOffset + 1 + "px";
				IS_SCROLLING = true;
				moveTimer = window.setTimeout(moveScrollerRight, 10);			
			} else {
				IS_SCROLLING = false;
				CURRENT_THUMB_INDEX--;
				window.clearTimeout(moveTimer);
				if (bEnableThumbDescription == 1) {
					getElem(objDescriptionDiv).innerHTML = prImageDescription[CURRENT_THUMB_INDEX - 1];
				}
				if (bEnableCurrentCount == 1) {
					getElem(objCounterDiv).innerHTML = CURRENT_THUMB_INDEX + "/" + iNumOfImages;
				}
			}
		};
		
		function moveScrollerLeft() {
			_ElementObj = _imageScrollerChildDivID;
			_currentOffset = parseInt(_ElementObj.style.left);
			if (_currentOffset > NEW_FORWARD_OFFSET && (_currentOffset - iSmoothSlideAmount) >= NEW_FORWARD_OFFSET) {
				_ElementObj.style.left = _currentOffset - iSmoothSlideAmount + "px";
				IS_SCROLLING = true;
				moveTimer = window.setTimeout(moveScrollerLeft, 10);
			} else if (_currentOffset > NEW_FORWARD_OFFSET) {
				_ElementObj.style.left = _currentOffset - 1 + "px";
				IS_SCROLLING = true;
				moveTimer = window.setTimeout(moveScrollerLeft, 10);
			} else {
				IS_SCROLLING = false;
				CURRENT_THUMB_INDEX++;
				window.clearTimeout(moveTimer);
				if (bEnableThumbDescription == 1) {
					getElem(objDescriptionDiv).innerHTML = prImageDescription[CURRENT_THUMB_INDEX - 1];
				}
				if (bEnableCurrentCount == 1) {
					getElem(objCounterDiv).innerHTML = CURRENT_THUMB_INDEX + "/" + iNumOfImages;
				}
			}
		};
		
		function addAnEvent(_obj, _eventName, _functionName) {
			if (window.addEventListener) {
				_obj.addEventListener(_eventName, _functionName, false);
			} else {
				_obj.attachEvent("on" + _eventName, _functionName);
			}
		};
		
		function getElem(_elemID) {
			return document.getElementById(_elemID);
		};
		function afficher(i){
			alert(i);
			}
	};
