//------------------------------------------------------------------------------
//	Nom fichier: website.public.js
//
//	Description : librairie de fonction js spécifie au module  site web
//                 partie public uniquement
//
//
//	19.08.2011	JG	Ajout de PassLost()
//   15.03.2010     PL   Complétion en tête pour maintenance
//------------------------------------------------------------------------------


function PassLost(){
	sUrl = "?dossier_page=accueil&subcmd2=passlost&subcmd=popup&perslangue=&";
	tb_show('',sUrl+"TB_iframe=1&width=600&height=275");

}

var icaddyLock = 0;
var bcaddysetpos = false;

//---------------- Function lockCaddyMenu(iLock) --------------------------------
function MM(e)
{
        var pevent=(document.all ? event:e);


        var iy = document.all ? (pevent.y + document.body.scrollTop):(pevent.pageY);
        var ix = document.all ? (pevent.x + document.body.scrollLeft):(pevent.pageX);

        var p = document.getElementById("caddyMenu");
        if (p)
				{
					if(bcaddysetpos)
					{
						p.style.left =ix+0; p.style.top =iy+0;
					}
					bcaddysetpos=false;
				}
      	//var p = document.getElementById("moverid");
        //if (p) { p.innerHTML="( " + ix + " . " + iy + " )" ;}

        return false;
}

document.onmousemove = MM;




//---------------- Function lockCaddyMenu(iLock) --------------------------------
var pprevcaddy 		= false;
var caddyToHide 	= false;
var bcaddieover   = false;
var bcaddyposupdated   = false;

	function caddyRevive()
	{
		caddyShow(true);
		bcaddieover = true;
	}
	function caddyDie(breal)
	{
		if (!breal && bcaddieover ) return;
	  if (breal)	bcaddieover = false;
		caddyToHide = true;
  	setTimeout('x_caddyDie()',100);
	}
	function x_caddyDie()
	{
		if(caddyToHide) caddyShow(false);
	}
	function caddyShow(bview)
	{
		caddyToHide = false;
		bcaddieover = false;

		if(!bcaddyposupdated) bcaddysetpos=(bview);
		showHiddeObject(bview ? 1:0,'caddyMenu');  bcaddyposupdated  = bview;
	}

//---------------------------------------------- FIN  FUNCTION showHideCaddyMenu


//---------------- Function showHideCaddyMenu(this) --------------------------------


var pprevObject 	= false;
var objectToHide 	= false;

function deferHide()
{
	objectToHide = true;
	setTimeout("x__deferHide()",100);
}

function x__deferHide()
{
	if (objectToHide) showHideCaddyMenu(false,0);
}
				 
function showHideCaddyMenu(object,iAction)
{
  //--- si c pas un object, c peut etre un id qui a été fourni
	var iSobject = is_object(object);
 	if(!iSobject) object = document.getElementById(object);
 	
 	
  objectToHide = false;
	if(!object) object = pprevObject ;
	if(  pprevObject &&    object != pprevObject )
	{          bcaddyposupdated  = false;
	  pprevObject .style.borderBottom = "dashed 2px transparent";
	}
	pprevObject = object;
	if(!pprevObject ) return;
	
	
	
	if(iAction) //on montre le menu
	{

	   
	   
	  //--- vérification des infos à propos des options
	  // s'il sont deja dans le cas ou pas
	  var isOptInCaddy = addOptToCaddy(object,1,true);
	  
	  
	  var caddyInfo 		= document.getElementById('caddyInfo');
    var caddyAction 	= document.getElementById('caddyAction');
		var caddyImg 			= document.getElementById('caddyImg');

		var lst_allcode = pprevObject.getAttribute("caddy");
		
	  if(isOptInCaddy)
	  {
	  	sCaddyinfo   =   "<b>Option présente dans le caddy</b><br>";
      sCaddyAction =   "Retirer l'option du caddy :"
      sCaddyAction+=   "<br><br> Opt: "+lst_allcode;
      sCaddyImg    =   "<IMG STYLE='cursor:pointer;' OnClick='addOptToCaddy(false,1,0);' SRC='/res/website/images/cart_remove.png' TITLE=\"Retirer l'option du caddy\">";

		}
		else
		{
		 	sCaddyinfo =   	"<b>Option absente du caddy</b>";
		 	sCaddyAction =  "Ajouter l'option au caddy :"
		 	sCaddyAction+=   "<br><br> Opt: "+lst_allcode;
      sCaddyImg    =  "<IMG STYLE='cursor:pointer;' OnClick='addOptToCaddy(false,1,0);' SRC='/res/website/images/cart_put.png' TITLE=\"Ajouter l'option au caddy\">";
	  }
	  
	  caddyInfo.innerHTML 	=   sCaddyinfo;
	  caddyAction.innerHTML =   sCaddyAction;
	  caddyImg.innerHTML 		=   sCaddyImg;
	  
	  
	  // objet menu qu'on va devoir manipuler
		var caddyMenu 							 = document.getElementById('caddyMenu');
		 
		 
	  //--- on recupérer la position de l'objet span
   	object.style.borderBottom 	= "dashed 2px lime";
   	//ZZobject.style.position 			= "absolute"; // force la position en absolu temporairement pour recuperr
																				// les coordonnées du span qui tag le ou les options
   	
   	//ZZvar menuPosX = object.offsetLeft * 1;
	  //ZZvar menuPosY = object.offsetTop * 1;
	  
	  //ZZobject.style.position = "relative";  // on remet la position en relative sinon on a des bug
	                                       // au niveau des ligne qui se survoche
	  
	  /*
   	var stext = object.offsetLeft+'---';
   			stext+= object.offsetTop+'---';
   			stext+= object.offsetWidth+'---';
   			stext+= object.offsetHeight+'---';
   			
   			alert(stext);
   */


	//--- on deplace le menu du caddy, on le superpose sur le span en haut à gauche

	    //ZZcaddyMenu.style.left     = menuPosX;
	    //ZZcaddyMenu.style.top      = menuPosY;


	 // on le montre
	 caddyShow(true);
   
	}
	else // on cache
	{
	  object.style.borderBottom = "dashed 2px transparent";
	  

		caddyDie(0);
	}

	//alert(icaddyLock);
	

		
	return;
}

//---------------------------------------------- FIN  FUNCTION showHideCaddyMenu



//------- FUNCTION test---------------------------------------------------------

function test(params1,params2,params3)
{
	alert(pprevObject.getAttribute("caddy"));
	return(true);
}

//----------------------------------------------------- FIN  FUNCTION test

function closeSiteSession()
{
	setCookie("site[sesshashcode]","");
	setCookie("sesshashcode","");
	setCookie("SESSIONKEYFRM","");

	window.location.reload(true);
}

//---------------- Function addOptToCaddy(this) --------------------------------



function addOptToCaddy(object,iAction,iReturnStatusOpt)
{
	//--- si c pas un object, c peut etre un id qui a été fourni
	var iSobject = is_object(object);
 	if(!iSobject) object = document.getElementById(object);
	

	  
	  
	if(!object)  object = pprevObject;
	
	var lst_allcode = object.getAttribute("caddy");
	var tAllcode 		=	lst_allcode.split(';');
	
	//drapeau qui indique si l'opt est dans le caddy
  var isOptInCaddy = 1;
	
	
	//--- Vérification si l'option est dans le caddy ou pas
	for (var iAllcode=0; iAllcode < tAllcode.length; iAllcode ++)
	{
		 allcode 				=  tAllcode[iAllcode];
		 var cookieName =  'caddy[OPT-'+allcode+']';
   	 //alert("Nom du cookie:"+cookieName);
   	 
   	 var moncookie =  getCookie(cookieName);
   	 //alert("Lecture du cookie: "+cookieName+" => ["+moncookie+"]");
   	 
   	 //si un des cookie associé au allotement de l'option n'est pas dans le caddy
   	 // alors on va supprimer l'option entière
   	 if(moncookie == 0) isOptInCaddy = 0;


	}

	//alert("isOptInCaddy :"+isOptInCaddy);
	if(iReturnStatusOpt) return(isOptInCaddy);
	
	//ajout ou suppression des option dans le cas
 	for (var iAllcode=0; iAllcode < tAllcode.length; iAllcode ++)
	{
		 allcode 				=  tAllcode[iAllcode];
		 var cookieName =  'caddy[OPT-'+allcode+']';

		 if(isOptInCaddy)
   	 	setCookie(cookieName,0);
		 else
		  setCookie(cookieName,1);
	}


	// confirmation d'ajout ou de suppression des opt dans le caddy
  if(isOptInCaddy)
  {
		alert("Option retirée du caddy");
	}
	else
	{
	  alert("Option ajoutée au caddy");
  }

  window.location.reload(true);

}

//-------------------------------------------------- FIN  FUNCTION addOptToCaddy




//--------------------- Gestion des cookies ------------------------------------

function gcv(of){
  var es=document.cookie.indexOf(";",of);if (es==-1)es=document.cookie.length;
  return unescape(document.cookie.substring(of, es));
}

function getCookie(k){
 var pm,pl,cl,i,j;
 pm=k+"=";
 pl=pm.length;
 cl=document.cookie.length;
 i=0;
 while(i<cl){
  j=i+pl;
  if(document.cookie.substring(i,j)==pm)return gcv(j);
  i= document.cookie.indexOf(" ",i)+1;
  if(!i)break;
 }
  return "";
}

function setCookie(k,v){
 var expires = new Date (2010,11,11,1,1,1);
 document.cookie = k+"="+escape(v)+"; expires=" + expires.toGMTString()
}

//------------------------------------------------------ FIN GESTION DES COOKIES


function is_object( mixed_var ){
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Legaev Andrey
    // +   improved by: Michael White (http://getsprink.com)
    // *     example 1: is_object('23');
    // *     returns 1: false
    // *     example 2: is_object({foo: 'bar'});
    // *     returns 2: true
    // *     example 3: is_object(null);
    // *     returns 3: false

    if(mixed_var instanceof Array) {
        return false;
    } else {
        return (mixed_var !== null) && (typeof( mixed_var ) == 'object');
    }
}

