////////////////////////////////////////////////////////////////////////////
//  Timer en cours pour update Steam
////////////////////////////////////////////////////////////////////////////
var Stm_TmIsOn=0;
var Stm_TmFuncCall=null;
//Google Translation already added
var ScrGglAdded=false;
/////////////////////////////////////////////////////////////////////////////
//  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;
	}
/////////////////////////////////////////////////////////////////////////////
//  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';
	window.onscroll = MoveLoading;
	}
/////////////////////////////////////////////////////////////////////////////
//  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();
	InitThumbUrl();
	Stm_TmFuncCall=setTimeout("SteamCommunity_Update(0)",StmScnTm);
	Stm_TmIsOn=1;
	}
/////////////////////////////////////////////////////////////////////////////
//  Mettre en pause les timers
/////////////////////////////////////////////////////////////////////////////
function Pause_Timers(nId)
	{
	// On met en pause l'update steam
	if (Stm_TmIsOn && Stm_TmFuncCall)
		clearTimeout(Stm_TmFuncCall);	
	Stm_TmIsOn=0;	
	if (WptS3bTm)
		{
		clearTimeout(Stm_TmFuncCall);	
		$('getwp_'+nId).innerHTML='';		
		}
	}
/////////////////////////////////////////////////////////////////////////////
//  Redemarrer les timers
/////////////////////////////////////////////////////////////////////////////
function Restart_Timers()
	{
	// On redémarre l'update steam
	Stm_TmFuncCall=setTimeout("SteamCommunity_Update(1)",StmUpdTm);
	Stm_TmIsOn=1;	
	///////////////////////////////		
	}	
/////////////////////////////////////////////////////////////////////////////
//  Vérification adresse Mail
/////////////////////////////////////////////////////////////////////////////
function CheckMail(szEMail)
	{
	var reg = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/
	return (reg.test(szEMail));
	}
/////////////////////////////////////////////////////////////////////////////
//  Afficher News complète sur homepage
/////////////////////////////////////////////////////////////////////////////
function Gens_News_Display_Inline(nNews)
	{
	NewsDiv = $('News_Cont_'+nNews);
	if (NewsDiv.style.height=='auto')
		{
		NewsDiv.style.height="36px";
		$('News_Img_'+nNews).src = "Images/Icons/cb_down.gif";
		}
	else
		{
		NewsDiv.style.height="auto";
		$('News_Img_'+nNews).src = "Images/Icons/cb_up.gif";		
		}
	return;
	}
/////////////////////////////////////////////////////////////////////////////
//  Vérification Image URL
/////////////////////////////////////////////////////////////////////////////
function fix_linked_image_sizes(max_width)
	{
	var images=document.getElementsByTagName('IMG');
	var _padding=2;
	var _count=0;
	var _img='<img src="Images/Icons/img-resized.png" style="vertical-align:middle" border="0" alt="" width="16" height="16" />';
	for (var i=0;i<images.length;i++)
		{
		if(images[i].className=='linked-image')
			{
			_count++;
			if(images[i].width>max_width)
				{
				var _width=images[i].width;
				var _height=images[i].height;
				var _percent=0;
				images[i].width=max_width-(_padding*2);
				if(images[i].width<_width && _width>0 && images[i].width>0)
					{
					_percent=Math.ceil(parseInt(images[i].width/_width*100));
					}
				images[i].id='--ipb-img-resizer-'+_count;
				images[i]._resized=1;
				images[i]._width=_width;
				var div=document.createElement('div');
				div.innerHTML=_img;
				div.style.width=images[i].width-(_padding*2)+'px';
				div.className='resized-linked-image';
				div.style.paddingTop=_padding+"px";
				div.style.paddingBottom=_padding+"px";
				div.style.paddingLeft=_padding+"px";
				div.style.paddingRight=_padding+"px";
				div._is_div=1;
				div._resize_id=_count;
				div._src=images[i].src;
				images[i].parentNode.insertBefore(div,images[i]);
				}
			}
		}
	}
/////////////////////////////////////////////////////////////////////////////
//  Vérification Image URL
/////////////////////////////////////////////////////////////////////////////
function CheckImgURL(szUrl)
	{
	if (!CheckValidUrl(szUrl))
		return false;
	var reg= /\.(jpe?g|png|gif)$/
	return (reg.test(szUrl));
	}
/////////////////////////////////////////////////////////////////////////////
//  Vérification Image URL
/////////////////////////////////////////////////////////////////////////////
function CheckValidUrl(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(szUrl));
	}
/////////////////////////////////////////////////////////////////////////////
//  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];
	}
/////////////////////////////////////////////////////////////////////////////
//  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";
	}
/////////////////////////////////////////////////////////////////////////////
//  Déplacer le gif "Loading" sur scroll de la fenetre
/////////////////////////////////////////////////////////////////////////////
function MoveLoading()
	{
	if ($('SteamCom').style.display=="block")
		SteamCom_Move();

	var HScreen=GetSHW()[1];
	var WScreen=GetSHW()[0];
	var VScroll=GetScrollXY()[1];
	LoadingPos = VScroll+HScreen/2-11;
	$('Loading').style.top=LoadingPos+"px";
	$('Loading').style.left=WScreen/2-63+"px";
	try
		{
		var WShot=parseInt($('Screenshot').style.width);
		var HShot=parseInt($('Screenshot').style.height);
		var LShot=Math.round((WScreen-WShot)/2);
		var TShot=VScroll+Math.round((HScreen-HShot)/2);
		$('Screenshot').style.top=TShot+"px";
		$('Screenshot').style.left=LShot+"px";
		}
	catch(err)
		{
		}
	}
/////////////////////////////////////////////////////////////////////////////
//  Cacher le gif "Loading"
/////////////////////////////////////////////////////////////////////////////
function HideLoading()
	{
	$('Loading').style.display="none";
	}
/////////////////////////////////////////////////////////////////////////////
//  Afficher le gif "Loading"
/////////////////////////////////////////////////////////////////////////////
function ShowLoading()
	{
	var HScreen=GetSHW()[1];
	var WScreen=GetSHW()[0];
	var VScroll=GetScrollXY()[1];
	LoadingPos = VScroll+HScreen/2-11;
	$('Loading').style.top=LoadingPos+"px";
	$('Loading').style.left=WScreen/2-63+"px";
	$('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()
	{
	theForm = document.FrmFullSearch;	
	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";
	if (xmlHttp = GetxmlHttp())
		{
		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";
	if (xmlHttp = GetxmlHttp())
		{
		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";
		return;
		}
	ShowLoading();
	szUrl=GlblUrl+"Push/Form/Edit/Map/"+nId+"/index.html";
	if (xmlHttp = GetxmlHttp())
		{
		xmlHttp.open("GET", szUrl);
		xmlHttp.onreadystatechange = function() {
						if (xmlHttp.readyState==4)
							{
							$('DivEditMap').innerHTML=xmlHttp.responseText;
							HideLoading();
							$('DivEditMap').style.display="block";
							}
										};
		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";
	if (xmlHttp = GetxmlHttp())
		{
		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";
	$('DivEditMap').innerHTML=null;
	}
/////////////////////////////////////////////////////////////////////////////
//  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;	
	}
/////////////////////////////////////////////////////////////////////////////
//  Ouverture div SteamCom
/////////////////////////////////////////////////////////////////////////////
function SteamCom_Move()
	{
	var WScreen=GetSHW()[0];
	var HScreen=GetSHW()[1];	
	var VScroll=GetScrollXY()[1];
	var WStm=parseInt($('SteamCom').style.width);
	var HStm=parseInt($('SteamCom').style.height);
	var LStm=Math.round((WScreen-WStm)/2);
	var TStm=VScroll+Math.round((HScreen-HStm)/2);
	$('SteamCom').style.top=TStm+"px";
	$('SteamCom').style.left=LStm+"px";	
	InW=WStm;
	InH=HStm-30;
	$('SteamComContent').style.width=InW+"px";
	$('SteamComContent').style.height=InH+"px";	
	}
/////////////////////////////////////////////////////////////////////////////
//  Ouverture div SteamCom
/////////////////////////////////////////////////////////////////////////////
function SteamCom_Open()
	{
	ShowMask();
	ShowLoading();
	SteamCom_Move();
	szUrl="Push/SteamCom.html";
	if (xmlHttp = GetxmlHttp())
		{
		xmlHttp.open("GET", szUrl);
		xmlHttp.onreadystatechange = function() {
						if (xmlHttp.readyState==4)
							{
							HideLoading();
							$('SteamComContent').innerHTML=xmlHttp.responseText;
							$('SteamCom').style.display="block";
							}
										};
		xmlHttp.send(null);
		}	
	}
////////////////////////////////////////////////////////////////////////////
//  Update des infos communauté
/////////////////////////////////////////////////////////////////////////////
function SteamCommunity_Update(bCache)
	{
	if (Stm_TmIsOn)
		clearTimeout(Stm_TmFuncCall);
	Stm_TmIsOn=0;	
	$('SteamComUpdateProgress').style.display="block";
	var d=new Date();
	var bRand = d.getTime();
	var szUrl="Push/Update/"+bCache+"/"+bRand+"/SteamInfos.html";
	if (xmlHttp = GetxmlHttp())
		{
		xmlHttp.open("GET", szUrl);
		xmlHttp.onreadystatechange = function() {
						if (xmlHttp.readyState==4)
							{
							szResult = xmlHttp.responseText;
							SteamCom_HandleUpdate(szResult);
							}
										};
		xmlHttp.send(null);
		}	
	}
/////////////////////////////////////////////////////////////////////////////
//  Handle SteamCom Update
/////////////////////////////////////////////////////////////////////////////
function SteamCom_HandleUpdate(szResult)
	{
	funct= szResult.substr(0,9);
	if (funct=="SCFunc17b")
		{
		try
			{
			eval(szResult);
			}
		catch (err){}			
		}
	$('SteamComUpdateProgress').style.display="none";	
	Stm_TmFuncCall=setTimeout("SteamCommunity_Update(1)",StmUpdTm);
	Stm_TmIsOn=1;		
	}	
////////////////////////////////////////////////////////////////////////////
//  Callback function 
////////////////////////////////////////////////////////////////////////////
function SCFunc17b(SC17D) 
	{     
	try
		{
		// Barre de Menu
		szTxt  = '';
		szTxt +='<span class="Sc_InfoBreak">(</span>';
		szTxt +='<span class="Sc_NmMembers" title="'+SC17D.SteamCom.infos.Mbrs.Num+' '+SC17D.SteamCom.infos.Mbrs.Lib+'" >'+SC17D.SteamCom.infos.Mbrs.Num+'</span>';
		szTxt +='<span class="Sc_InfoBreak">|</span>';
		szTxt +='<span class=';
		szTxt += parseInt(SC17D.SteamCom.infos.InGm.Num) ? '"Sc_IgMembers"' : '"Sc_NoMembers"';
		szTxt +=' title="'+SC17D.SteamCom.infos.InGm.Num+' '+SC17D.SteamCom.infos.InGm.Lib+'" >'+SC17D.SteamCom.infos.InGm.Num+'</span>';
		szTxt +='<span class="Sc_InfoBreak">|</span>';
		szTxt +='<span class=';
		szTxt += parseInt(SC17D.SteamCom.infos.OnLn.Num) ? '"Sc_OlMembers"' : '"Sc_NoMembers"';
		szTxt += ' title="'+SC17D.SteamCom.infos.OnLn.Num+' '+SC17D.SteamCom.infos.OnLn.Lib+'" >'+SC17D.SteamCom.infos.OnLn.Num+'</span>';
		szTxt +='<span class="Sc_InfoBreak">|</span>';
		szTxt +='<span class=';
		szTxt += parseInt(SC17D.SteamCom.infos.OnCt.Num) ? '"Sc_IcMembers"' : '"Sc_NoMembers"';
		szTxt += ' title="'+SC17D.SteamCom.infos.OnCt.Num+' '+SC17D.SteamCom.infos.OnCt.Lib+'" >'+SC17D.SteamCom.infos.OnCt.Num+'</span>';
		szTxt +='<span class="Sc_InfoBreak">)</span>';
		$('SteamComBar').innerHTML = szTxt;
		//Popup
		szTxt  = '';
		szTxt +='<a href="'+SC17D.SteamCom.infos.Mbrs.Url+'" class="Sc_NmMembers" title="" target="_blank">'+SC17D.SteamCom.infos.Mbrs.Num+' '+SC17D.SteamCom.infos.Mbrs.Lib+'</a>';
		szTxt +='<span class="Sc_InfoBreak">&nbsp;|&nbsp;</span>';
		szTxt +='<span class=';
		szTxt += parseInt(SC17D.SteamCom.infos.InGm.Num) ? '"Sc_IgMembers"' : '"Sc_NoMembers"';
		szTxt +='>'+SC17D.SteamCom.infos.InGm.Num+' '+SC17D.SteamCom.infos.InGm.Lib+'</span>';
		szTxt +='<span class="Sc_InfoBreak">&nbsp;|&nbsp;</span>';
		szTxt +='<span class=';
		szTxt += parseInt(SC17D.SteamCom.infos.OnLn.Num) ? '"Sc_OlMembers"' : '"Sc_NoMembers"';
		szTxt += '>'+SC17D.SteamCom.infos.OnLn.Num+' '+SC17D.SteamCom.infos.OnLn.Lib+'</span>';
		szTxt +='<span class="Sc_InfoBreak">&nbsp;|&nbsp;</span>';
		szTxt +='<a href="'+SC17D.SteamCom.infos.OnCt.Url+'" class=';
		szTxt += parseInt(SC17D.SteamCom.infos.OnCt.Num) ? '"Sc_IcMembers"' : '"Sc_NoMembers"';
		szTxt += ' title="">'+SC17D.SteamCom.infos.OnCt.Num+' '+SC17D.SteamCom.infos.OnCt.Lib+'</a>';
		$('SteamComFullInfos').innerHTML = szTxt;
		}
	catch(err){}
	}
/////////////////////////////////////////////////////////////////////////////
//  Fermeture div SteamCom
/////////////////////////////////////////////////////////////////////////////
function SteamCom_Close()
	{
	HideMask();
	$('SteamCom').style.display="none";
	}		
/////////////////////////////////////////////////////////////////////////////
//  Fonctions Shoutbox
/////////////////////////////////////////////////////////////////////////////
function GetSmileyBox()
	{
	if ($('ShoutTableSmileys').innerHTML != "")
		{
		Show('SmileysBox');
		return;
		}
	ShowLoading();
	szUrl= GlblUrl + "Push/SmileyBox/index.html";
	if (xmlHttp = GetxmlHttp())
		{
		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(a)
{
	var serializedString = '';
	var arrayLength = 0;
	for(var aKey in a)
	{
		//key definition
		if(aKey * 1 == aKey) //is_numeric?
		{
			//integer keys look like i:key
			serializedString += 'i:' + aKey + ';';	
		}
		else
		{
			//string keys look like s:key_length:key;
			serializedString += 's:' + aKey.length + ':"' + aKey + '";';
		}
		
		//value definition
		if(a[aKey] * 1 == a[aKey])
		{
			//integer value look like i:value
			serializedString += 'i:' + a[aKey] + ';';	
		}
		else if(typeof(a[aKey]) == "string")
		{
			//string value look like s:key_length:value;
			serializedString += 's:' + a[aKey].length + ':"' + a[aKey] + '";';
		}
		else if(a[aKey] instanceof Array)
		{
			serializedString += serializeArray(a[aKey]);
		}
		arrayLength++;
	}
	serializedString = 'a:' + arrayLength + ':{' + serializedString + '}';
	
	return serializedString;
}

