var lang;
var coloris_selected = "";
var taille_selected = "";
var tab_dispo_temp = Array();

var over_coloris = function(coloris_id) {
	if(coloris_id != coloris_selected) {
		document.getElementById(coloris_id).className = "colorisdispo_over";
	}
}

var out_coloris = function(coloris_id) {
	if(coloris_id != coloris_selected) {
		document.getElementById(coloris_id).className = "colorisdispo";
	}
}

var select_coloris = function(coloris_id,prod_id) {
	if(coloris_selected == "") {
		document.getElementById(coloris_id).className = "colorisdispo_over";
		coloris_selected = coloris_id;
	} else {
		if(coloris_id != coloris_selected) {
			document.getElementById(coloris_selected).className = "colorisdispo";
			document.getElementById(coloris_id).className = "colorisdispo_over";
			coloris_selected = coloris_id;
		}
	}
	gamme_id = coloris_selected.replace("coloris_","");
	param = "prod_id="+prod_id+"&gamme_id="+gamme_id;
	new net.ContentLoader('ajax/get_tailles_dispo.php', affiche_tailles, '', 'POST', param, '', prod_id);
}

var over_taille = function(taille_id) {
	if(taille_id != taille_selected) {
		document.getElementById(taille_id).className = "tailledispo_over";
	}
}

var out_taille = function(taille_id) {
	if(taille_id != taille_selected) {
		document.getElementById(taille_id).className = "tailledispo";
	}
}

var select_taille = function(taille_id,prod_id) {
	if(taille_selected == "") {
		document.getElementById(taille_id).className = "tailledispo_over";
		taille_selected = taille_id;
	} else {
		if(taille_id != taille_selected) {
			document.getElementById(taille_selected).className = "tailledispo";
			document.getElementById(taille_id).className = "tailledispo_over";
			taille_selected = taille_id;
		} else {
			document.getElementById(taille_id).className = "tailledispo_over";
		}
	}
	
	gamme_id = coloris_selected.replace("coloris_","");
	taille = taille_selected.replace("taille_","");
	taille = taille.split("x");
	//on insert les valeurs dans le formulaire d'ajout au panier
	document.getElementById("prod_gamme_id").value = gamme_id;
	document.getElementById("prod_largeur").value = taille[0];

	//if(taille[1]) {
		document.getElementById("prod_longueur").value = taille[1];
	//}
	
	load_prix_produit(prod_id);
}

//load les différentes taille de produit disponible
var affiche_tailles = function(prod_id) {
	prod_id = this.paramfonction;
	reponse = this.req.responseText;
	if(reponse == "") {
		if(lang == "fr") {
			document.getElementById("div_listing_tailles").innerHTML = "Pas de tailles de disponible pour ce coloris.";
		} else if(lang == "uk") {
			document.getElementById("div_listing_tailles").innerHTML = "No size available for this colour.";
		} else if(lang == "de") {
			document.getElementById("div_listing_tailles").innerHTML = "Keine Größen verfügbaren für dieses Kolorit";
		}
	} else {
		document.getElementById("div_listing_tailles").innerHTML = reponse;
	}
	
	tab_taille = document.getElementById('div_listing_tailles');
	div_taille = tab_taille.getElementsByTagName('td');
	for(var i=0;i<div_taille.length;i++) {
		if(div_taille[i].className == "tailledispo" || div_taille[i].className == "tailledispo_over") {
			taille_selected = div_taille[i].id;
			break;
		}
	}
	select_taille(div_taille[i].id,prod_id);
	
	gamme_id = coloris_selected.replace("coloris_","");
	taille = taille_selected.replace("taille_","");
	param = "prod_id="+prod_id+"&gamme_id="+gamme_id+"&taille="+taille;
	new net.ContentLoader('ajax/get_image_produit.php', affiche_image_produit, '', 'POST', param, '', '');
}

var affiche_image_produit = function() {
	reponse = this.req.responseText;
	if(reponse == "") {
		document.getElementById("div_no_produit").style.display = "";
		document.getElementById("img_produit").style.display = "none";
	} else {
		document.getElementById("img_produit").src = reponse;
		document.getElementById("div_no_produit").style.display = "none";
		document.getElementById("img_produit").style.display = "";
	}
}

//load le prix du produit en fonction du colori et de la taille sélectionné
var load_prix_produit = function(prod_id) {
	gamme_id = coloris_selected.replace("coloris_","");
	taille = taille_selected.replace("taille_","");
	param = "prod_id="+prod_id+"&gamme_id="+gamme_id+"&taille="+taille+"&lang="+lang;
	new net.ContentLoader('ajax/get_prix_produit.php', affiche_prix_produit, '', 'POST', param, '', '');
	
	load_dispo(prod_id);
}

//load le prix du produit en fonction du colori et de la taille sélectionné
var load_dispo = function(prod_id) {
	gamme_id = coloris_selected.replace("coloris_","");
	taille = taille_selected.replace("taille_","");
	param = "prod_id="+prod_id+"&gamme_id="+gamme_id+"&taille="+taille+"&lang="+lang;
	new net.ContentLoader('ajax/get_disponibilite_produit.php', affiche_disponibilite_produit, '', 'POST', param, '', '');
}

var affiche_disponibilite_produit = function() {
	reponse = this.req.responseText;
	var reg_delai = new RegExp(/(Avec délai)/);
	var reg_epuise = new RegExp(/(Epuisé)/);
	var reg_stock = new RegExp(/(En stock)/);
	var tab_reponse = reponse.split(" (");

if(reponse == "") {
		document.getElementById("div_dispo_produit").innerHTML = "";
		document.getElementById("bt_add_to_cart").style.display = "none";
	} else {
		if(lang == "fr") {
			if(reg_epuise.test(reponse) || reg_delai.test(reponse)) {
				document.getElementById("div_dispo_produit").innerHTML = tab_reponse[0];
			}
			else {
				document.getElementById("div_dispo_produit").innerHTML = reponse;
			}
		} else if(lang == "uk") {
			if(reponse == "Avec délai" || reg_delai.test(reponse)) {
				dispo = "Soon available";
			} else if(reponse == "Epuisé" || reg_epuise.test(reponse)) {
				dispo = "Non available";
			} else if(reponse == "En stock" || reg_stock.test(reponse)) {
				dispo = "Available";
				if(tab_reponse[1]) { 
					dispo = dispo+" ("+tab_reponse[1];
				}
			} else {
				dispo = "Non available";
			}
			document.getElementById("div_dispo_produit").innerHTML = dispo;
		} else if(lang == "de") {
			if(reponse == "Avec délai" || reg_delai.test(reponse)) {
				dispo = "Bald verfügbar";
			} else if(reponse == "Epuisé" || reg_epuise.test(reponse)) {
				dispo = "Nicht verfügbar";
			} else if(reponse == "En stock" || reg_stock.test(reponse)) {
				dispo = "Verfügbar";
				if(tab_reponse[1]) { 
					dispo = dispo+" ("+tab_reponse[1];
				}
			} else {
				dispo = "Nicht verfügbar";
			}
			document.getElementById("div_dispo_produit").innerHTML = dispo;
		}
		
		if(reponse == "Avec délai" || reg_delai.test(reponse)) {
			document.getElementById("bt_add_to_cart").style.display = "none";
			document.getElementById("mt_total_titre").style.display = "none";
			document.getElementById("mt_total_tableau").style.display = "none";
		} else if(reponse == "Epuisé" || reg_epuise.test(reponse)) {
			document.getElementById("bt_add_to_cart").style.display = "none";
			document.getElementById("mt_total_titre").style.display = "none";
			document.getElementById("mt_total_tableau").style.display = "none";
		} else if(reponse == "En stock" || reg_stock.test(reponse)) {
			document.getElementById("bt_add_to_cart").style.display = "";
			document.getElementById("mt_total_titre").style.display = "";
			document.getElementById("mt_total_tableau").style.display = "";
		}
		
		// on stocke la longueur dispo pour vérif avant commande
		if(document.getElementById("lg_dispo")) {
			document.getElementById("lg_dispo").value = reponse;
			var reg = new RegExp(/([0-9\.]+)m/);
			var lg_dispo = reg.exec(document.getElementById("lg_dispo").value);
			document.getElementById("lg_dispo").value = lg_dispo[1];
		}
	}
}

var affiche_prix_produit = function() {
	reponse = this.req.responseText;
	if(reponse == "") {
		document.getElementById("div_prix_produit").innerHTML = "";
	} else {
		reponses = reponse.split("|");
		prix_vente = reponses[0];
		is_promo = reponses[1];
		prix_ori = reponses[2];
		document.getElementById("prod_prix").value = FormatPrix(prix_vente);
		if(is_promo == 0) {
			document.getElementById("ancienprix").style.display = 'none';
		} else {
			document.getElementById("ancienprix").style.display = '';
			document.getElementById("ancienprix").innerHTML = FormatPrix(prix_ori)+" €";
		}
		document.getElementById("div_prix_produit").innerHTML = FormatPrix(prix_vente)+" €";
		
		if(document.getElementById("prix_metre")) {
			document.getElementById("prix_metre").value = FormatPrix(prix_vente);
			prix_total_metre();
		}
	}
	
	update_md5_security();
}

var update_md5_security = function() {
	prod_id = document.getElementById("add").value;
	gamme_id = document.getElementById("prod_gamme_id").value;
	prod_largeur = document.getElementById("prod_largeur").value;
	prod_longueur = document.getElementById("prod_longueur").value;
	prod_prix = document.getElementById("prod_prix").value;
	document.getElementById("md5_security").value = MD5(prod_id+gamme_id+prod_largeur+prod_longueur+prod_prix);
}

var FormatPrix = function (prix) {
	if(prix.indexOf('.') == -1) {
		prix = prix+".00";
	} else {
		tab_prix = prix.split(".");
		if(tab_prix[1].length==0) {
			tab_prix[1] = "00";
		} else if(tab_prix[1].length==1) {
			tab_prix[1] = tab_prix[1]+"0";
		}
		prix = tab_prix[0]+"."+tab_prix[1];
	}
	return prix;
}

//PAGE TEXTURE
var load_texture_properties = function(gamme_id,lang) {
	param = "gamme_id="+gamme_id+"&lang="+lang;
	new net.ContentLoader('ajax/get_properties_gamme.php', load_properties, '', 'POST', param, '', '');
}

var load_properties = function() {
	response = this.req.responseText;
	response = response.split("|");
	gamme_nom = response[0];
	gamme_desc = response[1];
	gamme_photo = response[2];
	
	if(gamme_photo == '') {		
		document.getElementById("no_texture").style.display = "";
		document.getElementById("img_texture").style.display = "none";
	} else {
		document.getElementById("img_texture").src = gamme_photo;
		document.getElementById("img_texture").style.display = "";
		document.getElementById("no_texture").style.display = "none";
	}
	
	if(gamme_desc != '') {
		document.getElementById("texture_desc").innerHTML = gamme_desc;
		document.getElementById("texture_desc").style.textAlign = "justify";
	} else {
		if(lang == "fr") {
			document.getElementById("texture_desc").innerHTML = "<div style='width:100%; height:295px; overflow-y:auto;' align='justify'>Pas de description pour cette texture.</div>";
		} else if(lang == "uk") {
			document.getElementById("texture_desc").innerHTML = "<div style='width:100%; height:295px; overflow-y:auto;' align='justify'>No description for this colour.</div>";
		} else if(lang == "de") {
			document.getElementById("texture_desc").innerHTML = "<div style='width:100%; height:295px; overflow-y:auto;' align='justify'>Keine Beschreibung</div>";
		}
	}
	document.getElementById("texture_nom").innerHTML = gamme_nom;
}

// fonction qui change le bandeau de vignette en fonction du coloris sélectionné
var change_bandeau_img = function(gamme_id,mini_js) {
	var mini = mini_js.split('/');
	for(var i=0; i<mini.length; i++) {
		document.getElementById("mini_"+mini[i]).style.display = 'none';
	}
	if(document.getElementById("mini_"+gamme_id)) {
		document.getElementById("mini_"+gamme_id).style.display = '';
	}
	else if(document.getElementById("mini_0")) {
		document.getElementById("mini_0").style.display = '';
	}
	
	// on remet la vignette a sa couleur initiale
	var old_img_id = document.getElementById('old_selected_img').value;
	if(old_img_id != "") {
		document.getElementById(old_img_id).style.backgroundColor = '#777777';
	}

	// on vérifie s'il faut afficher le fond de bloc transparent (seulement si deux images disponibles minimum)
	if(document.getElementById('bg_transparent_'+gamme_id)) {
		var nb_img = document.getElementById('bg_transparent_'+gamme_id).value;
		if(nb_img >= 2) {
			document.getElementById('div_absolute_transparent').style.display = '';
			document.getElementById('old_selected_img').value = "col_"+gamme_id+"_0";
			document.getElementById('col_'+gamme_id+'_0').style.backgroundColor = '#464646';
		}
		else {
			document.getElementById('div_absolute_transparent').style.display = 'none';
		}
	}
	else {
		if(document.getElementById('bg_transparent_0') && document.getElementById('bg_transparent_0').value >= 2) {
			document.getElementById('div_absolute_transparent').style.display = '';
			document.getElementById('old_selected_img').value = "col_0_0";
			document.getElementById('col_0_0').style.backgroundColor = '#464646';
		}
		else {
			document.getElementById('div_absolute_transparent').style.display = 'none';
		}
	}
}

// fonction qui change le fond de couleur des vignettes (pour indiquer la sélection)
var change_selected_img = function(new_img, td_id) {
	document.getElementById('img_produit').src = new_img;
	var old_img_id = document.getElementById('old_selected_img').value;
	if(old_img_id != "") {
		document.getElementById(old_img_id).style.backgroundColor = '#777777';
	}
	else {
		document.getElementById("col_0_0").style.backgroundColor = '#777777';
	}
	document.getElementById(td_id).style.backgroundColor = '#464646';
	document.getElementById('old_selected_img').value = td_id;
}

// fonction de calcul du prix en fonction de la quantité sélectionnée
var prix_total_metre = function() {
	var prix_metre = document.getElementById("prix_metre").value;
	var qte = document.getElementById("qte_select").value;
	
	if(prix_metre != "" && qte != "") {
		var prix_total = ''+prix_metre * qte+'';
		var tab_prix = prix_total.split(".");
		if(!tab_prix[1]) {
			tab_prix[1] = "00";
		} else if(tab_prix[1].length==1) {
			tab_prix[1] = tab_prix[1]+"0";
		} else if(tab_prix[1].length>2) {
			if(tab_prix[1][2] > 4) {
				if(tab_prix[1][1] == 9) {
					tab_prix[1] = eval(tab_prix[1][0]+"+"+1)+"0";
				}
				else {
					tab_prix[1] = tab_prix[1][0]+eval(tab_prix[1][1]+"+"+1);
				}		
			}
			else {
				tab_prix[1] = tab_prix[1][0]+tab_prix[1][1];
			}
		}
		prix_total = tab_prix[0]+"."+tab_prix[1];
			
		document.getElementById("prix_total").value = prix_total+" €";
	}
	else {
		document.getElementById("prix_total").value = "";
	}
	
	document.getElementById("qte").value = qte;
}

// vérifie que la quantité saisie soit valide (entier ou 1 chiffre après la virgule
var valid_qte = function() {
	var qte_selectionne = document.getElementById("qte").value;
	var qte_en_stock = document.getElementById("lg_dispo").value;
	var tab_qte = qte_selectionne.split(".");
	var tab_qte_stock = qte_en_stock.split(".");
	if (!tab_qte[1]) {tab_qte[1] = 0}
	if (!tab_qte_stock[1]) {tab_qte_stock[1]=0}
	
	if(qte_selectionne < 1) {
		if(lang == "uk") {
			var msg = "You should select a length higher than one meter.";
		}
		else if(lang == "de") {
			var msg = "Die erfasste Länge soll höher oder in 1 Meter gleich sein.";
		}
		else {
			var msg = "La longueur saisie doit être supérieure ou égale à 1 mètre.";
		}
		alert(msg);
		document.getElementById("qte_select").value = "1";
		document.getElementById("qte").value = "1";
		prix_total_metre();
		return false;		
	}
	if(isNaN(qte_selectionne) || tab_qte[1].length>1) {
		if(lang == "uk") {
			var msg = "You selected a bad length. Please choose an integer or a number with only one figure before comma (eg: 2.5)";
		}
		else if(lang == "de") {
			var msg = "Die erfasste Länge ist inkorrekt. Erfassen Sie eine ganze Zahl bitte oder die eine einzige Anzahl nach dem Komma enthält (zum beispiel: 2.5) ";
		}
		else {
			var msg = "La longueur saisie est incorrecte. Veuillez saisir un nombre entier ou contenant un seul chiffre après la virgule (ex: 2.5)";
		}		
		alert(msg);
		document.getElementById("qte_select").value = "1";
		document.getElementById("qte").value = "1";
		prix_total_metre();
		return false;
	}
	
	if(parseInt(tab_qte[0]) > parseInt(tab_qte_stock[0]) || (parseInt(tab_qte[0]) == parseInt(tab_qte_stock[0]) && parseInt(tab_qte[1]) > parseInt(tab_qte_stock[1]))) {
		if(lang == "uk") {
			var msg = "The length you selected is higher than the length available.";
		}
		else if(lang == "de") {
			var msg = "Die ausgewählte Länge ist als die Menge auf Lager höher.";
		}
		else {
			var msg = "La longueur sélectionnée est supérieure à la quantité en stock.";
		}
		alert(msg);
		document.getElementById("qte_select").value = "1";
		document.getElementById("qte").value = "1";
		prix_total_metre();
		return false;
	}
	else {
		document.getElementById("qte").value = parseFloat(qte_selectionne);
		stock_dispo_temp();
		return true;
	}
}

