// Initialisation des paramètres
function paramTop ()
	{
		for (var p in param)
		{	
			if ( expTop.test(p) )
				param_top[p] = param[p];
		}
	}
// Mise à jour des paramètres actifs
function validTop ()
	{		
		for (var p in param)
		{	
			if ( expTop.test(p) )
				param[p] = param_top[p];
		}
		applyBkg ();
		document.getElementById('popup_top').style.display = 'none'; 
	}
// Initialisation des éléments de la popup
function initTop ()
	{						
		initTopPreview ();
		showMenu (0);
		document.getElementById('popup_top').style.display = 'block'; 
	}
// initialisation de la preview
function initTopPreview ()
	{
		// M0
		topHeight (param_top['top_height']);
		document.getElementById("top_view").style.background = param['color'+param_top['top_color']]; 
		// M1 et M2
		// img perso
		document.getElementById("top_perso_img").src = param_top['top_perso_url'];
		onChangeX (param_top["top_perso_x"], "top_perso_set_x");
		onChangeY (param_top["top_perso_y"], "top_perso_set_y");
		onChangeZ (param_top["top_perso_z"], "top_perso_set_z");
		// img générique
		var imgUrl = storeUrl+banerUrl+param_top['top_img_cat']+'/'+param_top['top_img_number']+'.'+param_top['top_img_ext'];
		document.getElementById("top_img_img").src = imgUrl;
		onChangeX (param_top["top_img_x"], "top_img_set_x");
		onChangeY (param_top["top_img_y"], "top_img_set_y");	
		onChangeZ (param_top["top_img_z"], "top_img_set_z");
		if ( param_top['top_img_choice'] == "img" ) 
		{
			document.getElementById("top_img_view").style.display = "block";
			document.getElementById("top_perso_view").style.display = "none";
		}
		else if ( param_top['top_img_choice'] == "perso" ) 
		{
			document.getElementById("top_perso_view").style.display = "block";
			document.getElementById("top_img_view").style.display = "none";
		}
		else 
		{
			document.getElementById("top_perso_view").style.display = "none";
			document.getElementById("top_img_view").style.display = "none";
		}
		// M3
		document.getElementById("top_logo_img").src = param_top['top_logo_url'];
		document.getElementById("top_logo_img").style.display = param_top['top_logo'];
		onChangeX (param_top["top_logo_x"], "top_logo_set_x");
		onChangeY (param_top["top_logo_y"], "top_logo_set_y");	
		onChangeZ (param_top["top_logo_z"], "top_logo_set_z");	
		changeLogoSize (param_top['top_logo_border_size']);
		changeLogoColor (param_top['top_logo_border_color']);
		// M4, M5 & M6
		initTopTxt ("title");
		initTopTxt ("bsl");
		initTopTxt ("act");
		// M7
		onChangeX (param_top["top_flag_x"], "top_flag_set_x");
		onChangeY (param_top["top_flag_y"], "top_flag_set_y");	
	}
// Initialisation d'un onglet de texte
function initTopTxt (menu)
	{
		// Taille et couleur
		var size = Math.round(param_top["top_"+menu+"_size"]-0.8);
		document.getElementById(menu+"_txt").style.fontSize = size+'px';
		document.getElementById(menu+"_txt").style.color = param["color"+param_top["top_"+menu+"_color"]];
		// Weight
		if (param_top["top_"+menu+"_weight"] == "bold") document.getElementById("top_"+menu+"_weight").checked = true;
		else if (param_top["top_"+menu+"_weight"] == "normal") document.getElementById("top_"+menu+"_weight").checked = false;
		else alert("Erreur : problème lors de l'initialisation du menu TOP/font-weight");
		// Style
		if (param_top["top_"+menu+"_style"] == "italic") document.getElementById("top_"+menu+"_style").checked = true;
		else if (param_top["top_"+menu+"_style"] == "normal") document.getElementById("top_"+menu+"_style").checked = false;
		else alert("Erreur : problème lors de l'initialisation du menu TOP/font-style");
		// Decoration
		if (param_top["top_"+menu+"_decoration"] == "underline") document.getElementById("top_"+menu+"_decoration").checked = true;
		else if (param_top["top_"+menu+"_decoration"] == "none") document.getElementById("top_"+menu+"_decoration").checked = false;
		else alert("Erreur : problème lors de l'initialisation du menu TOP/text-decoration");
		// Position
		onChangeX (param_top["top_"+menu+"_x"], "top_"+menu+"_set_x");
		onChangeY (param_top["top_"+menu+"_y"], "top_"+menu+"_set_y");
	}
// Gère la navigation entre les menus
function showMenu (menu) 
	{			
		initMenu(menu);		
		// Gestion de la navigation
		for (var i = 0; i <= 7 ; i++) 
		{
			document.getElementById('menu'+i).style.display='none';
			document.getElementById('m'+i).style.background='#b7babc';
		}
		document.getElementById('menu'+menu).style.display='block';
		document.getElementById('m'+menu).style.background='#fff';
		
		// gestion de la preview
		var divs = document.getElementsByName('div_view');
		for (i = 0 ; i < divs.length ; i++)
		{
			divs[i].style.zIndex = "9001";
			divs[i].style.border = "none";
			divs[i].style.cursor = "default";
			divs[i].className = "top_view";
		}
		
		if (menu != 0) 
		{
			id = "top_"+menu_top[menu]+"_view";		
			document.getElementById(id).style.zIndex = "9002";
			document.getElementById(id).style.border = "1px dotted #900f0f";
			document.getElementById(id).style.cursor = "move";
			document.getElementById(id).className = "to_drag";
		}
	}
// Initialisation de chaque menu
function initMenu(menu_nb)
	{
		var menu = menu_top[menu_nb];
		switch (menu) 
		{
		case "":	{				
			// Taille
			var topHeights = document.getElementsByName("set_top_height");
			for (var choice in topHeights)
				choice.checked = false; 
			document.getElementById("top_height_"+param_top['top_height']).checked = true; 
			// Couleur
			var topColors = document.getElementsByName("set_top_color");
			for (var choice in topColors)
				choice.checked = false; 
			document.getElementById("top_color_"+param_top['top_color']).checked = true; 
			// Type de fond
			var topBkg = document.getElementsByName("set_top_choice");
			for (i = 0 ; i < topBkg.length ; i ++)
				{	
					if (topBkg[i].value == param_top['top_img_choice']) topBkg[i].checked = true; 
					else topBkg[i].checked = false; 
				}
			}	break;
		case "img": 
			document.getElementById("img_change").value = "1";
			selectDir (param_top['top_img_cat']);
		case "perso": {
			document.getElementById("perso_change").value = "1";
			document.getElementById("top_"+menu+"_set_x").value = param_top["top_"+menu+"_x"]; 
			document.getElementById("top_"+menu+"_set_y").value = param_top["top_"+menu+"_y"]; 
			document.getElementById("top_"+menu+"_set_z").value = param_top["top_"+menu+"_z"]; 	
			}	break;
		case "logo": {	
			document.getElementById("logo_change").value = "1";
			document.getElementById("top_logo_img").style.display = param_top["top_logo"]; 
			document.getElementById("top_logo_none").checked = false; 
			document.getElementById("top_logo_block").checked = false; 
			document.getElementById("top_logo_"+param_top["top_logo"]).checked = true; 
			document.getElementById("top_logo_size").options[param_top['top_logo_border_size']].selected = true;
			changeLogoColor (param_top["top_logo_border_color"]);
			changeLogoSize (param_top["top_logo_border_size"]);	
			document.getElementById("top_logo_set_x").value = param_top["top_logo_x"]; 
			document.getElementById("top_logo_set_y").value = param_top["top_logo_y"]; 
			document.getElementById("top_logo_set_z").value = param_top["top_logo_z"]; 	
			}	break;
		case "title":	
		case "bsl":		 
		case "act": {	
			document.getElementById("top_"+menu+"_color").options[param["top_"+menu+"_color"]].selected = true;
			document.getElementById("top_"+menu+"_color").style.background = param['color'+param["top_"+menu+"_color"]];	
			document.getElementById("top_"+menu+"_size_"+param["top_"+menu+"_size"]).selected = true;		
			}	break;	 
		case "flag": {			
				document.getElementById("top_flag_set_x").value = param_top["top_flag_x"]; 
				document.getElementById("top_flag_set_y").value = param_top["top_flag_y"]; 
			}	break;
		default: 
			alert ("Choix de menu impossible");
			break;
		}
	}
// permet de récupérer les caractéristique d'une image
function getImgDetails(image, type, imgId)
	{
		var xhrGetDetails = null;
		xhrGetDetails = fxGetHTTPObject();
		xhrGetDetails.open("GET", scriptsUrl+"getImgDetails.php?img="+image, true);
		xhrGetDetails.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
		xhrGetDetails.onreadystatechange = function() 
		{ 
			if (xhrGetDetails.readyState == 4)
			{
				// On récupère les caractéristiques de l'image
				var docXML = xhrGetDetails.responseXML;
				var parameter;
				var listDetails = docXML.getElementsByTagName("param");
				nbDetails = listDetails.length;
				
				for ( i = 0 ; i < nbDetails ; i++)
				{ // Pour chaque paramètre on décompose pour récupérer le nom et la valeur
				parameter =  listDetails.item(i).firstChild.data;
				pos = parameter.lastIndexOf("=");
				dName = parameter.substring(0,pos);
				dValue = parameter.substring(pos+1, parameter.length);
				param_top["top_"+type+"_"+dName] = dValue;
				}
				switch (type)
				{
					case 'img' : changeImgNext (image, imgId);
						break;
					case 'perso' : applyPerso ();
						break;
					case 'logo' : applyLogo ();
						break;
				}
			}
		}
	xhrGetDetails.send(null);
	}
// gère les images à découper
function applyBkg ()
	{
		if (document.getElementById("img_change").value == "1")
			genBkg ('img');
		if (document.getElementById("perso_change").value == "1")
			genBkg ('perso');	
		if (document.getElementById("logo_change").value == "1")
		{
			genBkg ('logo');
			setLogo (param_top['top_logo_ext']);
		}		
		loadIframe();
	}
// Découpe l'image fournie
function genBkg (type)
	{
		var xhrGenBkg = null;
		xhrGenBkg = fxGetHTTPObject();
		xhrGenBkg.open("POST", scriptsUrl +"genBkg.php?storeId="+storeId+"&type="+type, true); 
		xhrGenBkg.onreadystatechange = function() 
		{ 
			if (xhrGenBkg.readyState == 4)
			{
				var reponse = xhrGenBkg.responseText;
				setTimeout('document.getElementById("alerte").style.display="none"',1000);
				setTimeout('document.getElementById("message").innerHTML=""',1000);
				loadIframe();
			}
		}
		xhrGenBkg.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
		
		var data = "";	
		data += "&x="+param_top['top_'+type+'_x'];		
		data += "&y="+param_top['top_'+type+'_y'];		
		data += "&z="+param_top['top_'+type+'_z'];				
		data += "&height="+param_top['top_height'];	
		data += "&ext="+param_top['top_'+type+'_ext'];	
		if (type == 'img')
			data += "&source="+param_top['top_img_cat']+'/'+param_top['top_img_number']+'.'+param_top['top_img_ext'];
		else 
			data += "&source="+param_top['top_'+type+'_url'];
		xhrGenBkg.send(data);
	}
	
/* TAILLE ET COULEUR */
//change la couleur de la bandeau superieur
function topColor (val)
	{ 
	param_top['top_color'] = val; 
	document.getElementById("top_view").style.background = param['color'+val]; 
	}
// change la valeur de la hauteur du bandeau superieur 
function topHeight (val)
	{ 
		param_top['top_height'] = val; 		
		valRelative = val * topScale;
		document.getElementById("top_margin").style.height = parseInt( (160 - valRelative) / 2 )+"px"; 
		document.getElementById("top_view").style.height = valRelative+"px"; 
	}
// permet de choisir le type de fond pour l'entête
function selectBkg (val)
	{
		param_top['top_img_choice'] = val;
		if ( val =="img" ) 
		{
			document.getElementById("top_img_view").style.display = "block";
			document.getElementById("top_perso_view").style.display = "none";
			document.getElementById("img_change").value = "1";
		}
		else if ( val == "perso" ) 
		{
			document.getElementById("top_perso_view").style.display = "block";
			document.getElementById("top_img_view").style.display = "none";
			document.getElementById("perso_change").value = "1";
		}
		else if ( val == "" ) 
		{
			document.getElementById("top_perso_view").style.display = "none";
			document.getElementById("top_img_view").style.display = "none";
		}
		else alert("Erreur : Il se peut que l'application ne soit pas entièrement chargée, recommencez votre action.");
	}
	
/* IMAGE GENERIQUE */
// affiche les bandeaux d'un répertoire donné
function selectDir (idDir)
	{
		var xhrGetBaner = null;
		xhrGetBaner = fxGetHTTPObject();
		xhrGetBaner.open("GET", scriptsUrl+"getBaner.php?storeId="+storeId+"&idDir="+idDir+"&nbImg="+param_top['top_img_number'], true); 
		xhrGetBaner.onreadystatechange = function() 
		{ 
			if(xhrGetBaner.readyState == 4) 
				document.getElementById("listbaner").innerHTML= xhrGetBaner.responseText;
		}
		xhrGetBaner.send(null);
		
		param_top['top_img_cat'] = idDir;
		var directories = document.getElementsByName('directory');
		for (i = 0 ; i < directories.length ; i++) 
			directories[i].style.fontWeight = "normal"; 
		document.getElementById(idDir).style.fontWeight = "bold";
	}
// changement d'image de fond parmi les génériques
function changeImg (imgUrl, imgId)
	{		
		getImgDetails(imgUrl, "img", imgId);
		// On récupère le détail, la suite est exécutée une fois les informations récupérées
	}
function changeImgNext (imgUrl, imgId)
{
	var scale = topScale*parseInt(param_top["top_img_z"])/100;
	document.getElementById('top_img_img').width = scale*parseInt(param_top['top_img_width']);  
	document.getElementById('top_img_img').height = scale*parseInt(param_top['top_img_height']);    
	document.getElementById("top_img_img").src = imgUrl;
	var imgParam = imgId.split("_");
	param_top['top_img_cat'] = imgParam[0];
	param_top['top_img_number'] = imgParam[1];	
	selectBkg ('img');
}

/* IMAGE PERSO */
// upload le logo ou l'image personalisee
function upload (type) 
{
	var nameImg = document.getElementById("form_"+type+"_data").value;
	var pos = (nameImg).indexOf('\\');
	while(pos>0)
	{
		pos = (nameImg).indexOf('\\');
		var nameImg = nameImg.slice(pos+1, nameImg.length);
	}
		
	if (filterImg.test(nameImg) == true)
	{
		// On récupère le nom de l'image
		param_top['top_'+type+'_url'] = storeUrl+"/media/design/"+nameImg;
		// On initialise les champs du formulaire d'upload
		document.getElementById("form_"+type+"_store").value = storeId;
		document.getElementById("form_"+type+"_name").value = "top_"+type;
		document.getElementById("form_"+type+"_id").value = nameImg;
		// On lance l'upload de l'image
		document.getElementById("form_"+type).submit ();
		// On vérifie quand l'image est chargée sur le serveur
		checkImg (1, nameImg, type);
	}
	else	
		alert("Le nom de l'image ne doit contenir que des lettres, chiffres ou tirets. Les extensions prises en compte sont jpg, gif et png.");
}
// patiente jusqu'à ce que l'image soit sur le serveur
function checkImg (tries, img, type)
{
	var xhr_checkImg = null;
	xhr_checkImg = fxGetHTTPObject();
	xhr_checkImg.open("GET", scriptsUrl+"checkImg.php?storeId="+storeId+"&img="+img, true);
	xhr_checkImg.onreadystatechange = function() 
	{ 
		if (xhr_checkImg.readyState == 4)
		{
			var reponse = xhr_checkImg.responseText;
			// Si l'image n'est pas sur le serveur on recommence la vérification jusqu'au 5ème essai
			if ((reponse == 0) && (tries < 6))
				setTimeout('checkImg('+(tries+1)+', "'+img+'", "'+type+'")',1000);
			else if (reponse == 1) 
				getImgDetails(param_top['top_'+type+'_url'], type, "")
			else
				alert("ERREUR : l'image ne se charge pas");
		}
	}
	xhr_checkImg.send(null);
}
// Applique les modifications à l'image 
function applyPerso ()
{
	document.getElementById("top_perso_img").src = param_top['top_perso_url'];	
	onChangeX (param_top["top_perso_x"], "top_perso_set_x");
	onChangeY (param_top["top_perso_y"], "top_perso_set_y");
	onChangeZ (param_top["top_perso_z"], "top_perso_set_z");
	selectBkg ('perso');
}
	
/* LOGO */
// active ou désactive le logo
function logoEnable (val)
	{
		param_top['top_logo'] = val;
		document.getElementById("top_logo_img").style.display = val; 
	}
// change la taille de la bordure du logo
function changeLogoSize (val)
	{
		if (val == "0") 
			document.getElementById("top_logo_img").style.borderStyle = "none"; 
		else 
			document.getElementById("top_logo_img").style.borderStyle = "solid"; 
		document.getElementById("top_logo_img").style.borderWidth = val+"px";
		param_top['top_logo_border_size'] = val;
	}
// change la couleur de la bordure du logo
function changeLogoColor (val)
	{
		param_top['top_logo_border_color'] = val;
		document.getElementById("top_logo_color").style.background = param['color'+val];
		document.getElementById("top_logo_img").style.borderColor = param['color'+val]; 
	}
// Applique les modifications au logo 
function applyLogo ()
{
	document.getElementById("top_logo_img").src = param_top['top_logo_url'];	
	onChangeX (param_top["top_logo_x"], "top_logo_set_x");
	onChangeY (param_top["top_logo_y"], "top_logo_set_y");
	onChangeZ (param_top["top_logo_z"], "top_logo_set_z");
	document.getElementById("top_logo_none").checked = false; 
	document.getElementById("top_logo_block").checked = true; 
	logoEnable ('block');
}
// Inscrit l'extension du logo en base
function setLogo (ext)
	{
		var xhr_setLogo = null;
		xhr_setLogo = fxGetHTTPObject();
		xhr_setLogo.open("GET", scriptsUrl+"setLogo.php?storeId="+storeId+"&ext="+ext, true);
		xhr_setLogo.onreadystatechange = function() 
		{ 
			if (xhr_setLogo.readyState == 4)
			{
				var reponse = xhr_setLogo.responseText;
			}
		}
		xhr_setLogo.send(null);
	}
	
/* BASELINE, TITRE et COMAND */
// met a jour la taille des textes
function topSizeChange (id, val)
	{
		param_top[id] = val;
		idTarg = Id2Element (id)+'_txt';
		var size = Math.round(param_top[id]*0.8);
		document.getElementById(idTarg).style.fontSize = size+'px';
	}
// met a jour les couleurs de texte
function topColorChange (id, val)
	{
		param_top[id] = val;
		idTarg = Id2Element (id)+'_txt';
		document.getElementById(id).style.background = param['color'+val];
		document.getElementById(idTarg).style.color = param['color'+val]; 
	}
// met à jour Font-weight
function topWeightChange (id)
	{		
		if ( param_top[id] == "bold" ) param_top[id] = "normal";
		else if ( param_top[id] == "normal" ) param_top[id] = "bold";
		else alert( "Erreur : le paramètre contient une valeur éronée" );
		
		idTarg = Id2Element (id)+'_txt';
		document.getElementById(idTarg).style.fontWeight = param_top[id];
	}
// met à jour Font-style
function topStyleChange (id)
	{		
		if ( param_top[id] == "italic" ) param_top[id] = "normal";
		else if ( param_top[id] == "normal" ) param_top[id] = "italic";
		else alert( "Erreur : le paramètre contient une valeur éronée" );
		
		idTarg = Id2Element (id)+'_txt';
		document.getElementById(idTarg).style.fontStyle = param_top[id];
	}
// met à jour Text-decoration
function topDecoChange (id)
	{		
		if ( param_top[id] == "underline" ) param_top[id] = "none";
		else if ( param_top[id] == "none" ) param_top[id] = "underline";
		else alert( "Erreur : le paramètre contient une valeur éronée" );
		
		idTarg = Id2Element (id)+'_txt';
		document.getElementById(idTarg).style.textDecoration = param_top[id];
	}
