// Copyright(c) 2007 New Media Guru Ltd
// Aleksandrs Kornevs
// email:alex@newmediaguru.com

var myPreview=
{
	image:null, blocked:false, opacity:0, iframe:null, loaded:false,

	init : function()
	{
		var oldonload = window.onload;
		if (typeof window.onload != 'function')
		{
			window.onload = this.createIframe;
		} else {
			window.onload = function()
			{
				oldonload();
				func();
			}
		}
	},

	createIframe : function()
	{
		//IE patch
		if(document.all)
		{
			myPreview.iframe    =document.createElement('iframe'); 
			myPreview.iframe.id ="myiframe";
			//if https need add blank html
			myPreview.iframe.src="";
		}else{
			myPreview.iframe    =document.createElement('p'); 
			myPreview.iframe.id ="myiframe";
			//myPreview.iframe.src="";
		}
		myPreview.iframe.style.position ="absolute";
		myPreview.iframe.style.top      ="0px";
		myPreview.iframe.style.left     ="0px";
		myPreview.iframe.style.width    ="0px";
		myPreview.iframe.style.height   ="0px";
//		myPreview.iframe.style.background="black";
		myPreview.iframe.style.visible  ="hidden";
		document.body.appendChild(myPreview.iframe); 
		myPreview.loaded=true;
	},

	setActive : function(object)
	{
		this.image=object;
	},

	getActive : function()
	{
		return this.image;
	},

	show : function (image, previewId)
	{
		if(!myPreview.loaded)return false;
		if(myPreview.getActive())myPreview.hide();

		var previewImage	=document.getElementById(previewId);
		if(previewImage)
		{
			myPreview.setActive(previewImage);	
			previewImage.src	=image.getAttribute('previewUrl');
			//previewImage.onLoad	=myPreview.showImage();
		}
	},

	hide : function ()
	{
		var image=myPreview.getActive();
		if(image)
		{
			myPreview.opacity=0;
			myPreview.animateOpacity();

			var div=myPreview.getDiv(image);
			if(div){
				myPreview.setActive(null);
				myPreview.iframe.style.visibility   = div.style.visibility  ="hidden";
				myPreview.iframe.style.width        = div.style.width       ="1px";
				myPreview.iframe.style.height       = div.style.height      ="1px";
			}
		}
	},

	showImage : function ()
	{
		var image=myPreview.getActive();
		if(image)
		{
			var div=myPreview.getDiv(image);
			if(div){
				myPreview.iframe.style.width      = div.style.width   =image.width;
				myPreview.iframe.style.height     = div.style.height  =image.height;
				myPreview.iframe.style.left       = div.style.left    =((window.innerWidth || document.body.clientWidth) - image.width)/2 + (window.scrollLeft || document.body.scrollLeft) +"px";
				myPreview.iframe.style.top        = div.style.top     =((window.innerHeight || document.body.clientHeight) - image.height)/2 + (window.scrollTop || document.body.scrollTop) +"px";

				myPreview.iframe.style.visibility = div.style.visibility = "visible";
				myPreview.startAnimation();
			}
		}
	},

	startAnimation : function()
	{
		myPreview.opacity=0;
		myPreview.animateInterval=setInterval("myPreview.animateOpacity()", 1);
	},

	stopAnimation : function()
	{
		clearInterval(myPreview.animateInterval);
	},

	animateOpacity : function ()
	{
		if(myPreview.opacity>99)return myPreview.stopAnimation();

		myPreview.opacity+=2;

		var image=myPreview.getActive();

		if(image)
		{
			if(image.filters && image.filters[0])image.style.filter='alpha(opacity='+myPreview.opacity+')';
			if(image.style.MozOpacity)image.style.MozOpacity=myPreview.opacity/100;
			if(image.style.opacity)image.style.opacity=myPreview.opacity/100;
		}else{
			myPreview.stopAnimation();
		}
	},

	getDiv : function(el)
	{
		var parent=el.parentNode;
		while (parent){
			if(parent.tagName=="DIV" && parent.getAttribute('preview')) break;
			var parent = parent.parentNode;
		}
		return parent;
	},

	showStatus : function (str)
	{
		window.status=" "+str;
	},

	showHandCursor : function()
	{
		myPreview.obj.style.cursor="Pointer";
	},

	showMoveCursor : function()
	{
		myPreview.obj.style.cursor="Move";
	},

	showTextCursor : function()
	{
		myPreview.obj.style.cursor="Text";
	},

	showDefaultCursor : function()
	{
		myPreview.obj.style.cursor="Default";
	}
}

myPreview.init();
