
var xm = xmb = ov = 0;
var M = true;

function dock(dock, sMin, sMax)
{
	this.icons = document.getElementById(dock).getElementsByTagName('img');
	this.N = this.icons.length;
	this.s = sMin;
	this.ovk = 0;
	this.pxLeft = function(o)
	{
		for(var x=-document.documentElement.scrollLeft; o != null; o = o.offsetParent) x+=o.offsetLeft;
		return x;
	}
	for(var i=0; i<this.N; i++)
	{
		with(this.icons[i])
		{
			style.width = sMin+"px";
			style.height = Math.floor(((sMin/4)*3))+"px";
			className = "dockicon";
		}
	}
	this.run = function()
	{
		with(this)
		{
			for(var i=0; i<N; i++)
			{
				var o = icons[i];
				var W = parseInt(o.style.width);
				if(ov && ov.className=="dockicon")
				{
					if(ov!=ovk)
					{
						ovk=ov;
						document.getElementById("legend").innerHTML = ov.lang;
					}
					
					if(M) W = Math.max((s*Math.cos(((pxLeft(o)+W/2)-xm)/sMax)),sMin);
					s = Math.min(sMax,s+1);
				}
				else
				{
					s = Math.max(s-1,sMin);
					W = Math.max(W-N,sMin);
				}
				o.style.width = W+"px";
				o.style.height = Math.floor(((W/4)*3))+"px";
			}
			if(s >= sMax) M = false;
		}
	}
}
function dock2(dock, sMin, sMax)
{
	this.icons = document.getElementById(dock).getElementsByTagName('img');
	this.N = this.icons.length;
	this.s = sMin;
	this.ovk = 0;
	this.pxLeft = function(o)
	{
		for(var x=-document.documentElement.scrollLeft; o != null; o = o.offsetParent) x+=o.offsetLeft;
		return x;
	}
	for(var i=0; i<this.N; i++)
	{
		with(this.icons[i])
		{
			style.width = sMin+"px";
			style.height = Math.floor(((sMin/4)*3))+"px";
			className = "dockicon2";
		}
	}
	this.run = function()
	{
		with(this)
		{
			for(var i=0; i<N; i++)
			{
				var o = icons[i];
				var W = parseInt(o.style.width);
				if(ov && ov.className=="dockicon2")
				{
					if(ov!=ovk)
					{
						ovk=ov;
						document.getElementById("legend").innerHTML = ov.lang;
					}
					
					if(M) W = Math.max((s*Math.cos(((pxLeft(o)+W/2)-xm)/sMax)),sMin);
					s = Math.min(sMax,s+1);
				}
				else
				{
					s = Math.max(s-1,sMin);
					W = Math.max(W-N,sMin);
				}
				o.style.width = W+"px";
				o.style.height = Math.floor(((W/4)*3))+"px";
			}
			if(s >= sMax) M = false;
		}
	}
	
}

document.onmousemove = function(e)
{
	if(window.event) e=window.event;
	xm = (e.x || e.clientX);
	if(xm!=xmb){
		M = true;
		xmb = xm;
	}
	else {
		//document.getElementById("legend").innerHTML = '&nbsp;'; // comment for reload_config=1;
		//document.getElementById("legend2").innerHTML = '&nbsp;';
	}
	ov = (e.target)?e.target:((e.srcElement)?e.srcElement:null);
}
window.onload = function()
{
	dock = new dock("dock", 50, 100);
	setInterval("dock.run()", 16);
	
	dock2 = new dock2("dock2", 50, 100);
	setInterval("dock2.run()", 16);

	initCfgTapis();
	if (reload_config==1) reloadConfig();
}


// --------------------------------------------------------------------------------------



var default_square_size = 30;

var min_larg = 60;
var min_long = 60;

var max_nb_square_larg = 40;
var max_nb_square_long = 60;

// --------------------------------------------------------------------------------------

function initCfgTapis() {
	setSquareSize(default_square_size);
	//document.form_cfg.square_size.value=default_square_size; 
	//alert(default_square_size);
	
	layerDisplay('DIV_layer_choose_teinte', 'OFF');
	
	layerDisplay('DIV_motif_lateral_band', 'OFF');
	
	layerDisplay('DIV_layer_choose_teinte', 'OFF');
	
	layerDisplay('DIV_add_to_basket', 'OFF');
	
	computeConfig();
}

function resetCfg() {
	setSquareSize(default_square_size);
	setMotifPrincipal('');	
	setLargSize(min_larg)
	setLongSize(min_long);
	setAddLateralBand(0);
	setMotifSecondaire('');
	initCfgTapis();
	computeConfig();
}

function setMotifPrincipal(_motif_principal) {
	document.form_cfg_data.motif_principal.value=_motif_principal; 
	//	alert(document.form_cfg_data.motif_principal.value);
	if (_motif_principal=='ELM-01') {
		_square_size = 10;
		setSquareSize(_square_size);
	}
	layerDisplay('DIV_layer_choose_teinte', 'OFF');
	refreshMotifPrincipal(_motif_principal) ;
	computeConfig();
}

function refreshMotifPrincipal(_motif_principal) {
	if (_motif_principal!='') {
		setImg('img_motif_principal', arrMotifPrincipal[_motif_principal]['img_path']);
	}
	else {
		setImg('img_motif_principal', IMG_ROOT+LANGUAGE_CODE+'/cfg_tapis/choix_motif_principal.gif');
	}
}


function setMotifSecondaire(_motif_secondaire) {
	document.form_cfg_data.motif_secondaire.value=_motif_secondaire; 
	//	alert(document.form_cfg_data.motif_secondaire.value);
	layerDisplay('DIV_layer_choose_teinte', 'OFF');
	refreshMotifSecondaire(_motif_secondaire) ;
	computeConfig();
}

function refreshMotifSecondaire(_motif_secondaire) {
	if (_motif_secondaire!='') {
		setImg('img_motif_secondaire', arrMotifSecondaire[_motif_secondaire]['img_path']);
	}
	else {
		setImg('img_motif_secondaire', IMG_ROOT+LANGUAGE_CODE+'/cfg_tapis/choix_motif_secondaire.gif');
	}
}


function setSquareSize(_square_size) {
	document.form_cfg_data.square_size.value=_square_size; 
	setSelectedDropdownVal(document.form_cfg.square_size, _square_size);
	
	var motif_principal = document.form_cfg_data.motif_principal.value;
	
	// alert('setSquareSize::document.form_cfg_data.square_size.value='+document.form_cfg_data.square_size.value);
	
	// -----------------------
	
	updateDropdownLargSize(_square_size);
	
	var old_larg_size = document.form_cfg_data.larg_size.value;
	var new_larg_size = min_larg; // par défaut
	
	var boolCompatibleLargSize = verifCompatibleLargSize();
	if (boolCompatibleLargSize==1) {
		new_larg_size = old_larg_size;
	}
	else {
		if (motif_principal !='') alert('Attention : veuillez rectifier la largeur de votre tapis qui n\est pas compatible avec la taille des carreaux choisie');
	}
	
	setLargSize(new_larg_size);
	setSelectedDropdownVal(document.form_cfg.larg_size, new_larg_size);
	
	// -----------------------
	
	updateDropdownLongSize(_square_size);
	
	var old_long_size = document.form_cfg_data.long_size.value;
	var new_long_size = min_long; // par défaut
	
	var boolCompatibleLongSize = verifCompatibleLongSize();
	if (boolCompatibleLongSize==1) {
		new_long_size = old_long_size;
	}
	else {
		if (motif_principal !='') alert('Attention : veuillez rectifier la longueur de votre tapis qui n\est pas compatible avec la taille des carreaux choisie');
	}
	
	setLongSize(new_long_size);
	setSelectedDropdownVal(document.form_cfg.long_size, new_long_size);
	
	// -----------------------
	
	computeConfig();
}


function setLargSize(_larg_size) {
	document.form_cfg_data.larg_size.value=_larg_size; 
	//alert(document.form_cfg_data.larg_size.value);
	setSelectedDropdownVal(document.form_cfg.larg_size, _larg_size);
	computeConfig();
}

function verifCompatibleLargSize() {
	_larg_size = document.form_cfg_data.larg_size.value; 
	var _formObj = document.form_cfg.larg_size;
	result=0;
	
	for (var i=0; i<_formObj.options.length ; i++) {
		if (_formObj.options[i].value==_larg_size) result=1;
    }
	return result;
}

function setLongSize(_long_size) {
	document.form_cfg_data.long_size.value=_long_size; 
	//alert(document.form_cfg_data.long_size.value);
	setSelectedDropdownVal(document.form_cfg.long_size, _long_size);
	computeConfig();
}

function verifCompatibleLongSize() {
	_long_size = document.form_cfg_data.long_size.value; 
	var _formObj = document.form_cfg.long_size;
	result=0;
	
	for (var i=0; i<_formObj.options.length ; i++) {
		if (_formObj.options[i].value==_long_size) result=1;
    }
	return result;
}



function setAddLateralBand(_add_lateral_band) {
	document.form_cfg_data.add_lateral_band.value=_add_lateral_band; 
	//alert(document.form_cfg_data.add_lateral_band.value);
	if (_add_lateral_band==1) {
		// cocher les boutons radio
		setCheckedRadioVal(document.form_cfg.add_lateral_band, 1);
		layerDisplay('DIV_motif_lateral_band', 'ON');
	}
	else {
		// decocher les boutons radio
		setCheckedRadioVal(document.form_cfg.add_lateral_band, 0);
		layerDisplay('DIV_motif_lateral_band', 'OFF');
	}
	computeConfig();
}



function computeConfig() {
	computeSurface();
	computePrice();
	computeDescriptif();
	displayAddBasketContent();
}

function computeSurface() {
	var square_size = document.form_cfg_data.square_size.value; 
	var larg_size = document.form_cfg_data.larg_size.value; 
	var long_size = document.form_cfg_data.long_size.value; 
	var motif_principal = document.form_cfg_data.motif_principal.value; 
	var add_lateral_band = document.form_cfg_data.add_lateral_band.value;
	var motif_secondaire = document.form_cfg_data.motif_secondaire.value;
	
	//alert('computeSurface::motif_principal='+motif_principal);
	if (motif_principal!='') {
		var p_surface = larg_size*long_size;
		var s_surface = 0;
		
		var total_larg_size = larg_size;
		var total_long_size = long_size;
		
		if (motif_secondaire!='' && add_lateral_band==1) {
			s_surface = (larg_size*15)*2 + (long_size*15)*2 + (15*15*4);
			//alert(s_surface);
			total_larg_size = larg_size*1+30;
			total_long_size = long_size*1+30;
		}
		surface = p_surface + s_surface;
		var dsp_p_surface_m2 = p_surface/10000;
		var dsp_s_surface_m2 = s_surface/10000;
		var dsp_surface_m2 = surface/10000;
		
		document.form_cfg_data.p_surface_m2.value 	= dsp_p_surface_m2;
		document.form_cfg_data.s_surface_m2.value 	= dsp_s_surface_m2;
		document.form_cfg_data.surface_m2.value 	= dsp_surface_m2; 
		//alert(s_surface);
		updateLayerContent('DIV_surface', '<br>Surface : '+dsp_surface_m2+' m²');
		updateLayerContent('DIV_larg_long', '<br>Larg x Long : '+total_larg_size+' cm x '+total_long_size+' cm');
		layerDisplay('DIV_surface', 'ON');
		layerDisplay('DIV_larg_long', 'ON');
	}
	else {
		layerDisplay('DIV_surface', 'OFF');
		layerDisplay('DIV_larg_long', 'OFF');
	}
}

function computePrice() {
	var p_surface_m2 	= document.form_cfg_data.p_surface_m2.value; 
	var s_surface_m2 	= document.form_cfg_data.s_surface_m2.value; 
	
	var surface_m2 		= document.form_cfg_data.surface_m2.value; 
	
	var motif_principal 	= document.form_cfg_data.motif_principal.value; 
	var motif_secondaire 	= document.form_cfg_data.motif_secondaire.value;
	
	var square_size = document.form_cfg_data.square_size.value; 
	
	if (motif_principal!='') {
		var p_prix_eur = 0;
		var s_prix_eur = 0;
		
		var p_prix_eur_m2 = 0;
		var s_prix_eur_m2 = 0;
		
		var dsp_prix_eur = 'Prix non disponible';
		
		
		var ArrPrice = arrMotifPrincipal[motif_principal]['pr'];
		ArrPrice = ArrPrice.split('|');
		var ArrTanche = arrMotifPrincipal[motif_principal]['tr'];
		ArrTanche = ArrTanche.split('|');
		
		
		/*
		if (p_surface_m2<2) p_prix_eur_m2 = arrMotifPrincipal[motif_principal]['prix_1'];
		if (p_surface_m2>=2) p_prix_eur_m2 = arrMotifPrincipal[motif_principal]['prix_2'];
		if (p_surface_m2>=5) p_prix_eur_m2 = arrMotifPrincipal[motif_principal]['prix_3'];
		if (square_size==60) p_prix_eur_m2 = p_prix_eur_m2 * 1.30;
		
		if (motif_secondaire!='') {
			if (s_surface_m2<2) s_prix_eur_m2 = arrMotifSecondaire[motif_principal]['prix_1'];
			if (s_surface_m2>=2) s_prix_eur_m2 = arrMotifSecondaire[motif_principal]['prix_2'];
			if (s_surface_m2>=5) s_prix_eur_m2 = arrMotifSecondaire[motif_principal]['prix_3'];
		}
		*/
		
		//alert(p_surface_m2);
		p_prix_eur = getPrice(p_surface_m2, ArrTanche, ArrPrice, 0, 0);
		if (square_size==60) p_prix_eur = p_prix_eur * 1.30;
		
		s_prix_eur = fPrix(s_surface_m2, ArrTanche, ArrPrice, 0, 0);
		
		prix_eur = p_prix_eur + s_prix_eur;
		document.form_cfg_data.prix_eur.value = Math.floor(prix_eur); 
		
		document.form_cfg_data.p_surface_m2.value 	= p_surface_m2; 
		document.form_cfg_data.s_surface_m2.value 	= s_surface_m2; 
		document.form_cfg_data.surface_m2.value 	= surface_m2; 
		
		if (prix_eur>0) dsp_prix_eur = '<br>Prix : '+priceDevise(prix_eur, CURRENT_devise_code, 0); 
		
		updateLayerContent('DIV_price', ''+dsp_prix_eur);
		layerDisplay('DIV_price', 'ON');
	}
	else {
		layerDisplay('DIV_price', 'OFF');
	}
}

function getPrice(p_surface_m2, At, Ap, prixInit, i) { 
  return fPrix(p_surface_m2, At, Ap, prixInit, i); 
} 

function priceDevise(_price_euro, _code_devise, _precision) {
	
	var taux_eur_chf = TAUX_EUR_CHF;
	if (_code_devise!='EUR') {
		if (_code_devise =='CHF') var res = _price_euro*taux_eur_chf;
	}
	else {
		var res = _price_euro;
	}
	return formatNumber(Math.round(res))+' '+_code_devise;
}


function fPrix(p_surface_m2, At, Ap, prixInit, i) {
	
	var stop = 0;
	var prix = 0;
	var nbTr = At.length;
	
	var nbPr = Ap.length;
	var j = i + 1;
	var t_i = (At[i])*1; 
	var t_j = (At[j])*1;
	
	var p_i = (Ap[i])*1; 
	var p_j = (Ap[j])*1;
	//alert("p_surface_m2="+p_surface_m2+"   (p_surface_m2>t_j)="+(p_surface_m2>t_j)+"   |  t_j="+t_j+"   |  t_i="+t_i);
	if (p_surface_m2>t_j) {
		prix = prixInit + (t_j - t_i)*p_i;
		if (i==nbTr) stop=1;
	}
	else {
		prix = prixInit + (p_surface_m2 - t_i)*p_i;
		stop=1;
	}
	
	if (stop == 1) {
		return Math.floor(prix);
	}
	else {
		return fPrix(p_surface_m2, At, Ap, prix, j);
	}
}

function computeDescriptif() {
	var result = '';
	var surface_m2 			= document.form_cfg_data.surface_m2.value; 
	var prix_eur 			= document.form_cfg_data.prix_eur.value; 
	var motif_principal 	= document.form_cfg_data.motif_principal.value;
	var square_size 		= document.form_cfg_data.square_size.value; 
	var larg_size 			= document.form_cfg_data.larg_size.value; 
	var long_size 			= document.form_cfg_data.long_size.value; 
	var add_lateral_band 	= document.form_cfg_data.add_lateral_band.value; 
	var motif_secondaire 	= document.form_cfg_data.motif_secondaire.value; 
	
	result = result + 'surface_m2='+surface_m2+'#';
	result = result + 'prix_eur='+prix_eur+'#';
	result = result + 'motif_principal='+motif_principal+'#';
	result = result + 'square_size='+square_size+'#';
	result = result + 'larg_size='+larg_size+'#';
	result = result + 'long_size='+long_size+'#';
	result = result + 'add_lateral_band='+add_lateral_band+'#';
	result = result + 'motif_secondaire='+motif_secondaire+'#';
	
	document.form_cfg_tapis.p_descriptif.value = result; 
	document.form_cfg_tapis.p_prix.value = prix_eur;
	//alert(url_root);
	document.getElementById("track_iframe").src = url_root + 'catalog/track_iframe.php?compute=cfg_tapis&val='+result.replace(/#/g, "|");
	//alert(document.getElementById("track_iframe").src);
}

function updateDropdownLargSize(_square_size) {
	var strOut='';
	var min_nb_square_larg = min_larg/_square_size;
	//alert('min_larg='+min_larg);
	strOut='<select name="larg_size" id="larg_size" OnChange="setLargSize(document.form_cfg.larg_size.options[document.form_cfg.larg_size.selectedIndex].value);">';
	//alert('strOut='+strOut);
	for(var i=min_nb_square_larg ; i<=max_nb_square_larg ; i++) {
		strOut= strOut + '<option value="'+i*_square_size+'">'+i*_square_size+'</option>';
	}
	strOut= strOut + '</select>';
	//alert('strOut='+strOut);
	updateLayerContent('DIV_dropdown_larg', strOut);
}

function updateDropdownLongSize(_square_size) {
	var strOut='';
	var min_nb_square_long = min_long/_square_size;
	//alert('min_long='+min_long);
	strOut='<select name="long_size" id="long_size" OnChange="setLongSize(document.form_cfg.long_size.options[document.form_cfg.long_size.selectedIndex].value);">';
	//alert('strOut='+strOut);
	for(var i=min_nb_square_long ; i<=max_nb_square_long ; i++) {
		strOut= strOut + '<option value="'+i*_square_size+'">'+i*_square_size+'</option>';
	}
	strOut= strOut + '</select>';
	//alert('strOut='+strOut);
	updateLayerContent('DIV_dropdown_long', strOut);
}


function displayAddBasketContent() {
	var outStr ='';
	var motif_principal = document.form_cfg_data.motif_principal.value; 
	var prix_eur = document.form_cfg_data.prix_eur.value; 
	
	//alert(prix_eur);
	
	if (motif_principal!='' && prix_eur>0) {
		layerDisplay('DIV_add_to_basket', 'ON');
	}
	
	else {
		layerDisplay('DIV_add_to_basket', 'OFF');
	}

}


// --------------------------------------------------------------------------------------
// --

function setSelectedDropdownVal(_formObj, _val) {
	for (var i=0; i<_formObj.options.length ; i++) {
		if (_formObj.options[i].value==_val) _formObj.options[i].selected=true;
	}
}

function setCheckedRadioVal(_formObj, _val) {
	//alert("_formObj.length="+_formObj.length);
	for (var i=0; i<_formObj.length ; i++) {
		//alert(_formObj[i]);
		_formObj[i].checked=false;
		if (_formObj[i].value==_val) _formObj[i].checked=true;
	}
}

function updateLayerContent(_layer_name, _layer_content) {
	var pObjLayer = document.getElementById(_layer_name);
	pObjLayer.innerHTML = _layer_content;
}

function layerDisplay(pLayerName, pState) {
	var pObjLayer = document.getElementById(pLayerName);
	if (pState=='ON') {	
		pObjLayer.style.display = '';
	}
	else {
		pObjLayer.style.display = 'none';
	}
}

function setImg(_imgId, _imgSrc) {
	/*
	var pObjLayer = document.getElementById(_imgId);
	pObjLayer.src = _imgSrc;
	*/
	strImg = "document."+_imgId+".src='"+_imgSrc+"'";
	eval(strImg);
}