/*
 Classe by Oliweb
 11/06/2010
*/

function Gallery(Pictures,Params)
{
	var ME = this;
	var ImgWidth = Params.img_width;
	var ImgHeight = Params.img_height;
	var Columns = Params.columns;
	var Rows = Params.rows;
	var Delay = Params.delay;
	var Container = Params.container;
	var img_margin = Params.spacing;//(2*7)
	var cell_count = Pictures.length;
	
	this.Display = function()
	{
		/*Image de test afin de récupérer les dim avec le bord*/
			
		var hiddenPic = new Image(ImgWidth,ImgHeight);
		hiddenPic.setAttribute("id","hiddenPic");
		/*hiddenPic.setAttribute("width",ImgWidth);
		hiddenPic.setAttribute("height",ImgHeight);*/
		hiddenPic.src = Pictures[0].thumb_path;
		hiddenPic.style.visibility = "hidden";
		
		document.body.appendChild(hiddenPic);
		var img_offsetWidth = hiddenPic.offsetWidth;
		var img_offsetHeight = hiddenPic.offsetHeight;
		document.body.removeChild(hiddenPic);
		
		var cell_width =  img_offsetWidth + (2*img_margin);
		var cell_height =  img_offsetHeight + (2*img_margin); 
			
		var mask_width = Columns*(cell_width);
		var mask_height = Rows*(cell_height);
		
		var Mask = document.createElement("div");
		Mask.className = "oli_gallery";
		Mask.style.width = Columns*(cell_width)+"px";
		Mask.style.height = Rows*(cell_height)+"px";
		
		var slider = document.createElement("div");
		slider.className = "oli_slider";
		Mask.appendChild(slider);
		
		var current_pos = 0;
		var max_pos = 0;
		
		if(cell_count%(Rows * Columns) != 0)
		{
			max_pos = Math.floor(cell_count/(Rows * Columns));
		}else{
			max_pos = (cell_count/(Rows * Columns))-1;
		}
		
		/*=== Ordre d'inclusion des images
			1,2	,3 ,4
			5,6	,7 ,8
			9,10,11,12*/
		
		var current_section = 1;
		var c=0;
		var r=0;
		
		for(i=0; i<cell_count; i++)
		{
			var cell = document.createElement("div")
			cell.className = "oli_cell";
			cell.style.top = (r*cell_height)+"px";
			cell.style.left = (c*cell_width) +"px";
			
			cell.innerHTML = '<a href="'+Pictures[i].path+'" title="'+Pictures[i].title+'" rel="'+Pictures[i].rel+'" target="'+Pictures[i].target+'">'
					+'<img src="'+Pictures[i].thumb_path+'" width="'+ImgWidth+'" height="'+ImgHeight+'" style="margin:'+img_margin+'px;"/>'
					+'</a>';
			slider.appendChild(cell);
			
			if(c < ((current_section*Columns)-1)){
				c++;
			}
			else
			{	
				if(r < (Rows-1))
				{
					c = (current_section-1)*Columns;
					r++;
				}else{
					c++;
					r = 0;
					current_section++;
				}
			}
		}
		
		if(cell_count > (Rows*Columns))
		{
			var left = document.createElement("a");
			left.className = "left_button";
			left.setAttribute("href","");
			
			left.style.display = "none";
			
			left.onclick = function()
			{
				right.style.display = "block";
				
				if(current_pos < 0)
				{
					if(current_pos == -1){
						left.style.display = "none";
					}
					
					current_pos++;
					
					$(slider).animate(
						{left:current_pos*mask_width+"px"},Delay);
					}
					return false;
				}
			
			var right = document.createElement("a");
			right.className = "right_button";
			right.setAttribute("href","");
			
			
			right.onclick = function()
			{
				left.style.display = "block";
				
				if(current_pos > -max_pos)
				{
					if(current_pos == -(max_pos-1)){
						right.style.display = "none";
					}
				
					current_pos--;
				
					$(slider).animate(
					{left:current_pos*mask_width+"px"},Delay);
				}
				return false;
			}
			
			Mask.appendChild(left);
			Mask.appendChild(right);
		}
		Container.appendChild(Mask);
	}
}
