﻿var listbids = ["1n","1p","1c","1k","1t","2n","2p","2c","2k","2t","3n","3p","3c","3k","3t","4n","4p","4c","4k","4t","5n","5p","5c","5k","5t","6n","6p","6c","6k","6t","7n","7p","7c","7k","7t","sc","co","pa"];
var path='http://forum.funbridge.com/forum/deal_editor';

function get_card(value){
	if(isNaN(value)){return '&nbsp;';}
	var v=Math.floor(value%13)+2;
	var toReturn=v;
	if(v==11){toReturn='V';}
	else if(v==12){toReturn='D';}
	else if(v==13){toReturn='R';}
	else if(v==14){toReturn='A';}
	return toReturn;
}
function get_color(value){
	return Math.floor(value/13);
}
function get_symbol_color(value){
	var toReturn=true;
	if(get_color(value)<1){toReturn='t';}
	else if(get_color(value)>=1 && get_color(value)<2){toReturn='k';}
	else if(get_color(value)>=2 && get_color(value)<3){toReturn='c';}
	else if(get_color(value)>=3){toReturn='p';}
	return toReturn;
}

function setBgPos(el,x,y) {
	if(navigator.userAgent.toLowerCase().indexOf('safari')!=-1 || navigator.appName=='Microsoft Internet Explorer'){
		el.style.backgroundPositionX = x;
		el.style.backgroundPositionY = y;
	}else{
		el.style.backgroundPosition = x+'px '+y+'px';
	}
}
function array_display(tab){
	if(tab.length==0){return '<span style="font-size:1px;">&nbsp;</span>';}
	else{return '<span style="font-size:12px;">'+tab.join(' ')+'</span>';}
}

function build_deal(id, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12){
	var dealer=p5;
	var contrat=p6;
	var declarant=p7;
	var vulnerabilite=p8;
	vulnerabilite=(vulnerabilite==0)?'Personne':vulnerabilite;
	vulnerabilite=(vulnerabilite==1)?'Nord/Sud':vulnerabilite;
	vulnerabilite=(vulnerabilite==2)?'Est/Ouest':vulnerabilite;
	vulnerabilite=(vulnerabilite==3)?'Tous':vulnerabilite;
	var bids=p9.split(',');
	var pts_ns=p10;
	var pts_eo=p11;
	var mode=p12;
	
	var n=(p1.length!=0)?p1.split(','):['esc'];
	var np=new Array();	var nc=new Array();	var nk=new Array();	var nt=new Array();
	if(mode==0){
		n.reverse();
		for(var i=0; i<n.length; i++){
			if(n[i]<52 && n[i]>38){np.push(n[i]);}
			else if(n[i]<39 && n[i]>25){nc.push(n[i]);}
			else if(n[i]<26 && n[i]>12){nk.push(n[i]);}
			else{nt.push(n[i]);}
		}
		np.reverse(); nc.reverse(); nk.reverse(); nt.reverse();
		for(var i=0; i<np.length; i++){np[i]=get_card(np[i]);}
		for(var i=0; i<nc.length; i++){nc[i]=get_card(nc[i]);}
		for(var i=0; i<nk.length; i++){nk[i]=get_card(nk[i]);}
		for(var i=0; i<nt.length; i++){nt[i]=get_card(nt[i]);}
	}
	var s=(p2.length!=0)?p2.split(','):['esc'];
	var sp=new Array();	var sc=new Array();	var sk=new Array();	var st=new Array();
	if(mode==0){
		s.reverse();
		for(var i=0; i<s.length; i++){
			if(s[i]<52 && s[i]>38){sp.push(s[i]);}
			else if(s[i]<39 && s[i]>25){sc.push(s[i]);}
			else if(s[i]<26 && s[i]>12){sk.push(s[i]);}
			else{st.push(s[i]);}
		}
		sp.reverse(); sc.reverse(); sk.reverse(); st.reverse();
		for(var i=0; i<sp.length; i++){sp[i]=get_card(sp[i]);}
		for(var i=0; i<sc.length; i++){sc[i]=get_card(sc[i]);}
		for(var i=0; i<sk.length; i++){sk[i]=get_card(sk[i]);}
		for(var i=0; i<st.length; i++){st[i]=get_card(st[i]);}
	}
	var e=(p3.length!=0)?p3.split(','):['esc'];
	e.reverse();
	var ep=new Array();	var ec=new Array();	var ek=new Array();	var et=new Array();
	if(mode==0){
		for(var i=0; i<e.length; i++){
			if(e[i]<52 && e[i]>38){ep.push(e[i]);}
			else if(e[i]<39 && e[i]>25){ec.push(e[i]);}
			else if(e[i]<26 && e[i]>12){ek.push(e[i]);}
			else{et.push(e[i]);}
		}
		ep.reverse(); ec.reverse(); ek.reverse(); et.reverse();
		for(var i=0; i<ep.length; i++){ep[i]=get_card(ep[i]);}
		for(var i=0; i<ec.length; i++){ec[i]=get_card(ec[i]);}
		for(var i=0; i<ek.length; i++){ek[i]=get_card(ek[i]);}
		for(var i=0; i<et.length; i++){et[i]=get_card(et[i]);}
	}
	var o=(p4.length!=0)?p4.split(','):['esc'];
	var op=new Array();	var oc=new Array();	var ok=new Array();	var ot=new Array();
	if(mode==0){
		o.reverse();
		for(var i=0; i<o.length; i++){
			if(o[i]<52 && o[i]>38){op.push(o[i]);}
			else if(o[i]<39 && o[i]>25){oc.push(o[i]);}
			else if(o[i]<26 && o[i]>12){ok.push(o[i]);}
			else{ot.push(o[i]);}
		}
		op.reverse(); oc.reverse(); ok.reverse(); ot.reverse();
		for(var i=0; i<op.length; i++){op[i]=get_card(op[i]);}
		for(var i=0; i<oc.length; i++){oc[i]=get_card(oc[i]);}
		for(var i=0; i<ok.length; i++){ok[i]=get_card(ok[i]);}
		for(var i=0; i<ot.length; i++){ot[i]=get_card(ot[i]);}
	}
	
	var parent=createElement(id, 'div', 'deal', 'deal'+id);
	
	var child0=createElement('deal'+id, 'div', 'zoom_area', 'zoom_area'+id);
	if(mode==0){
		child0.innerHTML='<table width="315" border="0" align="center" style="margin:4 !important; margin:0 0 0 0; padding:0 8 0 0 !important; padding:4; color:#FFFFFF;"><tr><td width="90">&nbsp;</td><td colspan="2" style="padding:0 !important; padding:4 0 0 0;">'+
		'<div style="float:left;"><b>N</b>&nbsp;</div><table cellpadding="0" cellspacing="0" style="border:1px solid #FFFFFF; color:#FFFFFF; width:104px; height:90px"><tr><td bgcolor="#FFFFFF" style="border-right:1px solid #FFFFFF;" width="14"><img src="'+path+'/img/p2.gif"></td><td>'+array_display(np)+'</td></tr><tr><td bgcolor="#FFFFFF" style="border-right:1px solid #FFFFFF;" width="14"><img src="'+path+'/img/c2.gif"></td><td style="border-top:1px solid #FFFFFF;">'+array_display(nc)+'</td></tr><tr><td bgcolor="#FFFFFF" style="border-right:1px solid #FFFFFF;" width="14"><img src="'+path+'/img/k2.gif"></td><td style="border-top:1px solid #FFFFFF;">'+array_display(nk)+'</td></tr><tr><td bgcolor="#FFFFFF" style="border-right:1px solid #FFFFFF;" width="14"><img src="'+path+'/img/t2.gif"></td><td style="border-top:1px solid #FFFFFF;">'+array_display(nt)+'</td></tr></table>'+
		'</td><td width="80">&nbsp;</td></tr><tr><td colspan="2" style="padding:1 !important; padding:0 0 0 6;">'+
		'<b>O</b><table cellpadding="0" cellspacing="0" style="border:1px solid #FFFFFF; color:#FFFFFF; width:102 !important; width:110; height:90px;"><tr><td bgcolor="#FFFFFF" style="border-right:1px solid #FFFFFF;" width="14"><img src="'+path+'/img/p2.gif"></td><td>'+array_display(op)+'</td></tr><tr><td bgcolor="#FFFFFF" style="border-right:1px solid #FFFFFF;" width="14"><img src="'+path+'/img/c2.gif"></td><td style="border-top:1px solid #FFFFFF;">'+array_display(oc)+'</td></tr><tr><td bgcolor="#FFFFFF" style="border-right:1px solid #FFFFFF;" width="14"><img src="'+path+'/img/k2.gif"></td><td style="border-top:1px solid #FFFFFF;">'+array_display(ok)+'</td></tr><tr><td bgcolor="#FFFFFF" style="border-right:1px solid #FFFFFF;" width="14"><img src="'+path+'/img/t2.gif"></td><td style="border-top:1px solid #FFFFFF;">'+array_display(ot)+'</td></tr></table>'+
		'</td><td colspan="2" align="right" style="padding:1 !important; padding:0 6 0 0;">'+
		'<b>E</b><table cellpadding="0" cellspacing="0" style="border:1px solid #FFFFFF; color:#FFFFFF; width:102 !important; width:110; height:90px;"><tr><td bgcolor="#FFFFFF" style="border-right:1px solid #FFFFFF;" width="14"><img src="'+path+'/img/p2.gif"></td><td>'+array_display(ep)+'</td></tr><tr><td bgcolor="#FFFFFF" style="border-right:1px solid #FFFFFF;" width="14"><img src="'+path+'/img/c2.gif"></td><td style="border-top:1px solid #FFFFFF;">'+array_display(ec)+'</td></tr><tr><td bgcolor="#FFFFFF" style="border-right:1px solid #FFFFFF;" width="14"><img src="'+path+'/img/k2.gif"></td><td style="border-top:1px solid #FFFFFF;">'+array_display(ek)+'</td></tr><tr><td bgcolor="#FFFFFF" style="border-right:1px solid #FFFFFF;" width="14"><img src="'+path+'/img/t2.gif"></td><td style="border-top:1px solid #FFFFFF;">'+array_display(et)+'</td></tr></table>'+
		'</td></tr><tr><td>&nbsp;</td><td colspan="2" style="padding-top:8px;">'+
		'<div style="float:left; padding-top:74;"><b>S</b>&nbsp;</div><table cellpadding="0" cellspacing="0" style="border:1px solid #FFFFFF; color:#FFFFFF; width:104px; height:90px;"><tr><td bgcolor="#FFFFFF" style="border-right:1px solid #FFFFFF;" width="14"><img src="'+path+'/img/p2.gif"></td><td>'+array_display(sp)+'</td></tr><tr><td bgcolor="#FFFFFF" style="border-right:1px solid #FFFFFF;" width="14"><img src="'+path+'/img/c2.gif"></td><td style="border-top:1px solid #FFFFFF;">'+array_display(sc)+'</td></tr><tr><td bgcolor="#FFFFFF" style="border-right:1px solid #FFFFFF;" width="14"><img src="'+path+'/img/k2.gif"></td><td style="border-top:1px solid #FFFFFF;">'+array_display(sk)+'</td></tr><tr><td bgcolor="#FFFFFF" style="border-right:1px solid #FFFFFF;" width="14"><img src="'+path+'/img/t2.gif"></td><td style="border-top:1px solid #FFFFFF;">'+array_display(st)+'</td></tr></table>'+
		'</td><td>&nbsp;</td></tr></table>';
	}else{
		for(var i=0; i<n.length; i++){
			var f=createElement('zoom_area'+id, 'div', '', id+'_n'+i);
			f.style.cssText='; background-image:url('+path+'/img/NS_fr.gif); width:32; height:48; position:absolute; top:'+Number(9)+'; left:'+Number((17*i)+68)+'px; z-index:'+i+';';
			setBgPos(f, (52-n[i])*32, 0);
		}
		for(var i=0; i<o.length; i++){
			var g=createElement('zoom_area'+id, 'div', '', id+'_o'+i);
			g.style.cssText='; background-image:url('+path+'/img/E_fr.gif); width:48; height:32; position:absolute; top:'+Number((17.5*i)+10)+'; left:'+Number(12)+'px; z-index:'+i+';';
			setBgPos(g, 0, (52-o[i])*32);
		}
		for(var i=0; i<e.length; i++){
			var h=createElement('zoom_area'+id, 'div', '', id+'_e'+i);
			h.style.cssText='; background-image:url('+path+'/img/E_fr.gif); width:48; height:32; position:absolute; top:'+Number((17.5*i)+62)+'; left:'+Number(258)+'px; z-index:'+i+';';
			setBgPos(h, 0, (52-e[i])*32);
		}
		for(var i=0; i<s.length; i++){
			var j=createElement('zoom_area'+id, 'div', '', id+'_s'+i);
			j.style.cssText='; background-image:url('+path+'/img/NS_fr.gif); width:32; height:48; position:absolute; top:258; left:'+Number((17*i)+16)+'px; z-index:'+i+';';
			setBgPos(j, (52-s[i])*32, 0);
		}
		var cardinalite=createElement('zoom_area'+id, 'div', '', '');
		cardinalite.style.cssText='; position:absolute; width:315; height:50; top:70; left:0;';
		cardinalite.innerHTML='N<br><br><br><br><br>O &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; E<br><br><br><br><br>S'
	}
	
	var child1=createElement('deal'+id, 'div', 'info', 'info'+id);
	var txt='<table width="210" border="0" cellpadding="0" cellspacing="2" align="center" class="info_game">';
	txt+='<tr><td class="bgcolor">Donneur</td><td class="bgcolor">Vulnérable</td></tr>';
	txt+='<tr><td><b>'+dealer+'</b></td><td><b>'+vulnerabilite+'</b></td></tr>';
	txt+='<tr><td class="bgcolor">Déclarant</td><td class="bgcolor">Contrat</td></tr>';
	txt+='<tr><td>'+declarant+'</td><td id="contrat"></td></tr>';
	txt+='</table>';
	txt+='<table width="206" border="0" cellpadding="0" cellspacing="0" align="center" class="info_game">';
	txt+='<tr><td class="bgcolor"><b>NS</b></td><td class="bgcolor">Plis</td><td class="bgcolor"><b>EO</b></td></tr>';
	txt+='<tr><td>'+pts_ns+'</td><td>&nbsp;</td><td>'+pts_eo+'</td></tr></table>';
	child1.innerHTML=txt;
	
	var contrat2='';
	var contrat3='';
	if(contrat!=''){
		var temp=contrat.split('-');
		var contrat0=temp[0].substr(0,1);
		var contrat1=temp[0].substr(1,1);
		if(contrat1.toLowerCase()=='n'){
			contrat2=contrat0+'<font color="#0146F6">SA</font>';
		}else{
			contrat2=contrat0+'<img src="'+path+'/img/'+contrat1+'.gif" align="absmiddle" id="contrat_'+id+'">';
		}
		if(temp[1]!=null && temp[1]!=undefined && temp[1]!=''){
			if(temp.length==3){if(temp[2].toLowerCase()=='sc' || temp[1].toLowerCase()=='sc'){contrat3=' <font color="#0072FF">XX</font>';}
			}else if(temp[1].toLowerCase()=='co'){contrat3=' <font color="#C10101">X</font>';}
		}
	}
	$('contrat').innerHTML='<b>'+contrat2+contrat3+'</b>';
	
	var seq1=createElement('info'+id, 'div', '', 'seq1_'+id);
	seq1.style.backgroundColor='#FFFFFF';
	var wh={w:208,h:46};
	seq1.wh(wh);
	seq1.innerHTML='<div style="border-bottom:1px dashed #000000;"><img src="'+path+'/img/lib_sud.gif"><img src="'+path+'/img/lib_ouest_fr.gif"><img src="'+path+'/img/lib_nord.gif"><img src="'+path+'/img/lib_est.gif"></div>';
	
	var seq=createElement('info'+id, 'div', '', 'seq'+id);
	seq.style.overflow='auto';
	seq.style.backgroundColor='#FFFFFF';
	var wh={w:208,h:159};
	seq.wh(wh);
	if(dealer=='Nord'){seq.innerHTML='<div class="pix"><img src="'+path+'/img/blank.gif" width="46" height="46"></div><div class="pix"><img src="'+path+'/img/blank.gif" width="46" height="46"></div>';}
	else if(dealer=='Ouest'){seq.innerHTML='<div class="pix"><img src="'+path+'/img/blank.gif" width="46" height="46"></div>';}
	else if(dealer=='Est'){seq.innerHTML='<div class="pix"><img src="'+path+'/img/blank.gif" width="46" height="46"></div><div class="pix"><img src="'+path+'/img/blank.gif" width="46" height="46"></div><div class="pix"><img src="'+path+'/img/blank.gif" width="46" height="46"></div>';}
	var ImgBids='';
	for(var i=0; i<bids.length; i++){
		var ImgBids=createElement('seq'+id, 'div', '', '');
		ImgBids.style.cssText='width:46px; height:46px; float:left; margin:0px; padding:0px; background-image:url('+path+'/img/bids_fr.gif);';
		if(bids[i]=='pa'){
			var bg=1889;
		}else{
			for(var b=0; b<listbids.length; b++){
				if(listbids[b]==bids[i]){var bg=b*46+46; break;}
			}
		}
		setBgPos(ImgBids, bg, 0);
	}
	
	var child0b=createElement('deal'+id, 'div', '', 'zoomAreaTxt');
	child0b.style.styleFloat='left';
	child0b.style.textAlign='left';
	child0b.style.padding=('opacity' in child0b.style)?'320 0 0 8':'4 0 0 8';
	child0b.style.width=605;
}

function scan_deal(msg, id){
	var reg = new RegExp("^\\[deal\\][a-zA-Z0-9\\-_\\.,=\\|]+\\[/deal\\]$", "gi");
	if(msg.match(reg)){
		var extract=msg.substring(msg.indexOf('[deal]')+6, msg.indexOf('[/deal]'));
		extract=extract.split('|');
		var p=new Array();
		for(var i=0; i<extract.length; i++){
			var part=extract[i].split('=');
			p.push(part[1]);
		}
		build_deal(id, p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7], p[8], p[9], p[10], p[11]);
	}
}