

function attachEvent(obj, evt, fnc) {
	if (obj.attachEvent) {
		obj.attachEvent('on'+evt, fnc);
	} else if (obj.addEventListener) {
		obj.addEventListener(evt, fnc, true);
	}
}

function realTop(obj){
	var _o = obj;
	var r = 0;
	while (_o) {
		r += _o.offsetTop;
		_o = _o.offsetParent;
	}
	return r;
}

function realLeft(obj){
	var _o = obj;
	var r = 0;
	while (_o) {
		r += _o.offsetLeft;
		_o = _o.offsetParent;
	}
	return r;
}

var izTop = 50;
var izLeft = 25;

function imgZoom(idc, idimg, imgZoom, title, w, h) {
	var _this = this;
	var _container = document.getElementById(idc);

	var img = document.getElementById(idimg);

	var _dvPai = img._dvPai = document.createElement('div');
	{
		_dvPai.className = 'dvimgzoom';
		var _dvTitle = document.createElement('div');
		{
			_dvTitle.innerHTML = title;
		}
		_dvPai.appendChild(_dvTitle);

		var _imgSrc = img._imgSrc = new Image();
		{
			img.ziSrc = imgZoom;
			_imgSrc.width = w;
			_imgSrc.height = h;
			_imgSrc.onload = function (){
				img._dvLoad.style.visibility = 'hidden';
			}
		}
		_dvPai.appendChild(_imgSrc);
		var _dvLoad = img._dvLoad = document.createElement('div');
		{
			_dvLoad.className = 'dvimgzoomloading';
			_dvLoad.innerHTML = 'Carregando ...'; // HTML do carregando
		}
		_dvPai.appendChild(_dvLoad);
	}
	_container.appendChild(_dvPai);

	var realignDiv = function (evt) {
		//var t = (document.body.scrollTop + izTop);
		var t = realTop(img) - izTop;
		if (t < 0) {
			t = 0;
		}
		//var l = ((document.body.scrollLeft + (evt.x || evt.pageX || 0)) - (img._dvPai.offsetWidth + izLeft));
		var l = realLeft(img) - Math.round(_dvPai.offsetWidth/2) + Math.round(img.offsetWidth/2);
		if (l < 0) {
			l = izLeft;
		} else if (l+_dvPai.offsetWidth > document.body.offsetWidth) {
			l = document.body.offsetWidth - _dvPai.offsetWidth - izLeft;
		}
		img._dvPai.style.top = t + 'px';
		img._dvPai.style.left = l + 'px';
		img._dvLoad.style.left = Math.round((img._dvPai.offsetWidth/2) - (img._dvLoad.offsetWidth/2));
		img._dvLoad.style.top = Math.round((img._dvPai.offsetHeight/2) - (img._dvLoad.offsetHeight/2));
	}

	img.zionMouseOver = function (evt) {
		realignDiv(evt);
		img._imgSrc.src = img.ziSrc;
		img._dvPai.style.visibility = 'visible';
	};
	img.zionMouseOut = function (evt) {
		img._dvPai.style.visibility = 'hidden';
	};
	img.zionMouseMove = function (evt) {
		realignDiv(evt);
	};
	attachEvent(img, 'click', img.zionMouseOver);
	attachEvent(img._dvPai, 'click', img.zionMouseOut);
	//	attachEvent(img, 'mouseout', img.zionMouseOut);
	//attachEvent(img, 'mousemove', img.zionMouseMove);
}


