var listNameExist;
var errorExistListName = "Une liste de ce nom existe d&eacute;j&agrave.";
var errorListName = "Veuillez saisir un nom de liste.";
var actionAfterCreateList;
var listIdAfterCreateList;

verificationDispoListName=function(type, oldListName)
{
	if(initPopup())
	{
		var listNameEncode = Remplace(encodeTapestry(escape(oldListName)),'%',"a123aa987mm");
		var myAjax = new Ajax.Request(
			ctx+"action/DisplayFormAddList/" +escape(type) + "/" + listNameEncode +getCache(),
			{	method: "get",
				asynchronous: true,
				timeout: 5000,
				onComplete: displayReponseAddNewList
			}
		)
		
		var myGlobalHandlers = {
			onLoading: function(){},
			onComplete: function(){},
			onTimeout: function (){ 
									
						}
		};
		Ajax.Responders.register(myGlobalHandlers);
	}
			else
		{
			closePopup();	
		}
}

displayReponseAddNewList = function (request)
{
	// display text
	if (request.responseText.indexOf("idpourrepererlapagebemaxindex")>0) {
		window.location.href=ctx;
		return;
	}
	var	resultat=request.responseText;//.substring(request.responseText.indexOf("</head>")+7,request.responseText.indexOf("</htm"));
	
	document.getElementById("identPopup").innerHTML=resultat;
	//jQuery(".Popup01").hide();
	renderPopup("#maAddProductList?clone=false,width=566px,height=auto,type=local");
}

verifyNewListName = function(type, oldListName)
{
	var listName = document.getElementById("listName").value;

	if(listName != null && listName.length > 0)
	{
		// permet de subsituer le % qui ne passe pas. L'inverses est fait dans ValideAddListName.java
		var listNameEncode = encodeTapestry(listName);
		var oldListNameEncode = encodeTapestry(oldListName);
		var myAjax = new Ajax.Request(
			ctx+"action/ValideAddListName/"+listNameEncode+"/"+encodeTapestry(type)+"/"+oldListNameEncode,
			{	method: "get",
				asynchronous: false,
				timeout: 5000,
				onComplete: displayResponseAddNewList
			}
		)
		
		if(!listNameExist)
		{
			if(oldListName == "")
			{
				closePopup();
				if(actionAfterCreateList && actionAfterCreateList!="")
				{
					if(actionAfterCreateList=="add2List")
					{
						add2List(listIdAfterCreateList);
						actionAfterCreateList="";
					}
					else
					{
						changeShoppingListChoice(actionAfterCreateList,"O",listIdAfterCreateList);
						actionAfterCreateList="";
					}
				}
				location.reload();
			}
			else
			{
				closePopup();
				location.href=ctx+"profile/page/DETAILLISTE/"+listNameEncode;
			}
			
		}
		else
		{
			document.getElementById("errorListName").innerHTML=errorExistListName;
			$j("#errorListName").show();
		}
	}
	else
	{
		document.getElementById("errorListName").innerHTML=errorListName;
		$j("#errorListName").show();
	}
}

displayResponseAddNewList = function(request)
{
	if (request.responseText.indexOf("idpourrepererlapagebemaxindex")>0) {
		window.location.href=ctx;
		return;
	}
	if(request.responseText.indexOf("lalisteexistedeja")<0)
	{
		listNameExist = false;
		if(actionAfterCreateList!="")
		{
			resultat = request.responseText;
			//On ajoute +24 au indexOf pour la taille de la string <!-- DEBUT_REFERENCE -->
			resultat = resultat.substring(resultat.indexOf("<!-- DEBUT_REFERENCE -->")+24,resultat.indexOf("<!-- FIN_REFERENCE -->"));
			listIdAfterCreateList=resultat;
		}
		//window.location.href="Page/LISTE";
	}
	else
	{
		listNameExist = true;
	}
}

/**
 * On lance la procedure de suppression d'une liste
 */
verificationDeleteListName = function(shoppingCartId)
{
	if(initPopup())
	{
		var myAjax = new Ajax.Request(
			ctx+"action/DisplayFormDeleteList/"+escape(shoppingCartId)+getCache(),
			{	method: "get",
				asynchronous: true,
				timeout: 5000,
				onComplete: displayReponseDeleteList
			}
		)
		
		var myGlobalHandlers = {
			onLoading: function(){},
			onComplete: function(){},
			onTimeout: function (){ 
									
						}
		};
		Ajax.Responders.register(myGlobalHandlers);
	}
			else
		{
			closePopup();	
		}
}

/**
 * Réponse pour l'affichage de la popup de suppression
 */
displayReponseDeleteList = function (request)
{
	// display text
	if (request.responseText.indexOf("idpourrepererlapagebemaxindex")>0) {
		window.location.href=ctx;
		return;
	}
	var	resultat=request.responseText;//.substring(request.responseText.indexOf("</head>")+7,request.responseText.indexOf("</htm"));
	
	document.getElementById("identPopup").innerHTML=resultat;
	//jQuery(".Popup01").hide();
	renderPopup("#maDeleteProductList?clone=false,width=566px,height=auto,type=local");
}

/**
 * Validation de la suppression de la liste
 */
deleteList= function(shoppingListId)
{
	var myAjax = new Ajax.Request(
		ctx+"action/ValideDeleteName/"+escape(shoppingListId)+getCache(),
		{	method: "get",
			asynchronous: true,
			timeout: 5000,
			onComplete: valideReponseDeleteList
		}
	)
}

/**
 * Réponse, on recharge la page
 */
valideReponseDeleteList = function()
{
	closePopup();	
	window.location.href=ctx+"profile/page/LISTE";
}

/**
 * Lorsque l'on selectionne une liste dans choiceShoppingList
 */
changeShoppingList=function(reference,popup,actionAfterCreate) {
	actionAfterCreateList=actionAfterCreate;
	changeShoppingListChoice(reference, popup , 0);
}

/**
 * Lorsque l'on selectionne une liste dans choiceShoppingList
 */
changeShoppingListChoice=function(reference,popup,shoppingCardId) {
	
	if(shoppingCardId==0)
	{
		shoppingCardId=escape(document.getElementById("ShoppingListChoice"+reference).value);
	}
	
	if(shoppingCardId!=0)
	{
		actionAfterCreateList="";
	
		if(initPopup())
		{
			isPopup=popup;
			
			var varietyValue = "";
			
			
			
			
			if(document.getElementById("varietyChoice"+reference) != null)
				varietyValue = document.getElementById("varietyChoice"+reference).value;
			
			var url=ctx+"action/ChangeShoppingList/"+reference+"/"+shoppingCardId+"/"+varietyValue+getCache();
			
			var myAjax = new Ajax.Request(
					url,
					{	method: "get",
						asynchronous: false,
						timeout: 5000,
						onComplete: valideProductAddedToList
					}											
				)
				
				var myGlobalHandlers = {
					onLoading: function(){},
					onComplete: function(){},
					onTimeout: function (){ 
											
								}
			};
			Ajax.Responders.register(myGlobalHandlers);
		}
		else
		{
			closePopup();
		}
	
	}
	else
	{
		verificationDispoListName('0','');
	}
}

/**
 * Réponse
 */
valideProductAddedToList=function(request)
{
	var	resultat=request.responseText;//.substring(request.responseText.indexOf("</head>")+7,request.responseText.indexOf("</htm"));
	
	if(resultat.indexOf("appelpopupcreationdeliste")<0)
	{
		document.getElementById("identPopup").innerHTML=resultat;
		//jQuery(".Popup01").hide();
		closePopup();
		if(initPopup())	renderPopup("#alert?clone=false,width=566px,height=auto,type=local");
		setTimeout("closePopup();",1000);
	}
	else
	{
		closePopup();
	}
}

deleteItem=function()
{
	document.getElementsByName("addordelete")[0].value = "DELETE";
	document.getElementById("myForm").submit();
}

add2List=function(value)
{
	if(value>0){
		document.getElementsByName("numListe")[0].value=value;
		document.getElementsByName("addordelete")[0].value = "DELETE";
		document.getElementById("myForm").submit();
	}
	else
	{
		actionAfterCreateList="add2List";
		verificationDispoListName('0','');
	}
}

add2Basket=function()
{
	document.getElementsByName("addordelete")[0].value = "ADD";
	document.getElementById("myForm").submit();
}


increaseProductQty=function(productReference)
{
	var listeName = document.getElementById("shoppingCartType").innerHTML;
	var listNameEncode = Remplace(encodeTapestry(escape(listeName)),'%',"a123aa987mm");
	var qty = document.getElementById(productReference).value;
	var myAjax = new Ajax.Request(
		ctx+"action/increaseProductQty/"+listNameEncode+"/"+escape(productReference)+"/"+qty+getCache(),
		{	method: "get",
			asynchronous: true,
			timeout: 5000,
			onComplete: refreshProductQty
		}
	)
}

refreshProductQty=function(request)
{
	if (request.responseText.indexOf("idpourrepererlapagebemaxindex")>0) {
		window.location.href=ctx;
		return;
	}
	document.getElementById("BoxMontant2Refresh").innerHTML = request.responseText;
}

openPopup=function(nomListe)
{
	var listNameEncode = Remplace(encodeTapestry(escape(nomListe)),'%',"a123aa987mm");
	printWin = window.open (ctx+'profile/page/DETAILLISTE/'+listNameEncode+'/print'+getCache(),'L3_DetailListe','width=800,height=600,scrollbars=yes');
}

Remplace=function(str,find,rep)
{
	while(str.indexOf(find) > -1)
	{
		str = str.replace(find,rep);
	}
	return(str);
}