function rollout(name, dir, ext) {
  var img;
  img = document.getElementById(name + "-image");
  if (img) {
    img.src = dir + name + '.' + ext;
  }
}

function rollover(name, dir, ext) {
  var img;
  img = document.getElementById(name + "-image");
  if (img) {
    img.src = dir + name + '-over.' + ext;
  }
}

function popup(url, name, width, height) {
  newwindow=window.open(url, name,'width=' + width + ',height=' + height);
  if (window.focus) {newwindow.focus()}
}

function selectcolorswatch(name, val) {
  var swatch;
  var oldswatch;
  var input;
  var oldval

  swatch = document.getElementById(name + "_" + val);
  input = document.getElementById(name);
  oldval = input.value;

  swatch.style.borderColor = "black";
  input.value = val;

  if (oldval != '') {
    if (val == oldval) {
      swatch.style.borderColor = "white";
      input.value = '';
    }
    else {
      oldswatch = document.getElementById(name + "_" + oldval);
      oldswatch.style.borderColor = "white";
    }
  }
}

var opacityTimeouts = {}
var currentOpacities = {}

var flickProfilePKs = {}
var flickProfileItemPKs = {}

var flickImages = {};
var flickLinks = {};
var flickCurrent = {};

function flickpic(name, step, fade) {
  var img;
  var a;

  flickCurrent[name] += step;
  if (flickCurrent[name] >= flickImages[name].length) flickCurrent[name] = 0;
  else if (flickCurrent[name] < 0) flickCurrent[name] = flickImages[name].length - 1;

  if (fade) {
    imgtop = document.getElementById(name + '_imagetop');
    imgbottom = document.getElementById(name + '_imagebottom');
    imgbottom.src = imgtop.src;
    setOpacity(name + '_imagetop', 0);
    // some yucky extra unnecessary setTimeout()s to make sure Firefox doesn't flicker
    setTimeout('imgtop = document.getElementById("' + name + '_imagetop"); imgtop.src = "' + flickImages[name][flickCurrent[name]] + '";', 10);
    setTimeout('imgtop = document.getElementById("' + name + '_imagetop"); imgtop.style.visibility = "visible";', 20);
    setTimeout('fadeelem("' + name + '_imagetop", 0.06, 60);', 30);
  }
  else {
    img = document.getElementById(name + '_image');
    img.src = flickImages[name][flickCurrent[name]];
  }

  a = document.getElementById(name + '_link');
  a.href = flickLinks[name][flickCurrent[name]];
}

function autoflick(name, time, fade) {
  flickpic(name, 1, fade);
  setTimeout('autoflick("' + name + '", ' + time + ', ' + fade + ')', time);
}

function fadeelem(elemId, step, duration) {
  /* use a negative step to fadeout, positive to fadin */
  opacity = currentOpacities[elemId];
  if (opacity == null) opacity = 0;
  opacity += step;
  if (opacity < 0) {
    setOpacity(elemId, 0);
    return;
  }
  else if (opacity >= 1) {
    setOpacity(elemId, 1);
    return;
  }
  else {
    setOpacity(elemId, opacity);
    opacityTimeouts[elemId] =
      setTimeout('fadeelem("' + elemId + '", '
                           + step + ', '
                           + duration + ')',
               duration);
  }
}

function setOpacity(elemId, val) {
  var element;
  element = document.getElementById(elemId);
  currentOpacities[elemId] = val;
  element.style.opacity = val;
  if (element.style.filter != null) {
    element.style.zoom = 1;
//    element.style['filter'] = element.style['filter'].replace(/alpha\([^\)]*\)/gi, '')
//                             + 'alpha(opacity=' + (val * 100) + ');';  
    element.style.filter = 'alpha(opacity=' + (val * 100) + ');';
  }

}
