﻿// Les tarifs 2011 sont pris à partir du tableau prix11a1 et prix11a2 du fichier tarifspl.js en concordance avec les dates date11 pour
// etre utilisé par le fichier tableau.js



function affichetableau(type,an2,lang,tailpourcent) // exemple affichetableau("a1","08","fr","100%")
{
tableau = new Array() //[i][j]:i lign j colonn
insertcols = new Array()

var motfr=" au ",motde=" bis ",moten=" to ",mothol=" tot ",motdan=" til ";
var nbcol,nblign,pdat="",i,j,ins,insi,insj,idat,nbdat,temp,fusions,icouleur,jcouleur,couleurs,nbcoul,lineinsertion,lineinsertion2;
var fusioncel=eval('prix'+an2+type+'["fusioncel"]'),arcenciel=eval('prix'+an2+type+'["arcenciel"]'), styletab=eval('prix'+an2+type+'["styletab"]');
var talign="center",border=1,cellpadding=4,cellspacing=4,style="";
var mirroir=0,suppr=0;//pour savoir si les dates sont en mirroir


if (eval('prix'+an2+type+'["type"].length')==0) {tableau[0]="Erreur pas de prix";}
else{
yeartemp=an2;
pdat=eval('prix'+an2+type+'["prefixdate"]');

// 2 cas
switch (eval('prix'+an2+type+'["distribution"]')) {
	case "en ligne":
	// taille
	var coef=1;
	if (typeof(eval('date'+an2+pdat+'["explode"]'))!="undefined")
		{
		if(eval('date'+an2+pdat+'["explode"]')){coef=2;}
		if(eval('date'+an2+pdat+'["mirroir"]')){mirroir=1;}
		}
	nbcoul=eval('date'+an2+pdat+'["début"].length');
	nbcol=(coef*nbcoul)+1;
	nblign=eval('prix'+an2+type+'["type"].length')+1;
	tableau[0] = new Array()
	tableau[0][0] = eval('prix'+an2+type+'["angle"]["'+lang+'"]');
	
	if (coef==2){//on ne considère que le cas des périodes en miroir
		// ligne 0
		for (i=1;i<parseInt((nbcol+1)/2);i++)
			{
			temp="";
			idat=0;
			temp+=eval('date'+an2+pdat+'["début"]['+(i-1)+']['+idat+']')+eval('mot'+lang)+eval('date'+an2+pdat+'["fin"]['+(i-1)+']['+idat+']');
			tableau[0][i]=temp;
			}
		for (i=parseInt((nbcol+1)/2);i<nbcol;i++)
			{
			temp="";
			idat=1;
			if(typeof(eval('date'+an2+pdat+'["début"]['+(nbcol-i-1)+']['+idat+']'))!="undefined")
				{temp+=eval('date'+an2+pdat+'["début"]['+(nbcol-i-1)+']['+idat+']')+eval('mot'+lang)+eval('date'+an2+pdat+'["fin"]['+(nbcol-i-1)+']['+idat+']');
				tableau[0][i-suppr]=temp;
				}
			else suppr++;
			}
		}
	else{
		// ligne 0
		for (i=1;i<nbcol;i++)
			{
			temp="";
			nbdat=eval('date'+an2+pdat+'["début"]['+(i-1)+'].length');
			for(idat=0;idat<nbdat;idat++)
				{
				if (idat==0){temp+=eval('date'+an2+pdat+'["début"]['+(i-1)+']['+idat+']')+eval('mot'+lang)+eval('date'+an2+pdat+'["fin"]['+(i-1)+']['+idat+']');}
				else{temp+='<br></br>'+eval('date'+an2+pdat+'["début"]['+(i-1)+']['+idat+']')+eval('mot'+lang)+eval('date'+an2+pdat+'["fin"]['+(i-1)+']['+idat+']');}
				}
			tableau[0][i]=temp;
			}
		}
		
	//reste
	for (i=1;i<nblign;i++)
		{
		tableau[i] = new Array()
		for (j=0;j<nbcol;j++)
			{
			if (j==0)
				{//colonne 0
				tableau[i][j]=eval('prix'+an2+type+'["type"]['+(i-1)+']["'+lang+'"]');
				}
			else
				{//reste
				if(mirroir&&!(j<(nbcol+1)/2)){
					if(typeof(eval('prix'+an2+type+'["type"]['+(i-1)+']['+(nbcol-j-1)+']'))!="undefined")
						{
						tableau[i][j]=eval('prix'+an2+type+'["type"]['+(i-1)+']['+(nbcol-j-1)+']');
						}
					else{}
					}
				else{
					tableau[i][j]=eval('prix'+an2+type+'["type"]['+(i-1)+']['+(j-1)+']');
					}
				}
			}
		}
	break;

	case "en colonne":
	// taille
	var coef=1;
	nbcol=eval('prix'+an2+type+'["type"].length')+1;
	if (typeof(eval('date'+an2+pdat+'["explode"]'))!="undefined")
		{
		if(eval('date'+an2+pdat+'["explode"]')){coef=2;}
		if(eval('date'+an2+pdat+'["mirroir"]')){mirroir=1;}
		}
	nbcoul=eval('date'+an2+pdat+'["début"].length');
	//nblign=(coef*nbcoul)+1; //2*5+1=11
	//nblign=(coef*nbcoul)+(parseInt(eval('date'+an2+pdat+'["début"]['+(nbcoul-1)+'].length'))-1); 
	nblign=(coef*(nbcoul-1))+(parseInt(eval('date'+an2+pdat+'["début"]['+(nbcoul-1)+'].length')))+1;
	//alert('coef:'+coef+'; nbcoul:'+nbcoul+'; nblign:'+nblign+'; suppr:'+suppr);
			
	tableau[0] = new Array()
	tableau[0][0] = eval('prix'+an2+type+'["angle"]["'+lang+'"]');
	// ligne 0
	for (i=1;i<nbcol;i++)
		{
		tableau[0][i]=eval('prix'+an2+type+'["type"]['+(i-1)+']["'+lang+'"]');
		}
	//reste
	if(coef==2)
	{
		for (i=1;i<parseInt((nblign+1)/2);i++) // lignes de 1 à 5
		{
			tableau[i] = new Array()
			for (j=0;j<nbcol;j++)
				{
				if (j==0)
					{//colonne 0
					temp=""; 
					idat=0;
					temp+=eval('date'+an2+pdat+'["début"]['+(i-1)+']['+idat+']')+eval('mot'+lang)+eval('date'+an2+pdat+'["fin"]['+(i-1)+']['+idat+']');
					tableau[i][j]=temp;
					}
				else
					{//reste
					tableau[i][j]=eval('prix'+an2+type+'["type"]['+(j-1)+']['+(i-1)+']');
					}
				}
		}
		idat=1;
		for (i=parseInt((nblign+1)/2);i<nblign;i++) // lignes de 6 à  10
		{
			tableau[i] = new Array()
			for (j=0;j<nbcol;j++) //0 à 3
			{
				if(mirroir&&typeof(eval('date'+an2+pdat+'["début"]['+(nblign-i-1)+']['+idat+']'))!="undefined") // 11-6-1=4 ; 11-7-1=3
					{
					temp="";
					nbdat=eval('date'+an2+pdat+'["début"]['+(nblign-i-1)+'].length');
					if (j==0)
						{//colonne 0
						temp+=eval('date'+an2+pdat+'["début"]['+(nblign-i-1)+']['+idat+']')+eval('mot'+lang)+eval('date'+an2+pdat+'["fin"]['+(nblign-i-1)+']['+idat+']');
						tableau[i-suppr][0]=temp;
						}
					else
						{//reste
						tableau[i-suppr][j]=eval('prix'+an2+type+'["type"]['+(j-1)+']['+(nblign-i-1-suppr)+']');//DEBUG: enlever -suppr voire nblign- si marche pas
						}
					}
				else if(mirroir==0&&typeof(eval('date'+an2+pdat+'["début"]['+(nblign-i-1)+']['+idat+']'))!="undefined")
					{
					temp="";
					nbdat=eval('date'+an2+pdat+'["début"]['+(nblign-i-1)+'].length');
					if (j==0)
						{//colonne 0
						temp+=eval('date'+an2+pdat+'["début"]['+(nblign-i-1)+']['+idat+']')+eval('mot'+lang)+eval('date'+an2+pdat+'["fin"]['+(nblign-i-1)+']['+idat+']');
						tableau[i-suppr][0]=temp;
						}
					else{
						tableau[i-suppr][j]=eval('prix'+an2+type+'["type"]['+(j-1)+']['+(i-1-suppr)+']');
						}
					}
				else if(mirroir==0&&typeof(eval('date'+an2+pdat+'["début"]['+(nblign-i-1)+'][0]'))!="undefined")
					{
					temp="";
					nbdat=eval('date'+an2+pdat+'["début"]['+(nblign-i-1)+'].length');
					if (j==0)
						{//colonne 0
						temp+=eval('date'+an2+pdat+'["début"]['+(nblign-i-1)+'][0]')+eval('mot'+lang)+eval('date'+an2+pdat+'["fin"]['+(nblign-i-1)+'][0]');
						tableau[i-suppr][0]=temp;
						}
					else{
						tableau[i-suppr][j]=eval('prix'+an2+type+'["type"]['+(j-1)+']['+(i-1-suppr)+']');
						}
					}
				else {suppr++;break;}	
			}	
		}
		//alert(typeof(eval('date'+an2+pdat+'["début"][4][1]')));
		//alert("size-1:"+(tableau.length-1)+"; last line:"+tableau[tableau.length-1][0]+";nblign="+nblign);
		break;
	}
	else{
		for (i=1;i<nblign;i++)
			{
			tableau[i] = new Array()
			for (j=0;j<nbcol;j++)
				{
				if (j==0)
					{//colonne 0
					temp="";
					nbdat=eval('date'+an2+pdat+'["début"]['+(i-1)+'].length');
					for(idat=0;idat<nbdat;idat++)
						{
						if (idat==0){temp+=eval('date'+an2+pdat+'["début"]['+(i-1)+']['+idat+']')+eval('mot'+lang)+eval('date'+an2+pdat+'["fin"]['+(i-1)+']['+idat+']');}
						else{temp+='<br></br>'+eval('date'+an2+pdat+'["début"]['+(i-1)+']['+idat+']')+eval('mot'+lang)+eval('date'+an2+pdat+'["fin"]['+(i-1)+']['+idat+']');}
						}
					tableau[i][j]=temp;
					}
				else
					{//reste
					tableau[i][j]=eval('prix'+an2+type+'["type"]['+(j-1)+']['+(i-1)+']');
					}
				}
			}
			break;
		}

	default: 
	tableau[0]="Erreur: pas d'indication de distribution";
	break;
}
if(!arcenciel){nbcoul=-1;}


//inserts:duplication des cases autours
var poslign,poscol,largeur,hauteur,inscol=false;
for(i=0;i<eval('prix'+an2+type+'["inserts"].length');i++)
{
	largeur=parseInt(eval('prix'+an2+type+'["inserts"]['+i+']["pan"].substring(0,2)'));
	hauteur=parseInt(eval('prix'+an2+type+'["inserts"]['+i+']["pan"].substring(3,5)'));
	poslign=eval('prix'+an2+type+'["inserts"]['+i+']["poslign"]');
	poscol=eval('prix'+an2+type+'["inserts"]['+i+']["poscol"]');
	if((poslign==0)&&(poscol==0)){alert('Insert dans l\'angle');}
	else
	{//décale tout puis rempli les cases avec
		if ((largeur>1)&&(hauteur==1)){//insert ligne
		{
			if (tableau.length==poslign)
			{
				var dect;
				tableau[poslign] = new Array();
				for(dect=0;dect<ins;dect++){
					tableau[poslign][dect]=tableau[poslign-1][dect];
				}
				//if(poscol+largeur)
				for(dect=(poscol+largeur);dect<tableau[poslign-1].length;dect++){
					tableau[poslign][dect]=tableau[poslign-1][dect];
				}
			}
			else
				decalbas(tableau,poslign);
		}
			for(ins=poscol;ins<(poscol+largeur);ins++){
				tableau[poslign][ins] = new Array();
				tableau[poslign][ins]["contenu"]=eval('prix'+an2+type+'["inserts"]['+i+']["'+lang+'"]');
				tableau[poslign][ins]["style"]=eval('prix'+an2+type+'["inserts"]['+i+']["style"]');
				}
		}
		else if ((largeur==1)&&(hauteur>1)){//insert colonne
			inscol=true;
		decaldroite(tableau,poscol);
		for(ins=poslign;ins<(poslign+hauteur);ins++){
			tableau[ins][poscol]=new Array()
			tableau[ins][poscol]["contenu"]=eval('prix'+an2+type+'["inserts"]['+i+']["'+lang+'"]');
			tableau[ins][poscol]["style"]=eval('prix'+an2+type+'["inserts"]['+i+']["style"]');
			}
		}
	else{alert('Insert fin SVP');}//format incorrect
	}
}


//on gère les fondus lors de la création
lineinsertion=false;
if (((lang!="fr")&&(lang!="de")&&(lang!="en")&&(lang!="dan")&&(lang!="hol"))||isNaN(an2)){document.write("erreur d'argument");}
else{
if (typeof styletab == "undefined") {styletab=' ';}//pour éviter de faire n'imp si elle existe pas
document.write('<table class="texte" align="'+talign+'" border='+border+' cellpadding='+cellpadding+' cellspacing='+cellspacing+' style="'+styletab+'" width="'+tailpourcent+'">');
//taille
nblign=tableau.length;
nbcol=tableau[0].length;
jcouleur=0;icouleur=0;
lineinsertion=false;
if(eval('date'+an2+pdat+'["arcenciel"]')=="centré")
	mirroir=1;

for (i=0;i<nblign;i++) //i:lignes
	{
	document.write('<tr align="center">');
	jcouleur=0;
	lineinsertion=false;
	for (j=0;j<nbcol;j++)//j:colonnes
		{
		//fusions
		fusions="";
		couleurs="";
		if(typeof(tableau[i][j])!="undefined")
			{
			if((tableau[i][j]==false)&&(typeof(tableau[i][j]["contenu"])=="undefined")){
				if(!inscol){jcouleur++;}
				continue;}
			if(j<(nbcol-1)){
				if((typeof(tableau[i][j]["contenu"])!="undefined")&&(typeof(tableau[i][j+1]["contenu"])!="undefined"))
					{
					temp=(tableau[i][j]["contenu"]==tableau[i][j+1]["contenu"]);
					}
				else{temp=(tableau[i][j]==tableau[i][j+1]);}
				if(temp){//colspan
					insi=1;
					temp=j+1;
					if(typeof(tableau[i][j]["contenu"])!="undefined"){
						while((typeof(tableau[i][temp]["contenu"])!="undefined")&&(tableau[i][j]["contenu"]==tableau[i][temp]["contenu"])&&(temp<nbcol)){
						insi++;
						if(fusioncel){tableau[i][temp]=false;}
						temp++;
						if(!(temp<nbcol)){break;}
						}}
					else{while((tableau[i][j]==tableau[i][temp])&&(temp<nbcol)){
						insi++;
						if(fusioncel){tableau[i][temp]=false;}
						temp++;
						if(!(temp<nbcol)){break;}
						}}
					if(fusioncel){fusions=' colspan='+insi+' ';}
					}
				}
			if(i<(nblign-1))
				{
				//pas dernière ligne
				if((typeof(tableau[i][j]["contenu"])!="undefined")&&(typeof(tableau[i+1][j]["contenu"])!="undefined"))
					{
					temp=(tableau[i][j]["contenu"]==tableau[i+1][j]["contenu"]);
					}
				else{temp=(tableau[i][j]==tableau[i+1][j]);}
				if(temp){//rowspan
					insj=1;
					temp=parseInt(i+1);
					if(typeof(tableau[i][j]["contenu"])!="undefined"){
						while((typeof(tableau[temp][j]["contenu"])!="undefined")&&(tableau[i][j]["contenu"]==tableau[temp][j]["contenu"])&&(temp<nblign)){
						insj++;
						if(fusioncel){tableau[temp][j]=false;}
						temp++;
						if(!(temp<nblign)){break;}
						}}
					else{while((tableau[i][j]==tableau[temp][j])&&(temp<nblign)){
						insj++;
						if(fusioncel){tableau[temp][j]=false;}
						temp++;
						if(!(temp<nblign)){break;}
						}}
					if(fusioncel){fusions=' rowspan='+insj+' ';}
					}
				}

			if(typeof(tableau[i][j]["style"])!="undefined")
				{//insert
				temp=false;
					if((i>0)&&(i<(nblign-1))){temp=!((typeof(tableau[i-1][j]["style"])!="undefined")||(typeof(tableau[i+1][j]["style"])!="undefined")||(tableau[i+1][j]==false));}
					else if (i==0){temp=(typeof(tableau[i][j]["style"])!="undefined");}
					else if (i==(nblign-1))
						{
						if (suppr==0) temp=(typeof(tableau[i-1][j]["style"])!="undefined");
						}
					else {document.write("erreur insert");}

				
				//cellule insert
				couleurs+=tableau[i][j]["style"];
				document.write('<td ');
				document.write('style="'+couleurs+'"');
				document.write(fusions);
				document.write('>');
				document.write(tableau[i][j]["contenu"]);
				document.write('</td>');
				if(temp){//insert ligne
					lineinsertion=true;lineinsertion2=true;
					}
				//insert colonne
				if(lineinsertion||lineinsertion2){
					jcouleur++;
					}
				}
			else{//cellule normale
				couleurs+='background-color:'+calcouleur(eval('prix'+an2+type+'["distribution"]'),icouleur,jcouleur,nbcoul,mirroir,suppr)+';';
				if((jcouleur==0)||(icouleur==0)){couleurs+='font-weight: bold;';}
				jcouleur++;
				document.write('<td ');
				document.write('style="'+couleurs+'"');
				document.write(fusions);
				document.write('>');
				document.write(tableau[i][j]);
				document.write('</td>');
				}
			}
		}
	document.write('</tr>');
	if(!lineinsertion){icouleur++;lineinsertion2=false;}
	}
document.write('</table>');
}
}
}

function decalbas(tablebas,ligne)
{
var indice,taill,jcol,tempc;
taill=tablebas[0].length;
indice=tablebas.length;
tablebas[indice]=new Array()
//départ bas->ligne i
while(indice>ligne){
	for(jcol=0;jcol<taill;jcol++){
		//alert("jcol:"+jcol+"; indice: "+indice+"; taille: "+taill+"; contenu:"+tablebas[8][0]);//0 11 3
		tempc=tablebas[indice-1][jcol].toString();
		tablebas[indice][jcol]=tempc;
		}
	indice--;
	}
}
function decaldroite(tabledroite,colonne)
{
var indice,taill,ilign,tempc;
taill=tabledroite.length;
indice=tabledroite[0].length;
//départvdroite->colonne j
while(indice>colonne){
	for(ilign=0;ilign<taill;ilign++){
		if(typeof(tabledroite[ilign][indice-1])!="undefined")
			{
			tempc=tabledroite[ilign][indice-1].toString();
			tabledroite[ilign][indice]=tempc;
			}
		}
	indice--;
	}
}
function calcouleur(distrib,indx,indy,nbcouleurs,symetrie,centered){
var tempc,tab,coul;
tab=new Array("rgb(216, 255, 178);","rgb(255, 255, 178);","rgb(255, 216, 178);","rgb(255, 216, 178);","rgb(255, 216, 178);")
if(distrib=='en colonne'){}
else if(distrib=='en ligne'){
	tempc=indy;
	indy=indx;
	indx=tempc;
	}
else{alert("erreur de distribution : "+distrib+"!");}
if(indx==0){
	coul="#ffe0ac";
	}
else if(indy==0){
	if(nbcouleurs!=-1){
		if((symetrie>0)&&(indx>nbcouleurs)){
			tab=coulindic((1+2*nbcouleurs-indx-centered),nbcouleurs,0.85);
			coul="rgb("+tab[0]+","+tab[1]+","+tab[2]+")";
			}
		else{
			tab=coulindic(indx,nbcouleurs,0.85);
			coul="rgb("+tab[0]+","+tab[1]+","+tab[2]+")";
			}
		}
	else{
		if((symetrie>0)&&(indx>nbcouleurs)){
			coul=tab[(1+2*nbcouleurs-indx)];
			}
		else{
			coul=tab[indx];
			}
		}
	}
else{
	if(nbcouleurs!=-1){
		if((symetrie>0)&&(indx>nbcouleurs))
			{
			tab=coulindic((1+2*nbcouleurs-indx-centered),nbcouleurs,0.9);
			coul="rgb("+tab[0]+","+tab[1]+","+tab[2]+")";
			}
		else{
			tab=coulindic(indx,nbcouleurs,0.9);
			coul="rgb("+tab[0]+","+tab[1]+","+tab[2]+")";
			}
		}
	else{
		if((symetrie>0)&&(indx>nbcouleurs)){
			coul=tab[(1+2*nbcouleurs-indx)];
			}
		else{
			coul=tab[indx];
			}
		}
	}

return coul;
}
function coulindic(indice,nbcouleur,luminance)
{
var hue,saturation,q,p,tr,tg,tb,colorr,colorg,colorb,result;
result=new Array()//r,g,b
t=new Array()
saturation=1;//teinte  0 à 120 (rouge-vert) & saturation 100%,algorithme Wikipedia
hue=(120/(nbcouleur+1))*(nbcouleur+1-indice);

if(luminance<0.5){q=luminance*(1+saturation);}
else if(luminance>=0.5){q=luminance+saturation-(luminance*saturation);}
else{alert("erreur de couleur");}

p=2*luminance-q;
hue=hue/360;

for(var it=0;it<3;it++){
t[it]=hue+((1-it)/3);//r,g,b
if(t[it]<0){t[it]+=1;}
else if(t[it]>1){t[it]-=1;}
else{}

if(t[it]<(1/6)){result[it]=p+((q-p)*6*t[it]);}
else if((t[it]>=(1/6))&&(t[it]<(1/2))){result[it]=q;}
else if((t[it]>=(1/2))&&(t[it]<(2/3))){result[it]=p+((q-p)*6*(2/3-t[it]));}
else{result[it]=p;}
//r,g,b x255
result[it]=parseInt(255*result[it]);
}
return result;
}
