/*******************************************************************************************/ 
/*                                                                                         */
/*   Author      : DESPREZ Sylvain                                                         */
/*   Copyright © : WILD STUNTS                                                             */
/*                                                                                         */ 
/*   Toute utilisation de ce code non autorisée par l'auteur est strictement interdite     */
/*                                                                                         */
/*******************************************************************************************/ 


//revoir tout les get 

///-------------------------- variables -----------------------------
//transition sur position
var var_globale_tab_transition_pos_x = new Array();
var var_globale_tab_transition_pos_y = new Array();

//position

var pos_x;       //modifier par getPos...(...) et getX...(...)
var pos_y;       //modifier par getPos...(...) et getY...(...)

//parametre cookies

var ay_vie_cookie_test = new Date;
ay_vie_cookie_test.setFullYear(ay_vie_cookie_test.getFullYear()+4); //4 ans
var ay_val_cookie_test = "please_accept_for_session";
var ay_nom_cookie_test = "test";

var ay_vie_cookie_langue = new Date;
var ay_nom_cookie_langue = "lang";
ay_vie_cookie_langue.setFullYear(ay_vie_cookie_langue.getFullYear()+4); //4 ans

var ay_vie_cookie_session = new Date;
ay_vie_cookie_session.setHours(ay_vie_cookie_session.getHours()+1); //1 heures

//motifs (exp regulière)

var motif_chaine = '^([a-zA-Z]+)$'; // a finir

///--------------------------


function setRefLienById(id,ref)
{
 document.getElementById(id).href = ref;
}

function setRefLien(lien,ref)
{
 lien.href = ref;
}


function focusById(id)
{
 document.getElementById(id).focus();
}


function blurById(id)
{
document.getElementById(id).blur();
}

function nombreAleatoire(n)
{ 
return (Math.round(Math.random()*100))%n; 
}

function find(tab,val)
{
var i = 0;
for(; ((i < tab.length) && (tab[i]!=val)); i++){ }
if(i == tab.length) return -1;
else return i;
}


function getObjetById(id)
{
return document.getElementById(id);
}


function setTextAlignById(id,align)
{
document.getElementById(id).style.textAlign = align;
}

function setPositionById(id,type_position)
{
document.getElementById(id).style.position = type_position;
}

function getClasseById(id)
{
return document.getElementById(id).className; 
}

function setClasseById(id,classe)
{
document.getElementById(id).className = classe;
}

function setClasse(element,classe)
{
element.className = classe;
}

function getZIndexById(id)
{
return document.getElementById(id).style.zIndex;
}

function setZIndexById(id,z)
{
document.getElementById(id).style.zIndex = z;
}


function submitForm(formulaire)
{
document.forms[formulaire].submit();
}

function setChampForm(formulaire,champ,val)
{
document.forms[formulaire].elements[champ].value = val;
}



function acceptCookies()
{
// navigator.cookieEnabled
ecrireCookie(ay_nom_cookie_test,ay_val_cookie_test,ay_vie_cookie_test); 
if((document.cookie.indexOf(ay_nom_cookie_test+"="+ay_val_cookie_test,0)) == -1) return false; 
return true;
}


function ecrireCookie(nom,val)
{
var expires           = ((ecrireCookie.arguments.length) > 2) ? ecrireCookie.arguments[2] : null;
var repertoire_valide = ((ecrireCookie.arguments.length) > 3) ? ecrireCookie.arguments[3] : "/";
var domaine           = ((ecrireCookie.arguments.length) > 4) ? ecrireCookie.arguments[4] : null;
var secure            = ((ecrireCookie.arguments.length) > 5) ? ecrireCookie.arguments[5] : false;

var tmp_ch = nom+"="+escape(val);
if(expires != null) tmp_ch += "; expires="+expires.toGMTString();
tmp_ch += "; path="+repertoire_valide;
if(domaine != null) tmp_ch += "; domain="+domaine;
if(secure == true) tmp_ch += "; secure";

document.cookie = tmp_ch;
}

function effacerCookie(nom)
{
var date = new Date;
date.setFullYear(date.getFullYear()-1);
ecrireCookie(nom,null,date); 
}

function lireCookie(nom,expreg)
{
var tmp_ch = document.cookie;
if(tmp_ch.length == 0) return null;
var debut;
var fin;
if((debut = tmp_ch.indexOf(nom+"=",0)) == -1) return null;
debut += nom.length+1;
if((fin = tmp_ch.indexOf(";",debut)) == -1) fin = tmp_ch.length; 
tmp_ch = unescape(tmp_ch.substring(debut,fin));
if(tmp_ch.search(expreg) == -1) return null; //a voir, faire htmlentities(ch), (trim(strip_tags(addslashes(
return tmp_ch;  
}


//var clavier = new Clavier(navigator.appName); 

///------------------fonction d'acces au données---------------------

function redimensionnerEtCentrerHById(id,sup,inf,resolution_ref,t_ref,largeur_fenetre,fact_largeur,tjs_scrolling)
{
var t = redimensionnerById(id,sup,inf,resolution_ref,t_ref);
centrerHById(id,largeur_fenetre,(t*fact_largeur),tjs_scrolling);
}


function centrerHById(id,largeur_element)
{
//alert(document.body.scrollHeight+" "+screen.availHeight);  
//object BarProp window.scrollbars. BarProp 602 738 | 706 738 document.body.scrollWidth

//alert(largeur_element);
//if(window.scrollbars &&  window.scrollbars.visible == false )) alert("pas de scrollbar !");
//alert(window.scrollbars.visible);

var l_scroll = Math.round(0.025*screen.width); //a voir
//var left = ((1-(largeur_element/largeur_fenetre))/2)*100;
var largeur_fenetre = screen.width;
if(document.width) largeur_fenetre = document.width; 

if(navigator.appName != "Microsoft Internet Explorer")
 { 
  //if(window.scrollbars) window.scrollbars.visible = false;
 setXById(id,((largeur_fenetre - largeur_element)/2) + "px");
  //alert(getXById(id));
 }
 else
 {
  setXById(id,((largeur_fenetre - l_scroll - largeur_element)/2) + "px");
 }

}


function setTailleFontById(id,taille)
{
document.getElementById(id).style.fontSize = taille;
}


function getTailleFontById(id)
{
return document.getElementById(id).style.fontSize; //a voir
}

//----------------------------- fonctions qui renvoient la position x d'un element


function getXById(id)
{
return pos_x = document.getElementById(id).style.left; //a voir
}

function setXById(id,x)
{
//alert(x);
document.getElementById(id).style.left = x;
}

function getX(element)
{
return pos_x = element.style.left; //a voir
}

//----------------------------- fonctions qui renvoient la position x d'un element

function getYById(id)
{
pos_y = document.getElementById(id).style.top;
if(pos_y.length > 2) pos_y = pos_y.substr(0,pos_y.length - 2); //retire le px;
//alert(Number(pos_y));
return Number(pos_y);
}

function getY(element)
{
return pos_y = element.style.top; //a voir
}

function setYById(id,y)
{
document.getElementById(id).style.top = y;
}

//----------------------------- fonctions qui renvoient la hauteur d'un élement donné

function getHeightById(id)
{
return document.getElementById(id).style.height; //a voir
}

function getHeight(element)
{
return element.style.height; //a voir
}


//----------------------------- fonctions qui renvoient la largeur d'un élement donné

function getWidthById(id)
{
return document.getElementById(id).style.width; //a voir
}

function getWidth(element)
{
return element.style.width; //a voir
}


//----------------------------- fonctions qui renvoient la position d'un element dans les variables pos_x et pos_y

function getPosById(id) //a voir
{ 
pox_x = document.getElementById(id).style.left;
pox_y = document.getElementById(id).style.top;
return new Array(pos_x,pos_y);
}

function getPos(element) //a voir
{
pox_x = element.style.left;
pox_y = element.style.top;
return new Array(pos_x,pos_y);
}



//----------------------------- fonctions qui renvoient la valeur d'un element

function getValueById(id)
{
return document.getElementById(id).value;
}

function getValueByIdNiveauSup(id)
{
return window.parent.document.getElementById(id).value;
}

//----------------------------- fonctions qui renvoient le contenu HTML d'un element

function getInnerHTMLById(id)
{
return document.getElementById(id).innerHTML;
}

function getInnerHTMLByIdNiveauSup(id)
{
return window.parent.document.getElementById(id).innerHTML;
}

///------------------fonction de modification des données---------------------


//----------------------------- fonctions qui affichent l'element donné

function showById(id)
{
//alert(id);
document.getElementById(id).style.visibility="visible";
}

function showByIdNiveauSup(id)
{
window.parent.document.getElementById(id).style.visibility="visible";
}

function show(element)
{
element.style.visibility="visible";
}

//---------------------------- fonctions qui désaffichent l'element donné

function hideById(id)
{
document.getElementById(id).style.visibility="hidden";
}

function hideByIdNiveauSup(id)
{
window.parent.document.getElementById(id).style.visibility="hidden";
}

function hide(element)
{
element.style.visibility="hidden";
}


//----------------------------- fonctions qui modifient la valeur d'un élement donné

function setValueByIdNiveauSup(id,value)
{
window.parent.document.getElementById(id).value = value;
}

function setValueById(id,value)
{
document.getElementById(id).value = value;
}

function setValue(element,value)
{
element.value = value;
}


//----------------------------- fonctions qui modifient la hauteur en px d'un élement donné

function setHeightById(id,height)
{
document.getElementById(id).style.height = height;
}

function setHeight(element,height) 
{
element.style.height = height;
}


//----------------------------- fonctions qui modifient la largeur en px d'un élement donné

function setWidthById(id,Width)
{
document.getElementById(id).style.width = Width;
}

function setWidth(element,width)
{
element.style.width = width;
}


//----------------------------- fonctions qui modifient le contenu HTML d'un élement donné

//remplace 

function setInnerHTMLById(id,chaineHTML)
{
document.getElementById(id).innerHTML=chaineHTML;
}

function setInnerHTMLByIdNiveauSup(id,chaineHTML)
{
window.parent.document.getElementById(id).innerHTML=chaineHTML;
}

function setInnerHTML(element,chaineHTML)
{
element.innerHTML=chaineHTML;
}

//ajoute

function addInnerHTMLById(id,chaineHTML)
{
document.getElementById(id).innerHTML+=chaineHTML;
window.parent.document.getElementById(id).innerHTML+=chaineHTML;
}

function addInnerHTMLByIdNiveauSup(id,chaineHTML,niveau)
{
window.parent.document.getElementById(id).innerHTML+=chaineHTML;
}

function addInnerHTML(element,chaineHTML)
{
element.innerHTML+=chaineHTML;
}

//----------------------------- fonctions qui permettent de faire une translation en x et en y sur l'element donné

function changePositionById(id,x,y)
{
document.getElementById(id).style.left = x;
document.getElementById(id).style.top  = y;
}

/*
function changePositionByIdNiveauSup(id,x,y)
{
window.parent.document.getElementById(id).style.left = x;
window.parent.document.getElementById(id).style.top  = y;
}
*/

/*
function changePositionById(id,pos)
{
document.getElementById(id).style.left = pos[0];
document.getElementById(id).style.top  = pos[1];
}
*/


function changePosition(element,x,y)
{
element.style.left = x;
element.style.top  = y;
}



function changePosition(element,pos)
{
element.style.left = pos[0];
element.style.top  = pos[1];
}


//----------------------------- fonctions qui changent la couleur d'un element

function setColorById(id,coul)
{
document.getElementById(id).style.color = coul;
}

function setColorIdNiveauSup(id,coul)
{
window.parent.document.getElementById(id).style.color = coul;
}

function setColor(element,coul)
{
element.style.color = coul;
}

//----------------------------- fonctions qui affichent un element à un endroit donné

function afficherById(id,x,y)
{
changePositionById(id,x,y);
showById(id);
}

function afficherByIdNiveauSup(id,x,y)
{
changePositionByIdNiveauSup(id,x,y);
showByIdNiveauSup(id);
}


function afficher(element,x,y)
{
show(element);
changePosition(element,x,y);
}

//----------------------------- fonctions qui effectuent une transition sur le déplacement

function transitionPosById(element,tab_x,tab_y,time_depart,interval,unite)
{
var diffx;
var diffy;
var absdiffx;
var absdiffy;
var signex;
var signey;
var j;
var k;
var x;
var y;
var x2;
var y2;
var it_id = 0;
var tab_id = new Array();

for(var i = 1; i < tab_x.length; i++)
{
x = tab_x[i-1];
y = tab_y[i-1];
diffx = tab_x[i] - x;
diffy = tab_y[i] - y;
signex = diffx>=0?1:-1;
signey = diffy>=0?1:-1;
absdiffx = Math.abs(diffx);
absdiffy = Math.abs(diffy);
j = x2 = 0;
k = y2 = 0;

 while(j <= absdiffx || k <=  absdiffy)
 {
 tab_id.push(element+'_'+it_id);
var var_globale_tab_pos_x = new Array();

 timer.addEventWithStart(element + '_' + it_id,"changePositionById('" + element + "','" + (x + x2*signex) + unite + "','" + (y + y2*signey) + unite + "'); var_globale_tab_transition_pos_x['" + element + "'] = " + (x + x2*signex) + "; var_globale_tab_transition_pos_y['" + element + "'] = " + (y + y2*signey) + ";",time_depart);
 time_depart += interval;
 j++;
 k++;
 it_id++; 
 if( j < absdiffx) x2++ ;
 if( k < absdiffy) y2++ ;
 }
}
return tab_id;

}



//----------------------------- fonction qui affiche une nouvelle fenetre centree

function NouvelleFenetreCentree(url,nom,hauteur,largeur)
{
var winl = (screen.width - largeur) / 2;
var wint = (screen.height - hauteur) / 2;
winprops = 'height='+hauteur+',width='+largeur+',top='+wint+',left='+winl+',scrollbars=no,resizable=no';
var fenetre = window.open(url, nom, winprops);
fenetre.focus(); 
}



function NouvelleGrandeFenetre(url,nom)
{
//date_t = new Date;
//time = date_t.getTime();
//if(navigator.appName == "Microsoft Internet Explorer") window.open(url,"_blanc","width=all,height=all");
//else window.open(url);
var fenetre = window.open(url,nom);
fenetre.focus(); 
}


//----------------------------- fonction qui change l'adresse du contenu du cadre





//----------------------------- fonctions qui changent la source du contenu d'1 element

function setSRCById(id,src)
{
document.getElementById(id).src = src; 
}

function getSRCById(id)
{
return document.getElementById(id).src; 
}

function setSRC(element,src)
{
element.src= src; 
}

//----------------------------- fonction qui actualise la page contenu dans un cadre (frame) donné

function actualiserFrame(cadre)
{
window.frames[cadre].location.reload();
}

//----------------------------- fonction qui actualise la page

function actualiserPage()
{
document.location.reload();
}


//----------------------------- fonction qui charge une nlle page, qui sera sauvegardée dans l'historique, dans un cadre (frame) donné

function setAndSaveURLFrame(cadre,url)
{
window.frames[cadre].location.href = url;
}

function getLocationFrame(cadre)
{
return window.frames[cadre].location;
}

//----------------------------- fonction qui charge une nvlle page qui sera sauvegardée dans l'historique

function setAndSaveURLPage(url)
{
document.location.href = url;
}

//----------------------------- fonction qui charge une nlle page, qui ne sera pas sauvegardée dans l'historique, dans un cadre (frame) donné

function replaceURLFrame(cadre,url)
{
window.frames[cadre].location.replace(url);
}

//----------------------------- fonction qui charge une nvlle page qui ne sera pas sauvegardée dans l'historique

function replaceURLPage(url)
{
document.location.replace(url);
}


//----------------------------- fonction qui permet à la page contenue ds une frame de s'actualiser ds touts la fenetre

function upToTop()
{
top.location.replace(document.location.href);
}


//--------- grande photo --------

function afficherGrandePhoto(photo)
{
 NouvelleFenetreCentree(photo,"grande_photo",590,798);
}




//fonction comme ltrim et retire aussi les retours chariots

function retirerBlancDebutFin(chaine)
{
var taille = chaine.length;
var i = 0;

for(; (i < taille) && ((chaine.charAt(i) == " ") || (chaine.charAt(i) == "\n")); i++) {}
if(i > 0) chaine = chaine.substr(i,taille-i);
 
if( (i = chaine.length-1) <= 0) return chaine;
for(; (i > 0) && ((chaine.charAt(i) == " ") || (chaine.charAt(i) == "\n")); i--) {}
chaine = chaine.substr(0,i+1);


return chaine;  
}


function retirerBlancsEntree(entree)
{
entree.value = retirerBlancDebutFin(entree.value);
}


function verifInFrame()
{
var chemin = window.parent.location.hostname + window.parent.location.pathname;  
if(chemin != (window.location.hostname+"/boutique.php") ) window.parent.location.replace("http://"+window.location.hostname +"/boutique.php");
}

function verifPageParent()
{
if(!eval(window.opener)) replaceURLPage("http://"+window.location.hostname+"/index.php");
else
 {
 if(window.opener.location.hostname != window.location.hostname)
  {
  replaceURLPage("http://"+window.location.hostname+"/index.php");
  }
 }
}


function chargerAffichageImagesACharger()
{
var tab_tab = document.getElementsByTagName("img");               
var nbimg = tab_tab.length;
var nbimgchargee = 0;
for(var i=0; i < nbimg; i++)
 {
 if(tab_tab[i].className == "image_chargee") nbimgchargee++;
 }

for(var i = 0; i < nbimgchargee; i++)
 {	
  setSRCById("image_chargee_"+i,getInnerHTMLById("box_src_image_chargee_"+i));
 }  
}



function actionListeDeroulanteItems(id_box,id_img)
{
if(document.getElementById(id_box).style.visibility != "visible")
 {
 showById(id_box);
 setSRCById(id_img,"images/site/up_1.gif"); 
 }
else
 {
 hideById(id_box);
 setSRCById(id_img,"images/site/down_1.gif"); 
 }
}

function setItemListeDeroulante(id_box,id_box_texte,id_box_item,id_box_val,classe_item,id_img)
{
var tmp_ch = getInnerHTMLById(id_box_val);
//tmp_ch = tmp_ch.replace('<a>','');
//tmp_ch = tmp_ch.replace('</a>','');//
//alert(tmp_ch);
setClasseById(tmp_ch,classe_item);
setClasseById(id_box_item,classe_item+'_actif');
setInnerHTMLById(id_box_texte,getInnerHTMLById("texte_"+id_box_item));
setInnerHTMLById(id_box_val,id_box_item);
actionListeDeroulanteItems(id_box,id_img); 
}


function survolerItemListeDeroulante(id_item,classe_item,dedans)
{
var tmp_classe = getClasseById(id_item);
if( tmp_classe != (classe_item+'_actif'))
 {
//  if(tmp_classe != (classe_item+"_survole"))
  if(dedans) setClasseById(id_item,classe_item+"_survole");
  else setClasseById(id_item,classe_item);
 }
}


function fermerListesDeroulantes(id_box,id_img)
{
var tab_imgs = document.getElementsByTagName("img");
for(var i=0; i < tab_imgs.length; i++)
 {
 if((tab_imgs[i].className == "img_liste_deroulante") && (tab_imgs[i].id != id_img)) tab_imgs[i].src = "images/site/down_1.gif"; 
 } 

tab_imgs = document.getElementsByTagName("div");
for(var i=0; i < tab_imgs.length; i++)
 {
 if((tab_imgs[i].className == "box_items_liste_deroulante") && (tab_imgs[i].id != id_box)) hideById(tab_imgs[i].id); 
 } 
 
} 


function getValueListeDeroulante(nom_liste)
{
return getInnerHTMLById("val_"+getInnerHTMLById("box_val_liste_deroulante_"+nom_liste));
}

function modifValuesListeDeroulante(nom_liste,nom_liste_receptrice)
{
var tmp_ch = getInnerHTMLById("box_items_liste_deroulante_"+nom_liste);
tmp_ch = tmp_ch.replace(nom_liste,nom_liste_receptrice);
setInnerHTMLById("box_items_liste_deroulante_"+nom_liste_receptrice,tmp_ch);
}



function faireAdressesEmail(tab_ids,tab_adresses)
{
for(var i=0; i < tab_ids.length; i++)
  {
   alert(tab_adresses[i][0]); //+" "+tab_adresses[i][1]+" "+tab_adresses[i][2]+" "+tab_adresses[i][3]);
    setInnerHTMLById(tab_ids[i],getAdresseEmail(tab_adresses[i][0],tab_adresses[i][1],tab_adresses[i][2],tab_adresses[i][3]));
    setRefLienById(tab_ids[i],"mailto: "+getAdresseEmail(tab_adresses[i][0],tab_adresses[i][1],tab_adresses[i][2],tab_adresses[i][3]));
  }	
}


function faireAdresseEmail(id,tab_adresse)
{
setInnerHTMLById(id,getAdresseEmail(tab_adresse[0],tab_adresse[1],tab_adresse[2],tab_adresse[3]));
setRefLienById(id,"mailto:"+getAdresseEmail(tab_adresse[0],tab_adresse[1],tab_adresse[2],tab_adresse[3]));
}


function getAdresseEmail(deb1,fin2,deb2,fin1)
{
return deb1+deb2+"@"+fin1+fin2;	
}


function getHauteurVisuFentre()
 {
 if(window.innerHeight) return window.innerHeight;	 
 if(document.documentElement && document.documentElement.clientHeight) return document.documentElement.clientHeight; 
 return -1;
 }

function getHauteurDocument()
 {
 if(document.body) return document.body.clientHeight;
 return -1;
 }

function getPositionYScroll()
 {
 if(window.pageYOffset) return window.pageYOffset;
 if(document.documentElement.scrollTop) return document.documentElement.scrollTop;
 return -1;
 }


function initLightBox()
{
 var hauteur =  getHauteurDocument();
 if(hauteur == -1) hauteur = 10000;
 setHeightById("box_lightbox_filtres",hauteur + 10 + "px"); 	
  
 var code_html = getInnerHTMLById("box_lightbox_filtres");
 var code_html_fini = code_html; 

 for(var i = 0; i < hauteur; i += 3000 )
  {
   code_html_fini += code_html;
  }

 
 setInnerHTMLById("box_lightbox_filtres",code_html_fini);

 hauteur =  getHauteurVisuFentre();
 if(hauteur == -1) hauteur = 800; 
 setHeightById("box_lightbox_contenu",hauteur + "px");	
}
	

function afficherLightBox(source_img,texte_legende)
{
 var tab_elmts = document.getElementsByTagName("object");
 for(var i = 0; i < tab_elmts.length; i++) hideById(tab_elmts[i].id);
 
 tab_elmts = document.getElementsByTagName("embed");
 for(var i = 0; i < tab_elmts.length; i++) hideById(tab_elmts[i].id);
 
 y_scroll = getPositionYScroll();
 if(y_scroll == -1) return; 

 setInnerHTMLById("box_texte_lightbox_contenu",texte_legende); 


 setYById("box_lightbox_contenu",y_scroll + "px"); 
 showById("box_lightbox_filtres");
 showById("box_lightbox_contenu");
 setSRCById("image_lightbox_contenu",source_img);

}

function desafficherLightBox()
{

 hideById("box_lightbox_contenu");
 hideById("box_lightbox_filtres");

 var tab_elmts = document.getElementsByTagName("object");
 for(var i = 0; i < tab_elmts.length; i++) showById(tab_elmts[i].id);
 
 tab_elmts = document.getElementsByTagName("embed");
 for(var i = 0; i < tab_elmts.length; i++) showById(tab_elmts[i].id);
 setSRCById("image_lightbox_contenu","img/site/loading.gif");
}


