var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();
//Les fonctions de fondu enchaîné

function fade(eid,to){
var TimeToFade = 2000.0;

alias.getElementById(eid+'_lod').value = "1";
//alias.getElementById('loader').value = "inprogress";
loding= "inprogress";
var element = alias.getElementById(eid);
if(element == null)
return;

if(element.FadeState == null){
element.FadeState = -2;
//Regles d'exeception sur les calques qui n'ont jamais été fondus
if (eid == "bloc_contenu") element.FadeState = 2;
if (eid == "sous_rub_texte") element.FadeState = 2;
if (eid == "conteneur_editorial") element.FadeState = 2;
//if (eid == "control_header") element.FadeState = 2;
//if (eid == "conteneur_editorial") element.FadeState = 2;

if (eid == "bloc_rec") if(afi_bloc_rec == 1){element.FadeState = 2;}else{element.FadeState = -2;}
//if (eid == "fond_decran") element.FadeState = 2;	
}

//Regle de "dé-block'age" bug d'affichage firefox (rémanence des block avec contenu texte)
switch (eid){
case "fiche_produit" : 
if (element.FadeState == -2) element.style.display = 'block'; 
break;
}

if(element.FadeState == 1 || element.FadeState == -1){
element.FadeState = element.FadeState == 1 ? -1 : 1;
element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;

}else{
element.FadeState = element.FadeState == 2 ? -1 : 1;
element.FadeTimeLeft = TimeToFade;
setTimeout("animateFade(" + new Date().getTime()
+ ",'" + eid + "','" + to + "')", 33);
}
}

function animateFade(lastTick, eid, to){ 
switch(eid){
case "fond_decran" :	
var TimeToFade = 3500.0;
break;
default :
var TimeToFade = 1000.0;
break;
}

var curTick = new Date().getTime();
var elapsedTicks = curTick - lastTick;

var element = alias.getElementById(eid);

if(element.FadeTimeLeft <= elapsedTicks){

if(element.FadeState == 1){
element.style.opacity = to/100;
element.style.filter = 'alpha(opacity = '+to+')';

}else{
element.style.opacity = 0;
element.style.filter = 'alpha(opacity = 0)';

//Regle de "re-block'age" bug d'affichage firefox (rémanence des block avec contenu texte)
switch (eid){
case "fiche_produit" : 
element.style.display = 'none'; 
break;
}

}
element.FadeState = element.FadeState == 1 ? 2 : -2;

alias.getElementById(eid+'_lod').value = to;
//fade('sous_rub');
return;
}

element.FadeTimeLeft -= elapsedTicks;
var newOpVal = element.FadeTimeLeft/TimeToFade;
if(element.FadeState == 1)

newOpVal = (to/100) - newOpVal;

element.style.opacity = newOpVal;
element.style.filter =
'alpha(opacity = ' + (newOpVal*100) + ')';

setTimeout("animateFade(" + curTick
+ ",'" + eid + "','" + to + "')", 33);
}

Array.prototype.in_array = function(p_val) {
	for(var i = 0, l = this.length; i < l; i++) {
		if(this[i] == p_val) {
			return true;
		}
	}
	return false;
}

//Les fonctions de déformation de bloc
	function $(idObj){
		return alias.getElementById(idObj);
	};
	
	var transitions = {
		linear: function(t, b, c, d){ return c*t/d + b; },
		elastic: function (t,b,c,d,a,p){
			if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
			if (!a || a < Math.abs(c)) { a=c; var s=p/4; }
			else var s = p/(2*Math.PI) * Math.asin (c/a);
			return (a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b);
		},
		bounce: function(t,b,c,d){
			if((t/=d) < (1/2.75)) {
				return c*(7.5625*t*t) + b;
			}else if (t < (2/2.75)) {
				return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
			}else if (t < (2.5/2.75)) {
				return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
			}else{
				return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
			}
		},
		skid: function(t,b,c,d){
			var s = 1.70158;
			return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
		}
	};

	function animate_test(){
	
		//var target = $('bloc_panier');
		//var orig = parseInt($('bloc_panier').style[$('cssRule').value]);
		//var dest = parseInt($('abs').value)-orig;

//var target = $('bloc_test');
var orig = variable('t_bloc_panier');
var delta = 50;
var dest = orig-delta;
var hauteur_cp = variable('h_bloc_panier');		
		
		var tmr = (1000/80); //assure une moyenne de 80 images par secondes
		var nbSteps = Math.round($('duration').value/tmr);
		var step = Math.abs(32 - $('nbPix').value)/nbSteps;
		var mapping = [];
		//On remplis un tableau contenant toutes les étapes de l'animation
		for(var i=1; i<=nbSteps; i++){
			mapping.push(transitions[$('transition').value](i*tmr, orig, dest, $('duration').value));
		}
		var currentStep = 0;
		var timer = window.setInterval(function(){
			if(mapping[currentStep]){
				//if($('cssRule').value=='both'){
				//	$('bloc_panier').style['top'] = mapping[currentStep]+'px';
					//$('bloc_panier').style['left'] = mapping[currentStep]+'px';
				//}else $('bloc_panier').style[$('cssRule').value] = mapping[currentStep]+'px';
				//$('conteneur1').style[$('cssRule').value] = -mapping[currentStep]+'px';
				//$('conteneur1').style[$('crsRule').value] = 150+mapping[currentStep]+'px';

$('bloc_panier').style['top'] = mapping[currentStep]+'px';

//$('bloc_total').style['top'] = mapping[currentStep]+'px';
//$('bloc_commander').style['top'] = mapping[currentStep]+'px';
//$('bloc_panier').style['height'] = hauteur_cp-mapping[currentStep]+'px';
//$('bloc_panier_fond').style['height'] = hauteur_cp-mapping[currentStep]+'px';
//$('bloc_panier_texte').style['height'] = hauteur_cp-mapping[currentStep]+'px';
//$('bloc_panier_liste').style['height'] = (hauteur_cp-35)-mapping[currentStep]+'px';


				currentStep++;
			}else{
				window.clearInterval(timer);
//document.body.style.background = "url(img-produits/BAL_207787.jpg)"
				return;
			}
		}, tmr);
	};


function panier(){
//grotest
//maj('h_bloc_panier','150');
//maj('h_bloc_panier_fond','150');
//maj('h_bloc_panier_texte','150');
//maj('h_bloc_panier_liste','115'); ?????

//maj('t_bloc_panier','-245');
//maj('t_bloc_total','-245');
//maj('t_bloc_commander','-245');

//animate();
}

	var cursor = 0;

	function move() {
		var carre = document.getElementById("bloc_panier");
		carre.style.top = (-2)*cursor + "px";
		if (cursor > 50)
			clearInterval(idTimer);
		else
			cursor++;
	}

//Fonctions de relocation
function gone(url) {
//alert(alias.getElementById('central').src);
//alias.getElementById('central').location.href =  url;
alias.getElementById('shell').src = url;

//document.location.href =url;
}

//Fonction Pop-UP
function ouvre(lien)
{
  mywindow = window.open(lien,"cgv","location=1,status=1,scrollbars=1,width=395,height=580");
  mywindow.moveTo(0,0);
  mywindow.focus();  
}

// JavaScript Document
function b1L(url)
{
alias.location.href=url;
}

function b2L(url,qui)
{
obj = alias.getElementById(qui);
// ON EFFACE LE CONTENU DU DUV
obj.innerHTML = "";
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);

// CONTROLE DE L'ETAT DE LA REQUETE
// CHAQUE CHANGEMENT D'ETAT AFFICHE UNE LIGNE DANS NOTRE DIV
xhr_object.onreadystatechange = function()
{
if(xhr_object.readyState == 1)
     //obj.innerHTML += "connexion établie<br />";
if(xhr_object.readyState == 2)
     //obj.innerHTML+= "requête reçue<br />";
if(xhr_object.readyState == 3)
     obj.innerHTML += "réponse en cours<br />";
if(xhr_object.readyState == 4)
{
     // ON CONTROLE LE STATUS (ERREUR 404, ETC)
if(xhr_object.status == 200){
//obj.innerHTML += "Fichier : " + xhr_object.responseText;
obj.innerHTML += xhr_object.responseText;

//Traitement de mise à jour du loading (hors images)
//if(qui != 'arriere' && qui != 'arriere2' &&  qui != 'image_produit_fond') alias.getElementById(qui+'_lod').value = 100;
if(qui != 'arriere' &&  qui != 'image_produit_fond') alias.getElementById(qui+'_lod').value = 100;

}else{
obj.innerHTML +="Error code " + xhr_object.status;}
}
};

// ON APPELLE LA PAGE
xhr_object.open("GET", url, true);
xhr_object.send(null);
}

// JavaScript Document
function b2L_old(url,qui)
{
//alias.title = "Boutique";

var xhr_object = null;
if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
else
if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");

// On ouvre la requete vers la page désirée
xhr_object.open("GET", url, true);
xhr_object.onreadystatechange = function(){
if ( xhr_object.readyState == 4 )
{

var outMsg = (xhr_object.responseXML && xhr_object.responseXML.contentType=="text/xml") ? xhr_object.responseXML.getElementByTagName("choices")[0].textContent : xhr_object.responseText;

// j'affiche dans la DIV spécifiées le contenu retourné par le fichier
//alias.getElementById(qui).innerHTML = xhr_object.responseText;
alias.getElementById(qui).innerHTML=outMsg;

alias.getElementById(qui+'_lod').value = 100;
//alert(alias.getElementById('id_node').value);
alias.title = "Boutique";
}
}
// dans le cas du get
xhr_object.send(null);
}


function urlencode(str){
return str.replace(/"/g,"%26quot;").replace(/&/g,"%26").replace(/\+/g,"%2B");
}

function envoyer_formulaire(etap){
if(validform(etap) == false){
return false;	
}

stack_url = "";

if(alias.getElementById('id_inscrit')) stack_url += "&id_inscrit="+alias.getElementById('id_inscrit').value;
if(alias.getElementById('provenance')) stack_url += "&provenance="+alias.getElementById('provenance').value;

if(etap == "identification"){
stack_url += "&email_ident="+alias.getElementById('email_ident').value;
stack_url += "&password_ident="+alias.getElementById('password_ident').value;
}

if(etap == "identification_top"){
stack_url += "&email_ident="+alias.getElementById('email_ident_top').value;
stack_url += "&password_ident="+alias.getElementById('password_ident_top').value;
}

if(etap == "compte"){

if(alias.ecran.elements["password"].value != alias.ecran.elements["password_confirm"].value){
alert('La confirmation est incorrecte');
return false;
}


if(alias.getElementById('email')) stack_url += "&email="+alias.getElementById('email').value;
if(alias.getElementById('password')) stack_url += "&password="+alias.getElementById('password').value;

if(alias.getElementById('f_id_civilite')) stack_url += "&f_id_civilite="+alias.getElementById('f_id_civilite').value;
if(alias.getElementById('f_nom')) stack_url += "&f_nom="+urlencode(alias.getElementById('f_nom').value);
if(alias.getElementById('f_prenom')) stack_url += "&f_prenom="+urlencode(alias.getElementById('f_prenom').value);
if(alias.getElementById('f_societe')) stack_url += "&f_societe="+urlencode(alias.getElementById('f_societe').value);
if(alias.getElementById('f_telephone')) stack_url += "&f_telephone="+urlencode(alias.getElementById('f_telephone').value);
if(alias.getElementById('f_portable')) stack_url += "&f_portable="+urlencode(alias.getElementById('f_portable').value);
if(alias.getElementById('f_adresse1')) stack_url += "&f_adresse1="+urlencode(alias.getElementById('f_adresse1').value);
if(alias.getElementById('f_adresse2')) stack_url += "&f_adresse2="+urlencode(alias.getElementById('f_adresse2').value);
if(alias.getElementById('f_ville')) stack_url += "&f_ville="+urlencode(alias.getElementById('f_ville').value);
if(alias.getElementById('f_code_postal')) stack_url += "&f_code_postal="+urlencode(alias.getElementById('f_code_postal').value);
if(alias.getElementById('f_id_pays')) stack_url += "&f_id_pays="+alias.getElementById('f_id_pays').value;
if(alias.getElementById('f_infos')) stack_url += "&f_infos="+urlencode(alias.getElementById('f_infos').value);
if(alias.getElementById('l_id_civilite')) stack_url += "&l_id_civilite="+alias.getElementById('l_id_civilite').value;
if(alias.getElementById('l_nom')) stack_url += "&l_nom="+urlencode(alias.getElementById('l_nom').value);
if(alias.getElementById('l_prenom')) stack_url += "&l_prenom="+urlencode(alias.getElementById('l_prenom').value);
if(alias.getElementById('l_societe')) stack_url += "&l_societe="+urlencode(alias.getElementById('l_societe').value);
if(alias.getElementById('l_telephone')) stack_url += "&l_telephone="+urlencode(alias.getElementById('l_telephone').value);
if(alias.getElementById('l_portable')) stack_url += "&l_portable="+urlencode(alias.getElementById('l_portable').value);
if(alias.getElementById('l_adresse1')) stack_url += "&l_adresse1="+urlencode(alias.getElementById('l_adresse1').value);
if(alias.getElementById('l_adresse2')) stack_url += "&l_adresse2="+urlencode(alias.getElementById('l_adresse2').value);
if(alias.getElementById('l_ville')) stack_url += "&l_ville="+urlencode(alias.getElementById('l_ville').value);
if(alias.getElementById('l_code_postal')) stack_url += "&l_code_postal="+urlencode(alias.getElementById('l_code_postal').value);
if(alias.getElementById('l_id_pays')) stack_url += "&l_id_pays="+alias.getElementById('l_id_pays').value;
if(alias.getElementById('l_infos')) stack_url += "&l_infos="+urlencode(alias.getElementById('l_infos').value);

if(alias.getElementById('b_newsletter').checked==true){b_newsletter = 1;}else{b_newsletter = 0;} 
stack_url += "&b_newsletter="+b_newsletter;
if(alias.getElementById('b_idem').checked==true){b_idem = 1;}else{b_idem = 0;} 
stack_url += "&b_idem="+b_idem;
}
//alert(stack_url);

if(stack_url != ""){
//gone('session_handler.php?mode=formulaire'+stack_url);
alias.ecran.action = 'post.php';
alias.ecran.submit();
}

}

function validform(etap) {

if(etap == "identification"){
alias.ecran.elements["email_ident"].setAttribute('obligatoire', 'oui');
alias.ecran.elements["password_ident"].setAttribute('obligatoire', 'oui');
}

if(etap == "identification_top"){
alias.ecran.elements["email_ident_top"].setAttribute('obligatoire', 'oui');
alias.ecran.elements["password_ident_top"].setAttribute('obligatoire', 'oui');
}

if(etap == "compte"){
alias.ecran.elements["email"].setAttribute('obligatoire', 'oui');
alias.ecran.elements["password"].setAttribute('obligatoire', 'oui');
alias.ecran.elements["password_confirm"].setAttribute('obligatoire', 'oui');

alias.ecran.elements["f_id_civilite"].setAttribute('obligatoire', 'oui');
alias.ecran.elements["f_nom"].setAttribute('obligatoire', 'oui');
alias.ecran.elements["f_prenom"].setAttribute('obligatoire', 'oui');
alias.ecran.elements["f_telephone"].setAttribute('obligatoire', 'oui');
alias.ecran.elements["f_adresse1"].setAttribute('obligatoire', 'oui');
alias.ecran.elements["f_ville"].setAttribute('obligatoire', 'oui');
alias.ecran.elements["f_code_postal"].setAttribute('obligatoire', 'oui');
alias.ecran.elements["f_id_pays"].setAttribute('obligatoire', 'oui');

if(alias.ecran['b_idem'].checked == true){
alias.ecran.elements["l_id_civilite"].setAttribute('obligatoire', 'non');
alias.ecran.elements["l_nom"].setAttribute('obligatoire', 'non');
alias.ecran.elements["l_prenom"].setAttribute('obligatoire', 'non');
alias.ecran.elements["l_telephone"].setAttribute('obligatoire', 'non');
alias.ecran.elements["l_adresse1"].setAttribute('obligatoire', 'non');
alias.ecran.elements["l_ville"].setAttribute('obligatoire', 'non');
alias.ecran.elements["l_code_postal"].setAttribute('obligatoire', 'non');
alias.ecran.elements["l_id_pays"].setAttribute('obligatoire', 'non');
}else{
alias.ecran.elements["l_id_civilite"].setAttribute('obligatoire', 'oui');
alias.ecran.elements["l_nom"].setAttribute('obligatoire', 'oui');
alias.ecran.elements["l_prenom"].setAttribute('obligatoire', 'oui');
alias.ecran.elements["l_telephone"].setAttribute('obligatoire', 'oui');
alias.ecran.elements["l_adresse1"].setAttribute('obligatoire', 'oui');
alias.ecran.elements["l_ville"].setAttribute('obligatoire', 'oui');
alias.ecran.elements["l_code_postal"].setAttribute('obligatoire', 'oui');
alias.ecran.elements["l_id_pays"].setAttribute('obligatoire', 'oui');
}}

if(alias.ecran && etap != "identification_top") if(checkForm(alias.ecran)){}else{return false;}

return true;
}

function paiement(msg){
if(msg != ""){
alert(msg);
return;
}

if(alias.ecran.elements["cgv"].checked == true){
if(alias.ecran.elements["fload"].value != "1"){
alias.ecran.elements["fload"].value='1';	
alias.location.href='paiement.php';
}} else {
alert('Veuillez accepter les conditions générales de vente');
}}

function plus_produit(){
alias.getElementById('quantite_produit').value = eval(alias.getElementById('quantite_produit').value)+1;
}

function moins_produit(){
if(eval(alias.getElementById('quantite_produit').value)-1 >0){
alias.getElementById('quantite_produit').value = eval(alias.getElementById('quantite_produit').value)-1;
}}

function ajouter_panier(){
if(alias.ecran.elements["fload"].value == "1"){return;}
alias.ecran.elements["fload"].value = "1";
alias.getElementById('anticlic').style.display = 'block'; 

alias.ecran.action = 'panier.php';
alias.getElementById('lemode').value = 'ADD';
alias.getElementById('id_glob_ref').value ='boutique=produit,id_produit='+alias.getElementById('id_produit').value;

if(alias.getElementById('criteria_0')) alias.getElementById('id_glob_ref').value +=','+alias.getElementById('criteria_0').value;

alias.ecran.submit();
}

function supprimer_panier(id){
if(alias.ecran.elements["fload"].value == "1"){return;}
alias.ecran.elements["fload"].value = "1";
alias.getElementById('anticlic').style.display = 'block'; 
	
alias.ecran.action = 'panier.php';
alias.getElementById('lemode').value = 'DEL';
alias.getElementById('id_glob_ref').value ='boutique=produit,id_produit='+id;
alias.ecran.submit();
}

function modifier_panier(id,qtite){
if(alias.ecran.elements["fload"].value == "1"){return;}
alias.ecran.elements["fload"].value = "1";
alias.getElementById('anticlic').style.display = 'block'; 

alias.ecran.action = 'panier.php';
alias.getElementById('lemode').value = 'MOD';
alias.getElementById('qtite').value = qtite;
//alias.getElementById('id_glob_ref').value ='boutique=produit,id_produit='+id;
alias.getElementById('id_glob_ref').value =id;
alias.ecran.submit();
}

function pilotage(mode){
switch(mode){
case "news" :
b2L("inscrire.php?ts="+Math.floor((new Date()).getTime() / 1000),'bloc_contenu');
break;
case "annulemail" :
b2L("annulemail.php?ts="+Math.floor((new Date()).getTime() / 1000),'bloc_contenu');
break;
}}
