// UtilsVersion=3.0

function DoSelLanguage(xParam) {
	var st=document.location.href;
	var i=st.indexOf('#');
	var stx;
	var j;
	xParam=xParam.toUpperCase()
	// Paramètre pour la librairie (gestion propre de la ligne)
	if (i >= 0) {st=st.substr(0,i-1);}
	if (st.substr(st.length-1,1)=='/') {
		st+='Default.asp?Lng='+xParam;
		}
	else {
		if (st.indexOf('?')>=0) {
			i=st.indexOf('?Lng=');
			if (i >= 0) {
				j=st.indexOf('&');
				if (j >= 0) {stx=st.substr(0,i)+'?Lng='+xParam+st.substr(j);}
				else {stx=st.substr(0,i)+'?Lng='+xParam;}
				st=stx;
				}
			else {	
				i=st.indexOf('&Lng=');
				if (i >= 0) {
					stx=st.substr(i+1);
					j=stx.indexOf('&');
					if (j>=0) {st=st.substr(0,i)+'&Lng='+xParam+stx.substr(j);}
					else {st=st.substr(0,i)+'&Lng='+xParam;}	
					}
				else {
					st+='&Lng='+xParam;
					}
				}	
			}
		else {
			st+='?Lng='+xParam;
			}
		}
	// Maintenant gestion des noms de pages
	i=st.indexOf('?');
	stx=st.substr(0,i);
	st=st.substr(i);
	i=stx.lastIndexOf('/')+1;
	var stk;
	if (i) {stk=stx.substr(i); stx=stx.substr(0,i);} else {stk=stx; stx='';}
	i=stk.indexOf('.');
	j=stk.toLowerCase().lastIndexOf('_uk'); if (j < 0) j=i;
	switch (xParam) {
		case 'F' :
			stk=stk.substr(0,j)+stk.substr(i);
			break;
		case 'UK' :
			stk=stk.substr(0,j)+'_uk'+stk.substr(i);
			break;
		}
	st=stx+stk+st;
	//
	document.location = st;
	}


var req;
var reqDone=0;
var reqRetFunction='';

function processReqChange() {
    // only if req shows "loaded"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
            // ...processing statements go here...
			//var stTete=req.getAllResponseHeaders();
            // if (ObjTeteIdHtml) document.getElementById(ObjTeteIdHtml).innerHTML=req.getResponseHeader(NomTete);
            //alert('Tout va bien...'+stTete);
            if (reqRetFunction) eval(reqRetFunction);
        } else {
            alert("Problem with XML data retrieving:\n" + req.statusText);
        }
        reqDone=1;
    }
}

function loadXMLDoc(url,RetFunction) {
	req = false;
	reqDone = 0;
    // branch for native XMLHttpRequest object
    if(window.XMLHttpRequest) {
    	try {
			req = new XMLHttpRequest();
        } catch(e) {
			req = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
       	try {
        	req = new ActiveXObject("Msxml2.XMLHTTP");
      	} catch(e) {
        	try {
          		req = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		req = false;
        	}
		}
    }
	if(req) {
		if (RetFunction) {reqRetFunction=RetFunction;} else {reqRetFunction='';}
		req.onreadystatechange = processReqChange;
		req.open("GET", url, true); // Asychrone...
		req.send("");	
	}
	else {
		reqDone=1;
		alert('Pb création objet');
		}
}


function XTrim(st) {
	var j=-1;
	//alert("'"+st+"'"); alert(st.length);
	for (var i=0; i < st.length; i++) {
		if (st.substr(i,1) != ' ') break;
		j=i;
		}
	if (j >= 0) st=st.substr(j+1);	
	j=-1;
	for (var i = st.length -1; i >= 0; i--) {
		if (st.substr(i,1) != ' ') break;
		j=i;
		}
	if (j >= 0) {
		if (j==0) {st='';}
		else {
			st=st.substr(0,j);
			}
		}
	return st;	
}



/**************************************************************************************************/
/**************************************************************************************************/
/**************************************************************************************************/



var NoGoToCat=false;
function GoToCat(idxCat,XObjName)
{
	if (NoGoToCat) return;
	var st = ''+idxCat;
	if (st.indexOf('.a')>=0)
	{
		window.location.replace(idxCat);
	}
	else
	{
		var stx = (st.indexOf('.') > 0) ? st.substr(st.indexOf('.')):st;
		window.location.replace('categories.asp?CatPdtIdx='+st+((XObjName)?'&'+XObjName+'='+st:''));
		//var i=st.indexOf('.');
		//window.location.replace('categories.asp?CatPdtIdx='+st.substr(i+1));
	}
}

function SelXVal(Obx,ival)
{
	NoGoToCat=true;
	try
	{
		for (var i=Obx.options.length-1; i>=0; i--)
		{
			if (Obx.options[i].value==ival)
			{
				Obx.selectedIndex=i;
				//Obx.options[i].selected=true;
				break;
			}
		}
	}
	catch (e) {}
	NoGoToCat=false;
}

function TriSelectValues(stNomSelect)
{
	var Ob=document.getElementById(stNomSelect);
	var l=Ob.length-1;
	var i, j, k, ix, v, vt;
	for (i=0; i < l; i++)
	{
		ix=0; k=parseInt(Ob.options[i].value);
		for (j=i+1; j <= l; j++)
		{
			if (parseInt(Ob.options[j].value) < k)
			{
			k = Ob.options[j].value; ix=j;
			}
		}
		if (ix)
		{
			v=Ob.options[i].value; Ob.options[i].value=k; Ob.options[ix].value=v;
			vt=Ob.options[i].text; Ob.options[i].text=Ob.options[ix].text; Ob.options[ix].text=vt;
		}	
	}
}

function TriSelectTexts(stNomSelect)
{
	var Ob=document.getElementById(stNomSelect);
	var lx=Ob.length-1;
	var i, j, k, ix, v, vt;
	for (i=0; i < lx; i++)
	{
		ix=0; k=Ob.options[i].text;
		for (j=i+1; j <= lx; j++)
		{
			if (Ob.options[j].text < k)
			{
				k = Ob.options[j].text; ix=j;
			}
		}
		if (ix)
		{
			v=Ob.options[i].value; Ob.options[i].value=Ob.options[ix].value; Ob.options[ix].value=v;
			vt=Ob.options[i].text; Ob.options[i].text=k; Ob.options[ix].text=vt;
		}	
	}
}

function DoAddOption(SelObjId, iValue, stTxt)
{ 
	//Rajoute <option value='iValue'>stTxt</option>, en fin de liste...
	try
	{
		var obv = document.getElementById(SelObjId);
		var oOpt = document.createElement('OPTION');
		oOpt.value = ''+iValue;
		if (IEVersion==0) oOpt.innerHTML=stTxt; else oOpt.text=stTxt.replace('&nbsp;',' ');
		ob.add(oOpt, oOpt.length); 
	}
	catch (e)
	{ 
		alert('ERREUR ('+i+'): "'+ob.name+'",'+iValue+','+stTxt);
	}
}
	
function DoDelOption(SelObjId, iOption, iValue)
{
	// Si on spécifie une valeur >= 0 pour iOption, on détruit direct. Sinon on recherche iValue.
	try
	{
		var ob=document.getElementById(SelObjId);
		if (iOption >= 0)
		{
			ob.options[iOption]=null; 
		}
		else
		{
			for (var i=ob.length-1; i >=0; i--)
			{
				if (ob.options[i].value==iValue)
				{
					ob.options[i]=null;
					return;
				}
			}
		}
	}
	catch (e) {}	
}

function DoDelOptionListe(SelObjId, stValueList)
{
	// Liste de valeurs séparées par des virgules (PAS d'espaces)...
	try
	{
		var ob=document.getElementById(SelObjId);
		var st=','+stValueList+',';
		for (var i=ob.length-1; i >=0; i--)
		{
			if (st.indexOf(','+ob.options[i].value+',')>=0)
			{
				ob.options[i]=null;
			}
		}
	}
	catch (e) {}	
}