// Created by Darck (darck@vossey.com)

var EBox = 0;
var EBoxMenu = 0;
var EBoxInMove = 0;
var EBoxPosX = 0;
var EBoxPosY = 0;

var LastMouseX = 0;
var LastMouseY = 0;
var MouseX = 0;
var MouseY = 0;

var Undo = 0;
var Redo = 0;
var Hist = new Array(11);
var HistPos = 0;
var CanRedo = 0;
var KeyCount = 0;

var TArea = 0;
var TAreaLastVal = "";
var SelTxt = 0;

var LinkName = 0;
var LinkUrl = 0;

var PictUrl = 0;
var PictAlt = 0;

var GalUrl = 0;
var GalAlt = 0;
var GalList = 0;

var CmdTxt = 0;

var QTxt = 0;
var QAuthor = 0;

var ItwName = 0;
var ItwType = 0;
var ItwTxt = 0;
var ItwList = 0;
var LastItwer = "";
var LastItwed = "";

var SPictUrl = 0;
var SPictAlt = 0;
var SPictPos = 0;
var SPictTxt = 0;

var ListEnt = 0;
var ListTxt = 0;

var GraphEnt = 0;
var GraphTitle = 0;
var GraphTxt = 0;
var GraphVal = 0;

var HeadingList = 0;
var TableSum = 0;
var TableType = 0;
var TableLine = 0;
var TableCol = 0;
var HeadingTxt = 0;


/* Mouse Pos */
function GetMousePos(e)
{
	if (browser.isIE)
	{
		MouseX = parseInt(event.screenX);
		MouseY = parseInt(event.screenY);
	}
	else if(browser.isOpera)
	{
		MouseX = parseInt(event.clientX);
		MouseY = parseInt(event.clientY);
	}
	else
	{
		MouseX = parseInt(e.screenX);
		MouseY = parseInt(e.screenY);
	}

	if( EBoxInMove )
	{
		EBox.style.left=(EBoxPosX+(MouseX-LastMouseX))+"px";
		EBox.style.top=(EBoxPosY+(MouseY-LastMouseY))+"px";
		EBoxMenu.style.left=EBox.style.left;
		EBoxMenu.style.top=(14+EBoxPosY+(MouseY-LastMouseY))+"px";
	}
}

/* Movable box */
function EBoxMove()
{
	if( !EBoxInMove )
	{
		LastMouseX = MouseX;
		LastMouseY = MouseY;
		EBoxInMove = 1;
	}
	else
	{
		EBoxPosX = EBoxPosX+(MouseX-LastMouseX);
		EBoxPosY = EBoxPosY+(MouseY-LastMouseY);
		EBoxInMove = 0;
	}
}

/* Utils Boxes */
function InitBox(PosX, PosY)
{
	EBoxPosX = PosX;
	EBoxPosY = PosY;

	EBox = document.getElementById("editmimg");
	EBoxMenu = document.getElementById("editm");

	addEvt(EBox,'mousedown',EBoxMove);

	/* Get Mouse Position */
	document.onmousemove = GetMousePos;

	EBox.style.left=EBoxPosX+"px";
	EBox.style.top=EBoxPosY+"px";

	EBoxMenu.style.left=EBoxPosX+"px";
	EBoxMenu.style.top=(EBoxPosY+14)+"px";

	Undo = document.getElementById("undo");
	Redo = document.getElementById("redo");

	Undo.style['background'] = "#D8D8D8";
	Redo.style['background'] = "#D8D8D8";

	TArea = document.getElementById("tarea");
	addEvt(TArea,'keyup',TAreaThink);
	TAreaLastVal = TArea.value;
	Hist[0] = TArea.value;

	LinkName = document.getElementById("linkname");
	LinkUrl = document.getElementById("linkurl");

	PictUrl = document.getElementById("picturl");
	PictAlt = document.getElementById("pictalt");

	GalUrl = document.getElementById("galurl");
	GalAlt = document.getElementById("galalt");
	GalList = document.getElementById("gallist");
	addEvt(GalList,'change',GalSel);
	GalList.selectedIndex = 0;

	CmdTxt = document.getElementById("cmdcode");

	QTxt = document.getElementById("qcode");
	QAuthor = document.getElementById("qauthor");

	ItwName = document.getElementById("itwname");
	ItwType = document.getElementsByName("itwtype");
	addEvt(ItwType.item(0),'click',ItwSelType);
	addEvt(ItwType.item(1),'click',ItwSelType);
	ItwTxt = document.getElementById("itwtxt");
	ItwList = document.getElementById("itwlist");
	addEvt(ItwList,'change',ItwSel);
	ItwList.selectedIndex = 0;

	SPictUrl = document.getElementById("spicturl");
	SPictAlt = document.getElementById("spictalt");
	SPictPos = document.getElementsByName("spictpos");
	SPictTxt = document.getElementById("spicttxt");

	ListEnt = document.getElementById("listlist");
	addEvt(ListEnt,'change',ListSel);
	ListTxt = document.getElementById("listtxt");

	GraphEnt = document.getElementById("graphlist");
	addEvt(GraphEnt,'change',GraphSel);
	GraphTitle = document.getElementById("graphtitle");
	GraphTxt = document.getElementById("graphtxt");
	GraphVal = document.getElementById("graphval");

	HeadingList = document.getElementById("headinglist");
	addEvt(HeadingList,'change',HeadingSel);
	TableSum = document.getElementById("tablesum");
	TableType = document.getElementsByName("tabletype");
	addEvt(TableType.item(0),'click',TableSelType);
	addEvt(TableType.item(1),'click',TableSelType);
	addEvt(TableType.item(2),'click',TableSelType);
	TableLine = document.getElementById("tableline");
	TableCol = document.getElementById("tablecol");
	HeadingTxt = document.getElementById("headingtxt");
}

function IEGetSel()
{
	if(document.selection)
	{
		TArea.focus();
		SelTxt = document.selection.createRange();
	}
}

function OpenBox(box)
{
	var dls = document.getElementsByTagName("dl");
	var obox = document.getElementById(box);

	for ( var i=0; i<dls.length; i++ )
	{
		dls.item(i).style["visibility"] = "hidden";
	}

	TArea.disabled="";
	// Reset Form
	obox.getElementsByTagName("form").item(0).reset();
	obox.style.top = EBoxPosY+"px";

	if(box=="link")
		LinkName.value = GetSel();

	else if(box=="pict")
		PictUrl.value = GetSel();

	else if(box=="gallery")
	{
		while( GalList.length > 1 )
			GalList.options[0] = null;
	}
	else if(box=="cmd")
	{
		CmdTxt.value = GetSel();
		while( CmdTxt.value.indexOf("[cmd]") >= 0 )
			CmdTxt.value = CmdTxt.value.replace("[cmd]","");

		while( CmdTxt.value.indexOf("[/cmd]") >= 0 )
			CmdTxt.value = CmdTxt.value.replace("[/cmd]","");

		while( CmdTxt.value.indexOf("[cmd-br]") >= 0 )
			CmdTxt.value = CmdTxt.value.replace("[cmd-br]","");
	}

	else if(box=="quote")
		QTxt.value = GetSel();

	else if(box=="itw")
	{
		LastItwer = "Vossey.com";
		LastItwed = "";

		while( ItwList.length > 1 )
			ItwList.options[0] = null;
	}
	else if(box=="sidepict")
		SPictTxt.value = GetSel();

	else if(box=="list")
	{
		while( ListEnt.length > 1 )
			ListEnt.options[0] = null;

		ListAddSel(GetSel());
	}
	else if(box=="graph")
	{
		while( GraphEnt.length > 1 )
			GraphEnt.options[0] = null;
	}
	else if(box=="table")
	{
		while( HeadingList.length > 1 )
			HeadingList.options[0] = null;

		TableSelType();
	}

	IEGetSel();	// Save the selection

	TArea.disabled="disabled";
	obox.style["visibility"] = "visible";
}

function CloseBox(box)
{
	document.getElementById(box).style["visibility"] = "hidden";
	TArea.disabled="";
}

function GetSel()
{
	if(TArea.disabled==true)
		return;

	if(document.selection)	// IE
	{
		TArea.focus();
		return document.selection.createRange().text;
	}
	else if(TArea.selectionStart | TArea.selectionStart == 0)	// Moz
	{
		TArea.focus();
		return TArea.value.slice(TArea.selectionStart,TArea.selectionEnd);
	}
	else
	{
		return "";
	}
}

function AddTag(tag,ext)
{
	if(TArea.disabled==true)
		return;

	var SPos = TArea.scrollTop;

	TAreaSave();

	if(document.selection)	// IE
	{
		TArea.focus();
		var str = document.selection.createRange();

		if(str.text == "")
			str.text = "["+tag+"][/"+tag+"]";
		else
			str.text = "["+tag+"]"+str.text+"[/"+tag+"]"+ext;
	}
	else if(TArea.selectionStart | TArea.selectionStart == 0)	// Moz
	{
		var Start = TArea.selectionStart;
		var End = TArea.selectionEnd+tag.length+2;

		TArea.value=TArea.value.slice(0,Start)+"["+tag+"]"+TArea.value.slice(Start);
		TArea.value=TArea.value.slice(0,End)+"[/"+tag+"]"+ext+TArea.value.slice(End);

		TArea.selectionStart = Start+tag.length+2;
		TArea.selectionEnd = End;

		TArea.focus();
	}
	else
	{
		TArea.value = TArea.value+"["+tag+"][/"+tag+"]"+ext;
	}

	TArea.scrollTop = SPos;
}

function InsCode(code)
{
	if(TArea.disabled==true)
		return;

	var SPos = TArea.scrollTop;

	TAreaSave();

	if(document.selection)	// IE
	{
		SelTxt.text = code;
	}
	else if(TArea.selectionStart | TArea.selectionStart == 0)	// Moz
	{
		var Start = TArea.selectionStart;
		var End = TArea.selectionEnd;

		TArea.value=TArea.value.slice(0,Start)+code+TArea.value.slice(End);

		TArea.selectionStart = Start;
		TArea.selectionEnd = Start+code.length;

		TArea.focus();
	}
	else
	{
		TArea.value = TArea.value+code;
	}

	TArea.scrollTop = SPos;
}

/* Historic */
function TAreaSave()
{
	if( HistPos == 11 )
	{
		for(var i=0;i<11;i++)
			Hist[i] = Hist[i+1];
	}
	else if( HistPos < 11 )
		HistPos++;

	Hist[HistPos] = TArea.value;
	Undo.style['background'] = "transparent";
	Redo.style['background'] = "#D8D8D8";
	CanRedo=0;
}

function TAreaUndo()
{
	if( HistPos < 1 )
		return;
	else if( HistPos == 1 )
		Undo.style['background'] = "#D8D8D8";

	Hist[HistPos] = TArea.value;	// Redo
	HistPos--;
	TArea.value = Hist[HistPos];	// Undo
	KeyCount = 1;
	CanRedo++;
	Redo.style['background'] = "transparent";
}

function TAreaRedo()
{
	if( !CanRedo )
		return;
	else if( CanRedo == 1 )
		Redo.style['background'] = "#D8D8D8";

	HistPos++;
	TArea.value = Hist[HistPos];
	KeyCount = 1;
	CanRedo--;
	Undo.style['background'] = "transparent";
}

function TAreaThink()
{
	if( TAreaLastVal != TArea.value )
	{
		if( CanRedo > 0 )
		{
			CanRedo=0;
			Redo.style['background'] = "#D8D8D8";
		}
		else
			KeyCount++;

		TAreaLastLgth = TArea.value.length;
	}
	else
		return;

	if( KeyCount > 10 )
		KeyCount = 1;

	if( KeyCount == 1 )
		TAreaSave();
}

/* Link Box */
function slink()
{
	CloseBox("link");
	TAreaSave()

	InsCode("[a="+LinkUrl.value+"]"+((LinkName.value==0) ? LinkUrl.value : LinkName.value)+"[/a]");
}

/* Pict Box */
function spict()
{
	CloseBox("pict");
	TAreaSave();

	InsCode("[img="+PictUrl.value+"]"+PictAlt.value+"[/img]");
}

// Lists
function LAdd(list,text,val,stdval)
{
	list.options[list.length-1] = new Option(text,val);
	list.options[list.length] = new Option(stdval,"",true);
}

function LMod(list,text,val)
{
	list.options[list.selectedIndex].text = text;
	list.options[list.selectedIndex].value = val;
}

function LDel(list)
{
	if( list.options[list.selectedIndex].value != "" )
	{
		list.options[list.selectedIndex] = null;
		list.selectedIndex = 0;
	}
}

function LUp(list)
{
	if( list.length > 2 && list.selectedIndex != 0 && list.options[list.selectedIndex].value != ""  )
	{
		var TmpTxt = list.options[list.selectedIndex].text;
		var TmpVal = list.options[list.selectedIndex].value;

		list.options[list.selectedIndex].text = list.options[list.selectedIndex-1].text;
		list.options[list.selectedIndex].value = list.options[list.selectedIndex-1].value;

		list.options[list.selectedIndex-1].text = TmpTxt;
		list.options[list.selectedIndex-1].value = TmpVal;

		list.selectedIndex--;
	}
}

function LDown(list)
{
	if( list.length > 2 && list.selectedIndex != (list.length-2) && list.options[list.selectedIndex].value != "" )
	{
		var TmpTxt = list.options[list.selectedIndex].text;
		var TmpVal = list.options[list.selectedIndex].value;

		list.options[list.selectedIndex].text = list.options[list.selectedIndex+1].text;
		list.options[list.selectedIndex].value = list.options[list.selectedIndex+1].value;

		list.options[list.selectedIndex+1].text = TmpTxt;
		list.options[list.selectedIndex+1].value = TmpVal;

		list.selectedIndex++;
	}
}

/* Gal Box */
function GalAdd(list,text,val)
{
	if( GalUrl.value == "" || GalAlt.value == "" )
		alert("L'URL et la description sont obligatoires.");
	else
	{
		LAdd(GalList,GalAlt.value,GalUrl.value,"[ Nouvelle image ]");
		GalUrl.value = "";
		GalAlt.value = "";
		fgal();
	}
}

function GalMod()
{
	if( GalList.options[GalList.selectedIndex].value == "" )
		GalAdd();
	else if( GalUrl.value == "" || GalAlt.value == "" )
		alert("L'URL et la description sont obligatoires.");
	else
	{
		LMod(GalList,GalAlt.value,GalUrl.value);
		fgal();
	}
}

function GalDel()
{
	LDel(GalList);

	GalSel();
	fgal();
}

function GalSel()
{
	if( GalList.options[GalList.selectedIndex].value == "" )
	{
		GalUrl.value = "";
		GalAlt.value = "";
	}
	else
	{
		GalUrl.value = GalList.options[GalList.selectedIndex].value;
		GalAlt.value = GalList.options[GalList.selectedIndex].text;
	}
}

function sgal()
{
	if( GalList.length == 1 )
	{
		alert("La galerie est vide !");
		return;
	}

	CloseBox("gallery");
	TAreaSave();

	var Tmp = "[gal]\n";
	for( var i=0; i<GalList.length-1; i++ )
	{
		Tmp = Tmp + "\t[img="+GalList.options[i].value+"]"+GalList.options[i].text+"[/img]\n";
	} 
	Tmp = Tmp + "[/gal]\n";

	InsCode(Tmp);
}

/* Cmd Box */
function scmd()
{
	CloseBox("cmd");
	TAreaSave();
	if ( browser.isIE )
		var ret = "\r\n";
	else
		var ret = "\n";

	while( CmdTxt.value.indexOf(ret) >= 0 )
		CmdTxt.value = CmdTxt.value.replace(ret,"[cmd-br][br]");

	while( CmdTxt.value.indexOf("[br]") >= 0 )
		CmdTxt.value = CmdTxt.value.replace("[br]",ret);

	InsCode("[cmd]"+CmdTxt.value+"[/cmd]\n");
}

/* Quote Box*/
function squote()
{
	CloseBox("quote");
	TAreaSave();
	InsCode("[quote]"+QTxt.value+((QAuthor.value != "") ? "\n[author]"+QAuthor.value+"[/author]\n" : "\n")+"[/quote]\n");
}

/* Itw Box */
function ItwAdd()
{
	if( ItwName.value == "" || ItwTxt.value == "" )
		alert("Le nom et le texte sont obligatoires.");
	else
	{
		LAdd(ItwList,((ItwType.item(0).checked) ? "- " : "--- ")+ItwName.value,ItwTxt.value,"[ Nouvelle entrée ]");
		ItwTxt.value = "";

		if( ItwType.item(0).checked )
		{
			LastItwer = ItwName.value;
			ItwType.item(1).checked = true;
		}
		else
		{
			LastItwed = ItwName.value;
			ItwType.item(0).checked = true;
		}

		ItwSelType();
	}

}

function ItwMod()
{
	if( ItwList.options[ItwList.selectedIndex].value == "" )
		ItwAdd();
	else if( ItwName.value == "" || ItwTxt.value == "" )
		alert("Le nom et le texte sont obligatoires.");
	else
	{
		LMod(ItwList,((ItwType.item(0).checked) ? "- " : "--- ")+ItwName.value,ItwTxt.value);
	}
}

function ItwDel()
{
	LDel(ItwList);
	ItwSel();
}

function ItwSelType()
{
	if( ItwType.item(0).checked )
		ItwName.value = LastItwer;
	else if( ItwType.item(1).checked )
		ItwName.value = LastItwed;
}

function ItwSel()
{
	if( ItwList.options[ItwList.selectedIndex].value == "" )
	{
		ItwName.value = "";
		ItwTxt.value = "";

		ItwSelType();
	}
	else
	{
		var Name = ItwList.options[ItwList.selectedIndex].text;

		if( Name.slice(0,2) == "- " )
		{
			ItwName.value = Name.slice(2,Name.length);
			ItwType.item(0).checked = true;
		}
		else
		{
			ItwName.value = Name.slice(4,Name.length);
			ItwType.item(1).checked = true;
		}
		ItwTxt.value = ItwList.options[ItwList.selectedIndex].value;
	}
}

function sitw()
{
	CloseBox("itw");
	TAreaSave();

	var Tmp = "[itw]\n";
	for( var i=0; i<ItwList.length-1; i++ )
	{
		if( ItwList.options[i].text.slice(0,2) == "- " )
			Tmp = Tmp+"\t[itwer][b]"+ItwList.options[i].text.slice(2,ItwList.options[i].text.length)+" : [/b]"+ItwList.options[i].value+"[/itwer]\n";
		else
			Tmp = Tmp+"\t[itwed][p][b]"+ItwList.options[i].text.slice(4,ItwList.options[i].text.length)+" : [/b]"+ItwList.options[i].value+"[/p][/itwed]\n";
	} 
	Tmp = Tmp + "[/itw]";

	InsCode(Tmp);

}

/* Side Pict Box */
function SPictSelPos(item)
{
	SPictPos.item(item).checked=true;
}

function sspict()
{
	CloseBox("sidepict");
	TAreaSave();
	if( SPictPos.item(1).checked )
		InsCode("[imgside][img-right="+SPictUrl.value+"]"+SPictAlt.value+"[/img]\n"+SPictTxt.value+"\n[/imgside]\n");
	else
		InsCode("[imgside][img-left="+SPictUrl.value+"]"+SPictAlt.value+"[/img]\n"+SPictTxt.value+"\n[/imgside]\n");
}

/* List Box */
function ListAddSel(txt)
{
	if(txt == "")
		return;

	while( txt.indexOf("[list]") >= 0 )
		txt = txt.replace("[list]","");

	while( txt.indexOf("[/list]") >= 0 )
		txt = txt.replace("[/list]","");

	while( txt.indexOf("[item]") >= 0 )
		txt = txt.replace("[item]","");

	while( txt.indexOf("[/item]") >= 0 )
		txt = txt.replace("[/item]","");

	var listsel = "";

	if ( browser.isIE )
		listsel = txt.split("\r\n");
	else
		listsel = txt.split("\n");

	for( var i=0; i<listsel.length; i++ )
	{
		if( listsel[i] != "" )			
			LAdd(ListEnt,listsel[i],"Ent","[ Nouvelle entrée ]");
	}
}

function ListAdd()
{
	if( ListTxt.value == "" )
		alert("Le texte est obligatoire.");
	else
	{
		LAdd(ListEnt,ListTxt.value,"Ent","[ Nouvelle entrée ]");
		ListTxt.value = "";
	}

}

function ListMod()
{
	if( ListEnt.options[ListEnt.selectedIndex].value == "" )
		ListAdd();
	else if( ListTxt.value != "" )
	{
		LMod(ListEnt,ListTxt.value,"Ent");
	}
}

function ListDel()
{
	LDel(ListEnt);
	ListSel();
}

function ListSel()
{
	if( ListEnt.options[ListEnt.selectedIndex].value == "" )
		ListTxt.value = "";
	else
		ListTxt.value = ListEnt.options[ListEnt.selectedIndex].text;
}

function slist()
{
	CloseBox("list");
	TAreaSave();

	var Tmp = "[list]\n";
	for( var i=0; i<ListEnt.length-1; i++ )
	{
		Tmp = Tmp+"\t[item]"+ListEnt.options[i].text+"[/item]\n";
	} 
	Tmp = Tmp + "[/list]";

	InsCode(Tmp);

}


/* Graph Box */
function GraphAdd()
{
	if( GraphTxt.value == "" || GraphVal.value == "" )
		alert("Le texte et la valeur sont obligatoires.");
	else
	{
		LAdd(GraphEnt,GraphTxt.value,GraphVal.value,"[ Nouvelle entrée ]");
		GraphTxt.value = "";
		GraphVal.value = "";
	}

}

function GraphMod()
{
	if( GraphEnt.options[GraphEnt.selectedIndex].value == "" )
		GraphAdd();
	else if( GraphTxt.value == "" || GraphVal.value == "" )
		alert("Le texte et la valeur sont obligatoires.");
	else
	{
		LMod(GraphEnt,GraphTxt.value,GraphVal.value);
	}
}

function GraphDel()
{
	LDel(GraphEnt);
	GraphSel();
}

function GraphSel()
{
	if( GraphEnt.options[GraphEnt.selectedIndex].value == "" )
	{
		GraphTxt.value = "";
		GraphVal.value = "";
	}
	else
	{
		GraphTxt.value = GraphEnt.options[GraphEnt.selectedIndex].text;
		GraphVal.value = GraphEnt.options[GraphEnt.selectedIndex].value;
	}
}

function sgraph()
{
	if( GraphTitle.value == "" )
	{
		alert("Le graphique doit avoir un titre.");
		return;
	}
	else if( GraphEnt.length < 2 )
	{
		alert("Le graphique doit comporter au moins une entrée.");
		return;
	}

	CloseBox("graph");
	TAreaSave();


	var Total = 0;
	var Val = new Array();	// value
	var Prc = new Array();	// %
	var Px = new Array();	// pixels
	var Lgth = GraphEnt.length-1;
	for( var i=0; i<Lgth; i++ )
	{
		Total = Total+parseFloat(GraphEnt.options[i].value);
		Val[i] = parseFloat(GraphEnt.options[i].value);
	}

	/* Fill arrays */
	var Max = 0;
	for( var i=1; i<Lgth; i++ )
	{
		if(Val[i] > Val[Max])
			Max = i;
	}

	for( var i=0; i<Lgth; i++ )
	{
		Prc[i] = (Val[i] == 0) ? 0 : (Val[i]/Total*100);
		Px[i] = ((Val[i] == 0) ? 0 : (437*Val[i]/Val[Max]))+63;
	}


	var Tmp = "[graph="+GraphTitle.value+"("+Total+" "+((Total > 1) ? "votes" : "vote")+")]\n";
	for( var i=0; i<Lgth; i++ )
	{
		Tmp = Tmp+"\t[ent=("+Prc[i].toFixed(2)+"%)("+Px[i].toFixed(0)+"px)]"+GraphEnt.options[i].text+"[/ent]\n";
	}

	Tmp = Tmp + "[/graph]\n";

	InsCode(Tmp);
}

/* Table Box */
function HeadingAdd()
{
	if( TableType.item(0).checked )
		return;

	if( HeadingTxt.value == "" )
		alert("Le texte est obligatoire.");
	else
	{
		LAdd(HeadingList,HeadingTxt.value,"Ent","[ Nouvelle en-tête ]");
		HeadingTxt.value = "";
	}

}

function HeadingMod()
{
	if( TableType.item(0).checked )
		return;

	if( HeadingList.options[HeadingList.selectedIndex].value == "" )
		HeadingAdd();
	else if( HeadingTxt.value == "" )
		alert("Le texte est obligatoire.");
	else
		LMod(HeadingList,HeadingTxt.value,"Ent");
}

function HeadingDel()
{
	if( TableType.item(0).checked )
		return;

	LDel(HeadingList);
	HeadingSel();
}

function HeadingSel()
{
	if( HeadingList.options[HeadingList.selectedIndex].value == "" )
		HeadingTxt.value = "";
	else
		HeadingTxt.value = HeadingList.options[HeadingList.selectedIndex].text;
}

function TableSelType()
{
	TableLine.disabled="";
	TableCol.disabled="";
	HeadingList.disabled="";
	HeadingTxt.disabled="";
	if( TableCol.value == "-- AUTO --" )
		TableCol.value="";
	if( TableLine.value == "-- AUTO --" )
		TableLine.value="";

	if( TableType.item(0).checked )
	{
		HeadingList.disabled="disabled";
		HeadingTxt.disabled="disabled";
	}
	else if( TableType.item(1).checked )
	{
		TableCol.value="-- AUTO --";
		TableCol.disabled="disabled";
	}
	else
	{
		TableLine.value="-- AUTO --";
		TableLine.disabled="disabled";
	}
}

function stable()
{
	if( TableSum.value == "" )
	{
		alert("La description est obligatoire.");
		return;
	}

	var Cols = 0;
	var Lines = 0;
	var Type = 0;

	if( TableType.item(0).checked )
	{
		Cols = parseInt(TableCol.value);
		Lines = parseInt(TableLine.value);
	}
	else if( TableType.item(1).checked )
	{
		Cols = HeadingList.length-1;
		Lines = parseInt(TableLine.value);
		Type = 1;
	}
	else
	{
		Cols = parseInt(TableCol.value);
		Lines = HeadingList.length-1;
		Type = 2;
	}

	if( isNaN(Cols) || isNaN(Lines) || Cols < 1 || Lines < 1 )
	{
		alert("Le tableau doit comporter au moins 1 ligne et 1 colonne.");
		return;
	}

	CloseBox("table");
	TAreaSave();

	var Tmp = "[table="+TableSum.value+"]\n";
	if( Type == 1 )
	{
		Tmp = Tmp+"[headline]\n";
		for( var i=0; i<Cols; i++ )
		{
			Tmp = Tmp+"\t[heading]"+HeadingList.options[i].text+"[/heading]\n";
		}
		Tmp = Tmp+"[/headline]\n";
	}
	for( var i=0; i<Lines; i++ )
	{
		Tmp = Tmp+"[line]\n";
		if( Type == 2 )
			Tmp = Tmp+"\t[heading]"+HeadingList.options[i].text+"[/heading]\n";

		for( var j=0; j<Cols; j++ )
		{
			Tmp = Tmp+"\t[col][/col]\n";
		}
		Tmp = Tmp+"[/line]\n";
	}

	Tmp = Tmp+"[/table]\n";

	InsCode(Tmp);
}

/* Conv */

function NoConv()
{
	var Sel = GetSel();
	IEGetSel();

	if( Sel == "" )
		return;

	TAreaSave();

	while( Sel.indexOf("\"") >= 0 )
		Sel = Sel.replace("\"","[qm]");

	InsCode(Sel);
}

function CanConv()
{
	var Sel = GetSel();
	IEGetSel();

	if( Sel == "" )
		return;

	TAreaSave();

	while( Sel.indexOf("[qm]") >= 0 )
		Sel = Sel.replace("[qm]","\"");

	InsCode(Sel);
}
