/************************************
* Autor: shennemann
* Erstellt am: 09.02.2011 08:44:47
*
* Zuletzt gändert
* von:
************************************/
function zoomer(element,min_height,max_height) {
	var caller = this;


	if (typeof(element) != "object") {
		element = document.getElementById(element);
	}

		this.zoomin = function(steps,element_extra) {
			if (typeof(element_extra) != "undefined") {
				element = element_extra;
			}
			if (typeof(element) != "object") {
				element = document.getElementById(element);
			}
			clearInterval(this.zoomouter);
			clearInterval(this.zoominer);
			element.style.zIndex = 10;
			this.zoominer = setInterval(function() {zoominimg(steps,element)},5);
		}


		function zoominimg(steps,element_extra) {
			if (typeof(element_extra) != "undefined") {
				element = element_extra;
			}
			var thumb_height = 0,
				elementImg = element.getElementsByTagName('img')[0],
				elementCanvas = element.getElementsByTagName('canvas')[0],
				canvasTeiler = 3;


				if (typeof(elementCanvas) == "undefined" && elementImg.className == "reflected") {
					elementCanvas = element.getElementsByTagName('img')[1];
					canvasTeiler = 1;
				}

			if (typeof(elementImg) != "undefined") {
				thumb_height = elementImg.offsetHeight;
				thumb_height += steps;

				if(thumb_height <= max_height) {
					element.style.marginTop = element.style.marginLeft = -Math.round((thumb_height - min_height) / 2) + "px";
					elementImg.style.width = thumb_height + 'px';
					elementImg.style.height = thumb_height + 'px';
					if (typeof(elementCanvas) != "undefined") {
						elementCanvas.style.width = thumb_height + 'px';
						elementCanvas.style.height = thumb_height / canvasTeiler + 'px';
					}
				}
				else {

					clearInterval(this.zoomouter);
					clearInterval(this.zoominer);
				}
				
				//document.getElementById('thumbnail_test').innerHTML = 'maxh: '+max_height+ ' - h: '+element.offsetWidth+'- mTop:'+element.style.marginTop+'- th:'+thumb_height;
			}
		}


		this.zoomout = function(steps,element_extra) {
			if (typeof(element_extra) != "undefined") {
				element = element_extra;
			}
			if (typeof(element) != "object") {
				element = document.getElementById(element);
			}
			clearInterval(this.zoomouter);
			clearInterval(this.zoominer);
			element.style.zIndex = 10;
			this.zoomouter = setInterval(function() {zoomoutimg(steps,element_extra)},5);
		}

		this.changeElement = function(element_neu) {
			if (typeof(element_neu) != "undefined") {
				element = element_neu;
			}
			if (typeof(element) != "object") {
				element = document.getElementById(element);
			}
		}


		function zoomoutimg(steps,element_extra) {
			if (typeof(element_extra) != "undefined") {
				element = element_extra;
			}
			var thumb_height = 0,
				elementImg = element.getElementsByTagName('img')[0],
				elementCanvas = element.getElementsByTagName('canvas')[0],
				canvasTeiler = 3;

				if (typeof(elementCanvas) == "undefined" && elementImg.className == "reflected") {
					elementCanvas = element.getElementsByTagName('img')[1];
					canvasTeiler = 1;
				}

			if (typeof(elementImg) != "undefined") {
				thumb_height = elementImg.offsetHeight;
				thumb_height -= steps;

				if(thumb_height >= min_height) {
					element.style.marginTop = element.style.marginLeft = -Math.round((thumb_height - min_height) / 2) + "px";
					elementImg.style.width = thumb_height + 'px';
					elementImg.style.height = thumb_height + 'px';
					if (typeof(elementCanvas) != "undefined") {
						elementCanvas.style.width = thumb_height + 'px';
						elementCanvas.style.height = thumb_height / canvasTeiler + 'px';
					}
				}
				else {
					element.style.zIndex = 0;
					clearInterval(this.zoomouter);
					clearInterval(this.zoominer);
				}
			}
		}
}
