var ids; //array of elements that we want in our menu
var moving = 0;
var anim;

function init_obj(id) {
	var elm = document.getElementById(id);
	ids.push(new Array(5));
	//now let's populate ids[x][0]-ids[x][4]
	ids[ids.length-1][0] = elm;                                 //actual obj
	ids[ids.length-1][1] = parseInt(elm.width);                 //width
	ids[ids.length-1][2] = parseInt(elm.height);                //height
	ids[ids.length-1][3] = parseInt(YAHOO.util.Dom.getY(elm));  //top pos
	ids[ids.length-1][4] = parseInt(YAHOO.util.Dom.getX(elm));	//left pos
}
function doLabel(elm,txt) {
  YAHOO.util.Event.on(elm, 'mouseover', function(){
  	  //stop animation
      if (anim) {
			  anim.onComplete.subscribe(resetText); 
				anim.stop(1);
      } else {
      	resetText();
      }
  	  document.getElementById('text_label').innerHTML=txt;
  } );	
}
function resetText() {	
			  var telm=document.getElementById('text_label');
	      telm.style.filter="alpha(opacity=100)"; //ie
	      telm.style.MozOpacity='1'; //moz
	      telm.style.opacity='1'; //safari 
				anim=null;
}
function doAnim() {
	  if (anim && anim.isAnimated) {
	  } else {
	   anim = new YAHOO.util.Anim('text_label', { opacity: { to: 0 } }, 1, YAHOO.util.Easing.easeOut);	
	   anim.animate();	
	  }
}
function initMenuItems() {
 ids=null;
 ids=new Array();
 YAHOO.util.Event.onAvailable('mim1', function(){init_obj('mim1'); doLabel('mim1','Previous Projects');});
 YAHOO.util.Event.onAvailable('mim2', function(){init_obj('mim2'); doLabel('mim2','Videos');});
 YAHOO.util.Event.onAvailable('mim3', function(){init_obj('mim3'); doLabel('mim3','Contact Information');});
 YAHOO.util.Event.onAvailable('mim4', function(){init_obj('mim4'); doLabel('mim4','Photo Gallery');});
 YAHOO.util.Event.onAvailable('mim5', function(){init_obj('mim5'); doLabel('mim5','Code Lab');});
};

function growShrink(e) {
	if (moving==1) {return;}
	moving=1;
  //get mouse coordinates:
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		posx = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}
	var altered = 0;
	//for each object:
	for (var x=0; x < ids.length; x++) {
		//are we close to our object?
		var half_width = ids[x][1] / 2;
		var half_height = ids[x][2] / 2;
		if (posx > (ids[x][4]-half_width) && posx < (ids[x][4]+ids[x][1]+half_width) && posy > (ids[x][3]-half_height) && posy < (ids[x][3]+ids[x][2]+half_height) ) {
			altered++;
		  //alter height and width
		  var width_from_center = posx-(ids[x][4]+half_width);
		  if (width_from_center < 0) {
		  	width_from_center -= (width_from_center*2); //flip negative values
		  }
		  ids[x][0].height=parseInt( ids[x][2]+((ids[x][2]-width_from_center)* 0.4) );
		  ids[x][0].width=parseInt( ids[x][1]+((ids[x][1]-width_from_center)* 0.4) );
		  //alter opacity
		  var trans = 20+(80-parseInt((width_from_center / ids[x][0].width) * 80));
      ids[x][0].style.filter="alpha(opacity="+trans+")"; //ie
      ids[x][0].style.MozOpacity=trans/100; //moz
      ids[x][0].style.opacity=trans/100; //safari				  
		} else {
			//ensure height is back to normal
			ids[x][0].width=ids[x][1];
		  ids[x][0].height=ids[x][2];
		  //ensure opacity is back to normal
      ids[x][0].style.filter="alpha(opacity=20)"; //ie
      ids[x][0].style.MozOpacity='0.2'; //moz
      ids[x][0].style.opacity='0.2'; //safari
		}
	}
	if (altered==0 && document.getElementById('text_label') && document.getElementById('text_label').innerHTML != '') {
    doAnim();
	}
	moving = 0;
}

YAHOO.example.init = function() {
   initMenuItems();
   window.onresize=initMenuItems;
   YAHOO.util.Event.on(document, 'mousemove', growShrink );
   //window.onmousemove=growShrink;
};

function rabbit_out() {
	var ranim = new YAHOO.util.Anim('rabbit', { top: { to: 180 } }, .7, YAHOO.util.Easing.elasticOut);  
	ranim.animate();	
  setTimeout("rabbit_in()", 2000);	
}

function rabbit_in() {
	var ranim = new YAHOO.util.Anim('rabbit', { top: { to: 300 } }, .5, YAHOO.util.Easing.elasticIn);  
	ranim.animate();	
  setTimeout("rabbit_out()", 3000);	
}

var do_rabbit_pop = function() {
  document.getElementById('rabbit').style.visibility='visible';	
  setTimeout("rabbit_out()", 3000);
}

YAHOO.util.Event.onAvailable('rabbit', do_rabbit_pop);
