var jsHelp = new Array();
var changed = false;
var mayLeave = false;

function JSBB(text)
{
	text = text.replace(/\[img\](.*?)\[\/img\]/,'<img src=\'$1\' />');
	return text;
}

function noEvent(event)
{
	if(!event){event = window.event;}
	if(navigator.appName == 'Microsoft Internet Explorer')
	{
		event.returnValue = false;
	}else{
		event.preventDefault();
	}
} 

function helpClass(title, help)
{
	this.title = title;
	this.help = help;
}

function getMouseCoords(event)
{
	if(!event){event = window.event;}
	return [event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft, event.clientY + document.body.scrollTop + document.documentElement.scrollTop];
}

function readTag(source, tag_name)
{
	return source.getElementsByTagName(tag_name)[0].firstChild.nodeValue;
}

function fadeOut(elem_name)
{
	elem = document.getElementById(elem_name);
	elem.style.opacity -= 0.1;	
	if(elem.style.opacity > 0)
	{
		setTimeout("fadeOut('"+elem_name+"')",100);
	}else{
		elem.style.display = 'none';	
		elem.style.opacity = 1;	
	}
}

function helpTab(event, info_id)
{	
	if(navigator.appName == 'Microsoft Internet Explorer')
	{
		event.returnValue = false;
	}else{
		event.preventDefault();
	}
	help = document.getElementById('help_tab');
	title = document.getElementById('help_title');
	content = document.getElementById('helptab_content');
	obj = jsHelp[info_id];
	title.innerHTML = obj.title;
	content.innerHTML = obj.help;
	mouseCoords = getMouseCoords(event);
	posx = mouseCoords[0] + 7;
	posy = mouseCoords[1] + 7;
	help.style.left = posx + 'px';
	help.style.top = posy +'px';
	help.style.position = 'absolute';
	help.style.display = 'block';
}

function wipeHelp()
{
	help = document.getElementById('help_tab');
	help.style.display = 'none';	
}

function popitup(url, title) 
{
	newwindow = window.open(url,title,'height=400,width=450,scrollbars=yes');
	if (window.focus) {newwindow.focus()}
	return false;
}

function wipe(id)
{
	document.getElementById(id).value = '';
}	

function Preview(field_name)
{
	raw = document.getElementById(field_name).value;
	url = 'preview.php?txt='+encodeURIComponent(raw);
	popitup(url, 'Prévisualisation'); 
}

function Style(event,style,name)
{
	if(navigator.appName == 'Microsoft Internet Explorer')
	{
		event.returnValue = false;
	}else{
		event.preventDefault();
	}
	var input = document.getElementsByName(name);
	input = input[0];
	
	var left_style = '['+style+']';
	var right_style = '[/'+style+']';
	
	if(document.selection)
	{
		input.focus();
		var sel = document.selection.createRange();
		//alert(sel.text);
		sel.text = left_style + sel.text + right_style;
	}else{
		var start = input.selectionStart;
		var end = input.selectionEnd;		
		var insText = input.value.substring(start, end);
		input.value = input.value.substr(0, start) + left_style + insText + right_style + input.value.substr(end);
		input.focus();
		if(insText.length == 0)
		{
			input.selectionStart = start + 2 + style.length;
			input.selectionEnd = input.selectionStart;
		}else{
			input.selectionStart = start;
			input.selectionEnd = end + 5 + (style.length * 2);
		}
	}	
}

function Toggle(tab_id, menu_id)
{
	menu_name = new Array('listnav','navlist');	
	tabs = document.getElementById(menu_name[menu_id]);
	tablist = tabs.getElementsByTagName('a');
	for(i = 0; tablist[i]; i++)
	{
		if(tablist[i].className == 'current')
		{
			tablist[i].className = '';
		}
	}
	divlist = new Array();
	divs = document.getElementsByTagName('div');
	for(i = 0; divs[i]; i++)
	{
		if(divs[i].getAttribute('name') == menu_name[menu_id]+'_div')
		{
			divlist.push(divs[i]);
		}
	}
	for(i = 0; divlist[i]; i++)
	{
		divlist[i].style.display = 'none';
	}
	tab = document.getElementById(menu_name[menu_id]+'_tab'+tab_id);
	tab.className = 'current';
	div = document.getElementById(menu_name[menu_id]+'_div'+tab_id);
	div.style.display = 'block';
}

function EditorToggle(event, tab_id)
{
	if(navigator.appName == 'Microsoft Internet Explorer')
	{
		event.returnValue = false;
	}else{
		event.preventDefault();
	}

	activeClass = 'editor_active';
	father = document.getElementById('editor_tabs');
	start = 0;

	tab = document.getElementById('tab'+tab_id);
	link = document.getElementById('link'+tab_id);
	
	if(tab.style.display == 'none') 
 	{
		tab.style.display = 'block';
		link.className = activeClass;
  	}
  	
	list = father.getElementsByTagName('a');
	end = start + list.length - 1;
	for(i = start; i <= end; i++)
	{	
		tb = document.getElementById('tab'+i);
		lk = document.getElementById('link'+i);
		if(tb && lk)
		{
			if(i != tab_id && tb.style.display != 'none')
			{
				tb.style.display = 'none';
				lk.className = '';
			}
		}
	}
	if(changed)
	{
		save_div = document.getElementById('save');
		save_div.style.display = 'block';
	}
}

function setColor(event, field, value, txt)
{
	if(navigator.appName == 'Microsoft Internet Explorer')
	{
		event.returnValue = false;
	}else{
		event.preventDefault();
	}
	
	f = document.getElementById(field);
	f.style.background = '#'+value;
	f.style.color = txt;
	f.value = value;
}

function CharsetPreview()
{
	f = document.getElementById('players_pic');
	preview = document.getElementById('preview_zone');
	preview.innerHTML = '<img src=\''+Charset[f.value]+'\'/>';
}

function ConfirmExit(event, field)
{
	f = document.getElementById(field);
	if(f.value && !mayLeave)
	{
		if(!event){event = window.event;}
		//e.cancelBubble is supported by IE - this will kill the bubbling process.
		event.cancelBubble = true;
		event.returnValue = 'Vous avez entré un texte qui n\'a pas encore été validé/envoyé et qui sera perdu si vous quittez la page.'; 	
		//e.stopPropagation works in Firefox.
		if(event.stopPropagation)
		{
			event.stopPropagation();
			event.preventDefault();
		}
	}
}
