﻿ /**
  * 
  * written by Vincent Uhres in jan 2010
  * 
  */
 
 /**
  * 
  * image_id1     id of IMG-tag
  * image_id2     id of IMG-tag
  * images        Array() of image URLs with indexes from 0 to n (indexes must begin with 0)
  * delay         delay between shown images
  * shift_speed   transition time
  * 
  */
 function slideshow (image_id1, image_id2, images, delay, shift_speed) {
  var obj1 = document.getElementById(image_id1);
  var obj2 = document.getElementById(image_id2);
  var speed = shift_speed;
  var shift_time = speed * 100;
  if (obj1.tagName.toLowerCase() == "img" && obj2.tagName.toLowerCase() == "img") {
   if (obj1.i == undefined || typeof obj1.i != "number") {
    obj1.i = 0;
    
    obj1.src = "/images/style/pixel_transparent.gif";
    obj2.src = "/images/style/pixel_transparent.gif";
    
   }
   obj1.src = obj2.src;
   
   setOpacity(image_id1, 1);
   setOpacity(image_id2, 1);
   
   obj1.style.zIndex = 1;
   obj2.style.zIndex = 0;
   
   if (images[ obj1.i ] == undefined) obj1.i = 0;
   
   obj2.src = images[ obj1.i ];
   
   shift (image_id1, image_id2, speed);
   
   obj1.i++;
   
   setTimeout(function () { slideshow(image_id1, image_id2, images, delay, shift_speed); }, delay + shift_time);
  }
 }
 
 function setOpacity (id, val) {
  var obj = document.getElementById(id).style;
  obj.opacity = val;
  obj.MozOpacity = val;
  obj.KhtmlOpacity = val;
  obj.filter = "alpha(opacity=" + (val * 100) + ")";
 }

 /*
 function getOpacity (id) {
  var obj = document.getElementById(id).style;
  
  alert(":" +
  obj.opacity + "_" +
  obj.MozOpacity + "_" +
  obj.KhtmlOpacity + "_" +
  obj.filter
  + ":");
  
  if (obj.opacity != "undefined") return obj.opacity;
  if (obj.MozOpacity != "undefined") return obj.MozOpacity;
  if (obj.KhtmlOpacity != "undefined") return obj.KhtmlOpacity;
  if (obj.filter != "undefined") return obj.filter;
 }
 */

 function fadein (id, speed) {
  fadeinfrom(id, 0, speed);
 }

 function fadeinfrom (id, begin, speed) {
  var b = Math.round(begin);
  var timer = 0;
  if (b < 0 || b > 100) b = 0;
  for (var i = b; i <= 100; i++) {
   setTimeout("setOpacity('" + id + "', " + (i / 100) + ")", timer);
   timer += speed;
  }
 }

 function fadeout (id, speed) {
  var timer = 0;
  for (var i = 100; i >= 0; i--) {
   setTimeout("setOpacity('" + id + "', " + (i / 100) + ")", timer);
   timer += speed;
  }
 }

 function shift (visibleimage, newimage, speed) {
  var obj1 = document.getElementById(visibleimage).style;
  var obj2 = document.getElementById(newimage).style;
  if (obj1.zIndex < obj2.zIndex) return;
  obj1.zIndex = 0;
  obj2.zIndex = 1;
  setOpacity (newimage, 0);
  fadein(newimage, speed);
  fadeout(visibleimage, speed);
 }
 