function stringBuilder(value)
{
	this.sb = [];
	this.append(value);
}

function stringBuilder$append(value)
{
	if (value)
		this.sb.push(value);
}

function stringBuilder$clear()
{
	this.sb.length = 0;
}

function stringBuilder$toString(str)
{
	return (str) ? this.sb.join(str) : this.sb.join('');
}

stringBuilder.prototype = {
	append: stringBuilder$append,
	clear: stringBuilder$clear,
	toString: stringBuilder$toString
}

String.format = function()
{
	if (arguments.length == 0)
		return null;
	var str = arguments[0];
	for (var i = 1; i < arguments.length; i++)
	{
		var re = new RegExp('\\{' + (i - 1) + '\\}', 'gm');
		str = str.replace(re, arguments[i]);
	}
	return str;
}

function createNewsMenu(jsonData)
{
	/*
		var jsonData = {'data':[
			{'date':'31-01-2008','id':1,'text':'hej'},
			{'date':'31-02-2008','id':2,'text':'med'},
			{'date':'31-04-2008','id':3,'text':'dig'}
		]};
	*/
	var max = 10; // default: 10
	var sb = new stringBuilder();

	for (var i = 0; i < jsonData.data.length; i++)
	{
		sb.append('<table class="wbEIT news" style="margin-left: 0px" cellspacing="0" cellpadding="0" width="229" border="0">');
		sb.append(	'<tr>');
		sb.append(		'<td valign="top" width="13" rowspan="2"><img hspace="0" src="/grfx/news/newsicon.gif" vspace="2" border="0"><img height="1" src="/grfx/t.gif" width="1"></td>');
		sb.append(		'<td class="date" width="204"><font class="greyText">' + jsonData.data[i].date + '</font></td>');
		sb.append(		'<td valign="bottom" width="13" rowspan="2"><img height="1" src="/grfx/t.gif" width="1"><img hspace="0" src="/grfx/news/link_pil_off.gif" vspace="2" border="0"><br /></td>');
		sb.append(	'</tr>');
		sb.append(	'<tr><td width="204"><font color="#808000"><a href="javascript:__get_page(' + jsonData.data[i].id + ')">' + jsonData.data[i].text + '</a></font></td></tr>');
		sb.append(	'<tr><td width="230" colspan="3"><img height="3" src="/grfx/t.gif" width="1"></td></tr>');
		sb.append(	'<tr><td width="230" background="/grfx/news/stiplet.gif" colspan="3"><img height="1" src="/grfx/t.gif" width="1"></td></tr>');
		sb.append(	'<tr><td width="230" colspan="3"><img height="3" src="/grfx/t.gif" width="1"></td></tr>');
		sb.append('</table>\n');
		if (i == (max - 1))
			break;
	}

	return sb.toString();
}

function createPartners(jsonData)
{
	/*
		var jsonData = {'data':[
			{
				'img'       : '',
				'header'    : '',
				'text'      : '',
				'alterText' : '',
				'linkName'  : '',
				'linkUrl'   : ''
			}
		]};
	*/
	jsonData.data.sort(sortByHeader);
	var sb = new stringBuilder();

	for (var i = 0; i < jsonData.data.length; i++)
	{
		sb.append('<table cellspacing="0" cellpadding="0" width="571" border="0">');
		sb.append(	'<tr>');
		sb.append(		'<td style="border-right: #999999 1px solid; border-top: #999999 1px solid; border-left: #999999 1px solid; border-bottom: #999999 1px solid" rowspan="2"><img src="' + jsonData.data[i].img + '" alt="" border="0"></td>');
		sb.append(		'<td style="background-color: #ebe9d4; padding: 5px" valign="top" width="100%" colspan="2"><b>' + jsonData.data[i].header + '</b><br />' + jsonData.data[i].text + '</td>');
		sb.append(	'</tr>');
		sb.append(	'<tr>');
		sb.append(		'<td style="background-color: #ebe9d4; padding: 5px" valign="bottom"><span class="greyText">' + jsonData.data[i].alterText + '</span></td>');
		sb.append(		'<td style="background-color: #ebe9d4; padding: 5px" valign="bottom" align="right">&gt; <a href="' + jsonData.data[i].linkUrl + '" target="_blank">' + jsonData.data[i].linkName + '</a></td>');
		sb.append(	'</tr>');
		sb.append('</table>');
		sb.append('<br /><br />');
	}

	return sb.toString();
}

function createReferences(jsonData)
{
	/*
		var jsonData = {'data':[
			{
				'img'       : '',
				'header'    : '',
				'text'      : '',
				'alterText' : '',
				'linkName'  : '',
				'linkUrl'   : ''
			}
		]};
	*/
	jsonData.data.sort(sortByHeader);
	var sb = new stringBuilder();

	for (var i = 0; i < jsonData.data.length; i++)
	{
		sb.append('<table cellspacing="0" cellpadding="0" width="571" border="0">');
		sb.append(	'<tr>');
		sb.append(		'<td style="border-right: #999999 1px solid; border-top: #999999 1px solid; border-left: #999999 1px solid; border-bottom: #999999 1px solid" rowspan="2"><img src="' + jsonData.data[i].img + '" alt="" border="0"></td>');
		sb.append(		'<td style="background-color: #ebe9d4; padding: 5px" valign="top" width="100%" colspan="2"><b>' + jsonData.data[i].header + '</b><br />' + jsonData.data[i].text + '</td>');
		sb.append(	'</tr>');
		sb.append(	'<tr>');
		sb.append(		'<td style="background-color: #ebe9d4; padding: 5px" valign="bottom"><span class="greyText">' + jsonData.data[i].alterText + '</span></td>');
		sb.append(		'<td style="background-color: #ebe9d4; padding: 5px" valign="bottom" align="right">&gt; <a href="' + jsonData.data[i].linkUrl + '" target="_blank">' + jsonData.data[i].linkName + '</a></td>');
		sb.append(	'</tr>');
		sb.append('</table>');
		sb.append('<br /><br />');
	}

	return sb.toString();
}

function createPresses(jsonData)
{
	/*
		var jsonData = {'data':[
			{
				'img'       : '',
				'dateTime'  : '',
				'header'    : '',
				'text'      : '',
				'leftLink'  : '',
				'rightLink' : '',
			}
		]};
	*/
	var t = '<table cellspacing="0" cellpadding="0" width="571" border="0">' +
				'<tr>' +
					'<td align="center" valign="middle" rowspan="2" style="border: #999999 1px solid;">{0}</td>' +
					//'<td rowspan="2"><img src="/wbPublicPics/t.gif" width="4" height="1" alt="" /></td>' +
					'<td valign="top" colspan="2" width="100%" style="background-color: #ebe9d4; padding: 5px;">{1}</td>' +
				'</tr>' +
				'<tr>' +
					//'<td valign="bottom" width="100%" style="background-color: #ebe9d4; padding: 5px; border-bottom: #d1cfbc 1px solid;">{2}</td>' +
					//'<td valign="bottom" nowrap="nowrap" style="background-color: #ebe9d4; padding: 5px; border-bottom: #d1cfbc 1px solid;">{3}</td>' +
					'<td valign="bottom" width="100%" style="background-color: #ebe9d4; padding: 5px;">{2}</td>' +
					'<td valign="bottom" nowrap="nowrap" style="background-color: #ebe9d4; padding: 5px;">{3}</td>' +
				'</tr>' +
			'</table><br />';
	var sb = new stringBuilder();

	for (var i = 0; i < jsonData.data.length; i++)
	{
		var m = '<img src="' + jsonData.data[i].img + '" alt="" border="0" />';
		var h = '<span class="greyText">' + jsonData.data[i].dateTime + '</span><br />' +
				'<b>' + jsonData.data[i].header + '</b>' + ((jsonData.data[i].text) ? '<br />' + jsonData.data[i].text : '');
		var l = (jsonData.data[i].leftLink) ? jsonData.data[i].leftLink : '&nbsp;';
		var r = (jsonData.data[i].rightLink) ? jsonData.data[i].rightLink : '&nbsp;';
		sb.append(String.format(t, m, h, l, r));
	}

	return sb.toString();
}

function createDownloads(jsonData)
{
	/*
		var jsonData = {'data':[
			{
				'header'    : '',
				'text'      : '',
				'alterText' : '',
				'linkFile'  : ''
			}
		]};
	*/
	var sb = new stringBuilder();

	for (var i = 0; i < jsonData.data.length; i++)
	{
		sb.append('<table cellspacing="0" cellpadding="0" width="321" border="0">');
		sb.append(	'<tr>');
		sb.append(		'<td style="border-right: #999999 1px solid; border-top: #999999 1px solid; border-left: #999999 1px solid; border-bottom: #999999 1px solid" rowspan="2"><img src="/wbPublicPics/Downloads/PDFicon_large.gif" alt="" border="0" /></td>');
		sb.append(		'<td style="background-color: #ebe9d4; padding: 5px" valign="top" width="100%" colspan="2">' + jsonData.data[i].header + '<br /><span style="font-size: 12px;"><b>' + jsonData.data[i].text + '</b></span></td>');
		sb.append(	'</tr>');
		sb.append(	'<tr>');
		sb.append(		'<td style="background-color: #ebe9d4; padding: 5px" valign="bottom"><span class="greyText">' + jsonData.data[i].alterText + '</span></td>');
		sb.append(		'<td style="background-color: #ebe9d4; padding: 5px" valign="bottom" align="right">&gt; <a href="' + jsonData.data[i].linkFile + '" target="_blank">Download PDF</a>&nbsp;<img src="/wbPublicPics/Misc/icon_pdf_small.gif" alt="" border="0" /></td>');
		sb.append(	'</tr>');
		sb.append('</table>');
		sb.append('<br /><br />');
	}

	return sb.toString();
}

function sortByHeader(a, b)
{
	var x = a.header.toLowerCase();
	var y = b.header.toLowerCase();
	return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}