function ecrirecookie(name, value)
{
	//nouvel objet date
	var aujourdhui = new Date() ;
	 
	//nouvel objet date
	var expdate = new Date() ;
	  
	//un an à partir d'aujourd'hui le cookie ne s'efface jamais
	expdate.setTime( aujourdhui.getTime() + ( 365*24*60*60*1000 ) ) ;

	var argv=ecrirecookie.arguments;
	var argc=ecrirecookie.arguments.length;
	var path=(argc > 3) ? argv[3] : null;
	var domain=(argc > 4) ? argv[4] : null;
	var secure=(argc > 5) ? argv[5] : false;
	
	document.cookie=name+"="+escape(value)+
	((expdate==null) ? "" : ("; expires="+expdate.toGMTString()))+
	((path==null) ? "" : ("; path="+path))+
	((domain==null) ? "" : ("; domain=appiimmo.fr"))+
	((secure==true) ? "; secure" : "");

}

function arguments_cookie(offset)
{
  var endstr=document.cookie.indexOf (";", offset);
  if (endstr==-1) endstr=document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr)); 
}

function lirecookie(nom)
{
  var arg=nom+"=";
  var alen=arg.length;
  var clen=document.cookie.length;
  var i=0;
  while (i<clen){
    var j=i+alen;
    if (document.cookie.substring(i, j)==arg)
       return arguments_cookie(j);
    i=document.cookie.indexOf(" ",i)+1;
    if (i==0) break;
  }
  return null; 
}

function is_present(name,item)
{
	var cookie_lu = lirecookie(name);
	if(cookie_lu == null) cookie_lu = "0";
	
	var tab_selections = cookie_lu.split(',');
	cookie_lu = tab_selections.join(",");
	//alert(cookie_lu.IndexOf(item));
}

function ajouter_selection(item)
{
	var cookie_lu = lirecookie('selections');
	if(cookie_lu == null) cookie_lu = "0";
	
	var tab_selections = cookie_lu.split(',');
	
	tab_selections.push(item);
	
	//alert("before:" + tab_selections.length);
	tab_selections = supprimer_doublons(tab_selections);
	//alert("after:" + tab_selections.length);
	nbannonces = tab_selections.length - 1;
	
	cookie_lu = tab_selections.join(",");
	
	ecrirecookie('selections', cookie_lu);
}

function supprimer_doublons(TabInit){
NvTab= new Array();
var q=0;
var LnChaine= TabInit.length;
 for(x=0;x<LnChaine;x++)
    {
    for(i=0;i<LnChaine;i++)
        {
        if(TabInit[x]==  TabInit[i] && x!=i) TabInit[i]='faux';
        }
    if(TabInit[x]!='faux'){  NvTab[q] = TabInit[x]; q++}
    }
return NvTab;
}

function ajouter_visite(item)
{
	var cookie_lu = lirecookie('visites');
	if(cookie_lu == null) cookie_lu = "0";
	
	var tab_visites = cookie_lu.split(',');
	
	tab_visites.push(item);
	cookie_lu = tab_visites.join(",");
	
	ecrirecookie('visites', cookie_lu);
}

//Supprime un element du tableau
Array.prototype.removeItems = function(itemsToRemove) {

    if (!/Array/.test(itemsToRemove.constructor)) {
        itemsToRemove = [ itemsToRemove ];
    }

    var j;
    for (var i = 0; i < itemsToRemove.length; i++) {
        j = 0;
        while (j < this.length) {
            if (this[j] == itemsToRemove[i]) {
                this.splice(j, 1);
            } else {
                j++;
            }
        }
    }
}

function retirer_selection(reference)
{
	var cookie_lu = lirecookie('selections');
	if(cookie_lu != null)
	{
		var tab_selections = cookie_lu.split(',');
		nbannonces = tab_selections.length;
		
		tab_selections.removeItems(reference);
		cookie_lu = tab_selections.join(",");

		ecrirecookie('selections', cookie_lu);

		nbannonces -=2; // -1 pour le 0 du debut du cookie // -1 pour le retrait de cette annonce
	}
}


function goto_annonce(reference)
{
	ajouter_visite(reference);
	window.location.href="visualiser.php?reference="+reference;
}


function effacer_visites()
{
	var path;
	var domaine;
		
	//Effacement du cookie
	document.cookie = "visites" + "=" + ((path) ? "; path=" + path : "") + ((domaine) ? "; domain=" + domaine : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT";	

	//Rechargement de la page pour afficher le bon etat initial des annonces.
	window.location.reload();
	
}

function effacer_selections()
{
	var path;
	var domaine;
		
	//Effacement du cookie
	document.cookie = "selections" + "=" + ((path) ? "; path=" + path : "") + ((domaine) ? "; domain=" + domaine : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT";

	nbannonces = 0;
	
	//Rechargement de la page pour afficher le bon etat initial des annonces.
	window.location.reload();
	
}


//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ANIMATION SELECTIONS xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

var shopping_cart = 0;
var shopping_cart_titre = 0;
var taille = 0;

//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
//MattDaft - motioncoredesign.com
//Variables d'animation avec un mouvement physique realiste
//Thank you Apple Grapher !!!
var movespeed = 10; //Good value : 10 //small : fast   - big : slow
var module = 0.3; //Good value : 0.5 //small : strong   - big : smooth
var decal = 10; //MAXIMUM 22 // Delay before to start
var numondul = 1; //Good value : 6 //How many ondul before to stop
var time_max = 40;
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

//**** Variables annexes ****

//Compteur incremente a chaque resultat de calcul d'animation : il represente le 'x' de la fonction y=f(x) de l'animation
var rampe = 0;

//Positionne a 1 pendant l'animation et verrouille son bon deroulement : permet d'avoir un resultat visuellement propre
var move = 0;

// Indique l'etat de la box selection
// 0 : la box de selection est reduite
// 1 : la box est developpee (plus ou moins grand selon le nombre d'element)
var expand = 0;

// Indicateur reprensentant le sens de deplacement de la box
// 0 : la box est en train de se reduire
// 1 : la box est en train de s'agrandir
var g_sens;

// Instance du timeout de l'animation
var settimeoutaction;

// Redimensionne un ou plusieurs div en largeur &agrave; partir de 'start' pixels jusqu'a 'end' pixels en precisant le sens de deplacement
function redimensionner_div(start,end,sens)
{
	g_sens = sens;
	move = 1;
	
	var speed = 20; //10

	if(sens == 1) rampe += 2; //Generate ramp //1
	else rampe -= 1;
	
	// Don't touch this !!!
	// C'est la fonction coeur de l'animation developpee grace a Apple Grapher et par MattDaft - motioncoredesign.com
	taille = (Math.sin((rampe-movespeed-decal)/movespeed)*(Math.exp(-((rampe-movespeed-decal)/(module*movespeed))))+1)*end;

	// On scroll si trop d'elements ou trop larges
	if((nbannonces > 4) && (taille > 900)) shopping_cart.style.overflowX = 'auto';

	// Mets les largeurs des div a jour
	shopping_cart.style.width = taille + 'px';
	shopping_cart_titre.style.width = taille + 12 + 'px';
	
	//Relance le calcul de l'animation si on a pas encore atteind le min ou le max (selon le sens)
	if(((sens == 1) && (rampe <= time_max)) || ((sens != 1) && (rampe>= 20))) settimeoutaction = setTimeout('redimensionner_div(' + start + ',' + end + ',' + sens + ')',speed);
	
	//Sinon on est a la fin de l'animation
	else
	{
		//Fin de l'expansion
		if(sens == 1)
		{
			shopping_cart.style.width = end + 'px';
			shopping_cart_titre.style.width = end + 12 + 'px';

			expand = 1;
			
			//Cas particulier de l'animation rapide lors de l'ajout d'un element
			if(end == 400)
			{
				if(isIE) var settimeout_rempli = setTimeout('morph_div(399,210)',300);
				else var settimeout_rempli = setTimeout('morph_div(399,258)',300);
				move = 1;
			}
		}
		
		//Fin de la reduction
		else
		{
			if(isIE)
			{
				shopping_cart.style.width = start + 47 + 'px';
				shopping_cart_titre.style.width = start + 12 + 47 + 'px';
			}
			else
			{
				shopping_cart.style.width = start + 'px';
				shopping_cart_titre.style.width = start + 12 + 'px';
			}
			

			shopping_cart.style.overflowX = 'hidden';
			expand = 0;
		}
		move = 0;
		//debug = document.getElementById('debug');
		//debug.innerHTML = expand;
	}
}

//Preparer les parametres et le redimensionnement
function morph_div(start,end)
{	
	shopping_cart = document.getElementById('shopping_cart');
	shopping_cart_titre = document.getElementById('shopping_cart_titre');

	clearTimeout(settimeoutaction);
	

		if(start <= end) 
		{
			sens = 1;
			rampe = 18;
			if(isIE){
				shopping_cart.style.width = end + 'px';
				shopping_cart_titre.style.width = end + 12 + 'px';
				shopping_cart.style.overflowX = 'auto';
				expand = 1;
			}
		}
		else
		{
			sens = 0;
			rampe = 40;
			var temp = end;
			end = start;
			start = temp;
			if(isIE){
				shopping_cart.style.width = start + 47 + 'px';
				shopping_cart_titre.style.width = start + 47 + 12 + 'px';
				shopping_cart.style.overflowX = 'hidden';
				expand = 0;
			}
		}
		if(!isIE) redimensionner_div(start,end,sens);
	
}

var x;
var y;
	
var isIE = document.all ? true : false;
document.onmousemove = getMousePosition;
function getMousePosition(ev) {
if (!ev) var ev = window.event;
	if (!isIE)
	{
		x = ev.pageX;
		y = ev.pageY;
	}
	else
	{
		x = ev.clientX + document.body.scrollLeft;
		y = ev.clientY + document.body.scrollTop;
	}
	posX = x;
	posY = y;
    var  pos=Array(posX,posY);
    
	return pos;
}

var aaa = 0;
var bbb = 0;

function testagrandir(){
	var test = document.getElementById('test');
	test.style.width = 700 + 'px';
	//alert("in");
	var divtext = document.getElementById('divtext');
	aaa++;
	divtext.innerHTML = "ONMOUSEOVER : "+aaa;
	divtext.style.color = "#000";
	
	var souris = document.getElementById('souris');
	souris.innerHTML = "Position souris X:"+x+" | Y:"+y;
}

function testreduire(){
	var test = document.getElementById('test');
	test.style.width = 200 + 'px';
	//alert("out");
	var divtext2 = document.getElementById('divtext2');
	bbb++;
	divtext2.innerHTML = "ONMOUSEOUT : "+bbb;
	divtext2.style.color = "#000";
	
	var souris = document.getElementById('souris');
	souris.innerHTML = "Position souris X:"+x+" | Y:"+y;
	souris.style.color = "#000";

}

var debug = 0;
var debug2 = 0;

var taille_mini = 258;
	
var sel_y_mini = 740;
var sel_y_maxi = 985;
var taille_maxi = 300;
	
// Verifie tout les params : si la souris est bien positionnee, les tailles maxi, etc.
// Lance l'anim
function toggle_selections(nb_annonces,mode)
{	
	//debug = document.getElementById('debug');
	//debug.innerHTML = "Position souris X:"+x+" | Y:"+y;
	
	shopping_cart = document.getElementById('shopping_cart');
	shopping_cart_titre = document.getElementById('shopping_cart_titre');
	
	if(mode == 0)
	{
		if(shopping_cart.style.width == "258px") expand = 0;
	}
	
	if(!((expand == 0) && (mode == 0)))
	{

	nb_annonces = nbannonces;
	if(nb_annonces == 0) nb_annonces = 1;

	if(isIE) taille_mini = 210;
	
	if(nb_annonces > 4)
	{
		taille_maxi = 1000;
	}
	else
	{
		taille_maxi = 240 * nb_annonces + 90;
	}
	
	//alert("y:"+y + "| mini :" + sel_y_mini + "| maxi :" + sel_y_maxi);
	
	if((mode == 1) && (expand == 0))
	{
		morph_div(taille_mini,taille_maxi);	
	}
	else
	{
		if((mode == 0) && (expand == 1) && ( (x<100) || (x>taille_maxi) || (y<sel_y_mini) || (y>sel_y_maxi)) && (move == 0))
		{
			// Diminuer
			morph_div(taille_maxi,taille_mini);
		}
	}
	
 }//fin du if
	
}

var nbannonces = 0;

//Permet de lire le cookie de selection du visiteur pour mettre a jour le nombre de selections present dans la box selections
function actualiser_selections()
{
	nbannonces = 0;
	
	var cookie_lu = lirecookie('selections');
	if(cookie_lu == null) cookie_lu = "0";
	
	var tab_selections = cookie_lu.split(',');
	nbannonces = tab_selections.length ;

	nbannonces--; // -1 pour compenser le 0 du debut du cookie qui est vide.
	
	//Verif IE
	//if(isIE)
	//{
	//	document.getElementById('danger').innerHTML = '<br><img src="rw_common/themes/appiimmo/images/danger-trans.gif"><p>Utilisez un autre navigateur que Internet Explorer pour un affichage optimal.</p>';
	//}
}

