var PvTracker = {
  /* valeurs initiales */
  initValues : new Array(),
  currentTarget : null,
  debug : false,
  load:function()
  {
    if (typeof urchinTracker == "function")
    {
      /**
       * soit on met directement l'observer sur l'id si on est sur qu'il existe
       * Event.observe($('logofr'),'click', PvTracker.track);
       * soit on test la présence de l'id.
       */
      /* on test la presence du logo dans la page */
      if ($('logofr'))
      {
        Event.observe($('logofr'),'click', PvTracker.track_logo);
      }
      else if ($('logoen'))
      {
        Event.observe($('logoen'),'click', PvTracker.track_logo);
      }
      else if ($('logode'))
      {
        Event.observe($('logode'),'click', PvTracker.track_logo);
      }
      else if ($('logoes'))
      {
        Event.observe($('logoes'),'click', PvTracker.track_logo);
      }
      else if ($('logoit'))
      {
        Event.observe($('logoit'),'click', PvTracker.track_logo);
      }
      else if ($('logonl'))
      {
        Event.observe($('logonl'),'click', PvTracker.track_logo);
      }
      
      if ($('selectDevise'))
      {
        Event.observe($('selectDevise'),'change', PvTracker.track_devise);
      }
      if ($('submitMoteurMultiCriteres'))
      {
        Event.observe($('submitMoteurMultiCriteres'),'click', PvTracker.track_motCritere);
      }
      if ($('plusCritMoteurMultiCriteres'))
      {
        Event.observe($('plusCritMoteurMultiCriteres'),'click', PvTracker.track_motCritere);
      }
      if ($('submitMoteurLibre'))
      {
        Event.observe($('submitMoteurLibre'),'click', PvTracker.track_submitMoteurLibre);
      }
      if ($('fiche_produit_reserver_maintenant'))
      {
        Event.observe($('fiche_produit_reserver_maintenant'),'click', PvTracker.track);
      }
      if ($('fiche_produit_reserver_maintenant_texte'))
      {
        Event.observe($('fiche_produit_reserver_maintenant_texte'),'click', PvTracker.track);
      }
      if ($('fiche_produit_print'))
      {
        Event.observe($('fiche_produit_print'),'click', PvTracker.track);
      }
      if ($('fiche_produit_reserver_maintenant_texte_haut'))
      {
        Event.observe($('fiche_produit_reserver_maintenant_texte_haut'),'click', PvTracker.track);
      }
      if ($('fiche_produit_reserver_maintenant_texte_bas'))
      {
        Event.observe($('fiche_produit_reserver_maintenant_texte_bas'),'click', PvTracker.track);
      }
      /**
       * fiche produit
       */
      if ($('fiche_produit_ajout_selection'))
      {
        Event.observe($('fiche_produit_ajout_selection'),'click', PvTracker.track);
      }
      if ($('fiche_produit_print'))
      {
        Event.observe($('fiche_produit_print'),'click', PvTracker.track);
      }
      if ($('lienPVCI'))
      {
        Event.observe($('lienPVCI'),'click', PvTracker.track);
      }
      if ($('ongletGalerieImg'))
      {
        Event.observe($('ongletGalerieImg'),'click', PvTracker.track);
      }
      if ($('ongletVideo'))
      {
        Event.observe($('ongletVideo'),'click', PvTracker.track);
      }
      if ($('ongletVV'))
      {
        Event.observe($('ongletVV'),'click', PvTracker.track);
      }
      if ($('PRboutonHiver'))
      {
        Event.observe($('PRboutonHiver'),'click', PvTracker.track);
      }
      if ($('PRboutonEte'))
      {
        Event.observe($('PRboutonEte'),'click', PvTracker.track);
      }
      if ($('consulter_les_tarifs'))
      {
        Event.observe($('consulter_les_tarifs'),'click', PvTracker.track);
      }
      if ($('affichePrix'))
      {
        Event.observe($('affichePrix'),'click', PvTracker.track);
      }
            
      /* PERMET de traquer un utilisateur à travers plusieurs nom de domaines
       * <a href="http://newsite.com/test.html" onclick="__utmLinker('http://newsite.com/test.html'); return false;">click me</a>
       */
      tab_tracking = new Array();

      /** HEADER **/
      /* evenements rajoutés sur la barre d'onglets */
      tab_tracking.push('pv');
      /* evenements rajoutés sur la barre de naviguation */
      tab_tracking.push('nav');
      /* evenements rajoutés sur le moteur thematique */
      tab_tracking.push('moteurTheme');
      /* evenements rajoutés sur le moteur geographique */
      tab_tracking.push('moteurGeo');
      /* evenements rajoutés sur les liens de l'iframe du moteur de saisie libre. */
      tab_tracking.push('divCompletionIframe');
      /* evenements rajoutés sur les liens des drapeaux langue. */
      tab_tracking.push('drapeaux');
      /** FOOTER **/
      /* evenements rajoutés sur le footer */
      tab_tracking.push('footer');
      tab_tracking.push('footer_2');
      /* evenements rajoutés sur les onglets de la fiche produit. */
      tab_tracking.push('FPmenu');
      tab_tracking.push('listeContreProposition');

      tab_trackingLength = tab_tracking.length;
      for (i = 0 ; i < tab_trackingLength; i++)
      {
        if ($(tab_tracking[i]))
        {
          tabLien = $(tab_tracking[i]).getElementsByTagName('a');
          tabLienLength = tabLien.length;
          for (j = 0 ; j < tabLienLength; j++)
          {
            if (typeof eval('PvTracker.track_' + tab_tracking[i]) == 'function')
            {
              Event.observe(tabLien[j],'click', eval('PvTracker.track_' + tab_tracking[i]));
            }
            else
            {
              Event.observe(tabLien[j],'click', PvTracker.track);
            }
          }
        }
      }

      //tracking des thematiques
      for (i = 0 ; i < 10; i++)
      {
        if ($('thematique_' + i))
        {
          tabLien = $('thematique_' + i).getElementsByTagName('a');
          tabLienLength = tabLien.length;
          for (j = 0 ; j < tabLienLength; j++)
          {
            Event.observe(tabLien[j],'click', PvTracker.track_moteurTheme);
          }
        }
      }
    }
    PvTracker.loadCriteres();
  },
  loadIFrameMoteurSaisie:function()
  {
    iframeSaisie = window.frames["iframeCompletion"].window;
    if (iframeSaisie && typeof urchinTracker == "function")
    {
      /* PERMET de traquer un utilisateur à travers plusieurs nom de domaines
       * <a href="http://newsite.com/test.html" onclick="__utmLinker('http://newsite.com/test.html'); return false;">click me</a>
       */
      tab_tracking = new Array();
      /* evenements rajoutés sur les liens de l'iframe du moteur de saisie libre. */
      tab_tracking.push('divCompletionIframe');

      tab_trackingLength = tab_tracking.length;
      for (i = 0 ; i < tab_trackingLength; i++)
      {
        if (iframeSaisie.document.getElementById(tab_tracking[i]))
        {
          tabLien = iframeSaisie.document.getElementById(tab_tracking[i]).getElementsByTagName('a');
          tabLienLength = tabLien.length;
          for (j = 0 ; j < tabLienLength; j++)
          {
            Event.observe(tabLien[j],'click', PvTracker.track_iframeCompletion);
          }
        }
      }
    }
  },
  loadCriteres:function()
  {
    if (typeof urchinTracker == "function")
    {
      if ($('divplusdecrit'))
      {
        Event.observe($('divplusdecrit'),'click', PvTracker.track_divplusdecrit);
      }
      // tracking de la partie critères
      if ($('marqueSelected'))
      {
        Event.observe($('marqueSelected'),'change', PvTracker.track_marqueSelected);
      }
      if ($('typeHebergementSelected'))
      {
        Event.observe($('typeHebergementSelected'),'change', PvTracker.track_typeHebergementSelected);
      }
      if ($('promotionSelect'))
      {
        Event.observe($('promotionSelect'),'click', PvTracker.track);
      }

      //parcour sur le tableau des services & des thematiques
      if (typeof tabCriteresServices != 'undefined')
      {
        addEvent( tabCriteresServices, 'services', 'click');
      }
      if (typeof tabCriteresActivites != 'undefined')
      {
        addEvent( tabCriteresActivites, 'activite', 'click');
      }
            
      // tracking de la partie tri
      if ($('tri_destination'))
      {
        Event.observe($('tri_destination'),'click', PvTracker.track_tri);
      }
      if ($('tri_formule'))
      {
        Event.observe($('tri_formule'),'click', PvTracker.track_tri);
      }
      if ($('tri_prix'))
      {
        Event.observe($('tri_prix'),'click', PvTracker.track_tri);
      }
      if ($('tri_marque'))
      {
        Event.observe($('tri_marque'),'click', PvTracker.track_tri);
      }
      /** tracking de la partie pagination **/

      /** MOTEUR DE RECHERCHE **/
      tab_tracking = new Array();
      /* evenements rajoutés sur le moteur de critères */
      //tab_tracking.push('motCritere');
      /* evenements rajoutés sur la pagination haut */
      tab_tracking.push('criteres');
      /* evenements rajoutés sur la pagination haut */
      tab_tracking.push('pagination_haut');
      /* evenements rajoutés sur la pagination bas */
      tab_tracking.push('pagination_bas');
      tab_tracking.push('visite');

      tab_trackingLength = tab_tracking.length;
      for (i = 0 ; i < tab_trackingLength; i++)
      {
        if ($(tab_tracking[i]))
        {
          tabLien = $(tab_tracking[i]).getElementsByTagName('a');
          tabLienLength = tabLien.length;
          for (j = 0 ; j < tabLienLength; j++)
          {
            if (typeof eval('PvTracker.track_' + tab_tracking[i]) == 'function')
            {
              Event.observe(tabLien[j],'click', eval('PvTracker.track_' + tab_tracking[i]));
            }
            else
            {
              if (tabLien[j].getAttribute('id') != undefined && tabLien[j].getAttribute('id').substr(0, '3') != 'tri')
              {
                Event.observe(tabLien[j],'click', PvTracker.track);
              }
            }
          }
        }
      }            
      //tracking de la partie résultat
      // ATTENTION on ne track que les lien du bouton reserver
      if ($('resultats'))
      {
        ok = true;
        i = 0;
        while (ok && i < 100)
        {
          if ($('btn_reserver_' + i))
          {
            Event.observe($('btn_reserver_' + i),'click', PvTracker.track_resultats);
          }
          else
          {
            ok = false;
          }
          i = i + 1;
        }
      }
    }
  },
/*  ---------------------------------- FIN DU LOADING ------------------------------  */
/* header : devise */
  track_devise:function()
  {
    tabUrl = new Array();
      
    var pageType = testPageType();
    var pageName = testpageName();
    var url = '';

    selectDevise = $('selectDevise').options.item($('selectDevise').selectedIndex).text;
    url = '/header/devise/' + pageType + pageName + selectDevise;
    tabUrl.push(url);

    //appel unique à urchin tracker
    return sendTracking (tabUrl, null, 'devise');
  },
/* header : onglet liens */
  track_nav:function(evt)
  {
    tabUrl = new Array();
    var pageType = testPageType();
    var pageName = testpageName();
      
    var url = '';
    var src = evt.target;
    if (src == null) src = event.srcElement;
    var children = src.childNodes;
    
    for (var i = 0; i < children.length; i++)
    {
      child = children[i];
      if((child.tagName).toLowerCase() == 'img')
      {
        if(child.getAttribute('alt') != undefined && child.getAttribute('alt'))
        {
          url = "/" + child.getAttribute('alt');
        }
      }
    }
    if (url == '' || url == null)
    {
      if (src.nodeName == 'IMG' && src.getAttribute('alt') != undefined)
      {
        url = "/" + src.getAttribute('alt');
      }
      if (url == null || url == '' || url == '/')
      {
        url = "/" + src.parentNode.getAttribute('href');
      }
    }
    url = '/header/onglet/' + pageType + pageName + url;
    tabUrl.push(url);

    //appel unique à urchin tracker
    return sendTracking (tabUrl, null, 'onglet lien');
  },
/* drapeaux */
  track_drapeaux:function(evt)
  {
    var src = evt.target;
    if (src == null) src = event.srcElement;

    tabUrl = new Array();
    var pageType = testPageType();
    var pageName = testpageName();
      
    url = src.parentNode.getAttribute('href');
    tabUrl.push('/header/lang/' + pageType + pageName + url);

    /* transmission dans l'url des informations de GA cross domaine
     *  à placer en debut de fichier : nouveauNomDomain = url;
     *  src.parentNode.setAttribute('href', '#');
     *  return sendTracking (tabUrl, url, 'drapeaux');
     */
    return sendTracking (tabUrl, null, 'drapeaux');
  },
/* onglet marque */
  track_pv:function(evt)
  {
    var src = evt.target;
    if (src == null) src = event.srcElement;

    nouveauNomDomain = src.getAttribute('href');

    tabUrl = new Array();
    var pageType = testPageType();
    var pageName = testpageName();
      
    url = src.parentNode.getAttribute('href');
    nouveauNomDomain = url;
    if (src.nodeName == 'IMG' && src.getAttribute('alt') != undefined)
    {
      url = "/" + src.getAttribute('alt');
    }
    if (url == null || url == '' || url == '/')
    {
      url = "/" + src.parentNode.getAttribute('href');
    }
    /*
     * sur demande, on supprimer marque, ce qui fait qu'on ne sait pas où on a cliqué... mais bon c'est pas grave
     * url = '/header/marque/' + pageType + url;
     */
    url = '/header/' + pageType + pageName + url;
    tabUrl.push(url);
    
    /* transmission dans l'url des informations de GA cross domaine
     *  à placer en debut de fichier : nouveauNomDomain = url;
     *  src.parentNode.setAttribute('href', '#');
     *  return sendTracking (tabUrl, nouveauNomDomain, 'onglet marque');
     */
    return sendTracking (tabUrl, null, 'onglet marque');
  },
/* header logo marque */
  track_logo:function(evt)
  {
    var src = evt.target;
    if (src == null) src = event.srcElement;
    

    tabUrl = new Array();
    var pageType = testPageType();
    var pageName = testpageName();
    linker = '/logo';
    /*
    var children = src.childNodes;
    ON N'UTILISE PLUS L'URL D'APPEL 
    for (var i = 0; i < children.length; i++)
    {
      child = children[i];
      if((child.tagName).toLowerCase() == 'a')
      {
        linker = "/" + child.getAttribute('href');
      }
    }
    */
    url = '/header/' + pageType + pageName + linker;
    tabUrl.push(url);

    /* transmission dans l'url des informations de GA cross domaine
     *  nouveauNomDomain = src.getAttribute('href');
     *  src.setAttribute('href', '#');
     *  return sendTracking (tabUrl, nouveauNomDomain, 'logo');
     */
    return sendTracking (tabUrl, null, 'logo');
  },
/* lien de la partie footer */
  track_footer:function(evt)
  {
    var src = evt.target;
    if (src == null) src = event.srcElement;

    var pageType = testPageType();
    var pageName = testpageName();
      
    tabUrl = new Array();
    if ((src.tagName).toLowerCase() == 'a' 
        && src.getAttribute('href') != undefined
        && src.getAttribute('href').toLowerCase() != '' 
        && src.getAttribute('href').toLowerCase() != '#')
    {
      tabUrl.push('/footer/' + pageType + pageName + src.innerHTML);
    }

    /* transmission dans l'url des informations de GA cross domaine
     *  url = null;
     *  leHref = src.getAttribute('href');
     *  if (leHref.search("popup") == -1)
     *  {
     *    url = src.getAttribute('href');
     *    //appel unique à urchin tracker
     *    src.setAttribute('href', '#');
     *    }
     *  return sendTracking (tabUrl, url, 'footer');
     */
    return sendTracking (tabUrl, null, 'footer');
  },
/* lien de la partie footer */
  track_footer_2:function(evt)
  {
    var src = evt.target;
    if (src == null) src = event.srcElement;

    var pageType = testPageType();
    var pageName = testpageName();
      
    tabUrl = new Array();
    if ((src.tagName).toLowerCase() == 'a' 
        && src.getAttribute('href') != undefined
        && src.getAttribute('href').toLowerCase() != '' 
        && src.getAttribute('href').toLowerCase() != '#')
    {
      tabUrl.push('/footer/' + pageType + pageName + src.innerHTML);
    }

    /* transmission dans l'url des informations de GA cross domaine
     * url = src.parentNode.getAttribute('href');
     * src.parentNode.setAttribute('href', '#');
     * return sendTracking (tabUrl, url, 'footer 2');
     */
    return sendTracking (tabUrl, null, 'footer 2'); 
  },
/* lien de la partie moteur multicritère */
  track_motCritere:function(evt)
  {
    var src = evt.target;
    if (src == null) src = event.srcElement;

    tabUrl = new Array();

    var date = $('dateDepart').value;
    var reg = new RegExp("[/]+", "g");
    var tabDate = date.split(reg);
    var mois= tabDate[1];
    duree = $('dureeCtrl').options.item($('dureeCtrl').selectedIndex).value;
    region = $('regionCtrl').options.item($('regionCtrl').selectedIndex).text;
    
    url1 = "?cat=moteur_multicriteres&search=" + mois + "," + duree + "," + region;
    tabUrl.push(url1);

    //appel unique à urchin tracker
    sendTracking (tabUrl, null, 'moteur multi');
    if ( (src.getAttribute('id') != undefined) && (src.getAttribute('id') == "plusCritMoteurMultiCriteres") )
    {
      submitEngineByLink();
    }
    return true;
  },
/* lien réservé de la partie reservation de la liste de résultat moteur */
  track_resultats:function(evt)
  {
    var src = evt.target;
    if (src == null) src = event.srcElement;
    
    var pageType = testPageType();
    tabUrl = new Array();
    url = "/" + pageType + "reservation/" + src.parentNode.getAttribute('pvtrack');
    tabUrl.push(url);

    //appel unique à urchin tracker
    return sendTracking (tabUrl, null, 'resultats');
  },
/* moteur de criteres select marque */
  track_marqueSelected:function()
  {
    var pageType = testPageType();
    var pageName = testpageName();
    tabUrl = new Array();
    marqueSelected = $('marqueSelected').options.item($('marqueSelected').selectedIndex).text;
    url = "/" + pageType + pageName + "filtre/marque/" + marqueSelected;
    tabUrl.push(url);
    //appel unique à urchin tracker
    return sendTracking (tabUrl, null, 'marque');
  },
/* moteur de criteres select hebergement */
  track_typeHebergementSelected:function()
  {
    var pageType = testPageType();
    var pageName = testpageName();
    tabUrl = new Array();

    typeHebergementSelected = $('typeHebergementSelected').options.item($('typeHebergementSelected').selectedIndex).text;
    url = "/" + pageType + pageName + "filtre/hebergement/" + typeHebergementSelected;
    tabUrl.push(url);
    //appel unique à urchin tracker
    return sendTracking (tabUrl, null, 'hebergements');
  },
/* bouton submit du moteur libre */
  track_submitMoteurLibre:function()
  {
    tabUrl = new Array();

    motCtrl = $('motCtrl').value;
    url = "?cat=moteur_libre&search=" + motCtrl;
    tabUrl.push(url);
    //appel unique à urchin tracker
    return sendTracking (tabUrl, null, 'moteur libre');
  },
/* click sur un lien du moteur libre */
  track_iframeCompletion:function(evt)
  {
    tabUrl = new Array();
    var src = evt.target;
    if (src == null) src = event.srcElement;
    
    motCtrl = $('motCtrl').value;

    url = "?cat=moteur_libre&search=" + motCtrl;
    tabUrl.push(url);
    //appel unique à urchin tracker
    return sendTracking (tabUrl, null, 'moteur libre');
  },
/* lien affichant plus de critères */
  track_divplusdecrit:function()
  {
    var pageType = testPageType();
    var pageName = testpageName();
    tabUrl = new Array();

    url = "/" + pageType + pageName + "filtre/type de destination/plus";
    tabUrl.push(url);
    //appel unique à urchin tracker
    return sendTracking (tabUrl, null, 'plus de critere');
  },
/* moteur géographique */
  track_moteurGeo:function(evt)
  {
    tabUrl = new Array();
    var src = evt.target;
    if (src == null) src = event.srcElement;

    url = "/moteur/geographique/" + src.getAttribute('pvtrack');
    tabUrl.push(url);
    //appel unique à urchin tracker
    return sendTracking (tabUrl, null, 'moteur geo');
  },
/* moteur thematique */
  track_moteurTheme:function(evt)
  {
    tabUrl = new Array();
    var src = evt.target;
    if (src == null) src = event.srcElement;
      
    var thematique = src.innerHTML;
    if (src.nodeName == 'IMG')
    {
      var racine = src.parentNode.parentNode.parentNode;
      var childs = racine.childNodes;
      var childsLength = childs.length;
      for (i = 0; i < childsLength; i++)
      {
        child = childs[i];
        // if the node is an element and an IMG set the variable and exit the loop
        if(child.nodeType == 1 && (child.nodeName).toUpperCase() == "DD")
        {
          thematique = child.firstChild.innerHTML;
        }
      }
    }

    url = "/moteur/thematique/" + thematique;
    tabUrl.push(url);
    //appel unique à urchin tracker
    return sendTracking (tabUrl, null, 'moteur thema');
  },
/* moteur recherche libre*/
  track_divCompletionIframe:function(evt)
  {
    var src = evt.target;
    if (src == null) src = event.srcElement;

    tabUrl = new Array();
    url = "/" + code_mrq + "/moteur/libre/" + src.getAttribute('pvtrack');
    tabUrl.push(url);
    //appel unique à urchin tracker
    return sendTracking (tabUrl, null, 'completion');
  },
/* tri */
  track_tri:function(evt)
  {
    var src = evt.target;
    if (src == null) src = event.srcElement;

    tabUrl = new Array();
    url =  src.getAttribute('pvtrack');
    tabUrl.push(url);
    //appel unique à urchin tracker
    return sendTracking (tabUrl, null, 'tri');
  },
/* pagination haut */
  track_pagination_haut:function(evt)
  {
    var src = evt.target;
    if (src == null) src = event.srcElement;

    /* si on est dans le cas d'un click sur une image, on remonte d'un niveau pour avoir le src = le lien */
    if (src.nodeName == 'IMG')
    {
      src = src.parentNode;
    }
    tabUrl = new Array();
    url = src.getAttribute('pvtrack');
    tabUrl.push(url);
    //appel unique à urchin tracker
    return sendTracking (tabUrl, null, 'pagination haut');
  },
/* pagination bas */
  track_pagination_bas:function(evt)
  {
    var src = evt.target;
    if (src == null) src = event.srcElement;

    /* si on est dans le cas d'un click sur une image, on remonte d'un niveau pour avoir le src = le lien */
    if (src.nodeName == 'IMG')
    {
      src = src.parentNode;
    }
    tabUrl = new Array();
    url = src.getAttribute('pvtrack');
    tabUrl.push(url);
    //appel unique à urchin tracker
    return sendTracking (tabUrl, null, 'pagination bas');
  },
/* moteur criteres services */
  trackServices:function(evt)
  {
    var src = evt.target;
    if (src == null) src = event.srcElement;

    if(src.checked)
    {
      tabUrl = new Array();
      var track = '';
      //_uacct = this._uacct;
      if (src.nodeType == 1 && src.getAttribute('id') != undefined)
      {
        var monId = src.getAttribute('id');
        track = $('label_' + monId).innerHTML;
      }
  
      url = "/filtre/services/" + track;
      tabUrl.push(url);
      //appel unique à urchin tracker
      sendTracking (tabUrl, null, 'services');
    }
    return true;
  },
/* moteur criteres activites */
  trackActivites:function(evt)
  {
    var src = evt.target;
    if (src == null) src = event.srcElement;

    if(src.checked)
    {
      tabUrl = new Array();
      var track = '';
      //_uacct = src._uacct;
      if (src.nodeType == 1 && src.getAttribute('id') != undefined)
      {
        var monId = src.getAttribute('id');
        track = $('label_' + monId).innerHTML;
      }

      url = "/filtre/activites/" + track;
      tabUrl.push(url);
      //appel unique à urchin tracker
      return sendTracking (tabUrl, null, 'activites');
    }
    return true;
  },
/* lien de la partie FICHE PRODUIT : listeContreProposition PVCI */
  track_listeContreProposition:function(evt)
  {
    var src = evt.target;
    if (src == null) src = event.srcElement;

    var tabUrl = new Array();
    var pageType = testPageType();
    var pageName = testpageName();

    if ((src.parentNode.tagName).toLowerCase() == 'a' 
        && src.parentNode.getAttribute('href') != undefined
        && src.parentNode.getAttribute('href').toLowerCase() != '' 
        && src.parentNode.getAttribute('href').toLowerCase() != '#')
    {
      tabUrl.push('/contreProposition/' + pageType + pageName + src.innerHTML.replace(/(^\s*)|(\s*$)/g,''));
    }
 
    /* transmission dans l'url des informations de GA cross domaine
     * url = src.parentNode.getAttribute('href');
     * src.parentNode.setAttribute('href', '#');
     * return sendTracking (tabUrl, url, 'contre propo');
     */
    return sendTracking (tabUrl, null, 'contre propo');
  },
/* par defaut, on regarde si on a un lien avec dedans un attribut pvtrack, sinon , si c'est un lien alors on renvoie le href */
  track:function(evt)
  {
    var src = evt.target;
    if (src == null) src = event.srcElement;

    var tabUrl = new Array();
    var pageType = testPageType();
    var pageName = testpageName();

    if (src.getAttribute('pvtrack') != undefined)
    {
      tabUrl.push( "/" + pageType + pageName + src.getAttribute('pvtrack'));
    }
    else
    {
      if ((src.tagName).toLowerCase() == 'a' && src.getAttribute('href').toLowerCase() != '' && src.getAttribute('href').toLowerCase() != '#')
      {
        tabUrl.push( "/" + pageType + pageName + src.getAttribute('href'));
      }
      else
      {
        if ((src.parentNode.tagName).toLowerCase() == 'a' && src.parentNode.getAttribute('pvtrack').toLowerCase() != '')
        {
          tabUrl.push( "/" + pageType + pageName + src.parentNode.getAttribute('pvtrack'));
        }
        else
        {
          tabUrl.push(window.location);
        }
      }
    }
    //appel unique à urchin tracker
    return sendTracking (tabUrl, null, 'defaut');
  },
/* par defaut, on regarde si on a un lien avec dedans un attribut pvtrack, sinon , si c'est un lien alors on renvoie le href */
  trackPage:function(url)
  {
    var tabUrl = new Array();
    tabUrl.push(url);

    //appel unique à urchin tracker
    return sendTracking (tabUrl, null, 'defaut page');
  }
};

/*
 * retour le code de page s'il est présent, sous la forme : 'mondePage/' pour l'insertion dans les urls.
 */
function testPageType()
{
  var retour = '';
  if (typeof pageType != 'undefined' && pageType != 'undefined' && pageType != '')
  {
    retour = pageType + '/';
  }
  return retour;
}
function testpageName()
{
  var retour = '';
  if (typeof page_name != 'undefined' && page_name != 'undefined' && page_name != '')
  {
    retour = page_name + '/';
  }
  return retour;
}

/*
 * nettoyage de l'url puis envoie
 */
function sendTracking (tabUrl, urlAutreDomaine, appelant)
{
  retour = true;
  var monurlLength = tabUrl.length;
  for (i = 0 ; i < monurlLength; i++)
  {
    url = tabUrl[i];
    url += '';
    url = url.toLowerCase();
    url = url.replace('\'','_');
    url = url.replace('&amp;','et');
    if (appelant != 'moteur multi' && appelant != 'moteur libre' )
    {
      url = url.replace('&','et');
    }
    url = url.replace('é','e');
    url = url.replace('è','e');
    url = url.replace('ê','e');
    url = url.replace('à','a');
    url = url.replace('ä','a');
    url = url.replace('ô','o');
    url = url.replace('//','/');
    url = url.replace(/\s/g, '_');
    url = url.replace(/(^\s*)|(\s*$)/g,"");
    
    /* 
     * suppression de l'espace en debut et fin d'url.
     * pour le moment aucun cas ne s'est présenté, 
     * mais il faudrait pê le faire en récursif au cas où il y ai 
     * plusieurs espaces en début et fin d'url
     */
    urlLength = url.length;
    if(url.substr(0, '1') == '_')
    {
      url = url.substr(1, urlLength - 1);
    }
    if(url.substr(urlLength - 1, 1) == '_')
    {
      url = url.substr(0, urlLength - 1);
    }

    _udn = 'none';
    _ulink = 1;
    if (url == null || url == '' || url == 'null' || url == '/null')
    {
      url = 'ERROR : /virtuel' + appelant + '( ' + url + ' )';
    }
    else
    {
      url = '/virtuel' + url;
    }
    urchinTracker(url);
    if (urlAutreDomaine != null && urlAutreDomaine != '' && typeof __utmLinker == "function")
    {
      __utmLinker(urlAutreDomaine);
      retour = false;
      if (PvTracker.debug)
      {
        alert('url GA ' + url + ' \nurl autre domaine ' + urlAutreDomaine);
      }
    }

    if (PvTracker.debug)
    {
        alert(appelant + " " + url);
    }
  }
  return retour;
}

function getParent(element, parentTagName, typeAttribut)
{
  retour = false;
  if ( element )
  {
    if (element.nodeType == 1 && element.getAttribute(typeAttribut) != undefined 
        && element.getAttribute(typeAttribut).toLowerCase() == parentTagName.toLowerCase() )
    {
      retour = true;
    }
    else
    {
      retour = getParent(element.parentNode, parentTagName, typeAttribut);
    }
  }
  return retour;
}

function addEvent( tab, typeTrack, event)
{
  if (event == undefined)
  {
    event = 'click';
  }
  var tabLength = tab.length;
  for (i = 0 ; i < tabLength; i++)
  {
    if ($(tab[i]))
    {
      if (typeTrack == 'services')
      {
	    Event.observe($(tab[i]), event, PvTracker.trackServices);
      }
      else
      {
        Event.observe($(tab[i]), event, PvTracker.trackActivites);
      }
    }
  }
}