// Defaults
var AddFace = "#header"; // jQuery element to append face
var animOffset = ['73','75'];
var jseyes= { img:"images/animEyesBG.gif", w:70, h:25 };
var jseye1= { img:"images/animEye.png", w:8, h:8, x:8, y:13, xr:6, yr:8 };
var jseye2= { img:"images/animEye.png", w:8, h:8, x:63, y:13, xr:6, yr:8 };
var jseyesdeltat= 40; // ms
var jseyesfollow= 15; // %


jQuery(document).ready(function(){
	jseyeswr();
});

// Private global variables
var mousex= 0, mousey= 0;
var followx= 0, followy= 0;


// Find object by name or id
function jseyesobj(id) {
  var i, x;
  x= document[id];
  if (!x && document.all) x= document.all[id];
  for (i=0; !x && i<document.forms.length; i++) x= document.forms[i][id];
  if (!x && document.getElementById) x= document.getElementById(id);
  return(x);
}


// Move eyes
function jseyesmove() {
  var ex, ey, dx, dy;
  dx = mousex-followx;
  dy = mousey-followy;
  followx+= dx*jseyesfollow/100;
  followy+= dy*jseyesfollow/100;
  if (jseyes.o && jseye1.o && jseye2.o && jseyes.o.style) {
	//  Left eye move independantly
    dx= followx-jseyes.o.offsetLeft-jseye1.x;
    dy= followy-jseyes.o.offsetTop- jseye1.y;
    r= Math.sqrt(dx*dx/(jseye1.xr*jseye1.xr)+dy*dy/(jseye1.yr*jseye1.yr));
    if (r<1) r=1;
    jseye1.o.style.left	= Math.round(dx/r+jseye1.x-jseye1.w/2)+"px";
    jseye1.o.style.top	= Math.round(dy/r+jseye1.y-jseye1.h/2)+"px";
	
	// hack to make right eye follow the left
    jseye2.o.style.left	= Math.round(parseInt(jseye1.o.style.left)+jseye2['x']-jseye2['xr']-(jseye2['w']/2))+"px";
    jseye2.o.style.top	= jseye1.o.style.top;
/*
	//  right eye move independantly
	dx= followx-jseyes.o.offsetLeft-jseye2.x;
    dy= followy-jseyes.o.offsetTop- jseye2.y;
    r= Math.sqrt(dx*dx/(jseye2.xr*jseye2.xr)+dy*dy/(jseye2.yr*jseye2.yr));
    if (r<1) r=1;
    jseye2.o.style.left= (dx/r+jseye2.x-jseye2.w/2)+"px";
    jseye2.o.style.top=  (dy/r+jseye2.y-jseye2.h/2)+"px";
*/  }
}

function imageBG(y){
	var png = (window.XMLHttpRequest) ? true : false ;
	var x;
	if(png){
		x = "background-image:url("+y+");"
	}else{
		x = "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\"http://www.marthaburns.com/"+y+"\",sizingMethod=\"crop\");";
	}
	return x;
}

// Main
function jseyeswr() {
	var face;
	var x, y, a=false;
	
	// Relative or abslute position
	if (arguments.length == 2) {
		x= arguments[0];
		y= arguments[1];
		a= true;
	}
	
	
	// Create image
	face=
	"<div id='jseyeso' style='position:absolute; left:"+animOffset[0]+"px; top:"+animOffset[1]+"px; z-index:5; overflow:hidden; "+
	"width:"+jseyes.w+"px; height:"+jseyes.h+"px;"+
	"background-image:url("+jseyes.img+");'>\n"+
	
	"<div id='jseye1o' style='position:absolute; z-index:6; "+
	"left:"+(jseye1.x-jseye1.w/2)+"px; top:"+(jseye1.y-jseye1.h/2)+"px; "+
	"width:"+jseye1.w+"px; height:"+jseye1.h+"px; "+
	imageBG(jseye1.img)+"'>\n"+
	"</div>\n"+
	
	"<div id='jseye2o' style='position:absolute; z-index:6; "+
	"left:"+(jseye2.x-jseye2.w/2)+"px; top:"+(jseye2.y-jseye2.h/2)+"px; "+
	"width:"+jseye2.w+"px; height:"+jseye2.h+"px; "+
	imageBG(jseye2.img)+"'>\n"+
	"</div>\n"+
	"</div>\n";
	
	$(AddFace).append(face);
	jseyes.o= jseyesobj('jseyeso');
	jseye1.o= jseyesobj('jseye1o');
	jseye2.o= jseyesobj('jseye2o');
	
	// Install capture mouse position handler
	$().mousemove(function(e){
	  mousex=e.pageX;
	  mousey= e.pageY;
	  // Hack to make eyes work togather 
	  mousex -= (jseyes['w']/2); // center of eyes
	  mousey -= 15;
	});
	// Animate
	setInterval("jseyesmove()", jseyesdeltat);
}
