// JavaScript Document

var offsetfrommouse=[0,0]; //image x,y offsets from cursor position in pixels. Enter 0,0 for no offset 50,-25 default
var displayduration=0; //duration in seconds image should remain visible. 0 for always.
var prev_h;
var prev_w;


function getprevobj(o){

 if (document.getElementById)
 	return document.getElementById(o).style
 else if (document.all)
 	return document.all.o.style
}


function getprevobjnostyle(o){

 if (document.getElementById)
 	return document.getElementById(o)
 else if (document.all)
 	return document.all.o
}


function truebody(){
 return (!window.opera && document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}


//**********************************************************************************************************
//	Fonctions d'affichage photo pour image 150px X 200px
//  imagesrc = nom de l'image
//  imagetype = indique les parametres a utiliser pour l'image (taille, repertoire, DIV)
//  !!!! NE PAS OUBLIER QUE CE CODE EST EN RELATION AVEC LES BALISES DIV CACHEES DE LA PAGE INDEX.PHP !!!!
//**********************************************************************************************************
// Definition du premier type (album photos)
var typeImage0 = new Array;
typeImage0["largeur"] = 300;
typeImage0["hauteur"] = 225;
typeImage0["repertoire"] = "photos_albums/";	// Sous-repertoire du repertoire images/
typeImage0["container"] = "previewcontainer";	// ID de la balise DIV de la page index.php

// Definition du deuxieme type (personnel)
var typeImage1 = new Array;
typeImage1["largeur"] = 200;
typeImage1["hauteur"] = 150;
typeImage1["repertoire"] = "personnel/";		// Sous-repertoire du repertoire images/
typeImage1["container"] = "previewcontainer2";	// ID de la balise DIV de la page index.php

// Definition du tableau contenant tous les types
var typesImage = new Array;
typesImage[0] = typeImage0;
typesImage[1] = typeImage1;

// Variable globale contenant le type d'image demande (parametre 'imagetype')
var currentImageType = 0;


// Fonction qui affiche le DIV cache contenant l'image specifiee
function showprev(imagesrc, imagetype){

	// On met le type d'image en memoire pour utilisation dans la fonction d'evenement 'followmouse'
	currentImageType = imagetype;

	newHTML = '<img width="' + typesImage[currentImageType]["largeur"] + '" height="' + typesImage[currentImageType]["hauteur"] + '" src="images/' + typesImage[currentImageType]["repertoire"] + imagesrc + '" border="0">';

	getprevobjnostyle(typesImage[currentImageType]["container"]).innerHTML = newHTML;
	setTimeout('getprevobj(typesImage[currentImageType]["container"]).visibility="visible"',400);
	document.onmousemove=followmouse;

}

// Fonction qui cache le DIV cache affiche precedemment
function hideprev(imagetype){

	getprevobj(typesImage[imagetype]["container"]).visibility="hidden";
	getprevobj(typesImage[imagetype]["container"]).left="-1500px";
	document.onmousemove="";
}

// Fonction qui permet l'affichage tant que le curseur est sur l'image d'origine
function followmouse(e){

	var xcoord=offsetfrommouse[0];
	var ycoord=offsetfrommouse[1];
	
	
	var flip_loc_x = 310; // When we get to loc clientWidth - 310 then move the preview to the left of the cursor
	var left_space = 0; // close the gap when we move the preview to the left of the cursor
	var flip_loc_y;
	var scrolltop=0;
	
	
	if(getprevobjnostyle('contentTable').scrollTop) {
		scrolltop=getprevobjnostyle('contentTable').scrollTop;
	} else {
		scrolltop=truebody().scrollTop;
	}

	flip_loc_y = 0;
	
	var docwidth = document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth-15;
	var docheight = document.all? truebody().clientHeight : window.innerHeight;
	
	if (typeof e != "undefined"){

		if (docwidth - e.pageX < flip_loc_x){
			xcoord = e.pageX - flip_loc_x - offsetfrommouse[0] + left_space; // Move to the left side of the cursor
		} else {
			xcoord += e.pageX;
		}

		if (docheight - e.pageY < (prev_h + flip_loc_y)){
			ycoord += e.pageY - Math.max(0,(flip_loc_y + prev_h + e.pageY - docheight - scrolltop));
		} else {
			ycoord += e.pageY;
		}
		
	} else if (typeof window.event != "undefined"){

		if (docwidth - event.clientX < flip_loc_x){ // changed from 300
			xcoord = event.clientX + truebody().scrollLeft - flip_loc_x + left_space; // changed from 286 Move to the left side of the cursor
		} else {
			xcoord += truebody().scrollLeft+event.clientX
		}

		if (docheight - event.clientY < (prev_h + flip_loc_y)){
			ycoord += event.clientY + scrolltop - Math.max(0,(flip_loc_y + prev_h + event.clientY - docheight));
		} else {
			ycoord += scrolltop + event.clientY;
		}
	}
	
	//var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth-15;
	//var docheight=document.all? Math.max(truebody().scrollHeight, truebody().clientHeight) : Math.max(document.body.offsetHeight, window.innerHeight);

	getprevobj(typesImage[currentImageType]["container"]).left = xcoord+"px";
	getprevobj(typesImage[currentImageType]["container"]).top = ycoord+"px";

}

