var timerlen = 30;
var slideAniLen = 300;

var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var moving = new Array();
var direction = new Array();
var Slimbox;

var win = window, images, centerWidth, centerHeight, centerTop, centerLeft, xx, yy, preload = {}, center, image;
	//preload = new Image();

function initSlim() {
	links = document.getElementsByTagName('a');
	for (i=0; i < links.length; i++) {
		if (links[i].title == 'Büyütmek.İçin.Tıklayınız') {
			if (links[i].firstChild.nodeType == 3) {
				links[i].onclick = function () {
				Slimbox.open(this.href, '', this.href.substring(this.href.lastIndexOf('/')+1, this.href.lastIndexOf('.'))); return false;}
			} else {
				links[i].id = links[i].href.substring(links[i].href.lastIndexOf('/')+1, links[i].href.lastIndexOf('.'));;
				links[i].onclick = function () {Slimbox.open(this.href, '', this); return false;};
			}
		}
	}

	center = document.createElement("div");
	center.id = "lbCenter";
	center.style.display = "none";
	document.body.appendChild(center);
	
	image = document.createElement("img");
	image.id = "lbImage";
	image.onclick = function () {close()};
	center.appendChild(image);
};

	Slimbox = {
		open: function(imageHref, description, obj) {
			imageHref = imageHref.replace('products/showpic-', 'img/');
			images = [[imageHref, description]];
			
			if (typeof obj == "string") {
				objBound = GetBounds(document.getElementById(obj).firstChild);
			} else {
				objBound = GetBounds(obj.firstChild);
			}
			
			centerWidth = objBound.Width;
			centerHeight = objBound.Height;
			centerTop = objBound.Top;
			centerLeft = objBound.Left;
			
			center.style.top = centerTop + 'px';
			center.style.left = centerLeft + 'px';
			setElementOpacity(center, 1);
			image.style.display = "none";
			center.style.display = "none";

			return changeImage();
		},
			
		SlideIt: function (objname, dir)	{
			if(moving[objname]) {
				return;
			}
			moving[objname] = true;
			startTime[objname] = (new Date()).getTime();
			direction[objname] = dir;
			timerID[objname] = setInterval('Slimbox.SlideTick(\'' + objname + '\')', timerlen);
		},
		
		SlideTick: function (objname){
			var elapsed = (new Date()).getTime() - startTime[objname];
			if (elapsed > slideAniLen) {
				clearInterval(timerID[objname]);
				if (direction[objname] > 0) { 
					animate(1);
				} else {
					animate(0);
					stop();
					image.style.display = "none";
					center.style.display = "none";
				}
				delete(moving[objname]);
				delete(timerID[objname]);
				delete(startTime[objname]);
				delete(direction[objname]);
			} else {
				if (direction[objname] > 0) { 
					value = elapsed / slideAniLen;
				} else {
					value = 1 - elapsed / slideAniLen;
				}
				value = (value > 1) ? 1 : value;
				animate(value);
			}
			return;
		}
	};

	function changeImage() {
		preload = new Image();
		stop();
		center.style.height = centerHeight + 'px';
		center.style.width = centerWidth  + 'px';
		center.className = "lbLoading";
		
		preload.onload = animateBox;
		preload.src = images[0][0];
		return false;
	}
	
	function animate(value) {
		setElementOpacity(center, value);
		height = 150 + centerHeight * value + "px";
		width = 200 + centerWidth * value + "px";
		center.style.height = height;
		//image.style.height = height;
		center.style.width = width;
		//image.style.width = width;
		
		center.style.top = centerTop + yy * value + "px";
		center.style.left = centerLeft + xx * value + "px";
	}
	
	function animateBox() {
		//image.style.backgroundImage = "url(" + preload.src + ")";
		image.src = preload.src;
		
		center.style.width = '200px';
		center.style.height = '150px';

		centerWidth = preload.width - 200;
		centerHeight = preload.height - 150;
		
		yy = ($getHeight() - preload.height)/2 - centerTop + getScrollXY()[1];
		xx =($getWidth() - preload.width)/2 - centerLeft + getScrollXY()[0];
		
		moving['lbCenter'] = false;
		setElementOpacity(center, 0);
		image.style.display = "block";
		center.style.display = "block";
		center.className = "";
		Slimbox.SlideIt('lbCenter', 1);
	}

	function stop() {
		//preload.onload = $empty;
		preload.src = "";
	}

	function close() {
		moving['lbCenter'] = false;
		Slimbox.SlideIt('lbCenter', -1);
		return false;
	}
	function GetBounds(object) {
		var left = object.offsetLeft;
		var top = object.offsetTop;
		for (var parent = object.offsetParent; parent; parent = parent.offsetParent) {
			left += parent.offsetLeft;
			top += parent.offsetTop;
		};
		return {Left: left, Top: top, Width: object.offsetWidth, Height: object.offsetHeight};
	}
	
	function getScrollXY() {
		var scrOfX = 0, scrOfY = 0;
		if( typeof( window.pageYOffset ) == 'number' ) {
		//Netscape compliant
		scrOfY = window.pageYOffset;
		scrOfX = window.pageXOffset;
		} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		//DOM compliant
		scrOfY = document.body.scrollTop;
		scrOfX = document.body.scrollLeft;
		} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
		scrOfX = document.documentElement.scrollLeft;
		}
		return [ scrOfX, scrOfY ];
	}