function GetTableObject(elem)
{
	var ret = elem;
	while (ret && ret.tagName.toLowerCase()!='table') ret = ret.parentNode;
	if (ret) return Window_GetElement(window,ret.id,true);
	return ret;
}
function Image_Over()
{
	var src = Event_GetSrcElement();
	var tableObject = GetTableObject(src);
	tableObject.OnImageOver(src);
}
function Image_Out()
{
	var src = Event_GetSrcElement();
	var tableObject = GetTableObject(src);
	tableObject.OnImageOut(src);
}
function Table_Out()
{
	var src = Event_GetSrcElement();
	var tableObject = GetTableObject(src);
	tableObject.OnTableOut(src);
}
// конструктор класса
function Slide(table_id, percentage)
{
	var tableObject=Window_GetElement(window,table_id,true);
	tableObject.Init =	Init;
	tableObject.ImgArray = new Array();
	tableObject.CommonText = null;
	tableObject.TextArray = new Array();
	tableObject.OnImageOver = OnImageOver;
	tableObject.OnImageOut = OnImageOut;
	tableObject.OnTableOut = OnTableOut;
	tableObject.CommonPercent = "";
	tableObject.ExpandPercent = "";
	tableObject.Percent = percentage;
	tableObject.Init();
}	
// при запуске
function Init()
{
	// Вешаем событие на таблицу
	Event_Attach(this, "onmouseout", Table_Out);
	var diff = navigator.appName=="Netscape"?1:0;
	// ищем строку с картинками
	var trIm = null;
	var trTx = null;
	//debugger;
	for (var i=0;i<this.childNodes[diff].childNodes.length;i++)
	{	
		if (this.childNodes[diff].childNodes[i].id==this.id+'1') trIm = this.childNodes[diff].childNodes[i];
		if (this.childNodes[diff].childNodes[i].id==this.id+'2') trTx = this.childNodes[diff].childNodes[i];
	}
	// Посчитаем
	var len = 0;
	for (var i=0; i<trIm.childNodes.length;i++)
	{
		if (trIm.childNodes[i].nodeName != 'TD') continue;
		// Добавляем элемент TD во внутренний список
		this.ImgArray[len++] = trIm.childNodes[i];
	}

	var len = this.ImgArray.length;
	this.CommonPercent = Math.floor(100/len);
	this.ExpandPercent = Math.floor((100-this.Percent)/(len-1));
	
	//alert ( 'this.CommonPercent=' + this.CommonPercent +' this.ExpandPercent=' + this.ExpandPercent);

	for (var i=0; i<len;i++)
	{
		Element_SetRuntimeStyle(this.ImgArray[i], "width", this.CommonPercent+"%");
		// Проставляем события
		Event_Attach(this.ImgArray[i], "onmouseover", Image_Over);
		Event_Attach(this.ImgArray[i], "onmouseout", Image_Out);
	}

	if (trTx != null)
	{
		//alert("text");
		// получаем ячейку с текстовыми дивами
		var tdTx = trTx.childNodes[diff];
		len = 0;
		for (var i=0; i<tdTx.childNodes.length;i++)
		{
			if (tdTx.childNodes[i].nodeName != 'DIV') continue;
			// Добавляем элемент DIV во внутренний список
			if (len==0) this.CommonText = tdTx.childNodes[i];
			else this.TextArray[len-1] = tdTx.childNodes[i];
			len++;
		}
	}
	
	//print_file(this.innerHTML);
}

// при наведении
function OnImageOver(imgObject)
{
	// Пройдемся по массивам
	for (var i=0; i<this.ImgArray.length;i++)
	{
		// Если элемент выбран, раздвигаем его
		if (this.ImgArray[i] === imgObject) 
		{
			if (this.TextArray.length>i) 
			{
				this.CommonText.className="vh";
				this.TextArray[i].className="vv";
			}
			Element_SetRuntimeStyle(this.ImgArray[i], "width", (100-this.ExpandPercent*(this.ImgArray.length-1))+"%" );
		} 
		else
		{
			Element_SetRuntimeStyle(this.ImgArray[i], "width", this.ExpandPercent+"%");
			if (this.TextArray.length>i) this.TextArray[i].className="vh";
		}
	}
}		
// при уведении
function OnImageOut(imgObject)
{
	if (this.TextArray.length>1)
	{
		this.CommonText.className="vv";
		// Пройдемся по массивам
		for (var i=0; i<this.TextArray.length;i++)
		{
			this.TextArray[i].className="vh";
		}
	}
}
// при уведении с основной таблицы
function OnTableOut(tblObject)
{
	// Пройдемся по массивам
	for (var i=0; i<this.ImgArray.length;i++)
		Element_SetRuntimeStyle(this.ImgArray[i], "width", this.CommonPercent+"%");
}
function print_file(src)
{
	var	fso, tf;
	fso	= new ActiveXObject("Scripting.FileSystemObject");
	tf = fso.OpenTextFile("c:\\testfile.txt",8,true);
	tf.Write (src);
	tf.Close();
}
			

