HTTP/1.1 200 OK
Date: Thu, 31 Jul 2025 06:08:28 GMT
Server: Apache
Content-Type: application/json
Connection: close
Transfer-Encoding: chunked

2000
[{"target":"compet_liste_11916656_view_phase_view_tab_poule_view","html":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n\n\n<div id=\"compet_liste_11916656_view_phase_view_tab_poule_view\" style=\"width:100%\">\n  <div class=\"cadre\">\n    <div class=\"titre\" style=\"vertical-align:middle\">\n      <i class=\"fa fa-arrow-circle-left fa-colored fa-lg\" onclick=\"jQuery('#compet_liste_11916656_view_phase_view_tab_poule_view').addClass('hide')\" style=\"cursor:pointer\" title=\"Fermer\">\n      </i>\n      <span onclick=\"jQuery('#compet_liste_11916656_view_phase_view_tab_poule_view').addClass('hide')\" style=\"cursor:pointer\" title=\"Fermer\"><span style=\"margin-right:5px\">J2 - POULE 06 &mdash; 02/02/2025 &mdash; DON BOSCO</span></span>\n    </div>\n    <div class=\"contenu\">\n      <div>\n        Club organisateur : \n        16006\n         \n        DON BOSCO BILLARD NANTES\n      </div>\n      <div>\n        Distance : \n        Normale\n      </div>\n      <div>\n        Points : \n        60\n      </div>\n      <div>\n        Reprises : \n        &mdash;\n      </div>\n      <div style=\"float:right;margin-left:1em\">\n        <button class=\"submit\" id=\"compet_liste_11916656_view_phase_view_tab_poule_view_liste_btn\" onclick=\"jQuery('#compet_liste_11916656_view_phase_view_tab_poule_view_liste_btn').hide();jQuery('#compet_liste_11916656_view_phase_view_tab_poule_view_liste_vue').hide();jQuery('#compet_liste_11916656_view_phase_view_tab_poule_view_synth_btn').show();jQuery('#compet_liste_11916656_view_phase_view_tab_poule_view_synth_vue').show()\">\n          Afficher la synth&egrave;se\n        </button>\n        <button class=\"submit hide\" id=\"compet_liste_11916656_view_phase_view_tab_poule_view_synth_btn\" onclick=\"jQuery('#compet_liste_11916656_view_phase_view_tab_poule_view_synth_btn').hide();jQuery('#compet_liste_11916656_view_phase_view_tab_poule_view_synth_vue').hide();jQuery('#compet_liste_11916656_view_phase_view_tab_poule_view_liste_btn').show();jQuery('#compet_liste_11916656_view_phase_view_tab_poule_view_liste_vue').show()\">\n          Afficher les matchs\n        </button>\n      </div>\n      <div style=\"clear:both\">\n        <div id=\"compet_liste_11916656_view_phase_view_tab_poule_view_liste_vue\">\n          <div id=\"compet_liste_11916656_view_phase_view_tab_poule_view_joueurs\">\n            <div class=\"liste\">\n              <div style=\"float:right\">\n              </div>\n              <h2>\n                Liste des joueurs\n              </h2>\n              <div style=\"clear:both\">\n              </div>\n              <div style=\"float:right\">\n                <a href=\"./?cs=4.50cedae8b2511cd4c55f5937e111b1bbefb05d4b8329a9feafc6e638e56d7c53fbb58670245dbe632a45f2ef1eacb6b67b5d\" style=\"font-size:0.8em;margin-left:1em\" target=\"_blank\">T&eacute;l&eacute;charger le classement</a>\n                <a href=\"./?cs=4.ffce8fe99043c10f5f8f10a0d82f712b68459e6d4797618ea63004085798b6d153dfbda7b6fe85c26afdcf06248e782cdbee\" style=\"font-size:0.8em;margin-left:1em\" target=\"_blank\">T&eacute;l&eacute;charger les matchs</a>\n              </div>\n              <table id=\"compet_liste_11916656_view_phase_view_tab_poule_view_joueurs_joueur_list\" style=\"width:100%\">\n                <tr>\n                  <th class=\"l\">\n                    Licence\n                  </th>\n                  <th class=\"l\">\n                    Nom\n                  </th>\n                  <th class=\"l\">\n                    Pr&eacute;nom\n                  </th>\n                  <th class=\"c\">\n                    Ranking\n                  </th>\n                  <th class=\"c\">\n                    Rang CNR\n                  </th>\n                  <th class=\"l\">\n                    Club\n                  </th>\n                  <th class=\"c\" title=\"Classement\">\n                    Clt\n                  </th>\n                  <th class=\"c\" title=\"Total points de matchs\">\n                    PM\n                  </th>\n                  <th class=\"c\" title=\"Nombre de victoires\">\n                    V\n                  </th>\n                  <th class=\"c\" title=\"Nombre de matchs jou&eacute;s\">\n                    M\n                  </th>\n                  <th class=\"c\" title=\"Total points de carambolage\">\n                    PT\n                  </th>\n                  <th class=\"c\" title=\"Total points de carambolage poule\">\n                    PP\n                  </th>\n                  <th class=\"c\" title=\"Total des reprises\">\n                    R\n                  </th>\n                  <th class=\"c\" title=\"Meilleure s&eacute;rie\">\n                    MS\n                  </th>\n                  <th class=\"c\" title=\"Moyenne table\">\n                    MT\n                  </th>\n                  <th class=\"c\" title=\"Moyenne poule\">\n                    MP\n                  </th>\n                  <th class=\"c\" title=\"Moyenne particuli&egrave;re poule\">\n                    MPART\n                  </th>\n                </tr>\n                <tr id=\"compet_liste_11916656_view_phase_view_tab_poule_view_joueurs_joueur_view_13451144\">\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff94d086405263b98545df24ee94752ccc2a857572a4064297e2f3dff68d671e624cc536ac3de4dc91a3616f995bdbf4586223549f1eba7d377bc3d3855275e8c1ea6902d20793491d91c4cb3c5966618815c63d8ebc8e969e58ecd417c25f983048fc11704f66919df4e234be76d382e694158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    150080 F\n                  </td>\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff94d086405263b98545df24ee94752ccc2a857572a4064297e2f3dff68d671e624cc536ac3de4dc91a3616f995bdbf4586223549f1eba7d377bc3d3855275e8c1ea6902d20793491d91c4cb3c5966618815c63d8ebc8e969e58ecd417c25f983048fc11
2000
704f66919df4e234be76d382e694158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    BONE\n                  </td>\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff94d086405263b98545df24ee94752ccc2a857572a4064297e2f3dff68d671e624cc536ac3de4dc91a3616f995bdbf4586223549f1eba7d377bc3d3855275e8c1ea6902d20793491d91c4cb3c5966618815c63d8ebc8e969e58ecd417c25f983048fc11704f66919df4e234be76d382e694158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    ALAIN\n                  </td>\n                  <td class=\"c\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff94d086405263b98545df24ee94752ccc2a857572a4064297e2f3dff68d671e624cc536ac3de4dc91a3616f995bdbf4586223549f1eba7d377bc3d3855275e8c1ea6902d20793491d91c4cb3c5966618815c63d8ebc8e969e58ecd417c25f983048fc11704f66919df4e234be76d382e694158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    &mdash;\n                  </td>\n                  <td class=\"c\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff94d086405263b98545df24ee94752ccc2a857572a4064297e2f3dff68d671e624cc536ac3de4dc91a3616f995bdbf4586223549f1eba7d377bc3d3855275e8c1ea6902d20793491d91c4cb3c5966618815c63d8ebc8e969e58ecd417c25f983048fc11704f66919df4e234be76d382e694158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    &mdash;\n                  </td>\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff94d086405263b98545df24ee94752ccc2a857572a4064297e2f3dff68d671e624cc536ac3de4dc91a3616f995bdbf4586223549f1eba7d377bc3d3855275e8c1ea6902d20793491d91c4cb3c5966618815c63d8ebc8e969e58ecd417c25f983048fc11704f66919df4e234be76d382e694158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    DON BOSCO BILLARD NANTES\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff94d086405263b98545df24ee94752ccc2a857572a4064297e2f3dff68d671e624cc536ac3de4dc91a3616f995bdbf4586223549f1eba7d377bc3d3855275e8c1ea6902d20793491d91c4cb3c5966618815c63d8ebc8e969e58ecd417c25f983048fc11704f66919df4e234be76d382e694158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('
2000
#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff94d086405263b98545df24ee94752ccc2a857572a4064297e2f3dff68d671e624cc536ac3de4dc91a3616f995bdbf4586223549f1eba7d377bc3d3855275e8c1ea6902d20793491d91c4cb3c5966618815c63d8ebc8e969e58ecd417c25f983048fc11704f66919df4e234be76d382e694158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    4\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff94d086405263b98545df24ee94752ccc2a857572a4064297e2f3dff68d671e624cc536ac3de4dc91a3616f995bdbf4586223549f1eba7d377bc3d3855275e8c1ea6902d20793491d91c4cb3c5966618815c63d8ebc8e969e58ecd417c25f983048fc11704f66919df4e234be76d382e694158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff94d086405263b98545df24ee94752ccc2a857572a4064297e2f3dff68d671e624cc536ac3de4dc91a3616f995bdbf4586223549f1eba7d377bc3d3855275e8c1ea6902d20793491d91c4cb3c5966618815c63d8ebc8e969e58ecd417c25f983048fc11704f66919df4e234be76d382e694158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff94d086405263b98545df24ee94752ccc2a857572a4064297e2f3dff68d671e624cc536ac3de4dc91a3616f995bdbf4586223549f1eba7d377bc3d3855275e8c1ea6902d20793491d91c4cb3c5966618815c63d8ebc8e969e58ecd417c25f983048fc11704f66919df4e234be76d382e694158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    120\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff94d086405263b98545df24ee94752ccc2a857572a4064297e2f3dff68d671e624cc536ac3de4dc91a3616f995bdbf4586223549f1eba7d377bc3d3855275e8c1ea6902d20793491d91c4cb3c5966618815c63d8ebc8e969e58ecd417c25f983048fc11704f66919df4e234be76d382e694158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    120\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff94d086405263b98545df24ee94752ccc2a857572a4064297e2f3dff68d671e624cc536ac3de4dc91a3616f995bdbf4586223549f1eba7d377bc3d3855275e8c1ea6902d20793491d91c4cb3c5966618815c63d8ebc8e969e58ecd417c25f983048fc11704f66919df4e234be76d382e694158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;
2000
color:#2040a0\">\n                    59\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff94d086405263b98545df24ee94752ccc2a857572a4064297e2f3dff68d671e624cc536ac3de4dc91a3616f995bdbf4586223549f1eba7d377bc3d3855275e8c1ea6902d20793491d91c4cb3c5966618815c63d8ebc8e969e58ecd417c25f983048fc11704f66919df4e234be76d382e694158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    8\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff94d086405263b98545df24ee94752ccc2a857572a4064297e2f3dff68d671e624cc536ac3de4dc91a3616f995bdbf4586223549f1eba7d377bc3d3855275e8c1ea6902d20793491d91c4cb3c5966618815c63d8ebc8e969e58ecd417c25f983048fc11704f66919df4e234be76d382e694158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2,03\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff94d086405263b98545df24ee94752ccc2a857572a4064297e2f3dff68d671e624cc536ac3de4dc91a3616f995bdbf4586223549f1eba7d377bc3d3855275e8c1ea6902d20793491d91c4cb3c5966618815c63d8ebc8e969e58ecd417c25f983048fc11704f66919df4e234be76d382e694158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2,03\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.76ff94d086405263b98545df24ee94752ccc2a857572a4064297e2f3dff68d671e624cc536ac3de4dc91a3616f995bdbf4586223549f1eba7d377bc3d3855275e8c1ea6902d20793491d91c4cb3c5966618815c63d8ebc8e969e58ecd417c25f983048fc11704f66919df4e234be76d382e694158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2,50\n                  </td>\n                </tr>\n                <tr id=\"compet_liste_11916656_view_phase_view_tab_poule_view_joueurs_joueur_view_13451044\">\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.bfff5bd818a0f9487226abc05a2a06ddc26a3163fa1a700c889c2a90be2ecc6ff949902ee1104d5f3356d7bf032544f381af66ed8b12d66ea464d47e7c2ec62fd35613cf09dea1905067418b875fa99840354b9fcffd5569b74f1d9fc2860903531824f9ebd77050723c524f2938805a3ec817ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    116084 U\n                  </td>\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                            
2000
          jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.bfff5bd818a0f9487226abc05a2a06ddc26a3163fa1a700c889c2a90be2ecc6ff949902ee1104d5f3356d7bf032544f381af66ed8b12d66ea464d47e7c2ec62fd35613cf09dea1905067418b875fa99840354b9fcffd5569b74f1d9fc2860903531824f9ebd77050723c524f2938805a3ec817ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    MILOUDI\n                  </td>\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.bfff5bd818a0f9487226abc05a2a06ddc26a3163fa1a700c889c2a90be2ecc6ff949902ee1104d5f3356d7bf032544f381af66ed8b12d66ea464d47e7c2ec62fd35613cf09dea1905067418b875fa99840354b9fcffd5569b74f1d9fc2860903531824f9ebd77050723c524f2938805a3ec817ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    JEAN PIERRE\n                  </td>\n                  <td class=\"c\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.bfff5bd818a0f9487226abc05a2a06ddc26a3163fa1a700c889c2a90be2ecc6ff949902ee1104d5f3356d7bf032544f381af66ed8b12d66ea464d47e7c2ec62fd35613cf09dea1905067418b875fa99840354b9fcffd5569b74f1d9fc2860903531824f9ebd77050723c524f2938805a3ec817ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    &mdash;\n                  </td>\n                  <td class=\"c\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.bfff5bd818a0f9487226abc05a2a06ddc26a3163fa1a700c889c2a90be2ecc6ff949902ee1104d5f3356d7bf032544f381af66ed8b12d66ea464d47e7c2ec62fd35613cf09dea1905067418b875fa99840354b9fcffd5569b74f1d9fc2860903531824f9ebd77050723c524f2938805a3ec817ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    &mdash;\n                  </td>\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.bfff5bd818a0f9487226abc05a2a06ddc26a3163fa1a700c889c2a90be2ecc6ff949902ee1104d5f3356d7bf032544f381af66ed8b12d66ea464d47e7c2ec62fd35613cf09dea1905067418b875fa99840354b9fcffd5569b74f1d9fc2860903531824f9ebd77050723c524f2938805a3ec817ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    CHALLANS BILLARD CLUB\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.bfff5bd818a0f9487226abc05a2a06ddc26a3163fa1a700c889c2a90be2ecc6ff949902ee1104d5f3356d7bf032544f381af66ed8b12d66ea464d47e7c2ec62fd35613cf09dea1905067418b875fa99840354b9fcffd5569b74f1d9fc2860903531824f9ebd77050723c524f2938805a3ec817f
2000
f319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.bfff5bd818a0f9487226abc05a2a06ddc26a3163fa1a700c889c2a90be2ecc6ff949902ee1104d5f3356d7bf032544f381af66ed8b12d66ea464d47e7c2ec62fd35613cf09dea1905067418b875fa99840354b9fcffd5569b74f1d9fc2860903531824f9ebd77050723c524f2938805a3ec817ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.bfff5bd818a0f9487226abc05a2a06ddc26a3163fa1a700c889c2a90be2ecc6ff949902ee1104d5f3356d7bf032544f381af66ed8b12d66ea464d47e7c2ec62fd35613cf09dea1905067418b875fa99840354b9fcffd5569b74f1d9fc2860903531824f9ebd77050723c524f2938805a3ec817ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.bfff5bd818a0f9487226abc05a2a06ddc26a3163fa1a700c889c2a90be2ecc6ff949902ee1104d5f3356d7bf032544f381af66ed8b12d66ea464d47e7c2ec62fd35613cf09dea1905067418b875fa99840354b9fcffd5569b74f1d9fc2860903531824f9ebd77050723c524f2938805a3ec817ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.bfff5bd818a0f9487226abc05a2a06ddc26a3163fa1a700c889c2a90be2ecc6ff949902ee1104d5f3356d7bf032544f381af66ed8b12d66ea464d47e7c2ec62fd35613cf09dea1905067418b875fa99840354b9fcffd5569b74f1d9fc2860903531824f9ebd77050723c524f2938805a3ec817ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    62\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.bfff5bd818a0f9487226abc05a2a06ddc26a3163fa1a700c889c2a90be2ecc6ff949902ee1104d5f3356d7bf032544f381af66ed8b12d66ea464d47e7c2ec62fd35613cf09dea1905067418b875fa99840354b9fcffd5569b74f1d9fc2860903531824f9ebd77050723c524f2938805a3ec817ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    62\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                   
2000
               });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.bfff5bd818a0f9487226abc05a2a06ddc26a3163fa1a700c889c2a90be2ecc6ff949902ee1104d5f3356d7bf032544f381af66ed8b12d66ea464d47e7c2ec62fd35613cf09dea1905067418b875fa99840354b9fcffd5569b74f1d9fc2860903531824f9ebd77050723c524f2938805a3ec817ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    64\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.bfff5bd818a0f9487226abc05a2a06ddc26a3163fa1a700c889c2a90be2ecc6ff949902ee1104d5f3356d7bf032544f381af66ed8b12d66ea464d47e7c2ec62fd35613cf09dea1905067418b875fa99840354b9fcffd5569b74f1d9fc2860903531824f9ebd77050723c524f2938805a3ec817ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    9\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.bfff5bd818a0f9487226abc05a2a06ddc26a3163fa1a700c889c2a90be2ecc6ff949902ee1104d5f3356d7bf032544f381af66ed8b12d66ea464d47e7c2ec62fd35613cf09dea1905067418b875fa99840354b9fcffd5569b74f1d9fc2860903531824f9ebd77050723c524f2938805a3ec817ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    0,96\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.bfff5bd818a0f9487226abc05a2a06ddc26a3163fa1a700c889c2a90be2ecc6ff949902ee1104d5f3356d7bf032544f381af66ed8b12d66ea464d47e7c2ec62fd35613cf09dea1905067418b875fa99840354b9fcffd5569b74f1d9fc2860903531824f9ebd77050723c524f2938805a3ec817ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    0,96\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.bfff5bd818a0f9487226abc05a2a06ddc26a3163fa1a700c889c2a90be2ecc6ff949902ee1104d5f3356d7bf032544f381af66ed8b12d66ea464d47e7c2ec62fd35613cf09dea1905067418b875fa99840354b9fcffd5569b74f1d9fc2860903531824f9ebd77050723c524f2938805a3ec817ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    0,90\n                  </td>\n                </tr>\n                <tr id=\"compet_liste_11916656_view_phase_view_tab_poule_view_joueurs_joueur_view_13451045\">\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff5bd818a0f9487226abc05a2a06ddc26a42d7c13553f88d82a602861275bd6254cb26fd68d13fd97c44c5f970ccce09970d5d9f5afd19841745200d6f1e8d3227e10ad0777fc15230820d24970d0f416267b3c0be7df1fbcde8d3234fd15af5e63a282d51fd0a1679cb5201f363
2000
3674c917ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    152935 J\n                  </td>\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff5bd818a0f9487226abc05a2a06ddc26a42d7c13553f88d82a602861275bd6254cb26fd68d13fd97c44c5f970ccce09970d5d9f5afd19841745200d6f1e8d3227e10ad0777fc15230820d24970d0f416267b3c0be7df1fbcde8d3234fd15af5e63a282d51fd0a1679cb5201f3633674c917ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    HUBERT\n                  </td>\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff5bd818a0f9487226abc05a2a06ddc26a42d7c13553f88d82a602861275bd6254cb26fd68d13fd97c44c5f970ccce09970d5d9f5afd19841745200d6f1e8d3227e10ad0777fc15230820d24970d0f416267b3c0be7df1fbcde8d3234fd15af5e63a282d51fd0a1679cb5201f3633674c917ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    BENOIT\n                  </td>\n                  <td class=\"c\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff5bd818a0f9487226abc05a2a06ddc26a42d7c13553f88d82a602861275bd6254cb26fd68d13fd97c44c5f970ccce09970d5d9f5afd19841745200d6f1e8d3227e10ad0777fc15230820d24970d0f416267b3c0be7df1fbcde8d3234fd15af5e63a282d51fd0a1679cb5201f3633674c917ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    &mdash;\n                  </td>\n                  <td class=\"c\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff5bd818a0f9487226abc05a2a06ddc26a42d7c13553f88d82a602861275bd6254cb26fd68d13fd97c44c5f970ccce09970d5d9f5afd19841745200d6f1e8d3227e10ad0777fc15230820d24970d0f416267b3c0be7df1fbcde8d3234fd15af5e63a282d51fd0a1679cb5201f3633674c917ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    &mdash;\n                  </td>\n                  <td class=\"l\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff5bd818a0f9487226abc05a2a06ddc26a42d7c13553f88d82a602861275bd6254cb26fd68d13fd97c44c5f970ccce09970d5d9f5afd19841745200d6f1e8d3227e10ad0777fc15230820d24970d0f416267b3c0be7df1fbcde8d3234fd15af5e63a282d51fd0a1679cb5201f3633674c917ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    BILLARD CLUB HEULINOIS\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target)
2000
.replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff5bd818a0f9487226abc05a2a06ddc26a42d7c13553f88d82a602861275bd6254cb26fd68d13fd97c44c5f970ccce09970d5d9f5afd19841745200d6f1e8d3227e10ad0777fc15230820d24970d0f416267b3c0be7df1fbcde8d3234fd15af5e63a282d51fd0a1679cb5201f3633674c917ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    3\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff5bd818a0f9487226abc05a2a06ddc26a42d7c13553f88d82a602861275bd6254cb26fd68d13fd97c44c5f970ccce09970d5d9f5afd19841745200d6f1e8d3227e10ad0777fc15230820d24970d0f416267b3c0be7df1fbcde8d3234fd15af5e63a282d51fd0a1679cb5201f3633674c917ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    0\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff5bd818a0f9487226abc05a2a06ddc26a42d7c13553f88d82a602861275bd6254cb26fd68d13fd97c44c5f970ccce09970d5d9f5afd19841745200d6f1e8d3227e10ad0777fc15230820d24970d0f416267b3c0be7df1fbcde8d3234fd15af5e63a282d51fd0a1679cb5201f3633674c917ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    0\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff5bd818a0f9487226abc05a2a06ddc26a42d7c13553f88d82a602861275bd6254cb26fd68d13fd97c44c5f970ccce09970d5d9f5afd19841745200d6f1e8d3227e10ad0777fc15230820d24970d0f416267b3c0be7df1fbcde8d3234fd15af5e63a282d51fd0a1679cb5201f3633674c917ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff5bd818a0f9487226abc05a2a06ddc26a42d7c13553f88d82a602861275bd6254cb26fd68d13fd97c44c5f970ccce09970d5d9f5afd19841745200d6f1e8d3227e10ad0777fc15230820d24970d0f416267b3c0be7df1fbcde8d3234fd15af5e63a282d51fd0a1679cb5201f3633674c917ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    59\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff5bd818a0f9487226abc05a2a06ddc26a42d7c13553f88d82a602861275bd6254cb26fd68d13fd97c44c5f970ccce09970d5d9f5afd19841745200d6f1e8d3227e10ad0777fc15230820d24970d0f416267b3c0be7df1fbcde8d3234fd15af5e63a282d51fd0a1679cb5201f3633674c917ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\"
2000
>\n                    59\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff5bd818a0f9487226abc05a2a06ddc26a42d7c13553f88d82a602861275bd6254cb26fd68d13fd97c44c5f970ccce09970d5d9f5afd19841745200d6f1e8d3227e10ad0777fc15230820d24970d0f416267b3c0be7df1fbcde8d3234fd15af5e63a282d51fd0a1679cb5201f3633674c917ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    75\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff5bd818a0f9487226abc05a2a06ddc26a42d7c13553f88d82a602861275bd6254cb26fd68d13fd97c44c5f970ccce09970d5d9f5afd19841745200d6f1e8d3227e10ad0777fc15230820d24970d0f416267b3c0be7df1fbcde8d3234fd15af5e63a282d51fd0a1679cb5201f3633674c917ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    6\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff5bd818a0f9487226abc05a2a06ddc26a42d7c13553f88d82a602861275bd6254cb26fd68d13fd97c44c5f970ccce09970d5d9f5afd19841745200d6f1e8d3227e10ad0777fc15230820d24970d0f416267b3c0be7df1fbcde8d3234fd15af5e63a282d51fd0a1679cb5201f3633674c917ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    0,78\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff5bd818a0f9487226abc05a2a06ddc26a42d7c13553f88d82a602861275bd6254cb26fd68d13fd97c44c5f970ccce09970d5d9f5afd19841745200d6f1e8d3227e10ad0777fc15230820d24970d0f416267b3c0be7df1fbcde8d3234fd15af5e63a282d51fd0a1679cb5201f3633674c917ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    0,78\n                  </td>\n                  <td class=\"r\" onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.d1ff5bd818a0f9487226abc05a2a06ddc26a42d7c13553f88d82a602861275bd6254cb26fd68d13fd97c44c5f970ccce09970d5d9f5afd19841745200d6f1e8d3227e10ad0777fc15230820d24970d0f416267b3c0be7df1fbcde8d3234fd15af5e63a282d51fd0a1679cb5201f3633674c917ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    &mdash;\n                  </td>\n                </tr>\n              </table>\n            </div>\n            <div id=\"compet_liste_11916656_view_phase_view_tab_poule_view_joueurs_joueur_view\">\n            </div>\n          </div>\n          <div id=\"compet_liste_11916656_view_phase_view_tab_poule_view_matchs\">\n            <div class=\"liste\">\n              <div style=\"float:right\">\n              </div>\n              <h2>\n                Matchs\n              </h2>\n              <div style=\"clear:both\">\n              </div>\n              <table id=\"compet_liste_11916656_view_phase_view_tab_poule_view_matchs_match_list\" style=\"width:100%\">\n                <tr>\n                  <th>\n                    Num&eacute;ro\n                  </th
2000
>\n                  <th>\n                    Date\n                  </th>\n                  <th>\n                    Billard\n                  </th>\n                  <th>\n                    Joueur 1\n                  </th>\n                  <th>\n                    Points\n                  </th>\n                  <th>\n                    Reprises\n                  </th>\n                  <th>\n                    Meilleure s&eacute;rie\n                  </th>\n                  <th>\n                    Moyenne\n                  </th>\n                  <th>\n                    Joueur 2\n                  </th>\n                  <th>\n                    Points\n                  </th>\n                  <th>\n                    Reprises\n                  </th>\n                  <th>\n                    Meilleure s&eacute;rie\n                  </th>\n                  <th>\n                    Moyenne\n                  </th>\n                </tr>\n                <tr id=\"compet_liste_11916656_view_phase_view_tab_poule_view_matchs_match_view_13451047\">\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ceff94d086405263b98545df24ee94752ccc78acd263b75ace37f1e6036c9356e94eb602e4bb2294ca72b02e726c9fb00969d96cb472eea14508e920cc841a8ea84683b2515595427f91eb904b77e8663d0120b8e33d4c043591fcfbd11e440742b49df2acb47a3fd93d6fd33a28b732372c17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ceff94d086405263b98545df24ee94752ccc78acd263b75ace37f1e6036c9356e94eb602e4bb2294ca72b02e726c9fb00969d96cb472eea14508e920cc841a8ea84683b2515595427f91eb904b77e8663d0120b8e33d4c043591fcfbd11e440742b49df2acb47a3fd93d6fd33a28b732372c17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    02/02/2025\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ceff94d086405263b98545df24ee94752ccc78acd263b75ace37f1e6036c9356e94eb602e4bb2294ca72b02e726c9fb00969d96cb472eea14508e920cc841a8ea84683b2515595427f91eb904b77e8663d0120b8e33d4c043591fcfbd11e440742b49df2acb47a3fd93d6fd33a28b732372c17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2m80\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ceff94d086405263b98545df24ee94752ccc78acd263b75ace37f1e6036c9356e94eb602e4bb2294ca72b02e726c9fb00969d96cb472eea14508e920cc841a8ea84683b2515595427f91eb904b77e8663d0120b8e33d4c043591fcfbd11e440742b49df2acb47a3fd93d6fd33a28b732372c17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    MILOUDI\n                     \n                    JEAN PIERRE\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ceff94d086405263b98545df24ee94752ccc78acd263b75ace37
2000
f1e6036c9356e94eb602e4bb2294ca72b02e726c9fb00969d96cb472eea14508e920cc841a8ea84683b2515595427f91eb904b77e8663d0120b8e33d4c043591fcfbd11e440742b49df2acb47a3fd93d6fd33a28b732372c17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    36\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ceff94d086405263b98545df24ee94752ccc78acd263b75ace37f1e6036c9356e94eb602e4bb2294ca72b02e726c9fb00969d96cb472eea14508e920cc841a8ea84683b2515595427f91eb904b77e8663d0120b8e33d4c043591fcfbd11e440742b49df2acb47a3fd93d6fd33a28b732372c17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    40\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ceff94d086405263b98545df24ee94752ccc78acd263b75ace37f1e6036c9356e94eb602e4bb2294ca72b02e726c9fb00969d96cb472eea14508e920cc841a8ea84683b2515595427f91eb904b77e8663d0120b8e33d4c043591fcfbd11e440742b49df2acb47a3fd93d6fd33a28b732372c17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    9\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ceff94d086405263b98545df24ee94752ccc78acd263b75ace37f1e6036c9356e94eb602e4bb2294ca72b02e726c9fb00969d96cb472eea14508e920cc841a8ea84683b2515595427f91eb904b77e8663d0120b8e33d4c043591fcfbd11e440742b49df2acb47a3fd93d6fd33a28b732372c17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    0,90\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ceff94d086405263b98545df24ee94752ccc78acd263b75ace37f1e6036c9356e94eb602e4bb2294ca72b02e726c9fb00969d96cb472eea14508e920cc841a8ea84683b2515595427f91eb904b77e8663d0120b8e33d4c043591fcfbd11e440742b49df2acb47a3fd93d6fd33a28b732372c17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    HUBERT\n                     \n                    BENOIT\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ceff94d086405263b98545df24ee94752ccc78acd263b75ace37f1e6036c9356e94eb602e4bb2294ca72b02e726c9fb00969d96cb472eea14508e920cc841a8ea84683b2515595427f91eb904b77e8663d0120b8e33d4c043591fcfbd11e440742b49df2acb47a3fd93d6fd33a28b732372c17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    27\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'
2000
+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ceff94d086405263b98545df24ee94752ccc78acd263b75ace37f1e6036c9356e94eb602e4bb2294ca72b02e726c9fb00969d96cb472eea14508e920cc841a8ea84683b2515595427f91eb904b77e8663d0120b8e33d4c043591fcfbd11e440742b49df2acb47a3fd93d6fd33a28b732372c17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    40\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ceff94d086405263b98545df24ee94752ccc78acd263b75ace37f1e6036c9356e94eb602e4bb2294ca72b02e726c9fb00969d96cb472eea14508e920cc841a8ea84683b2515595427f91eb904b77e8663d0120b8e33d4c043591fcfbd11e440742b49df2acb47a3fd93d6fd33a28b732372c17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    4\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.ceff94d086405263b98545df24ee94752ccc78acd263b75ace37f1e6036c9356e94eb602e4bb2294ca72b02e726c9fb00969d96cb472eea14508e920cc841a8ea84683b2515595427f91eb904b77e8663d0120b8e33d4c043591fcfbd11e440742b49df2acb47a3fd93d6fd33a28b732372c17ff319b71f803d15f01c46ef58ec62e'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    0,67\n                  </td>\n                </tr>\n                <tr id=\"compet_liste_11916656_view_phase_view_tab_poule_view_matchs_match_view_13451146\">\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.54ff94d086405263b98545df24ee94752ccc3525b417526782b4178165b022d1241d20d98527b3370328a50043189f9d2a27da494b6a4fe90fe3d7b6444c83e893a68c1a51ca82f675c9c6ed664b57bf497e51c9a47893b1ea6f2fc7f6be3d0204f29bf52c7e336a9dc2e23eb7a0fd96832794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.54ff94d086405263b98545df24ee94752ccc3525b417526782b4178165b022d1241d20d98527b3370328a50043189f9d2a27da494b6a4fe90fe3d7b6444c83e893a68c1a51ca82f675c9c6ed664b57bf497e51c9a47893b1ea6f2fc7f6be3d0204f29bf52c7e336a9dc2e23eb7a0fd96832794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    02/02/2025\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.54ff94d086405263b98545df24ee94752ccc3525b417526782b4178165b022d1241d20d98527b3370328a50043189f9d2a27da494b6a4fe90f
2000
e3d7b6444c83e893a68c1a51ca82f675c9c6ed664b57bf497e51c9a47893b1ea6f2fc7f6be3d0204f29bf52c7e336a9dc2e23eb7a0fd96832794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2m80\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.54ff94d086405263b98545df24ee94752ccc3525b417526782b4178165b022d1241d20d98527b3370328a50043189f9d2a27da494b6a4fe90fe3d7b6444c83e893a68c1a51ca82f675c9c6ed664b57bf497e51c9a47893b1ea6f2fc7f6be3d0204f29bf52c7e336a9dc2e23eb7a0fd96832794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    BONE\n                     \n                    ALAIN\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.54ff94d086405263b98545df24ee94752ccc3525b417526782b4178165b022d1241d20d98527b3370328a50043189f9d2a27da494b6a4fe90fe3d7b6444c83e893a68c1a51ca82f675c9c6ed664b57bf497e51c9a47893b1ea6f2fc7f6be3d0204f29bf52c7e336a9dc2e23eb7a0fd96832794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    60\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.54ff94d086405263b98545df24ee94752ccc3525b417526782b4178165b022d1241d20d98527b3370328a50043189f9d2a27da494b6a4fe90fe3d7b6444c83e893a68c1a51ca82f675c9c6ed664b57bf497e51c9a47893b1ea6f2fc7f6be3d0204f29bf52c7e336a9dc2e23eb7a0fd96832794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    35\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.54ff94d086405263b98545df24ee94752ccc3525b417526782b4178165b022d1241d20d98527b3370328a50043189f9d2a27da494b6a4fe90fe3d7b6444c83e893a68c1a51ca82f675c9c6ed664b57bf497e51c9a47893b1ea6f2fc7f6be3d0204f29bf52c7e336a9dc2e23eb7a0fd96832794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    8\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.54ff94d086405263b98545df24ee94752ccc3525b417526782b4178165b022d1241d20d98527b3370328a50043189f9d2a27da494b6a4fe90fe3d7b6444c83e893a68c1a51ca82f675c9c6ed664b57bf497e51c9a47893b1ea6f2fc7f6be3d0204f29bf52c7e336a9dc2e23eb7a0fd96832794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1,71\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                           
2000
                           jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.54ff94d086405263b98545df24ee94752ccc3525b417526782b4178165b022d1241d20d98527b3370328a50043189f9d2a27da494b6a4fe90fe3d7b6444c83e893a68c1a51ca82f675c9c6ed664b57bf497e51c9a47893b1ea6f2fc7f6be3d0204f29bf52c7e336a9dc2e23eb7a0fd96832794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    HUBERT\n                     \n                    BENOIT\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.54ff94d086405263b98545df24ee94752ccc3525b417526782b4178165b022d1241d20d98527b3370328a50043189f9d2a27da494b6a4fe90fe3d7b6444c83e893a68c1a51ca82f675c9c6ed664b57bf497e51c9a47893b1ea6f2fc7f6be3d0204f29bf52c7e336a9dc2e23eb7a0fd96832794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    32\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.54ff94d086405263b98545df24ee94752ccc3525b417526782b4178165b022d1241d20d98527b3370328a50043189f9d2a27da494b6a4fe90fe3d7b6444c83e893a68c1a51ca82f675c9c6ed664b57bf497e51c9a47893b1ea6f2fc7f6be3d0204f29bf52c7e336a9dc2e23eb7a0fd96832794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    35\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.54ff94d086405263b98545df24ee94752ccc3525b417526782b4178165b022d1241d20d98527b3370328a50043189f9d2a27da494b6a4fe90fe3d7b6444c83e893a68c1a51ca82f675c9c6ed664b57bf497e51c9a47893b1ea6f2fc7f6be3d0204f29bf52c7e336a9dc2e23eb7a0fd96832794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    6\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.54ff94d086405263b98545df24ee94752ccc3525b417526782b4178165b022d1241d20d98527b3370328a50043189f9d2a27da494b6a4fe90fe3d7b6444c83e893a68c1a51ca82f675c9c6ed664b57bf497e51c9a47893b1ea6f2fc7f6be3d0204f29bf52c7e336a9dc2e23eb7a0fd96832794158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    0,91\n                  </td>\n                </tr>\n                <tr id=\"compet_liste_11916656_view_phase_view_tab_poule_view_matchs_match_view_13451418\">\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.e0ff94d086405263b98545df24ee94752ccc5f0da369688e2286ff0701c0813fb033b2a8b74c5cb437a9cbead330cbc256f8fbc1e8c3768f2507211e8c91ea41b
2000
7bdb619b5f273a7932d3b36958c023bb79b7b6a12c29ce6a064ee54ce0a5ca1330f79001abce8bdc1caf763253437c8f1fe94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    3\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.e0ff94d086405263b98545df24ee94752ccc5f0da369688e2286ff0701c0813fb033b2a8b74c5cb437a9cbead330cbc256f8fbc1e8c3768f2507211e8c91ea41b7bdb619b5f273a7932d3b36958c023bb79b7b6a12c29ce6a064ee54ce0a5ca1330f79001abce8bdc1caf763253437c8f1fe94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    02/02/2025\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.e0ff94d086405263b98545df24ee94752ccc5f0da369688e2286ff0701c0813fb033b2a8b74c5cb437a9cbead330cbc256f8fbc1e8c3768f2507211e8c91ea41b7bdb619b5f273a7932d3b36958c023bb79b7b6a12c29ce6a064ee54ce0a5ca1330f79001abce8bdc1caf763253437c8f1fe94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2m80\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.e0ff94d086405263b98545df24ee94752ccc5f0da369688e2286ff0701c0813fb033b2a8b74c5cb437a9cbead330cbc256f8fbc1e8c3768f2507211e8c91ea41b7bdb619b5f273a7932d3b36958c023bb79b7b6a12c29ce6a064ee54ce0a5ca1330f79001abce8bdc1caf763253437c8f1fe94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    MILOUDI\n                     \n                    JEAN PIERRE\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.e0ff94d086405263b98545df24ee94752ccc5f0da369688e2286ff0701c0813fb033b2a8b74c5cb437a9cbead330cbc256f8fbc1e8c3768f2507211e8c91ea41b7bdb619b5f273a7932d3b36958c023bb79b7b6a12c29ce6a064ee54ce0a5ca1330f79001abce8bdc1caf763253437c8f1fe94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    26\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.e0ff94d086405263b98545df24ee94752ccc5f0da369688e2286ff0701c0813fb033b2a8b74c5cb437a9cbead330cbc256f8fbc1e8c3768f2507211e8c91ea41b7bdb619b5f273a7932d3b36958c023bb79b7b6a12c29ce6a064ee54ce0a5ca1330f79001abce8bdc1caf763253437c8f1fe94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    24\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                           
2000
                           jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.e0ff94d086405263b98545df24ee94752ccc5f0da369688e2286ff0701c0813fb033b2a8b74c5cb437a9cbead330cbc256f8fbc1e8c3768f2507211e8c91ea41b7bdb619b5f273a7932d3b36958c023bb79b7b6a12c29ce6a064ee54ce0a5ca1330f79001abce8bdc1caf763253437c8f1fe94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    6\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.e0ff94d086405263b98545df24ee94752ccc5f0da369688e2286ff0701c0813fb033b2a8b74c5cb437a9cbead330cbc256f8fbc1e8c3768f2507211e8c91ea41b7bdb619b5f273a7932d3b36958c023bb79b7b6a12c29ce6a064ee54ce0a5ca1330f79001abce8bdc1caf763253437c8f1fe94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    1,08\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.e0ff94d086405263b98545df24ee94752ccc5f0da369688e2286ff0701c0813fb033b2a8b74c5cb437a9cbead330cbc256f8fbc1e8c3768f2507211e8c91ea41b7bdb619b5f273a7932d3b36958c023bb79b7b6a12c29ce6a064ee54ce0a5ca1330f79001abce8bdc1caf763253437c8f1fe94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    BONE\n                     \n                    ALAIN\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.e0ff94d086405263b98545df24ee94752ccc5f0da369688e2286ff0701c0813fb033b2a8b74c5cb437a9cbead330cbc256f8fbc1e8c3768f2507211e8c91ea41b7bdb619b5f273a7932d3b36958c023bb79b7b6a12c29ce6a064ee54ce0a5ca1330f79001abce8bdc1caf763253437c8f1fe94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    60\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.e0ff94d086405263b98545df24ee94752ccc5f0da369688e2286ff0701c0813fb033b2a8b74c5cb437a9cbead330cbc256f8fbc1e8c3768f2507211e8c91ea41b7bdb619b5f273a7932d3b36958c023bb79b7b6a12c29ce6a064ee54ce0a5ca1330f79001abce8bdc1caf763253437c8f1fe94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    24\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.e0ff94d086405263b98545df24ee94752ccc5f0da369688e2286ff0701c0813fb033b2a8b74c5cb437a9cbead330cbc256f8fbc1e8c3768f2507211e8c91ea41b7bdb619b5f273a7932d3b36958c023bb79b7b6a12c29ce6a064ee54ce0a5ca1330f79001abce8bdc1caf763253437c8f1fe94158d1abaa1d44c1d51fd3fa3e0e199'\n 
2000
});\" style=\"cursor:pointer;color:#2040a0\">\n                    8\n                  </td>\n                  <td onclick=\"jQuery(this).parent().siblings().removeClass('actif');jQuery(this).parent().addClass('actif');jQuery.ajax({ \ncontentType: 'application/x-www-form-urlencoded; charset=utf-8',\nmethod: 'post',\nsuccess: function(data) {\n\t\t                      jQuery.each(data, function(i,d) {\n\t\t                          if (d.target) {\n\t\t                              if (jQuery('#'+d.target).is(':visible')) {\n                                                  jQuery('#'+d.target).fadeOut(0, function() {\n                                                      jQuery('#'+d.target).replaceWith(d.html)\n                                                  });\n                                                  jQuery('#'+d.target).fadeIn(0);\n                                              } else {\n                                                  jQuery('#'+d.target).replaceWith(d.html)\n                                              }\n                                          }\n                                      });\n                                  },\nurl: './?cs=4z.e0ff94d086405263b98545df24ee94752ccc5f0da369688e2286ff0701c0813fb033b2a8b74c5cb437a9cbead330cbc256f8fbc1e8c3768f2507211e8c91ea41b7bdb619b5f273a7932d3b36958c023bb79b7b6a12c29ce6a064ee54ce0a5ca1330f79001abce8bdc1caf763253437c8f1fe94158d1abaa1d44c1d51fd3fa3e0e199'\n });\" style=\"cursor:pointer;color:#2040a0\">\n                    2,50\n                  </td>\n                </tr>\n              </table>\n            </div>\n            <div id=\"compet_liste_11916656_view_phase_view_tab_poule_view_matchs_match_view\">\n            </div>\n          </div>\n        </div>\n        <div class=\"hide\" id=\"compet_liste_11916656_view_phase_view_tab_poule_view_synth_vue\">\n          <div style=\"text-align:right;margin-left:1em\">\n            <a href=\"./?cs=4.feceb8b7ca5baff65bd493741068c3c6bec6bd523b5614ec11fdca7debd7f5fc9cab4f0a3d7d80347311270d00c9d975df7a\" target=\"_blank\">Ouvrir dans une nouvelle fen&ecirc;tre</a>\n          </div>\n          <div class=\"liste\" id=\"compet_liste_11916656_view_phase_view_tab_poule_view_synthese\">\n            <table style=\"margin:auto\">\n              <thead>\n                <thead>\n                  <tr>\n                    <th>\n                      <table style=\"width:100%\">\n                        <tbody>\n                          <tr>\n                            <td class=\"l\" style=\"width: 30%;vertical-align:bottom\">\n                              Clt\n                            </td>\n                            <td class=\"r\" style=\"width: 30%;vertical-align:bottom\">\n                              MGP\n                            </td>\n                            <td class=\"r\" style=\"width: 40%;vertical-align:bottom\">\n                              %V\n                            </td>\n                          </tr>\n                        </tbody>\n                      </table>\n                    </th>\n                    <th>\n                      <div>\n                        BONE\n                      </div>\n                      <div>\n                        ALAIN\n                      </div>\n                    </th>\n                    <th>\n                      <div>\n                        MILOUDI\n                      </div>\n                      <div>\n                        JEAN PIERRE\n                      </div>\n                    </th>\n                    <th>\n                      <div>\n                        HUBERT\n                      </div>\n                      <div>\n                        BENOIT\n                      </div>\n                    </th>\n                    <th>\n                      Totaux\n                    </th>\n                  </tr>\n                </thead>\n                <tbody>\n                  <tr>\n                    <th>\n                      <div>\n                        BONE\n                         \n                        ALAIN\n                      </div>\n                      <div class=\"comment\">\n                        DON BOSCO BILLARD NANTES\n                      </div>\n                      <div>\n                        <table style=\"width:100%\">\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"width: 30%\">\n                                1\n                              </td>\n                              <td class=\"r\" style=\"width: 30%\">\n                                2,03\n                              </td>\n                              <td class=\"r\" style=\"width: 40%\">\n                                100.00\n                                %\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </th>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      &ndash;\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                60\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                24\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em;background-color:#DB794F\" width=\"20%\">\n                                2\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                8\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                2,50\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                60\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                35\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n               
2000
               <td class=\"c\" style=\"padding:.1em .4em;background-color:#DB794F\" width=\"20%\">\n                                2\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                8\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                1,71\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                120\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                59\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                                4\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                8\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                2,03\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                  </tr>\n                  <tr>\n                    <th>\n                      <div>\n                        MILOUDI\n                         \n                        JEAN PIERRE\n                      </div>\n                      <div class=\"comment\">\n                        CHALLANS BILLARD CLUB\n                      </div>\n                      <div>\n                        <table style=\"width:100%\">\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"width: 30%\">\n                                2\n                              </td>\n                              <td class=\"r\" style=\"width: 30%\">\n                                0,96\n                              </td>\n                              <td class=\"r\" style=\"width: 40%\">\n                                50.00\n                                %\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </th>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                26\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                24\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em;background-color:#55BFFF\" width=\"20%\">\n                                0\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                6\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                1,08\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      &ndash;\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                36\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                40\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em;background-color:#DB794F\" width=\"20%\">\n                                2\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                9\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                0,90\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                    <td style=\"border:solid 1px #808080; bord
2000
er-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                62\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                64\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                                2\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                9\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                0,96\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                  </tr>\n                  <tr>\n                    <th>\n                      <div>\n                        HUBERT\n                         \n                        BENOIT\n                      </div>\n                      <div class=\"comment\">\n                        BILLARD CLUB HEULINOIS\n                      </div>\n                      <div>\n                        <table style=\"width:100%\">\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"width: 30%\">\n                                3\n                              </td>\n                              <td class=\"r\" style=\"width: 30%\">\n                                0,78\n                              </td>\n                              <td class=\"r\" style=\"width: 40%\">\n                                0.00\n                                %\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </th>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                32\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                35\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em;background-color:#55BFFF\" width=\"20%\">\n                                0\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                6\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                0,91\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                27\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                40\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em;background-color:#55BFFF\" width=\"20%\">\n                                0\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                4\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                0,67\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      &ndash;\n                    </td>\n                    <td style=\"border:solid 1px #808080; border-collapse:collapse;padding:0;text-align:center;vertical-align:middle\">\n                      <div style=\"display:inline-block\">\n                        <table>\n                          <tbody>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                59\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                75\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                                0\n                              </td>\n     
3db
                         <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                              </td>\n                            </tr>\n                            <tr>\n                              <td class=\"l\" style=\"padding:.1em .4em\" width=\"40%\">\n                                6\n                              </td>\n                              <td class=\"c\" style=\"padding:.1em .4em\" width=\"20%\">\n                              </td>\n                              <td class=\"r\" style=\"padding:.1em .4em\" width=\"40%\">\n                                0,78\n                              </td>\n                            </tr>\n                          </tbody>\n                        </table>\n                      </div>\n                    </td>\n                  </tr>\n                </tbody>\n              </thead>\n            </table>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n\n"}]
0

