/* 

	JavaScript Библиотека по работе с картинками
 	Copyright ©  2008 Студия веб-дизайна Dlab.RU
 	Все права защищены. 
	Копирование и использование без лицензии запрещено
	
	v2.0	21.09.2008
	
*/

d=document;

// 	замено изображений на -hover
function Image_Hover (id) 
	{
	
	if (typeof(id)!='object') 
		{
		var El=d.getElementById(id);
		} else {
		El=id;
		}
	if (!El) { return false; }
	var Source=El.src;	// исхходный адрес
	var Hovered=Source.search("-hover");
	
	if(Hovered>0) 
		{
		var Repl=new RegExp ("-hover", "i");
		Source=Source.replace(Repl, "");
		El.src=Source;
		} else {
		var Repl=new RegExp (".gif|.jpg|.png|.bmp", "i");
		var Ext=Source.match(Repl);
		if (Ext) 
			{
			Source=Source.replace(Repl, "");
			}
		Source=Source+"-hover"+Ext;
		El.src=Source;
		}
	}

//	прелоадер к замене
function Image_Hover_Preloader() 
	{
	// 
	var allImage = d.images;
	var ImagePreLoad=new Array();

	for (i=0; i<allImage.length; i++) 
		{
		ImageID=""+allImage[i].name+"";
		var Reg=new RegExp ("^hover", "i");
		if (ImageID.match(Reg)) 
			{
			ImagePreLoad[i] = new Image();
			// надо pre_loadить ещё и small, разобрать патерн и preload сделать
			var Pre=allImage[i].src;
			var Repl=new RegExp (".gif|.jpg|.png|.bmp", "i");
			var Ext=Pre.match(Repl);
			if (Ext) 
				{
				Pre=Pre.replace(Repl, "");
				}
			Pre=Pre+"-hover"+Ext;
		//	alert(Pre);
			ImagePreLoad[i].src = Pre;
			}
		}
	}

// прелоадер каталога 
function Image_Cat_PreLoader() 
	{
	// 
	var allImage = d.images;
	var ImagePreLoad=new Array();

	for (i=0; i<allImage.length; i++) 
		{
		ImageID=""+allImage[i].name+"";
		var Reg=new RegExp ("^PreLoadCat_", "i");
		if (ImageID.match(Reg)) 
			{
			var Pre=allImage[i].src;
			Pre=Pre.replace("_small.", '.');

			ImagePreLoad[i] = new Image();
			// надо pre_loadить ещё и small, разобрать патерн и preload сделать
			ImagePreLoad[i].src = Pre;
			}
		}

	}

// замена source
function Image_Source (id, New_Source)
	{
	if (typeof(id)!='object') 
		{
		var El=d.getElementById(id);
		} else {
		El=id;
		}
		
	if (El.src) 
		{
		El.src=New_Source;
		}
	}



// эффекты плавные такие
var InUse=new Array();
var ImgSourceSize=new Array();
var x = new Array();
var k = new Array();
var Done = new Array();

function Image_Zoom (id, New_X, New_Y) 
	{
	var f='Image_Zoom_Do("'+id+'", "'+New_X+'", "'+New_Y+'")';
	if (InUse[id]!=1 && Done[id]!=1) 
		{	
		x[id]=0;
		InUse[id]=1;	// защита от повторного запуска		
		ImageZooms=setInterval(f,10);
		} else {
		if (Done[id]==1 && InUse[id].lenght==Done[id].lenght) 
			{
			clearInterval (ImageZooms);
			}
	//	InUse[id]=0;
	//	x[id]=0; 
		}
	}

function Image_Zoom_Do(id, New_X, New_Y) 
	{
	
	if (Done[id]==1) { return; }	// экономим CPU

	var El=d.getElementById(id);

	if (El) 
		{
		var ImageW=El.width;	// исходный 		
		var ImageH=El.height;	// исходный 		
		} 

	if (!k[id]) 
		{
		k[id]=(ImageW/ImageH);
		}

	// исходный размер
	if (!ImgSourceSize[id]) { ImgSourceSize[id]=ImageW; }
	
	// выполенено
	if (ImageW>=New_X) { Done[id]=1; }

	
	// absolute
	El.style.position='absolute';
//	El.style.ZIndex=-1;
	
	var ZoomX=New_X-ImgSourceSize[id];
	
	El.height=(El.width/(k[id]));
	
	El.width=(ImgSourceSize[id]+x[id]);

	if (Done[id]!=1) 
		{ 
		x[id]++;
		} 
	}