String.prototype.trim = function()
{
	return this.replace(/(^\s*)|(\s*$)/g,'');
}

String.prototype.rtrim = function()
{
	return this.replace(/(\s*$)/g,'');
}

String.prototype.ltrim = function()
{
	return this.replace(/(^\s*)/g,'');
}

function getRadioValue(radio)
{
	val=0;

	if(radio.length)
	{
		for(i=0;i < radio.length;i++)
		{
			if(radio[i].checked == true)
			{
				val=radio[i].value;

				break;
			}
		}
	}
	else
	{
		val=radio.value;
	}

	return val;
}

function fenetreCent(url,nom,largeur,hauteur,options)
{
	var haut=(screen.height-hauteur)/2;
	var Gauche=(screen.width-largeur)/2;
	fencent=window.open(url,nom,"top="+haut+",left="+Gauche+",width="+largeur+",height="+hauteur+","+options);
	fencent.focus();
}

function isMSIE()
{
	if(navigator.appVersion.indexOf('MSIE') == -1)
	{
		return false;
	}

	return true;
}

function addListener(element, baseName, handler)
{
	if(element.addEventListener)
	{
		element.addEventListener(baseName, handler, false);
	}
	else if(element.attachEvent)
	{
		element.attachEvent('on'+baseName, handler);
	}
}

function openWindow(url,largeur,hauteur,scrollbars,resizable)
{
	if(largeur == 0 || hauteur == 0)
	{
		win=window.open(url,'_blank');
	}
	else
	{
		win=window.open(url,'popup_'+largeur+'x'+hauteur+'_'+scrollbars+'_'+resizable,'width='+largeur+',height='+hauteur+',top='+((screen.height-hauteur)/2)+',left='+((screen.width-largeur)/2)+',scrollbars='+scrollbars+',resizable='+resizable);

		if(win != null)
		{
			win.focus();
		}
	}

	if(win == null)
	{
		alert('La fenêtre pop-up n\'a pas pu s\'ouvrir.\n\nVeuillez désactiver votre anti-popup et réessayer !');
	}

	return win;
}

function substr_count(haystack,needle)
{
	var pos=cnt=0;

	var offset=-1;

	while((offset=haystack.indexOf(needle, offset+1)) != -1)
	{
		cnt++;
	}

	return cnt;
}

function checkAll(form)
{
	for(i=0;i < form.elements.length;i++)
	{
		if(form.elements[i].type == 'checkbox')
		{
			form.elements[i].checked=true;
		}
	}
}

function uncheckAll(form)
{
	for(i=0;i < form.elements.length;i++)
	{
		if(form.elements[i].type == 'checkbox')
		{
			form.elements[i].checked=false;
		}
	}
}

function getSelectionStart(textarea)
{
	if(typeof textarea.selectionStart != 'undefined')
	{
		return textarea.selectionStart;
	}

	textarea.focus();

	diff=textarea.value.length - textarea.value.rtrim().length;

	var range=textarea.createTextRange();

	range.moveToBookmark(document.selection.createRange().getBookmark());

	range.moveEnd('character',textarea.value.length);

	if(!range.text.length)
	{
		diff=0;
	}

	return textarea.value.length - range.text.length - diff;
}

function getSelectionEnd(textarea)
{
	if(typeof textarea.selectionEnd != 'undefined')
	{
		return textarea.selectionEnd;
	}

	textarea.focus();

	var range=textarea.createTextRange();

	range.moveToBookmark(document.selection.createRange().getBookmark());

	range.moveStart('character', - textarea.value.length);

	return range.text.length;
}

function setCaretPos(textarea,start,end)
{
	end=end || start;

	if(textarea.setSelectionRange)
	{
		textarea.setSelectionRange(start,end);
	}
	else if(document.selection)
	{
		textarea.focus();

		var range=textarea.createTextRange();

		range.moveStart('character',start);
		range.moveEnd('character', - (textarea.value.length - end));

		range.select();
	}
}

function insertIntoTextArea(textarea,ajout,startPos,endPos)
{
	textarea.focus();

	if(document.selection || typeof textarea.selectionEnd != 'undefined')
	{
		if(typeof startPos == 'undefined')
		{
			var startPos=getSelectionStart(textarea);
		}

		if(typeof endPos == 'undefined')
		{
			var endPos=getSelectionEnd(textarea);
		}

		if(endPos < startPos)
		{
			endPos=startPos;
		}

		var scrollPos=textarea.scrollTop;

		var sel_text=textarea.value.substring(startPos,endPos);

		if(sel_text != '')
		{
			ajout=ajout.replace(/(Ecrivez ici|Description de votre lien)/g,sel_text);
		}

		textarea.value=textarea.value.substring(0,startPos) + ajout + textarea.value.substring(endPos);

		setCaretPos(textarea,startPos + ajout.length);

		textarea.scrollTop = scrollPos;
	}
	else
	{
		textarea.value+=ajout;
	}
}

function numberFormat(nbr,minimum,maximum)
{
	nbr_old=parseInt(nbr.value,10);

	nbr_new=(isNaN(nbr_old) || nbr_old < 0)?0:nbr_old;

	if(nbr_new && nbr_new < minimum)
	{
		nbr_new=minimum;
	}
	else if(maximum && nbr_new > maximum)
	{
		nbr_new=maximum;
	}

	if(nbr_new.toString() != nbr.value)
	{
		nbr.value=nbr_new;
	}

	return nbr_new;
}

function evalEntryLength(curField,countField,maxLimit,discardXtra)
{
	charCount=curField.value.length;

	if(charCount > maxLimit && discardXtra)
	{
		//curField.value=curField.value.substr(0,maxLimit);
	}

	document.getElementById(countField).innerHTML=((maxLimit - charCount) > 0)?(maxLimit - charCount):0;
}

function setColor(nom,code)
{
	if(document.getElementById)
	{
		document.getElementById('couleur_img_'+nom).style.backgroundColor='#'+code;
		document.getElementById('couleur_input_'+nom).value='#'+code;

		if(document.getElementById('couleur_cancel_'+nom))
		{
			document.getElementById('couleur_cancel_'+nom).style.visibility='visible';
		}

		return true;
	}

	return false;
}

function setPattern(nom,texture)
{
	if(document.getElementById)
	{
		if(texture == '0')
		{
			document.getElementById('texture_div_'+nom).style.backgroundImage='url('+base_url+'images/separateur.jpg)';
		}
		else
		{
			document.getElementById('texture_div_'+nom).style.backgroundImage='url('+base_url+'images/textures/texture'+texture+'.jpg)';
		}

		document.getElementById('texture_input_'+nom).value=texture;

		return true;
	}

	return false;
}

function newXHRObject()
{
	var xhr=null;

	if(window.XMLHttpRequest)
	{
		xhr=new XMLHttpRequest();

		if(xhr.overrideMimeType)
		{
			xhr.overrideMimeType('text/xml');
		}
	}
	else if(window.ActiveXObject)
	{
		try
		{
			xhr=new ActiveXObject('Msxml2.XMLHTTP');
		}
		catch(e)
		{
			try
			{
				xhr=new ActiveXObject('Microsoft.XMLHTTP');
			}
			catch(e)
			{
				xhr=null;
			}
		}
	}

	return xhr;
}

function chargerPaletteCouleurs(champ,html_tags,text_area)
{
	if(document.getElementById)
	{
		var xhr=newXHRObject();

		if(xhr != null)
		{
			xhr.open('GET',base_url+'membres/modules/palette_couleurs.php?champ='+champ+'&html='+((html_tags == true)?'1':'0')+'&textarea='+((text_area == true)?'1':'0'),true);

			xhr.onreadystatechange = function()
			{
				if(xhr.readyState == 4)
				{
					document.getElementById('_palette_couleurs_'+champ).innerHTML=xhr.responseText;
				}
			}

			xhr.send(null);

			return true;
		}
	}

	return false;
}

function chargerPaletteTextures(champ,page)
{
	if(document.getElementById)
	{
		var xhr=newXHRObject();

		if(xhr != null)
		{
			xhr.open('GET',base_url+'membres/modules/palette_textures.php?champ='+champ+'&page='+page,true);

			xhr.onreadystatechange = function()
			{
				if(xhr.readyState == 4)
				{
					document.getElementById('_palette_textures_'+champ).innerHTML=xhr.responseText;
				}
			}

			xhr.send(null);

			return true;
		}
	}

	return false;
}

var _smileys_loaded=false;

function chargerSmileys(uid,sid,service,textarea,url_params)
{
	if(document.getElementById && _smileys_loaded == false)
	{
		var xhr=newXHRObject();

		if(xhr != null)
		{
			xhr.open('GET',base_url+'membres/modules/smileys.php?uid='+uid+'&sid='+sid+'&service='+service+'&textarea='+textarea+url_params,true);

			xhr.onreadystatechange = function()
			{
				if(xhr.readyState == 4)
				{
					document.getElementById('_popup_smileys').innerHTML=xhr.responseText;

					_smileys_loaded=true;
				}
			}

			xhr.send(null);

			return true;
		}
	}

	return false;
}

var etatIconesServices=new Array();

function chargerMenuService(icone,code)
{
	if(document.getElementById)
	{
		for(i=0;i <= 17;i++)
		{
			lettre=String.fromCharCode(i+65);

			if(etatIconesServices.length != 18)
			{
				if(document.getElementById('icone_service_'+lettre).className == 'actuel')
				{
					etatIconesServices[i]='actif';
				}
				else
				{
					etatIconesServices[i]=document.getElementById('icone_service_'+lettre).className;
				}
			}

			if(lettre != code)
			{
				document.getElementById('icone_service_'+lettre).className=etatIconesServices[i];
			}
		}

		icone.className='actuel';

		if(document.getElementById('blacklist') && document.getElementById('blacklist').style.visibility == 'visible')
		{
			document.getElementById('blacklist').style.visibility='hidden';
		}

		var xhr=newXHRObject();

		if(xhr != null)
		{
			xhr.open('GET',base_url+'membres/menu_services.php?code='+code,true);

			xhr.onreadystatechange = function()
			{
				if(xhr.readyState == 4)
				{
					document.getElementById('liens_contextuels').innerHTML=xhr.responseText;
				}
				else
				{
					document.getElementById('liens_contextuels').innerHTML='<p>Chargement du menu en cours ... Veuillez patienter.</p>';
				}
			}

			xhr.send(null);

			return true;
		}
	}

	return false;
}

function switchDIVs(tag_name,id_name,id_num)
{
	if(document.getElementById && document.getElementsByTagName)
	{
		if(document.getElementById(id_name+id_num).style.display == 'none')
		{
			var tags=document.getElementsByTagName(tag_name);

			for(var i=0;i < tags.length;++i)
			{
				if(tags[i].id.indexOf(id_name) != -1)
				{
					if(tags[i].id != id_name+id_num)
					{
						tags[i].style.display='none';
					}
				}
			}

			document.getElementById(id_name+id_num).style.display='';
		}
		else
		{
			document.getElementById(id_name+id_num).style.display='none';
		}

		return true;
	}

	return false;
}

function switchMenu(menu)
{
	if(document.getElementById)
	{
		if(document.getElementById(menu).style.visibility == 'visible')
		{
			document.getElementById(menu).style.visibility='hidden';
		}
		else
		{
			document.getElementById(menu).style.visibility='visible';
		}

		return true;
	}

	return false;
}

function switchPopUp(popup,e,offsetX,offsetY)
{
	if(document.getElementById && document.getElementById(popup))
	{
		if(document.getElementById(popup).style.visibility == 'visible')
		{
			document.getElementById(popup).style.visibility='hidden';
		}
		else
		{
			if(navigator.appName.substring(0,3) == 'Net')
			{
				document.captureEvents(Event.MOUSEMOVE);
			}

			posX=getPosX(e);
			posY=getPosY(e);

			posX+=offsetX;
			posY+=offsetY;

			document.getElementById(popup).style.left=posX+'px';
			document.getElementById(popup).style.top=posY+'px';

			document.getElementById(popup).style.visibility='visible';
		}

		return true;
	}

	return false;
}

function switchDisplay(concise,verbose)
{
	var defaut = document.getElementById(concise);
	var autre = document.getElementById(verbose);

	defaut.style.display = (defaut.style.display == 'none' ? '' : 'none');
	autre.style.display = (autre.style.display == 'none' ? '' : 'none');
}

function getPosX(e)
{
	posX = e.pageX ? e.pageX : e.clientX;

	if(isMSIE())
	{
		posX += document.documentElement.scrollLeft;
	}

	return posX;
}

function getPosY(e)
{
	posY = e.pageY ? e.pageY : e.clientY;

	if(isMSIE())
	{
		posY += document.documentElement.scrollTop;
	}

	return posY;
}

function voteEtoiles(uid,sid,service,vote_id,vote_valeur)
{
	if(document.getElementById)
	{
		var xhr=newXHRObject();

		if(xhr != null)
		{
			document.getElementById('_rating_ul'+vote_id).innerHTML='<div class="is_loading" style="height: 16px;"></div>';

			xhr.open('get',base_url+'membres/modules/notation.php?uid='+uid+'&sid='+sid+'&service='+service+'&id='+vote_id+'&val='+vote_valeur);

			xhr.onreadystatechange = function()
			{
				if(xhr.readyState == 4 && xhr.status == 200)
				{
					document.getElementById('_rating'+vote_id).innerHTML=xhr.responseText;
				}
			}

			xhr.send(null);

			return true;
		}
	}

	return false;
}

function cacher(id)
{
	document.getElementById(id).style.display='none';
}

function montrer(id)
{
	document.getElementById(id).style.display='block';
}

function montrer_tr(id)
{
	document.getElementById(id).style.display='';
}

function changer_texte(id,nv_txt)
{
	document.getElementById(id).innerHTML=nv_txt;
}

function cacherSelect(idSelect)
{
	old_IE = (navigator.appName == 'Microsoft Internet Explorer' && navigator.appVersion.indexOf("6.") >= 0) ? 1:0

	if(old_IE)
	{
		document.getElementById(idSelect).style.visibility='hidden';
	}
}

function montrerSelect(idSelect)
{
	old_IE = (navigator.appName == 'Microsoft Internet Explorer' && navigator.appVersion.indexOf("6.") >= 0) ? 1:0

	if(old_IE)
	{
		document.getElementById(idSelect).style.visibility='visible';
	}
}
