
function detectDimension() {
  var d = {   
    "viewW" : 0,	//viewPort Width
    "viewH" : 0,	//viewPort Height
    "docW" : 0,	//document Width
    "docH" : 0,	//document Height
    "left" : 0,	//content Left Position according to the document flow
    "top" : 0,	//content top position according to the document flow
    "maxW" : 0,
    "maxH" : 0
  };
  if ( document.body.scrollHeight > document.body.offsetHeight ) {
    d.docW = document.body.scrollWidth;
    d.docH = document.body.scrollHeight;
  } else {
    d.docW = document.body.offsetWidth;
    d.docH = document.body.offsetHeight;
  }
  if ( self.innerWidth ) {
    d.viewW = self.innerWidth;
    d.viewH = self.innerHeight;
    d.left = window.pageXOffset;
    d.top = window.pageYOffset;
  } else {
    var ie = ( document.compatMode && document.compatMode != 'BackCompat' ) ? document.documentElement : document.body;
    d.viewW = ie.clientWidth;
    d.viewH = ie.clientHeight;
    d.left = ie.scrollLeft;
    d.top = ie.scrollTop;
  }
  d.maxW = ( d.viewW > d.docW ) ? d.viewW : d.docW;
  d.maxH = ( d.viewH > d.docH ) ? d.viewH : d.docH;
  return d;
};


function getDocumentSize() {
  page = detectDimension();
  x1 = page.maxW;
  y1 = page.maxH;
}


var x = -100;
var y = -100;
var xpos = new Array();
var ypos = new Array();


var message = "Louise Angel ";
step = [   20, 17, 14, 14, 8, 10,   25,   0, 19, 13, 13, 12,   10   ];


message = message.split("");
for ( i=0; i<message.length; i++ )		xpos[i] = -50;
for ( i=0; i<message.length; i++ )  		ypos[i] = -50;


function affiche() {
  for ( i=0; i<message.length; i++ )
    document.write( '<span id="span'+i+'" style="position:absolute; top:-50; left:-50" class="snake">'+message[i]+'</span>' );
}
affiche();


function positionSouris(e)	{
  x = ( navigator.appName.substring( 0, 3 ) == "Net" ) ? e.pageX : event.x+document.body.scrollLeft;
  y = ( navigator.appName.substring( 0, 3 ) == "Net" ) ? e.pageY : event.y+document.body.scrollTop;
}
if ( navigator.appName.substring( 0, 3 ) == "Net" )	document.captureEvents( Event.MOUSEMOVE );
document.onmousemove = positionSouris;


var x1 = 400;
var y1 = 200;


function makesnake() {
  getDocumentSize()
  for ( i=message.length-1; i>0; i-- ) {
    xpos[i] = xpos[i-1]+step[i];
    ypos[i] = ypos[i-1];
  }
  xpos[0] = x+step[i];
  ypos[0] = y;
  for ( i=0; i<message.length; i++ ) {
    if ( xpos[i] > x1-40 ) // si le caractère à afficher est au delà de la largeur de la page moins la marge de droite définie
      document.getElementById( "span"+i ).style.left = -50;
    else
      document.getElementById( "span"+i ).style.left = xpos[i];
    if ( ypos[i] > y1-30 ) // si le caractère à afficher est en deça de la hauteur de la page moins la marge du bas définie
      document.getElementById( "span"+i ).style.top = -50;
    else
      document.getElementById( "span"+i ).style.top = ypos[i];
  }
  setTimeout( "makesnake()", 35 );	// relance makesnake
}


detectDimension();
makesnake();

