if(!Array.indexOf){
	Array.prototype.indexOf = function(obj){
		for(var i=0; i<this.length; i++){
			if(this[i]==obj){
				return i;
			}
		}
		return -1;
	}
}

var oEv = new Evento();
var xm = 0;
var ym = 0;

document.onmousemove = function(e){
	if (window.event) e=window.event;
	xm = e.clientX;
	ym = e.clientY;
}

var panel = {
	speed : .008,
	t : 0,
	O : [],
	over : false,
	
	run : function() {
		panel.t += panel.speed;
		for (var i = 0, o; o = panel.O[i]; i++)
			o.anim(i + panel.t);
	},
	over: function(e){	
		var org = oEv.orgEvento(e);
		var caminho = org.src;
		var cacos = caminho.split("/");		
		cacos = cacos[cacos.length - 1].split(".");
		var nImage = cacos[0];
		nImage = parseInt(nImage);
		caminho = caminho.replace(nImage + ".jpg", nImage + "h.jpg");		
		org.src = caminho;				
	},
	out: function(e){	
		var org = oEv.orgEvento(e);
		var caminho = org.src;
		var cacos = caminho.split("/");					
		cacos = cacos[cacos.length - 1].split(".");
		var nImage = cacos[0];		
		cacos = nImage.split(".");
		nImage = cacos[0];
		nImage = nImage.replace("h","");
		caminho = caminho.replace(nImage + "h.jpg", nImage + ".jpg");						
		org.src = caminho;		
	},
	init : function(){
		for (var i = 0, o; o = document.images[i]; i++){
			if (o.className.indexOf('panel') >= 0) {
				var div = document.createElement("div");
				div.className = 'panel';
				var img = document.createElement("img");				
				img.src = o.src;
				img.alt = o.alt;
				img.className = 'imgPanel';
				o.parentNode.replaceChild(div,o);
				div.appendChild(img);
				oEv.adEvento(img, 'mouseover', panel.over);
				oEv.adEvento(img, 'mouseout', panel.out);
				div.ims = img.style;
				div.iw = img.width;
				div.ih = img.height;
				div.cx = -div.iw / 2;
				div.cy = -div.ih / 2;
				div.anim = function(t) {
					nw = this.offsetWidth;
					nh = this.offsetHeight;
					if (panel.over == this){
						for (var nx = 0, ny = 0, o = this; o != null; o = o.offsetParent) nx += o.offsetLeft, ny += o.offsetTop;
						var x = Math.max(-this.iw + nw, Math.min(0, (-(xm - nx) * (this.iw - nw)) / nw));
						var y = Math.max(-this.ih + nh, Math.min(0, (-(ym - ny) * (this.ih - nh)) / nh));
						if (Math.abs(xm-nx-nw * .5) > nw || Math.abs(ym-ny-nh * .5) > nw ) panel.over = false;
					} else {
						var mx = (this.iw - nw) * .5;
						var my = (this.ih - nh) * .5;
						var x = -mx * (1 + Math.cos(t * 1.2));
						var y = -my * (1 + Math.sin(t));
					}
					this.cx += (x - this.cx) * .1;
					this.cy += (y - this.cy) * .1;
					this.ims.left = Math.round(this.cx) + 'px';
					this.ims.top  = Math.round(this.cy) + 'px';
				}
				
				div.onmouseover = function()
				{					
					panel.over = this;					
				}
				this.O.push(div);
			}
		}
		setInterval(panel.run, 32);
	}
}
   
onload = function ()
{
	panel.init();
}

