////////////////////////////////////////////////////////////////////////////
//  Signin functions
////////////////////////////////////////////////////////////////////////////
function Gosignin()
	{
	document.location = GlblUrl + "OpenID/signin.html";
	}
var PrvOId = [["Facebook","Fcb",1000,550],["LiveID","Lid",500,500],["Orange","Org",920,650],["Yahoo","Yah",500,400],["Google","Ggl",1000,550],["Yandex","Ydx",1000,550],["Mailru","Mru",600,450],["Baidu","Bai",600,400],["Twitter","Twt",500,400],["LinkedIn","Ldn",500,400],["Flickr","Fkr",1050,650],["Kohtakte","Vkt",500,400],["Sina","Sna",800,450],["Orkut","Ork",850,600],["LiveJ","Lvj",1000,500],["Deezer","Dez",700,450],["Skyrock","Sky",1000,600],["Tumblr","Tbr",800,600],["QZone","Qzo",590,530],["Trencent","Tqq",900,650],["17Buddies","17b",0,0]];
function OpenID_GetProviderInfos(obj)
	{
	szId = obj.id.substring(4);
	nIdx=-1;
	for (i = 0; i < PrvOId.length; i++) 
		{ 
		if (PrvOId[i][0]==szId)
			{
			nIdx=i;
			break;
			}
		}
	if (nIdx==-1)
		return;
	if (nIdx==20)
		{
		document.location= "{FORM_URL}/index.php?act=Reg&amp;CODE=00";
		return;
		}					
	szUrl =  GlblUrl + "OpenID/"+PrvOId[nIdx][1]+"/geturl.html";
	var szName = PrvOId[nIdx][0];
	var WndW = PrvOId[nIdx][2];
	var WndH = PrvOId[nIdx][3];
	var WndX = ((screen.width-WndW)/2)-20;
	var WndY = 50;
	var Dlg = window.open(szUrl,szName,'width=500,height=400,resizable=1');
	if (!Dlg) {alert("Popups must be enabled for this feature!");return;}
	Dlg.resizeTo(WndW,WndH);
	Dlg.moveTo(WndX,WndY);
	}	
////////////////////////////////////////////////////////////////////////////
//  Translate Comment
////////////////////////////////////////////////////////////////////////////
function Toggle_TranslateDiv(nComId,bShow)
	{
	$('translate_icon_'+nComId).style.display = bShow == 1 ? 'block' : 'none';
	}
function Get_Com_Translation(nMapId,nComId,bTrans)
	{
	if (!CheckMbr())
		return;	
	szUrl=GlblUrl+"Com/Translate.html";
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		ShowLoading();
		Pause_Timers(nMapId);
		var params = "";
		params += "ComId="+nComId;
		params += "&Trans="+bTrans;		
		xmlHttp.open("POST", szUrl,true);
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.onreadystatechange = function() {
						if (xmlHttp.readyState==4)
							{																					
							sResult=xmlHttp.responseText;
							oTransRes = JSON.parse(sResult);
							HideLoading();
							Restart_Timers();
							$('com_'+nComId).style.backgroundColor = bTrans ? "#f0f0d0" : "#fff";
							HandleTranslateResponse(oTransRes,nMapId,nComId,bTrans);
							return;
							}
										};
			xmlHttp.send(params);		
		}	
	}
function HandleTranslateResponse(oTransRes,nMapId,nComId,bTrans)
	{
	if (oTransRes.ErrNum !=0)
		{
		alert(oTransRes.ErrMsg);
		return;
		}
	if (oTransRes.WrnNum != 0)
		{
		alert(oTransRes.WrnMsg);
		}
	if (bTrans)
		{
		$('translate_img_'+nComId).src = "Images/Icons/reverse.png";
		$('translate_img_'+nComId).alt = oTransRes.NxtOpe;
		$('translate_img_'+nComId).title = oTransRes.NxtOpe;
		$('translate_com_'+nComId).alt = oTransRes.NxtOpe;	
		$('translate_com_'+nComId).title = oTransRes.NxtOpe;
		}
	else
		{
		$('translate_img_'+nComId).src = "Images/Icons/translate.png";		
		$('translate_img_'+nComId).alt = oTransRes.NxtOpe;
		$('translate_img_'+nComId).title = oTransRes.NxtOpe;
		$('translate_com_'+nComId).alt = oTransRes.NxtOpe;	
		$('translate_com_'+nComId).title = oTransRes.NxtOpe;		
		}
	$('com_'+nComId).innerHTML = oTransRes.RetTxt;		
	bTrans = bTrans ? 0 : 1;
	$('translate_com_'+nComId).href = "javascript:Get_Com_Translation("+nMapId+","+nComId+","+bTrans+");";
	return;
	}
////////////////////////////////////////////////////////////////////////////
//  Preview Files
////////////////////////////////////////////////////////////////////////////
function GoPreview(nId)
	{
	if ($('prw').style.display=="block")		
		{
		$('prw').innerHTML="";
		$('prw').style.display="none";
		$('Fileslst').selectedIndex=-1;
		$('ImgFilePreview').src="Images/Icons/Preview-0.png";
		$('LnkFilePreview').href="javascript:PrwError()";
		return;
		}
	var nSel=$('Fileslst').selectedIndex;
	if (nSel == -1)
		{
		alert(_('preview_error'));
		return;
		}
		
	szFile = trim(szFileName.toLowerCase());
	arParts = szFile.split(".");
	NumParts =  arParts.length;
	html5 = 0;
	if (NumParts >=2)
		{
		Comp = arParts[NumParts-1];
		if (Comp=="mp3" || Comp=="wav")
			{
			audioTagSupport=false;
			try {
				myAudioObj = new Audio(""); 
				audioTagSupport = ("no" != myAudioObj.canPlayType("audio/"+Comp)) && ("" != myAudioObj.canPlayType("audio/"+Comp));
				html5 = audioTagSupport ? 1 : 0;									
				}
			catch(e) 
				{
				}
			}
		if (Comp == "wad")
			{
			if (!confirm(_('long_operation')))
				return;	
			ShowMask();
			}
		}
	NumSel = $('Fileslst').options.length;	
	szFileName=""; 
	nSelFiles = 0;
	for (var i = 0; i < NumSel; i++) 
		{
		if ($('Fileslst').options[i].selected)
			{ 
			szFileName = $('Fileslst').options[i].text;
			break;
			}
		}	
	Pause_Timers(nId);	
	szUrl=GlblUrl+"Push/Preview.html";
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		ShowLoading();
		var params = "";
		params += "Id="+nId;
		params += "&Preview="+escape(szFileName);
		params += "&html5="+html5;
		xmlHttp.open("POST", szUrl,true);
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.onreadystatechange = function() {
						if (xmlHttp.readyState==4)
							{																					
							sResult=xmlHttp.responseText;
							if (Comp == "wad")
								HideMask();
							HideLoading();
							Restart_Timers();
							HandlePreviewResponse(sResult);
							return;
							}
										};
			xmlHttp.send(params);		
		}	
	}
function HandlePreviewResponse(sResult)
	{
	FileDatas = sResult.split('|');
	erNum=parseInt(FileDatas[0]);
	if (erNum)
		{
		erTxt=FileDatas[1];
		alert(erTxt);
		}
	else
		{
		Cntnt=FileDatas[2];
		$('prw').innerHTML=Cntnt;
		$('prw').style.display="block";
		}
	return;
	}	
function PrwError()
	{
	alert(_('preview_error'));
	return;
	}
function CheckPreviewable(nId)
	{
	if ($('prw').style.display=="block")		
		{
		$('prw').innerHTML="";
		$('prw').style.display="none";
		}	
	NumSel = $('Fileslst').options.length;	
	szFileName=""; 
	nSelFiles = 0;
	for (var i = 0; i < NumSel; i++) 
		{
		if ($('Fileslst').options[i].selected)
			{ 
			if (nSelFiles==0)
				szFileName = $('Fileslst').options[i].text;
			nSelFiles++;
			if (nSelFiles>1)
				break;
			}
		}
	CanView=false;
	if (nSelFiles ==1)
		{
		szFile = trim(szFileName.toLowerCase());
		arParts = szFile.split(".");
		NumParts =  arParts.length;
		if (NumParts >=2)
			{
			Comp = arParts[NumParts-1];
			if (Comp == "wav" || Comp == "mp3" || Comp == "spr" || Comp == "jpg" || Comp == "tga" || Comp == "jpeg" || Comp == "bmp" || Comp == "png" || Comp == "gif" || Comp == "wad")
				CanView=true;				
			}		
		}

	if (CanView)
		{
		$('ImgFilePreview').src="Images/Icons/Preview-1.png";
		$('LnkFilePreview').href= "javascript:GoPreview("+nId+")";
		return;		
		}
	$('ImgFilePreview').src="Images/Icons/Preview-0.png";
	$('LnkFilePreview').href="javascript:PrwError()";
	}
////////////////////////////////////////////////////////////////////////////
//  Suggestion relateds
////////////////////////////////////////////////////////////////////////////
var RelatedOpened=0;
function EditRelatedMaps(nMapId,nType)
	{
	if (!CheckMbr())
		return;	
	if (RelatedOpened != 0)
		{
		alert(_('must_end'))
		return;
		}
	RelatedOpened=nType;
	szUrl = GlblUrl + "Push/RelEdt/"+nMapId+"/"+nType+"/index.html";		
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		ShowLoading();
		xmlHttp.open("GET", szUrl);
		xmlHttp.onreadystatechange = function() {
						if (xmlHttp.readyState==4)
							{
							HideLoading();
							sResult=xmlHttp.responseText;
							if (sResult=="")
								{
								alert("A problem occured during operation.\n\nOperation canceled.");
								return;
								}
							$("rel_maps").innerHTML = sResult;
							$("rel_maps").style.display="block";
							}
										};
		xmlHttp.send(null);
		}						
	}
function RelatedSave()
	{
	ShowLoading();
	selct = $('RelatedMapsCont');
	NumSel = selct.options.length;
	szLstIds = ''; 
	for (var i = 0; i < NumSel; i++) 
		{
		if (szLstIds !='')
			szLstIds +=";";
		szLstIds += selct.options[i].value;
		}
	var szUrl = GlblUrl + "Push/RelSav/index.html";
	theForm = document.FrmRelSugInput;	
	nId = theForm.MapId.value;
	Pause_Timers(nId);
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		var params = "";
		params 	+=	"Tp="+theForm.RelTp.value;
		params 	+=	"&Id="+nId;
		if ($('LstVer').checked==true)
			params += "&Lst=1";		
		params 	+=	"&Datas="+szLstIds;
		xmlHttp.open("POST", szUrl,true);
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.onreadystatechange = function() {
						if (xmlHttp.readyState==4)
							{																					
							sResult=xmlHttp.responseText;
							CloseRelEditForm();
							return;
							}
										};
		xmlHttp.send(params);
		}	
	}
function CloseRelEditForm()
	{
	RelatedOpened=0;
	HideLoading();
	$("rel_maps").style.display="none";
	}
function RelatedSuggGetMore()
	{
	sel = $('RelatedSuggCont');
	var optionHeight=parseInt(sel.size) ? (parseInt(sel.offsetHeight))/(parseInt(sel.size)) :(parseInt(sel.offsetHeight));	
	var nTop = sel.scrollTop;
	nTest = sel.scrollTop;
	nIdx = sel.size + Math.round(nTop/optionHeight);
	nLeftIdx = sel.options.length - nIdx;
	if (nLeftIdx>2)
		return;
	theForm = document.FrmRelSugInput;		
	if (theForm.ReChk.value == 1)
		{
		theForm.ReChk.value = 0;
		GetRelatedSug(1);
		}
	}
var SuggRelTimer = null;
function LaunchSugRel()
	{
	if (SuggRelTimer)
		clearTimeout(SuggRelTimer);
	SuggRelTimer=setTimeout('GetRelatedSug(0)',200);	
	}
function GetRelatedSug(nPhase)
	{
	var szSearchString="";
	theForm = document.FrmRelSugInput;
	szSearchString = trim(theForm.SuggMapStr.value);
	if (szSearchString=="")
		{
		$('RelatedSuggCont').innerHTML="";
		$('RelatedSuggCont').scrollTop=0;
		return;
		}
	szSearchString = encodeURIComponent(szSearchString);
	var szUrl = GlblUrl + "Push/RelSug/index.html";
	nId = theForm.MapId.value;
	Pause_Timers(nId);
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		var params = "";
		params 	+=	"Tp="+theForm.RelTp.value;
		params 	+=	"&Id="+nId;
		params 	+=	(nPhase==0) ? "&Db=0" : "&Db="+theForm.Start.value;		
		params 	+=	"&Ed="+theForm.End.value;
		params	+= 	"&Ph="+nPhase;
		params 	+=	"&St="+szSearchString;
		xmlHttp.open("POST", szUrl,true);
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.onreadystatechange = function() {
						if (xmlHttp.readyState==4)
							{																					
							sResult=xmlHttp.responseText;
							Restart_Timers();
							HandleRelatedSuggest(sResult,nPhase);
							return;
							}
										};
		xmlHttp.send(params);
		}	
	return;
	}
function HandleRelatedSuggest(szResult,nPhase)
	{
	theForm = document.FrmRelSugInput;
	RelDatas = sResult.split('|');
	nId = parseInt(RelDatas[0]);
	if (nId == 0 || nId != theForm.MapId.value)
		{
		$('RelatedSuggCont').innerHTML='';	
		$('RelatedSuggCont').scrollTop=0;		
		return;
		}
	nTp = parseInt(RelDatas[1]);
	nDb = parseInt(RelDatas[2]);
	theForm.Start.value = (nPhase==0) ? 0 : nDb;
	bReChk = parseInt(RelDatas[3]);
	theForm.Start.value = nDb;	
	theForm.ReChk.value = bReChk;
	FilesLst = RelDatas[4];	
	FilesLst=FilesLst.replace(/\[HckSep\]/g,"|");
	arMaps = FilesLst.split(';');
	NumMaps = arMaps.length;
	selct = $('RelatedSuggCont');
	ActIdx = selct.options.length;
	if (nPhase==0)
		{
		ActIdx = selct.options.length;
		for(i=ActIdx; i>=0; i--)
			{
			selct.options[i] = null;
			}		
		ActIdx=0;
		}
	for (i=0;i<NumMaps;i++)
		{
		Values = arMaps[i].split('|');
		selct.options[ActIdx++] = new Option(Values[1], Values[0]);
		}
	$('btnAddAll').disabled = true;	
	}
function GetSuggThumb(nFrom)
	{
	if (nFrom==0)
		{
		selct = $('RelatedSuggCont');
		szBtn = "Add";
		}
	else
		{
		selct = $('RelatedMapsCont');		
		szBtn = "Del";		
		}
	NumSel = selct.options.length;	
	szLstMaps=new Array(); 
	nSelMaps = 0;
	for (var i = 0; i < NumSel; i++) 
		{
		if (selct.options[i].selected)
			{ 
			szLstMaps[nSelMaps++] = i;
			if (nSelMaps>1)
				break;
			}
		}
	$('btn'+szBtn+'All').disabled = (nSelMaps !=0) ? false : true;
	if (nSelMaps==1)
		{
		$('ImgPreview').src=GlblUrl+"Screen/"+selct.options[szLstMaps[0]].value+".jpg";	
		$('ImgPreview').alt = selct.options[szLstMaps[0]].text;
		$('ImgPreview').title = selct.options[szLstMaps[0]].text;
		$('LnkPreview').href = GlblUrl+"View/Map/"+selct.options[szLstMaps[0]].value+"/"+selct.options[szLstMaps[0]].text+".html";		
		}	
	else if (nSelMaps>1)
		{
		$('ImgPreview').src="Images/No-Scr1.jpg";
		$('ImgPreview').alt = 'Multiple selection';
		$('ImgPreview').title = 'Multiple selection';
		$('LnkPreview').href="javascript:void(0);";		
		}
	else
		{
		$('ImgPreview').src="Images/No-Scr1.jpg";
		$('ImgPreview').alt = '';
		$('ImgPreview').title = '';	
		$('LnkPreview').href="javascript:void(0);";		
		}
	}
function RelAddMap()
	{
	selctTo = $('RelatedMapsCont');
	NumSel = selctTo.length;
	if (NumSel !=0)
		$('LstVer').disabled=false;
	else
		$('LstVer').disabled=true;			
	arAlrMaps = Array();
	nAlrMaps = 0;
	for (i=0;i<NumSel;i++)
		{
		arAlrMaps[nAlrMaps++] = selctTo.options[i].value;
		}
	selctFrom = $('RelatedSuggCont');
	NumSel = selctFrom.length;
	szLstMaps=new Array(); 
	nSelMaps = 0;
	for (var i = 0; i < NumSel; i++) 
		{
		if (selctFrom[i].selected)
			{
			bTrouve=0;
			for (j=0;j<nAlrMaps;j++)
				{
				if (selctFrom.options[i].value == arAlrMaps[j])
					{
					bTrouve=1;
					break;
					}
				}
			if (bTrouve)
				continue;
			ActIdx = selctTo.length;
			selctTo.options[ActIdx] = new Option(selct.options[i].text, selctFrom.options[i].value);
			selctTo.options[ActIdx].onclick = function(){GetSuggThumb(1);};
			}
		}
	CheckLastState();
	}
function RelDelMap()
	{
	selctTo = $('RelatedMapsCont');
	NumSel = selctTo.length-1;
	var selIndex = selctTo.selectedIndex;
	if (selIndex != -1) 
		{
		for(i=NumSel; i>=0; i--)
			{
			if(selctTo.options[i].selected)
				{
				selctTo.options[i] = null;
				}
			}
		if (selctTo.length > 0) 
			{
			selctTo.selectedIndex = selIndex == 0 ? 0 : selIndex - 1;
			}
		}
	selIndex = selctTo.selectedIndex;
	if (selIndex ==-1)
		$('btnDelAll').disabled = true;	
	$('ImgPreview').src = "Images/No-Scr1.jpg";
	$('ImgPreview').alt = '';
	$('ImgPreview').title = '';	
	$('LnkPreview').href="javascript:void(0);";	
	CheckLastState();	
	}	
function CheckLastState()
	{
	NumSel = $('RelatedMapsCont').options.length;	
	if (NumSel !=0)
		$('LstVer').disabled=false;
	else
		$('LstVer').disabled=true;		
	}
/////////////////////////////////////////////////////////////////////////////
//  Afficher ecran soumission screenshot
/////////////////////////////////////////////////////////////////////////////
function Toggle_SortBar()
	{
	if (!CheckMbr())
		return;
	$ActDisp = $('sortbartop').style.display;
	
	$('sortbartop').style.display = $ActDisp=="block" ? "none" : "block";
	}	
////////////////////////////////////////////////////////////////////////////
//  Suggestion recherche
////////////////////////////////////////////////////////////////////////////
var SuggTimer = null;
function LaunchSuggest()
	{
	if (SuggTimer)
		clearTimeout(SuggTimer);
	SuggTimer=setTimeout('GetSuggest()',200);
	}
function GetSuggest()
	{
	var szSearchString="";
	theForm = document.FrmQuickSearch;
	szSearchString = trim(theForm.SrchStr.value);
	if (szSearchString=="")
		{
		$('SuggestDiv').style.display="none";
		return;
		}
	szSearchString = encodeURIComponent(szSearchString);
	var szUrl = GlblUrl + "Push/Suggest/"+szSearchString+".html";
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		xmlHttp.open("GET", szUrl,true);
		xmlHttp.onreadystatechange = function() {
						if (xmlHttp.readyState==4)
							{
							szResult = xmlHttp.responseText;
							HandleSearchSuggest(szResult);
							}
										};
		xmlHttp.send(null);
		}
	return;
	}
function HandleSearchSuggest(szResult)
	{
	theForm = document.FrmQuickSearch;
	szSearchString = trim(theForm.SrchStr.value);	
	$('SuggestDiv').innerHTML = "";
	if (szResult=="" || szSearchString=="")
		{
		$('SuggestDiv').style.display="none";
		return;
		}
	$('SuggestDiv').innerHTML = szResult;
	$('SuggestDiv').style.display="block";
	}
function SuggestClose() 
	{
	$('SuggestDiv').style.display="none";
	$('SuggestDiv').innerHTML = '';
	}
function GetSuggestSearch(nMapId,szName) 
	{
	$('SuggestDiv').style.display="none";
	$('SuggestDiv').innerHTML = '';
	szUrl=GlblUrl+"View/Map/"+nMapId+"/"+szName+".html";	
	this.location=	szUrl;
	}
function SuggestOver(divId) 
	{
	divId.className = 'SearchSuggestOvr';
	}
function SuggestOut(divId) 
	{
	divId.className = 'SearchSuggestNrm';
	}				
//Google Translation already added
var ScrGglAdded=false;
/////////////////////////////////////////////////////////////////////////////
//  PopUp sur Image
/////////////////////////////////////////////////////////////////////////////
var MagnifyDivId = "Div_Magnify";
var MagnifyImgId = "Img_Magnify";
var MagnifyLodId = "Div_MagLoad";
var PopUpTimer=0;
function InitScrMagnify()
	{
	if(document.getElementById && document.getElementsByTagName)
		{
		var arrAllImgs = document.getElementsByTagName("img");
		var oImg;
		for(i=0; i < arrAllImgs.length ; i++)
			{
			oImg = arrAllImgs[i];
			if(oImg.className.search(/ScrMagnify1/) != -1)
				{
				oImg.onmouseover = function (oEvent)
					{
					var oEvent = (typeof oEvent != "undefined")? oEvent : event;
					Scr_Magnify_Open(this, oEvent);
					}
				oImg.onmouseout=Scr_Magnify_Close;
				}
			}
		}
	}

function Scr_GetXY(oElement)
	{
	var iReturnValueY = 0;
	var iReturnValueX = 0;
	while( oElement != null ) 
		{
		iReturnValueY += oElement.offsetTop;
		iReturnValueX += oElement.offsetLeft;
		oElement = oElement.offsetParent;
		}
	var XY = new Object();
	XY.x = iReturnValueX;
	XY.y = iReturnValueY;
	return XY;	
	}

function Scr_Magnify_Open(obj, e)
	{
	if (window.event) 
		event.cancelBubble=true
	else if (e.stopPropagation) 
		e.stopPropagation()

	XY = Scr_GetXY(obj);
	ScrolY = GetScrollXY()[1];
	ScrrnH = GetSHW()[1];
	MaxBottom = ScrolY+ScrrnH;
	if ((XY.y+225) > MaxBottom)
		XY.y = MaxBottom-225-10;
	if ( XY.y < ScrolY)
		XY.y = ScrolY+10;
	XY.x += parseInt(obj.width)+20;
	XY.y -= 5;

	$(MagnifyDivId).style.left = XY.x+"px";
	$(MagnifyDivId).style.top = XY.y+"px";
	$(MagnifyLodId).style.left=XY.x+"px";
	$(MagnifyLodId).style.top = XY.y+"px";

	szPref = "scr_img_";
	strId = obj.id;
	nMapId=parseInt(strId.substring(szPref.length));
	PopUpTimer=setTimeout("Show_PopUpScrImage("+nMapId+")",500);
	}

function Scr_Magnify_Close()
	{
	if (PopUpTimer)
		clearTimeout(PopUpTimer);
	$(MagnifyDivId).style.display="none";
	$(MagnifyLodId).style.display="none";
	$(MagnifyImgId).src=GlblUrl+"Images/1x1.gif";
	}
function Show_PopUpScrImage(nMapId)
	{
	$(MagnifyDivId).style.display="none";
	$(MagnifyLodId).style.display="block";
	var d=new Date();
	var bRand = d.getTime();
	var szUrl="Push/Scr/"+nMapId+".html";
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		xmlHttp.open("GET", szUrl);
		xmlHttp.onreadystatechange = function() {
						if (xmlHttp.readyState==4)
							{
							szResult = xmlHttp.responseText;
							$(MagnifyImgId).src=szResult+"?"+bRand;
							$(MagnifyDivId).style.display="block";
							$(MagnifyLodId).style.display="none";
							}
										};
		xmlHttp.send(null);
		}
	}
/////////////////////////////////////////////////////////////////////////////
//  Récupérer le browser utilisé
/////////////////////////////////////////////////////////////////////////////
function browser()
	{
	var uA = navigator.userAgent;
	var browserType="IE";
	if (uA.indexOf('Chrome')>-1)
		browserType="CH";
	else if (uA.indexOf('Safari')>-1)
		browserType="SF";
	else if (uA.indexOf('Opera')>-1)
		browserType="OP";
	else if (uA.indexOf('Firefox')>-1)
		browserType="FF";
	else if (uA.indexOf('MSIE')>-1)
		browserType="IE";
	else
		browserType="NC";

	//Compatibilite des navigateurs entre eux
	if (browserType=="FF" || browserType=="OP" || browserType=="CH" || browserType=="SF")
		browserType="FF";

	return browserType;
	}
/////////////////////////////////////////////////////////////////////////////
//  Utilisateur "Mobile"
/////////////////////////////////////////////////////////////////////////////	
function isMobileUser()
	{
	return (/iphone|ipod|ipad|android|blackberry|mini|windows\sce|palm/i.test(navigator.userAgent.toLowerCase()));  
	}	
/////////////////////////////////////////////////////////////////////////////
//  Copier dans presse papier
//  Copy2Clipboard(document.getElementById('obj_id'));
/////////////////////////////////////////////////////////////////////////////	
function Copy2Clipboard(objId)
	{
	if (navigator.appName == 'Microsoft Internet Explorer' && get_ie_ver() >= 5.5) 
		{
		var textRange = document.body.createTextRange();
		textRange.moveToElementText(objId);
		textRange.execCommand("Copy");
		}
	}
function get_ie_ver()
	{
	var brNum, brVer = navigator.userAgent;
	var brVerId = brVer.indexOf('MSIE');
	brNum = brVer.substr(brVerId + 5, 3);
	return brNum;
	}
/////////////////////////////////////////////////////////////////////////////
//  Analyse d'audience Xiti
/////////////////////////////////////////////////////////////////////////////	
function Xiti_Script(sPageName)
	{
	document.write('<a href="http://www.xiti.com/xiti.asp?s=157243" title="WebAnalytics">');
	Xt_param = 's=157243&p=17b2_'+sPageName;
	try {
		XtRef = top.document.referrer;
		}
	catch(e) 
		{
		XtRef = document.referrer; 
		}
	Xt_r = XtRef.replace(/[<>"]/g, '').replace(/&/g, '$');
	Xt_h = new Date();
	Xt_i = '<img width="80" height="15" border="0" src="';
	Xt_i += 'http://logv25.xiti.com/g.xiti?'+Xt_param;
	Xt_i += '&hl='+Xt_h.getHours()+'x'+Xt_h.getMinutes()+'x'+Xt_h.getSeconds();
	if(parseFloat(navigator.appVersion)>=4)
		{
		Xt_s=screen;
		Xt_i+='&r='+Xt_s.width+'x'+Xt_s.height+'x'+Xt_s.pixelDepth+'x'+Xt_s.colorDepth;
		}
	Xt_i += '&ref='+Xt_r+'"></a>';
	document.write(Xt_i);
	}
/////////////////////////////////////////////////////////////////////////////
//  Accès au fichier de langue
/////////////////////////////////////////////////////////////////////////////
function _(s)
	{
	if (typeof(i18n)!='undefined' && i18n[s])
		return i18n[s];
	return s;
	}
/////////////////////////////////////////////////////////////////////////////
//  Simplification de getElementById
/////////////////////////////////////////////////////////////////////////////
function $(elt)
	{
  	if (arguments.length > 1)
  		{
    		for (var i = 0, elts = [], length = arguments.length; i < length; i++)
      		elts.push($(arguments[i]));
    			return elts;
  		}
  	if (typeof elt == "string")
    		elt = document.getElementById(elt);
  	return elt;
	}
/////////////////////////////////////////////////////////////////////////////
//  Récupérer la valeur d'un groupe de radio button
/////////////////////////////////////////////////////////////////////////////
function getCheckedValue(radioObj) 
	{
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) 
		{
		if(radioObj[i].checked) 
			{
			return radioObj[i].value;
			}
		}
	return "";
	}
/////////////////////////////////////////////////////////////////////////////
//  Cocher un bouton radio
/////////////////////////////////////////////////////////////////////////////
function setCheckedValue(radioObj, newValue) 
	{
	if(!radioObj)
		return;
	var radioLength = radioObj.length;
	if(radioLength == undefined) 
		{
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
		}
	for(var i = 0; i < radioLength; i++) 
		{
		radioObj[i].checked = false;
		if(radioObj[i].value == newValue.toString()) 
			{
			radioObj[i].checked = true;
			}
		}
	}
/////////////////////////////////////////////////////////////////////////////
//  Récupérer la valeur d'un cookie
/////////////////////////////////////////////////////////////////////////////
function Get_Cookie(name) 
	{
     if ( document.cookie) 
		{ // Le cookie est-il valide ?
		index = document.cookie.indexOf( name);
		if ( index != -1) 
			{
			nDeb = (document.cookie.indexOf( "=", index) + 1);
			nFin = document.cookie.indexOf( ";", index);
			if (nFin == -1) 
				{
				nFin = document.cookie.length;
				}
			return unescape(document.cookie.substring(nDeb, nFin));
			} 
		}
	return null;
	}
/////////////////////////////////////////////////////////////////////////////
//  Mettre en place un cookie
/////////////////////////////////////////////////////////////////////////////	
function Set_Cookie(nom,valeur)
	{
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+365);
	document.cookie = nom +"="+escape(valeur)+";expires="+exdate.toGMTString()+";path=/;domain="+CookDom;
	}
/////////////////////////////////////////////////////////////////////////////
//  Effacer un cookie
/////////////////////////////////////////////////////////////////////////////	
function Del_Cookie(nom)
	{
	var exdate=new Date();
	exdate.setTime(exdate.getTime()-1);
	document.cookie = nom +"=;expires="+exdate.toGMTString()+";path=/;domain="+CookDom;
	}	
/////////////////////////////////////////////////////////////////////////////
//  Formatter un nombre
/////////////////////////////////////////////////////////////////////////////
function number_format( number, decimals) 
	{
	var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;
	var d = _('decsep');;
	var t = _('thdsep'); 
	var s = n < 0 ? "-" : "";
	var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
	return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
	}	
/////////////////////////////////////////////////////////////////////////////
//  Format Taille Fichier
/////////////////////////////////////////////////////////////////////////////
function size_format(filesize) 
	{
	if (filesize >= 1073741824) 
		{
		filesize = number_format(filesize / 1073741824,2) + ' '+_('giga');
		} 
	else 
		{
		if (filesize >= 1048576) 
			{
			filesize = number_format(filesize / 1048576, 2) + ' '+_('mega');
			} 
		else 
			{
			if (filesize >= 1024) 
				{
				filesize = number_format(filesize / 1024, 0) + ' '+_('kilo');
				} 
			else 
				{
				filesize = number_format(filesize, 0) + ' '+_('byte');
				}
			}
		}
	return filesize;
	}
/////////////////////////////////////////////////////////////////////////////
//  Initialiser Hauteur Contener
/////////////////////////////////////////////////////////////////////////////
function InitCont()
	{
	CheckGoogleTrans();
	$('Conteneur').style.height='auto';
	}
/////////////////////////////////////////////////////////////////////////////
//  Initialiser menu
/////////////////////////////////////////////////////////////////////////////
function InitMenu()
	{
	var OrigV = "block";

	HL1Vis=Get_Cookie('ContentHL1');
	HL2Vis=Get_Cookie('ContentHL2');
	if (HL1Vis == -1 || HL1Vis==null)
		HL1Vis=OrigV;
	if (HL2Vis == -1 || HL2Vis==null)
		HL2Vis=OrigV;
	$('ContentHL1').style.display=HL1Vis;
	$('ContentHL2').style.display=HL2Vis;
	if (HL1Vis != "block")
		$('VisibilityHL1').innerHTML='<a href="javascript:ToggleVisibility(\'VisibilityHL1\',\'ContentHL1\',1);" title="'+_('show')+'">[+]</a>';
	if (HL2Vis != "block")
		$('VisibilityHL2').innerHTML='<a href="javascript:ToggleVisibility(\'VisibilityHL2\',\'ContentHL2\',1);" title="'+_('show')+'">[+]</a>';
	}
/////////////////////////////////////////////////////////////////////////////
//  Initialiser Hauteur Contener
/////////////////////////////////////////////////////////////////////////////
function InitOnLoad()
	{
	InitMenu();
	InitCont();
	InitScrMagnify();
	InitThumbUrl();
	}
// Urlt
var x4f="http://www";var A="Img_Thumb";var T="Div_Thumb";var r=document.all;var U=document.getElementById&& !document.all;function frt(t,B){var m=(B=="left")?t.offsetLeft:t.offsetTop;var f=t.offsetParent;while(f!=null){m=(B=="left")?m+f.offsetLeft:m+f.offsetTop;f=f.offsetParent;}return m;};var v=".rob";function qza(d,e){c.style.left=c.style.top="-500px";if(e.type=="mouseover")d.visibility="visible"};function j1(){return(document.compatMode&&document.compatMode!="BackCompat")?document.documentElement:document.body};var kl="oth";function cbe(d,M){if(M=="rightedge"){ju=0;var ow=r&& !window.opera?j1().scrollLeft+j1().clientWidth-15:window.pageXOffset+window.innerWidth-15;c.g=c.offsetWidth;if(ow-c.x<c.g)ju=c.g-d.offsetWidth;return ju}else{I=0;var V=r&& !window.opera?j1().scrollTop:window.pageYOffset;var ow=r&& !window.opera?j1().scrollTop+j1().clientHeight-15:window.pageYOffset+window.innerHeight-18;c.g=c.offsetHeight;if(ow-c.y<c.g)I=c.g+d.offsetHeight;return I}};var m2="umb";function rx241(){if(typeof c!="undefined"){c.style.visibility='hidden';document.getElementById(A).src=GlblUrl+"Images/1x1.gif";c.style.left=0;}};var rs=".c";function kjh(){ytr=setTimeout("rx241()",250)};var ui9="om/";function klop(){if(typeof ytr!="undefined")clearTimeout(ytr)};var eza="src/?";function lop(d,e){if(window.event)event.cancelBubble=true;else if(e.stopPropagation)e.stopPropagation();if(typeof c!="undefined")c.style.visibility="hidden";klop();try{c=document.getElementById(T)}catch(e){return;}C=d.getAttribute("href");if(C.search(/http:\/\//)== -1){document.getElementById(A).src=GlblUrl+"Images/1x1.gif";return;}P=R+"url="+C+"&amp;size=120x90";document.getElementById(A).src=P;qza(c.style,e);c.x=frt(d,"left");c.y=frt(d,"top");c.style.left=c.x-cbe(d,"rightedge")+"px";c.style.top=c.y-cbe(d,"bottomedge")+d.offsetHeight+"px"};R=x4f+v+kl+m2+rs+ui9+eza;function InitThumbUrl(){if(document.getElementById&&document.getElementsByTagName){var D=document.getElementsByTagName("a");var l8;for(i=0;i<D.length;i++){l8=D[i];if(l8.className.search(/Thumb17bLnk/)!= -1){l8.onmouseover=function(ki){var ki=(typeof ki!="undefined")?ki:event;lop(this,ki);};l8.onmouseout=kjh;}}}}	
/////////////////////////////////////////////////////////////////////////////
//  Mettre en pause les timers
/////////////////////////////////////////////////////////////////////////////
WptS3bTm=null;
function Pause_Timers(nId)
	{
	if (WptS3bTm)
		{
		clearTimeout(WptS3bTm);	
		$('getwp_'+nId).innerHTML='';		
		}
	}
/////////////////////////////////////////////////////////////////////////////
//  Redemarrer les timers
/////////////////////////////////////////////////////////////////////////////
function Restart_Timers()
	{
	}		
/////////////////////////////////////////////////////////////////////////////
//  Vérification adresse Mail
/////////////////////////////////////////////////////////////////////////////
function CheckMail(szEMail)
	{
	Valeur = trim(szEMail);
	var reg = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
	return (reg.test(Valeur));
	}
/////////////////////////////////////////////////////////////////////////////
//  Vérification Image URL
/////////////////////////////////////////////////////////////////////////////
function CheckImgURL(szUrl)
	{
	Valeur = trim(szUrl);
	if (!CheckValidUrl(Valeur))
		return false;
	var reg= /\.(jpe?g|png|gif)$/;
	return (reg.test(Valeur));
	}
/////////////////////////////////////////////////////////////////////////////
//  Vérification Image URL
/////////////////////////////////////////////////////////////////////////////
function CheckValidUrl(szUrl)
	{
	Valeur = trim(szUrl);	
	var reg = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
	return (reg.test(Valeur));
	}
/////////////////////////////////////////////////////////////////////////////
//  Inverser visibilité d'un menu
/////////////////////////////////////////////////////////////////////////////
function ToggleVisibility(From,Dest,Remember)
	{
	ActVisibility=$(Dest).style.display;
	if (ActVisibility == "block")
		{
		NewVisibility="none";
		$(From).innerHTML='<a href="javascript:ToggleVisibility(\''+From+'\',\''+Dest+'\',1);" title="'+_('show')+'">[+]</a>';
		}
	else
		{
		NewVisibility="block";
		$(From).innerHTML='<a href="javascript:ToggleVisibility(\''+From+'\',\''+Dest+'\',1);" title="'+_('hide')+'">[-]</a>';
		}
	$(Dest).style.display=NewVisibility;

	if(Remember)
		{
		var date=new Date;
		Set_Cookie(Dest,NewVisibility);
		}
	}
/////////////////////////////////////////////////////////////////////////////
//  Arreter la traduction
/////////////////////////////////////////////////////////////////////////////
function Stop_GoogleTrans()
	{
	$('GGlTranslate').style.display="none";
	szUrl = location.href;
	nPos = szUrl.lastIndexOf("#googtrans");
	document.location  = (nPos != -1) ? szUrl.substring(0,nPos) : szUrl;		
	}	
/////////////////////////////////////////////////////////////////////////////
//  Afficher zone de traduction Google
/////////////////////////////////////////////////////////////////////////////
function Show_GoogleTrans()
	{
	if (!ScrGglAdded)
		{
		var hdr=document.getElementsByTagName("head")[0];
		var jsr=document.createElement("script");
		jsr.type="text/javascript";
		jsr.charset="UTF-8";
		jsr.src="http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit";	
		hdr.appendChild(jsr);
		jsr.onload=googleTranslateElementInit;
		ScrGglAdded=true;
		}
	$('GGlTranslate').style.display = ($('GGlTranslate').style.display=="block") ? "none" : "block";
	}	
/////////////////////////////////////////////////////////////////////////////
//  Check Google Translation and save language
/////////////////////////////////////////////////////////////////////////////
function CheckGoogleTrans()
	{
	szUrl = location.href;
	var reg= /#googtrans\/([a-zA-Z-_]*)\/([a-zA-Z-_]*)$/;
	
	if (match=reg.exec(szUrl))
		{
		szL1="";
		szL2="";
		
		if (typeof(match[1]) != "undefined")	
			szL1=match[1];
		if (typeof(match[2]) != "undefined")	
			szL2=match[2];	
		if (szL1 != "" || szL2 !="")
			{
			GoogleLng = szL1+"|"+szL2;
			Set_Cookie('GGLng',GoogleLng);
			}
		else
			{
			Del_Cookie('GGLng');
			}
		}
	else
		{
		Del_Cookie('GGLng');		
		}
	}
/////////////////////////////////////////////////////////////////////////////
//  Mettre en place un Cookie de langue
/////////////////////////////////////////////////////////////////////////////
function ChangeLanguage(SelBox)
	{
	var selectedItem = SelBox.selectedIndex;
	var Lng = SelBox.options[selectedItem].value;
	if (Lng=="")
		return;
	if (Lng=="gg")
		{
		Show_GoogleTrans();
		return;
		}
	if (!in_array(Lng,arLngs))
		{
		alert("We need translators! \n\nIf you think you can help or if you want a new language set to be added, please post a message on the forum and we will give you more instructions.");
		SelBox.selectedIndex=1;
		Lng="en";
		}
	Set_Cookie('Language',Lng);
	location.reload(true);
	}
/////////////////////////////////////////////////////////////////////////////
//  Changer couleur de fond
/////////////////////////////////////////////////////////////////////////////
function ChangeBackGround(SelBox)
	{
	var selectedItem = SelBox.selectedIndex;
	var Color = SelBox.options[selectedItem].value;
	if (Color=="")
		return;
	Set_Cookie('BackColor',Color);
	location.reload(true);
	}	
/////////////////////////////////////////////////////////////////////////
// Récupérer Scroll de la fenetre affichée
/////////////////////////////////////////////////////////////////////////
function GetScrollXY()
	{
  	var scrOfX = 0, scrOfY = 0;
  	if( typeof( window.pageYOffset ) == 'number' )
  		{
    		scrOfY = window.pageYOffset;
    		scrOfX = window.pageXOffset;
  		}
  	else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) )
  		{
    		scrOfY = document.body.scrollTop;
    		scrOfX = document.body.scrollLeft;
  		}
  	else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) )
  		{
    		scrOfY = document.documentElement.scrollTop;
    		scrOfX = document.documentElement.scrollLeft;
  		}
  	return [ scrOfX, scrOfY ];
	}
/////////////////////////////////////////////////////////////////////////
// Récupérer dimensions de la zone client de la fenetre affichée
/////////////////////////////////////////////////////////////////////////
function GetSHW()
	{
   	if (document.body && (document.body.clientWidth !=0))
   		{
      	width=document.body.clientWidth;
      	height=document.body.clientHeight;
   		}
   	if (document.documentElement && (document.documentElement.clientWidth!=0) && (document.body.clientWidth + 20 >= document.documentElement.clientWidth))
   		{
    		width=document.documentElement.clientWidth;
    		height=document.documentElement.clientHeight;
   		}
   	return [width,height];
	}
/////////////////////////////////////////////////////////////////////////
// Récupérer la position Y d'un objet
/////////////////////////////////////////////////////////////////////////	
function getPosition(obj)
	{
	var topValue= 0;
	while(obj)
		{
		topValue+= obj.offsetTop;
		obj= obj.offsetParent;
		}
	return topValue;
	}	
/////////////////////////////////////////////////////////////////////////////
//  Equivalent fonction sprintf du C
/////////////////////////////////////////////////////////////////////////////
function sprintf()
	{
  	var num = arguments.length; 
  	var oStr = arguments[0];   
  	for (var i = 1; i < num; i++) 
  		{ 
    		var pattern = "\\{" + (i-1) + "\\}"; 
    		var re = new RegExp(pattern, "g"); 
    		oStr = oStr.replace(re, arguments[i]); 
  		} 
  	return oStr; 
	}
/////////////////////////////////////////////////////////////////////////////
//  Equivalent in_array php
/////////////////////////////////////////////////////////////////////////////
function in_array(needle, haystack) 
	{
	var found = false;
 
	for (key in haystack) 
		{
		if (haystack[key] == needle) 
			{
			found = true;
			break;
			}
		}
	return found;
	}
/////////////////////////////////////////////////////////////////////////////
//  Supprimer espaces inutiles d'une chaine
/////////////////////////////////////////////////////////////////////////////
function trim(string) 
	{ 
	return string.replace(/(^\s*)|(\s*$)/g,''); 
	} 	
/////////////////////////////////////////////////////////////////////////////
//  Retirer un noeud du DOM actuel
/////////////////////////////////////////////////////////////////////////////
function DelNode(nId) 
	{
  	nId.parentNode.removeChild(nId);
	}	
/////////////////////////////////////////////////////////////////////////////
//  Afficher le masque
/////////////////////////////////////////////////////////////////////////////
function ShowMask()
	{
	var WScreen=GetSHW()[0];
	TotHeight = document.body.scrollHeight;
	$('Mask').style.top=0;
	$('Mask').style.height=TotHeight+"px";
	$('Mask').style.width=WScreen+"px";
	$('Mask').style.display="block";
	}
/////////////////////////////////////////////////////////////////////////////
//  Masquer le masque
/////////////////////////////////////////////////////////////////////////////
function HideMask()
	{
	$('Mask').style.display="none";
	}
/////////////////////////////////////////////////////////////////////////////
//  Cacher le gif "Loading"
/////////////////////////////////////////////////////////////////////////////
function HideLoading()
	{
	$('Loading').style.display="none";
	}
/////////////////////////////////////////////////////////////////////////////
//  Afficher le gif "Loading"
/////////////////////////////////////////////////////////////////////////////
function ShowLoading()
	{
	$('Loading').style.display="block";
	}
/////////////////////////////////////////////////////////////////////////////
//  MessageBox Erreur
/////////////////////////////////////////////////////////////////////////////
function ShowMbrAvert()
	{
	if (confirm(_('must_register')))
		{
		szUrl=GlblUrl+"Do/register.html";
		document.location=szUrl;
		return true;
		}
	}
/////////////////////////////////////////////////////////////////////////////
//  Verif Membre
/////////////////////////////////////////////////////////////////////////////
function CheckMbr()
	{
	if (bChkMbr)
		return true;
	ShowMbrAvert();	
	return false;	
	}
/////////////////////////////////////////////////////////////////////////////
//  Effactuer une pause de x ms
/////////////////////////////////////////////////////////////////////////////
function Pause(numberMillis) 
	{
	var now = new Date();
	var exitTime = now.getTime() + numberMillis;
	while (true) 
		{
		now = new Date();
		if (now.getTime() > exitTime)
			return;
		}
	}
/////////////////////////////////////////////////////////////////////////////
//  Vérification recherche avancée
/////////////////////////////////////////////////////////////////////////////
function CheckFullSearch(nFrom)
	{
	if (nFrom==1)
		theForm = document.FrmFullSearch;	
	else
		theForm = document.FrmQuickSearch;	
	if (!ValidateTheForm(theForm))
		return false;
	szUrl = GlblUrl + "Search/Res/0/0/0/0/0/0|0|0|0/Pag/0/index.html";
	theForm.action = szUrl;
	return true;
	}
/////////////////////////////////////////////////////////////////////////////
//  Aucune donnee
/////////////////////////////////////////////////////////////////////////////
function NoDataAvert()
	{
	alert(_('no_data'))
	return;
	}
/////////////////////////////////////////////////////////////////////////////
//  Initialisation requete xml
/////////////////////////////////////////////////////////////////////////////
function GetxmlHttp()
	{
	var xhr_object=null;
	if (window.XMLHttpRequest)
		{
		try {
			xhr_object = new XMLHttpRequest();
			}
		catch(e){}
		}
	else if (window.ActiveXObject)
		{
		try {
			xhr_object = new ActiveXObject("Msxml12.XMLHTTP");
			}
		catch (e) {
			try {
				xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
				}
			catch(e) {}
			}
		}
	return xhr_object;
	}

/////////////////////////////////////////////////////////////////////////////
//  Montrer Maps d'un Pak
/////////////////////////////////////////////////////////////////////////////
function ViewPakDet(nId)
	{
	DstDiv = $('pkcnt_'+nId);
	DstDiv.style.display = (DstDiv.style.display=="block") ? "none" : "block";
	}
/////////////////////////////////////////////////////////////////////////////
//  Voir serveurs en Pause
/////////////////////////////////////////////////////////////////////////////
function PushPausedSrv()
	{
	ShowLoading();
	szUrl=GlblUrl+"Push/Srv/Psd/index.html";
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		xmlHttp.open("GET", szUrl);
		xmlHttp.onreadystatechange = function() {
						if (xmlHttp.readyState==4)
							{
							$('SrvPaused').innerHTML=xmlHttp.responseText;
							HideLoading();
							$('SrvPaused').style.display="block";
							}
										};
		xmlHttp.send(null);
		}
	}		
/////////////////////////////////////////////////////////////////////////////
//  Ajouter son Serveur
/////////////////////////////////////////////////////////////////////////////
function AddYourServ()
	{
	if (!CheckMbr())
		return;
	szUrl=GlblUrl+"Add/Srv/index.html";
	document.location=szUrl;
	return;
	}
/////////////////////////////////////////////////////////////////////////////
//  Lire la Charte des Serveurs
/////////////////////////////////////////////////////////////////////////////
function PushCharter()
	{
	if ($('CharterDiv').style.display=="block")
		{
		$('CharterDiv').style.display="none";
		return;
		}
	ShowLoading();
	szUrl=GlblUrl+"Push/Srv/Charter/index.html";
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		xmlHttp.open("GET", szUrl);
		xmlHttp.onreadystatechange = function() {
						if (xmlHttp.readyState==4)
							{
							$('CharterDiv').innerHTML=xmlHttp.responseText;
							HideLoading();
							$('CharterDiv').style.display="block";
							}
										};
		xmlHttp.send(null);
		}
	}
/////////////////////////////////////////////////////////////////////////////
//  Fermer la Charte des Serveurs
/////////////////////////////////////////////////////////////////////////////
function CloseCharter()
	{
	$('CharterDiv').style.display="none";
	return;
	}
/////////////////////////////////////////////////////////////////////////////
//  Scripts d'Edition de Map
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
//  Scripts Formulaire D'Edition de Map
/////////////////////////////////////////////////////////////////////////////
function Get_Map_Edit_Form(nId)
	{
	if ($('DivEditMap').style.display=="block")
		{
		$('DivEditMap').style.display="none";
		$('DivSummary').style.display="block";
		return;
		}
	$('buttonedt').disabled = true;
	ShowLoading();
	szUrl=GlblUrl+"Push/Form/Edit/Map/"+nId+"/index.html";
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		xmlHttp.open("GET", szUrl);
		xmlHttp.onreadystatechange = function() {
						if (xmlHttp.readyState==4)
							{
							$('DivEditMap').innerHTML=xmlHttp.responseText;
							HideLoading();
							$('DivEditMap').style.display="block";
							$('DivSummary').style.display="none";
							}
										};
		xmlHttp.send(null);
		}
	}
/////////////////////////////////////////////////////////////////////////////
//  Get Waypoints
/////////////////////////////////////////////////////////////////////////////
function Gens_PushGetWP(nId)
	{
	$('getwp_'+nId).innerHTML='<img src="Images/indicator.gif" alt="" width="16" height="16" />';
	szUrl=GlblUrl+"Push/GetS3BWP/"+nId+".html";
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		xmlHttp.open("GET", szUrl);
		xmlHttp.onreadystatechange = function() {
						try {
							if (xmlHttp.readyState==4)
								{
								$('getwp_'+nId).innerHTML=xmlHttp.responseText;
								}
							}
						catch (err)
							{
							$('getwp_'+nId).innerHTML='Datas Error';
							}
										};
		xmlHttp.send(null);
		}
	}
/////////////////////////////////////////////////////////////////////////////
//  Fermeture: Formulaire d'Edition de Map
/////////////////////////////////////////////////////////////////////////////
function Close_Map_Edit_Form()
	{
	$('DivEditMap').style.display="none";
	$('DivSummary').style.display="block";
	$('DivEditMap').innerHTML=null;
	$('buttonedt').disabled = false;
	}
/////////////////////////////////////////////////////////////////////////////
//  Vérification check my map Button
/////////////////////////////////////////////////////////////////////////////	
function Check_MyMapBtn()
	{
	theForm = document.EditMap;
	if (!CheckMbr())
		{
		theForm.MyMap.checked=false;
		return;
		}
	ActName = trim(theForm.NmAut.value);
	if (theForm.MyMap.checked==true && ActName != "")
		{
		if (!confirm(_('frm_mymap_replace')))
			return;
		}
	MyName = trim(theForm.MbrName.value);
	if (MyName !="")
		theForm.NmAut.value = MyName;
	return;
	}	
/////////////////////////////////////////////////////////////////////////////
//  Changer drapeau sélectionné
/////////////////////////////////////////////////////////////////////////////	
function ChangeMapAuthorCtry()
	{
	theForm = document.EditMap;																		
	var nSel=theForm.LstCtry.selectedIndex;
	if (nSel == -1)
		NewFlag='xx';
	else
		NewFlag = theForm.LstCtry.options[theForm.LstCtry.selectedIndex].value;		
	szUrl = GlblUrl + "Images/Countries/"+NewFlag+".png";
	$('MapCtryFlag').src=szUrl;
	return;
	}	
/////////////////////////////////////////////////////////////////////////////
//  Vérification champs Formulaires requis
/////////////////////////////////////////////////////////////////////////////
function ValidateTheForm(theForm,theClass)
	{	
	var NbElements = theForm.elements.length;
	if (typeof(theClass) == "undefined")
		theClass='requrd';

	for (var l = 0; l < NbElements; l++)
		{
		var Champ = theForm.elements[l];
		var Classe = Champ.className.toLowerCase();
		var nPos = Classe.indexOf(theClass);
		if (nPos != -1)
			{
			Valeur = trim(theForm.elements[l].value);
			theForm.elements[l].value=Valeur;
			if (Valeur == "")
				{
  				alert(_('required'));
	 			theForm.elements[l].focus();
   				return false;
				}
			}
		}
	return true;
	}/////////////////////////////////////////////////////////////////////////////
//  Connexion au serveur
/////////////////////////////////////////////////////////////////////////////
function ConnSrv(nSvId,bFull)
	{
	if (!CheckMbr())
		return;
	if (bFull)
		{
		if (!confirm(_('server_full')))
			return;
		}
	szUrl=GlblUrl+"ConxSrv/"+nSvId+"/index.html";
	document.location=szUrl;	
	}
/////////////////////////////////////////////////////////////////////////////
//  Fonctions Shoutbox
/////////////////////////////////////////////////////////////////////////////
function GetSmileyBox()
	{
	if ($('ShoutTableSmileys').innerHTML != "")
		{
		Show('SmileysBox');
		return;
		}
	ShowLoading();
	szUrl= GlblUrl + "Push/SmileyBox/index.html";
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		xmlHttp.open("GET", szUrl);
		xmlHttp.onreadystatechange = function() {
						if (xmlHttp.readyState==4)
							{		
							sResult=xmlHttp.responseText;
							HideLoading();
							$('ShoutTableSmileys').innerHTML = sResult;
							Show('SmileysBox');
							}
										};
		xmlHttp.send(null);
		}
	}
function reloadSmlCaptcha()
	{
	img = document.getElementById('shtbcaptcha17b');
	img.src =GlblUrl+'Modules/Captcha/17b2captcha.php?t=min&amp;'+Math.random();
	}
function Get_NbrCR(txt_)
	{
	var NbrCR = 0;
	var Pos = txt_.indexOf("\r\n");
	while( Pos > -1)
		{
		Pos = txt_.indexOf("\r\n", Pos+2);
		NbrCR ++;
		}
	return( NbrCR);
	}
function AddSmiley(Smly)
	{
	var where_="shtb_msg";
	//-- Recup l'Objet
	var Obj = document.getElementById( where_);
	if( Obj)
		{
		//-- Focus sur Objet
		Obj.focus();
		if( typeof Obj.selectionStart != "undefined")
			{
			//-- Position du curseur
			var PosDeb = Obj.selectionStart;
			var PosFin = Obj.selectionEnd;
			//-- Recup. des Chaines
			var Chaine = Obj.value;
			var szAvant = Chaine.substring( 0 , PosDeb);
			var szApres = Chaine.substring( PosFin, Obj.textLength );
			//-- Recup. texte selectionne
			var szSelect = Chaine.substring( PosDeb, PosFin);
			//-- Insertion du texte
			Obj.value = szAvant + Smly + szApres;
			//-- Replace le curseur
			Obj.setSelectionRange( szAvant.length + Smly.length, szAvant.length + Smly.length );
			//-- Replace le Focus
			Obj.focus();
			}
		else
			{ // IE and consort
			//-- Recup. de la selection
			var szSelect = document.selection.createRange().text;
			//-- Si du Texte est selectionne on le remplace
			if( szSelect.length > 0)
				{
				var Chaine = document.selection.createRange();
				Chaine.text = Smly ;
				Chaine.collapse();
				Chaine.select();
				}
			else
				{
				var Chaine = Obj.value;
				var szMark ="~~";
				//-- Cree un double et insert la Mark ou est le curseur
				var szTmp = document.selection.createRange().duplicate();
				szTmp.text = szMark;
				//-- Recup. la position du curseur
				var PosDeb = Obj.value.search(szMark);
				//-- Recup. des Chaines
				var szAvant = Chaine.substring( 0 , PosDeb);
				var szApres = Chaine.substring( PosDeb, Obj.textLength );
				//-- Insertion du texte
				Obj.value = szAvant + Smly + szSelect + szApres;
				//-- Repositionne le curseur
				PosDeb += Smly.length;
				//-(*)- Supprime les retours Chariot
				PosDeb -= Get_NbrCR( szAvant);
				//-- Recup de la Chaine
				Chaine = Obj.createTextRange();
				//-- Deplace le Debut de la chaine
				Chaine.moveStart('character', PosDeb);
				//-- Deplace le curseur
				Chaine.collapse();
				Chaine.select();
				}
			}
		}
	} 
function Hide(ElementID)
	{
	if(Pdiv = document.getElementById(ElementID).style)
		{
		Pdiv.display="none";
		}
	}
function Show(ElementID)
	{
	if(Pdiv = document.getElementById(ElementID).style)
		{
		Pdiv.display="block";
		}
	}
function serializeArray(obj)	
	{
	switch(typeof(obj))
		{
		case 'string':
			return 's:'+obj.length+':"'+obj+'";';
		case 'number':
			if(obj>=0 && String(obj).indexOf('.') == -1 && obj < 65536) 
				return 'i:'+obj+';';
			return 'd:'+obj+';';
		case 'boolean':
			return 'b:'+( (obj)?'1':'0' )+';';
		case 'object':
			var arraylength=0;
			var ret='';
			for(var i=0;i<obj.length;i++)
				{
				var k=obj[i];
				if(!isNaN(k)) 
					k = Number(k);
				ret += 'i:'+i+';'+serializeArray(k);
				arraylength++;
				}
			return 'a:'+arraylength+':{'+ret+'}';
		default:
			return 'N;';
		}
	}	
	
// Mbr
/////////////////////////////////////////////////////////////////////////////
//  Goto Page
/////////////////////////////////////////////////////////////////////////////
function GotoPage()
	{
	theForm = document.FrmGotoPage;
	theForm.submit();
	}
/////////////////////////////////////////////////////////////////////////////
//  Edit Map
/////////////////////////////////////////////////////////////////////////////
function ValidateEditMap()
	{
	if (!CheckMbr())
		return false;
	return true;
	}	
/////////////////////////////////////////////////////////////////////////////
//  Scripts d'Edition de commentaires
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
//  Appel: Fermeture formulaire d'Edition de commentaire
/////////////////////////////////////////////////////////////////////////////
function Close_Map_Edit_Com(nId,bMod)
	{
	ShowLoading();
	szUrl=GlblUrl+"Push/Cont/Div/Cmt/"+nId+"/index.html";
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		xmlHttp.open("GET", szUrl);
		xmlHttp.onreadystatechange = function() {
						if (xmlHttp.readyState==4)
							{
							$('com_'+nId).innerHTML=xmlHttp.responseText;
							if (bMod)
								$('mod_'+nId).style.display="block";
							HideLoading();
							}
										};
		xmlHttp.send(null);
		}
	}
/////////////////////////////////////////////////////////////////////////////
//  Appel: Formulaire d'Edition de commentaire
/////////////////////////////////////////////////////////////////////////////
function Get_Map_Edit_Com(nId,bMod)
	{
	ShowLoading();
	szUrl=GlblUrl+"Push/Form/Edit/Cmt/"+nId+"/index.html";
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		xmlHttp.open("GET", szUrl);
		xmlHttp.onreadystatechange = function() {
						if (xmlHttp.readyState==4)
							{
							if (bMod)
								$('mod_'+nId).style.display="none";
							$('com_'+nId).innerHTML=xmlHttp.responseText;
							HideLoading();
							}
										};
		xmlHttp.send(null);
		}
	}
/////////////////////////////////////////////////////////////////////////////
//  Add Comment
/////////////////////////////////////////////////////////////////////////////
function ValidateAddCom(theForm,canCom)
	{
	if (!CheckMbr())
		return false;	
	if (!canCom)
		{
		alert(_('two_coms'));
		return false;
		}
	if (theForm.mapcom.value=="" && theForm.youtubeid.value=="")
		{
		alert(_('required'));
	 	theForm.mapcom.focus();
		return false;
		}	
	return true;
	}
/////////////////////////////////////////////////////////////////////////////
//  Edit Comment
/////////////////////////////////////////////////////////////////////////////
function ValidateEdtCom(theForm)
	{
	if (!CheckMbr())
		return false;	
	if (theForm.mapcom.value=="" && theForm.youtubeid.value=="")
		{
		alert(_('required'));
	 	theForm.mapcom.focus();
		return false;
		}	
	return true;
	}	
/////////////////////////////////////////////////////////////////////////////
//  Scripts de rating de coms
/////////////////////////////////////////////////////////////////////////////
function selected_rating(typ,comid)
	{
	if (!typ)
		theForm = $('frm_'+comid);
	else
		theForm = document.FrmAddCom;
	actrate=parseInt(theForm.Apprc.value);
	return actrate;
	}
function current_rating(mapid,rating,status,typ,comid)
	{
	if (status==0)
		{
		actrate=selected_rating(typ,comid);
		if (actrate==-1 && rating==0)
			status=1;
		else if (actrate==1 && rating==1)
			status=1;										
		else
			status=0;
		}
	$("rating_"+typ+"_"+mapid+"_"+rating).src="Images/Icons/rating_"+rating+"_"+status+".png";
	}
function rate_post(mapid,rating,typ,comid)
	{
	actrate=selected_rating(typ,comid);
	if (rating==0)
		{
		if (actrate==-1)
			newrate=0;
		else
			newrate=-1;
		}
	else
		{
		if (actrate==1)
			newrate=0;
		else
			newrate=1;
		}

	if (!typ)
		theForm = $('frm_'+comid);
	else
		theForm = document.FrmAddCom;
	theForm.Apprc.value=newrate;
	oldrating = (rating == 1) ? 0 : 1;
	$("rating_"+typ+"_"+mapid+"_"+oldrating).src="Images/Icons/rating_"+oldrating+"_0.png";
	}
/////////////////////////////////////////////////////////////////////////////
//  Scripts de Downloads
/////////////////////////////////////////////////////////////////////////////	
/////////////////////////////////////////////////////////////////////////////
//  Download File
/////////////////////////////////////////////////////////////////////////////
function GoDown(sTyp,nId,nPrx,sCph,nLastest)
	{
	if (nPrx)
		{
		if (!confirm(_('dwn_proxyusers')))
			return;
		}
	if (sTyp == "Map" && nLastest != 0)
		{
		if (!confirm(_('other_version')))
			return;
		}
	ShowMask();
	ShowLoading();	
	Pause_Timers(nId);
	szUrl=GlblUrl+"Push/PreDown/"+sTyp+"/"+nId+"/"+sCph+"/index.html";
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		xmlHttp.open("GET", szUrl);
		xmlHttp.onreadystatechange = function() {
						if (xmlHttp.readyState==4)
							{		
							sResult=xmlHttp.responseText;
							Restart_Timers();
							HandleDownResponse(sResult);
							}
										};
		xmlHttp.send(null);
		}
	}
var oldChkDown=0;	
/////////////////////////////////////////////////////////////////////////////
//  Traitement retour initialisation Download
/////////////////////////////////////////////////////////////////////////////
function HandleDownResponse(sResult)
	{
	FileDatas = sResult.split('|');
	erNum=parseInt(FileDatas[0]);
	erTxt=FileDatas[1];
	FileName = FileDatas[2];
	if (erNum || erTxt!="")
		{
		alert(erTxt);
		HideMask();
		HideLoading();
		if (oldChkDown != 0)
			$('DwnCph_'+oldChkDown).focus();
		return;
		}
		
	if (oldChkDown != 0)
		{
		$("chkdwn_"+oldChkDown).style.display = "none";
		$("chkdwn_"+oldChkDown).innerHTML = "";	
		}
		
	if (FileName=="")
		FileName="noname";
	szUrl=GlblUrl+"Push/GetFile/"+FileName+".zip";
	document.location=szUrl;
	HideMask();
	HideLoading();
	}
/////////////////////////////////////////////////////////////////////////////
//  Check Bot Download
/////////////////////////////////////////////////////////////////////////////
function ChkDown(sTyp,nId,nPrx,sVod,nLastest)
	{
	if ($("chkdwn_"+nId).style.display == 'block')
		{
		$("chkdwn_"+nId).style.display = "none";
		$("chkdwn_"+nId).innerHTML = "";
		return;
		}
		
	if (oldChkDown != 0)
		{
		$("chkdwn_"+oldChkDown).style.display = "none";
		$("chkdwn_"+oldChkDown).innerHTML = "";	
		}
	
	if ($('inst_'+nId).style.display=="block")
		{
		CloseFtpInstForm(nId);
		}		
		
	if (nPrx)
		{
		if (!confirm(_('dwn_proxyusers')))
			return;
		}		
	ShowLoading();	
	Pause_Timers(nId);
	szUrl=GlblUrl+"Push/ChkDown/"+sTyp+"/"+nId+"/"+nLastest+"/index.html";
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		xmlHttp.open("GET", szUrl);
		xmlHttp.onreadystatechange = function() {
						if (xmlHttp.readyState==4)
							{		
							sResult=xmlHttp.responseText;
							oldChkDown = nId;
							$("chkdwn_"+nId).innerHTML = sResult;
							$("chkdwn_"+nId).style.display = "block";
							Restart_Timers();		
							HideLoading();							
							}
										};
		xmlHttp.send(null);
		}
	}	
/////////////////////////////////////////////////////////////////////////////
//  Valider Captcha
/////////////////////////////////////////////////////////////////////////////
function ValChkDwn(sTyp,nId,nLastest)
	{
	szTmp = trim($('DwnCph_'+nId).value);
	if (szTmp == "")
		{
  		alert(_('required'));
		$('DwnCph_'+nId).focus();
		return;
		}
	sCph = szTmp;
	GoDown(sTyp,nId,0,sCph,nLastest);
	}	
/////////////////////////////////////////////////////////////////////////////
//  Lancer installation FTP
/////////////////////////////////////////////////////////////////////////////
function GoInst()
	{
	if (!CheckMbr())
		return;
	theForm = document.FrmInstZip;
	theForm.btninstsubmit.disabled=true;
	
	if (!ValidateTheForm(theForm))
		{
		theForm.btninstsubmit.disabled=false;
		return;
		}

	if (confirm(_('debinstall')))
		{
		ShowMask();
		ShowLoading();
		szUrl=GlblUrl+"Push/GoInst/index.html";
		nId = theForm.Id.value;
		Pause_Timers(nId);
		var xmlHttp = GetxmlHttp();
	if (xmlHttp)
			{
			var params = "";
			params 	+=	"Typ="+theForm.Typ.value;
			params 	+=	"&Id="+nId;
			params 	+=	"&ftpServ="+theForm.ftpServ.value;
			params 	+=	"&ftpHost="+theForm.ftpHost.value;
			params 	+=	"&ftpPort="+theForm.ftpPort.value;
			params 	+=	"&ftpLogin="+theForm.ftpLogin.value;
			params 	+=	"&ftpPass="+theForm.ftpPass.value;
			params 	+=	"&ftpDir="+theForm.ftpDir.value;
			if (theForm.ftpRpl.checked==true)
				params += "&ftpRpl=1";
			if (theForm.ftpPasv.checked==true)
				params += "&ftpPasv=1";
			if (theForm.ftpBz2.checked==true)
				params += "&ftpBz2=1";
			xmlHttp.open("POST", szUrl,true);
			xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			xmlHttp.onreadystatechange = function() {
							if (xmlHttp.readyState==4)
								{																					
								sResult=xmlHttp.responseText;
								theForm.btninstsubmit.disabled=false;
								HideMask();
								HideLoading();
								Restart_Timers();
								HandleInstResponse(sResult,nId);
								return;
								}
											};

			xmlHttp.send(params);
			}
		}
	theForm.btninstsubmit.disabled=false;
	return;
	}
/////////////////////////////////////////////////////////////////////////////
//  Traitement retour initialisation Download
/////////////////////////////////////////////////////////////////////////////
function HandleInstResponse(sResult,nId)
	{
	FileDatas = sResult.split('|');
	erNum=parseInt(FileDatas[0]);
	if (erNum)
		{
		erTxt=FileDatas[1];
		alert(erTxt);
		}
	else
		{
		alert(_('ftpinst_ok'));
		if ($('inst_'+nId).style.display=="block")
			{
			CloseFtpInstForm(nId);
			return;
			}		
		}
	}	
/////////////////////////////////////////////////////////////////////////////
//  Download Ressource File
/////////////////////////////////////////////////////////////////////////////
function GoRes(nId,nPrx)
	{
	ShowMask();
	ShowLoading();		
	GoDown("Res",nId,nPrx,"x",0);
	}
/////////////////////////////////////////////////////////////////////////////
//  Download individual Files
/////////////////////////////////////////////////////////////////////////////
function ValidateGetFiles(nId)
	{
	theForm = document.FrmGetFiles;																		
	var nSel=theForm.FilesLst.selectedIndex;
	if (nSel == -1)
		{
		alert(_('select_one'));
		return;
		}
	ShowMask();
	ShowLoading();		
	szLstFiles=""; 
	for (var i = 0; i < theForm.FilesLst.length; i++) 
		{
		if (theForm.FilesLst[i].selected)
			{ 
			szLstFiles = szLstFiles+theForm.FilesLst[i].text+";";
			}
		}
	szUrl=GlblUrl+"Push/PreDown/Fls/"+nId+"/x/index.html";
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		var params = "SelFls="+escape(szLstFiles);
		xmlHttp.open("POST", szUrl,true);
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.onreadystatechange = function() {
						if (xmlHttp.readyState==4)
							{																					
							sResult=xmlHttp.responseText;
							HandleDownResponse(sResult);
							return;
							}
										};		
		xmlHttp.send(params);
		}
	}
/////////////////////////////////////////////////////////////////////////////
//  Download Mappak
/////////////////////////////////////////////////////////////////////////////
function ValidateGetMapPak()
	{
	theForm = document.FrmMapPak;																		
	DisableBtnSub(true);
	if (NbrSel <2) 
		{
		alert(_('not_enough_sel'));
		DisableBtnSub(false);
		return;
		}

	if (confirm(_('long_operation')))
		{
		ShowLoading();
		ShowMask();
		var theMaps = document.getElementsByTagName('input');
		nMaps=""; 
		for (var i = 0; i < theMaps.length; i++) 
			{
			if (theMaps[i].name=="Maps[]")
				{
				if (theMaps[i].checked==true)
					{ 
					nMaps = nMaps+theMaps[i].value+";";
					}
				}
			}
		szUrl=GlblUrl+"Push/PreDown/Mpk/1/x/index.html";
		var xmlHttp = GetxmlHttp();
	if (xmlHttp)
			{
			var params = "Maps="+nMaps;
			if (theForm.Do17.checked==true)
				params += "&Do17=1";
			xmlHttp.open("POST", szUrl,true);
			xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			xmlHttp.onreadystatechange = function() {
							if (xmlHttp.readyState==4)
								{																					
								sResult=xmlHttp.responseText;
								DisableBtnSub(false);
								HandleDownResponse(sResult);
								return;
								}
											};

			xmlHttp.send(params);
			}
		}
	DisableBtnSub(false);	
	}
/////////////////////////////////////////////////////////////////////////////
//  Installation Mappak
/////////////////////////////////////////////////////////////////////////////
function ValidateGetInst()
	{
	theForm = document.FrmMapPak;	

	alert(_('not_yet_implemented'));
	return;	
	
	DisableBtnSub(true);
	if (NbrSel <2) 
		{
		alert(_('not_enough_sel'));
		DisableBtnSub(false);
		return;
		}

	if (confirm(_('long_operation')))
		{
		ShowLoading();
		var theMaps = document.getElementsByTagName('input');
		nMaps=""; 
		for (var i = 0; i < theMaps.length; i++) 
			{
			if (theMaps[i].name=="Maps[]")
				{
				if (theMaps[i].checked==true)
					{ 
					nMaps = nMaps+theMaps[i].value+";";
					}
				}
			}
		szUrl=GlblUrl+"Push/Inst/Mpk/index.html";
		var xmlHttp = GetxmlHttp();
	if (xmlHttp)
			{
			var params = "Maps="+nMaps;
			if (theForm.Do17.checked==true)
				params += "&Do17=1";
			xmlHttp.open("POST", szUrl,true);
			xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			xmlHttp.onreadystatechange = function() {
							if (xmlHttp.readyState==4)
								{																					
								sResult=xmlHttp.responseText;
								DisableBtnSub(false);
								HideLoading();
								HandlePkInstResponse(sResult);
								return;
								}
											};

			xmlHttp.send(params);
			}
		}
	DisableBtnSub(false);	
	}
/////////////////////////////////////////////////////////////////////////////
//  Handle Inst Pack Response
/////////////////////////////////////////////////////////////////////////////
function HandlePkInstResponse(sResult)
	{
	alert(sResult);
	}	
/////////////////////////////////////////////////////////////////////////////
//  Validation formulaire recherche
/////////////////////////////////////////////////////////////////////////////
function ValidateLstSearchForm(theForm)
	{
	return ValidateTheForm(theForm);
	}
/////////////////////////////////////////////////////////////////////////////
//  Validation Formulaire de Tri
/////////////////////////////////////////////////////////////////////////////
function ValidateLstSortForm(theForm)
	{
	return true;
	}
/////////////////////////////////////////////////////////////////////////////
//  Ajouter au panier
/////////////////////////////////////////////////////////////////////////////
function AddToUserList(nLst,nId,nLastest)
	{
	if (!CheckMbr())
		return;
	if (nLst==1 && !CheckMaxItemsCart())
		return;
	if (nLst==1 && nLastest != 0)
		{
		if (!confirm(_('other_version')))
			return;
		}
	ShowLoading();
	Pause_Timers(nId);
	szUrl=GlblUrl+"Push/UserList/"+nLst+"/"+nId+"/index.html";
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		xmlHttp.open("GET", szUrl);
		xmlHttp.onreadystatechange = function() {
		if (xmlHttp.readyState==4)
			{
			sResult = parseInt(xmlHttp.responseText);
			HideLoading();
			if (!sResult)
				{
				if (confirm(_('already_in_cart')))
					document.location=GlblUrl+"View/UserList/0/"+nLst+"/1/index.html";
				}
			else
				{
				switch (nLst)
					{
					case 1: //mapBox
						$('CartMbrMaps').innerHTML=sResult;
						break;
					case 2: // Favoris
						$('FavsMbrMaps').innerHTML=sResult;
						break;
					case 3: // Liste
						$('ListMbrMaps').innerHTML=sResult;
						break;
					default:
						break;
					}
				}
			Restart_Timers();
			}
										};
		xmlHttp.send(null);
		}
	}
/////////////////////////////////////////////////////////////////////////////
//  Retirer du panier
/////////////////////////////////////////////////////////////////////////////
function DelFromUserList(nLst,nId)
	{
	if (confirm(_('del_from_cart')))
		{
		ShowLoading();
		szUrl=GlblUrl+"Push/DelUserList/"+nLst+"/"+nId+"/index.html";
		var xmlHttp = GetxmlHttp();
	if (xmlHttp)
			{
			xmlHttp.open("GET", szUrl);
			xmlHttp.onreadystatechange = function() {
							if (xmlHttp.readyState==4)
								{
								sResult = parseInt(xmlHttp.responseText);
								HideLoading();
								DelNode($('usrl_'+nId));	
								DelNode($('sepl_'+nId));
								switch (nLst)
									{
									case 1: //mapBox
										RecountItems();
										$('CartMbrMaps').innerHTML=sResult;
										break;
									case 2: // Favoris
										$('FavsMbrMaps').innerHTML=sResult;
										break;
									case 3: // Liste
										$('ListMbrMaps').innerHTML=sResult;
										break;
									default:
										break;
									}
								}
											};
			xmlHttp.send(null);
			}
		}
	}
/////////////////////////////////////////////////////////////////////////////
//  Vider la MapBox
/////////////////////////////////////////////////////////////////////////////
function EmptyUserList(nLst)
	{
	if (confirm(_('empty_cart')))
		{
		document.location=GlblUrl+"Empty/UserList/"+nLst+"/index.html";
		}
	}				
/////////////////////////////////////////////////////////////////////////////
//  Afficher Textures Wad
/////////////////////////////////////////////////////////////////////////////
var ActTexOpen=0;
function WadTexs(nId)
	{
	if ($('tex_'+nId).style.display=="block")
		{
		CloseTexWindow(nId);
		return;
		}
	if (ActTexOpen)
		CloseTexWindow(ActTexOpen);
	if (confirm(_('long_operation')))
		{
		ShowMask();
		Pause_Timers(nId);
		ActTexOpen=nId;
		szUrl=GlblUrl+"Push/Texs/"+nId+"/index.html";
		var xmlHttp = GetxmlHttp();
	if (xmlHttp)
			{
			ShowLoading();
			xmlHttp.open("GET", szUrl);
			xmlHttp.onreadystatechange = function() {
							if (xmlHttp.readyState==4)
								{
								HideMask();
								HideLoading();
								sResult=xmlHttp.responseText;
								Restart_Timers();
								HandleTexsResponse(sResult,nId)
								return;
								}
											};
			xmlHttp.send(null);
			}
		}
	}
/////////////////////////////////////////////////////////////////////////////	
function CloseTexWindow(nId)
	{
	$('tex_'+nId).style.display="none";
	$('tex_'+nId).innerHTML=null;
	ActTexOpen=0;		
	}
/////////////////////////////////////////////////////////////////////////////
function HandleTexsResponse(sResult,nId)
	{
	FileDatas = sResult.split('|');
	erNum=parseInt(FileDatas[0]);

	if (erNum)
		{
		erTxt=FileDatas[1];
		alert(erTxt);
		}
	else
		{
		Cntnt=FileDatas[2];
		$('tex_'+nId).innerHTML=Cntnt;
		$('tex_'+nId).style.display="block";
		}
	}		
function Wad_OpenTex(szImg,nW,nH)
	{
	ShowMask();
	ShowLoading();
	Pause(250);
	var NewShot = new Image();
	NewShot.onload = function() 
		{
		Wad_MoveTex(nW,nH);
		HideLoading();
		$('ScreenshotImage').src=szImg;
		$('ScreenshotImage').style.width=nW+"px";
		$('ScreenshotImage').style.height=nH+"px";
		$('Screenshot').style.display="block";									
		}
	NewShot.src = szImg;
	}
function Wad_MoveTex(nW,nH)
	{
	var WScreen=GetSHW()[0];
	var HScreen=GetSHW()[1];	
	var VScroll=GetScrollXY()[1];
	var WShot=nW;
	var HShot=nH;
	var LShot=Math.round((WScreen-WShot)/2);
	var TShot=VScroll+Math.round((HScreen-HShot)/2);
	$('Screenshot').style.width=WShot+"px";
	$('Screenshot').style.height=HShot+"px";
	$('Screenshot').style.top=TShot+"px";
	$('Screenshot').style.left=LShot+"px";
	}	
function Wad_CloseTex()
	{
	HideMask();
	$('Screenshot').style.display="none";
	$('ScreenshotImage').src="Images/1x1.gif";
	$('ScreenshotImage').style.width="1px";
	$('ScreenshotImage').style.height="1px";
	}
function CheckShowableDivs(bForce)
	{
	var ScrollBot = GetSHW()[1] + GetScrollXY()[1]+50;
	var theClass = "showable";
	var theForce = "forcable";
	var nPos = -1;
	var bForcable = false;
	var szId = '';
	var divs = document.getElementsByTagName('div');
	for(var i=0; i<divs.length; i++)
		{
		var Classe = divs[i].className.toLowerCase();
		nPos = Classe.indexOf(theClass);
		if (nPos == -1)
			continue;
		nPos = Classe.indexOf(theForce);
		bForcable = (nPos != -1 ? true : false);
		szId = divs[i].id;
		if (MustShow(szId,ScrollBot) || (bForce && bForcable))
			GetContent(szId);
		}
	}
function MustShow(objName,ScrollBot)
	{
	oObj=$(objName);
	So = getPosition(oObj);
	ObjDatas=objName+"_datas";
	Result=false;
	try {
		if ($(ObjDatas).style.display=="none" && ScrollBot >= So)
			Result=true;
		} 
	catch(err) {}
	return Result;
	}
var ShowableDivs=0;	
function GetContent(objName)
	{
	switch(objName)
		{
		case 'srv_div':
			RefreshSmallSrvList(0);
			return;									
		case 'com_div':
			nMapId = parseInt($('dvmapid').innerHTML);
			szUrl=GlblUrl+"Push/MapCom/"+nMapId+"/index.html";
			break;
		case 'soc_div':
			nMapId = parseInt($('dvmapid').innerHTML);		
			szUrl=GlblUrl+"Push/MapSoc/"+nMapId+"/index.html";
			break;
		case 'sug_div':
			nMapId = parseInt($('dvmapid').innerHTML);		
			szUrl=GlblUrl+"Push/MapSug/"+nMapId+"/index.html";
			break;									
		case 'tag_div':
			nMapId = parseInt($('dvmapid').innerHTML);
			szUrl=GlblUrl+"Push/MapTag/"+nMapId+"/index.html";
			break;									
		default:
			return;
		}
	ShowableDivs++;
	ShowLoading();
	$(objName+"_datas").style.display="block";
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		xmlHttp.open("GET", szUrl);
		xmlHttp.onreadystatechange = function() {
						try {
							if (xmlHttp.readyState==4)
								{
								ShowableDivs--;
								if (ShowableDivs<=0)
									HideLoading();
								$(objName+"_datas").innerHTML=xmlHttp.responseText;
								}
							}
						catch (err)
							{
							$(objName+"_datas").innerHTML='Datas Error';
							}
										};
		xmlHttp.send(null);
		}								
	}	
/////////////////////////////////////////////////////////////////////////////
//  Rafraichir Liste Mini Serveurs
/////////////////////////////////////////////////////////////////////////////
function RefreshSmallSrvList(bCheck)
	{
	if (bCheck)
		{
		if (!CheckMbr())
			return;
		}
	$('srv_div_datas').style.display="block";
	szUrl=GlblUrl+"Push/Sml/Srv/"+bCheck+"/index.html";
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		xmlHttp.open("GET", szUrl);
		xmlHttp.onreadystatechange = function() {
						if (xmlHttp.readyState==4)
							{
							sResult = xmlHttp.responseText;
							erNum=parseInt(sResult.substr(0,1));
							erTxt=sResult.substr(2);
							if (erNum)
								{
								alert(erTxt);
								return;
								}
							$('srv_div_datas').innerHTML=erTxt;
							}
										};
		xmlHttp.send(null);
		}
	}
/////////////////////////////////////////////////////////////////////////////
//  Configuration Serveur
/////////////////////////////////////////////////////////////////////////////
function CloseEdtSrvForm()
	{
	$('FrmEdtSrv').style.display='none';
	$('FrmEdtSrv').innerHTML=null;
	return;					
	}
////////////////////////////////////	
function PushSrvConfFrm(nSvId)
	{
	if (!CheckMbr())
		return;
	if ($('FrmEdtSrv').style.display=='block')
		{
		$('FrmEdtSrv').style.display='none';
		$('FrmEdtSrv').innerHTML=null;
		return;			
		}

	if (oRfhAuto)
		{
		window.clearTimeout(oRfhAuto);	
		oRfhAuto=null;		
		}

	ShowLoading();		
	szUrl="Push/Frm/Srv/"+nSvId+"/index.html";
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		xmlHttp.open("GET", szUrl);
		xmlHttp.onreadystatechange = function() {
						if (xmlHttp.readyState==4)
							{
							HideLoading();								
							sResult = xmlHttp.responseText;
							if (sResult=="")
								return;
							$('FrmEdtSrv').innerHTML=sResult;
							$('FrmEdtSrv').style.display='block';
							return;
							}
										};
		xmlHttp.send(null);
		}
	}

/////////////////////////////////////////////////////////////////////////////
//  Ajouter Favori
/////////////////////////////////////////////////////////////////////////////
function PushAddFavFrm()
	{
	if (!CheckMbr())
		return;	
	if ($('FrmEdtSrv').style.display=='block')
		{
		$('FrmEdtSrv').style.display='none';
		$('FrmEdtSrv').innerHTML=null;
		return;			
		}
	ShowLoading();		
	szUrl="Push/Frm/AddFav/index.html";
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		xmlHttp.open("GET", szUrl);
		xmlHttp.onreadystatechange = function() {
						if (xmlHttp.readyState==4)
							{
							HideLoading();								
							sResult = xmlHttp.responseText;
							if (sResult=="")
								return;
							$('FrmEdtSrv').innerHTML=sResult;
							$('FrmEdtSrv').style.display='block';
							}
										};
		xmlHttp.send(null);
		}
	}
/////////////////////////////////////////////////////////////////////////////
//  Supprimer Serveur
/////////////////////////////////////////////////////////////////////////////
function DelSrv(nSvId)
	{
	if (!confirm(_('delete_server')))
		return;
	szUrl=GlblUrl+"Del/Srv/"+nSvId+"/index.html";
	document.location=szUrl;	
	}
/////////////////////////////////////////////////////////////////////////////
//  Validation Notation
/////////////////////////////////////////////////////////////////////////////
function ValNote(theForm)
	{
	vote1=parseInt(getCheckedValue(theForm.vote1));
	vote2=parseInt(getCheckedValue(theForm.vote2));
	vote3=parseInt(getCheckedValue(theForm.vote3));
	if (!vote1 && !vote2 && !vote3)
		{
		alert(_('no_all_zero'));
		return false;
		}
	return true;
	}	
/////////////////////////////////////////////////////////////////////////////
//  Afficher ecran soumission screenshot
/////////////////////////////////////////////////////////////////////////////
function Toggle_Sub_Screen_Frm(nMapId)
	{
	if (!CheckMbr())
		return;
	$ActDisp = $('scrsht_'+nMapId).style.display;
	$('scrsht_'+nMapId).style.display = $ActDisp=="block" ? "none" : "block";
	}		
	
// SlideShw
function idn(di,ue,uO,uH,us,uc,uU,uP){if(ue)bO=ue;else bO=document.body;var C=document.createElement(di);if(uO)C.className=uO;if(uH)C.id=uH;if(us)C.style.width=us+"px";if(uc)C.style.height=uc+"px";if(uP)C.style.top=uP+"px";if(uU)C.style.left=uU+"px";var dC=bO.appendChild(C);return dC;};function Bud_Slide(dU,u,bb,dp,da){this.U=da;this.dH=dU;this.S=$(this.dH);this.D=parseInt(this.S.style.zIndex);this.o=this.S.clientWidth;this.p=this.S.clientHeight;this.u=eval(u);this.uh=this.u.length;ub=Get_Cookie('Slide17b');if(ub){up=ub.split('|');this.B=parseInt(up[0]);this.A=parseInt(up[1]);}else{this.B=0;this.A=1;}this.d=this.B;this.bo=1;this.bd="BudRndMap1";this.h="BudRndMap2";this.bb=bb;this.bC=30;this.bA=4;this.db=3;this.bs=4;this.be=dp;this.bu=0;this.dh=function(){var bp=this.p-(this.bC+this.db+this.bs*2);var dS=parseInt((this.o/2)-8);var dE=parseInt(bp/2)-8;var dI=idn("div",this.S,"RndImg RndBck","",this.o,this.p,0,0);dI.style.zIndex=this.D+1;var uC=idn("div",this.S,"RndImg","",this.o,this.p,0,0);uC.id=this.bd;uC.style.zIndex=this.D+5;var uo=idn("div",this.S,"RndImg","",this.o,this.p,0,0);uo.id=this.h;uo.style.zIndex=this.D+2;this.bU=idn("div",this.S,"RndLoad","",16,16,dS,dE);this.bU.innerHTML='<img src="'+this.U+'Images/loading.gif" alt="'+_('chargement')+'" width="16" height="16" />';this.bU.style.zIndex=this.D+10;};this.ib=function(){bp=this.p-(this.bC+this.db+this.bs*2);uA=this.o-(this.bA*2)-(this.bs*2)-1;dc=uA-16-(this.bs*2);this.I=idn("div",this.S,"RndDesc","",uA,this.bC,this.bA,bp);this.I.style.zIndex=this.D+6;this.I.style.filter="alpha( opacity = 80 )";this.I.style.opacity=0.8;this.I.style.MozOpacity=0.8;this.I.style.KhtmlOpacity=0.8;this.dA=idn("div",this.I,"RndIco","",16,16);this.bi=idn("div",this.I,"RndName","");this.bi.style.styleFloat="left";this.bi.style.cssFloat="left";this.bi.style.width=dc+"px";this.bi.style.height="18px";this.bi.style.zIndex=this.D+7;this.dP=idn("div",this.I,"RndMod","");};this.ie=function(){P=idn("div",this.I,"RndCmd","");P.style.styleFloat="right";P.style.cssFloat="right";P.style.width="48px";P.style.zIndex=this.D+7;this.bh=idn("div",P,"RndCmdPrv","",16,16);this.bh.style.styleFloat="left";this.bh.style.cssFloat="left";this.bh.innerHTML='<a href="javascript:'+this.be+'.iS();" title="'+_('precedent')+'"><img src="'+this.U+'Images/Slide/SlidePrv.png" width="16" height="16" alt="'+_('precedent')+'" /></a>';this.bB=idn("div",P,"RndCmdAct","",16,16);this.bB.style.styleFloat="left";this.bB.style.cssFloat="left";this.ud();this.bS=idn("div",P,"RndCmdNxt","",16,16);this.bS.style.styleFloat="left";this.bS.style.cssFloat="left";this.bS.innerHTML='<a href="javascript:'+this.be+'.iU();" title="'+_('suivant')+'"><img src="'+this.U+'Images/Slide/SlideNxt.png" width="16" height="16" alt="'+_('suivant')+'" /></a>';};this.ui=function(ba){if(ba)this.bU.style.display="block";else this.bU.style.display="none";};this.is=function(ba){if(ba)$(this.h).style.display="block";else $(this.h).style.display="none";};this.ii=function(s){this.dA.innerHTML='<img src="'+this.U+this.u[s][2]+'" width="16" height="16" alt="'+this.u[s][3]+'" title="'+this.u[s][3]+'" />';this.bi.innerHTML='<a href="'+this.U+'View/Map/'+this.u[s][4]+'/'+this.u[s][1]+'.html" title="'+_('telecharger')+' '+this.u[s][1]+'">'+this.u[s][1]+'</a>';iu=sprintf(_('show_all_maps'),this.u[s][3]);this.dP.innerHTML='<a href="'+this.U+'View/Maps/Gam/'+this.u[s][6]+'/Mod/'+this.u[s][5]+'/Cat/0/All/0/Pag/1/'+this.u[s][3]+'.html" title="'+iu+'">'+this.u[s][3]+'</a>';};this.dD=function(){$(this.bd).innerHTML='<a href="'+this.U+'View/Map/'+this.u[this.B][4]+'/'+this.u[this.B][1]+'.html" title="'+_('telecharger')+' '+this.u[this.B][1]+'"><img src="'+this.u[this.B][0]+'" alt="'+_('telecharger')+' '+this.u[this.B][1]+'" width="'+this.o+'" height="'+this.p+'" /></a>';};this.bI=function(){this.d=this.B+this.bo;if(this.d<0)this.d=this.uh-1;else if(this.d>=this.uh)this.d=0;$(this.bd).style.zIndex=this.D+5;$(this.h).style.zIndex=this.D+2;$(this.h).innerHTML='<a href="'+this.U+'View/Map/'+this.u[this.d][4]+'/'+this.u[this.d][1]+'.html" title="'+_('telecharger')+' '+this.u[this.d][1]+'"><img src="'+this.u[this.d][0]+'" alt="'+_('telecharger')+' '+this.u[this.d][1]+'" width="'+this.o+'" height="'+this.p+'" /></a>';};this.iS=function(){this.bo=-1;this.bI();this.bD(1);};this.iU=function(){this.bo=1;this.bI();this.bD(1);};this.iB=function(){this.A=(this.A?0:1);this.ud();this.dd();if(this.A){this.bD(1);}else{if(this.bu)clearInterval(this.bu);this.bu=0;}};this.ud=function(){if(this.A)this.bB.innerHTML='<a href="javascript:'+this.be+'.iB();" title="'+_('pause')+'"><img src="'+this.U+'Images/Slide/SlideStp.png" width="16" height="16" alt="'+_('pause')+'" /></a>';else this.bB.innerHTML='<a href="javascript:'+this.be+'.iB();" title="'+_('play')+'"><img src="'+this.U+'Images/Slide/SlideRun.png" width="16" height="16" alt="'+_('play')+'" /></a>';};this.bD=function(de){if(this.bu)clearInterval(this.bu);if(de)this.dB();uB=this;this.bu=setInterval("uB.dB()",this.bb);};this.iI=function(){ds=this.bd;this.bd=this.h;this.h=ds;};this.iE=function(){this.B=this.d;this.bI();};this.dd=function(){Set_Cookie('Slide17b',this.B+"|"+this.A);};this.dB=function(){bP=30;uD=0.05;uu=30;uI=0.05;uE=parseInt(bP/uD);uS=parseInt(uu/uI);O=((uE>uS)?uE:uS);this.ui(true);this.is(true);this.ua(1,0,this.bd,bP,uD);this.ua(0,1,this.h,uu,uI);uB=this;du=this.d;setTimeout('uB.iI()',O);setTimeout('uB.ii('+du+')',O);setTimeout('uB.ui(false)',O);setTimeout('uB.is(false)',O+10);setTimeout('uB.iE()',O+200);setTimeout('uB.dd()',O+400);};this.ua=function(c,H,bH,bb,bE){var bc;a=$(bH);a.style.filter="alpha( opacity = "+c*100+" )";a.style.opacity=c;a.style.MozOpacity=c;a.style.KhtmlOpacity=c;if(c<H)bc=c+bE;else bc=c-bE;if(Math.abs(c-H)>=bE){uB=this;setTimeout("uB.ua("+bc+", "+H+", '"+bH+"',"+bb+","+bE+");",bb);}else{a.style.filter="alpha( opacity = "+H*100+" )";a.style.opacity=H;a.style.MozOpacity=H;a.style.KhtmlOpacity=H;}};this.dh();this.ui(false);this.ib();this.ie();this.dD();this.ii(this.B);this.bI();if(this.A)this.bD(0);};

// Upl
/////////////////////////////////////////////////////////////////////////////
//  Augmenter taille image
/////////////////////////////////////////////////////////////////////////////
function Upl_MaxImg(theImg)
	{
	if ($('DivMaxScr').style.display=="block")
		{
		$('DivMaxScr').style.display="none";
		return;
		}
	$('ImgMaxScr').src=theImg.src;
	$('DivMaxScr').style.display="block";
	}
/////////////////////////////////////////////////////////////////////////////
//  Changer le type d'envoi
/////////////////////////////////////////////////////////////////////////////
function Upld_ToggleFromUrl()	
	{
	theForm = document.FrmUpload;
	if (theForm.FromUrl.checked==true)
		{
		theForm.UpldLocFile.value="";
		theForm.UpldLocFile.disabled=true;
		theForm.UpldUrlFile.disabled=false;
		}
	else	
		{
		theForm.UpldUrlFile.value="";
		theForm.UpldUrlFile.disabled=true;
		theForm.UpldLocFile.disabled=false;
		}		
	return;
	}
/////////////////////////////////////////////////////////////////////////////
//  Controler type de fichier
/////////////////////////////////////////////////////////////////////////////
function Upl_ChkFileType(theField)
	{
	theForm = document.FrmUpload;
	theForm.BtnCheck.disabled=true;
	theForm.BtnSubmit.disabled=true;			
	$('FirstCheck').style.display="none";	
	theForm.FileTyp.value=0;	
	if (theField.value=="")
		return;
	szFile = trim(theField.value.toLowerCase());
	arParts = szFile.split(".");
	NumParts =  arParts.length;
	UplTyp=0;
	if (NumParts >=2)
		{
		Comp = arParts[NumParts-2];
		if (Comp == "wad")
			{
			Comp = arParts[NumParts-1];
			if (Comp == "zip" || Comp == "rar")
				UplTyp=3;			
			}
		else	
			{
			Comp = arParts[NumParts-1];
			if (Comp == "zip" || Comp == "rar")
				UplTyp=1;
			if (Comp == "jpg")
				UplTyp=2;
			}
		}		
	switch (UplTyp)
		{
		case 1: //Archive 
			$('Detect').innerHTML = _('upld_archive_file');
			break;
		case 2: //Screen
			$('Detect').innerHTML = _('upld_screen_file');
			break;
		case 3: //Wad
			$('Detect').innerHTML = _('upld_archive_wad');
			break;
		default: //None recognized
			$('FirstCheck').style.display="none";
			$('Detect').innerHTML = _('incorrect_filetype');
			return true;
		}
	theForm.FileTyp.value=UplTyp;
	theForm.BtnCheck.disabled=false;
	return true;
	}
/////////////////////////////////////////////////////////////////////////////
//  Vérifier si Fichier existant
/////////////////////////////////////////////////////////////////////////////
function Upl_Chk_Existing_File()
	{
	theForm = document.FrmUpload;
	UplTyp = theForm.FileTyp.value;
	if (!UplTyp)
		{
		alert(_('incorrect_filetype'));
		return;
		}
	FromUrl = ((theForm.FromUrl.checked == true) ? 1 : 0)
	sFileName = FromUrl ? trim(theForm.UpldUrlFile.value) : trim(theForm.UpldLocFile.value);
	if (sFileName =='')
		{
		alert(_('must_select_file'));	
		return;		
		}
	theForm.BtnSubmit.disabled=true;		
	theForm.BtnReset.disabled=true;		
	$('SearchWait').style.display="block";
	$('SearchResult').style.display="none";
	$('FirstCheck').style.display="block";

	// Hack #1 for special chars in MapName
	sFileName=encodeURIComponent(sFileName);
	// Hack #2 for % char in UrlRewriting
	sFileName=sFileName.replace(/\%/g,"||17b||");
	szUrl=GlblUrl+"Push/ChkFile/index.html";
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		var params = "";
		params 	+=	"FromUrl="+FromUrl;
		params 	+=	"&FileName="+sFileName;
		xmlHttp.open("POST", szUrl,true);
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.onreadystatechange = function() {
							if (xmlHttp.readyState==4)
								{																							
								sResult=xmlHttp.responseText;
								Upl_Handle_Check_Existing_File(sResult);
								}
							return;
										};
		xmlHttp.send(params);
		}	
	return;
	}
////////////////////////////////////////////////////////////////////////////
//  Handle Check Existing File Response
/////////////////////////////////////////////////////////////////////////////								
function Upl_Handle_Check_Existing_File(sResult)
	{
	theForm = document.FrmUpload;
	theForm.BtnReset.disabled=false;	
	MapsDatas = sResult.split('|');
	CanSend=parseInt(MapsDatas[0]);
	HtmlRes=MapsDatas[1];
	theForm.BtnSubmit.disabled= (CanSend == 1) ? false : true;
	$('SearchResult').innerHTML=HtmlRes;
	$('SearchWait').style.display="none";
	$('SearchResult').style.display="block";
	return;
	}	
/////////////////////////////////////////////////////////////////////////////
//  Reset du Formulaire
/////////////////////////////////////////////////////////////////////////////
function Upl_Reset_Form()
	{
	$('FirstCheck').style.display="none";
	$('SearchWait').style.display="block";
	$('SearchResult').style.display="none";	
	$('MainDiv').style.display="block";
	$('UploadDiv').style.display="none";
	$('TestsDiv').style.display="none";
	theForm = document.FrmUpload;
	theForm.UpldLocFile.value="";	
	theForm.UpldUrlFile.value="";	
	theForm.BtnCheck.disabled=true;
	theForm.BtnSubmit.disabled=true;		
	theForm.BtnReset.disabled=true;
	if (typeof(theForm.FileGam)!='undefined')
		{
		theForm.FileGam.value=0;			
		theForm.FileMod.value=0;			
		theForm.FileCat.value=0;
		}
	$('Detect').innerHTML = _('none_selected');
	return;
	}
/////////////////////////////////////////////////////////////////////////////
//  Changement de Jeu pour un Wad
/////////////////////////////////////////////////////////////////////////////
function Upl_ChangeWadGame(theWadList)
	{
	theForm = document.FrmUpload;

	WadGam = parseInt(theWadList.options[theWadList.selectedIndex].value);
	theForm.BtnSubmit.disabled = WadGam ? false : true;
	theForm.FileMId.value = 0;
	theForm.FileGam.value = WadGam;
	theForm.FileMod.value = 0;
	theForm.FileCat.value = 0;
	}	
/////////////////////////////////////////////////////////////////////////////
//  Uploads Temporairement désactivés
/////////////////////////////////////////////////////////////////////////////
function Upl_NoUpld()
	{
	alert(_('no_uploads'));
	return false;
	}
/////////////////////////////////////////////////////////////////////////////
//  Validation avant envoi formulaire Upload
/////////////////////////////////////////////////////////////////////////////
var nUplStrt 	= 0;
var nSttcBar	= -1;
function Upl_CheckSendFile()
	{
	if (!CheckMbr())
		return false;										
	theForm = document.FrmUpload;
	if (!parseInt(theForm.FileTyp.value))
		{
		alert(_('incorrect_filetype'));
		return false;
		}

	if (theForm.UpldLocFile.value=="" && theForm.UpldUrlFile.value=="")
		{
		alert(_('must_select_file'));
		return false;
		}
	Upl_Change_PageIcon("Ico-Loading.gif",_('upload_in_progress'));
	$('UploadDiv').style.display="block";	
	$('MainDiv').style.display="none";
	nUplStrt = 1;
	FromUrl = ((theForm.FromUrl.checked == true) ? 1 : 0)
	if (FromUrl)
		Upl_Update_ProgBar();
	else
		setTimeout("Upl_Update_ProgBar();",10);
	return true;
	}
/////////////////////////////////////////////////////////////////////////////
//  Update infos Progress Bar
/////////////////////////////////////////////////////////////////////////////
function Upl_Update_ProgBar()
	{	
	// Si la ProgressBar est statique on ne fait rien
	if (nSttcBar==1)
		return;
	// Récupérer les infos d'upload
	theForm = document.FrmUpload;
	FromUrl = ((theForm.FromUrl.checked == true) ? 1 : 0)
	UnikId = theForm.UPLOAD_IDENTIFIER.value;
	szUrl="Push/ProgBar/index.html";
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		var params = "";
		params 	+=	"FromUrl="+FromUrl;
		params 	+=	"&UnikId="+UnikId;
		xmlHttp.open("POST", szUrl,true);
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.onreadystatechange = function() {
							if (xmlHttp.readyState==4)
								{																							
								sResult=xmlHttp.responseText;
								Upl_Handle_InfosProgress_Bar(sResult);
								return;
								}
										};
		xmlHttp.send(params);
		}
	return;
	}
/////////////////////////////////////////////////////////////////////////////
//  Traiter infos Progress Bar
/////////////////////////////////////////////////////////////////////////////
function Upl_Handle_InfosProgress_Bar(sResult)
	{
	UplDatas 	= sResult.split('|');
	StcBar	=parseInt(UplDatas[0]);
	UplDone	=parseInt(UplDatas[1]);
	UplBytes	=parseInt(UplDatas[2]);
	UplTotal	=parseInt(UplDatas[3]);	
	TimeLeft	=parseInt(UplDatas[4]);		
	// Au premier passage, déterminer si la barre doit être statique ou pas
	if (nUplStrt && nSttcBar == -1)
		{
		nSttcBar = StcBar;
		$('StaticLoadingBar').style.display = (nSttcBar == 1 ? "block" : "none");
		$('ProgressBarMain').style.display = (nSttcBar == 0 ? "block" : "none");	
		$('TmpLoadingBar').style.display = "none";
		if (!nSttcBar)
			Upl_Init_Progress_Bar();
		}
		
	if (nUplStrt && UplTotal)
		{
		if (!UplDone)
			{
			if (!nSttcBar && UplBytes && UplTotal)
				Upl_Show_Progress_Bar(UplBytes, UplTotal);
			Upl_Update_ProgBar();
			}
		}
	}
/////////////////////////////////////////////////////////////////////////////
//  Initialiser Progress Bar
/////////////////////////////////////////////////////////////////////////////
function Upl_Init_Progress_Bar()
	{
	MainWidth = parseInt($('ProgressBarMain').style.width);	
	MainHeight = parseInt($('ProgressBarMain').style.height);
	$('ProgressBarTxt1').style.width = MainWidth+"px";
	$('ProgressBarTxt1').style.height = MainHeight+"px";
	$('ProgressBarTxt2').style.width = MainWidth+"px";		
	$('ProgressBarTxt2').style.height = MainHeight+"px";
	}
/////////////////////////////////////////////////////////////////////////////
//  Mettre à Jour Progress Bar
/////////////////////////////////////////////////////////////////////////////	
function Upl_Show_Progress_Bar(val,valMax)
	{
	var max = valMax ? valMax : 100;
	var width = Math.round((val/max)*100);
	$('ProgressBarFond').style.width=width+"%";
	$('ProgressBarTxt1').innerHTML = width+"%";
	$('ProgressBarTxt2').innerHTML = width+"%";		
	}
/////////////////////////////////////////////////////////////////////////////
//  Upload Effectué
/////////////////////////////////////////////////////////////////////////////
function Upl_Done(sResult)
	{
	UplResult	= sResult.split('|');
	ErrorNum 	= parseInt(UplResult[0]);
	FUnikId	= UplResult[1];
	ErrorStr 	= UplResult[2];
	if (nSttcBar)
		{	
		$('StaticLoadingBar').style.display = "none";
		Upl_Init_Progress_Bar();
		$('ProgressBarMain').style.display = "block";
		}
	if (!ErrorNum || !nSttcBar)
		{
		Upl_Show_Progress_Bar(100, 100);
		}

	$('UplNotice').innerHTML = ErrorStr;
	nUplStrt=0;
	nnSttcBar=-1;
	Upl_Restore_PageIcon();
	if (!ErrorNum)
		setTimeout("Upl_Start_Tests('"+FUnikId+"');",1000);
	else
		$('BtnReturn').style.display="block";
	return;
     }	
/////////////////////////////////////////////////////////////////////////////
//  Change Page Icon
/////////////////////////////////////////////////////////////////////////////
function Upl_Change_PageIcon(iconName,sTitle)
	{
	var oHead = document.getElementsByTagName("head")[0];
	document.title = sTitle;
	var sUA=browser();
	if (sUA != "FF")
		return;
	var NewLink 	= document.createElement("link");
	NewLink.type 	= "image/gif";
	NewLink.rel 	= "icon";
	NewLink.href 	= "Images/Favicons/"+iconName;
	var HeadLinks 	= oHead.getElementsByTagName("link");
	for (var i=0; i < HeadLinks.length; i++) 
		{
		var OldLink = HeadLinks[i];
		if (OldLink.type=="image/gif" && OldLink.rel=="icon") 
			{
			oHead.removeChild(OldLink);
			break;
			}
		}
	oHead.appendChild(NewLink);
	}
/////////////////////////////////////////////////////////////////////////////
//  Restore Page Icon
/////////////////////////////////////////////////////////////////////////////
function Upl_Restore_PageIcon()
	{
	Upl_Change_PageIcon("Ico-17b.gif","17's Buddies");
	}
////////////////////////////////////////////////////////////////////////////
//  Change Submit Btn Change on Selected Map
/////////////////////////////////////////////////////////////////////////////								
function Upl_ChangeBtnState(theMap)
	{
	theForm = document.FrmUpload;
	theForm.BtnSubmit.disabled=false;
	MapId=theMap.value;	
	theForm.FileMId.value = MapId;
	theForm.FileGam.value = parseInt($('Gam_'+MapId).innerHTML);
	theForm.FileMod.value = parseInt($('Mod_'+MapId).innerHTML);
	theForm.FileCat.value = parseInt($('Cat_'+MapId).innerHTML);
	}
////////////////////////////////////////////////////////////////////////////
//  Test de Validation du fichier
/////////////////////////////////////////////////////////////////////////////								
function Upl_Start_Tests(FUnikId)
	{
	ShowMask();
	ShowLoading();
	$('UplNotice').innerHTML = _('val_in_progress');
	szUrl=GlblUrl+"Push/ValUpl/"+FUnikId+".html";
	var xmlHttp = GetxmlHttp();
	if (xmlHttp)
		{
		xmlHttp.open("GET", szUrl);
		xmlHttp.onreadystatechange = function() {
						if (xmlHttp.readyState==4)
							{
							HideLoading();
							HideMask();
							sResult=xmlHttp.responseText;
							Upl_Handle_ValidateFile(sResult);
							}
										};
		xmlHttp.send(null);
		}	
	}
/////////////////////////////////////////////////////////////////////////////
//  Traiter infos Progress Bar
/////////////////////////////////////////////////////////////////////////////
function Upl_Handle_ValidateFile(sResult)
	{
	ValDatas 	= sResult.split('|');
	ValError	= parseInt(ValDatas[0]);
	ValDbl	= parseInt(ValDatas[1]);	
	ValErrTxt	= ValDatas[2];

	if (ValError)
		{
		$('val_no_error').style.display = "none";
		$('val_no_error_dbl').style.display="none";					
		$('val_error').style.display = "block";
		$('upld_error_txt').innerHTML = ValErrTxt;
		}
	else
		{
		$('val_error').style.display="none";
		if (ValDbl)
			{
			$('val_no_error_dbl').style.display="block";			
			$('val_no_error').style.display="none";
			}
		else
			{
			$('val_no_error_dbl').style.display="none";			
			$('val_no_error').style.display="block";
			}
		MapId	= parseInt(ValDatas[3]);
		MapName	= ValDatas[4];
		if (MapId != 0 && MapName !="")
			{
			MapUrlName = encodeURIComponent(MapName);
			$('BtnGoToMapBtn').value = MapName;
			$('BtnGoToMapBtn').onclick = function (oEvent)
							{
							document.location = GlblUrl + "View/Map/"+MapId+"/"+MapUrlName+".html";
							}
			$('BtnGoToMapDiv').style.display="block";
			}		
		}
	$('UploadDiv').style.display="none";	
	$('TestsDiv').style.display="block";
	}
/////////////////////////////////////////////////////////////////////////////
//  Envoyer screenshot
/////////////////////////////////////////////////////////////////////////////
function Upl_Scr_GoScr(theForm)
	{
	if (!CheckMbr())
		return false;
	theForm.BtnSubmit.disabled=true;
	ShowMask();
	ShowLoading();	
	return true;
	}
/////////////////////////////////////////////////////////////////////////////
//  Controler type de screenshot
/////////////////////////////////////////////////////////////////////////////
function Upl_Chk_Screenshot()
	{
	theForm = document.FrmUploadScr;
	theForm.BtnSubmit.disabled=true;			
	theField = theForm.UpldLocFile;
	if (theField.value=="")
		{
		alert(_('must_select_file'));
		return false;
		}
	szFile = trim(theField.value.toLowerCase());
	arParts = szFile.split(".");
	NumParts =  arParts.length;
	if (NumParts ==2)
		{
		if (arParts[NumParts-1] == "jpg" || arParts[NumParts-1] == "jpeg" || arParts[NumParts-1] == "bmp" || arParts[NumParts-1] == "png")
			{
			theForm.BtnSubmit.disabled=false;
			return true;
			}
		}		
	alert(_('incorrect_filetype'));
	return false;
	}
/////////////////////////////////////////////////////////////////////////////	
//Parser JSON sans eval
/////////////////////////////////////////////////////////////////////////////
var jsonParse = (
	function () 
		{
		var number = '(?:-?\\b(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\b)';
		var oneChar = '(?:[^\\0-\\x08\\x0a-\\x1f\"\\\\]|\\\\(?:[\"/\\\\bfnrt]|u[0-9A-Fa-f]{4}))';
		var string = '(?:\"' + oneChar + '*\")';
		var jsonToken = new RegExp('(?:false|true|null|[\\{\\}\\[\\]]'+ '|' + number + '|' + string + ')', 'g');
		var escapeSequence = new RegExp('\\\\(?:([^u])|u(.{4}))', 'g');
		var escapes = {
					'"': '"',
					'/': '/',
					'\\': '\\',
					'b': '\b',
					'f': '\f',
					'n': '\n',
					'r': '\r',
					't': '\t'
						};
		function unescapeOne(_, ch, hex) 
			{
			return ch ? escapes[ch] : String.fromCharCode(parseInt(hex, 16));
			}
		var EMPTY_STRING = new String('');
		var SLASH = '\\';
		var firstTokenCtors = { '{': Object, '[': Array };
		return function (json) 
			{
			var toks = json.match(jsonToken);
			var result;
			var tok = toks[0];
			if ('{' === tok) 
				result = {};
			else if ('[' === tok) 
				result = [];
			else 
				throw new Error(tok);
			var key;
			var stack = [result];
			for (var i = 1, n = toks.length; i < n; ++i) 
				{
				tok = toks[i];
				var cont;
				switch (tok.charCodeAt(0)) 
					{
					default:
						cont = stack[0];
						cont[key || cont.length] = +(tok);
						key = void 0;
						break;
					case 0x22:
						tok = tok.substring(1, tok.length - 1);
						if (tok.indexOf(SLASH) !== -1) 
							tok = tok.replace(escapeSequence, unescapeOne);
						cont = stack[0];
						if (!key) 
							{
							if (cont instanceof Array) 
								{
								key = cont.length;
								} 
							else 
								{
								key = tok || EMPTY_STRING;  // Use as key for next value seen.
								break;
								}
							}
						cont[key] = tok;
						key = void 0;
						break;
					case 0x5b:
						cont = stack[0];
						stack.unshift(cont[key || cont.length] = []);
						key = void 0;
						break;
					case 0x5d:  
						stack.shift();
						break;
					case 0x66:  
						cont = stack[0];
						cont[key || cont.length] = false;
						key = void 0;
						break;
					case 0x6e: 
						cont = stack[0];
						cont[key || cont.length] = null;
						key = void 0;
						break;
					case 0x74:
						cont = stack[0];
						cont[key || cont.length] = true;
						key = void 0;
						break;
					case 0x7b:  
						cont = stack[0];
						stack.unshift(cont[key || cont.length] = {});
						key = void 0;
						break;
					case 0x7d:  
						stack.shift();
						break;
					}
				}
			if (stack.length) 
				{ 
				throw new Error(); 
				}
			return result;
			};
		})();	
