// JavaScript Document
// Gestion du passage de commande

var step_current = 0;
var step_completed = 0;
var step_max = 4;
var param = new Array();
var timer = new Array();
var topost = new Array();

var session_id;
var session_name;

var et = 'etape_';
var sct = 0;
var step_ready = false;

var hf = new Array();
/*
hf[0] = 200;
hf[1] = 270;
hf[2] = 830;
hf[3] = 830;
hf[4] = 830;
*/
function step_session(){ // retourne l'idenfiant de session
	return session_name+'='+session_id;	
}
function step_init(sid,snm){ // initialsiation du process de commande
	var i = 0;
	while(i != step_max+1){
		param[i] = new Array();
		topost[i] = new Array();
		i++;	
	}
	
	logs('Init with session '+sid);
	
	step_ready = false;
	session_id = sid;
	session_name = snm;

	var xhr_object_1 = construct();
	
	xhr_object_1.onreadystatechange = function(){
		if(xhr_object_1.readyState == 4){
			if(xhr_object_1.status == 200){
				
				logs('Call response 200');
				
				if(xhr_object_1.responseText != 'ko'){
					document.getElementById(et+step_current).innerHTML = xhr_object_1.responseText;
					step_set(0,'registred',document.getElementById('etape_registred').value);
					step_set(0,'isauth',document.getElementById('etape_isauth').value);
				}
				else{
					logs('Call result : ko');	
				}
			}
			else{
				alert('Erreur HTTP Code '+xhr_object_1.status);	
			}				
		}
	};
	
	logs('Call : /commande.php?'+step_session()+'&mode=step&id=0');
	
	xhr_object_1.open("GET", '/commande.php?'+step_session()+'&mode=step&id=0', true);
	xhr_object_1.send(null);
	
}
function step_recover(sid,snm,id,data){ // recharge directement à la bonne étape
	
	logs('Init recover session '+sid+', step '+id);
	
	var i = 0;
	while(i != step_max+1){
		param[i] = new Array();
		topost[i] = new Array();
		i++;	
	}
	
	step_ready = false;
	session_id = sid;
	session_name = snm;
	
	step_current = id;
	step_completed = parseInt(id)-1;
	
	var t = 0;
	var x = id;
	
	while(t < x){
		document.getElementById('status_'+t).src = '/cmd_ico/ok_s.png';
		step_head_unglow(t);
		step_autoload(t);
		
		document.getElementById('header_'+t).style.cursor = 'pointer';
		document.getElementById('header_'+t).onclick = new Function('back_step('+t+');');
		//document.getElementById('header_'+t).onmouseover = new Function('highlight('+t+');');
		//document.getElementById('header_'+t).onmouseout = new Function('lowlight('+t+');');
		t++;	
	}
	
	var part = data.split(';');
	
	var u = 0;
	var v = part.length;
	
	while(u != v){
		if(part[u].length > 0){
			var vt = part[u].split('=');
			logs('Autoset '+vt[0]+' '+vt[1]+' '+vt[2]);
			step_set(vt[0],vt[1],vt[2]);
		}
		u++;
	}
	
	step_head_glow(id);

	var xhr_object_2 = construct();
	
	xhr_object_2.onreadystatechange = function(){
		if(xhr_object_2.readyState == 4){
			if(xhr_object_2.status == 200){
				
				if(xhr_object_2.responseText != 'ko'){
					document.getElementById(et+step_current).innerHTML = xhr_object_2.responseText;
					step_autoload(id);
				}
				else{
					logs('Call ko');	
				}
			}
			else{
				alert('Erreur HTTP Code '+xhr_object_2.status);	
			}				
		}
	};
	
	logs('Call : /commande.php?'+step_session()+'&mode=step&id='+id);
	xhr_object_2.open("GET", '/commande.php?'+step_session()+'&mode=step&id='+id+'&back=1', true);
	xhr_object_2.send(null);
	
	
}
function back_step(id){ // etape précédent
	
	logs('Step back '+id);

	if(id <= step_completed){
		
		logs('Step in bounds');
		
		hide_step(step_current);
	
		var ht = id; // 
		
		while(ht != step_max+1){ // on reset tout le reste
			document.getElementById('header_'+ht).className = 'header_inactive';
			document.getElementById('header_'+ht).style.cursor = 'auto';
			
			document.getElementById('header_'+ht).onclick = null;
			document.getElementById('header_'+ht).onmouseover = null;
			document.getElementById('header_'+ht).onmouseout = null;
			
			document.getElementById('status_'+ht).src = '/cmd_ico/time.png';
			ht++;
		}
	
		step_current = id;
		step_completed = id;
		step_ready = false;
		
		if(step_current == 3 && step_get(2,'liv') == 0){ // on repasse en liv = 1
			step_set(2,'liv',1);
			logs('Switching to liv=1');
		}
		
		var xhr_object_3 = construct();
		xhr_object_3.onreadystatechange = function(){
			if(xhr_object_3.readyState == 4){
				
				if(xhr_object_3.status == 200){
					
					if(xhr_object_3.responseText != 'ko'){
							
						//step_next(xhr_object.responseText);
						document.getElementById(et+step_current).innerHTML = xhr_object_3.responseText;
							
						if(document.getElementById('etape_registred') != undefined){
							step_set(0,'registred',document.getElementById('etape_registred').value);
							step_set(0,'isauth',document.getElementById('etape_isauth').value);
						}
							
						logs("Displaying step "+step_current+" after reroll ");
							
						display_step(step_current);
						step_autoload(step_current);
		
					}
				}
					
			}

		};
		
		logs('Call: /commande.php?'+step_session()+'&mode=step&back=1&id='+step_current);
		xhr_object_3.open("GET", '/commande.php?'+step_session()+'&mode=step&back=1&id='+step_current, true);
		xhr_object_3.send(null);
	}
	else{
		logs('Out of bound step '+id);	
	}
}
function step_next(content){ // jump etape suivante
	
	logs('Step next call');
	//alert(step_current+' <= '+step_max);
	
	if(step_current <= step_max){ // encore d'autre étapes
		
		logs('Step within bound');
		
		document.getElementById('status_'+step_current).src = '/cmd_ico/ok_s.png';
		hide_step(step_current);
		
		step_current++;
		if(step_current > step_max){
			step_current = step_max;
		}
		
		logs("Putting content to "+et+""+step_current);
		document.getElementById(et+step_current).innerHTML = content;
		
		if(step_current <= step_max){
			logs('Autoexec step_current < step_max');
			step_autoload(step_current); // autoexe
		}
		
		if(step_current > step_completed){ // nouvel étape débloquée
			step_completed = step_current;	
			
			logs('Step '+step_completed+' is now in state ACTIVE');
			var st = 0;
			
			while(st != step_max){
				
				if(st <= step_completed){
					document.getElementById('header_'+st).style.cursor = 'pointer';
					document.getElementById('header_'+st).onclick = new Function('back_step('+st+');');
				}
				else{
					document.getElementById('header_'+st).className = 'header_inactive';
					document.getElementById('header_'+st).style.cursor = 'auto';
					document.getElementById('header_'+st).onclick = null;
					//document.getElementById('header_'+st).onmouseover = null;
					//document.getElementById('header_'+st).onmouseout = null;
				}
				st++;
			}
			
			
		}
		
		display_step(step_current);	
	}
	else{
		logs('Out of bound');
	}

}
function validate_step(){ // validation segment
	
	logs('Validate step '+step_current);
	var il = check_data(step_current);
	
	if(il == true){ // validation OK
		logs('Validation OK');
		document.getElementById('button_'+step_current).disabled = true;
		if(step_current != 4){
			document.getElementById('button_'+step_current).className = 'lbutton_dis';
		}
		
		if(document.getElementById('back_button_'+step_current) != undefined){
			document.getElementById('back_button_'+step_current).disabled = true;
			document.getElementById('back_button_'+step_current).className = 'lbutton_dis';
		}
		post_step(step_current);
	}
}
function skip_step(){ // sauter les infos de livraison
	
	logs('Skipping step');
	
	hide_step(step_current);
	document.getElementById('status_'+step_current).src = '/cmd_ico/ok_s.png';
	step_current++;
	
	step_set(2,'liv','0');
		
	step_set(3,'liv_nom', step_get(2,'prenom')+' '+step_get(2,'nom'));
	step_set(3,'liv_societe', step_get(2,'societe'));
	step_set(3,'liv_adresse', step_get(2,'adresse'));
	step_set(3,'liv_adresse2', step_get(2,'adresse2'));
	step_set(3,'liv_cp', step_get(2,'cp'));
	step_set(3,'liv_ville', step_get(2,'ville'));
	step_set(3,'tel2', step_get(2,'tel'));
	
	document.getElementById(et+step_current).style.height = '0px';
	document.getElementById(et+step_current).style.display = 'block';
	hide_step(step_current);
	document.getElementById('status_'+step_current).src = '/cmd_ico/ok_s.png';
	
	post_step(step_current); // AUTO VALIDATE
	
}
function post_step(id){ // enregistre letape coté serveur
	
	logs('Submitting step '+id);
	
	document.getElementById('status_'+step_current).src = '/cmd_ico/loading.gif';
	
	var i;
	
	// etape 1
	i = 0;
	topost[0][i++] = 'registred';
	topost[0][i++] = 'login';
	topost[0][i++] = 'pass';
	// etape 2
	
	i = 0;
	topost[1][i++] = 'type';
	
	i = 0;
	topost[2][i++] = 'societe';
	/*topost[2][i++] = 'part';*/
	topost[2][i++] = 'nom';
	topost[2][i++] = 'prenom';
	topost[2][i++] = 'email';
	topost[2][i++] = 'password';
	topost[2][i++] = 'adresse';
	topost[2][i++] = 'cp';
	topost[2][i++] = 'ville';	
	topost[2][i++] = 'adresse2';
	topost[2][i++] = 'tel';
	topost[2][i++] = 'fax';
	topost[2][i++] = 'liv';
	
	i = 0;
	topost[3][i++] = 'liv_nom';
	topost[3][i++] = 'liv_prenom';
	topost[3][i++] = 'liv_societe';
	topost[3][i++] = 'liv_cp';
	topost[3][i++] = 'liv_ville';
	topost[3][i++] = 'liv_adresse';
	topost[3][i++] = 'liv_adresse2';
	topost[3][i++] = 'tel2';
	
	i = 0;
	topost[4][i++] = 'comment';
	topost[4][i++] = 'modep';
	topost[4][i++] = 'confirm';
	
	
	var xhr_object_4 = construct();
	xhr_object_4.onreadystatechange = function(){
		if(xhr_object_4.readyState == 4){
			
			if(xhr_object_4.status == 200){
			
			var ir = xhr_object_4.responseText;
				
				if(ir == 'LOGIN_FAILED'){
					alert("Echec de l'authentification, merci de vérifier votre identifiant et votre mot de passe.");
						
					document.getElementById('button_'+id).className = 'lbutton';
					document.getElementById('button_'+id).disabled = false;
						
					if(document.getElementById('back_button_'+id) != undefined){
						document.getElementById('back_button_'+id).className = 'lbutton';
						document.getElementById('back_button_'+id).disabled = false;
					}
					document.getElementById('status_'+id).src = '/cmd_ico/time.png';
						
					error_show(0,'login');
					error_show(0,'pass');
				}
				else if(ir == 'JUMPTO:4'){ // autorisé a skipper la partie 3
					logs('Skipping step');
					skip_step();
				}
				else if(ir == 'READY'){ // pret pour l'enregistrement de la commande
					step_ready = true;
					validate_commande();
				}
				else if(ir != 'ko'){
					step_next(ir);
				}
			}
		}

	};
	
	var chaine = '';
	pk = topost[id];
	
	for(k=0;k<pk.length;k++){
		
		var po = step_get(id,pk[k]);
		
		if(po != null){
			chaine += '&'+pk[k]+'='+po;
		}
		else{
			chaine += '&'+pk[k]+'=';
		}
	}
	ik = parseInt(id)+1;
	
	logs('Call : /commande.php?'+step_session()+'&mode=step&id='+ik+chaine);
	xhr_object_4.open("GET", '/commande.php?'+step_session()+'&mode=step&id='+ik+chaine, true);
	xhr_object_4.send(null);
	
}
function step_autoload(step){
	
	logs('Autoexe '+step);
	
	var i = 0;
	var obl = new Array();
	var st = new Array();
	
	if(step == 1){
		obl[i++] = 'type';
	}
	else if(step == 2){
		obl[i++] = 'societe';
		obl[i++] = 'nom';
		obl[i++] = 'prenom';
		obl[i++] = 'email';
		obl[i++] = 'password';
		obl[i++] = 'adresse';
		obl[i++] = 'cp';
		obl[i++] = 'ville';
		obl[i++] = 'adresse2';
		obl[i++] = 'tel';
		obl[i++] = 'fax';
		obl[i++] = 'liv';
	}
	else if(step == 3){
		obl[i++] = 'liv_societe';
		obl[i++] = 'liv_nom';
		obl[i++] = 'liv_adresse';
		obl[i++] = 'liv_cp';
		obl[i++] = 'liv_ville';
		obl[i++] = 'tel2';
	}
	else if(step == 4){
		obl[i++] = 'modep';
	}
	
	for(u=0;u<obl.length;u++){
		
		if(document.getElementById(et+obl[u]) != undefined){
			
			
			if(document.getElementById(et+obl[u]).type == 'checkbox'){
				if(document.getElementById(et+obl[u]).checked == true){
					step_set(step,obl[u],'1');
				}
				else{
					step_set(step,obl[u],'0');
				}
			}
			else{
			
				if(document.getElementById(et+obl[u]).value != ''){
					step_set(step,obl[u],document.getElementById(et+obl[u]).value);
				}
			}
		}
	}
}
function check_obl(id,prm) { // verifie les variables obligatoire
	
	var obl = new Array();
	var i = 0;
		
	if(step_get(1,'type') == 'societe'){
		obl[i++] = 'liv_societe';
		obl[i++] = 'societe';
	}
	else{
		obl[i++] = 'liv_nom';	
	}
	
	if(step_get(0,'registred') == 'login'){
		obl[i++] = 'login';
		obl[i++] = 'pass';
	}
	
	/*obl[i++] = 'part';*/
	obl[i++] = 'nom';
	obl[i++] = 'prenom';
	obl[i++] = 'email';
			
	obl[i++] = 'adresse';
	obl[i++] = 'cp';
	obl[i++] = 'ville';
		
	
	obl[i++] = 'liv_cp';
	obl[i++] = 'liv_ville';
	obl[i++] = 'modep';
	obl[i++] = 'confirm';
	
	
	for(i=0;i<obl.length;i++){
		if(obl[i] == prm){
			return true;	
		}
	}
	
	return false;
	
}
function check_data(id){ // validation des infos
	
	logs('Checking data '+id);
	
	obl = new Array();
	fact = new Array();
	
	var i = 0;
	var u = 0;
	
	
	if(id == 0){ // Inscription

		obl[i++] = 'registred';
		
		if(step_get(0,'registred') != 'login' || step_get(0,'isauth') == 'YES'){
			fact[u++] = 'login';
			fact[u++] = 'pass';
		}
		else{
			obl[i++] = 'login';
			obl[i++] = 'pass';
		}
	
	}
	else if(id == 1){ // type de compte
		obl[i++] = 'type';
	}
	else if(id == 2){ // information de nom
		
		if(step_get(1,'type') == 'societe'){
			
			if(step_get(0,'isauth') != 'YES' && step_get(0,'registred') != 'login'){
				
				obl[i++] = 'societe';
				
				if(step_get(0,'registred') == 'create'){
					obl[i++] = 'email';
					obl[i++] = 'password';
				}
				else{
					fact[u++] = 'email';
				}
			}
			else{
				fact[u++] = 'societe';
			}
			
			/*obl[i++] = 'part';*/
			obl[i++] = 'nom';
			obl[i++] = 'prenom';
			
			obl[i++] = 'adresse';
			obl[i++] = 'cp';
			obl[i++] = 'ville';
			
			fact[u++] = 'adresse2';
			fact[u++] = 'tel';
			fact[u++] = 'fax';
			
		}
		else{ // particulier
			
			if(step_get(0,'isauth') != 'YES' && step_get(0,'registred') == 'create'){
				obl[i++] = 'email';
				obl[i++] = 'password';
			}
			else if(step_get(0,'registred') == 'flash'){
				fact[u++] = 'email';
			}
			
			//obl[i++] = 'part';
			obl[i++] = 'nom';
			obl[i++] = 'prenom';
			
			obl[i++] = 'adresse';
			obl[i++] = 'cp';
			obl[i++] = 'ville';
			
			fact[u++] = 'adresse2';
			fact[u++] = 'tel';

			fact[u++] = 'comment';
			
		}
	}
	else if(id == 3){ // info de livraison
		
		if(step_get(1,'type') == 'societe'){
			obl[i++] = 'liv_societe';
		}
		else{ // particulier
			obl[i++] = 'liv_nom';
		}
		
		obl[i++] = 'liv_adresse';
		obl[i++] = 'liv_cp';
		obl[i++] = 'liv_ville';
		
		fact[u++] = 'liv_adresse2';
		fact[u++] = 'tel2';
		
	}
	else if(id == 4){ // mode de paiement
		obl[i++] = 'modep';
		
		obl[i++] = 'confirm';
		fact[u++] = 'comment';
		
		//alert("modep: "+step_get(4,'modep'));
	}
	else{
		alert('Etape inexistante');	
		return false;
	}

	var pass = true;
	var erc = 0;
	
	for(i=0;i<obl.length;i++){ // on verifie les données
	
		if(step_get(id,obl[i]) == null || step_get(id,obl[i]) == ''){ // parametre non défini
			
			if(obl[i] == 'confirm'){
				alert('Vous devez accepter les conditions générales de vente pour continuer');	
			}
			
			error_show(id,obl[i]);
			pass = false;
			
			if(erc == 0){
				error_focus(obl[i]);
			}
			erc++;
		}
		else{
			error_clear(id,obl[i]);
		}
	}
	
	if(pass == false){
		
		logs('Fail data check');
		
		if(step_current != 4){
			document.getElementById('button_'+id).className = 'lbutton';
		}
		document.getElementById('button_'+id).disabled = false;	
		
		if(document.getElementById('back_button_'+id) != undefined){
			document.getElementById('back_button_'+id).className = 'lbutton';
			document.getElementById('back_button_'+id).disabled = false;
		}
	}
	
	return pass;
}
function error_focus(param){
	
	logs('Error focus : '+param);
	
	if(document.getElementById(et+param) != undefined){
		document.getElementById(et+param).focus();
	}
}
function error_show(step,param){
	
	logs('Error show '+param+' for step '+step);
	
	if(document.getElementById(et+param) != undefined){
		document.getElementById(et+param).className = 'error_cmd_input';
	}
	
	if(document.getElementById(param+'_ok') != undefined){
		document.getElementById(param+'_ok').innerHTML = ' <img src="/cmd_ico/ko_v.png" align="absmiddle" />';
	}
}
function error_clear(step,param){
	if(document.getElementById(et+param) != undefined){
		document.getElementById(et+param).className = 'cmd_input';
	}
}
function validate_commande(){ // validation finale puis redirection vers la page de paiement
	
	logs('Validating command');
	
	var xhr_object_5 = construct();
	xhr_object_5.onreadystatechange = function(){
		
		if(xhr_object_5.readyState == 4){
			if(xhr_object_5.status == 200){
				var it = xhr_object_5.responseText;
				location = it;
			}
			else{
				logs('Erreur HTTP Code '+xhr_object_5.status);	
			}
		}
	};
	
	logs('Call : /services.php?'+step_session()+'&mode=cmd_validate');
	xhr_object_5.open("GET", '/services.php?'+step_session()+'&mode=cmd_validate', true);
	xhr_object_5.send(null);
}
function display_step(id){
	
	logs('Displaying step '+id);
	
	if(step_current <= step_completed){
		step_current = id;
		
		document.getElementById(et+id).style.height = '0px';
		document.getElementById(et+id).style.display = 'block';
		
		//lowlight(id);
		document.getElementById('header_'+id).color = '#FFF';
		//alert("ID:"+id);
		
		/* BUGGY */
		
		var tt;
		if(document.getElementById('cont_'+id) != undefined){
			tt = document.getElementById('cont_'+id).offsetHeight;
		}
		else{
			logs('BUG fix cont_'+id+' undefined');

			tt = 200;
		}
		
		timer[id] = setInterval('timeshow_step('+id+','+tt+')',20);
		step_head_glow(id);
	}
}
function hide_step(id){ // on hide tout le reste
	
	logs('Hiding step '+id);
	var ir = 300;
	
	if(document.getElementById('cont_'+id) != undefined){
		ir = document.getElementById('cont_'+id).offsetHeight;
	}
	
	timer[id] = setInterval('timehide_step('+id+','+ir+')',20);
	step_head_unglow(id);

}
function timeshow_step(id,gt){
	
	var it = parseInt(document.getElementById(et+id).style.height.replace('px',''));
	
	if(it < gt){
		it += 40;
		document.getElementById(et+id).style.height = it+'px';
	}
	else{
		document.getElementById(et+id).style.height = 'auto';
		clearInterval(timer[id]);
		//step_scroll(id);
	}
}
function timehide_step(id,gt){
	
	var it = parseInt(document.getElementById(et+id).style.height.replace('px',''));
	
	if(isNaN(it) == true){
		it = 200;
	}
	
	if(it > 0){
		it -= 40;
		document.getElementById(et+id).style.height = it+'px';
	}
	else{
		document.getElementById(et+id).style.display = 'none';
		document.getElementById(et+id).style.height = 'auto';
		clearInterval(timer[id]);
		
	}
}
function step_set(step,prm,value){
	
	logs('Setting '+prm+'='+value+' for step '+step);
	
	if(isNaN(step) == false && prm.length > 0){
		
		if(value != null && value.length > 0){
			
			param[step][prm] = value;
			
			if((prm == 'login' || prm == 'pass') && step_get(0,'registred') == 'login'){
				document.getElementById(prm+'_ok').innerHTML = ' <img src="/cmd_ico/ok_v.png" align="absmiddle">';
			}
			else if(prm == 'registred' && step_get(0,'registred') != 'login'){
				
				if(document.getElementById('login_ok') != undefined){
					
					document.getElementById('login_ok').innerHTML = '';
					document.getElementById('pass_ok').innerHTML = '';
					
					error_clear(0,'login');
					error_clear(0,'pass');
				}
				
				step_set(0,'login','');
				step_set(0,'pass','');
				
			}
			else if(prm == 'registred' && step_get(0,'registred') == 'login' && step_get(0,'isauth') == false && document.getElementById('login_ok') != undefined){
				document.getElementById('login_ok').innerHTML = ' <img src="/cmd_ico/ko_v.png" align="absmiddle">';
				document.getElementById('pass_ok').innerHTML = ' <img src="/cmd_ico/ko_v.png" align="absmiddle">';
			}
			else if(document.getElementById(prm+'_ok') != undefined){
				document.getElementById(prm+'_ok').innerHTML = ' <img src="/cmd_ico/ok_v.png" align="absmiddle">';
			}
			
			error_clear(step,prm);
			logs('Set ok');
			
			return true;
		}
		else{ // param vide
			

			param[step][prm] = null;
	
			if(check_obl(step,prm) == true && document.getElementById(prm+'_ok') != undefined){
				document.getElementById(prm+'_ok').innerHTML = ' <img src="/cmd_ico/ko_v.png" align="absmiddle">';
			}
			else if(document.getElementById(prm+'_ok') != undefined){
				document.getElementById(prm+'_ok').innerHTML = '';
			}
			
			logs('Set KO');
			return false;	
		}
	}
	else{
		logs('Set KO');
		return false;	
	}
}
function step_get(step,prm){
	if(param[step][prm] != undefined){
		return param[step][prm];
	}
	else{
		return null;	
	}
}
function step_head_glow(id){

	document.getElementById('header_'+id).className = 'header_active';
	document.getElementById('header_'+id).style.color = '#FFFFFF';
	
}
function step_head_unglow(id){
	document.getElementById('header_'+id).className = 'header_done';
	
	document.getElementById('header_'+id).style.cursor = 'pointer';
	document.getElementById('header_'+id).onclick = new Function('back_step('+id+');');
	document.getElementById('header_'+id).onmouseover = new Function('highlight('+id+');');
	document.getElementById('header_'+id).onmouseout = new Function('lowlight('+id+');');
	
	if(document.getElementById('button_'+id) != null){
		if(step_current != 4){
			document.getElementById('button_'+id).className = 'lbutton';
		}
		document.getElementById('button_'+id).disabled = false;
	}
	
	lowlight(id);
}
function getPosition(obj){
	
    var topValue = 0;
	var leftValue = 0;
	
    while(obj){
		leftValue += obj.offsetLeft;
		topValue += obj.offsetTop;
		obj = obj.offsetParent;
    }
	
    var finalvalue = topValue;
    return finalvalue;
}
function step_scroll(id){
	goto = getPosition(document.getElementById(et+id))-70;
	
	if(isNaN(goto) == false){
		//window.scrollBy(1,0);
		sct = setInterval('scrollme('+goto+')',1);
	}
}
function scrollme(to){
	
	var ScrollTop = document.body.scrollTop;
	if (ScrollTop == 0){
    	if (window.pageYOffset) ScrollTop = window.pageYOffset;
		else ScrollTop = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;

	}
	
	if(ScrollTop < to){
		window.scrollBy(0,40);
	}

	if(ScrollTop > to-40){
		clearInterval(sct);
	}
}
// fonction specifique
function step_login_active(){
	if(document.getElementById(et+'login') != undefined){
		document.getElementById(et+'login').disabled = false;
		document.getElementById(et+'pass').disabled = false;
		document.getElementById(et+'login').focus();
	}
}
function step_login_unactive() {
	if(document.getElementById(et+'login') != undefined){
		document.getElementById(et+'login').disabled = true;
		document.getElementById(et+'pass').disabled = true;
		document.getElementById(et+'login').value = '';
		document.getElementById(et+'pass').value = '';
	}
}
function getcpraw(step,from,val,dest){
	if(val.length == 5){
		step_set(step,from,val);
		getcp(dest,val);
	}
}
function getcp(cont,cp){
	
	if(cp.length > 3){
	
		var xhr_object_7 = construct();
		xhr_object_7.onreadystatechange = function(){
			
			if(xhr_object_7.readyState == 4){
				if(xhr_object_7.status == 200){
					var it = xhr_object_7.responseText;
					document.getElementById(et+cont).value = it;
					step_set(step_current,cont,it);
				}
				else{
					alert('Erreur HTTP Code '+xhr_object_7.status);	
				}
			}
		};
			
		xhr_object_7.open("GET", '/services.php?'+step_session()+'&mode=newcp&cp='+cp, true);
		xhr_object_7.send(null);
	}
}
function copyliv(el){
	
	if(el.checked == false){
		step_set(2,'liv','0');

		step_set(3,'liv_nom', step_get(2,'prenom')+' '+step_get(2,'nom'));
		step_set(3,'liv_societe', step_get(2,'societe'));
		step_set(3,'liv_adresse', step_get(2,'adresse'));
		step_set(3,'liv_adresse2', step_get(2,'adresse2'));
		step_set(3,'liv_cp', step_get(2,'cp'));
		step_set(3,'liv_ville', step_get(2,'ville'));
		step_set(3,'tel2', step_get(2,'tel'));
		
		logs('copyliv');
	}
	else{
		step_set(2,'liv','1');
	}
}
function mailcheck(ml){
	
	if(ml.length > 0){
	
		document.getElementById('email_ok').innerHTML = ' <img src="/cmd_ico/loading.gif" height="15" width="15" align="absmiddle" />';
		
		var xhr_object_8 = construct();
		xhr_object_8.onreadystatechange = function(){
			
			if(xhr_object_8.readyState == 4){
				if(xhr_object_8.status == 200){
	
					var it = xhr_object_8.responseText;
	
					if(it == 'NOOK'){
						error_show(2,'email');
						step_set(2,'email',null);	
						var ir = confirm('Ce compte existe déja, voulez vous que votre mot de passe vous soit renvoyé par e-mail ?');
						if(ir == true){
							recover_pass(ml);
						}
					}
					else if(it == 'SYNTH'){
						error_show(2,'email');
						step_set(2,'email',null)
						alert('Votre adresse e-mail semble incorrecte');
					}
					else if(it == 'DOMAIN'){
						error_show(2,'email');
						step_set(2,'email',null)
						alert('Votre adresse e-mail semble incorrecte, ce nom de domaine n\'existe pas');
					}
					else if(it == 'ST'){
						error_clear(2,'email');
						step_set(2,'email',ml);	
						alert("Nous n\'arrivons pas à contacter cette adresse, merci de vérifier votre e-mail\n");
					}
					else{
						error_clear(2,'email');
						step_set(2,'email',ml);	
					}
	
				}
				else{
					alert('Erreur HTTP Code '+xhr_object_8.status);	
				}
			}
		};
			
		xhr_object_8.open("GET", '/services.php?'+step_session()+'&mode=dispo&login='+ml, true);
		xhr_object_8.send(null);
		
	}
	else{
		error_show(2,'email');
		step_set(2,'email',null)	
	}

}
function cgv_ok(){
	if(document.getElementById(et+'confirm').checked == true){
		step_set(4,'confirm','1');	
	}
	else{
		step_set(4,'confirm',null);	
	}
}
function mode_paiement(il){
	
	document.getElementById('pay'+il).checked = true;
	
	var i = 1;
	var m = 5;
	
	while(i != 5){
		if(i != id){	
			document.getElementById('lnp'+i).style.borderLeft = '10px solid #C0C0C0';
		}
		i++;
	}
	
	document.getElementById('lnp'+il).style.borderLeft = '10px solid #3f7c2e';
	step_set(4,'modep',il);
	
	document.getElementById('etape_modep').value = il;
	
}
function cmd_typesel(type,elem){
	
	elem.checked = true;
	logs("Type de compte : "+type);
	
	if(type == 'create' || type == 'flash'){
		step_login_unactive();
		document.getElementById('etape_registred').value = elem.value;
		step_set(0,'registred',document.getElementById('etape_registred').value);
		document.getElementById('etape_login_hide').style.display = 'none';
	}
	else if(type == 'fb'){
		step_login_unactive();
		document.getElementById('etape_registred').value = elem.value;
		step_set(0,'registred',document.getElementById('etape_registred').value);
		document.getElementById('etape_login_hide').style.display = 'none';
		start_facebook();
	}
	else{
		
		document.getElementById('etape_login_hide').style.display = 'block';
		step_login_active();
		document.getElementById('etape_registred').value = elem.value;
		step_set(0,'registred',document.getElementById('etape_registred').value);
	}
	
}
function start_facebook(){
	
	if(window.location.hash.length == 0){
		var url = "https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=" + window.location +"&response_type=token";
		window.open(url,'facebook','height=400,width=500');
	}
	else {
		var accessToken = window.location.hash.substring(1);
		var graphUrl = "https://graph.facebook.com/me?" + accessToken +"&callback=login_facebook";
	
		//use JSON-P to call the graph
		var script = document.createElement("script");
		script.src = graphUrl;
		document.body.appendChild(script);  
	}	
	
}
function login_facebook(user){
	logs(user.name);
}
function cmd_add(id,qty){
	boxloader('box.php?mode=cross&id='+id+'&qty='+qty);
}
function cmd_multicancel(){
	clearbx();
	location = '/index.php?/panier';
}
function cmd_multiadd(count){
	
	var i = 0;
	var chaine = '';
	
	while(i != count){
		
		var vl = document.getElementById('multi_add_'+i);
		
		if(vl != undefined){
			if(vl.checked == true){ // ok on ajoute
				chaine += '&id_'+i+'='+vl.value;
			}

		}
		i++;
	}
	
	var xhr_object = construct();
	xhr_object.onreadystatechange = function(){
		if(this.readyState == 4){
			if(this.status == 200){
				cmd_multicancel();
				xhr_object = null;
			}
		}
	};
			
	xhr_object.open("GET", '/services.php?mode=manual_add'+chaine, true);
	xhr_object.send(null);

	
	
}
function cmd_devis(session_n,session_i){
	boxloader('box.php?mode=devis&'+session_n+'='+session_i);
}
function cmd_devis_validate(idr,session_n,session_i){
	
	_gaq.push(['_trackEvent', 'Devis', 'Création d\'un devis']);
	
	if(isIE() != false){ // bug fix IE pdf/Popup
		location = '/services.php?mode=devis_free&nom='+idr+'&'+session_n+'='+session_i;
	}
	else{
		window.open('/services.php?mode=devis_free&nom='+idr+'&'+session_n+'='+session_i,'devis');
	}
	clearbx();
}
function cmd_reduc(session_n,session_i){
	boxloader('box.php?mode=reduc&'+session_n+'='+session_i);
}

function cmd_reduc_validate(idr,session_n,session_i){

	var xhr_object = construct();
	xhr_object.onreadystatechange = function(){
		
		if(xhr_object.readyState == 4){

			if(xhr_object.status == 200){

				var it = xhr_object.responseText;

				if(it == 'OK'){
					alert('Bon de réduction enregistré !');
					_gaq.push(['_trackEvent', 'Bon de réduction', 'Utilisation d\'un bon de réduction',idr]);
					
					clearbx();
					location = '/index.php?/panier';
				}
				else if(it == 'EX'){
					alert('Ce bon de réduction n\'est plus valable.');
				}
				else{
					alert('Ce bon de réduction n\'existe pas.');
				}

			}
			else{
				alert('Erreur HTTP Code '+xhr_object.status);	
			}
		}
	};

	xhr_object.open("GET", '/services.php?&mode=promo_use&ref='+idr+'&'+session_n+'='+session_i, true);
	xhr_object.send(null);
	
}
function start_logs(){
	document.getElementById('debugger').style.display = 'block';	
}
function logs(data){
	document.getElementById('debugger').innerHTML += '<br>'+data;
	document.getElementById('debugger').scrollTop = 999999999999999999999;
}
function highlight(id){
	document.getElementById('header_'+id).style.color = '#FFF';
	
	var x = getPosition(document.getElementById('header_'+id));
	setlight(x,'Cliquez ici pour revenir à cette étape');
	document.getElementById('helper').style.display = 'block';
}
function lowlight(id){
	document.getElementById('header_'+id).style.color = '#999';
	document.getElementById('helper').style.display = 'none';
}
function setlight(height,data){
	document.getElementById('helper').style.top = height+'px';
	document.getElementById('helper').innerHTML = '<div style="padding:10px">'+data+'</div>';	
}
