	var counter = new Object();
	var timeoutStack = new Object();
	var viewMode = "Alle Spalten";

	var widgetPositionBlvView = {
		0: 'OWS_LCOLUMN_BFV_VIEW',
		1: 'OWS_RCOLUMN_BFV_VIEW'
	}
	var widgetPositionPview = {
		0: 'OWS_LCOLUMN_PVIEW',
		1: 'OWS_RCOLUMN_PVIEW'
	}

	var logger = {
		level: "debug",
		debug: function(msg) {	if(window.console && this.level.match(/(debug)/)) { console.debug(msg); } },
		log: function(msg) {	if(window.console && this.level.match(/(debug|log)/)) { console.log(msg); } },
		info: function(msg) {	if(window.console && this.level.match(/(debug|log|info)/)) { console.info(msg); } },
		warn: function(msg) {	if(window.console && this.level.match(/(debug|log|info|warn)/)) { console.warn(msg); } },
		error: function(msg) {	if(window.console && this.level.match(/(debug|log|info|warn|error)/)) { console.error(msg); } },
		dump: function(obj_name, obj)  {	if(window.console && this.level.match(/(debug)/)) { console.log("Dumping object " + obj_name); console.dir(obj); } }
	}

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	function bfv_show(view, rankingTableParameter) {
		try {
			var widgetCounter = 0;
			for(team in myTeam) {
				bfv_loadWidget(team, myTeam[team].vereinsNr, myTeam[team].ligaNr, myTeam[team].ligaName, widgetCounter, view);
				widgetCounter++;
			}
			if(view == 'NEXT_MATCHES') {
				bfv_createNextMatchesTable(view);
			} else if (view == 'RANKING') {
				bfv_createRankingOverviewTable(view, rankingTableParameter);
			} else if (view == 'RESULTS') {
				bfv_createResultsOverviewTable(view);
			}
		} catch(e) {
			// do nothing here;
			console.log('ERROR: ' + e);
		}
	}

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	function bfv_setViewMode(mode) {
		viewMode = mode;
	}

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	function bfv_getViewMode() {
		return viewMode;
	}

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	function bfv_setFontSize(size) {
		fontSize = size ;
	}

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	function bfv_getFontSize(mode) {
		return fontSize;
	}

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	function bfv_allWidgetsLoaded() {
		var teamCounter = 0;
		for(team in myTeam) {
			teamCounter++;
			if(!myTeam[team].bfvWidgetLoaded) {
				return false;
			}
		}
		if(teamCounter > 0) {
			return true;
		} else {
			return true;
		}
	}

	

	var rankingTableParameter;
	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	function bfv_createRankingOverviewTable(view, rtp) {
		//if(window.console) { console.log('called 	function bfv_createRankingOverviewTable(view) ...'); }
		//if(window.console) { console.dir(rankingTableParameter) }
		var tableHeader = [
				{	label: "Rg.",	tooltip: "Rang"	}, 
				{	label: "Mannschaft", tooltip: "Mannschaft" }, 
				{ label: "Sp.", tooltip: "Spiele" }, 
				{ label: "S", tooltip: "Siege" }, 
				{ label: "U", tooltip: "Unentschieden" }, 
				{ label: "N",tooltip: "Niederlagen" }, 
				{ label: "Tore", tooltip: "Tore" }, 
				{ label: "Diff", tooltip: "Tordifferenz" }, 
				{ label: "Pkt", tooltip: "Punkte" }
			]
	
		if(!rankingTableParameter) {
			rankingTableParameter = rtp;
		}

		if(!bfv_allWidgetsLoaded()) {
			//logger.debug('Setting timeout for calling bfv_createRankingOverviewTable!');
			//console.log('dumping rankingTableParameter: ');
			//console.dir(rankingTableParameter);
			bfv_activeTimeout = window.setTimeout("bfv_createRankingOverviewTable('" + view + "')", 200);
			return;
		}
		//logger.debug('Clearing timeout for calling bfv_createRankingOverviewTable!');
		window.clearTimeout(bfv_activeTimeout);
		//if(window.console && console.dir) { console.dir(myTeam) ; }		
		for(team in myTeam) {
			var widgetDiv = document.getElementById(team + '_bfvView');

			var div = document.getElementById(team + '_privateView');
			if(div == null) {
				//continue;
				return;
			}
			
			div.style.width = '100%';
			div.style.height = rankingTableParameter.tableHeight + 'px';
			div.style.backgroundColor = rankingTableParameter.tableBackgroundColor;
			if(myTeam[team].ligaNameAlias == 'FILLER') {
				div.style.borderColor = 'transparent';
				div.style.backgroundColor = 'transparent';
				continue;
			}
			
			var headerDiv = document.createElement('DIV');
			headerDiv.className = 'OWS_TABLEHEADERDIV';
			headerDiv.style.backgroundColor = rankingTableParameter.tableBackgroundHeaderColor;
			var header = document.createElement('H4');
			var txt = document.createTextNode(myTeam[team].ligaNameAlias);
			header.appendChild(txt);
			headerDiv.appendChild(header);
			div.appendChild(headerDiv);

			var table = document.createElement('TABLE');
			table.id = 'team_rankingTable';
			table.className = 'widgetTableStyle OWS_RANKING';
			
			var tBody = document.createElement('tBody');
	
			// create table header
			var tr = document.createElement('TR');
	
			for(var i=0; i<tableHeader.length; i++) {
				var th = document.createElement('TH');
				th.className='bfvWidgetheadline OWS_HEADER';
				th.title=tableHeader[i].tooltip;
				var txt = document.createTextNode(tableHeader[i].label);
				th.appendChild(txt);
				tr.appendChild(th);
			}
			
			
			tBody.appendChild(tr);


			var tables = widgetDiv.getElementsByTagName('TABLE');
			//if(window.console) { console.log('tables.length: ' + tables.length); }
			for(var i=0; i<tables.length; i++) {
				//if(window.console) { console.log('i: ' + i);	}
				if(tables[i].className == 'widgetTableStyle') {
					var rows = tables[i].rows;
					for(var j=1; j<rows.length; j++) {
						var highlightRow = false;
						var tr = document.createElement('TR');
						if(j==1) {
							tr.className = 'rankingTop';
							tr.style.backgroundColor = rankingTableParameter.colorRankingTop;
						} else if (j==rows.length-1) {
							tr.className = 'rankingBottom';
							tr.style.backgroundColor = rankingTableParameter.colorRankingBottom;
						} else if(rows[j].innerHTML.match(/eigenerVerein/)) {
							highlightRow = true;
							tr.className = 'eigenerVerein';
							tr.style.backgroundColor = rankingTableParameter.colorOwnTeam;
						} else if(j %2) {
							tr.className = 'itemEvenRanking';
							tr.style.backgroundColor = rankingTableParameter.tableBackgroundRowColor;
						} else {
							tr.className = 'itemOddRanking';
							tr.style.backgroundColor = rankingTableParameter.tableBackgroundRowColor;
						}

						var cells = rows[j].cells;
						var tmpObj = new Object();
						for(var k=0; k<cells.length; k++) {
							tmpObj[parseInt(k)] = bfv_setTeamAlias(team, cells[k].innerHTML, false);
						}
							
						
						for(e in tmpObj) {
							var td = document.createElement('TD');
							td.style.fontSize = rankingTableParameter.tableFontSize;
							td.innerHTML = tmpObj[e];
							if(j %2) {
								//td.className = 'itemEven';
							} else {
								//td.className = 'itemOdd';
							}
							if(highlightRow) {
								//td.className = 'eigenerVerein';
							}
							tr.appendChild(td);
						}

						tBody.appendChild(tr);
					}
					table.appendChild(tBody);
					div.appendChild(table);
			

					var spanAry = div.getElementsByTagName('SPAN');
					for(var l=0; l<spanAry.length; l++) {
						if(spanAry[l].innerHTML.match(myTeam[team].searchPattern)) {
							var parentTR = bfv_getParentNode(spanAry[l], 'TR');
							if(!parentTR.className.match(/ranking(Top|Bottom)/)) {
								parentTR.className = 'eigenerVerein';
								parentTR.style.backgroundColor = rankingTableParameter.colorOwnTeam;
							}
							//console.log('spanAry["'+l+'"].innerHTML: ' + spanAry[l].innerHTML);
							//spanAry[l].className = 'eigenerVerein';
						}
					}

				}
			}
		}
		var pView = document.getElementById('PVIEW');

		pView.style.display = '';
		progress_bar.hideBar();
		document.getElementById('progress_bar').style.display = 'none';
	}

	function bfv_getParentNode(childNode, nodeName) {
		var parentNode = childNode.parentNode;
		if(parentNode.nodeName == nodeName) {
			return parentNode;
		} else {
			return bfv_getParentNode(parentNode, nodeName);
		}
	}


	var bfv_createResultsOverviewTable_timeoutCounter = 0;
	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	function bfv_createResultsOverviewTable(view) {
		var tableHeader = [
				{	label: "Datum",	tooltip: "Datum"	}, 
				{	label: "Heim", tooltip: "Heimmannschaft" }, 
				{	label: "Gast", tooltip: "Gastmannschaft" }, 
				{ label: "Erg.", tooltip: "Ergebnis" }
			];
		bfv_createResultsOverviewTable_timeoutCounter++;
		if(!bfv_allWidgetsLoaded()) {
			if(bfv_createResultsOverviewTable_timeoutCounter < 30) {
				//logger.debug('Setting timeout for calling bfv_createResultsOverviewTable!');
				bfv_activeTimeout = window.setTimeout("bfv_createResultsOverviewTable('" + view + "')", 500);
				return;
			} else {
				//logger.debug('Clearing timeout for calling bfv_createResultsOverviewTable!');
				window.clearTimeout(bfv_activeTimeout);
				progress_bar.hideBar();
				document.getElementById('progress_bar').style.display = 'none';
				alert('Das Laden der Daten vom BFV Sever dauert ungewoehnlich lange. Moeglicherweise sind die Daten momentan nicht verfuegbar, oder es ist ein anderer Fehler aufgetreten. Bitte versuchen Sie es zu einem spaeteren Zeitpunkt noch einmal.\n\nFalls das Problem dann immer noch bestehen sollte, bitte den Systemadministrator der Website benachrichtigen!');
				return;
			}
		}
		//logger.debug('Clearing timeout for calling bfv_createResultsOverviewTable!');
		window.clearTimeout(bfv_activeTimeout);
		var allResults = new Array();
		var allResultsObj = new Object();
		var pView = document.getElementById('PVIEW');
		if(pView == null) {
			//continue;
			return;
		}
		pView.style.width = '100%';

		var div = document.createElement('DIV');
		div.className = 'OWS_RESULTS_OVERVIEW';

		var headerDiv = document.createElement('DIV');
		headerDiv.className = 'OWS_TABLEHEADERDIV';
		var header = document.createElement('H4');
		var txt = document.createTextNode('Ergebnisse der letzten Spieltage');
		header.appendChild(txt);
		headerDiv.appendChild(header);
		div.appendChild(headerDiv);

		var table = document.createElement('TABLE');
		table.id = 'rankingOverviewTable';
		table.className = 'widgetTableStyle OWS_RESULTS_OVERVIEW';
		
		var tBody = document.createElement('tBody');
	
		// create table header
		var tr = document.createElement('TR');
	
		for(var i=0; i<tableHeader.length; i++) {
			var th = document.createElement('TH');
			th.className='bfvWidgetheadline OWS_HEADER';
			th.title=tableHeader[i].tooltip;
			var txt = document.createTextNode(tableHeader[i].label);
			th.appendChild(txt);
			tr.appendChild(th);
		}
		
		
		tBody.appendChild(tr);
		var dateAry = new Array();

		for(team in myTeam) {
			var widgetDiv = document.getElementById(team + '_bfvView');

			var spanAry = document.getElementsByTagName('SPAN');
			for(var i=0; i<spanAry.length; i++) {
				if(spanAry[i].innerHTML.match(myTeam[team].searchPattern)) {
					spanAry[i].className = 'eigenerVerein';
				}
			}
		
			var tables = widgetDiv.getElementsByTagName('TABLE');
			var searchPattern = new RegExp("(eigenerVerein|" + myTeam[team].searchPattern + ")"); 
			for(var i=0; i<tables.length; i++) {
				if(tables[i].className == 'widgetTableStyle') {
					var rows = tables[i].rows;
					for(var j=0; j<rows.length; j++) {
						var highlightRow = false;
						if(rows[j].innerHTML.match(searchPattern)) {
							var tmpObj = new Array();
							var cells = rows[j].cells;
							for(var k=0; k<cells.length; k++) {
								tmpObj[parseInt(k)] = bfv_setTeamAlias(team, cells[k].innerHTML, true);
								//tmpObj[parseInt(k)] = cells[k].innerHTML;
							}
							tmpObj[1].match(/(\d+)\.(\d+)\.(\d+)\s+(\d+):(\d+)/);
							var tmpDate = RegExp.$3 + RegExp.$2 + RegExp.$1 + '_' + RegExp.$4 + RegExp.$5
							var idx = tmpDate+ '_' + team;
							dateAry[dateAry.length] = idx;
							allResultsObj[idx] = tmpObj;
							allResults[allResults.length] = tmpObj;
						}	
					}
				}
			}
		}
		dateAry = dateAry.sort();

		for(var i=dateAry.length-1; i>=0; i--) {
			var tr = document.createElement('TR');
			for(var j=1; j<allResultsObj[dateAry[i]].length-1; j++ ) {
				var td = document.createElement('TD');
				//td.innerHTML = allResults[i][j];
				td.innerHTML = allResultsObj[dateAry[i]][j];
				if(i %2) {
					td.className = 'itemEven';
				} else {
					td.className = 'itemOdd';
				}
				tr.appendChild(td);
			}
			tBody.appendChild(tr);
		}
		table.appendChild(tBody);
		div.appendChild(table);
		pView.appendChild(div);
		pView.style.display = '';
		progress_bar.hideBar();
		document.getElementById('progress_bar').style.display = 'none';
	}


	function bfv_setTeamAlias(team, strgVal, setAlias) {
		if(!strgVal.match(/eigenerVerein/)) {
			// return immediately, as there is no alias to set !!!
			strgVal = strgVal.replace(/Wielenbach(.*)Unterhausen/,'Wielenb.$1Unterh.');
			return strgVal;
		} else {
			//if(window.console) { console.log('strgVal: ' + strgVal); }
			strgVal = strgVal.replace(/chering(.*)Eberfing/,'chering$1Eberf.');
		}

		if(!setAlias) {
			return strgVal;
		}
		
		var myAlias = myTeam[team].ligaNameAlias;
		if(myAlias.match(/\[/)) {
			var tmyAliasesObj = new Object();
			myAlias = myAlias.replace(/\[/, '');
			myAlias = myAlias.replace(/\]/, '');
			var tmyAliasesAry = myAlias.split(/;/);
			for(var i=0; i<tmyAliasesAry.length; i++) {
				tmyAliasesAry[i].match(/([0-9]+)/);
				tmyAliasesObj[RegExp.$1] = tmyAliasesAry[i];
			}
			if(strgVal.match(/eigenerVerein\D*(\d+)[^/]/)) {
				myAlias = tmyAliasesObj[RegExp.$1];
				strgVal = strgVal.replace(/eigenerVerein(.*)>\D*(\d+)[^/]+/,'$1>' + myAlias + '<');
			}
		} else {
			strgVal = strgVal.replace(/eigenerVerein(["']*)>[^/]+/,'$1>' + myTeam[team].ligaNameAlias + '</');
		}
		
		return strgVal;
	}

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	function bfv_createNextMatchesTable() {
		if(!bfv_allWidgetsLoaded()) {
			//logger.debug('Setting timeout for calling bfv_createNextMatchesTable!');
			bfv_activeTimeout = window.setTimeout("bfv_createNextMatchesTable()", 200);
			return;
		}
		//logger.debug('Clearing timeout for calling bfv_createNextMatchesTable!');
		window.clearTimeout(bfv_activeTimeout);

		var idx = 0;
		view = 'NEXT_MATCHES';
		var nextMatches = new Object();
		var matchdaysAry = new Array();
		var tBodyId = 'ALL_' + view + '_BODY';
		var tBody = document.getElementById(tBodyId);
		if(tBody == null) {
			return;
		}
		
		// create table header
		var tr = document.createElement('TR');

		var th = document.createElement('TH');
		th.className='bfvWidgetheadline';
		th.title='Datum';
		var txt = document.createTextNode('Datum');
		th.appendChild(txt);
		tr.appendChild(th);
		
		var th = document.createElement('TH');
		th.className='bfvWidgetheadline';
		th.title='Heimmannschaft';
		var txt = document.createTextNode('Heim');
		th.appendChild(txt);
		tr.appendChild(th);
		
		var th = document.createElement('TH');
		th.className='bfvWidgetheadline';
		th.title='Gastmannschaft';
		var txt = document.createTextNode('Gast');
		th.appendChild(txt);
		tr.appendChild(th);
		
		//logger.info('Anzeigemodus: ' + bfv_getViewMode());
		if(bfv_getViewMode() == 'Alle Spalten') {
			var th = document.createElement('TH');
			th.className='bfvWidgetheadline';
			th.title='Spielort';
			var txt = document.createTextNode('Ort');
			th.appendChild(txt);
			tr.appendChild(th);
			
			var th = document.createElement('TH');
			th.className='bfvWidgetheadline';
			th.title='Schiedsrichter';
			var txt = document.createTextNode('SR');
			th.appendChild(txt);
			tr.appendChild(th);
			
			var th = document.createElement('TH');
			th.className='bfvWidgetheadline';
			th.title='Status';
			var txt = document.createTextNode('Status');
			th.appendChild(txt);
			tr.appendChild(th);
		} else if(bfv_getViewMode() == 'Komprimierte Darstellung') {
			tBody.parentNode.className = 'ALL_NEXT_MATCHES_COMPRESSED';
		}

		tBody.appendChild(tr);
		
		var nextMatchesTableElements = {
			"0": "match_number",
			"1": "date",
			"2": "hometeam",
			"3": "guestteam",
			"4": "location",
			"5": "referee",
			"6": "status"
		}

		for(team in myTeam) {
			var widgetDiv = document.getElementById(team + '_bfvView');
			//myTeam[team][view] = new Object();

			var div = document.getElementById(team + '_privateView');
			if(div == null) {
				//continue;
				return;
			}
			var tables = widgetDiv.getElementsByTagName('TABLE');
			for(var i=0; i<tables.length; i++) {
				if(tables[i].className == 'widgetTableStyle') {
					var rows = tables[i].rows;
					for(var j=0; j<rows.length; j++) {
						if(rows[j].innerHTML.match(/eigenerVerein/)) {
							rows[j].className = 'eigenerVerein';
							var tr = document.createElement('TR');
							var cells = rows[j].cells;
							var tmpObj = new Object();
							for(var k=0; k<cells.length; k++) {
								tmpObj[parseInt(k)] = bfv_setTeamAlias(team, cells[k].innerHTML);
							}
							
							
							var dateString = tmpObj["1"].replace(/^.*?>([0-9][0-9]\.[0-9][0-9]\.[0-9][0-9]\s*[0-9][0-9]\:[0-9][0-9])<.*$/, "$1");
							dateString.match(/([0-9][0-9])\.([0-9][0-9])\.([0-9][0-9])\s*([0-9][0-9])\:([0-9][0-9])/);

							var DD = RegExp.$1;
							var MM = RegExp.$2;
							var YYYY = '20' + RegExp.$3;
							var hh = RegExp.$4;
							var mm = RegExp.$5;
							var ss = '00';

							var matchday = new Date(YYYY, MM, DD, hh, mm, ss);
							var ms = parseInt(matchday.getTime());
							
							var key = '' + YYYY + MM + DD + '_' + hh + mm + ss;
							matchdaysAry[matchdaysAry.length] = ms;
							
							nextMatches[ms] = new Object();
							for(e in tmpObj) {
								nextMatches[ms][nextMatchesTableElements[e]] = tmpObj[e];
							}

							tBody.appendChild(tr);
							idx++;
						}
					}
				}
			}
		}
		matchdaysAry = matchdaysAry.sort();
		//logger.debug('matchdaysAry: ' + matchdaysAry);
		//logger.dump('nextMatches', nextMatches);
				

		for(var i=0; i<matchdaysAry.length; i++) {
			tr = document.createElement('TR');
			for(cellContent in nextMatches[matchdaysAry[i]]) {
				if(cellContent == 'match_number') {
					// skip match number as this is not of any value here
					continue;
				}
				
				td = document.createElement('TD');
				td.innerHTML = nextMatches[matchdaysAry[i]][cellContent];
				if(bfv_getFontSize() != 'Default') {
					td.style.fontSize = bfv_getFontSize();
				}
				if(bfv_getViewMode() == 'Komprimierte Darstellung') {
					if(cellContent.match(/(location|referee|status)/)) {
						continue;
					}
					if(cellContent == 'date') {
						td.innerHTML = td.innerHTML.replace(/([0-9]+\.[0-9]+\.[0-9]+)\s+([0-9]+\:[0-9]+)/,"$1" + "<BR>" + "($2)");
						td.style.textAlign = 'center';
					}
				} else {
						if(cellContent == 'date') {
							td.innerHTML = td.innerHTML.replace(/([0-9]+\.[0-9]+\.[0-9]+)\s+([0-9]+\:[0-9]+)/,"<b>$1</b>" + " " + "($2)");
						}
					}

				if( (i %2) == 0) {
					td.className = 'itemEven';
				} else {
					td.className = 'itemOdd';
				}
				tr.appendChild(td);
			}
			tBody.appendChild(tr);
			tBody.style.width = '100%';
			tBody.parentNode.style.display='';
		}
	}
	
	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	function bfv_initTeam(vereinsNr, teamName, teamNameAlias, ligaNr) {
		//logger.info('init team ' + teamNameAlias);
		myTeam[teamName] = new Team(vereinsNr, teamName, teamNameAlias, ligaNr);
	} 
	
	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	function bfv_widgetIsLoaded(team) {
		var divId = team + '_bfvView';
		//logger.info('check whether div with id ' + divId + ' is already loaded)');
		var widgetDiv = document.getElementById(divId);
		var widgetDivChildDivs = widgetDiv.getElementsByTagName('DIV');
		if(widgetDivChildDivs.length > 0) {
			//logger.info('returning "TRUE"');
			return true;
		}
		//logger.info('returning "FALSE"');
		return false;
	}
	
	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	function bfv_hideElement(element) {
		try {
			var widgetElement = document.getElementById(element);
			if(widgetElement != null) {
				widgetElement.parentNode.removeChild(widgetElement);
			}
		} catch(e) {
			//alert('SYSTEM_ERROR: ' + e);
		}
	}
	
	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	function bfv_waitForWidget(ligaNr, callback) {
		try {
			if(bfv_widgetIsLoaded(getLigaName(ligaNr))) {
				//logger.info('Clearing timeout for calling bfv_waitForWidget with parameter ligaNr ' + ligaNr + '!');
				myTeam[getLigaName(ligaNr)].bfvWidgetLoaded = true;
				window.clearTimeout(timeoutStack[ligaNr]);
				if(callback) {
					window[callback](ligaNr);
				}
			} else {
				//logger.info('Setting timeout for calling bfv_waitForWidget with parameter ligaNr ' + ligaNr + '!');
				if(callback) {
					timeoutStack[ligaNr] = window.setTimeout("bfv_waitForWidget('"+ligaNr+"','"+callback+"')", 500);
				} else {
					timeoutStack[ligaNr] = window.setTimeout("bfv_waitForWidget('"+ligaNr+"')", 500);
				}
			}
		} catch(e) {
			alert('SYSTEM_ERROR in funcion bfv_waitForWidget: ' + e);
		}
	}
	

	function bfv_parameterizeBfvWidget(ligaNr) {
		var ligaName = getLigaName(ligaNr);
		var widgetDiv = document.getElementById(ligaName + '_bfvView');
		//console.log(widgetDiv.innerHTML);
		var widgetDivChildDivs = widgetDiv.getElementsByTagName('DIV');
		for(var i=0; i<widgetDivChildDivs.length; i++) {
			var div = widgetDivChildDivs[i];
			div.id = ligaName + '_bfvView' + div.id;
		}
		var commercialsIframe = widgetDiv.getElementsByTagName('IFRAME');
		commercialsIframe[0].id = ligaName + '_bfvView_werbung'
		bfv_hideElement(ligaName + '_bfvView_werbung');
		bfv_hideElement(ligaName + '_bfvView_widgetHeader');
		bfv_hideElement(ligaName + '_bfvView_widgetBottom');
	}

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	function bfv_loadWidget(team, vereinsNr, ligaNr, ligaName, widgetCounter, view) {
		//logger.info('Loading BFV Widget for league ' + ligaNr);
		var widgetPositionIdx = widgetCounter %2;
		var bfvViewDivId = ligaName + '_bfvView';
		var bfvView = document.getElementById('BFV_VIEW');
		var tdElementBlv = document.getElementById(widgetPositionBlvView[widgetPositionIdx]);
		var divElement = document.createElement('DIV');
		divElement.id = bfvViewDivId;
		divElement.className = 'OWS_BFV_WIDGET';
		divElement.style.display = '';
		divElement.innerHTML = 'Lade Ergebnisse / Tabelle ' + ligaName;
		tdElementBlv.appendChild(divElement);
		
		if(view == 'RANKING') {
			var pView = document.getElementById('PVIEW');
			var tdElementPview = document.getElementById(widgetPositionPview[widgetPositionIdx]);
			var divElement = document.createElement('DIV');
			divElement.id = ligaName + '_privateView';
			divElement.className = 'OWS_BFV_WIDGET';
			//divElement.innerHTML = 'PV: Lade Ergebnisse / Tabelle ' + ligaName;
			divElement.style.display = '';
			tdElementPview.appendChild(divElement);
		}

		myTeam[team].bfvWidget = new BFVLigaWidget();

		myTeam[team].bfvWidget.setzeVereinNr(vereinsNr);
		myTeam[team].bfvWidget.setzeLigaNr(ligaNr);
		if(view == 'RESULTS') {
			myTeam[team].bfvWidget.zeigeErgebnisse(bfvViewDivId);
		} else if(view == 'NEXT_MATCHES') {
			myTeam[team].bfvWidget.zeigeVorschau(bfvViewDivId);
		} else if(view == 'RANKING') {
			myTeam[team].bfvWidget.zeigeTabelle(bfvViewDivId);
		}
		//timeoutStack[ligaNr] = window.setTimeout("bfv_waitForWidget('"+ligaNr+"')", 2000);
		bfv_waitForWidget(ligaNr, 'bfv_parameterizeBfvWidget');
	}

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	function getLigaName(ligaNr) {
		for(var team in myTeam) {
			if(myTeam[team].ligaNr == ligaNr) {
				return myTeam[team].ligaName;
			}
		}
		return 'NO_LEAGUE_FOUND';
	}


	var myTeam = new Object();
	var	nextMatches = new Object();

	Team = function(vereinsNr, ligaName, ligaNameAlias, ligaNr, searchPattern) {
		this.vereinsNr = vereinsNr;
		this.ligaNr = ligaNr;
		this.ligaName = ligaName;
		this.ligaNameAlias = ligaNameAlias;
		this.searchPattern = '(' + searchPattern.replace(/(\(|\))/g,"\\$1") + ')';
		//if(window.console) { console.log('this.searchPattern: ' + this.searchPattern); }
	}
	
	MyLeague = function(vereinsNr, ligaNr, ligaName, widgetCounter, view) {
		this.widgetPositionIdx = widgetCounter %2;
		
		this.vereinsNr = vereinsNr;
		this.ligaNr = ligaNr;
		this.ligaName = ligaName;
		this.counter = 0;
		this.timeout = 0;
		
		this.tdElement = document.getElementById(this.widgetPosition[this.widgetPositionIdx]);

		this.divElement = document.createElement('DIV');
		this.divElement.id = ligaName;
		this.divElement.className = 'OWS_BFV_WIDGET';
		this.divElement.style.display = '';
		this.divElement.innerHTML = 'Lade Ergebnisse / Tabelle ' + this.ligaName;
		this.tdElement.appendChild(this.divElement);
		
		this.divElement = document.createElement('DIV');
		this.divElement.id = ligaName + '_PV';
		this.divElement.className = 'OWS_BFV_WIDGET';
		this.divElement.innerHTML = 'PV: Lade Ergebnisse / Tabelle ' + this.ligaName;
		this.divElement.style.display = '';
		this.tdElement.appendChild(this.divElement);


		this.bfvWidget = new BFVLigaWidget();
		this.bfvWidget.setzeVereinNr(vereinsNr);
		this.bfvWidget.setzeLigaNr(ligaNr);
		if(view == 'RESULTS') {
			this.bfvWidget.zeigeErgebnisse(ligaName);
		} else if(view == 'NEXT_MATCHES') {
			this.bfvWidget.zeigeVorschau(ligaName);
		} else if(view == 'RANKING') {
			document.getElementById('BFV_VIEW').style.display = '';
			this.bfvWidget.zeigeTabelle(ligaName);
		}
	} 




