var ok = true;
var mouv;
var img;
var opa = 100;
var new_toph;
var old_color = 'f2f3f8';
var new_color;
var duree = 20;
numero = 0;
opa_go_img = 100;
opa_go_a = 0;
var go_trans;
vignette_border_on = 4;
vignette_border_of = 12;
var lien_base;

function charge(p,lien) {
	old_color = tab[p][1];
	numero = p;
	lien_base = lien;
}

// selection de la prochaine photo à afficher
function suivante(p) {
	
	if(ok) {
		
		ok = false;
		
		// on recule la vignnette en cours
		initialise_vignette(numero);
		
		// on passe à l'image suivante
		if(p=='suivante') {
			if(numero<(tab.length-1)) {
				numero++;
			} else {
				numero=0;
			}
		} else if(p=='precedente') {
			if(numero>0) {
				numero--;
			} else {
				numero = tab.length-1;
			}
		} else {
			numero = p;
		}
		grande(tab[numero][0]+'.jpg',tab[numero][1]);
		
		// on avance la vignette
		avance_vignette(numero);
		
	}
	
}

// avance vignette
function avance_vignette(p) {
	vignette_border_on+=1;
	dd('vignette'+p).style.paddingLeft = vignette_border_on+'px';
	dd('vignette'+p).style.paddingRight = vignette_border_on+'px';
	if(vignette_border_on<12) {
		setTimeout("avance_vignette("+p+")",25);
	} else {
		vignette_border_on = 4;
	}
}
function initialise_vignette(p1) {
	vignette_border_of-=1;
	dd('vignette'+p1).style.paddingLeft = vignette_border_of+'px';
	dd('vignette'+p1).style.paddingRight = vignette_border_of+'px';
	if(vignette_border_of>4) {
		setTimeout("initialise_vignette("+p1+")",25);
	} else {
		vignette_border_of = 12;
	}
}

// on lance la transition
function grande(photo,color) {
	clearTimeout(mouv);
	degrade('of');
	new_toph = photo;
	new_color = color;
	dd('cont').innerHTML = '';
}

// degrade en fondu des images
function degrade(type) {
	if(type=='on') {
		if(opa<100) {
			opa+=10;
			set_opacite('photo_grande',opa);
			mouv = setTimeout("degrade('on')",25);
		} else {
			ok = true;
		}
	}
	if(type=='of') {
		if(opa>0) {
			opa-=10;
			set_opacite('photo_grande',opa);
			mouv = setTimeout("degrade('of')",25);
		} else {
			change_couleur();
			img = new Image();
			img.src = lien_base+'image/grande/'+new_toph;
			//document.getElementById('photo_grande').src = lien_base+'image/grande/'+new_toph;
		}
	}
	
}
function set_opacite(c,opa) {
	if(document.all && !window.opera){
		dd(c).style.filter = 'alpha(opacity='+opa+');';	
	} else{
		dd(c).style.opacity = opa/100;
	}
}

// changement de couleur
function change_couleur() {
	clearTimeout(mouv);
	tab_couleur_ancienne = new Array();
	erreur=0;
	
	for(i=0;i<3;i++) {
		c_anc = hex2rvb(old_color.substr((i*2),2),i);
		c_nou = hex2rvb(new_color.substr((i*2),2),i);
		diff = c_nou-c_anc;
		c_anc += diff/duree;
		
		tab_couleur_ancienne[i] = c_anc;
	}
	
	duree--;
	
	if(duree>0) {
		old_color = rvb2hex(tab_couleur_ancienne[0],tab_couleur_ancienne[1],tab_couleur_ancienne[2])
		
		dd('bg').style.backgroundColor = '#'+old_color;
		mouv = setTimeout('change_couleur()',25);
	} else {
		dd('bg').style.backgroundColor = '#'+new_color;
		duree = 20;
		if(img.complete) {
			document.getElementById('photo_grande').src = img.src;
			dd('wait').style.display = 'none';
			degrade('on');
			dd('cont').innerHTML = '<a href="http://'+tab[numero][2]+'" target="_blank">'+tab[numero][3]+'</a>';
		} else {
			dd('wait').style.display = 'block';
			change_couleur();
		}
	}
}
function rvb2hex(r,g,b) {
	var hexVal = function(n) {
		var data = "0123456789abcdef";
		if (n==null) return "00";
		n=parseInt(n); 
		if (n==0 || isNaN(n)) return "00";
		n=Math.round(Math.min(Math.max(0,n),255));
		return data.charAt((n-n%16)/16) + data.charAt(n%16);
	}
	return hexVal(r)+hexVal(g)+hexVal(b);
}
function hex2rvb(h,n) {
	return parseInt(h,16);
}

// acceder au site
function go_preview() {
	dd('go_a').href = 'http://'+tab[numero][2];
	dd('go_a').target = '_blank';
}
function go() {
	if(ok) {
		clearTimeout(go_trans);
		opa_go_img -= 8;
		opa_go_a += 10;
		set_opacite('photo_grande',opa_go_img);
		set_opacite('go',opa_go_a);
		if(opa_go_a<100) {
			go_trans = setTimeout("go()",25);
		}
	}
}
function out() {
	if(ok) {
		clearTimeout(go_trans);
		opa_go_img += 8;
		opa_go_a -= 10;
		set_opacite('photo_grande',opa_go_img);
		set_opacite('go',opa_go_a);
		if(opa_go_a>0) {
			go_trans = setTimeout("out()",25);
		}
	}
}

function dd(c) {
	return document.getElementById(c);
}

