
	function partnerLogos( placeHolderID, imgURLPrefix, imgData, loadTimeout )
	{
		this.placeHolderEl	= document.getElementById ( placeHolderID );
		this.imgURLPrefix	= imgURLPrefix;
		this.imgData		= imgData;
		this.loadTimeout	= loadTimeout * 1000;
		this.interval		= null;
		
		this.loadImageByNumber( 0 );
	}

	partnerLogos.prototype.fireLoad = function()
	{
		if ( this.interval != null )
			return;
		
		var loader = this;
		this.interval = window.setTimeout( function() { loader.loadImage(); }, this.loadTimeout );
	};
	
	partnerLogos.prototype.stop = function()
	{
		if ( this.interval == null )
			return;
		
		window.clearInterval( this.interval );
		this.interval = null;
	};
	
	partnerLogos.prototype.loadImage = function()
	{
		if ( ! this.placeHolderEl )
			return false;
	
		this.loadImageByNumber ( Math.floor ( Math.random() * this.imgData.length ) );
		return true;
	};
	
	partnerLogos.prototype.loadImageByNumber = function ( number )
	{
		var data		= this.imgData [ number ];
		var objImage	= new Image();
		var loader		= this;
		
		objImage.onload = function() { loader.loadedImage( data[0], loader.imgURLPrefix + data[1], data[2], data[3] ); };
		objImage.src	= this.imgURLPrefix + data[1];
	};
	
	partnerLogos.prototype.loadedImage = function( href, src, alt, note )
	{
		var pEl = document.createElement( 'p' );
		
		var iEl = document.createElement( 'img' );
		iEl.src		= src;
		iEl.alt		= alt;

		var loader = this;
		iEl.onmouseover = function() { loader.stop(); };
		iEl.onmouseout	= function() { loader.fireLoad(); };
		
		if ( href == null )
			pEl.appendChild( iEl );
		else
		{
			var aEl = document.createElement( 'a' );
			aEl.href	= href;
			aEl.title	= alt;
			aEl.onclick	= function() { return ! window.open(href); };
			
			pEl.appendChild( aEl );
			aEl.appendChild( iEl );
		}
		
		var nEl = document.createElement( 'p' );
		nEl.className = 'note';
		nEl.innerHTML = note;
		
		pEl.appendChild ( nEl );
		
		while ( this.placeHolderEl.hasChildNodes() )
			this.placeHolderEl.removeChild ( this.placeHolderEl.lastChild );
		
		this.placeHolderEl.appendChild ( pEl );
		
		this.interval = null;
		this.fireLoad();
	};
	
