﻿var thumbnailviewer = {
	
	enableTitle: true, 
	enableAnimation: true,
	definefooter: '<div id="footerbar">Kapat X</div>', 
	defineLoading: '<img src="_img/loading.gif" /> <br /> <br /> Medya Yükleniyor...', 
	scrollbarwidth: 16,
	opacitystring: 'filter:progid:DXImageTransform.Microsoft.alpha(opacity=10); -moz-opacity: 0.1; opacity: 0.1',
	targetlinks: [], 

	createthumbBox:function()
	{
		document.write('<div id="thumbBox" onClick="thumbnailviewer.closeit()"><div id="thumbTitle"></div><div id="thumbImage"></div>'+this.definefooter+'</div>');
		document.write('<div id="thumbLoading">'+this.defineLoading+'</div>');
		this.thumbBox		= document.getElementById("thumbBox");
		this.thumbImage		= document.getElementById("thumbImage");
		this.thumbTitle		= document.getElementById("thumbTitle");
		this.thumbLoading	= document.getElementById("thumbLoading");
		this.standardbody	= (document.compatMode=="CSS1Compat") ? document.documentElement : document.body;
	},


	centerDiv:function(divobj)
	{ 
		var ie = document.all && !window.opera;
		var dom = document.getElementById;
		var scroll_top = (ie) ? this.standardbody.scrollTop : window.pageYOffset;
		var scroll_left = (ie) ? this.standardbody.scrollLeft : window.pageXOffset;
		var docwidth = (ie) ? this.standardbody.clientWidth : window.innerWidth-this.scrollbarwidth;
		var docheight = (ie) ? this.standardbody.clientHeight: window.innerHeight;
		var docheightcomplete = (this.standardbody.offsetHeight>this.standardbody.scrollHeight) ? this.standardbody.offsetHeight : this.standardbody.scrollHeight;
		var objwidth = divobj.offsetWidth;
		var objheight = divobj.offsetHeight;
		var topposition = (docheight>objheight) ? scroll_top+docheight/2-objheight/2+"px" : scroll_top+10+"px";
		divobj.style.left = docwidth/2-objwidth/2+"px";
		divobj.style.top = Math.floor(parseInt(topposition))+"px";
		divobj.style.visibility="visible";
	},

	showthumbBox:function()
	{ 
		this.centerDiv(this.thumbBox);
		if (this.enableAnimation)
		{
			this.currentopacity = 0.1;
			this.opacitytimer = setInterval("thumbnailviewer.opacityanimation()", 20);
		}
	},

	loadimage:function(link)
	{ 
		if (this.thumbBox.style.visibility == "visible") { this.closeit(); }
		var imageHTML = '';
		this.centerDiv(this.thumbLoading);
		
		eval("var param = {"+link.getAttribute("thumb")+"};");
		param.url = link.getAttribute("href");
		this.thumbTitle.innerHTML = (this.enableTitle && link.getAttribute("title")) ? link.getAttribute("title") : '';
		
		if (param.t == 'Image')
		{ 
			W = param.width ? ' width="'+param.width+'" ' : '';
			H = param.height ? ' height="'+param.height+'" ' : '';
			
			imageHTML += '<img ' +W+H+ ' src="' + param.url + '" style="' + this.opacitystring + '" />'; 
			this.thumbImage.innerHTML = imageHTML;
			this.featureImage = this.thumbImage.getElementsByTagName("img")[0];
			this.featureImage.onload = function()
			{ 
				thumbnailviewer.thumbLoading.style.visibility = "hidden";
				thumbnailviewer.thumbTitle.style.width = thumbnailviewer.featureImage.width-20;
				thumbnailviewer.showthumbBox();
			}
			
			if (document.all && !window.createPopup)
				{ this.featureImage.src = param.url; }
				
			this.featureImage.onerror = function()
				{ thumbnailviewer.thumbLoading.style.visibility = "hidden"; }
			
		}
		else if (param.t == 'Video')
		{ 
			if (!param.width) param.width = 480;
			if (!param.height) param.height = 360;

			imageHTML += '<div>' +
				'<OBJECT type="application/x-shockwave-flash" height="' +param.height+ '" width="' +param.width+ '" data="_swf/flvplayer.swf">' +
					'<PARAM value="_swf/flvplayer.swf" name="movie" />' +
					'<PARAM value="file=' + param.url + '&height=' +param.height+ '&width=' +param.width+ '&autostart=true&displayheight=' +param.height+ '&showicons=true&backcolor=0x000000&frontcolor=0xCCCCCC&lightcolor=0x557722" name="flashvars" />' +
					'<PARAM value="true" name="allowfullscreen" />' +
				'</OBJECT>' +
			'</div>';
			this.thumbImage.innerHTML = imageHTML;
			this.featureImage = this.thumbImage.getElementsByTagName("div")[0];
			this.thumbTitle.style.width = param.width-20;
			thumbnailviewer.thumbLoading.style.visibility = "hidden";
			thumbnailviewer.showthumbBox();
		}

	},

	setimgopacity:function(value)
	{ 
		var targetobject=this.featureImage;
		if (targetobject.filters && targetobject.filters[0])
		{
			if (typeof targetobject.filters[0].opacity=="number")
				{ targetobject.filters[0].opacity=value*100; }
			else
				{ targetobject.style.filter="alpha(opacity="+value*100+")"; }
		}
		else if (typeof targetobject.style.MozOpacity!="undefined")
			{ targetobject.style.MozOpacity=value; }
		else if (typeof targetobject.style.opacity!="undefined")
			{ targetobject.style.opacity=value; }
		else 
			{ this.stopanimation(); }
	},

	opacityanimation:function()
	{
		this.setimgopacity(this.currentopacity);
		this.currentopacity+=0.1;
		if (this.currentopacity>1) 
			{ this.stopanimation(); }
	},

	stopanimation:function()
	{
		if (typeof this.opacitytimer!="undefined")
			{ clearInterval(this.opacitytimer); }
	},

	closeit:function()
	{
		this.stopanimation();
		this.thumbBox.style.visibility = "hidden";
		this.thumbImage.innerHTML = "";
		this.thumbBox.style.left="-2000px";
		this.thumbBox.style.top="-2000px";
	},

	cleanup:function()
	{ 
		this.thumbLoading=null;
		if (this.featureImage) this.featureImage.onload=null;
		this.featureImage=null;
		this.thumbImage=null;
		for (var i=0; i<this.targetlinks.length; i++)
		{
			this.targetlinks[i].onclick=null;
			this.thumbBox=null;
		}
	},

	dotask:function(target, functionref, tasktype)
	{ 
		var tasktype = (window.addEventListener) ? tasktype : "on"+tasktype;
		if (target.addEventListener)
			{ target.addEventListener(tasktype, functionref, false); }
		else if (target.attachEvent)
			{ target.attachEvent(tasktype, functionref); }
	},

	init:function()
	{ 
		if (!this.enableAnimation)
			{ this.opacitystring=""; }
			
		var pagelinks = document.getElementsByTagName("a");
		for (var i=0; i<pagelinks.length; i++)
		{
			if (pagelinks[i].getAttribute("thumb"))
			{
				pagelinks[i].onclick = function()
				{
					thumbnailviewer.stopanimation();
					thumbnailviewer.loadimage(this);
					return false;
				}
				this.targetlinks[this.targetlinks.length] = pagelinks[i];
			}
		}

		this.dotask(window, function() { if (thumbnailviewer.thumbBox.style.visibility=="visible") thumbnailviewer.centerDiv(thumbnailviewer.thumbBox) }, "resize");	
	
	}

}

thumbnailviewer.createthumbBox();
//thumbnailviewer.dotask(window, function() { thumbnailviewer.init(); }, "load");
thumbnailviewer.dotask(window, function() { thumbnailviewer.cleanup(); }, "unload");