	  //Original code by the guys of GitHub!

          // Detect if the browser is IE or not.
          // If it is not IE, we assume that the browser is NS.
          var IE = document.all?true:false;
 
          // If NS -- that is, !IE -- then set up for mouse capture
          if (!IE) document.captureEvents(Event.MOUSEMOVE);
 
          // Temporary variables to hold mouse x-y pos.s
          var tempX = 0;
          var tempY = 0;
 
 
 
          if (window.attachEvent) {
            window.attachEvent('onload', init);
          } else if (window.addEventListener) {
            window.addEventListener('load', init, false);
          } else {document.addEventListener('load', init, false);
          }
 
          function init() {
            document.getElementById('body').addEventListener('mousemove',parallax,false);
            originalspots1X = findPos(document.getElementById('parallax_spots_1'))[0]-findPos(document.getElementById('parallax_illustration'))[0];
            originalspots1Y = findPos(document.getElementById('parallax_spots_1'))[1]-findPos(document.getElementById('parallax_illustration'))[1];
            originalspots2X = findPos(document.getElementById('parallax_spots_2'))[0]-findPos(document.getElementById('parallax_illustration'))[0];
            originalspots2Y = findPos(document.getElementById('parallax_spots_2'))[1]-findPos(document.getElementById('parallax_illustration'))[1];
            originalParallaxBGX = findPos(document.getElementById('parallax_bg'))[0]-findPos(document.getElementById('parallax_illustration'))[0];
            originalParallaxBGY = findPos(document.getElementById('parallax_bg'))[1]-findPos(document.getElementById('parallax_illustration'))[1];
          }
          function parallax(e) {
            var rollOverObj = document.getElementById('parallax_illustration');
            var spots1 = document.getElementById('parallax_spots_1');
            var spots2 = document.getElementById('parallax_spots_2');
            var parallaxBG = document.getElementById('parallax_bg');
            var parallaxRootMouseX = 0;
            var parallaxRootMouseY = 0;
            var mousePerc = 0; // percentage distance across the rollover item.
 
            var spots1RangeX = 50;
            var spots1RangeY = 20;
            var spots2RangeX = 75;
            var spots2RangeY = 30;
            var parallaxBGRangeX = 10;
            var parallaxBGRangeY = 40;
 
            var rollOverObj_x = findPos(rollOverObj)[0];
            var rollOverObj_y = findPos(rollOverObj)[1];
 
            // this portion of the script is based on a script from www.CodeLifter.com
            if (IE) { // grab the x-y pos.s if browser is IE
              tempX = event.clientX + document.body.scrollLeft;
              tempY = event.clientY + document.body.scrollTop;
            } else {  // grab the x-y pos.s if browser is NS
              tempX = e.pageX;
              tempY = e.pageY;
            }
            // catch possible negative values in NS4
            if (tempX < 0){tempX = 0};
            if (tempY < 0){tempY = 0};
            // show the position values in the form named Show
            // in the text fields named MouseX and MouseY
            parallaxRootMouseX = tempX-rollOverObj_x;
            parallaxRootMouseY = tempY-rollOverObj_y;
            mousePercX = Math.round(((parallaxRootMouseX/940))*100)/100;
            mousePercY = Math.round(((parallaxRootMouseY/375))*100)/100;
 
            // Place items in the proper place allong their range.
            spots1.style.left = ((originalspots1X-spots1RangeX)+(spots1RangeX*mousePercX))+'px';
            spots1.style.top = ((originalspots1Y)-(spots1RangeY*mousePercY))+'px';
            spots2.style.left = ((originalspots2X-spots2RangeX)+(spots2RangeX*mousePercX))+'px';
            spots2.style.top = ((originalspots2Y)-(spots2RangeY*mousePercY))+'px';
            parallaxBG.style.left = ((originalParallaxBGX-parallaxBGRangeX)+(parallaxBGRangeX*mousePercX))+'px';
            parallaxBG.style.top = ((originalParallaxBGY)-(parallaxBGRangeY*mousePercY))+'px';
            trace('x_value', parallaxRootMouseX);
            trace('y_value', parallaxRootMouseY);
            trace('rollOverObj_percX', mousePercX);
            trace('rollOverObj_percY', mousePercY);
 
 
            return true;
            //----------------------------- /www.CodeLifter.com modified script
          }
          function findPos(obj) {
            var curleft = curtop = 0;
            if (obj.offsetParent) {
              do {
                curleft += obj.offsetLeft;
                curtop += obj.offsetTop;
              } while (obj = obj.offsetParent);
            return [curleft,curtop];
            }
          }
 
          function trace(n,m) { // n is the new id for the text item, m is the value;
            return
            if( !document.getElementById(n) ){ // if n exists, change value, otherwise make n;
              var newMessage = document.createTextNode(n.toUpperCase() + ': ' + m);
              var newP = document.createElement('p');
                newP.setAttribute('id', n);
              newP.appendChild(newMessage);
              document.getElementById('trace_box').appendChild(newP);
 
            } else {
              var targetNode = document.getElementById(n);
              targetNode.innerHTML = n.toUpperCase() + ': ' + m;
            }
          }
