//
// (c) 2010 Gerd Neugebauer
// All rights reserved
// email: gene@gerd-neugebauer.de
//

var stretcher = {};

function Stretcher(active, delta, height, minHeight, maxHeight) {
  this.active = active;
  this.delta = delta;
  this.height = height;
  this.maxHeight = maxHeight;
  this.minHeight = minHeight;
}

function closeStretcher(id) {
  getStretcher(id).height = 0;
  stretcherSlide(id)
}

function getStretcher(id) {
  var s = stretcher[id];
  if ( typeof(s) == "undefined" ) {
    var el = document.getElementById(id);
    s = stretcher[id] = new Stretcher(false, -4, el.offsetHeight, 1, el.offsetHeight);
  }
  return s;
}

function startStretcher(id) {
  var s = getStretcher(id);
  s.delta = -s.delta;
  if (!s.active) {
    s.active = true;
    stretcherSlide(id);
  }
}

function stretcherSlide(id) {
  var s	 = stretcher[id];
  var el = document.getElementById(id);
  s.height += s.delta;
  if (s.height <= s.minHeight && s.delta < 0) {
    s.height = s.minHeight;
    el.style.height = s.minHeight + "px";
    s.active = false;
  } else if (s.height >= s.maxHeight && s.delta > 0 ) {
    s.height = s.maxHeight;
    el.style.height = s.maxHeight + "px";
    s.active = false;
  } else {
    if (s.height < s.minHeight) {
      s.height = s.minHeight;
    } else if (s.height > s.maxHeight) {
      s.height = s.maxHeight;
    } 
    el.style.height = s.height + "px";
    setTimeout("stretcherSlide('" + id + "');", 1);
  }
}

function stretcherZoom(id, delta, factor) {
  var s = stretcher[id];
  if ( typeof(s) == "undefined" ) {
    var el = document.getElementById(id);
						 //var img = new Image();
						 //img.src = el.src;
    s = stretcher[id] = new Stretcher(false, 
				      delta, 
				      el.offsetHeight, 
				      el.offsetHeight,
				      factor*el.offsetHeight);
  } else if (delta == 0){
    s.delta = -s.delta;
  } else {
    s.delta = delta;
  }
  if (!s.active) {
    s.active = true;
    stretcherSlide(id);
  }
}

//window.onresize = function () {
//  alert("resized");
//};

