// ==UserScript==
// @name           VignetteTracer
// @namespace      fr.emse
// @description    Trace les activités autour des vignettes
// @include        http://pagesperso-orange.fr/jeux.lulu/html/sequent/*
// ==/UserScript==

function Log(hashtable) {
  var url = "http://interactiontracer.appspot.com/trace?";
  url += "time="+new Date().getTime();
  url += "&key_application=vignette";
  url += "&key_session=test";
  for (var key in hashtable) {
    url += "&"+encodeURIComponent(key)+"="+encodeURIComponent(hashtable[key]);
  }
  var GM_JQ = document.createElement('script');
  GM_JQ.src = url;
  GM_JQ.type = 'text/javascript';
  document.getElementsByTagName('head')[0].appendChild(GM_JQ);
}

//new Log({"user":"gregory","contents":"hello world"});


oldprendre = unsafeWindow.prendre;
unsafeWindow.prendre = function(n) {
  Log({type:"prendre",
	  piece: n+1,
	  message: "pris l'élément "+ (n+1)});
  oldprendre(n);
};

oldposer = unsafeWindow.poser
unsafeWindow.poser = function(n) {
  oldposer(n); 
  var lieu = -1;
  for (var i=0; i<unsafeWindow.nbImages; i++) {
    if (unsafeWindow.casesGa[i]==n) {
      lieu = i; // 1-based for logging
    }
  }
  if (lieu < 0) {
    Log({type:"poser",
	  lieu: -1,
	  piece: n+1,
	  message: "remis l'élément "+ (n+1) + " à sa place d'origine"});
  } else {
    Log({type:"poser",
	  lieu: lieu+1,
	  piece: n+1,
	  message: "posé l'élément "+ (n+1) + " à la position "+ (lieu+1)});
  }
};

olddepart = unsafeWindow.depart; 
unsafeWindow.depart = function(n) {
  olddepart(n);
  array = new Array(unsafeWindow.nbImagesTotal);
  for (var i=0; i<unsafeWindow.nbImagesTotal; i++) {
    if (unsafeWindow.imagesDr[i]!=-1) {
      array[unsafeWindow.imagesDr[i]] = (i+1); // 1-based for logging
    }
  }
  Log({type:"début",
	page:unsafeWindow.location,
	message:"ordre des morceaux: "+array.join(" ")});
};
