var nu_donne,score_cree=false,box=-1,nb_load=0,echel=7,tapissable=true;
var credit_positif=true,automatique=true,option='',cle='';
var a_faire,mort_ou_mchien,niv_min,player,der_pose,ct_posees='',ct_ramassees='',chien='',mes_cartes,ma_fusion,nb_hint;
var lib_hint=new Array(),bts_cour=new Array();
var st_der_pli='Pour voir la dernière levée, glissez la souris sur le pli';
var st_glissez='Pour l\'explication de l\'ench&egrave;res, glissez la souris sur le carton pos&eacute; sur la table.';
var st_alerte='<B>'+st_glissez+'</B> Les conventions sont alert&eacute;es au fur et &agrave; mesure du d&eacute;roulement des annonces. Voici, les conventions les plus courantes : Majeure 5&egrave;me, 2'
       +crea_im('syk')+' forcing de manche, 2'+crea_im('syt')+' fort ind&eacute;termin&eacute;, Stayman, 2'+crea_im('syc')+' et 2'+crea_im('syp')
       +' faible, Chass&eacute;-Crois&eacute;, Splinter, Roudi, Truscott, Lebensohl, Cue-bid, Relais, Canap&eacute;, Ping-pong, Blackwood 30-41, 3SA Gambling,'
       +' Texas majeur et mineur, 1SA 15-17H, 2SA 20-21H, Michael pr&eacute;cis&eacute;.';
var rg_bridge,rg_tarot,rg_belote;
var wong,hong,wct,hct,separs,wict,hict,nb_li,bordure,hsaut,htb,wtb;
var niv_divers_ann,nb_divers_ann;
var nb_coul_ann,donne_mx,nb_table,imps,terme,moyen;
var anet,rappel;
var mg=5,chev=5;

function maj_box(bx)
{
 if (box==-1) crea_box(); else
 {
  var st;
  if (bx==0) st='hidden'; else st='visible';
  for (var iniv=0;iniv<niv_divers_ann;iniv++) for (var i=1;i<=nb_coul_ann;i++)
   if (i<=nb_divers_ann || iniv<niv_divers_ann)
    elemy('o'+id_onglet(iniv,y_boucle(iniv,i))).visibility=st;
 }
 box=bx;
}

function indice_donne(ch){return (ch.charCodeAt(0)-64);}
function indice_table(ch)       // réciproque de table_indicea de la dll
{var i=-1;       // ! T = ttt ;  t = pct ; A = contrat en cours ; B = +-= ; D E  ancienne dll ;  U à Z libre
 if (ch>='I' && ch<='S') i=ch.charCodeAt(0)-72; else
 switch (ch)
 {
  case 'B':if (nb_table==1) i=1; break;
  case 'C':if (nb_table==1) i=98;else i=1; break;
  case 'F':i=2; break;
  case 'H':i=0; break;
  case 'G':i=99; break;
 }
 return i;
}

function lib_joueur(ch)
{var st='';
 switch (ch)
 {
  case 'S':st=id_jo[0]; break;
  case 'O':st=id_jo[1]; break;
  case 'N':st=id_jo[2]; break;
  case 'E':st=id_jo[3]; break;
 }
 return st;
}

function maj_anet()
{var cot;
 for (i=1;i<=4;i++) with (elemy('cardi'+i))
 {
  if (rg_bridge) cot=cote(i); else cot=i;
  switch (cot){
   case 1:top=htb+hct-56;left=wtb/2-18; break;        // hauteur
   case 2:top=htb/2-35;left=-42; break;
   case 3:top=-25;left=wtb/2-18; break;
   case 4:top=htb/2-35; left=wtb+8; break;}

  /*
  if ( (anet=='T') || (anet=='N' && (i==1 || i==3)) || (anet=='E' && (i==2 || i==4)) ) color='#ff0040';
  else color='#00c000';
  backgroundColor='#F5DEB3';
  */
  if ( (anet=='T') || (anet=='N' && (i==1 || i==3)) || (anet=='E' && (i==2 || i==4)) ) backgroundColor='#ff0040';
  else backgroundColor='#00c000';
  color='#FFFFdd';

 }
}

function cote(jo){if (mort_ou_mchien==1 && rg_bridge && a_faire!='C' || !rg_bridge && jo%2==0) {jo+=2;if (jo>4) jo-=4;}return jo;}
function id_div_carte(i,st){return 'C'+st.substr(i,2);}
function effcarte(inf){for (var ii=0;ii<inf.length;ii+=2) eff_id(id_div_carte(ii,inf));}
function active_boutons(ok){for (var ii=0;ii<boutons.length;ii+=2) elemy(id_div_carte(ii,boutons)).cursor=ok;}

function baba()
{
 if (a_faire=='9') acc(); else
 if (confirm('Cliquez sur "OK" pour confirmer l\'abandon définitif de votre tournoi'))
 {
  rep_serveur='';
  rep_serveur_memo='';
  envoi('baba');
 }
}

function opt(nid)
{
 option=nid;
 automatique=(option=='auto');
 if (option=='manu') click_tapis(false); else
 if (boutons.length==2) valide_ct('C'+boutons);
}

function pivot_left(cot,gau,hau){
 switch (cote(cot)){
 case 1:return gau; break;
 case 2:return wtb-hau-hct; break;
 case 3:return wtb-gau-wct; break;
 case 4:return hau/*+hct-wct*/; break;}
}
function pivot_top(cot,gau,hau){
 switch (cote(cot)){
 case 1:return hau+htb-wtb; break;
 case 2:return htb/wtb*(gau-(hct-wct)/2)-0.67*wct; break;
 case 3:return wtb-hau-hct; break;
 case 4:return htb/wtb*(wtb-gau-wct-(hct-wct)/2)-0.67*wct; break;}
}

function etalcarte(cot,inf){
 var mort=(rg_bridge && cot==mort_ou_mchien);
 var eca=0.5;
 var hau,gau,lgvisible,iy=0;
 var nu=inf.length/2;
 var evs=cote(cot)==1;
 var coef_pow=1.5;
 if (rg_tarot) coef_pow=1.2;
if (nu>0)
{
 if (mort) gau0=(wtb-(4+3*eca)*wct)/2;else
 {lgvisible=wct*0.5;
  gau0=(wtb-(nu-1)*lgvisible-wct)/2;
  if (gau0<0) {lgvisible=(wtb-wct)/(nu-1);gau0=0;}
 }

 if (rg_tarot && cot==5)
 {hau0=htb-2*hct-2*mg;
  cot=mort_ou_mchien;
  if (cot==0) cot=1;
 } else
 if (evs) hau0=htb; else hau0=htb-hct-mg;

 gau=gau0;
 hau=hau0;

 for (var ii=0;ii<inf.length;ii+=2)
 {
  if ( mort && ( ii==0 || inf.charAt(ii-1)!=inf.charAt(ii+1)) )
  {gau=gau0 + wct*(1+eca)*iy;
   hau=hau0;
   iy++;
  } else
  if (evs)
  {
   hau=hau0-hct-10;           // hauteur
 //   if (rg_bridge) with (Math) hau+=round(pow(abs(ii+1-inf.length/2),coef_pow));
  }

  gau=Math.round(gau);
  deplace_carte(id_div_carte(ii,inf),pivot_top(cot,gau,hau),pivot_left(cot,gau,hau),ii/2+2);
  if (mort) hau-=hct/4; else gau+=lgvisible;
 }
}
}

function click_tapis(force)
{
 if (tapissable && pret)
 if (elemy('cltap').cursor==menotte || force)
 {


  elemy('cltap').cursor='';
  if (a_faire=='5')
  {aff_aide('2','');
   a_faire='2';
   mes_cartes=ma_fusion;
   etalcarte(1,ma_fusion);
   etalcarte(5,'');
   chien='';
  } else
  if (a_faire=='2')
  {
   a_faire='6';
   effcarte(chien);
   active_boutons('');
   envoi(chien);
  } else
  {
   if (a_faire=='7')
   {
    ct_ramassees+=ct_posees;
    effcarte(ct_posees);
    ct_posees='';
    if (rg_belote) for (var i=1;i<=4;i++) eff_id('l'+i.toString());   // rebelote
   }
   envoi('tapis');
  }
 }
 tapissable=true;
}

function clic_bt(nu)
{
 var st,env=bts_cour[nu];

 if (env=='email' || (env=='emaili' && elemv('email')!='') )
 {
  st=nettoi_id_email(true);
  if (st!='')
  {
   rep_serveur_memo=rep_serveur;
   requette('req','dem','act=cree&ps='+cle+'&nudrap=0'+'&em='+st);
//   remplace_bt_par_menotte();
  }
 }else
 if (env=='pseudo' || (env=='pseudoi' && elemv('pseudo')!='') )
 {
  st=nettoi_id_pseudo();
  if (st!='')
  {
   rep_serveur_memo=rep_serveur;
   requette('req','dem','act=new&ps='+st+'&u='+stu+'&p='+stp);
//   remplace_bt_par_menotte();
  }
 }else
 if (env=='bautre') demarre_tournoi(); else
 if (env=='emaili' || env=='pseudoi') click_tapis(true); else
 if (env=='auto') opt('auto'); else
 if (env=='manu') opt('manu'); else envoi(env);
}

function aide_click(vari){return (vari>='4' && vari<='8' || vari>='C' && vari<='H');}

function aff_aide(af,st)
{
 if (st=='') switch (af)
 {
 case '1':st='A vous d\'annoncer.<br>'; if (rg_bridge) st+=st_glissez.small(); break;
 case '3':st='A vous';if (player==3) st+='(Nord)';st+=' de jouer.<br>'+st_der_pli.small(); break;
 case 'B':st='A vous(le mort) de jouer.'; break;
 case 'A':st='A vous d\'entamer.'; break;
 case 'D':st='4 passes,'; break;
 case '6':st='Commencez le jeu de la carte,'; break;
 case '7':st='Ramassez le pli,'; break;
 case '8':st='Donne suivante: '; break;
 case '9':st='Fin du tournoi.';break;
 case 'C':st='Attention! vous allez jouer en Nord, puisque vous &ecirc;tes mort. Nous faisons un demi-tour de la table,'; break;
 case 'T':st='Le d&eacute;clarant';break;
 case 'U':st='Sud';break;
 case 'V':st='Ouest';break;
 case 'W':st='Nord';break;
 case 'X':st='Est';break;
 case 'E':st='Capot pour vous,'; break;
 case 'F':st='Capot pour eux,'; break;
 case 'G':st='Dix de der pour vous,'; break;
 case 'H':st='Dix de der pour eux,'; break;
 case '2':st='Faites votre &eacute;cart.'; break;
 case '4':st='Voir le chien,'; break;
 case '5':st='Ramassez le chien,'; break;
 }
 if (af>='T') st+=' est ma&icirc;tre';
 if (aide_click(af)) st+=' cliquez sur le tapis.';
 var lg=220; if (af=='1') lg=120;
 elemy('info').width=lg;

// aff_info('cle='+cle+' ps='+stps+' cpt='+stp+stu+' em='+stem+'<br>'+st);
 aff_info(st);
}

function aff_bulle(hau,gau,nh)
{
 maj_html('bulle',lib_hint[nh]);
 with (elemy('bulle')){top=hau;left=gau+2*wong;visibility='visible';}
}

function rappel_contrat(sta)
{var st,y=0,stx='',libj='';
 if (sta!='pass') libj='&nbsp;en '+lib_joueur(sta.charAt(3));
 if (sta.charAt(2)=='2') stx='X';else if (sta.charAt(2)=='4') stx='XX';
 if (stx!='')
 {
  var i=-stx.length;
  stx='<span style="color:'+yy(i)+';background-color:'+bgy(i)+'">'+stx+'</span>';
 }
 sta=sta.toUpperCase().substr(0,2);
 y=evalcoul(sta);
 st='<span style="color:'+yy(y)+';background-color:'+bgy(y)+'">&nbsp;'+lib_id_onglet(evalniv(sta),y,6)+'&nbsp;</span>'+stx+libj;
 return '<div style="font-size:18;color:#FFFFFF">'+st+' <span id="pme"></span></div>';
}

function bt_ann(nu_hint,niv,y)
{
 var hau,gau,ii=echel*parseInt(nu_hint/4);

 switch (cote(player)){
  case 1:hau= - bordure - 5*ii + htb   - 0*hong  ;  gau= wtb/2+ii-wong; break;
  case 2:hau=             5*ii + htb/2 +   hong  ;  gau= bordure+ii; break;
  case 3:hau= + bordure + 5*ii                   ;  gau= wtb/2-ii-wong; break;
  case 4:hau=           - 5*ii + htb/2 +   hong  ;  gau= wtb-bordure-ii-2*wong; break;}

 if (echel<=13) switch (cote(player))
 {
  case 1:hau-=hict+10;break;
  case 2:hau-=hict/2;break;
  case 4:hau-=hict/2;break;
 }

//  z-index:'+(20+nu_hint)+';

 var str='<DIV style="border-style:solid;border-width:1px;border-color:black;position:absolute;padding:';

 if (player==2 || player==3 || rg_tarot) str+='1 1 '+(hong)+' 1'; else str+=(hong)+' 1 1 1';
 if (!rg_tarot) if (player==3 || player==4) str+=';text-align:right';

 str+=';margin:'+hau+' 0 0 '+gau+';width:'+(2*wong)+';height:'+(hong)
 +';color:'+yy(y)+';background-color:'+bgy(y)+';font-size:22';

 if (rg_bridge) str+=';cursor:help" onMouseOver="aff_bulle('+hau+','+(2+gau)+','+nu_hint.toString()+')" onMouseOut="eff_id(\'bulle\')';
 str+='">'+lib_id_onglet(niv,y,8)+'</DIV>';
 return str;
}

function deplace_ann(id_ann,hint,ii)
{
 if (nb_hint==-1 || lib_hint[nb_hint]!=stwait)
 {
  nb_hint++;
  if (id_ann=='-.' || id_ann=='-') id_ann='PA'; else if (id_ann=='X.') id_ann='X';
  var idj='j'+player,niv=evalniv(id_ann),y=evalcoul(id_ann);

  eff_id('en'+nb_hint);
  maj_html('en'+nb_hint,bt_ann(nb_hint,niv,y));

  var pause;
  if (automatique) pause=200*ii; else pause=300*ii;  
  setTimeout("aff_id(\'en"+nb_hint+"\')",pause);

  if (y>0)
  {
   if (rg_belote) y=nb_coul_ann;
   for (var j=niv_min;j<=niv;j++) for (var i=1;i<=nb_coul_ann;i++) if ( (j==niv) && (i<=y) || (j<niv) ) eff_id('o'+id_onglet(j,i));
   niv_min=niv;
  }
 }
 if (hint=='' && rg_bridge) hint='r.a.s.';
 lib_hint[nb_hint]=hint;
}

function f_hau(jo)
{var hau0;
 switch (cote(jo)){
  case 1: hau0=htb/2- chev;  break;
  case 2: hau0=(htb-hct)/2;  break;
  case 3: hau0=htb/2-hct+ chev; break;
  case 4: hau0=(htb-hct)/2;  break;}
 if (rg_bridge && mort_ou_mchien%2==1) hau0+=(wct*1.0);
 return hau0;
}

function f_gau(jo)
{var gau0;
 switch (cote(jo)){
  case 1: gau0=(wtb-wct)/2; break;
  case 2: gau0=wtb/2 -wct-4*chev; break;
  case 3: gau0=(wtb-wct)/2; break;
  case 4: gau0=wtb/2 +4*chev; break;}
 if (rg_bridge) switch (mort_ou_mchien){
  case 2: gau0+=wct;break;
  case 4: gau0-=wct;break;}
 return gau0;
}

function pose_carte(ct,i)
{if (der_pose!=ct)
{
 der_pose=ct;
 ct_posees+=lib_ct(ct);
// deplace_carte(ct,f_hau(player),f_gau(player),ct_posees.length/2+20); 
 var pause;
 if (automatique) pause=50*i; else pause=50*i;
 setTimeout("deplace_carte(\'"+ct+"\',"+f_hau(player)+","+f_gau(player)+","+(ct_posees.length/2+20)+")",pause);
}
}

function ind_carte_str(ct,sts)
{var i=sts.indexOf(ct);
 if (i!=-1 && i%2==1) i=sts.indexOf(ct,i+1);
 return i;
}

function ins_carte_str(ct,sts)
{var st='',i,sta;
 for (var ii=0;ii<ma_fusion.length;ii+=2)
 {
  sta=ma_fusion.substr(ii,2);
  if (sta==ct || ind_carte_str(sta,sts)!=-1 ) st+=sta;
 }
 return st;
}

function ecarte(ct)
{var i;
 ct=lib_ct(ct);
 i=ind_carte_str(ct,mes_cartes);
 if (i!=-1 && chien.length==12) tapissable=false; else
 {
  if (i!=-1)
  {
   chien=ins_carte_str(ct,chien);
   mes_cartes=delete_str(mes_cartes,i,2);
  } else
  {
   i=ind_carte_str(ct,chien);
   if (i!=-1)
   {
    mes_cartes=ins_carte_str(ct,mes_cartes);
    chien=delete_str(chien,i,2);
   }
  }
  etalcarte(5,chien);
  etalcarte(1,mes_cartes);
  hop('C'+ct);
  if (chien.length==12)
  {
   aff_aide('6','');
   elemy('cltap').cursor=menotte;
  }
  else
  {
   aff_aide('2','');
   elemy('cltap').cursor='';
  }
 }
}

function hop(nid){with (elemy(nid)) if (cursor==menotte) top=parseInt(top)-hsaut;}
function toc(nid){with (elemy(nid)) if (cursor==menotte) top=parseInt(top)+hsaut;}

function valide_ann(id)
{
 if ( id!='X' && id!='XX' || id==boutons)
 {
  deplace_ann(id,stwait,0);
  if (id=='PA') id='-';
  envoi(id);
 }
}

function valide_ct(ct)
{
 pose_carte(ct,0);
 active_boutons('');
 if (ct=='CEA') ct='CE';    // ici à virer aprés dll ok
 envoi(ct);
}

function aff_alerte(){maj_html('infdivers',st_alerte); aff_id('infdivers')}
function eff_alerte(){maj_html('infdivers',''); eff_id('infdivers')}
function aff_grille()
{
 var st;
 if (imps) st=grille_imps(); else st=st_expli_score(false);
 maj_html('infdivers',st);
 aff_id('infdivers')
}
function eff_grille(){maj_html('infdivers',''); eff_id('infdivers')}


function crea_box()
{var nb_onglet=nb_coul_ann*niv_divers_ann,zi=-1,tx_a='right',niv,stid,lg,y,i,wann,hann,hau,gau,yborder,st='';

  if (rg_tarot){nb_onglet=0;tx_a='center';}
  for (var iniv=1;iniv<=niv_divers_ann;iniv++) for (i=1;i<=nb_coul_ann;i++) if (i<=nb_divers_ann || iniv<niv_divers_ann)
  {
   if (iniv==niv_divers_ann) niv=0; else niv=iniv;
   y=y_boucle(niv,i);
   sta=id_onglet(niv,y);

   zi++;
   if (zi%2==0) yborder='#99ccff'; else yborder='#888888';

   if (rg_tarot)
   {
    if (niv==0) hann=2*hong; else hann=(7-i)*hong;
    wann=nb_coul_ann*wong;
    gau=-wann;
   } else
   {
    hann=(niv_divers_ann+2-iniv)*hong;
    if (niv==0 && i==nb_divers_ann) wann=wong; else wann=(nb_coul_ann+1-i)*(wong+1);
    if (rg_bridge && sta=='X') wann-=wong/2;
    gau=-nb_coul_ann*wong;
   }

   gau=wtb-zi;
   hau=zi-hann+htb;

   // hauteur
   if (rg_bridge){hau-=15;gau+=-5;} else
   if (rg_tarot){hau+=+18;gau+=25;} else {hau-=17;gau+=-12}

   stid='o'+sta;
   st+='<div id="'+stid+'" style="width:'+wann+';height:'+hann+';color:'+yy(y)+';background-color:'+bgy(y)
    +';position:absolute;font-size:';

   if (rg_belote) st+='12'; else st+='18';

//   st+=';visibility:hidden;text-align:'+tx_a+';left:'
   st+=';text-align:'+tx_a+';left:'


    +gau+';top:'+hau+';border-style:solid;border-width:1px;border-color:'+yborder+';cursor:';
   if (sta=='AL') st+='help" onMouseOver="aff_alerte()" onMouseOut="eff_alerte()">';
   else st+=menotte+'" onClick="valide_ann(\''+sta+'\')" onMouseOver="hop(\''+stid+'\')" onMouseOut="toc(\''+stid+'\')">';
   st+=lib_id_onglet(niv,y,6)+'&nbsp;</div>';
  }

  maj_html('box',st);
}

function crea_div_carte(ct,crea)
{var id='C'+ct,st='';
 if (crea) st='<div id="'+id+'" style="visibility:hidden;position:absolute" onMouseOver="hop(\''
  +id+'\')" onMouseOut="toc(\''+id+'\')" onClick="clict(\''+id
  +'\')"><img src="ic/'+ct+echel+'.gif"></div>';
//  +'\')"><img src="ic/'+ct+echel+'.gif" alt="'+ct+'" onLoad="nb_load++;"></div>';
 else eff_id(id);
 return st;
}

function crea_ou_eff_cartes(crea)
{var i,j,fig,st='';
 for (i=1;i<=14;i++) if ( (i>=7)||(i>=2)&&(rg_bridge)||(rg_tarot) )
 {
  if (i==1 ) fig='C'; else
  if (i==10) fig='X'; else
  if (i==11) fig='V'; else
  if (i==12) fig='D'; else
  if (i==13) fig='R'; else
  if (i==14) fig='A'; else
  fig=i.toString();
  for (j=1;j<5;j++) st+=crea_div_carte(fig+chy[j],crea);
 }
 if (rg_tarot)
 {
  for (i=1;i<=9;i++) st+=crea_div_carte(i+'A',crea);
  for (i=10;i<=21;i++) st+=crea_div_carte(i.toString(),crea);
  st+=crea_div_carte('EA',crea);
 }

 return st;
}


function init_donne()
{
 var i,idd,sta='',stbg;
 var st=crea_ou_eff_cartes(false);

 eff_id('don');
 eff_id('doe');
 if (rg_belote) for (i=1;i<=4;i++) eff_id('l'+i);

 ct_posees='';
 ct_ramassees='';
 nb_hint=-1;
 mort_ou_mchien=0;
 chien='';
 mes_cartes='';
 ma_fusion='';
 niv_min=1;
 boutons='';
 der_pose='';

 maj_html('rappel','');
 rappel=false;
 if (a_faire=='1') maj_box(1);
}

function deplace_dos(cot)
{var id='doe'; if (cot==1) id='don';
 with (elemy(id)) switch (cot){
 case 1:top=htb-hct-wct; left=wtb-hct; break;
 case 2:left=3*mg; top=(htb-wct)/2; break;
 case 3:top=3*mg; left=(wtb-hct)/2; break;
 case 4:left=wtb-hct-wct; top=(htb-wct)/2; break;}
}

function y_boucle(niv,i)
{var y=i;
 if (niv==0)
 {y=0
  if (rg_bridge) {if (i==1) y=-3; else if (i==2) y=-1; else if (i==4) y=-2;} else if (rg_belote) {if (i==1) y=-1; else if (i==3) y=-2;}
 }
 return y;
}

function crea_modalwin(nud,nut,sta)
{
 maj_html('d'+nud+'t'+nut,'<div><a href="javascript:modalWin('+nud+','+nut+')">'+sta+'</a></div>');
}

function analyse_jeux()
{ var nut,hau,gau,y,st,sta,br,i,j,nj,ii,bdeb,bfin,ref,inf,feli='',re_contrat='',re_pme='';
  var maReg = new RegExp("[.]+","g") ;

//  alert(rep_serveur);
//  rep_serveur=rep_serveur.charAt(0)+'[iimpstoutatmoyen'+rep_serveur.substring(1,rep_serveur.length);   // ici à virer
//  rep_serveur=rep_serveur.charAt(0)+'[itoutat'+rep_serveur.substring(1,rep_serveur.length);   // ici à virer

i=rep_serveur.indexOf(']');
st=rep_serveur.substring(0,i);
rep_serveur=rep_serveur.substring(i+1,rep_serveur.length);

a_faire=st.charAt(0);

var bts=new Array('','');

boutons='';
bdeb=st.indexOf('[',0);
while (bdeb!=-1)
{
 ref=st.charAt(bdeb+1);
 bfin=st.indexOf('[',bdeb+1);
 if (bfin==-1) inf=st.substring(bdeb+2,st.length); else inf=st.substring(bdeb+2,bfin);
 bdeb=bfin;

 if (rg_tarot) if (ref>='1' && ref<='6' || ref=='b' || ref=='j') inf=inf.replace( maReg,"A"); // ici à virer après dll

 nut=indice_table(ref);
 if (nut>=0)
 {
  if (!score_cree) crea_score();

  sta=inf.substring(1,inf.length);
  if (sta=='') sta='0';  // à cause des 4 passes
  i=indice_donne(inf.charAt(0));
  if (i==1 && (nut==2 || nut==98) ) aff_id('infhisto');

  if (nut>=1 && nut<=nb_table) crea_modalwin(i,nut,sta); else
  if (nut==0)
  {
   if (rg_bridge) {anet=inf.charAt(2); maj_anet(); document.images['vuld'+i].src='ic/'+sta+'.gif';}
    else maj_html('d'+i+'t0',sta.charAt(1));
   aff_id('d'+i+'t0');
  } else maj_html('d'+i+'t'+nut,sta);

 } else
 if (ref>='1' && ref<='5')
 {
  etalcarte(eval(ref),inf);
  if (ref=='5') chien=inf;
 } else
 if (ref=='n' || ref=='e' )
 {
  aff_id('do'+ref);
  /*************    ici
  i=inf.indexOf('; ')+1;
  if (i!=0) i++;
  if (i==0) inf='cliquez sur le dernier pli pour voir son contenu'; else
  {
   inf=inf.substring(0,i-2);
   sta='<B>';
   j=0;
   for (i=0;i<4;i++)
   {
    nj=inf.indexOf(' ',j+1);
    br=inf.substring(j,nj);
    j=nj+1;
    if (br.length==1) br+=' ';
    y=evalcoul(br);
    sta+=' <span style="background-color:white;color:'+yy(y)+'">';
    if (y==5) sta+=br; else sta+=br.charAt(0)+crea_im('sy'+br.charAt(1));
    sta+='</span>';
   }
   inf=sta+'</B>';
  }
  ********/
  maj_html('hdo'+ref,inf);

 } else
 switch (ref){
  case 'i':
   if (inf.indexOf('moyen')>=0) moyen=true;
   if (rg_bridge && inf.indexOf('imps')>=0) imps=true;
   if (rg_belote && inf.indexOf('toutat')>=0) nb_coul_ann=6;

   i=inf.indexOf('t(');
   if (i>=0) nb_table=eval(inf.substring(i+2,inf.indexOf(')',i)));
   i=inf.indexOf('d(');
   if (i>=0) donne_mx=eval(inf.substring(i+2,inf.indexOf(')',i)));
   i=inf.indexOf('f(');
   if (i>=0) terme=eval(inf.substring(i+2,inf.indexOf(')',i)));
  break;
  case 'k':alert(inf); break;
  case 'l':for (i=1;i<inf.length;i+=2)
   {var id='l'+inf.charAt(i);
    if (inf.charAt(i-1)=='0') maj_html(id,'BELOTE'); else maj_html(id,'REBELOTE');
    aff_id(id);
   } break;
  case 't':maj_html('tpc',inf+'%');break;
  case 'A':re_contrat=inf;break;
  case 'B':if (nb_table!=1 && !rg_belote) re_pme=inf;break;
  case 'T':
  {if (nb_table==1)
   {
    sta=inf.substr(0,inf.indexOf('-'));
    i=eval(sta);
    maj_html('scns',sta);
    sta=inf.substring(inf.indexOf('-')+1,inf.length);
    i-=eval(sta);
    maj_html('scex',sta);
    sta=i.toString();
    if (i>0) sta='+'+sta;
   } else sta=inf;
   maj_html('ttt','<B>'+sta+'</B>');
  } break;
  case '#':init_donne();nu_donne=evaldon(inf);break;
  case '&':if (a_faire=='7') bts[0]='manu';automatique=true; break;
  case '6':ma_fusion=inf;break;
  case 'u':if (inf=='0') credit_positif=false; break;
  case 'f':if (nb_table==1)
  {
   if (inf=='s')
    feli='F&eacute;licitations! votre score positif vous permet de remporter un tournoi cr&eacute;dit&eacute; de suite.';
   else
    feli='F&eacute;licitations! plus de la moiti&eacute; des donnes gagn&eacute;es vous permet de remporter un tournoi cr&eacute;dit&eacute; de suite.';
  }
  else
  {
   if (isNaN(inf))
    feli='F&eacute;licitations! votre score positif vous permet de remporter un tournoi cr&eacute;dit&eacute; de suite.';
   else
   if (eval(inf)==donne_mx)
    feli='F&eacute;licitations! vos 50% avec un score positif vous permettent de remporter un tournoi cr&eacute;dit&eacute; de suite.';
   else
    feli='F&eacute;licitations! votre r&eacute;sultat de '+pct(eval(inf))+' vous permet de remporter un tournoi cr&eacute;dit&eacute; de suite.';
  } break;
  case 'm':mort_ou_mchien=eval(inf);break;
  case 'j':
   player=eval(inf.charAt(0));
   if (inf.length>=2 && a_faire!='8' && a_faire!='9')
    for (i=1;i<inf.length;i+=2)
    {
     pose_carte(id_div_carte(i,inf),i-1);
     player++;
     if (player>4) player-=4;
    }
  break;
  case 'c':deplace_dos(cote(eval(inf))); break;
  case 'b': boutons=inf; break;
  case 'a':
   i=0;
   ii=0;
   while ( (j=inf.indexOf('$',i))!=-1 )
   {
    deplace_ann(inf.substring(i,i+2),inf.substring(i+2,j),ii);
    ii++;
    player++; if (player==5) player=1;
    i=j+1;
   }
   break;
 }
}

if (a_faire!='1' && box==1) maj_box(0);

if (re_contrat!='' && box!=1 && !rappel)
{
 rappel=true;
 maj_html('rappel',rappel_contrat(re_contrat.substring(1,re_contrat.length)));
 crea_modalwin(indice_donne(re_contrat.charAt(0)),1,'...');
}

if (re_pme!='') if (a_faire=='8' || a_faire=='9' || a_faire=='E' || a_faire=='F' || a_faire=='G' || a_faire=='H')
 maj_html('pme',re_pme.substring(1,re_pme.length));

if (nb_hint>=0) if (a_faire=='A' || a_faire=='B' || a_faire=='3' || a_faire=='5' || a_faire=='7' || a_faire=='8' || a_faire=='9')
{
 for (i=0;i<=nb_hint;i++) maj_html('en'+i,'');
 nb_hint=-1;
 maj_anet();
}

if (chien!='' && a_faire!='5' && a_faire!='2' && a_faire!='6' && a_faire!='8' && a_faire!='9') {effcarte(chien);chien='';}

if (a_faire!='1' && a_faire!='4' /*&& a_faire!='5'*/) active_boutons(menotte);
if (a_faire=='1' && !rg_tarot)
{
 with (elemy('oX' )) if (boutons=='X' ) cursor=menotte;else cursor='crosshair';
 with (elemy('oXX')) if (boutons=='XX') cursor=menotte;else cursor='crosshair';
}

if (a_faire=='9')bts[1]='bautre'; else
if (a_faire>='T'){ bts[0]='N';bts[1]='O';} else
if ((a_faire=='3' || a_faire=='B') && boutons.length==2) bts[1]='auto';


var dem_mail=false,dem_pseudo=false;
if (aide_click(a_faire) && bts[0]=='' && bts[1]=='' && a_faire!='5' && a_faire!='4' && a_faire!='2')
if (nu_donne>=4 || a_faire=='8' || (a_faire>='E' && a_faire<='G') )     // dé ou activer
{
 if (stu=='')
 {
  stu=lit_cook('u');
  if (stu!='') stp=lit_cook('p');
 }
 if (stu=='' && stem=='') stem=lit_cook('em');

 if (stu=='' && stem=='') dem_mail=true; else
 if (stu!='' && stp!='' && (stps=='vous' || stps.length==8 && stps.charAt(0)=='D' && !isNaN(stps.substr(1,7))))
  if (lit_cook('ps')=='') dem_pseudo=true;

}

if (dem_pseudo)
{
 bts[0]='pseudo';
// bts[1]='pseudoi';
 f_dem_pseudo();
} else
if (dem_mail)
{
 bts[0]='email';
 if (nu_donne<4) bts[1]='emaili';      // dé ou activer

 var mainj='<br><br>Cette semaine plus de <b>600 &euro;</b> &agrave; gagner sur l’ensemble de nos concours de Bridge Tarot et Belote,'
 +' et aussi des jeux de cartes et des milliers de tournois &agrave; remporter.'
 +'<br><br>Entrez votre adresse e-mail:<input type="text" id="email" value="" size="30"><br>'+st_no_pub.small();

 elemy('info').width=220;
 aff_info('<div class="ss_info">'+mainj+'<div>');
 focuse('email');
} else
{
 aff_aide(a_faire,feli);
 if (aide_click(a_faire)) elemy('cltap').cursor=menotte;
}

for (i=0; i<=1; i++) if (bts[i]!=bts_cour[i])
{
 if (bts[i]=='') eff_id('bt'+i); else
 {
  if (bts[i]=='email') sta='Valider'; else
  if (bts[i]=='pseudo') sta='Valider'; else
  if (bts[i]=='bautre')
  {
   if (mode_demo=='00') sta='Autre tournoi'; else sta='Jouer le m&ecirc;me tournoi';
  } else
  if (bts[i]=='auto') sta='Automatique'; else
  if (bts[i]=='manu') sta='Manuel'; else
  if (bts[i]=='O') sta='Tabler'; else
  if (bts[i]=='N' || bts[i]=='emaili' || bts[i]=='pseudoi') sta='Continuer'; else lib='';
  maj_html('libbt'+i,sta);
  aff_id('bt'+i);
 }
 bts_cour[i]=bts[i];
}

}   /* analyse_jeux   */

function indice_id(id){return eval(id.substr(2,id.length-2))-1}

function existe(id) {return (id.charAt(0)!='m' || id.charAt(1)!='1' || indice_id(id)<nb_li-1)}

function clict(ct)
{
 if (elemy('cltap').cursor!=menotte) tapissable=false;
 if (elemy(ct).cursor==menotte && a_faire!='5') if (a_faire=='2') ecarte(ct); else valide_ct(ct);
}

function lib_ct(id){return id.substring(1,id.length);}

function deplace_carte(ct,hau,gau,zx)
{
 if (ct_ramassees=='' || ind_carte_str(lib_ct(ct),ct_ramassees)==-1)
 with (elemy(ct))
 {
  top=hau;
  left=gau;
  zIndex=zx;
  if (hau==0) visibility='hidden'; else visibility='visible';
 }
}

function envoi(st)
{
 if (pret)       // ici à revoir directement dans les onclick
 {
  if (rep_serveur=='')
  {
  // local
      if (option!='') {st+=';'+option;option='';}
      requette('djc'+rg,'',st+'$'+cle);
  // local alert('envoi '+st);
//  if (st=='baba') alert('tournoi abandonné, recommencez.');  // à valider si bugg avec certain navigateur
//  if (st=='baba') acc();
  } else analyse_jeux();
 }
}

function modalWin(hdonne,htable)
{var st='h10.html?'+rg+hdonne+'t'+htable+'$'+cle;

//window.location=st;

 window.open(st,'name',
  'height=480,width=540,toolbar=no,directories=no,status=no,linemenubar=no,scrollbars=no,resizable=no,modal=yes');

 /******
 if (window.showModalDialog)
  window.showModalDialog(st,"name","dialogWidth:560px;dialogHeight:510px");
 else
  window.open(st,'name',
   'height=510,width=560,toolbar=no,directories=no,status=no,linemenubar=no,scrollbars=no,resizable=no,modal=yes');
   /******/
}

function crea_score()
{
 var i,j,id,epai=160/donne_mx;
 if (epai>22) epai=22;

 var st_td='<td ';
 if (moyen) st_td+='onMouseOver="aff_grille()" onMouseOut="eff_grille()" ';
 var st='<TABLE width="90%" cellpadding="0" cellspacing="0" style="border-style:groove;border-color:#800000;border-style:groove;border-width:2;"><TR><TD bgcolor="#a0c0c0"><TABLE width="100%" cellpadding="0" cellspacing="1" border="0">';
 var papier='<TR style="background-color:#FFFFFF;font-size:12">';   // #FFFFcc   #FFCC99
 st+=papier+'<TD align="right" width="1%">';
 if (rg_bridge) st+=crea_im('lvul'); else st+=crea_im('ldon');
 st+='</TD>';

 if (nb_table==1)
  st+='<TD align="center" width="90">Résultat Nord-Sud</TD><TD align="center" width="90">Résultat Est-Ouest</TD>';
 else
  st+='<TD align="center" width="40">Résultat Nord-Sud à votre table</TD>'
  +'<TD colspan="'+(nb_table-1)+'" align="center">Résultat Nord-Sud à d\'autres tables en duplicate</TD>';


 st+=st_td+'width="40" align="center">';
 if (nb_table==1) st+='Score'; else
 if (nb_table==2) st+=crea_im('lecar'); else
 if (imps) st+='<b>IMP</b>'; else
 st+='<b>Ecart</b>';
 if (moyen) st+='<BR>moyen';

 st+='</TD></TR>';

 for (i=1;i<=donne_mx;i++)
 {
  id='d'+i+'t';
  st+=papier+'<TD height="';
  if (terme==0) st+=epai+'">'+i; else st+='4">';

  if (rg_bridge) st+='<img id="'+id+'0" name="vuld'+i+'" src="ic/vA.gif">';
  else st+='<font id="'+id+'0" style="color:blue;font-weight:bold;font-size:14"></font>';
  st+='</TD>';   

  for (j=1;j<=nb_table;j++) st+='<TD align="center" width="32" id="'+id+j+'"></TD>';

  if (nb_table!=1) st+=st_td+'id="'+id+'99" align="right"></TD>';
  else
  {
   st+='<TD align="center" width="32" id="'+id+'98"></TD>';
   if (i==1) st+=st_td+'id="'+id+'99" align="right" rowspan="'+donne_mx+'"></TD>';
  }

  st+='</TR>';
 }

 st+=papier;

 if (nb_table==1)
  st+='<TD id="scns" align="center" colspan="2"></TD><TD id="scex" align="center"></TD>';
 else
  st+='<TD colspan="'+(nb_table+1)+'" align="right"><font id="tpc" style="font-size:8"></font><B> score:</B></TD>';

 st+='<TD id="ttt" align="right"></TD></TR></TABLE></TD></TR></TABLE>';

 if (terme!=0)
  st+='<div style="color:#ffffff;font-size:13">Le terme de la partie arrive quand l\'une<br>des deux équipes atteint '
  +terme+' points.</div>';

 st+='<div id="infhisto" style="visibility:hidden;color:#ffffff;font-size:13">Cliquez dans les cases pour voir les donnes.</div>';
  /*
 st+='<div id="infdivers" style="position:absolute;width:300;z-index:10;text-align:justify;border-style:solid;'
 +'visibility:hidden;border-width:1px;border-color:#000000;background-color:#FFFFdd;font-size:12"></div>';
    */



 maj_html('sc',st);
 score_cree=true;
 for (i=1;i<=donne_mx;i++) eff_id('d'+i+'t0');
}

function del_score()
{var i,j,id;
 for (i=1;i<=donne_mx;i++)
 {
  id='d'+i+'t';
  eff_id(id+'0');
  for (j=1;j<=nb_table;j++) maj_html(id+j,'');
  if (nb_table!=1) maj_html(id+'99','');else
  {
   maj_html(id+'98','');
   if (i==1) maj_html(id+'99','');
  }
 }
 if (nb_table==1) {maj_html('scns',''); maj_html('scex','');} else maj_html('tpc','');
 maj_html('ttt','');
 eff_id('infhisto');
}

function demarre_tournoi()
{
 if (credit_positif)
 {pret=true;
  a_faire='0';
  option='';
  if (score_cree) del_score();
  if (rep_serveur=='') envoi('#'+f_perso()); else analyse_jeux();
 }
 else acc();  // ici click_rg()  option souscrire
}

function demarre_jeux()
{var i,j,st,hau,gau;

 if (rg=='')
 {
  var param=location.search;
  if (param.charAt(0)!='?') param='?'+param;
  var posi_dol=param.indexOf('$');

  if (param.length>1) rg=param.charAt(1);
  if (rg<'0' || rg>'2') rg='0';

  if (posi_dol>=0)
  {
   stniv[eval(rg)]=param.substr(posi_dol+3,2);
   nudrap=param.substr(posi_dol+5,2);
   stopt=param.substr(posi_dol+7,1);
   stps=param.substring(posi_dol+8,param.length);
  }

  if (posi_dol>6)
  {
   mode_demo='00';
   stp=param.substr(2,4);
   stu=param.substring(6,posi_dol);

   if (lit_cook('u')=='')
   {
    enr_cook('u',stu,365);
    enr_cook('p',stp,365);
    enr_cook('regle',rg,365);
   }
  }
  else if (param.length>3) mode_demo=param.substr(2,2);
 }

 for (i=0;i<2;i++) bts_cour[i]='';
 if (rg<'0' || rg>'2') rg='0';
 rg_bridge=rg=='0';
 rg_tarot=rg=='1';
 rg_belote=rg=='2';
 if (rg_bridge) nb_li=10; else nb_li=7;

 // valeur par défaut de l'ancienne dll
 imps=false;
 moyen=false;
 terme=0;    // 0 = illimité
 donne_mx=4;
 nb_table=6;
 if (rg_belote){donne_mx=15; nb_table=1;terme=1501;nb_coul_ann=5;} else if (rg_tarot) nb_coul_ann=4; else nb_coul_ann=5;

 // ici activer si v11 if (rg_belote) {donne_mx=8; nb_table=6;terme=0;nb_coul_ann=5;moyen=true;}

 separs=8-2*((echel+1)%3);
 if (rg_bridge) wct=7*echel; else wct=10*echel;
 hct=(70*echel-separs)/6;
 hict=17*echel-2;
 wict=10*echel;

 wong=(echel-2)*6+5;
 if (rg_belote) wong+=2;
 hong=9*(echel-2)/2;

 bordure=echel;
 hsaut=echel;
 htb=nb_li*wct+8;
 wtb=htb;
 niv_divers_ann=8;nb_divers_ann=4;
 if (rg_belote) {niv_divers_ann=10;nb_divers_ann=3;}
 else if (rg_tarot){niv_divers_ann=2;nb_divers_ann=1;}

 if (mode_demo=='00') cle=stp+stu; else
 if (mode_demo=='99') cle=location.search.substring(2,200); else
 {
  cle=lit_cook('cle');
  if (cle=='')
  {
   var aujour=new Date();
   cle=aujour.getTime().toString();
   cle='D'+cle.substr(cle.length-7,7);
   enr_cook('cle',cle,365);
  }
 }

 if (rg_bridge)
  st='<div id="bulle" style="width:200;color:black;position:absolute;z-index:22;visibility:hidden;font-style:normal;font-size:16;text-decoration: none;'
   +'border-style:solid;border-width:1px;border-color:#000000;background-color:#FFFFdd;text-align:left"></div>';
 else st='';

 for (i=0;i<51;i++) st+='<div id="en'+i+'"></div>';

 st+=crea_ou_eff_cartes(true);


 st+='<div id="box"></div>';

 for (i=1;i<=2;i++)
 {
  if (i==1) idd='don'; else idd='doe';
  st+='<div id="'+idd+'" style="position:absolute;visibility:hidden">'
  +'<img src="ic/'+idd+echel+'.gif" onMouseOver="aff_id(\'h'+idd+'\')" onMouseOut="eff_id(\'h'+idd+'\')">'
  +'<div id="h'+idd+'" style="position:relative;visibility:hidden;width:100;left:20;z-index:26'
  +';border-style:solid;border-width:1px;border-color:#000000;background-color:#FFFFdd;">0</div></div>';
 }

 for (i=1;i<=4;i++) st+='<div id="cardi'+i+'" style="position:absolute;z-index:0;font-size:11;border-style:solid;border-width:1px;border-color:#a0c0c0;font-weight:bold">'
   +id_jo[i-1]+'</div>';

 st+='<div id="infdivers" style="position:absolute;width:300;z-index:50;text-align:justify;border-style:solid;'
 +'visibility:hidden;top:100;left:100;border-width:1px;border-color:#000000;background-color:#FFFFdd;font-size:12"></div>';

 if (rg_belote) for (i=1;i<=4;i++)
 {
  hau=f_hau(i);   if (i==1) hau+=hct+22;
  gau=f_gau(i);   if (i==2) gau+=20;
  st+='<div id="l'+i+'" style="position:absolute;visibility:hidden;color:black;z-index:50;font-size:9;top:'
  +hau+';left:'+gau+';border-style:solid;border-width:1px;border-color:#000000;background-color:#FFFFdd"></div>';
 }
 // if (mode_demo=='00') stbg=':url(\'src/bg_main.jpg\')'; else
 stbg='-color:#678822'; // #226622    #67993A';


 maj_html('dvtap','<div style="width:'+wtb+';height:'+htb+';background'+stbg
 +';border-style:groove;border-color:#800000;border-width:2;"><div id="cltap"style="position:relative;width:'
 +wtb+';height:'+htb+';" onClick="click_tapis(false)">'+st+'</div></div>');


 deplace_dos(1);
 anet='A';
 maj_anet();

 demarre_tournoi();
}

