function getComputedHeight(theElt){
var tmphght;
        if(tmphght = theElt.offsetHeight)
	{
		if (document.defaultView)
	        	return tmphght+2;
        	return tmphght;
	}

        var tmphght1 = document.defaultView.getComputedStyle(theElt, "").getPropertyValue("height");
        tmphght = tmphght1.split('px');
        tmphght = tmphght[0];
        return tmphght;
}

function init_slider()
{
var s = false;
try
{
var s = window.my_slides;
}catch(E){window.my_slides = s = false;}

if (s && s.length>0)
for(var i=0; i < s.length; i++)
{
	var s1=s[i];
	var el = document.getElementById(s1.id);
	if (el){
		el.style.position = 'relative';
		//el.style.width = 
		el.style.height = s1.height;
		el.style.overflow = "hidden";
	}

//	if (!s1.secsleft)
//		s1.secsleft=s1.interval;
	s1.index=0;
	for (var j = 0; j < s1.images.length; j++)
	{
		var img = s1.images[j];
		var image = new Image();
		img.loaded = false;
		image.img = img;

		image.onload = function() //not working :(
			{
				//alert("loaded " + " "+ this.img.url);
				this.img.loaded = true;
			};
		image.src = img.url;
		img.im_preload = image;
	}
}

try
{
s = window.my_slideshows;
}catch(E){window.my_slideshows = s = false;}

if (s && s.length>0)
for(var i=0; i < s.length; i++)
{
	var s1=s[i];
	s1.index=0;
	if (!s1.secsleft)
		s1.secsleft=s1.interval;

	for (var j = 0; j < s1.images.length; j++)
	{
		var img = s1.images[j];
		var el = document.getElementById(s1.id);
		el.s1 = s1;
		el.onclick = function()
		{
			this.s1.suspended = !this.s1.suspended;
		};

		img.loaded = false;

		var image = new Image();
		image.img = img;

		image.onload = function() //not working :(
			{
				this.img.loaded = true;
			};
		image.src = img.url;
		img.im_preload = image;
	}
}

setInterval(interval_slider, 100);

}

function interval_slider()
{
var s = window.my_slides;
if (s)
for(var i=0; i < s.length; i++)
{
	var s1=s[i];
	if (s1.secsleft == 0)
		startSlide(s1);

	s1.secsleft--;

	if (s1.secsleft < -10)
	{
		endSlide(s1);
	        s1.secsleft = s1.interval;
		s1.index++;
		s1.index%=s1.images.length;
	}
	else
	if (s1.secsleft < 0)
		setElementOpacity(s1.el1, -s1.secsleft/10.0);

}

s = window.my_slideshows;
if (s)

for(var i=0; i < s.length; i++)
{
	var s1=s[i];
	if (s1.suspended)
		continue;

	if (s1.secsleft == 0)
		switchSlide(s1);

	s1.secsleft--;
}

}

function switchSlide(s1)
{
var el = document.getElementById(s1.id), el1, img = s1.images[s1.index];
if (!el) return;

el.src = img.url;

if (!img.loaded) //not loaded, add another second for waiting
{
	s1.secsleft++;
	return;
}

//alert('loaded ' + s1.index);
s1.secsleft = s1.interval;
s1.index++;
s1.index%=s1.images.length;

}

function startSlide(s1)
{
var el = document.getElementById(s1.id), el1, elimg, img = s1.images[s1.index];
if (!el) return;

elimg = document.createElement('IMG');
elimg.src = img.url;

if (!img.loaded) //not loaded, add another second for waiting
{
	s1.secsleft++;
	return;
}

if (img.link)
{
	if (s1.linkEl && (el1 = document.getElementById(s1.linkEl)))
	{
		
		el1.href = img.link;
		el1 = elimg;
	}
	else
	{
		el1 = document.createElement('A');	
		el1.href = img.link;
		el1.appendChild(elimg);
	}
}
else
	el1 = elimg;

el1.style.position = 'relative';
el1.style.left = '0px';

el1.style.top = '-'+getComputedHeight(el)+'px';
el.appendChild(document.createElement('BR'));

el.appendChild(el1);

setElementOpacity(el1, 0);
s1.el1 = el1;
}

function endSlide(s1)
{
try
{
var el = document.getElementById(s1.id), el1, elimg, img = s1.images[s1.index];
if (!el) return;
while (el.firstChild) el.removeChild(el.firstChild);

elimg = document.createElement('IMG');
elimg.src = img.url;

if (img.link && !s1.linkEl)
{
	el1 = document.createElement('A');	
	el1.href = img.link;
	el1.appendChild(elimg);
}
else
	el1 = elimg;

el.appendChild(el1);
}
catch(E){alert(E);}
}


function setElementOpacity(elem, nOpacity)
{
  var opacityProp = getOpacityProperty();

  if (!elem || !opacityProp) return; // Если не существует элемент с указанным id или браузер не поддерживает ни один из известных функции способов управления прозрачностью
  
  if (opacityProp=="filter")  // Internet Exploder 5.5+
  {
    nOpacity *= 100;
	
    // Если уже установлена прозрачность, то меняем её через коллекцию filters, иначе добавляем прозрачность через style.filter
    var oAlpha = elem.filters['DXImageTransform.Microsoft.alpha'] || elem.filters.alpha;
    if (oAlpha) oAlpha.opacity = nOpacity;
    else elem.style.filter += "progid:DXImageTransform.Microsoft.Alpha(opacity="+nOpacity+")"; // Для того чтобы не затереть другие фильтры используем "+="
  }
  else // Другие браузеры
    elem.style[opacityProp] = nOpacity;
}

function getOpacityProperty()
{
  if (typeof document.body.style.opacity == 'string') // CSS3 compliant (Moz 1.7+, Safari 1.2+, Opera 9)
    return 'opacity';
  else if (typeof document.body.style.MozOpacity == 'string') // Mozilla 1.6 и младше, Firefox 0.8 
    return 'MozOpacity';
  else if (typeof document.body.style.KhtmlOpacity == 'string') // Konqueror 3.1, Safari 1.1
    return 'KhtmlOpacity';
  else if (document.body.filters && navigator.appVersion.match(/MSIE ([\d.]+);/)[1]>=5.5) // Internet Exploder 5.5+
    return 'filter';

  return false; //нет прозрачности
}
