window.onload=function(){
  	var sc = document.getElementById('container'),
  			co = document.getElementById('photos'),
  			timerSet = false;
  
  	
	sc.onmouseover = function(){
  		if(!timerSet) {
  			window.carouselMoveTimer = setInterval("carouselMoveCycle()",20);
  			timerSet = true;
  			
  			sc.onmousemove = function(e){
  			
  					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;
  					}
  					
  					// posx and posy contain the mouse position relative to the document
  					
  					window.cMouseX = posx - this.offsetLeft;
  					window.cMouseY = posy - this.offsetTop;
  			};
  		};
 	};
  	
	sc.onmouseout = function() {
  		timerSet = false;
  		window.clearInterval(carouselMoveTimer);
  		sc.onmousemove = null;
  };

	window.carouselMoveCycle = function () {
  		var currentLeft = co.offsetLeft,
  				currentTop = co.offsetTop,
  		    maxLeft = sc.offsetWidth - co.offsetWidth,
  		    maxTop = sc.offsetHeight - co.offsetHeight;
  				mX = window.cMouseX,
  				mY = window.cMouseY;
  		  		  		  		
  		var xD = Math.floor((mX - (sc.offsetWidth/2)) / (sc.offsetWidth * 0.018) );
  		var yD = Math.floor((mY - (sc.offsetHeight/2)) / (sc.offsetHeight * 0.018) );
  		  		
  		if( xD > 0 ) { xD-- } else if ( xD < 0 ) { xD++ };
  		if( yD > 0 ) { yD-- } else if ( yD < 0 ) { yD++ };
  		  		  				
  		var newLeft = currentLeft - xD;
  		var newTop = currentTop - yD;
  		
  		if (newLeft > 0) { newLeft = 0 };
  		if (newLeft < maxLeft) { newLeft = maxLeft };
  		
  		if (newTop > 0) { newTop = 0 };
  		if (newTop < maxTop) { newTop = maxTop };
  		  		
  		co.style.left = newLeft + "px";
  		// co.style.top = newTop + "px";
  };
};
