
function charA()
{
	document.write('&#64;');
}

/***********************************************************************
	Show album
 ***********************************************************************/

var imgArray = new Array();	
var date = new Date();
var index;
var pointer;
var pImg;

function addImage(img_x, img_y, img_url, th_url, full_url, text)
{
	imgArray.push(new Array(img_x, img_y, img_url, th_url, full_url, text));
}

function showThumbs()
{
	document.getElementById('album-thumb').style.display = 'block';
	document.getElementById('album-image').style.display = 'none';
	thumbnavUpdate();
}

function nextThumb()
{
	if( index*9 < imgArray.length )
	{
		pointer[index % 3].style.display = 'none';		
		pointer[(index+1) % 3].style.display = 'block';		
		pointer[(index-1) % 3].innerHTML = htmltext(index+2);
		index++;
		thumbnavUpdate();
	}
}

function prevThumb()
{
	if( index > 1 )
	{
		pointer[index % 3].style.display = 'none';		
		pointer[(index-1) % 3].style.display = 'block';		
		pointer[(index+1) % 3].innerHTML = htmltext(index-2);
		index--;		
		thumbnavUpdate();
	}
}

function changeThumbs(idx)
{
	index = ((idx-1)*9 > imgArray.length || idx < 1) ? 1 : idx;

	pointer[0].innerHTML = htmltext((index-1) % 3);
	pointer[1].innerHTML = htmltext((index+0) % 3);
	pointer[2].innerHTML = htmltext((index+1) % 3);
	
	pointer[1].style.display = 'block';
	thumbnavUpdate();
}

function htmltext(idx)
{
	var t = '';
	
	if(idx > 0)
	{
		t = '<table id="thumbtable" cellpadding="0" cellspacing="0" border="0"><tr>';
		for(var i=0; i < 9 && (idx-1)*9 + i < imgArray.length; i++)
		{
			t += '<td><img onclick="showImage('+((idx-1)*9 + i)+');" src="' + imgArray[(idx-1)*9 + i][3] + '" /></td>'

			if(i%3 == 2 && i < 8)
				t += '</tr><tr>';
		}
		t += '</tr></table>';
	}
	return t;
}

function thumbnavUpdate()
{
	var ll = null, rl = null, max = index*9;
	
	if(index>1) ll = function(){prevThumb();};
	if(index*9 < imgArray.length) { rl = function(){nextThumb();}; } else { max = imgArray.length; }

	navUpdate(ll, 'Visar bilder ' + (index*9 - 8) + '-' + max + ' av ' + imgArray.length, rl);	
}

function navUpdate(leftlink, text, rightlink)
{
	var pp = document.getElementById('album-nav-prev');
	var pt = document.getElementById('album-nav-text');
	var pn = document.getElementById('album-nav-next');	

	pp.onclick=leftlink;
	pn.onclick=rightlink;

	pp.style.visibility = leftlink  == null ? "hidden" : "visible";
	pn.style.visibility = rightlink == null ? "hidden" : "visible";

	pt.innerHTML = text;
}

function changeImage(idx,i)
{
	for(var j = -1; j < 2; j++)
	{
		if(0 <= idx+j && idx+j < imgArray.length)
		{
			pImg[(idx+j) % 3].style.display = j == 0 ? 'block':'none';
			if(i == j)
			{
				pImg[(idx+i) % 3].innerHTML = '<img class="album-image" onclick="showThumbs();" src="'+imgArray[idx+i][2]+'" alt="" width="'+imgArray[idx+i][0]+'" height="'+imgArray[idx+i][1]+'" />';
			}			
		}
	}
	updateImage(idx);
}

function showImage(idx)
{
	document.getElementById('album-thumb').style.display = 'none';
	document.getElementById('album-image').style.display = 'block';

	pImg[0].style.display = pImg[1].style.display = pImg[2].style.display = 'none';

	for(var i = -1; i < 2; i++)
	{
		if(0 <= idx+i && idx+i < imgArray.length)
		{
			pImg[(idx+i) % 3].style.display = i == 0 ? 'block':'none';
			pImg[(idx+i) % 3].innerHTML = '<img class="album-image" onclick="showThumbs();" src="'+imgArray[idx+i][2]+'" alt="" width="'+imgArray[idx+i][0]+'" height="'+imgArray[idx+i][1]+'" />';			
		}
	}
	updateImage(idx);
}

function updateImage(idx)
{
	if(0 <= idx && idx < imgArray.length)
	{
		// Update thumbs if nessecary
		var newIndex = Math.floor(idx/9) + 1;
		if(index < newIndex)		nextThumb();
		else if(index > newIndex)	prevThumb();

		var p, ll=null, rl=null;

		// Update navigation table
		if(idx > 0) ll = function(){changeImage(idx-1,-1);};
		if(idx < imgArray.length - 1) rl = function(){changeImage(idx+1,1);};
		navUpdate(ll, 'Visar bild ' + (idx+1) + ' av ' + imgArray.length, rl);

		// update comment
		p = document.getElementById('album-image-comment');
		if(imgArray[idx][5].length > 0)
		{
			p.style.display = 'block';
			p.innerHTML = imgArray[idx][5];
		} else {
			p.style.display = 'none';
			p.innerHTML = '';
		}

		// update fullsize link
		p = document.getElementById('album-image-fullsize');
		if(imgArray[idx][4] != null)
		{
			p.style.display = 'inline';
			p.href = imgArray[idx][4];
		} else {
			p.style.display = 'none';
			p.href = null;
		}
	}
}

function initAlbum()
{
	pointer = new Array
	(
		document.getElementById('album-thumb-d1'),
		document.getElementById('album-thumb-d2'),
		document.getElementById('album-thumb-d3')
	);

	pImg = new Array
	(
		document.getElementById('album-image-d1'),
		document.getElementById('album-image-d2'),
		document.getElementById('album-image-d3')
	);

	// Generate thumb table
	if(imgArray.length > 0)
	{
		changeThumbs(1);
		showThumbs();
	}
	else navUpdate(null, 'Detta album innehåller inga bilder.', null)
}

/***********************************************************************
	Import image
 ***********************************************************************/

var xmlHttp;
var files;
var processing;
var pageID;
var dateObject = new Date();

function importImage_changeColumn(radio,c)
{
	if( c >= 4 && c <= 7)
	{
		var t = document.getElementById('importImage-table');
	
		for(var i = 1; i < t.rows.length - 1; i++)
		{
			var rb = t.rows[i].cells[c].firstChild
	
			if(rb.disabled == false)
			{
				rb.checked = radio.checked;
			}
		}

		if( c > 4 )
			radio.checked = false;

		radio.blur();
	}
}

function importImages()
{
	var t = document.getElementById('importImage-table');
	files = new Array();

	for(var i = t.rows.length - 2; i > 0 ; i--)
	{
		// 7 ignore, 4 fullsize, 5 import, 6 delete, 0 filename

		if(t.rows[i].cells[7].firstChild.checked == false)
		{
			files.push(Array(
				i, // rownumber
				t.rows[i].cells[0].innerHTML, // filename
				t.rows[i].cells[4].firstChild.checked, // fullsize
				t.rows[i].cells[5].firstChild.checked // import
			));
		}
	}
	pageID = document.getElementById('pid').value;
	
	var button = document.getElementById('importImage-submit');
	button.blur();
	button.disabled = true;	

	document.getElementById('importImage-cancel').style.visibility = 'hidden';	

	importImage_setNextWait();
	importImage();
}


function importImage()
{
	xmlHttp = GetXmlHttpObject();
	if (xmlHttp != null && files.length > 0)
	{
		processing = files.pop();
		
		var url = 'http://www.lajvverkstaden.se/cms/action/ajax/importImg.php';
		url += '?pid=' + pageID;
		url += '&image=' + processing[1];
		url += '&fullsize=' + (processing[2] ? 1 : 0);
		url += '&do=' + (processing[3] ? 'import' : 'delete');
		url += '&t=' + dateObject.getTime();
		
		xmlHttp.onreadystatechange = stateChanged;
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
	else
	{
		document.getElementById('importImage-submit').disabled = false;
		document.getElementById('importImage-cancel').style.visibility = 'visible';
		
		if(files.length == 0) alert('Importeringen är klar!');
	}
}

function stateChanged()
{
	if (xmlHttp.readyState == 4)
	{

		var t = document.getElementById('importImage-table');		
		var tr = t.rows[processing[0]];
		
		if(xmlHttp.responseText == '1')
		{
			// success, disable
			for(var i=4; i < 8; i++)
			{
				tr.cells[i].firstChild.checked  = false;
				tr.cells[i].firstChild.disabled = true;
			}
			tr.cells[7].firstChild.checked  = true;
			tr.cells[0].style.backgroundImage = "url('img/import-success.gif')";
		}
		else
		{
			tr.cells[0].style.backgroundImage = "url('img/import-fail.gif')";;
		}

		// Pause, and import next image
		importImage_setNextWait();
		setTimeout('importImage()', files.length == 0 ? 1 : (processing[3] ? 10000 : 1000));
	}
}

function importImage_setNextWait()
{
	if(files.length > 0)
	{
		var t = document.getElementById('importImage-table');		
		var tr = t.rows[files[files.length-1][0]];
		tr.cells[0].style.background = "transparent url('img/import-loading.gif') no-repeat scroll center right";
	}
}

function GetXmlHttpObject()
{
	var xmlHttp = null;
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

/***********************************************************************
	Edit user
 ***********************************************************************/

function userChanged()
{
	var p = new Array();
	
	p.push( document.getElementById('uname'));
	p.push( document.getElementById('uemail'));
	p.push( document.getElementById('uadmin'));
	p.push( document.getElementById('usubmit'));
	p.push( document.getElementById('ureset'));

	if(	p[0].value != p[0].defaultValue ||
		p[1].value != p[1].defaultValue ||
		p[2].checked != p[2].defaultChecked )
	{
		p[3].disabled = false;
		p[4].disabled  = false;
	} else {
		p[3].disabled = true;
		p[4].disabled  = true;
	}
}

/***********************************************************************
	Edit page
 ***********************************************************************/

var disabledOption = new Array();

function selectNextLevel(sel, perm)
{
	if( sel.selectedIndex > 0)
	{
		var disOpt    = sel.options[sel.selectedIndex];
		var disOptIdx = disabledOption.length;
		
		// Check if element is stored in disabledOption-array
		for(var i=0; i < disabledOption.length; i++)
		{
			if(disabledOption[i] == disOpt)
			{
				disOptIdx = i;
				break;
			}
		}

		if(disOpt.disabled == false)
		{
			// get index
			var i = sel.parentNode.parentNode.rowIndex;
			
			// get table
			var t = sel.parentNode.parentNode.parentNode;
		
			var tr  = t.insertRow(i+1);
			var tdl = tr.insertCell(0);
			var tdr = tr.insertCell(1);
		
			tdl.className = 'left';
			tdr.className = 'right';
			tdl.style.fontWeight = 'normal';
		
			tdl.innerHTML = sel.options[sel.selectedIndex].text;
			
			var tS = 'selected="selected" ';
			
			var tmp = '<select name="'+sel.name+'_'+disOpt.value+'" class="text" onchange="selectCheckDelete(this,'+disOptIdx+');">';
			tmp += '<option value="delete">Ta bort</option>';
			tmp += '<option '+(perm == null    ? tS : '')+'value="choose">Välj åtkomst</option>';
			tmp += '<option '+(perm == 'read'  ? tS : '')+'value="read">Läs</option>';
			tmp += '<option '+(perm == 'write' ? tS : '')+'value="write">Skriv</option>';
			tmp += '<option '+(perm == 'edit'  ? tS : '')+'value="edit">Redigering</option></select>';
			tdr.innerHTML = tmp;

			// disable option and save pointer
			disOpt.disabled = true;
			disabledOption[disOptIdx] = disOpt;
		}

		// reset calling select
		sel.options[0].selected = true;
	}
}

function selectCheckDelete(sel, doIdx)
{
	if(sel.selectedIndex == 0)
	{
		disabledOption[doIdx].disabled = false;
		
		// delete row from table
		sel.parentNode.parentNode.parentNode.deleteRow
			(sel.parentNode.parentNode.rowIndex);
	}
}

function addSelectNextLevel(selectName, value, perm)
{
	var sa = document.getElementsByTagName("select");

	//find correct select
	for(var i=0; i < sa.length; i++)
	{
		if(sa[i].name == selectName)
		{
			// find correct option
			for(var j=0; j < sa[i].options.length; j++)
			{
				if( sa[i].options[j].value == value )
				{
					sa[i].options[j].selected = true;
					selectNextLevel(sa[i], perm);
					break;
				}
			}
			break;
		}
	}
}

function confirmDeletePage(url)
{
	if (confirm("Vill du verkligen RADERA sidan?") == true)
	{
	    document.location = url;
	}
}

/***********************************************************************
	Edit album
 ***********************************************************************/

function editAlbum_moveUp(i)
{
	editAlbum_switchImage(i-1,i);
}

function editAlbum_moveDown(i)
{
	editAlbum_switchImage(i,i+1);	
}


function editAlbum_switchImage(i, j)
{
	objI = new Array(
		document.getElementById('pos'+i+'image'),
		document.getElementById('pos'+i+'fullsize'),
		document.getElementById('pos'+i+'delete'),
		document.getElementById('pos'+i+'id'),
		document.getElementById('pos'+i+'text')
	);

	objJ = new Array(
		document.getElementById('pos'+j+'image'),
		document.getElementById('pos'+j+'fullsize'),
		document.getElementById('pos'+j+'delete'),
		document.getElementById('pos'+j+'id'),
		document.getElementById('pos'+j+'text')
	);	
	
	if(objI[0] != null && objJ[0] != null)
	{
		var tmp;

		// switch image	
		tmp			= objI[0].src;
		objI[0].src = objJ[0].src;
		objJ[0].src = tmp;

		// switch ID, text
		tmp			  = objI[3].value;
		objI[3].value = objJ[3].value;
		objJ[3].value = tmp;

		tmp			  = objI[4].value;
		objI[4].value = objJ[4].value;
		objJ[4].value = tmp;

		// switch checkboxes
		for(var x=1; x < 3; x++)
		{
			tmp				= objI[x].checked;
			objI[x].checked = objJ[x].checked;
			objJ[x].checked = tmp;
	
			tmp				 = objI[x].disabled;
			objI[x].disabled = objJ[x].disabled;
			objJ[x].disabled = tmp;
		}
	}
}

/***********************************************************************
	Change password
 ***********************************************************************/

function checkPasswordForm(f)
{
	var op  = f.elements[0].value;
	var np1 = f.elements[1].value;
	var np2 = f.elements[2].value;
	
	if(np1 != np2)
	{
		alert('De nya lösenorden stämmer inte överens.');
		return false;
	}
	if(np1.length > 30 || np1.length < 4)
	{
		alert('Det nya lösenordet måste vara mellan 4 och 30 tecken långt.');
		return false;
	}
	if(np1 == op)
	{
		alert('Det nya lösenordet måste skilja sig från det gamla.');
		return false;
	}
	
	return true;
}

/***********************************************************************
	Calendar functions
 ***********************************************************************/

var months = new Array('Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', 'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December');
var today  = new Date();
var calendarArray = new Array();

function addCalendar(pid,tableId,descDivId)
{
	calendarArray[pid] = new Array(
		new Array(),
		tableId,
		descDivId,
		new Date(cutHours(today))
	);
}

function addCalEvent(pid,id,start,stop,color,title,text)
{
	if(calendarArray[pid] != null) calendarArray[pid][0].push(new Array(id,title,text,start,stop,color));
}

function initCalendars()
{
	today.setTime(cutHours(today));
	for(x in calendarArray)
	{
		calendarArray[x][1] = document.getElementById(calendarArray[x][1]);
		calendarArray[x][2] = document.getElementById(calendarArray[x][2]);
		updateCalendar(x);
	}
}

function updateCalendar(pid)
{
	var eventArray	= calendarArray[pid][0];
	var tbl			= calendarArray[pid][1];
	var descDiv		= calendarArray[pid][2];
	var calDate		= calendarArray[pid][3];

	var d = new Date(calDate);

	// Set title	
	tbl.rows[0].cells[1].innerHTML = months[d.getMonth()] + ' ' + d.getFullYear();

	var thisMonth = calDate.getMonth();
	var i, j, e, cn,t;
	
	// Get first day of first week in this month
	d.setDate(1);
	d.setTime(d.getTime() - ((d.getDay()+6)%7) * 864e5);

	for(i = 2; i < 8; i++) // rows
	{
		tbl.rows[i].cells[0].innerHTML = d.getWeek();
		for(j = 1; j < 8; j++) // cols
		{
			var cell = tbl.rows[i].cells[j];
			cell.onmouseover = cell.onmouseout = null;

			if(thisMonth == d.getMonth())
			{
				cell.innerHTML = d.getDate();
				
				// search for events..
				e = getEvents(d.getTime(),pid);
				
				if(e.length == 0)
				{
					cn = 'thisMonth';
				}
				else
				{
					cell.onmouseover = function(){displayInfo(this,pid);};
					cell.onmouseout  = function(){mouseOut(pid);};

					if(e.length == 1)
					{
						cn = 'event';
						
						var col = eventArray[e[0]][5];
						if(d.getTime() >= today.getTime() &&
							(col == '1' || col == '2' || col == '3'))
						{
							cn += col;
						}						
					}
					else cn = 'events';
				}
				
				if(d.getTime() < today.getTime()) cn += 'Old';
				cell.className = cn;
			}
			else
			{
				cell.innerHTML = '';
				cell.className = 'otherMonth';
			}

			d.setTime(d.getTime() + 864e5 + 72e5); // Step one day + 2hours
			d.setHours(0);
			d.setMinutes(0);
			d.setSeconds(0);
			d.setMilliseconds(0);
		}
	}

	// Activate next, prev links	
	tbl.rows[0].cells[0].onclick = function(){stepMonth(0,pid)};
	tbl.rows[0].cells[2].onclick = function(){stepMonth(1,pid)};
}

function getEvents(dst,pid)
{
	var eventArray = calendarArray[pid][0];
	var	rtn = new Array();

	for(var i = 0; i < eventArray.length; i++)
	{
		st  = eventArray[i][3];	// event start
		sp  = eventArray[i][4];	// event stop
		dsp = dst + 864e5 - 1;	// day stop

		if((st >= dst && st <= dsp) || (sp >= dst && sp <= dsp) || (st < dst && sp > dsp))
		{
			rtn.push(i);
		}
	}

	return rtn;
}

function mouseOut(pid)
{
	calendarArray[pid][2].style.display  = 'none';
}

function displayInfo(td,pid)
{
	var eventArray	= calendarArray[pid][0];
	var tbl			= calendarArray[pid][1];
	var descDiv		= calendarArray[pid][2];
	var calDate		= calendarArray[pid][3];

	var d = new Date(calDate);
	d.setDate(td.innerHTML)
	var e = getEvents(d.getTime(),pid);
	var dateText, st, sp, text, tmp = '';

	for(var i=0; i < e.length; i++)
	{			
		dateText = dateString(eventArray[e[i]][3]);
		
		if(eventArray[e[i]][3] != eventArray[e[i]][4])
		{
			sp = dateString(eventArray[e[i]][4]);

			if(cutHours(new Date(eventArray[e[i]][3])) == cutHours(new Date(eventArray[e[i]][4])))
			{
				sp = sp.substr(sp.length-5,sp.length);
				dateText += '-'+sp
			}
			else
			{
				dateText += ' till '+sp
			}
		}
		
		text = eventArray[e[i]][2].replace(/\n/g,'<br />');

		tmp += '<p class="title">'+eventArray[e[i]][1]+'</p>';
		tmp += '<p class="date">'+dateText+'</p>';
		tmp += '<p>'+text+'</p>';
	}
	
	if(e.length > 0)
	{
		var x=0,y=0;
		while(td != null)
		{
			x += td.offsetLeft;
			y += td.offsetTop;
			td = td.offsetParent;
		}

		descDiv.style.left		= (x-316)+'px';
		descDiv.style.top		= (y+16)+'px';
		descDiv.innerHTML		= tmp;
		descDiv.style.display	= 'block';	
	}
}

function stepMonth(forward,pid)
{
	var calDate = calendarArray[pid][3];
	
	var y = calDate.getFullYear();
	var m = calDate.getMonth();
		
	m += (forward == 1 ? 1 : -1);
	
	if(m == 12)
	{
		m = 0;
		y++;
	}
	else if(m == -1)
	{
		m == 11;
		y--;
	}

	calDate.setDate(1);
	calDate.setMonth(m);
	calDate.setFullYear(y);

	updateCalendar(pid);
}

Date.prototype.getWeek = function()
{
	// ISO 8601
	var y = this.getFullYear();
	var m = this.getMonth();
	var d = this.getDate();
	var ms1d = 864e5, ms7d = 7*ms1d;
	var DC3 = Date.UTC(y, m, d+3)/ms1d;
	var AWN = Math.floor(DC3/7);
	var Wyr = new Date(AWN*ms7d).getUTCFullYear();
	return AWN - Math.floor(Date.UTC(Wyr-1,11,31)/ms7d);
}

function cutHours(date)
{
	var d = new Date(date.getTime());
	d.setMilliseconds(0);
	d.setSeconds(0);
	d.setMinutes(0);
	d.setHours(0);
	
	return d.getTime();
}

function dateString(timestamp)
{
	var d = new Date();	
	d.setTime(timestamp);
	
	var date = new Array(
		'0'+(d.getMonth() + 1),
		'0'+d.getDate(),
		'0'+d.getHours(),
		'0'+d.getMinutes()
	);

	for(var i = 0; i < date.length; i++)
	  	date[i] = date[i].substr(date[i].length-2,date[i].length);

	return d.getFullYear()+'-'+date[0]+'-'+date[1]+' '+date[2]+':'+date[3];
}

/***********************************************************************
	Send email function
 ***********************************************************************/

function email_select_all(box,table,c)
{
	var t = document.getElementById(table);
	
	for(var i = 1; i < t.rows.length - 1; i++)
	{
		var rb = t.rows[i].cells[c].firstChild

		if(rb.disabled == false)
		{
			rb.checked = box.checked;
		}
	}

	box.blur();
}

/***********************************************************************
	Login form
 ***********************************************************************/

function login_submit()
{
	var f = document.getElementById('form_login');
	
	return (f.elements[0].value != '' && f.elements[1].value != '');
}

function login_link()
{
	if( login_submit() )
	{
		document.getElementById('form_login').submit();
	}
}

/***********************************************************************
	Page nav
 ***********************************************************************/

function pageNav(ref,target,input)
{
	
	var x=0,y=0;
	while(ref != null)
	{
		x  += ref.offsetLeft;
		y  += ref.offsetTop;
		ref = ref.offsetParent;
	}

	var p = document.getElementById(target);

	if(p.style.display != 'block')
	{
		p.style.left	= (x-7)+'px';
		p.style.top		= (y-23)+'px';
		p.style.display	= 'block';

		document.getElementById(input).value = '';
		document.getElementById(input).focus();
	}
	else p.style.display = 'none';
}

function pageChange(input,url,max)
{
	var step = document.getElementById(input).value;
	if(0 < step && step <= max)
	{
		document.location.href=url+(step-1);
	}
	return false;
}

/***********************************************************************
	bbCode Editor
 ***********************************************************************/

function addTag(t)
{
	var ta = document.getElementById('textarea');

	if( document.selection ) // IE Support
	{
		// The current selection
		var range = document.selection.createRange();

		// If user has selected something outeside
		// the textarea	we must select it.	
		if(range.parentElement() != ta)
		{
			ta.focus();
			range = document.selection.createRange();
		}
		
		range.text = toggleTag(range.text,t);
		ta.focus();		
	}
	else if( window.getSelection ) // Firefox
	{
		var txt_before = ta.value.substring(0,ta.selectionStart)
		var txt_select = ta.value.substring(ta.selectionStart,ta.selectionEnd); 	
		var txt_after  = ta.value.substring(ta.selectionEnd,ta.value.length)

		text_select = toggleTag(txt_select,t);

		var p1 = ta.selectionStart
		var p2 = p1 + text_select.length;
			
		ta.value = txt_before + text_select + txt_after;

		ta.setSelectionRange(p1,p2);
		ta.focus();
	}
	else // non compatible
	{
		ta.value += '['+t+'][/'+t+']';
	}
}

function toggleTag(text, t)
{
	re = eval('/\\[\\/?'+t+'\\]/gi'); 

	if(text.match(re))
	{
		return text.replace(re,'');
	}
	else return '['+t+']'+text+'[/'+t+']';
}