
/*
function Token()
{
	Token.current++;
	return "#KERNELID"+Token.current;
}
Token.current=0;
*/


function Pict(src,width,height)
{
	this.src=src;
	//this.width=width;
	//this.height=height;
	this.image=null;
}

Pict.prototype.preLoad=function()
{
	//this.image=new Image(this.width,this.height);
	this.image=new Image();
	this.image.src=this.src;
}

Pict.prototype.isComplete=function()
{
	return this.image.complete;
}

Pict.prototype.asImage=function(width,height)
{
	var IMG=document.createElement("img");
		IMG.setAttribute("src",this.src);
	//	IMG.setAttribute("height",height+"px");
	//	IMG.setAttribute("width",width+"px");
		if(width) IMG.style.height=height+"px";
		if(height) IMG.style.width=width+"px";
	return IMG;
	
}

Pict.prototype.backgroundImage=function()
{
	return "url("+this.src+")";
}







function ImageSet() {}

ImageSet.width=100;
ImageSet.height=100;
ImageSet.item=new Array();
ImageSet.timer=null;
ImageSet.oncomplete=null;

ImageSet.addImage=function(src)
{
	ImageSet.item.push(new Pict(src,ImageSet.width,ImageSet.height));
}

ImageSet.preLoad=function()
{
	var maxi=ImageSet.item.length;
	for(var i=0;i<maxi;i++)
	{
		ImageSet.item[i].preLoad();
	}
	ImageSet.timer=window.setInterval("ImageSet.checkPreLoad()",100);
}


ImageSet.checkPreLoad=function()
{
	var maxi=ImageSet.item.length;
	for(var i=0;i<maxi;i++)
	{
		if(ImageSet.item[i].isComplete()==false) return;
	}
	window.clearInterval(ImageSet.timer);
	if(ImageSet.oncomplete) ImageSet.oncomplete();
}


ImageSet.current=0;
ImageSet.getNext=function()
{
	var buffer=ImageSet.item[ImageSet.current].src;
		ImageSet.current++;
		if(ImageSet.current==ImageSet.item.length) ImageSet.current=0;
	return buffer;
}

// Notre set
/*
	ImageSet.addImage("diapo/Yamina/Yamina012.JPG");
	ImageSet.addImage("diapo/Yamina/Yamina02.JPG");
	ImageSet.addImage("diapo/Yamina/Yamina03.JPG");
	ImageSet.addImage("diapo/Yamina/Yamina04.JPG");
	ImageSet.addImage("diapo/Yamina/Yamina05.JPG");
*/
// Notre callback
	ImageSet.oncomplete=function()
	{
		/*
		var content=document.getElementById("content");
			//content.style.backgroundImage=ImageSet.item[0].backgroundImage();
			var rect=getBox(content);
			var IMG=ImageSet.item[0].asImage();
			//var IMG=ImageSet.item[0].asImage(ImageSet.width,ImageSet.height);
			//	IMG.style.position="absolute";
			//	IMG.style.left=rect.left+"px";
			//	IMG.style.top=rect.top+"px";
				IMG.setAttribute("id","effet");
			content.appendChild(IMG);
			//document.getElementsByTagName("body")[0].appendChild(IMG);
		var voletDroit=document.getElementById("voletDroit");
			document.getElementsByTagName("body")[0].appendChild(voletDroit);
		*/
/*		
IMG.style.filter="alpha(opacity:"+0.5*100+")";
var versioncomp = /(\d+)/;
versioncomp.exec(IMG.style.filter);
alert(RegExp.$1);
*/		
		
		
		/*
		var blablabla=new Effect2(1);
			//blablabla.setCallback(function(){alert(this.style.height);});
			blablabla.Opacity(1.0,0.0);
			blablabla.ToggleX(100,0,"%");
			blablabla.ToggleY(100,0,"%");
			blablabla.Start("effet");
		*/
		/*
		var blablabla=new Effect2(1);
			IMG.style.width="100%";
			IMG.style.height="100%";
			blablabla.MoveX2(0,-100,"%");
		//	blablabla.MoveY2(0,-100,"%");
			blablabla.Start("effet");
		*/
		
		
		
		
		
		
		
		
/*
Largeur : 2500 pixels
Hauteur : 1662 pixels
*/

		
		var content=document.getElementById("content");
		var z=new ZoomBox(content,"Images/Yamina012.JPG");
		var p=new ZoomPath();
			p.setDuration(2);
			p.setFPS(24);
			p.x=2000/2500;
			p.y=1400/1662;
			p.zoom=2;
			p.temporisation=3000;
		z.addPath(p);
		var p=new ZoomPath();
			p.setDuration(2);
			p.setFPS(24);
		//	p.x=2000/2500;
		//	p.y=1400/1662;
			p.x=3600/5000;
			p.y=2200/3324;
			p.zoom=1;
			p.temporisation=3000;
		z.addPath(p);
		var p=new ZoomPath();
			p.setDuration(2);
			p.setFPS(24);
			p.x=1600/2500;
			p.y=800/1662;
			p.zoom=2;
			p.temporisation=3000;
		z.addPath(p);
		
		z.start();
		
	}








function setOpacity(node,opacite)
{
	//node.style.opacity = opacite; //W3C
	//node.style.filter="alpha(opacity:"+opacite*100+")";
	//node.style.filter.alpha.opacity = opacite*100; //IE
	//node.style.MozOpacity = opacite; //Ffx
	//node.style.KhtmlOpacity = opacite; //Konqueror Safari
	
	if(node.style.opacity) node.style.opacity = opacite; //W3C
	else if(node.style.filter) node.style.filter="alpha(opacity:"+(opacite*100)+")"; //IE
	//else if(node.style.filter) node.style.filter.alpha.opacity = opacite*100; //IE
	else if(node.style.MozOpacity) node.style.MozOpacity = opacite; //Ffx
	else if(node.style.KhtmlOpacity) node.style.KhtmlOpacity = opacite; //Konqueror Safari
	
	node.style.filter="alpha(opacity:"+(opacite*100)+")"; //IE
	
}




function Effect2(duration)
{
	this.duration=duration || 1;
	this.fps=25;
	this.callback=null;
	this.effect=new Array();
	
	this.interval=1000/this.fps;
	this.step=1/(this.fps*this.duration);
	
	this.current=0.0;
	this.target=null;
}

Effect2.all=new Array();
Effect2.target=new Array();


Effect2.prototype.setCallback=function(callback)
{
	this.callback=callback;
}


Effect2.prototype.Start=function(id,reverse)
{
	/*
	if(reverse)
	{
		var maxi=this.effect.length;
		for(var i=0;i<maxi;i++)
		{
			var item=this.effect[i];
			var start=item.start;
			var end=item.end;
			item.start=end;
			item.end=start;
			item.delta=end-start;
		}
	}
	*/
	if(!Effect2.target[id])
	{
		var obj=document.getElementById(id);
		this.target=obj;
		//obj.style.position="relative";
		
		
		
		var maxi=this.effect.length;
		for(var i=0;i<maxi;i++)
		{
			var item=this.effect[i];
			if(!obj.style[item.style])
			{
				obj.style[item.style]=0;
			}
			if(item.start || item.start==0)
			{
				obj.style[item.style]=item.start+item.unit;
				item.rStart=item.start;
				item.rEnd=item.end;
			}
			else
			{
				var value=parseFloat(obj.style[item.style]);
				item.rStart=value;
				item.rEnd=value+item.end;
			}
			//alert(item.rStart+" "+item.rEnd);
			item.delta=item.rEnd-item.rStart;
			//obj.style[item.style]=item.start;
		}
		
		
		Effect2.target[id]=obj;
		Effect2.all[id]=this;
		obj.current=0.0;
		obj.timer=window.setInterval("Effect2.Repeat('"+id+"')",this.interval);
		//return obj.timer;
	}
}


Effect2.Abord=function(id)
{
	var obj=$(id);
	if(obj)
	{
		var effect=Effect2.all[id];
		Effect2.target[id]=null;
		Effect2.all[id]=null;
		window.clearInterval(obj.timer);
		obj.timer=null;
		
		
		//var obj=Effect2.target[id];
		
		if(effect && effect.effect)
		{
			var maxi=effect.effect.length;
			for(var i=0;i<maxi;i++)
			{
				var item=effect.effect[i];
				obj.style[item.style]=item.start;
			}
		}
		
		
	}
}



Effect2.prototype.Finished=function()
{
	if(this.callback)
	{
		this.target.cb=this.callback;
		this.target.cb();
		this.target.cb=null;
	}
}


Effect2.Repeat=function(id)
{
	//$("info").innerHTML+=id+"<br/>";
	var effect=Effect2.all[id];
	var obj=Effect2.target[id];
	if(obj)
	{
		var style=obj.style;
	
		var maxi=effect.effect.length;
		for(var i=0;i<maxi;i++)
		{
			var item=effect.effect[i];
			var value=parseFloat(style[item.style])+effect.step*item.delta;
				style[item.style]=value+item.unit;
		}
		obj.current+=effect.step;
		if(obj.current>=1)
		{
			window.clearInterval(obj.timer);
			obj.timer=null;
			/*
			for(var i=0;i<maxi;i++)
			{
				style[item.style]=effect.effect[i].rEnd;
			}
			*/
			effect.Finished();
			Effect2.target[id]=null;
			Effect2.all[id]=null;
		}
	}
	else
	{
		alert("Effect2.Repeat : obj==null");
	}
}




Effect2.prototype.Opacity=function(end,start)
{
	var e=new Array();
		e.style="opacity";
		e.start=start;
		e.end=end;
		e.unit="";
		//e.delta=end-start;
	this.effect.push(e);
}

Effect2.prototype.ToggleX=function(end,start,unit)
{
	var e=new Array();
		e.style="width";
		e.start=start;
		e.end=end;
		e.unit=unit || "px";
		//e.delta=end-start;
	this.effect.push(e);
}


Effect2.prototype.ToggleY=function(end,start,unit)
{
	var e=new Array();
		e.style="height";
		e.start=start;
		e.end=end;
		e.unit=unit || "px";
		//e.delta=end-start;
	this.effect.push(e);
}


Effect2.prototype.MoveY=function(end,start,unit)
{
	var e=new Array();
		e.style="top";
		e.start=start;
		e.end=end;
		e.unit=unit || "px";
		//e.delta=end-start;
	this.effect.push(e);
}

Effect2.prototype.MoveX=function(end,start,unit)
{
	var e=new Array();
		e.style="left";
		e.start=start;
		e.end=end;
		e.unit=unit || "px";
		//e.delta=end-start;
	this.effect.push(e);
}

Effect2.prototype.MoveY2=function(end,start,unit)
{
	var e=new Array();
		e.style="marginTop";
		e.start=start;
		e.end=end;
		e.unit=unit || "px";
		//e.delta=end-start;
	this.effect.push(e);
}

Effect2.prototype.MoveX2=function(end,start,unit)
{
	var e=new Array();
		e.style="marginLeft";
		e.start=start;
		e.end=end;
		e.unit=unit || "px";
		//e.delta=end-start;
	this.effect.push(e);
}





Effect2.prototype.Zoom=function(end,start,unit)
{
	this.ToggleX(start,end,unit);
	this.ToggleY(start,end,unit);
	this.MoveX(0,(start-end)/2,unit);
	this.MoveY(0,(start-end)/2,unit);
}

