function spImageHandler( path , names , count )
{
	this.path = path;
	this.names = names;
	this.titles = new Array;
	this.files = new Array;
	this.width = new Array;
	this.height = new Array;
	this.thumbwidth = new Array;
	this.thumbheight = new Array;

	this.count = count;
	this.offset = 0;
	this.index = 0;

	this.maxheight = 320;
	this.maxwidth = 480;

	this.thumbmin = 30;
	this.thumbmax = 50;

	this.thumbs = 0;
	this.thumbf = 8;

	this.CheckLoaded = function()
	{
		this.loaded = true;

//alert('CheckLoaded started ' + this.loaded );
		for ( var i = 0; i != this.count; i++) {  
    
			this.file = this.path + this.names[i];
			this.image = new Image();
			this.image.src = this.file;
		
			if ( ! this.image.complete ) {
				this.loaded = false;
			}
		}
		if ( this.loaded )
		{  	
alert('CheckLoaded finished ' + this.loaded );
		}
	}

	this.DisplayImage = function( index )
	{
		this.SetFile( index + this.thumbs );
		this.SetCounter();
		this.SetImage();
		this.SetTitle();
	}

	this.DisplayImages = function()
	{
		this.SetIndex();
		this.SetCounter();
		this.SetImage();
		this.SetTitle();
		this.DisplayThumbnails(this.thumbs,this.thumbf);
	}

	this.DisplayThumbnails = function( start, finish )
	{
//alert('thumbnails '+start+' '+finish);
		index = 0;
		for ( var i = start; i <= finish; i++) {  
    
			this.thumb = new String(index);

			this.thumb = this.thumb.toString();
			this.nail = "thumbnail";
			this.thumbnail = this.nail.concat(this.thumb);
//alert('thumbnail ' + this.thumbnail);
			this.SetThumbnail( this.thumbnail , i );
			index = index + 1;
		}
		
	}

	this.GetMid = function()
	{
		this.index = Math.round( this.count / 2 );		 
	}

	this.LoadImages = function()
	{
		for ( var i = 0; i < this.count; i++) {  
    
			this.file = this.path + this.names[i];
			this.image = new Image();
			this.image.src = this.file;

		}
	}

	this.LoadGalleriaImages = function( btype )
	{
//alert('Load Images' + btype );
		if ( btype != 'firefox' ) {
//			galleria.style.display = 'none';
		}
		for ( var i = 0; i < this.count; i++) {  
    
			this.file = this.path + this.names[i];
			this.files[i] = this.file;
			this.image = new Image();
			this.image.src = this.file;

		}
		if ( btype != 'firefox' ) {
//			galleria.style.display = 'inline';
		}
	}

	this.LoadViewerImages = function( btype )
	{
//alert('Load Images' + btype );
		if ( btype != 'firefox' ) {
		}
		for ( var i = 0; i < this.count; i++) {  
    
			this.SetFile(i);

		}
	}

	this.ScaleImage = function()
	{
		if ( this.height[this.index] > this.width[this.index] ) {
			this.scale = ( this.maxheight / this.height[this.index] );
			this.height[this.index] = this.height[this.index] * this.scale;
			this.width[this.index] = this.width[this.index] * this.scale;
			this.thumbheight[this.index] = this.thumbmin;
			this.thumbwidth[this.index] = this.thumbmin;

		} else {
			this.scale = ( this.maxwidth / this.width[this.index] );
			this.height[this.index] = this.height[this.index] * this.scale;
			this.width[this.index] = this.width[this.index] * this.scale;
			this.thumbheight[this.index] = this.thumbmin;
			this.thumbwidth[this.index] = this.thumbmax;

		}

		if ( this.height[this.index] > this.maxheight ) {
			this.height[this.index] = this.maxheight;
		}
		if ( this.width[this.index] > this.maxwidth ) {
			this.width[this.index] = this.maxwidth;
		}

	}

	this.ScrollLeft = function()
	{
		if ( this.index != 0 ) {
			this.index = this.index - 1;
		}
		else {
			this.index = this.count-1;
		}
		this.SetFile( this.index );
		this.SetCounter();
		this.SetImage();
		this.SetTitle();

		if ( this.index == this.count-1 ) {
			this.thumbs = this.count-9;
			this.thumbf = this.count;
		}
		else if ( this.thumbf > 9 )
			{
				this.thumbs = this.thumbs - 1;
				this.thumbf = this.thumbf - 1;
			}
		this.DisplayThumbnails( this.thumbs , this.thumbf );

	}
	
	this.ScrollRight = function()
	{
		if ( this.index != this.count-1 ) {
			this.index = this.index + 1;
		}
		else {
			this.index = 0;
		}
		this.SetFile( this.index );
		this.SetCounter();
		this.SetImage();
		this.SetTitle();

		if ( this.thumbf == this.count ) {
			this.thumbs = 0;
			this.thumbf = 8;
		}
		else
		{
			this.thumbs = this.thumbs + 1;
			this.thumbf = this.thumbf + 1;
		}
		this.DisplayThumbnails( this.thumbs , this.thumbf );
	}

	this.SetCounter = function()
	{
		this.counter = new String(this.index+1);
		this.total = new String(this.count);
		this.counter = this.counter.concat(' / ',this.total);
		document.getElementById("counterpanel").innerHTML=this.counter;
	}

	this.SetFiles = function()
	{
		for ( var i = 0; i < this.count; i++) {  
			this.SetFile(i);
		}

	}

	this.SetFile = function( index )
	{
			this.file = this.path + this.names[index];
			this.files[index] = this.file;
			this.index = index;
			
			this.image = new Image();
			this.image.src = this.files[index];
			this.width[index] = this.image.width;
			this.height[index] = this.image.height;

			this.ScaleImage();
	}

	this.SetOpacity = function( value )
	{
		document.images["viewerimage"].style.opacity = value/10;
		document.images["viewerimage"].style.filter = 'alpha(opacity=' + value*10 + ')';
	}

	this.SetImage = function()
	{
//alert('index ' + this.index);
//alert('files ' + this.files[this.index]);
		document.images["viewerimage"].src = this.files[this.index];
		document.images["viewerimage"].width = this.width[this.index];
		document.images["viewerimage"].height = this.height[this.index];
//		this.SetOpacity(10);
	}

	this.SetIndex = function()
	{
		this.index = 0;
	}
	
	this.SetThumbnail = function( thumbnail , index )
	{
//alert('Set thumbnail ' + thumbnail );
		switch ( thumbnail ) {

			case 'thumbnail0' :
							document.images["thumbnail0"].src = this.files[index];
							document.images["thumbnail0"].width = this.thumbwidth[index];
							document.images["thumbnail0"].height = this.thumbheight[index];
							break;
			case 'thumbnail1' :
							document.images["thumbnail1"].src = this.files[index];
							document.images["thumbnail1"].width = this.thumbwidth[index];
							document.images["thumbnail1"].height = this.thumbheight[index];
							break;
			case 'thumbnail2' :
							document.images["thumbnail2"].src = this.files[index];
							document.images["thumbnail2"].width = this.thumbwidth[index];
							document.images["thumbnail2"].height = this.thumbheight[index];
							break;
			case 'thumbnail3' :
							document.images["thumbnail3"].src = this.files[index];
							document.images["thumbnail3"].width = this.thumbwidth[index];
							document.images["thumbnail3"].height = this.thumbheight[index];
							break;
			case 'thumbnail4' :
							document.images["thumbnail4"].src = this.files[index];
							document.images["thumbnail4"].width = this.thumbwidth[index];
							document.images["thumbnail4"].height = this.thumbheight[index];
							break;
			case 'thumbnail5' :
							document.images["thumbnail5"].src = this.files[index];
							document.images["thumbnail5"].width = this.thumbwidth[index];
							document.images["thumbnail5"].height = this.thumbheight[index];
							break;
			case 'thumbnail6' :
							document.images["thumbnail6"].src = this.files[index];
							document.images["thumbnail6"].width = this.thumbwidth[index];
							document.images["thumbnail6"].height = this.thumbheight[index];
							break;
			case 'thumbnail7' :
							document.images["thumbnail7"].src = this.files[index];
							document.images["thumbnail7"].width = this.thumbwidth[index];
							document.images["thumbnail7"].height = this.thumbheight[index];
							break;
			case 'thumbnail8' :
							document.images["thumbnail8"].src = this.files[index];
							document.images["thumbnail8"].width = this.thumbwidth[index];
							document.images["thumbnail8"].height = this.thumbheight[index];
							break;

		} 
	}

	this.SetTitle = function()
	{
		this.title = new String(this.titles[this.index]);
		document.getElementById("titlepanel").innerHTML=this.title;
	}

	this.SetTitles = function( titles )
	{
		this.titles = titles;
	}
}


