function recupIdEntite(url){
    var str = 'idEntite=';
		var posIdEntite = url.indexOf(str);
		var posAnd = url.indexOf('&', posIdEntite);
		var idEntite = url.substring(posIdEntite + str.length, posAnd);
		
		return idEntite;
}

function recupSRecherche(url){
    
	var sRecherche = '';
	
	var sDebutChaineCherchee = 'sRecherche=';
	var iLongueurDebutChaineCherchee=sDebutChaineCherchee.length;
	
	var iPosDebutChaineCherchee = url.indexOf(sDebutChaineCherchee);
	var iIndiceDepExtractData=iPosDebutChaineCherchee+iLongueurDebutChaineCherchee;
	
	var iPosFinChaineCherchee = url.indexOf('&', iPosDebutChaineCherchee);

//	alert ('url ' + url.substring(40));
//	alert ('pos de srecherche= iPosDebutChaineCherchee ' + iPosDebutChaineCherchee);
//	alert ('pos de &= iPosFinChaineCherchee ' + iPosFinChaineCherchee);
		
		if (iPosDebutChaineCherchee >0){
			sRecherche = url.substring(iIndiceDepExtractData,iPosFinChaineCherchee);
			if(iPosFinChaineCherchee<0){
				sRecherche=url.substring(iIndiceDepExtractData);
			}			
		}

//alert ('Extrait sRecherche' + sRecherche);
		return sRecherche;
}
function creerUrlCatalogue(url){

    var sRechercheOld = recupSRecherche(url);
    var idEntiteOld = recupIdEntite(url);
		var str = 'idEntite=';
		var posIdEntite = url.indexOf(str);
		var urlNew = url.substring(0,posIdEntite);
		if(sRechercheOld != ""){
		    document.postRecherche.sRecherche.value = sRechercheOld+idEntiteOld+'^';
		}
		else{
		    document.postRecherche.sRecherche.value = idEntiteOld+'^';
		}
		var tutu =urlNew+"idEntite="+document.postRecherche.idEntite.value+"&sRecherche="+document.postRecherche.sRecherche.value+"&sLangue="+document.postRecherche.sLangue.value;
	
	if(document.postRecherche.idEntite.value!=-1){
		window.location.replace(tutu);
	}
}
function creerUrlCatalogue(url,idCatalogue){
 	
    var sRechercheOld = recupSRecherche(url);
    var idEntiteOld = recupIdEntite(url);
	var str = 'idEntite=';
	var posIdEntite = url.indexOf(str);
	var urlNew = url.substring(0,posIdEntite);
	if(sRechercheOld != ""){
	    document.postRecherche.sRecherche.value = sRechercheOld;
	}
	else{
	    document.postRecherche.sRecherche.value = idEntiteOld+'^';
	}
	var tutu =urlNew+"idEntite="+document.postRecherche.idEntite.value+"&sRecherche="+document.postRecherche.sRecherche.value+"&sLangue="+document.postRecherche.sLangue.value+"&idCatalogue="+idCatalogue;
	
	if(document.postRecherche.idEntite.value!=-1){
		window.location.replace(tutu);
	}
}

function creerUrlCatalogueTyproduitArticle(url,idCatalogue){

    var sRechercheOld = recupSRecherche(url);
    var idEntiteOld = recupIdEntite(url);
		var str = 'idEntite=';
		var posIdEntite = url.indexOf(str);
		var urlNew = url.substring(0,posIdEntite);

		if(sRechercheOld != ""){
		    document.postRecherche.sRecherche.value = sRechercheOld+idEntiteOld+'^';
		}
		else{
		    document.postRecherche.sRecherche.value = idEntiteOld+'^';
		}
		var tutu =urlNew+"idEntite="+document.postRecherche.idEntitemodele.value+"&sRecherche="+document.postRecherche.sRecherche.value+"&sLangue="+document.postRecherche.sLangue.value+"&idCatalogue="+idCatalogue;
		
	if(document.postRecherche.idEntitemodele.value!=-1){	
		window.location.replace(tutu);
	}
}

function creerUrlCatalogueRechercheHaute(sUrlCourante,idCatalogue,idPageCourante,sKeyPageCourante){

	var sParamNomIdEntite = 'idEntite=';
	var sParamCompletIdPageCourante = '?id='+idPageCourante;
	var sParamCompletKeyPageCourante = '&key='+sKeyPageCourante;
	
//alert (sUrlCourante);
	//Cherche la position dans l'url du paramètre id (de page)
	var posIdPageCourante = sUrlCourante.indexOf(sParamCompletIdPageCourante);
	var sUrlRecompose = "";
	if (posIdPageCourante==-1){
		sUrlRecompose=sUrlCourante+sParamCompletIdPageCourante+sParamCompletKeyPageCourante;
		sUrlRecompose = sUrlRecompose+"&";
	}else
		sUrlRecompose = sUrlCourante+"&";
//alert("1"+sUrlRecompose);
	

	var posIdEntite = sUrlCourante.indexOf(sParamNomIdEntite);
	if(posIdEntite!=-1)
		sUrlRecompose = sUrlCourante.substring(0,posIdEntite);
//alert("2"+sUrlRecompose);
	document.postRechercheHaute.idCatalogue.value=idCatalogue;
    sUrlRecompose = sUrlRecompose+"idEntite="+document.postRechercheHaute.gamme.value+"&sLangue="+document.postRechercheHaute.sLangue.value+"&idCatalogue="+idCatalogue;

	if(document.postRechercheHaute.gamme.value!='-1'){
		window.location.replace(sUrlRecompose);
	}
//alert ('ApresSelecTechno  >> '+sUrlRecompose);
}

function creerUrlCatalogueRechercheHauteMarque(url,idCatalogue){
  
    var sRechercheOld = recupSRecherche(url);
    var idEntiteOld = recupIdEntite(url);
	var str = 'idEntite=';
	var posIdEntite = url.indexOf(str);
	var urlNew = url.substring(0,posIdEntite);
	
	if(sRechercheOld != ""){
		if (dejaeffectue_choixDunProduit(sRechercheOld)||dejaeffectue_choixDunArticleDunProduit(sRechercheOld)){
			document.postRechercheHaute.sRecherche.value = genere_sRechercheMarqEnChoixProdts(sRechercheOld);
		}else{
		    document.postRechercheHaute.sRecherche.value = sRechercheOld;
		}
	}
	else{
	    document.postRechercheHaute.sRecherche.value = idEntiteOld+'^';
	}
	
	var sURLApresSelecTechnoMarque=urlNew+"idEntite="+document.postRechercheHaute.marque.value+"&sRecherche="+document.postRechercheHaute.sRecherche.value+"&sLangue="+document.postRechercheHaute.sLangue.value+"&idCatalogue="+idCatalogue;
	//alert ('ApresSelecTechnoMarque  >> '+sURLApresSelecTechnoMarque);
	
	if(document.postRechercheHaute.marque.value!=-1){
		window.location.replace(sURLApresSelecTechnoMarque);
	}
}

///NPE : ATTENTION ancienne version (avec idPage et xslPAge) peut-être utilisée à certains endroits
function creerUrlCatalogueRechercheHauteProduit(url,idCatalogue,idPage,xslPage){
    var sRechercheOld = recupSRecherche(url);
    var sRecherche='';
        
    var idEntiteOld = recupIdEntite(url);
	
	var sPtInterrog = '?';
	var iPosIdEntite = url.indexOf(sPtInterrog);
	var sReconstitURL = url.substring(0,iPosIdEntite);
	
	sReconstitURL = sReconstitURL + '?id=' + idPage + '&xsl=' + xslPage + '&';

		
		if(sRechercheOld != ''){
			
			//alert('sRechercheOld est different de null'+sRechercheOld);		
			if (dejaeffectue_choixDunProduit(sRechercheOld)){
				sRecherche=sRechercheOld;
				//alert('une recherche produit a déjà été effectuée -->'+sRecherche);
			}else{

				if (dejaeffectue_choixDunArticleDunProduit(sRechercheOld)){
					
					sRecherche=genere_sRechercheFichProdtEnChoixArticles(sRechercheOld);
					//alert(sRechercheOld+'un choix article a déjà été effectuée -->'+sRecherche);
				}else{
					//alert('une recherche produit na pas deja ete effectuee -->'+sRecherche);
					sRecherche=sRechercheOld+idEntiteOld+'^';
				}
				
			}
				
			document.postRechercheHaute.sRecherche.value = sRecherche;
		}
		else{
			//alert('sRechercheOld est  null ');
		    document.postRechercheHaute.sRecherche.value = idEntiteOld+'^';
		}
		
		var sURLApresSelecTechnoMarqueProduit =sReconstitURL+"idEntite="+document.postRechercheHaute.typeproduit.value+"&sRecherche="+document.postRechercheHaute.sRecherche.value+"&sLangue="+document.postRechercheHaute.sLangue.value+"&idCatalogue="+idCatalogue;
	
	if(document.postRechercheHaute.typeproduit.value!=-1){	
		window.location.replace(sURLApresSelecTechnoMarqueProduit);
	}
//alert ('ApresSelecTechnoMarqueProduit  >> '+sURLApresSelecTechnoMarqueProduit);
}

///NPE 005.09.22 : Modif pour recréer l'url ac la key (multipositionnement)
// @params : sXslDeRemplacement : xsl permettant d'afficher les produits d'un type produits (settée dans messages-sites_$LANG du module catalogue)
function creerUrlCatalogueRechercheHauteProduit(url,idCatalogue,sXslDeRemplacement){

    var sRechercheOld = recupSRecherche(url);
    var sRecherche='';
        
    var idEntiteOld = recupIdEntite(url);
	
	var sParamKey = "&key=";
	var sParamIdEntite = "&idEntite=";
	var sReconstitURL ="";
	
	//Recherche de la xsl de la page courante
	var sParamXsl = '&xsl=';
	var iPosParamXsl = url.indexOf(sParamXsl);
	if (iPosParamXsl!=-1)
		sReconstitURL = url.substring(0,iPosParamXsl);
	else{
		var iPosParamIdEntite = url.indexOf(sParamIdEntite);
		sReconstitURL = url.substring(0,iPosParamIdEntite);
	}
	//alert (sReconstitURL);
	sReconstitURL = sReconstitURL + sParamXsl + sXslDeRemplacement;
	//alert (sReconstitURL);
	
	if(sRechercheOld != ''){
			
			//alert('sRechercheOld est different de null'+sRechercheOld);		
			if (dejaeffectue_choixDunProduit(sRechercheOld)){
				sRecherche=sRechercheOld;
				//alert('une recherche produit a déjà été effectuée -->'+sRecherche);
			}else{

				if (dejaeffectue_choixDunArticleDunProduit(sRechercheOld)){
					
					sRecherche=genere_sRechercheFichProdtEnChoixArticles(sRechercheOld);
					//alert(sRechercheOld+'un choix article a déjà été effectuée -->'+sRecherche);
				}else{
					//alert('une recherche produit na pas deja ete effectuee -->'+sRecherche);
					sRecherche=sRechercheOld+idEntiteOld+'^';
				}
				
			}
				
			document.postRechercheHaute.sRecherche.value = sRecherche;
		}
		else{
			//alert('sRechercheOld est  null ');
		    document.postRechercheHaute.sRecherche.value = idEntiteOld+'^';
		}
		
		var sURLApresSelecTechnoMarqueProduit =sReconstitURL+"&idEntite="+document.postRechercheHaute.typeproduit.value+"&sRecherche="+document.postRechercheHaute.sRecherche.value+"&sLangue="+document.postRechercheHaute.sLangue.value+"&idCatalogue="+idCatalogue;
	
	if(document.postRechercheHaute.typeproduit.value!=-1){	
		window.location.replace(sURLApresSelecTechnoMarqueProduit);
	}
//alert ('ApresSelecTechnoMarqueProduit  >> '+sURLApresSelecTechnoMarqueProduit);
}

function dejaeffectue_choixDunProduit(sRecherche) { 
   var expRegChxArticleDunProdt = /^[a-z0-9]+\^[a-z0-9]+\^$/;
   return (expRegChxArticleDunProdt.exec(sRecherche)!=null);
}
function dejaeffectue_choixDunArticleDunProduit(sRecherche) { 
   var expRegFichProdtConsultee = /^[a-z0-9]+\^[a-z0-9]+\^[a-z0-9]+\^$/;
   return (expRegFichProdtConsultee.exec(sRecherche)!=null);
}
function genere_sRechercheFichProdtEnChoixArticles(sRecherche){
//var expRegChxArticleDunProdt = /^[a-z0-9]+\^[a-z0-9]+\^([a-z0-9]+\^)*$/;
//	var sRechercheSplit = sRecherche.split([a-z0-9]+\^[a-z0-9]+\^);
//	alert(sRecherche+'//'+sRechercheSplit.length);
	return sRecherche.substring(0,14);
}

function genere_sRechercheMarqEnChoixProdts(sRecherche){
	return sRecherche.substring(0,7);
}