var storeUrl;
var storeId;
var lng;

// Chemins d'accès
// Appel à distance
var scriptsUrl = "/inc/js/outil_design/scripts/";
// Appel du répertoire
// var scriptsUrl = "scripts/";

var incUrl = "/";
var textureUrl = "/mag/css_editor/textures/";
var banerUrl = "/mag/css_editor/bandeaux/";

// Alias
var nav = navigator.appName;
var ua = navigator.userAgent;

// Paramètres
var nbParam = 0;
var param = new Array ();

var param_color = new Array ();
var param_text = new Array();
var param_ext = new Array();
var param_top = new Array();
var param_tpl= new Array();

// Expressions régulières
var expColor = new RegExp("^color(.*)$", "i"); 
var expText = new RegExp("^text_(.*)$", "i"); 
var expExt = new RegExp("^ext_(.*)$", "i"); 
var expTop = new RegExp("^top_(.*)$", "i"); 
var expTpl = new RegExp("^tpl_(.*)$", "i"); 
			
var filterColor = new RegExp("color", "i"); 
var filterSize = new RegExp("size", "i"); 
var filterWeight = new RegExp("weight", "i"); 
var filterStyle = new RegExp("style", "i"); 
var filterDeco = new RegExp("decoration", "i"); 

var filterImg = new RegExp("^([a-zA-Z0-9_-]+)\.((jpg)|(gif)|(png))$", "i"); 

// Palettes de couleurs
var colorPerso = new Array(); 
// Correspondance pour le menu du bandeau supérieur
var menu_top = new Array("", "img", "perso", "logo", "title", "bsl", "act", "flag");

var topWidth = 640;
var siteWidth = 960;
var topScale = topWidth / siteWidth;
var logo_ext;

// Drag && drop
var nn6=document.getElementById&&!document.all;
var isdrag=false;
var x,y;
var tx,ty;
var dobj;

document.onmousedown = selectMouse;


function menu_design (menu, action)
{
	switch (menu) 
	{
		case 'popup_color' :
			{								
				if (action == 'open') 
				{
					initColor ();
				}
				else if (action == 'ok')
				{				
					validColor ();					
					setAlIColors(); 
				}			
				else if 	(action == 'cancel')
				{
					document.getElementById(menu).style.display = 'none'; 
					paramColor ();
				}
				else	
					alert('Erreur : action inconnue pour le menu COULEUR');
			}	break;
		case 'popup_text' :
			{				
				if (action == 'open')
				{	
					initText ();
				}
				else if (action == 'ok')
				{
					validText ();
				}			
				else if 	(action == 'cancel')
				{	
					document.getElementById(menu).style.display = 'none'; 
					paramText();
				}	
				else	
					alert('Erreur : action inconnue pour ce menu');
			}	break;
		case 'popup_area' :	
			{								
				if (action == 'open')
				{	
					initExt ();
				}
				else if (action == 'ok')
				{
					validExt ();
				}			
				else if 	(action == 'cancel')
				{	
					document.getElementById(menu).style.display = 'none'; 
					paramExt ();
				}
				else	
					alert('Erreur : action inconnue pour le menu ZONE EXTERNE');
			}	break;
		case 'popup_top' :	
			{			
				if (action == 'open')
				{
					initTop ();						
				}
				else if (action == 'ok')
				{
					validTop ();
					document.getElementById("img_change").value = "0";
					document.getElementById("perso_change").value = "0";
					document.getElementById("logo_change").value = "0";
				}
				else if (action == 'cancel')
				{
					document.getElementById(menu).style.display = 'none'; 
					document.getElementById("img_change").value = "0";
					document.getElementById("perso_change").value = "0";
					document.getElementById("logo_change").value = "0";	
					paramTop ();
				}		
				else	
					alert('Erreur : action inconnue pour ce menu');				
			}	break;
		case 'popup_template' :	
			{			
				if (action == 'open')
				{
					initTpl ();						
				}
				else if (action == 'ok')
				{
					validTpl ();
					updateFontPreview();
				}
				else if (action == 'cancel')
				{
					document.getElementById("tab_"+param_tpl['tpl_number']).style.display = 'none'; 
					document.getElementById(menu).style.display = 'none'; 	
					paramTpl ();
				}
				else	
					alert('Erreur : action inconnue pour le menu MISE EN PAGE');				
			}	break;
	}
}
// Extrait l'éléments de la prévisualisation concerné
function Id2Element (id)
	{
		var words = new Array ();
		words = id.split ('_');
		return words[1];
	}
// recupere la baseline
function getBaseline ()
{
	var xhrGetBaseline = null;
	xhrGetBaseline = fxGetHTTPObject();
	xhrGetBaseline.open("GET", scriptsUrl+"getBaseline.php?storeId="+storeId+"&lng="+lng, true);
	xhrGetBaseline.onreadystatechange = function() 
	{ 
		if (xhrGetBaseline.readyState == 4)
		{
			var reponse = xhrGetBaseline.responseText;
			document.getElementById("bsl_txt").innerHTML = reponse;
		}
	}
	xhrGetBaseline.send(null);
}
// recupere le titre
function getTitle()
{
	var xhrGetTitle = null;
	xhrGetTitle = fxGetHTTPObject();
	xhrGetTitle.open("GET", scriptsUrl+"getTitle.php?storeId="+storeId+"&lng="+lng, true);
	xhrGetTitle.onreadystatechange = function() 
	{ 
		if (xhrGetTitle.readyState == 4)
		{
			var reponse = xhrGetTitle.responseText;
			document.getElementById("title_txt").innerHTML = reponse;
		}
	}
	xhrGetTitle.send(null);
}
// recupere les drapeaux
function getFlag()
{
	var xhrFlag = null;
	xhrFlag = fxGetHTTPObject();
	xhrFlag.open("GET", scriptsUrl+"getFlag.php?storeId="+storeId, true);
	xhrFlag.onreadystatechange = function() 
	{ 
		if (xhrFlag.readyState == 4)
		{
			var reponse = xhrFlag.responseText; 
			document.getElementById("top_flag_view").innerHTML = reponse;
		}
	}
	xhrFlag.send(null);
}
//affiche et initialise l'éditeur
function fxTemplate(url,stoId,tbLng,curLng,lngBo)
{
	storeUrl = url;
	storeId = stoId;
	lng = curLng;
	
	// Appel à partie du BO
	document.getElementById("flexContent").style.visibility = "hidden";
	document.getElementById("templateEditor").style.display="block";
	document.getElementById("iframe").src= storeUrl+'?tmpcss=1';
	
	var xhrGetConfig = null;
	xhrGetConfig = fxGetHTTPObject();
	xhrGetConfig.open("GET", scriptsUrl+"getConfig.php?storeId="+storeId, true);
	xhrGetConfig.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
	xhrGetConfig.onreadystatechange = function() 
	{ 
		if (xhrGetConfig.readyState == 4)
		{
			// On récupère les paramètres dans le fichier de config
			var docXML = xhrGetConfig.responseXML;
			var parameter;
			var listParam = docXML.getElementsByTagName("param");
			nbParam = listParam.length;
			
			for ( i = 0 ; i < nbParam ; i++)
			{
			// Pour chaque paramètre on décompose pour récupérer le nom et la valeur
			parameter =  listParam.item(i).firstChild.data;
			pos = parameter.lastIndexOf("=");
			pName = parameter.substring(0,pos);
			pValue = parameter.substring(pos+1, parameter.length);
			param[pName] = pValue;
			}		
			loadIframe();	
			
			// Initialisation des paramètres selon chaque menu
			paramColor ();
			paramExt ();
			paramTpl ();
			paramText ();
			paramTop ();
			
			// Cas particulier du logo géré en base
			logo_ext = param['top_logo_ext'];
			
			// On initialise la palette perso avec celle active
			for (var i = 0 ; i <= 7 ; i++)
				colorPerso[i] = param['color'+i];
				
			// On met à jour toutes les couleurs de l'outil
			setAlIColors();
			
			getBaseline ();
			getTitle();
			getFlag ();
			setTimeout('document.getElementById("alerte").style.display="none"',2000);
			setTimeout('document.getElementById("message").innerHTML=""',2000);
		}
		else 
		{
			document.getElementById("message").innerHTML="Chargement en cours";
			document.getElementById("alerte").style.display="block";
		}
	}
	xhrGetConfig.send(null);
}

// post les variables au fichiers de config et css
function loadIframe()
{
	var xhrSetCss = null;
	xhrSetCss = fxGetHTTPObject();
	xhrSetCss.open("POST", scriptsUrl +"setCss.php?storeId="+storeId, true); 
	xhrSetCss.onreadystatechange = function() 
	{ 
		if (xhrSetCss.readyState == 4)
		{
			var reponse = xhrSetCss.responseText;
			document.getElementById("iframe").src = storeUrl+'?tmpcss=1';
		}
	}
	xhrSetCss.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
	
	var data = "";	
	for ( var p in param )
	data += "&"+p+"="+param[p];
	
	xhrSetCss.send(data);
}
// Enregistrement de la configuration de l'éditeur et de la feuille de style
function Save () 
{
	var xhr_Save = null;
	xhr_Save = fxGetHTTPObject();
	xhr_Save.open("POST", scriptsUrl +"save.php?storeId="+storeId, true); 
	xhr_Save.onreadystatechange = function () 
	{ 
		if (xhr_Save.readyState == 4)
		{
			var reponse = xhr_Save.responseText;
			document.getElementById("iframe").src = storeUrl+'?tmpcss=1';
			document.getElementById("message").innerHTML = reponse;
			setTimeout('document.getElementById("alerte").style.display="none"',2000);
			setTimeout('document.getElementById("message").innerHTML=""',2000);
		}
		else
		{
			document.getElementById("message").innerHTML="En cours d'enregistrement";
			document.getElementById("alerte").style.display="block";
		}
	}
	xhr_Save.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
	
	var data = "";	
	for ( var p in param )
	data += "&"+p+"="+param[p];
	xhr_Save.send(data);
	
	// Cas paticulier du logo géré en base
	logo_ext = param['top_logo_ext'];
} 
// Cache l'editeur
function Cancel()
{
	document.getElementById("templateEditor").style.display="none";
	document.getElementById("flexContent").style.visibility = "visible";
	
	// Cas paticulier du logo géré en base
	setLogo (logo_ext);
	
	// Suppression de la feuille de style
	var xhrDelete = null;
	xhrDelete = fxGetHTTPObject();
	xhrDelete.open("POST", scriptsUrl +"close.php?storeId="+storeId, true); 
	xhrDelete.onreadystatechange = function () 
	{ 
		if (xhrDelete.readyState == 4)
		{
			var reponse = xhrDelete.responseText;
		}
	}
	xhrDelete.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");    
	xhrDelete.send(null);
	
	// Appel à partir du BO
	document.getElementById("divLogin").style.display = "none";
	document.getElementById("flexContent").style.left = "0px";
	document.getElementById("flexContent").style.top = "0px";
	document.getElementById("flexContent").style.minWidth = "1004px";
	document.getElementById("flexContent").style.minHeight = "548px";
	
	if (nav.indexOf ("Microsoft") !=-1)
	{
		var w = document.documentElement.clientWidth+"px";
		var h = document.documentElement.clientHeight+"px";
		document.getElementById("flexContent").style.width = w;
		document.getElementById("flexContent").style.height = h;
	}
	else
	{
		document.getElementById("flexContent").style.width = "100%";
		document.getElementById("flexContent").style.height = "100%";
	}
	return 1;
}
