// setzt yui dom voraus
// setzt yui event voraus
// setzt sab.js voraus


//YAHOO.widget.Logger.enableBrowserConsole();

(function() {
	
	var Dom = YAHOO.util.Dom
	, Event = YAHOO.util.Event
	, Connect = YAHOO.util.Connect
	, Cookie = YAHOO.util.Cookie
	, JSON = YAHOO.lang.JSON
	, Anim = YAHOO.util.Anim;
	
	var sDom = SAB.Dom;
	
	SAB.mybvb = {
		data : {
			url : 'http://www.meinbvb.de'
			, language : 1
			, sessionRefreshTime : 240000
			, historyInitialState : '2'
			, aDivLoadable : [
				'toppage'
				, 'leftpage'
				, 'centerpage'
				, 'rightpage'
				, 'bottompage'
				, 'application'
			]
			, aTeaserbereich : [
				'b'
				, 'c'
				, 'd'
			]
			, setLanguage : function (val) {
				this.language = val;
			}
			// applet menu relation
			, amRel : {}
			, menuElem : []
		}
		, jsRegister : {
			aJavascript : []
			, add : function (str) {
				if (!this.aJavascript.inArray(str)) {
					this.aJavascript.push(str);
					return true;
				}
				return false;
			}
		}
		, sessionRegister : {
			aDiv : []
			, add : function (str) {
				if (!this.aDiv.inArray(str)) {
					this.aDiv.push(str);
					YAHOO.log('registered sessionDiv: ' + str, 'info', 'mybvb.js');
					return true;
				}
			}
			, remove : function (str) {
				if (this.aDiv.inArray(str)) {
					this.aDiv.remove(str);
					YAHOO.log('removed sessionDiv: ' + str, 'info', 'mybvb.js');
					if (this.aDiv.length == 0) {
						SAB.mybvb.sessionKeeper.destroy();
					}
				}		
			}
		}
		, event : {
			rightColumnStatusChanged : new YAHOO.util.CustomEvent('rightColumnStatusChanged')
			, inDivLoaded : new YAHOO.util.CustomEvent('inDivLoaded')
			, appletLoaded : new YAHOO.util.CustomEvent('appletLoaded')
			, scriptLoaded : new YAHOO.util.CustomEvent('scriptLoaded')
			, menuLoaded : new YAHOO.util.CustomEvent('menuLoaded')
			, beforeLoad : new YAHOO.util.CustomEvent('beforeLoad')
			, meinbereichChange: new YAHOO.util.CustomEvent('meinbereichChange')
			, meinbereichReady: new YAHOO.util.CustomEvent('meinbereichReady')
			, pageReleased: new YAHOO.util.CustomEvent('pageReleased')
			, pageLoaded: new YAHOO.util.CustomEvent('pageLoaded')
			, startpopupBuild: new YAHOO.util.CustomEvent('startpopupBuild')
		}
		, rightColumn : {
			status : 1
			, centerpage : null
			, rightpage : null
			, setStatus : function (newStatus) {
				this.status = newStatus;
			}
			, changeStatus : function (newStatus) {
				if (newStatus != this.status) {
					switch (newStatus) {
						case 0: // centerpage auf volle breite
							if (!this.centerpage) {
								this.centerpage = sDom.createNode('td', 'centerpage');
								if (this.status == 2) {
									Dom.insertBefore(this.centerpage, this.rightpage);
								}
								YAHOO.log('created centerpage');
							}
							sDom.deleteNode(this.rightpage);
							YAHOO.log('deleted rightpage');
							if (Dom.hasClass(this.centerpage, 'centerpage-normal')) {
								Dom.removeClass(this.centerpage, 'centerpage-normal');
								YAHOO.log('removed class centerpage-normal');
							}
							Dom.addClass(this.centerpage, 'centerpage-full');
							YAHOO.log('added class centerpage-full');
							Dom.setStyle(this.centerpage, 'width', '857px');
							//this.centerpage.innerHTML = 'links volle breite';
							SAB.mybvb.event.rightColumnStatusChanged.fire('rightColumnZero');
							SAB.mybvb.event.meinbereichChange.fire('hide');
							YAHOO.log('fired: rightColumnZero', 'info', 'mybvb.js');
							break;
						case 1: // beide spalten anzeigen
							if (this.status == 0) {
								Dom.insertAfter(this.rightpage, this.centerpage);
								Dom.removeClass(this.centerpage, 'centerpage-full');
								YAHOO.log('removed class centerpage-full');
							}
							else if (this.status == 2) {
								Dom.insertBefore(this.centerpage, this.rightpage);
								Dom.removeClass(this.rightpage, 'rightpage-full');
								YAHOO.log('removed class rightpage-full');
							}
							// Dom.setStyle(this.centerpage, 'width', '556px');
							Dom.setStyle(this.centerpage, 'width', '');
							Dom.addClass(this.centerpage, 'centerpage-normal');
							YAHOO.log('added class centerpage-normal');
							// Dom.setStyle(this.rightpage, 'width', '301px');
							Dom.addClass(this.rightpage, 'rightpage-normal');
							YAHOO.log('added class rightpage-normal');
							// this.centerpage.innerHTML = 'centerpage';
							// this.rightpage.innerHTML = 'rightpage';
							SAB.mybvb.event.rightColumnStatusChanged.fire('rightColumnNormal');
							YAHOO.log('fired: rightColumnNormal', 'info', 'mybvb.js');
							break;
						case 2: // rightpage auf volle breite
							if (!this.rightpage) {
								this.rightpage = sDom.createNode('td', 'rightpage');
								if (this.status == 0) {
									Dom.insertAfter(this.rightpage, this.centerpage);
								}
								YAHOO.log('created rightpage');
							}
							sDom.deleteNode(this.centerpage);
							YAHOO.log('deleted centerpage');
							if (Dom.hasClass(this.rightpage, 'rightpage-normal')) {
								Dom.removeClass(this.rightpage, 'rightpage-normal');
								YAHOO.log('removed class rightpage-normal');
							}
							Dom.addClass(this.rightpage, 'rightpage-full');
							YAHOO.log('added class rightpage-full');
							Dom.setStyle(this.rightpage, 'width', '857px');
							// this.rightpage.innerHTML = 'rechts volle breite';
							SAB.mybvb.event.rightColumnStatusChanged.fire('rightColumnFull');
							SAB.mybvb.event.meinbereichChange.fire('hide');
							YAHOO.log('fired: rightColumnFull', 'info', 'mybvb.js');
						default:;
					}
					this.status = newStatus;
				}
			}
		}
		, sessionKeeper : {
			active : null
			, init : function () {
				if (this.active === null) {
					this.active = window.setInterval("SAB.mybvb.sessionKeeper.call()", SAB.mybvb.data.sessionRefreshTime);
					YAHOO.log('sessionKeeper.init', 'info', 'mybvb.js');
				}
			}
			, destroy : function () {
				if (this.active !== null) {
					window.clearInterval(this.active);
					this.active = null;
					YAHOO.log('sessionKeeper.destroy', 'info', 'mybvb.js');
				}
			}
			, call : function () {
				Connect.asyncRequest('GET', SAB.mybvb.data.url + '/session.php');
				YAHOO.log('sessionKeeper.call', 'info', 'mybvb.js');
			}
		}
		, IVW : {
			menuLoaded : false
			, pageLoaded : true
			, ivwTAG : undefined
			, reset : function() {
				this.pageLoaded = false;
				this.menuLoaded = false;
				this.ivwTAG = 'undefined';
			}
			, setMenuLoaded : function() {
				if (this.pageLoaded) {
					this._reloadPixelImages();
				}
				this.menuLoaded = true;
			}
			, setPageLoaded : function(ivwTAG) {
				if (ivwTAG) {
					this.ivwTAG = ivwTAG;
				}

				if (this.menuLoaded) {
					this._reloadPixelImages();
				}
				this.pageLoaded = true;
			}
			, _reloadPixelImages : function () {
				var pixelCode = 'undefined';
				if (!this.ivwTAG || this.ivwTAG == 'undefined') {
					for (var i = 0; i < SAB.mybvb.data.menuElem.length; i++) {
						if (SAB.mybvb.data.menuElem[i].level == 1 && SAB.mybvb.data.menuElem[i].activepath == true) {
							var pixelCode = SAB.mybvb.data.menuElem[i].text;
							break;
						}
					}
				}
				else {
					pixelCode = this.ivwTAG;
				}
				pixelCode = pixelCode.substr(0, 9).toLowerCase();
				var ivw = 'http://borussia.ivwbox.de/cgi-bin/ivw/CP/' + 'mb_' + pixelCode + ';';
				YAHOO.log(ivw);
				if (Dom.get('szmimages')) {
					Dom.get('szmimages').src = ivw + '?r=' + escape(document.referrer) + '&d=' + (Math.random() * 100000);
				}
			}
		}
		, menu : {
			activeAppletId : 1
			, ivwTAG : undefined
			, load : function (appletId) {
				SAB.mybvb.data.appletIdToLoad = appletId;
				if (this.activeAppletId == appletId) {
					SAB.mybvb.event.menuLoaded.fire('old');
					SAB.mybvb.IVW.setMenuLoaded();
					YAHOO.log('fired: menuLoaded old appletId = ' + appletId, 'info', 'mybvb.js');
					return true;
				}
				var oConnector = Connect.asyncRequest('GET', SAB.mybvb.data.url + '/templates/applications/menu.php?appletid=' + appletId, {
					success : function (o) {
						var oResponse = JSON.parse(o.responseText);
						SAB.mybvb.menu.build(oResponse);
						SAB.mybvb.menu.activeAppletId = oResponse.activeAppletId;
						SAB.mybvb.event.menuLoaded.fire('new');
						SAB.mybvb.data.menuElem = oResponse.arrElem;

						SAB.mybvb.IVW.setMenuLoaded();

						/*
						var IVWParam = undefined;
						if (SAB.mybvb.menu.ivwTAG && SAB.mybvb.menu.ivwTAG != 'undefined') {
							IVWParam = SAB.mybvb.menu.ivwTAG;
						}

						SAB.mybvb.reloadPixelImages(IVWParam);
						*/

						YAHOO.log('fired: menuLoaded new appletId = ' + appletId, 'info', 'mybvb.js');
						return true;
					}
				});
				return null;
			}
			, build : function (oMenuConf) {
				if (Dom.get('menu')) {
					sDom.deleteNode('menu');
				}
				var node = sDom.createNode('div', 'menu');
				Dom.setStyle(node, 'width', '100%');
				Dom.addClass(node, 'clearfix');
				var getLineDiv = function () {
					var ret = sDom.createNode('div', Dom.generateId());
					Dom.addClass(ret, 'menuline');
					return ret;
				};
				if (oMenuConf.arrElem && oMenuConf.arrElem.length > 0) {
					for (var i = 0; i < oMenuConf.arrElem.length; i++) {
						if (oMenuConf.arrElem[i].visible === true) {
							node.appendChild(getLineDiv());
							node.appendChild(this.getItem(oMenuConf.arrElem[i]));
						}
					}
					node.appendChild(getLineDiv());
					YAHOO.log(SAB.mybvb.data.amRel, 'info', 'fw.js');
					if (Dom.get('fw_menu')) {
						Dom.get('fw_menu').appendChild(node);
					}
				}
				if (oMenuConf.amRel && oMenuConf.amRel.length > 0) {
					for (var i = 0; i < oMenuConf.amRel.length; i++) {
						SAB.mybvb.data.amRel[oMenuConf.amRel[i].appletId] = oMenuConf.amRel[i]; 
					}
				}
			}
			, getItem : function (oItem) {
				var imgPath = SAB.mybvb.data.url + '/conf/docmenu/menuimages/deutsch/';
				var activePath = imgPath + oItem.id + '_' + 'on.jpg';
				var passivePath = imgPath + oItem.id + '_' + 'off.jpg';
				
				var node = sDom.createNode('div', Dom.generateId());
				Dom.addClass(node, 'menurowdiv');
				
				var leftDiv = sDom.createNode('div', Dom.generateId());
				Dom.addClass(leftDiv, 'menuborder');
				
				var rightDiv = sDom.createNode('div', Dom.generateId());
				Dom.addClass(rightDiv, 'menudiv');
				
				/*
				var text = sDom.createNode('div', Dom.generateId());
				if (oItem.level == 1) Dom.setStyle(text, 'background-color', '#FFFFFF');
				else Dom.setStyle(text, 'background-color', '#AAAAAA');
				text.innerHTML = oItem.text;
				text.onclick = function() {
					if (oItem.area === null) {
						if (oItem.link.length > 0) { 
							location.href = SAB.mybvb.data.url + oItem.link;
						}
					}
					else {
						my.load(oItem);
					}
				};
				rightDiv.appendChild(text);
				*/
				
				var img = sDom.createNode('img', Dom.generateId());
				Dom.addClass(img, 'menuimg');
				img.onclick = function() {
					if (oItem.area === null) {
						if (oItem.link.length > 0) { 
							location.href = SAB.mybvb.data.url + oItem.link;
						}
					}
					else {
						my.load(oItem);
					}
				};
				img.onmouseover = function() {
					if (oItem.activepath === true && oItem.leaf === true) {
						return false;
					}
					img.src = activePath;
				};
				img.onmouseout = function() {
					if (oItem.activepath === true && oItem.leaf === true) {
						return false;
					}
					img.src = passivePath;
				}
				if (oItem.activepath === true && oItem.leaf === true) {
					img.src = activePath;
				}
				else {
					img.src = passivePath;
				}
				img.title = oItem.text;
				img.alt = oItem.text;
				
				rightDiv.appendChild(img);
				
				node.appendChild(leftDiv);
				node.appendChild(rightDiv);
				
				return node; 
			}
		}
		, teaser : {
			intervalRegister : {}
			, show : function (bereich, nr) {
				var area = Dom.get('fw_teaser_' + bereich);
				var elAnimOut = null, elAnimIn = null;
				if (area) {
					var aChilds = Dom.getChildren(area);
					if (aChilds.length > 0) {
						for (var i = 0; i < aChilds.length; i++) {
							if (Dom.getStyle(aChilds[i], 'display') == 'block') {
								elAnimOut = aChilds[i];
							}
							if (nr == undefined && i == 0) {
								if (Dom.getStyle(aChilds[i], 'display') == 'none') {
									elAnimIn = aChilds[i];
								}
							}
						}
						if (nr != undefined) {
							if (Dom.getStyle(aChilds[nr - 1], 'display') == 'none') {
								elAnimIn = aChilds[nr - 1];
							}
						}
					}
				}
				if (elAnimOut && elAnimIn) {
					Dom.setStyle(elAnimOut, 'display', 'none');
	   				Dom.setStyle(elAnimIn, 'display', 'block');
					/*
					var teaserOut = new Anim(elAnimOut, {
							opacity: { from: 1, to: 0.3 } 
						}, 0.25, YAHOO.util.Easing.easeIn
	   				);
	   				var teaserIn = new Anim(elAnimIn, {
							opacity: { from: 0.3, to: 1 } 
						}, 0.25, YAHOO.util.Easing.easeOut
	   				);
	   				Dom.setStyle(elAnimIn, 'opacity', '0.3');
	   				teaserOut.onComplete.subscribe(function() {
	   					Dom.setStyle(elAnimOut, 'display', 'none');
	   					Dom.setStyle(elAnimIn, 'display', 'block');
	   					teaserIn.animate();
	   				});
	   				teaserOut.animate();
	   				*/
				}
			}
			, changeHeader : function (bereich, nr) {
				var area = Dom.get('fw_teaserheader_' + bereich);
				if (area) {
					var aChilds = Dom.getChildren(area);
					if (aChilds.length > 0) {
						for (var i = 0; i < aChilds.length; i++) {
							if ((nr != undefined && nr == i + 1) || (nr == undefined && i == 0)) {
								aChilds[i].src = '/images/framework/teaser/0' + (i + 1) + '_on.gif';
							}
							else {
								aChilds[i].src = '/images/framework/teaser/0' + (i + 1) + '_off.gif';
							}
						}
					}
				}
			}
			, setDefault : function (bereich) {
				this.show(bereich);
				this.changeHeader(bereich);
			}
			, reset : function (aBereich) {
				for (var i = 0; i < aBereich.length; i++) {
					this.setDefault(aBereich[i]);
				}
			}
			, rotate : function (bereich) {
				var aktiv = window.setInterval('SAB.mybvb.teaser.moveTeaser(\'' + bereich + '\')', 10000);
			}
			, moveTeaser : function (bereich) {
				var area = Dom.get('fw_teaser_' + bereich);
				if (area) {
					var aChilds = Dom.getChildren(area);
					if (aChilds.length > 0) {
						for (var i = 0; i < aChilds.length; i++) {
							if (Dom.getStyle(aChilds[i], 'display') == 'block') {
								var p = i + 1;
								if (p >= aChilds.length) {
									p = 0;
								}
								this.show(bereich, p + 1);
								this.changeHeader(bereich, p + 1);
								break;
							}
						}
					}
				}
			}
		}
		, user : {
			profilshowhide : function(){
				var e = document.getElementById('rightpage-userprofil');
				if (e) {
					var current = e.style.display;
					if (current === 'none') {
						current = 'block';
					} else {
						current = 'none';
					}
					e.style.display = current;
					var c = SAB.mybvb.cookie.get();
					c.userprofilshowhide = current !== 'none';
					SAB.mybvb.cookie.set(c);
				}
				return false;
			}
		}
		, cookie : {
			get : function () {
				var value = Cookie.get('mybvbflags'); 
				if (value) {
					value = JSON.parse(value);
					return value;
				} else {
					value = {};
					this.set(value);
				}	
				return value;			
			}
			, set : function(o) {
				Cookie.set('mybvbflags', JSON.stringify(o));
			} 
		}
		, history : {
			aktuell : false
			, set : function (orient, appletId, area, rColStat, ajax) {
				var that = this; 
				if (!Dom.get('fw_' + orient + '_button')) {
					Event.onAvailable('fw_' + orient + '_button', function () {
						that.buildOnclick(orient, appletId, area, rColStat, ajax);
					});
				}
				else {
					this.buildOnclick(orient, appletId, area, rColStat, ajax);
				}
			}
			, buildOnclick : function (orient, appletId, area, rColStat, ajax) {
				//SAB.mybvb.data.amRel[appletId];
				var item = {
					appletId : appletId
					, area : area
					, rColStat : rColStat
				};
				YAHOO.log(item);
				var hButton = Dom.get('fw_' + orient + '_button');
				if (ajax) {
					hButton.onclick = function () {
						SAB.mybvb.load(item, 'history=' + orient);
					}
					//YAHOO.log('hist = ' + orient + ', appId = ' + item.appletId);
				}
				else {
					hButton.onclick = function () {
						location.href = SAB.mybvb.data.url + '/?fw_applet_id=' + appletId + '&history=' + orient;
					}
					//YAHOO.log('location.href, ' + orient);
				}
				this.aktuell = true;
			}
		}
		, pager : {
			nextPage : function (pagerID, callback) {
				this.setPage(pagerID, callback, +1);
			}
			, prevPage : function (pagerID, callback) {
				this.setPage(pagerID, callback, -1);
			}
			, currentPage : function (pagerID) {
				var page = Dom.get(pagerID + '_page');
				if (page && page.value >= 0) {
					return parseInt(page.value);
				}
				return false;
			}
			, setPage : function (pagerID, callback, dir) {
				var div = Dom.get(pagerID);
				var pages = parseInt(Dom.get(pagerID + '_pages').value);
				var page = this.currentPage(pagerID);
				if ((page + dir) < 0) {
					return;
				}
				if ((page + dir) >= pages) {
					return;
				}
				var old_page = Dom.get(pagerID + '_' + page);
				var old_page_id = page;
				page += dir;
				Dom.get(pagerID + '_page').value = page;
				var appletId = SAB.mybvb.menu.activeAppletId;
				SAB.mybvb.listHistory.set(appletId, pagerID, page, true);
				if (page === 0) {
					Dom.replaceClass(pagerID + '_bck', 'on', 'off');
				} else {
					Dom.replaceClass(pagerID + '_bck', 'off', 'on');
				}
				if (page + 1 === pages) {
					Dom.replaceClass(pagerID + '_fwd', 'on', 'off');
				} else {
					Dom.replaceClass(pagerID + '_fwd', 'off', 'on');
				}
				var eventObj = {
					id: pagerID
					, oldPage: old_page_id
					, newPage: page
					, oldPageId: pagerID + old_page_id
					, newPageId: pagerID + page
					, lastPage: pages
					, dir: dir
					, callback: callback
					, error: false
					, current: page
					, cached: true
					, applet: SAB.mybvb.menu.activeAppletId
				};
				var page_it_self = Dom.get(pagerID + '_' + page);
				if (page_it_self) {
					if (old_page) {
						Dom.setStyle(old_page, 'display', 'none');
						SAB.mybvb.event.pageReleased.fire(eventObj);

						YAHOO.log('fired: pageReleased', 'info', 'fw.js');
					}
					Dom.setStyle(page_it_self, 'display', 'block');
					SAB.mybvb.event.pageLoaded.fire(eventObj);

					YAHOO.log('fired: pageLoaded', 'info', 'fw.js');
				} else {
					eventObj.cached = false;
					var empty_page = Dom.get(pagerID + '_empty');
					var ndiv = document.createElement('div');
					ndiv.id = pagerID + '_' + page;
					var txt = '';
					if (empty_page) {
						txt += empty_page.innerHTML;
					} else {
						txt += '<img src=\"/images/loading.gif\" alt=\"Bitte warten\" />';
					}
					txt = txt.replace('\$pages', pages);
					txt = txt.replace('\$page', page + 1);
					ndiv.innerHTML = txt;
					div.appendChild(ndiv);
					if (old_page) {
						var height = Dom.getStyle(old_page, 'height');
						Dom.setStyle(ndiv, 'height', height);

						Dom.setStyle(old_page, 'display', 'none');
						SAB.mybvb.event.pageReleased.fire(eventObj);

						YAHOO.log('fired: pageReleased', 'info', 'fw.js');
					}
					Connect.asyncRequest('GET', callback + page + '&app=' + SAB.mybvb.menu.activeAppletId, {
						success: function(o) {
							if (o.responseText != '' && JSON.isValid(o.responseText)) {
								var res = JSON.parse(o.responseText);
								if (res && res.innerHTML) {
									ndiv.innerHTML = res.innerHTML;
								} else {
									ndiv.innerHTML = '';
									eventObj.error = true;
								}
							} else {
								ndiv.innerHTML = '';
								eventObj.error = true;
							}
							Dom.setStyle(ndiv, 'height', null);

							eventObj.page = SAB.mybvb.pager.currentPage(pagerID);
							SAB.mybvb.event.pageLoaded.fire(eventObj);

							YAHOO.log('fired: pageLoaded', 'info', 'fw.js');
						}
						, failure: function(o) {
							ndiv.innerHTML = '';
							Dom.setStyle(ndiv, 'height', null);

							eventObj.error = true;
							eventObj.page = SAB.mybvb.pager.currentPage(pagerID);
							SAB.mybvb.event.pageLoaded.fire(eventObj);

							YAHOO.log('fired: pageLoaded', 'info', 'fw.js');
						}
					});
				}
			}
		}
		, ajaxForm : {
			setButtons : function(id, edit, save, cancel) {
				eb = Dom.get(id + '_editButton');
				sb = Dom.get(id + '_saveButton');
				cb = Dom.get(id + '_cancelButton');
				if (edit) {
					Dom.removeClass(eb, 'contextEditButton_disabled');
				} else {
					Dom.addClass(eb, 'contextEditButton_disabled');
				}
				if (save) {
					Dom.removeClass(sb, 'contextSaveButton_disabled');
				} else {
					Dom.addClass(sb, 'contextSaveButton_disabled');
				}
				if (cancel) {
					Dom.removeClass(cb, 'contextCancelButton_disabled');
				} else {
					Dom.addClass(cb, 'contextCancelButton_disabled');
				}
			}
			, restore : function(id) {
 				var e = Dom.get(id);
				if (!e) { return; }
 				var input = Dom.get(id + '_input');
 				if (input) {
					input.parentNode.removeChild(input);
				}
				var oldDisplay = e.getAttribute('oldDisplay');
				Dom.setStyle(e, 'display', oldDisplay);
				e.removeAttribute('oldDisplay');
				e.removeAttribute('loading');

				this.setButtons(id, 1, 0, 0);
			}
			, save : function(id, url, fkt, eparam) {					
 				var e = Dom.get(id);
 				var input = Dom.get(id + '_input');

 				if (e.getAttribute('editElement') === null || e.getAttribute('loading') !== null) {
 					return;
				}

				e.setAttribute('loading', true);
 				e.removeAttribute('editElement');

				this.setButtons(id, 0, 0, 0);

 				if (!input) {
 					return;
				}
 
				Dom.setStyle(input, 'background-image', 'url(/images/loading.gif)');
				Dom.setStyle(input, 'background-repeat', 'no-repeat');
				Dom.setStyle(input, 'background-position', 'top right');

				var text = input.value;
 				if (text == e.innerHTML) {
					this.restore(id);
 				} else {
					var data = id + '=' + text.replace(/&/g, "%26");
					input.setAttribute('disabled', 'disabled');
					var callback = {
						success: function(r) {
							if (JSON.isValid(r.responseText)) {
								o = JSON.parse(r.responseText);
								if (o.error == 0) {
									if (fkt) {
										fkt(1, eparam, o);
									} else {
 										e.innerHTML = o.innerHTML;
									}
								}
							}
							e.removeAttribute('loading');
							SAB.mybvb.ajaxForm.restore(id);
						},
						failure: function(r) {
							// if (JSON.isValid(r.responseText)) {
							// 	o = JSON.parse(r);
							// }
							e.removeAttribute('loading');
							SAB.mybvb.ajaxForm.restore(id);
 						}
					};
					var Connect = YAHOO.util.Connect.asyncRequest('POST', url, callback, data);
 				}
			}
			, cancel : function(id, fkt, eparam) {
 				var e = Dom.get(id);

 				if (e.getAttribute('editElement') === null || e.getAttribute('loading') !== null) {
 					return;
				}

				if (fkt) {
					fkt(2, eparam);
				}

 				e.removeAttribute('editElement');
				this.restore(id);
			}
			, edit : function(id, textarea, fkt, eparam) {
 				var e = Dom.get(id);
 				var input;

 				if (e.getAttribute('editElement') !== null || e.getAttribute('loading') !== null) {
 					return;
				}

 				e.setAttribute('editElement', true);

				this.setButtons(id, 0, 1, 1);

 				// var text = e.textContent?e.textContent:e.innerHTML;
 				var text = e.innerHTML;

				if (fkt) {
					fkt(0, eparam, e);
				}

				if (textarea == true) {
 					input = document.createElement('textarea');
 					input.id = id + '_input';
					text = text.replace(/\r\n/gi, '\n');
					text = text.replace(/<br>\n/gi, '\n');
					text = text.replace(/\n<br>/gi, '\n');
					text = text.replace(/<br>/gi, '\n');
					text = text.replace(/&amp;/gi, '&');
					// input.innerHTML = text;
					// input.innerText = text;
					input.value = text;
				} else {
					text = text.replace(/&amp;/gi, '&');
 					input = document.createElement('input');
 					input.id = id + '_input';
					input.value = text;
				}
				Dom.setStyle(input, 'height', Dom.getStyle(e, 'height'));
				Dom.insertBefore(input, e);

				e.setAttribute('oldDisplay', Dom.getStyle(e, 'display'));
				Dom.setStyle(e, 'display', 'none');

 				input.focus();
 			}
		}
		, comment : {
			reload : function(typ, data, obj) {
				if (typ == 1) {
					SAB.mybvb.comment._reload(data.context_pk, data.perPage);
				}
			}
			, _reload : function(context_pk, perPage) {
				var comments = Dom.get('allComments');

				comments.innerHTML = '<div style=\"text-align:center;padding-top:150px;\">'
					+ 'Kommentare werden geladen<br />'
					+ '<img alt="Bitte warten.."'
					+ ' src="/images/loading_big.gif"'
					+ ' />'
					+ '</div>';

				var url = '/templates/applications/comments.php';
				url += '?pk=' + context_pk;
				if (perPage) {
					url += '&pp=' + perPage;
				}
				Connect.asyncRequest('GET', url, {
					success: function(o) {
						if (o.responseText && JSON.isValid(o.responseText)) {
							var res = JSON.parse(o.responseText);
							if (res && res.innerHTML) {
								comments.innerHTML = res.innerHTML;
							}
						}
					}
				});
			}
			, getDelFunction : function(data) {
				var url = "/templates/applications/comment/remove.php";
				return function() {
					Connect.asyncRequest('GET', url + '?pk=' + data.comment_pk, {
						success: function(o) {
							SAB.mybvb.comment._reload(data.context_pk);
						}
					});
				}
			}
		}
		, listHistory : {
			aRegApp : []
			, register : function (appletId, confObj, bOverwrite) {
				if (!this.aRegApp[appletId] || bOverwrite) {
					this.aRegApp[appletId] = confObj;
				}
			}
			, get : function (appletId, key) {
				if (this.aRegApp[appletId]) {
					if (key && this.aRegApp[appletId][key]) {
						return this.aRegApp[appletId][key];
					}
					return this.aRegApp[appletId];
				}
				return false;
			}
			, set : function (appletId, key, val, bOverwrite) {
				if (!this.aRegApp[appletId]) {
					this.aRegApp[appletId] = {};
				}
				if (!this.aRegApp[appletId][key] || bOverwrite) {
					this.aRegApp[appletId][key] = val;
				}
			}
		}
		, addBookmark : function (title, url) {
			title = 'mybvb ' + title;
			if (window.sidebar) { // firefox
				window.sidebar.addPanel(title, url, '');
			}
			else if( document.all ) { //MSIE
				window.external.AddFavorite(url, title);
			}
			else {
				//alert('Leider unterst�tzt Ihr Browser diese Funktion nicht.');
			}
		}
		, executeLink : function (appletId, form, oGet) {
			YAHOO.log(oGet, 'info', 'GET');
			// if (SAB.mybvb.menu.activeAppletId == appletId && this.listHistory.aRegApp[appletId]) {
			// 	if (!oGet) {
			// 		oGet = {};
			// 	}
			// 	for (var key in this.listHistory.aRegApp[appletId]) {
			// 		if (typeof this.listHistory.aRegApp[appletId][key] != 'function') {
			// 			oGet['lid_' + key] = this.listHistory.aRegApp[appletId][key];
			// 		}
			// 	}
			// }
			var item = this.data.amRel[appletId];
			if (typeof item !== 'undefined' && item) {
				if (typeof form === 'string' && form.length > 0 && Dom.get(form)) {
					this.callDataService(item, form, oGet);
				}
				else {
					this.load(item, undefined, oGet);
				}
			}
		}
		, callDataService : function (item, form, oGet) {
			YAHOO.log('start FDS', 'info', 'fw.js');
			Connect.setForm(form);
			var oConnector = Connect.asyncRequest('POST', this.data.url + '/templates/applications/datainsession.php?appletId=' + item.appletId, {
				success: function(o) {
					SAB.mybvb.load(item, undefined, oGet);
				}
			});
		}
		, load : function (item, mode, oGet) {
			this.event.beforeLoad.fire(item.appletId);
			YAHOO.log('fired: beforeLoad', 'info', 'fw.js');
			if (item.rColStat >= 0) {
				this.rightColumn.changeStatus(item.rColStat);
			}
			var url = this.data.url + '/applet/run.php?fw_applet_id=' + item.appletId;
			if (mode !== undefined && mode.length > 0) {
				url = url + '&fw_' + mode;
			}
			if (oGet != undefined) {
				for (var key in oGet) {
					if (typeof oGet[key] != 'function') {
						url = url + '&' + key + '=' + oGet[key];
					}
				}
			}
			if (SAB.mybvb.menu.activeAppletId == item.appletId && this.listHistory.aRegApp[item.appletId]) {
				for (var key in this.listHistory.aRegApp[item.appletId]) {
					if (typeof this.listHistory.aRegApp[item.appletId][key] != 'function') {
						url = url + '&' + 'lid_' + key + '=' + this.listHistory.aRegApp[item.appletId][key];
					}
				}
			}

			SAB.mybvb.IVW.reset();

			this.loadInDiv(item.area, url);
			this.menu.load(item.appletId);
		}
		, loadInDiv : function (element, url) {
			if (element === 'centerpagefull') {
				element = 'centerpage';
			}
			if (element === 'rightpagefull') {
				element = 'rightpage';
			}
			if (!Dom.get(element)) {
				return false;
			}
			
			element = sDom.getObject(element);
			if (!this.data.aDivLoadable.inArray(element.id)) {
				return false;
			}
			
			Dom.get(element).innerHTML = '<div style=\"text-align:center;padding-top:150px;\">'
				+ 'Seite wird geladen<br />'
				+ '<img alt="Bitte warten"'
				+ ' src="' + this.data.url + '/images/loading_big.gif"'
				+ ' />'
				+ '</div>';
			
			var oConnector = Connect.asyncRequest('GET', url, {
				success : function(o) {
					if (element.id == 'centerpage' || element.id == 'centerpagefull') {
						SAB.mybvb.history.aktuell = false;
					}
					SAB.mybvb.sessionRegister.remove(element.id);
					if (JSON.isValid(o.responseText)) {
						var oResponse = JSON.parse(o.responseText);
						YAHOO.log(oResponse, 'info', 'success');
						if (typeof oResponse.logout !== 'undefined' && oResponse.logout) {
							window.location.href = SAB.mybvb.data.url;
						}
						
						if (typeof oResponse.innerHTML !== 'undefined') {
							element.innerHTML = oResponse.innerHTML;
							YAHOO.log('loaded in div: ' + element.id, 'info', 'mybvb.js');
						}
						if (typeof oResponse.arrJavascript !== 'undefined') {
							for (var i = 0; i < oResponse.arrJavascript.length; i++) {
								if (!oResponse.arrJavascript[i].id) {
									oResponse.arrJavascript[i].id = Dom.generateId();
								}
								if (SAB.mybvb.jsRegister.add(oResponse.arrJavascript[i].id)) {
									SAB.mybvb.addJSToDom(
										oResponse.arrJavascript[i].id
										, oResponse.arrJavascript[i].src
										, oResponse.arrJavascript[i].text
									);
								}
							}
						}
						if (oResponse.session) {
							if (SAB.mybvb.sessionRegister.add(element.id)) {
								SAB.mybvb.sessionKeeper.init();
							}
						}
						
						if (element.id == 'centerpage') {
							Dom.get('if_skyscraper').src = SAB.mybvb.data.url + '/index_skyscraper.php?' + (new Date()).getTime();
							//Dom.get('if_superbanner').src = SAB.mybvb.data.url + '/index_superbanner.php?' + (new Date()).getTime();
						}

						var IVWParam = undefined;

						if (oResponse.myIVWTag != 'undefined') {
							IVWParam = oResponse.myIVWTag;
						}

						SAB.mybvb.IVW.setPageLoaded(IVWParam);
						
						SAB.mybvb.event.inDivLoaded.fire(element.id);
						YAHOO.log('fired: inDivLoaded ' + element.id, 'info', 'mybvb.js');
						SAB.mybvb.event.appletLoaded.fire(oResponse.id);
						YAHOO.log('fired: appletLoaded ' + oResponse.id, 'info', 'mybvb.js');
					}
					else {
						element.innerHTML = o.responseText;
					}
						
					if (element.id == 'rightpage') {
						SAB.mybvb.event.meinbereichChange.fire('hide');
					}
				}
			});
			// wenn in centerpage geladen, so nach oben scrollen
			if (element.id == 'centerpage') {
				// var scAnim = new YAHOO.util.Scroll('html', {scroll:{to:[0,0]}}, 0);
				// scAnim.animate();
				scrollTo(0, 0);
			}
		}
		, addJSToDom : function (id, src, text) {
			var script = sDom.createNode('script', id);
			if (text) {
				script.text = text;
			}
			if (src) {
				script.setAttribute('src', src);
			}
			script.setAttribute('type', 'text/javascript');
			Dom.get('js').appendChild(script);
			SAB.mybvb.event.scriptLoaded.fire(id);
		}
		, rateContext : function (pk, rate, type) {
			var ratingBox = Dom.get('ratingBox');
			var url = '/templates/applications/rating/set.php?c=' + pk + '&r=' + rate;

			if (typeof type != undefined) {
				url += '&t=1';
			}
			
			ratingBox.innerHTML = '<img src=\"/images/loading.gif\" alt=\"Bitte warten..\" />';
			
			var c = Connect.asyncRequest('GET', url, {
				success: function(o) {
					if (JSON.isValid(o.responseText)) {
						res = JSON.parse(o.responseText);
						if (res.error == 0) {
							ratingBox.innerHTML = res.html;
							return;
						}
					}
					ratingBox.innerHTML = 'Ein Fehler ist aufgetreten.';
				},
				failure: function(o) {
				}
			});
		}
		, class_exists : function(classname) {
			var base = window;
			var req = classname.split(".");
		
			for (var k in req) {
				var key = req[k];
				if (typeof key !== 'string') {
					continue;
				}
				if (typeof base[key] === 'undefined') {
					return false;
				}
				base = base[key];
			}
			return true;
		}
		, require : function(classname, fkt, cfg) {
			if (typeof cfg === 'undefined') {
				var cfg = {
					timeout : 1000
					, runs : 5
				};
			}
		
			YAHOO.log('trying ' + classname);
		
			if (SAB.mybvb.class_exists(classname)) {
				YAHOO.log('ready ' + classname);
				fkt();
				return;
			}
		
			if (--cfg.runs == 0) {
				return;
			}
		
			setTimeout(function() { SAB.mybvb.require(classname, fkt, cfg); }, cfg.timeout);
		}
	}
	
	SAB.mybvb.meinbereich = {
		target : null
		, content : null
		, Dom : YAHOO.util.Dom
		, animhide : null
		, animshow : null
		, change: null 
		, ready : null
		, duration: 0.2
		, originalheight: 0
		, wantAnim : false
		, isShow: false		
		, interval:false
		,init: function() {
			var m = SAB.mybvb.meinbereich;
			m.ready = SAB.mybvb.event.meinbereichReady;
			m.target = document.getElementById("toppage-meinbereich");			
			m.content = document.getElementById("toppage-meinbereich-content");
			SAB.mybvb.event.appletLoaded.subscribe(function(){
				var m = SAB.mybvb.meinbereich;
				m.changeheight();
//				YAHOO.log("mb loaded event");
			});
			SAB.mybvb.event.menuLoaded.subscribe(function(){
				var m = SAB.mybvb.meinbereich;
				m.changeheight();
//				YAHOO.log("mb menu event");
			});
			m.change = SAB.mybvb.event.meinbereichChange;
			m.change.subscribe(m.eventHandler);
			m.initAnimations();
			m.initButtons();
			if(m.isShowDiv()) {
//				YAHOO.log("isShowDivDannShow");
				m.show();		
			}
			m.interval = setInterval("SAB.mybvb.meinbereich.load()",60000);
			m.ready.fire("done");
		}
		,initAnimations : function() {
			var m = SAB.mybvb.meinbereich;
			if(!m.wantAnim) return;
			m.animhide =  new YAHOO.util.Anim(m.target,{
				opacity: { from:1,to:0 }
			},m.duration);
			m.animhide.onComplete.subscribe(function(){
				SAB.mybvb.meinbereich._hideAfter();
			});			

			m.animshow =  new YAHOO.util.Anim(m.target,{
				opacity: { from:0, to:1 }
			},m.duration);
			m.animshow.onComplete.subscribe(function(){
				SAB.mybvb.meinbereich._showAfter();
			});			
		}
		,isAnim: function(){
			var m = SAB.mybvb.meinbereich;
			if(!m.wantAnim) return false;
			return (
				m.animshow.isAnimated() 
				|| m.animhide.isAnimated()
			);				
		}
		,isShowDiv: function() {
			var m = SAB.mybvb.meinbereich;
			var r = m.Dom.getElementsByClassName('meinbereich-show','div');
			return r.length>0;			
		}
		,isBlockDiv : function() {
			var m = SAB.mybvb.meinbereich;
			var r = m.Dom.getElementsByClassName('meinbereich-block','div');
			return r.length>0;
		}
		,show: function() {
			var m = SAB.mybvb.meinbereich;
			if(m.isCenterFull()) {
				return false;
			}
			if(m.isAnim()) return false;
			if(m.isShow) return false;
			if(m.isBlockDiv()) return false;
			m.isShow = true;
			if(m.content.innerHTML=="null") m.load();
			m.Dom.setStyle(m.target,"display","block");
			if (m.wantAnim) {
				m._showAnim();
			} else {
				m._showAfter();
			}
			YAHOO.util.Dom.removeClass("toppage-plus", "toppage-button-on");
			YAHOO.util.Dom.addClass("toppage-minus", "toppage-button-on");
			return false;
		}
		,_showAfter: function() {
			var m = SAB.mybvb.meinbereich;
			m.hideRightPage();
		}
		
		,hideRightPage: function() {
			var m = SAB.mybvb.meinbereich;
			if(!m.isCenterFull()) {
				m.Dom.setStyle("rightpage","visibility","hidden");
//				m.Dom.setStyle("rightpage","display","none");
				YAHOO.log("meinbereich - hiderightpage - visibility ist auf hidden");	
			} else {
				YAHOO.log("meinbereich - hiderightpage - visibility nicht ge�ndert weil centerfull");	
				m.showRightPage();			
					
			}			
		}
		,showRightPage: function() {
			var m = SAB.mybvb.meinbereich;			
			m.Dom.setStyle("rightpage","visibility","visible");
//			m.Dom.setStyle("rightpage","display","");
			YAHOO.log("meinbereich - visibility ist auf visible ");							
		}
		,isCenterFull: function() {
			var m = SAB.mybvb.meinbereich;

			//alert("iscenterfull - centerfull? " + m.Dom.hasClass("centerpage","centerpage-full"));
			//alert("iscenterfull - centernormal? " + m.Dom.hasClass("centerpage","centerpage-normal"));

			if (m.Dom.hasClass("centerpage","centerpage-full")) {
				YAHOO.log("meinbereich - centerfull erkannt");
				return true;
			}
			return false;						
		}
		,hide: function() {
			var m = SAB.mybvb.meinbereich;
			if(m.isAnim()) return false;
			if(!m.isShow) return false;
			m.isShow = false;
			m.Dom.setStyle(m.target,"display","block");
			if (m.wantAnim) {
				m._hideAnim();
			} else {
				m._hideAfter();
			}			
			YAHOO.util.Dom.addClass("toppage-plus", "toppage-button-on");
			YAHOO.util.Dom.removeClass("toppage-minus", "toppage-button-on");
			return false;
		}
		,_hideAfter: function() {
			var m = SAB.mybvb.meinbereich;
			m.showRightPage();
			m.Dom.setStyle(m.target,"display","none");
		}
		,_showAnim: function() {
			var m = SAB.mybvb.meinbereich;
			m.animshow.animate(); 			
			return false;
		}
		,_hideAnim: function() {
			var m = SAB.mybvb.meinbereich;
			m.animhide.animate(); 			
			return false;
		}
		,changeheight:function() {
			var m = SAB.mybvb.meinbereich;
			// var h = m.Dom.getY("bottompage") - m.Dom.getY("centerpage") + 4;
			var h = m.Dom.getY("bottompage") - m.Dom.getY("centerpage") + 1;
			// h = Math.max(h, 1130);
			m.Dom.setStyle(m.target,"height",h + "px");			
			return false;
		}
		,eventHandler:function(a,b) {
			var m = SAB.mybvb.meinbereich;
//			YAHOO.log("meinbereich.eventHandler " + b);
			switch(b.toString()) {
				case "changeheight":
					m.changeheight();
					break;
				case "hide":
					m.hide();
					m.showRightPage();
					break;	
				case "show":
					m.changeheight();
					m.show();
					break;	
				default:
//					YAHOO.log("meinbereich: event string nicht bekannt");
					break;
			}
			return false;
		}
		,_showProgress : function() {
			var m = SAB.mybvb.meinbereich;
			m.content.innerHTML = "<img class='loading' src='/images/loading.gif'>";			
		}
		,load: function() {
			var m = SAB.mybvb.meinbereich;
			var u = SAB.mybvb.data.url + "/templates/applications/right/meinbereich.php";
			m._showProgress();
			var oConnector = YAHOO.util.Connect.asyncRequest('GET',u, {
				success : function(o) {
					var h;
					if(YAHOO.lang.JSON.isValid(o.responseText)) {
						h = YAHOO.lang.JSON.parse(o.responseText);
					} else {
						h = {html:o.responseText};
					}
					m._ajaxSuccess(h);
//					YAHOO.log("meinbereich neu geladen...");
				}
			});	
		}
		,_ajaxSuccess : function(o) {
			var m = SAB.mybvb.meinbereich;
			if (o) {
				m.content.innerHTML = o.html;
				m.changeheight();
			}
		}
		,addShowFunction: function(e) {
			YAHOO.util.Event.addListener(e, "click", function(a, b, c){
				SAB.mybvb.meinbereich.show();
			}); 			
			// YAHOO.util.Dom.replaceClass(e,"buttonlike-off","buttonlike-on");
			YAHOO.util.Dom.addClass(e,"toppage-button-on");
		}
		,addHideFunction: function(e) {
			YAHOO.util.Event.addListener(e, "click", function(a, b, c){
				SAB.mybvb.meinbereich.hide();
			}); 			
			// YAHOO.util.Dom.replaceClass(e,"buttonlike-off","buttonlike-on");
			YAHOO.util.Dom.removeClass(e,"toppage-button-on");
		}
		,initButtons : function() {
			if(parseInt(YAHOO.util.Dom.get('mybvblogin-form').loginstate.value)==1) {
				SAB.mybvb.meinbereich.addShowFunction("toppage-plus");
				SAB.mybvb.meinbereich.addHideFunction("toppage-minus");
			} else {
			}			
		}
	};

	SAB.mybvb.appteaser = {
		timeout: null
		, delay: 10000
		, counter: 0
		, isinit: false
		, data: null
		, init: function() {
			if(this.isinit) {
				return;
			}
			this.isinit = true;
			if (this.timeout) {
				clearTimeout(this.timeout);
			}
			this.timeout = setTimeout(this.xchangeinterval, this.delay);
			this.initData();
		}
		, initData: function() {
			var that = SAB.mybvb.appteaser;
			var transaction = YAHOO.util.Connect.asyncRequest(
				'GET'
				, SAB.mybvb.data.url + '/templates/applications/right/appteaser_json.php', {
					success: function(o) {
						try {
							that.data = YAHOO.lang.JSON.parse(o.responseText);
							that.counter = 0;
						} catch (e) { }
					}
				}, null
			);
		}
		, xchangeinterval: function() {
			var that = SAB.mybvb.appteaser;
			if (that.data && that.data.length) {
				var d = that.data[that.counter];
				var div;
				if (d && d.innerHTML && (div = YAHOO.util.Dom.get(d.div))) {
					div.innerHTML = d.innerHTML;
				}
				if (++that.counter >= that.data.length) {
					that.data = null;
					that.initData();
					that.counter = 0;
				}
			}
			that.timeout = setTimeout(that.xchangeinterval, that.delay);
			return;
		}
	};

	SAB.mybvb.flash = {
		versionCompare: function(v1, v2) {
			var va1 = v1.split(',');
			var va2 = v2.split(',');
			var len = (va1.length > va2.length)?va1.length:va2.length;
			for (var k = 0; k < len; k++) {
				var val1 = (va1[k]?parseInt(va1[k]):0);
				var val2 = (va2[k]?parseInt(va2[k]):0);
				if (val1 > val2) {
					return 1;
				} else if (val1 < val2) {
					return -1;
				}
			}
			return 0;
		}

		, getFlashVersion: function() {
			// ie
			try {
				try {
					// avoid fp6 minor version lookup issues
					// see: http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
					var axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');
					try {
						axo.AllowScriptAccess = 'always';
					} catch(e) {
						return '6,0,0';
					}
				} catch(e) {}
				return new ActiveXObject('ShockwaveFlash.ShockwaveFlash')
						.GetVariable('$version')
						.replace(/\D+/g, ',')
						.match(/^,?(.+),?$/)[1];
			// other browsers
			} catch(e) {
				try {
					if (navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin) {
						return (navigator.plugins['Shockwave Flash 2.0']
							|| navigator.plugins['Shockwave Flash'])
							.description
							.replace(/\D+/g, ',')
							.match(/^,?(.+),?$/)[1];
					}
				} catch(e) {}
			}
			return '0,0,0';
		}
		, updateMessage: function(cfg) {
			var set = function(ocfg) {
				var div = Dom.get(ocfg.div);
				if (div) {
					div.innerHTML = ocfg.message;
					if (ocfg.show) {
						Dom.setStyle(ocfg.show, 'display', 'block');
					}
				}
			};
			var Dom = YAHOO.util.Dom;
			var version = SAB.mybvb.flash.getFlashVersion();
			for (var i in cfg) {
				if (!cfg[i].version || this.versionCompare(version, cfg[i].version) < 0) {
					set(cfg[i]);
					if (cfg[i].die) {
						return;
					}
				}
			}
		}
	};
	
	SAB.mybvb.popup = {
		panel : null
		, rendered : false
		, loaded: false
		, build : function () {
			if (this.rendered) {
			   	return;
			}
			var that = this;
			Connect.asyncRequest('GET', SAB.mybvb.data.url + '/templates/applications/popupstart.php', {
				success : function (o) {
					if (JSON.isValid(o.responseText)) {
						var oResponse = JSON.parse(o.responseText);
						if (oResponse.headerCSS.length > 0) {
							var aElem = YAHOO.util.Dom.getElementsByClassName('hd', 'div', 'startpopup');
							YAHOO.util.Dom.addClass(aElem[0], 'dienstTitel');
						}
						that.panel = new YAHOO.widget.Panel('startpopup', oResponse.cfg);
						Dom.setStyle(that.panel.element, 'z-index', '300');
						that.panel.setHeader(oResponse.header);
						that.panel.setBody(oResponse.body);
						//that.panel.setFooter(oResponse.footer);
						if (oResponse.body.length > 0) {
							that.loaded = true;
							SAB.mybvb.event.startpopupBuild.fire('startpopupBuild');
						}
					}
				}
			});
		}
		, call : function () {
			if (!this.panel) {
				return;
			}
			if (!this.rendered) {
				this.panel.render(document.body);
				this.rendered = true;
			}
			//this.panel.center();
			this.panel.moveTo(163, 131);
			this.panel.show();
		}
		, close : function () {
			if (this.panel) this.panel.destroy();
		}
	};
	
	
		
	var my = SAB.mybvb;
	var rCol = my.rightColumn;
	
	Event.onDOMReady(function () {
		// Javascripts registrieren
		if (Dom.get('head')) {
			var aChilds = Dom.getChildren('head');
			for (var i = 0; i < aChilds.length; i++) {
				if (aChilds[i].id.length > 0 && aChilds[i].nodeName.toLowerCase() === 'script') {
					my.jsRegister.add(aChilds[i].id);
				}
			}
		}
		if (Dom.get('js')) {
			var aChilds = Dom.getChildren('js');
			for (var i = 0; i < aChilds.length; i++) {
				my.jsRegister.add(aChilds[i].id);
			}
		}
		
		// zentrale Spalte registrieren
		if (Dom.get('centerpage')) {
		  	rCol.centerpage = Dom.get('centerpage');
		}
		else {
			rCol.centerpage = sDom.createNode('td', 'centerpage');
			rCol.status = 2;
		}
		
		// rechte Spalte registrieren
		if (Dom.get('rightpage')) {
			rCol.rightpage = Dom.get('rightpage');
		}
		else {
			rCol.rightpage = sDom.createNode('td', 'rightpage');
			rCol.status = 0;
		}
		
		// Event der Spaltenaenderungen verarbeiten
		my.event.rightColumnStatusChanged.subscribe(function () {
			my.sessionRegister.remove('centerpage');
			my.sessionRegister.remove('rightpage');
		});
		
		// Editorpanels entfernen, die eventuell unter body eingefuegt sind
		SAB.mybvb.event.beforeLoad.subscribe(function (ev, en) {
			var aHtmlElements = Dom.getElementsByClassName('yui-module yui-overlay yui-editor-panel');
			if (aHtmlElements.length > 0) {
				for (var i = 0; i < aHtmlElements.length; i++) {
					sDom.deleteNode(aHtmlElements[i]);
				}
			}
		});
		
		for (var i = 0; i < my.data.aTeaserbereich.length; i++) {
			my.teaser.show(my.data.aTeaserbereich[i], 1);
			my.teaser.rotate(my.data.aTeaserbereich[i]);
		}
		
		// fuer den messenger
		jsReady = true;

		SAB.mybvb.meinbereich.init();
		SAB.mybvb.appteaser.init();
		
		YAHOO.log('framework ready', 'info', 'fw.js');
	});
	
})();

