
//---- maxlength für Textarea setzen
//@author    Thomas Bachem
//@param
//obj			Textarea, für die die Maximallänge gesetzt werden soll
function initTextareaMaxLength (obj) {
	if (obj) {
		if (obj.getAttribute('maxlength')) {
			obj.onkeyup = obj.onchange = forceMaxLength;
			obj.onkeyup();
		}
	} else {
		var x = document.getElementsByTagName('textarea');
		for (var i=0;i<x.length;i++) {
			if (x[i].getAttribute('maxlength')) {
				x[i].onkeyup = x[i].onchange = forceMaxLength;
				x[i].onkeyup();
			}
		}
	}
}




//#########################################################
// Items
//#########################################################

//---- Items Laden
//@author Sven Schollmeyer
//@param
//url			AJAX Request URL
//target		Das Element wo die Items eingeladen werden sollen
//type			Element Typen (p oder v)
//sortBy		Wonach Sortiert werden soll (lt. Konstanten)
//infos			Ob die Item Infos (Views und Comments) angezeigt werden sollen (true oder false) - optional
function load_items(url,target,type,sortBy,infos) {
	DEBUG.write('Action: load items');
	if($(target + '_hr')) {
		var oldhtml = $(target + '_hr').innerHTML;
		$(target + '_hr').innerHTML = '<img src="' + base_page + 'img/gfx_loading_submenu.gif" width="16" height="16"> Lade...';
	}
	if(typeof sortBy == 'undefined') {
		sortBy = 0;
	}
	if(typeof infos == 'undefined') {
		infos = false;
	}
	var opt = {
		method:'post',
		postBody: 'action=load_items&xhr=1&type=' + type + '&sortBy=' + sortBy,
		onSuccess: function(t) {
			SLS.p({pageName: pagetitle_escaped});
			UPDOM.removeAllNodes(target);
			if( t.responseText.length > 0 ) {
				var xmlDoc = t.responseXML;
				var response = xmlDoc.getElementsByTagName('response')[0];
				var response1 = response.getElementsByTagName('items')[0];

				var ul = UPDOM.createElement('ul', target, {
					className:  'boxes',
					styles:     {
						marginTop:  10,
						position:   'relative'
					}
				});

				for(i=0;i<response1.childNodes.length;i++) {
					if(response1.childNodes[i].nodeName == 'item') {
						response = response1.childNodes[i];
					} else {
						continue;
					}

					//Alle Daten laden
					var id             = getXML(response,'id');
					var type           = getXML(response,'type');
					var title          = getXML(response,'title');
					var thumb_url      = getXML(response,'thumb_url');
					var thumb_width    = getXML(response,'thumb_width');
					var thumb_height   = getXML(response,'thumb_height');
					var image_l_url    = getXML(response,'image_l_url');
					var image_l_width  = getXML(response,'image_l_width');
					var image_l_height = getXML(response,'image_l_height');
					var date           = getXML(response,'date');
					var rating         = getXML(response,'rating');
					var ratings        = getXML(response,'ratings');
					var comments       = getXML(response,'comments');
					var views          = getXML(response,'views');
					var length         = getXML(response,'length');
					var view_url       = getXML(response,'view_url');
					var preview_url    = getXML(response,'preview_url');

					var li  = UPDOM.createElement('li', ul, {
						styles: {
							marginRight: 3
						}
					});
					var div = UPDOM.createElement('div', li, {
						className: 'item m'
					});

					if(type == "v") {
						UPDOM.createElement('div', div, {
							className: 'video'
						});
					}
					var table = UPDOM.createElement('table', div);
					var tr1   = UPDOM.createElement('tr', table);
					var td1   = UPDOM.createElement('td', tr1);
					var href  = UPDOM.createElement('a', td1, {
						className: 'plain',
						href:      view_url,
						title:     title
					});
					var img = UPDOM.createElement('img', href, {
						imageUrl:     thumb_url,
						imageWidth:   parseInt(thumb_width),
						imageHeight:  parseInt(thumb_height)
					});

					if(infos) {
						DEBUG.write('Sub Action: load items - more infos');
						var span = UPDOM.createElement('span', li);
						UPDOM.createElement('img', span, {
							imageUrl:     base_page + 'img/gfx_icon_text_views.gif',
							title:        __('Views'),
							imageWidth:   11,
							imageHeight:  8,
							styles:       {
								verticalAlign: 'middle'
							}
						});
						UPDOM.createElement('text', span, {
							text: ' ' + views + '  '
						});

						var span = UPDOM.createElement('span', li);
						UPDOM.createElement('img', span, {
							imageUrl:     base_page + 'img/gfx_icon_text_comments.gif',
							title:        __('Kommentare'),
							imageWidth:   11,
							imageHeight:  8,
							styles:       {
								verticalAlign: 'middle'
							}
						});
						UPDOM.createElement('text', span, {
							text: ' ' + comments + '  '
						});

						UPDOM.createElement('br', li);

						DEBUG.write('load items - more infos done');
					}
				}
				if(oldhtml !== '') {
					$(target + '_hr').innerHTML = oldhtml;
				}
				DEBUG.write('items loaded');
				DEBUG.write();
			}
		}
	}
	new Ajax.Request(url, opt);
}




//#########################################################
// Video
//#########################################################

//---- Zeigt den Playerdummy an
//@author Thomas Bachem
function showPlayerDummy (full) {
	if ($('theitem')) {
		if ($('theitem').pausePlayer) {
			DEBUG.write('Action: show Player dummy');
			DEBUG.write();
			Element.show('playerdummy');
			Element.show('playerdummy_label');
			if(full) {
				if($('flashcontent')) {
					playerPos = $('theitem').getTime();
					Element.hide('flashcontent');
				}
			} else {
				if (Element.getDimensions('theitem').height != 33) {
					if (ua_name == "ie") Element.hide('theitem');
					if (!zoomed && !wide_player) {
						Element.setStyle('theitem', { marginTop: "307px", height: "33px" });
					} else if(!wide_player && zoomed) {
						Element.setStyle('theitem', { marginTop: "493px", height: "33px" });
					} else if(wide_player) {
						Element.setStyle('theitem', { marginTop: "396px", height: "33px" });
					}
					if (ua_name == "ie") Element.show('theitem');

					// Alle Toolbar-Menüs bei Klick schließen
					$('flashcontent').onclick = function () { dropdownHideAll('item'); };
				}
			}
		}
	}
}


//---- Versteckt den Playerdummy
//@author Thomas Bachem
function hidePlayerDummy (full) {
	if ($('theitem')) {
		if($("playerdummy")) {
			Element.hide('playerdummy');
			Element.hide('playerdummy_label');
		}
		if(full) {
			if($('flashcontent')) {
				Element.show('flashcontent');
				player_seekTo();
			}
		} else {
			if ($('theitem').pausePlayer) {
				DEBUG.write('Action: hide Player dummy');
				DEBUG.write();
				if (Element.getDimensions('theitem').height == 33) {
					if (ua_name == "ie") Element.hide('theitem');
					if (!zoomed && !wide_player) {
						Element.setStyle('theitem', { marginTop: "0", height: "340px" });
					} else if(!wide_player && zoomed) {
						Element.setStyle('theitem', { marginTop: "0", height: "526px" });
					} else if(wide_player) {
						Element.setStyle('theitem', { marginTop: "0", height: "429px" });
					}
					if (ua_name == "ie") Element.show('theitem');
							$('flashcontent').onclick = function () { };
				}
			}
		}
	}
}

function player_seekTo() {
	if($('theitem').seekTo) {
		$('theitem').seekTo(playerPos);
	} else {
		window.setTimeout("player_seekTo()", 500);
	}
}


//---- Einen Tab anzeigen und alle anderen ausblenden
//@author   Thomas Bachem
//@param
//elm		Nummer des Divs das angezeigt werden soll
//ids		Angang der ID's
//li		li das geklickt wurde
function showtab(elm,ids,li) {
	SLS.p({pageName: pagetitle_escaped});
	var ul = li.parentNode;
	var ul = ul.parentNode;
	j=0;
	for(i=0;i<ul.childNodes.length;i++) {
		if(ul.childNodes[i].nodeName.toLowerCase() == 'li') {
			j++;
			Element.removeClassName(ul.childNodes[i],'active');
			Element.addClassName(ul.childNodes[i],'inactive');

			if($(ids + j)) {
				Element.hide(ids + j);
			}
		}

	}
	var li = li.parentNode;
	Element.addClassName(li,'active');
	Element.show(ids + elm);
}

//---- Fehler "alert" anzeigen
//@author Sven Schollmeyer
//@param
//text			Fehler Text der angezeigt werden soll
function error_box_show(text) {
	DEBUG.write('Action: error box');
	DEBUG.write();
	if(!$('error_box')) {
		if($('theitem')) {
			$('theitem').focus();
		}
		UPDOM.prepareOverlay();
		var pos      = getCenterPage(150,true);
		var pageSize = getPageSize();

		var box = UPDOM.createBoxModel('', {
			id:           'error_box',
			styles_box:   {
				zIndex:      1002,
				position:    'absolute',
				left:        pos.left,
				top:         (pageSize[3] / 2) + pos.top - 100,
				width:       300,
				textAlign:   'center'
			},
			styles_x2:    {
				zIndex:      999,
				width:       300,
				textAlign:   'center'
			},
			styles_x3:    {
				padding:     8,
				zIndex:      999,
				textAlign:   'center'
			}
		});
		UPDOM.createElement('h1', box, {
			text:    __('Ein Fehler ist aufgetreten'),
			styles:  {
				textAlign: 'center'
			}
		});
		UPDOM.createElement('text', box, {
			text:   text
		});
		UPDOM.createElement('br', box);
		UPDOM.createElement('br', box);
		var button = UPDOM.createElement('button', box, {
			className:    'w180',
			text:         __('OK'),
			events:    {
				onclick: function()
				{
					error_box_hide();
				}
			}
		});
		$(button).focus();
	} else {
		Element.remove('error_box');
		error_box_show(text);
	}
}

//---- Fehler "alert" wieder ausblenden
//@author Sven Schollmeyer
function error_box_hide() {
	new Effect.Fade('error_box',{afterFinish:function(effect){
		UPDOM.followUpOverlay();
		Element.remove('error_box');
	}});
}


//---- Sprechblase anzeigen wenn neue Nachrichten vorhanden sind
//@author Thomas Bachem
/*if (user_messages_unnoticed_messages) {
	addLoadEvent(function () { NOTIFICATIONS.bubble(__('Sie haben <strong>%$1s neue Nachricht(en)</strong> in Ihrem <a href="%$2s">Postfach</a>.').sprintf(user_messages_unnoticed_messages,urls_account_messaging),5000); });
}*/

//---- Wenn der User sich gerade angemeldet hat
// Willkommensnachricht anzeigen
//@author Thomas Bachem
if (user_has_just_logged_in) {
	addLoadEvent(function () { NOTIFICATIONS.bubble(__("Willkommen zurück, <strong>%$1s</strong>!").sprintf(user_username)); });
}

//---- Redirect
//@author Thomas Bachem
//@param
//url		Die URL wohin redirectet werden soll
function redirect (url,newwindow) {
	if($('theitem')) {
		if ($('theitem').pausePlayer) {
			$('theitem').pausePlayer();
		}
	}
	if(typeof newwindow == 'undefined' || !newwindow) {
		document.location.href = url;
	} else {
		window.open(url);
	}
}

//---- Zeigt die Video Vorschau thumbnails an
//@author Thomas Bachem
//@param
//object			Objekt das verändert werden soll
//animation			URL zur animierten Vorschau
function showVideoPreview (object, animation) {
	if (animation.indexOf(".gif") != -1) {
		object._src = object.src;
		object.src = animation;
	}
}

//---- Blendet die Video Vorschau wieder aus
//@author Thomas Bachem
//@param			Objekt das verändert werden soll
function hideVideoPreview (object) {
	if (object._src) {
		object.src = object._src;
	}
}



//#########################################################
// Funktionen für die Suche
//#########################################################
//@author Thomas Bachem
function search_check () {
	Effect.Appear('search_status');

	terms = $('search_terms').value;
	type  = $('search_type').value;

	var error = ajax_check_search(urls_search_action_search, 'terms', terms, 'type', type);

	if (error) {
		Element.hide('search_status');
		Element.show('search_error');
		$('search_terms').value = error;
		$('search_terms').select();
		return false;
	} else {
		return true;
	}
}

//@author Thomas Bachem
function search_select () {
	terms = $('search_terms').value;

	if (terms == __('Ihre Suchabfrage lieferte keine Ergebnisse.')) {
		$('search_terms').select();
	}
}

//@author Thomas Bachem
function search_change () {
	terms = $('search_terms').value;

	if (terms != __('Ihre Suchabfrage lieferte keine Ergebnisse.')) {
		Effect.Fade('search_error');
	}
}

//#########################################################
// Login Overlay
//#########################################################

//---- Abbruch des Login Overlays
//@author Sven Schollmeyer
function cancel_login_over() {
	Effect.Fade('login_overlay',{afterFinish:function(){
		Element.remove('login_overlay');
		UPDOM.followUpOverlay();
	}});
}

//---- Login Overlay absenden mit hilfe des "Title Forms"
//@author Sven Schollmeyer
function submit_login_over() {
	$('login_username').value = $('overlay_login_username').value;
	$('login_password').value = $('overlay_login_password').value;
	document.forms.loginform.submit();
}

//---- Login Overlay anzeigen
//@author Sven Schollmeyer
function show_login_over() {
	UPDOM.prepareOverlay();
	var pos      = getCenterPage(150,true);
	var pageSize = getPageSize();
	var box      = UPDOM.createBoxModel('', {
		id:        'login_overlay',
		styles_box: {
			position: 'absolute',
			zIndex:   999,
			left:     pos.left,
			top:      (pageSize[3] / 2) + pos.top - 100,
			width:    300,
			display:  'none'
		},
		styles_x3:  {
			padding:  8
		}
	});
	UPDOM.createElement('h1', box, {
		text:    __('Login')
	});

	var table = UPDOM.createElement('table', box);

	var tr1      = UPDOM.createElement('tr', table);
	var tr1td1   = UPDOM.createElement('td', tr1);
	var tr1td2   = UPDOM.createElement('td', tr1, {
		styles: {
			width: 15
		}
	});
	var tr1td3   = UPDOM.createElement('td', tr1);

	UPDOM.createElement('text', tr1td1, {
		text:   __('Username:')
	});

	UPDOM.createElement('input', tr1td3, {
		type:      'text',
		className: 'textbox',
		name:      'login_username',
		id:        'overlay_login_username'
	});

	var tr2      = UPDOM.createElement('tr', table);
	var tr2td1   = UPDOM.createElement('td', tr2);
	var tr2td2   = UPDOM.createElement('td', tr2, {
		styles: {
			width: 15
		}
	});
	var tr2td3   = UPDOM.createElement('td', tr2);

	UPDOM.createElement('text', tr2td1, {
		text:   __('Passwort:')
	});

	UPDOM.createElement('input', tr2td3, {
		type:      'password',
		className: 'textbox',
		name:      'login_password',
		id:        'overlay_login_password'
	});


	var tr3      = UPDOM.createElement('tr', table);
	var tr3td1   = UPDOM.createElement('td', tr3);
	var tr3td2   = UPDOM.createElement('td', tr3, {
		styles: {
			width: 15
		}
	});
	var tr3td3   = UPDOM.createElement('td', tr3);


	var tr4      = UPDOM.createElement('tr', table);
	var tr4td1   = UPDOM.createElement('td', tr4);
	var tr4td2   = UPDOM.createElement('td', tr4, {
		styles: {
			width: 15
		}
	});
	var tr4td3   = UPDOM.createElement('td', tr4);

	UPDOM.createElement('button', tr4td1, {
		className:   'w90',
		text:        __('Login'),
		events:   {
			onclick: function() {
				submit_login_over();
			}
		}
	});

	UPDOM.createElement('button', tr4td3, {
		className:   'w90',
		text:        __('Abbrechen'),
		events:   {
			onclick: function() {
				cancel_login_over();
			}
		}
	});

	new Effect.Appear('login_overlay');
}

//#########################################################
// Social Bookmarking
//#########################################################
//---- Social Bookmark Hover Effekt
//@author Sven Schollmeyer
//@param
//name		Name des Social Bookmarking Dienstes
//element	Das Element das "gehovert" werden soll
function social_hover (name,element) {
	$('social_name').firstChild.nodeValue = name;
	if(!Element.hasClassName(element,'bookmarkicon_hover')) {
		Element.addClassName(element,'bookmarkicon_hover')
	} else {
		Element.removeClassName(element,'bookmarkicon_hover');
	}
}

//---- Social Bookmarking "hinzufügen" Funktion aufrufen
//@author Sven Schollmeyer
//@param
//name		Der Name des Social Bookmarking Dienstes
function social_add (name) {
	if(typeof view_url_escaped == 'undefined') {
		var view_url_escaped = encodeURIComponent(document.URL);
	}
	
	if(typeof pagetitle_escaped == 'undefined') {
		var pagetitle_escaped = encodeURIComponent(document.title);
	}
	switch(name) {
		case 'oneview':
			w=window.open('http://www.oneview.de:80/quickadd/neu/addBookmark.jsf?URL='+view_url_escaped+'&title='+pagetitle_escaped);
			w.focus();
			break;

		case 'Lycos iQ':
			w=window.open("http://iq.lycos.de/lili/my/add?url="+view_url_escaped+"");
			w.focus();
			setTimeout('w.focus()',1000);
			break;

		case 'del.icio.us':
			window.open("http://del.icio.us/post?url="+view_url_escaped+"&title="+pagetitle_escaped+"");
			break;

		case 'digg':
			window.open("http://digg.com/submit?phase=2&url="+view_url_escaped+"&title="+pagetitle_escaped+"");
			break;

		case 'Mister Wong':
			window.open("http://www.mister-wong.de/index.php?action=addurl&bm_url="+view_url_escaped+"&bm_description="+pagetitle_escaped+"");
			break;

		case 'BlinkList':
			window.open("http://www.blinklist.com/index.php?Action=Blink/addblink.php&Description=&Url="+view_url_escaped+"&Title="+pagetitle_escaped+"");
			break;

		case 'Yahoo MyWeb':
			window.open("http://myweb2.search.yahoo.com/myresults/bookmarklet?u="+view_url_escaped+"&="+pagetitle_escaped+"");
			break;

		case 'YiGG':
			window.open("http://yigg.de/neu?exturl="+view_url_escaped+"&exttitle="+pagetitle_escaped+"");
			break;
			
		case 'webnews':
			window.open("http://www.webnews.de/einstellen?url="+view_url_escaped+"&title="+pagetitle_escaped+"");
			break;
	}
}

//#########################################################
// RSS
//#########################################################

//---- Sucht alle RSS Links inerhalb des Dokumentes und erstellt
//dadraus das RSS-Feeds Menü im Header der Seite
//@author Sven Schollmeyer
function find_rss() {
	DEBUG.write('Action: search for RSS Links');
	var rss_links = new Array();
	var head = document.getElementsByTagName("head")[0];
	var links = head.getElementsByTagName('link');

	//Suche aller RSS Links und push in Array
	for (i = 0; i < links.length; i++){
		var link = links[i];
		var rel  = String(link.getAttribute('rel'));
		var type = String(link.getAttribute('type'));

		if (rel == 'alternate' && type == 'application/rss+xml'){
			rss_links.push(link);
		}
	}

	//Menu Array aufbauen
	menu = new Array();
	menu.push({
		container:   "rss_link_holder",
		id:          "rss_menu",
		closebutton: true,
		width:       150,
		offsetTop:   17,
		offsetLeft:  ((window.opera) ? -127 : 0)
	});

	//Wenn RSS-Links gefunden wurden
	if (rss_links.length > 0) {
		DEBUG.write('found RSS Links');
		for (i = 0; i < rss_links.length; i++) {
			menu.push({
				name:    "",
				icon: 	base_page+"img/gfx_icon_menue_rss.gif",
				onclick: function () { redirect(this.getAttribute('href')); }.bind(rss_links[i]),
				title:   rss_links[i].getAttribute('title'),
				label:   rss_links[i].getAttribute('title')
			});
		}
	//Wenn keine RSS-Links gefunden wurden
	} else {
		DEBUG.write('no RSS Links found');
		menu.push({
			name:     "",
			disabled: true,
			onclick: function() { return false; },
			title:    __("Klicken Sie unten, um eine allgemeine Übersicht über unsere RSS-Feeds zu erhalten."),
			label:    __("Für diese Seite sind keine spezifischen RSS-Feeds verfügbar.")
		});
	}
	
	if(lang == '') {
		// Netvibes
		menu.push({
			name:    "",
			icon: 	base_page+"img/gfx_icon_menue_netvibes.gif",
			onclick: function () { redirect('http://www.netvibes.com/subscribe.php?url=' + document.URL); },
			title:   __("Feeds zu Ihrer Netvibes-Seite hinzufügen"),
			label:   __("Feeds zu Netvibes hinzufügen")
		});
	}

	//Allgemeine RSS-Hilfe
	menu.push({
		name:    "",
		icon: 	base_page+"img/gfx_icon_menue_rss_help.gif",
		onclick: function () { redirect('/rss'); },
		title:   __("Was ist RSS?"),
		label:   __("Übersicht und Hilfe")
	});

	//Menü erstellen und anzeigen
	createMenu(menu);
	Element.show('rss_select');
	DEBUG.write('rss done');
	DEBUG.write();
}


//#########################################################
// Sprachauswahl
//#########################################################

//---- Sprachen Menü & "Bubbles" erstellen
//@author    Manuel Giesa & Sven Schollmeyer
function create_language_menu(){

	var a = UPDOM.createElement('a', 'language_bubble_holder', {
		className:      'plain',
		events:      {
			onclick:  function() {
				switch_language( "de_DE" );
			}
		},
		styles:          {
			cursor:        'hand',
			cursor:        'pointer'
		}
	});

	UPDOM.createElement('img', a, {
		imageUrl:       base_page + 'img/gfx_header_lang_de.gif',
		imageWidth:     12,
		imageHeight:    12,
		events:      {
			onclick:  function() {
				switch_language( "de_DE" );
			}
		},
		styles:          {
			cursor:        'hand',
			cursor:        'pointer',
			verticalAlign: 'middle'
		}
	});

	UPDOM.createElement('text', 'language_bubble_holder', {
		text: ' '
	});

	var a = UPDOM.createElement('a', 'language_bubble_holder', {
		className:      'plain',
		events:      {
			onclick:  function() {
				switch_language( "en_GB" );
		},
		styles:          {
			cursor:        'hand',
			cursor:        'pointer'
		}
	}});

	UPDOM.createElement('img', a, {
		imageUrl:       base_page + 'img/gfx_header_lang_en.gif',
		imageWidth:     12,
		imageHeight:    12,
		events:      {
			onclick:  function() {
				switch_language( "en_GB" );
			}
		},
		styles:          {
			cursor:        'hand',
			cursor:        'pointer',
			verticalAlign: 'middle'
		}
	});

	UPDOM.createElement('text', 'language_bubble_holder', {
		text: ' '
	});
	
	var a = UPDOM.createElement('a', 'language_bubble_holder', {
		className:      'plain',
		events:      {
			onclick:  function() {
				switch_language( "tr_TR" );
		},
		styles:          {
			cursor:        'hand',
			cursor:        'pointer'
		}
	}});

	UPDOM.createElement('img', a, {
		imageUrl:       base_page + 'img/gfx_header_lang_tr.gif',
		imageWidth:     12,
		imageHeight:    12,
		events:      {
			onclick:  function() {
				switch_language( "tr_TR" );
			}
		},
		styles:          {
			cursor:        'hand',
			cursor:        'pointer',
			verticalAlign: 'middle'
		}
	});

	UPDOM.createElement('text', 'language_bubble_holder', {
		text: ' '
	});	

	//Menu Array aufbauen
	createMenu(new Array(
	{
		container:   "language_link_holder",
		id:          "language_menu",
		closebutton: true,
		width:       150,
		offsetTop:   17,
		offsetLeft:  ((window.opera) ? -127 : 0)
	},
	{
		name:      "",
		icon:      base_page + "img/flags/de.png 16 11",
		onclick:   function() { switch_language( "de_DE" ); },
		title:     "Deutsch",
		label:     "Deutsch"
	},
	{
		name:    "",
		icon: 	base_page + "img/flags/us.png 16 11",
		onclick: function() { switch_language( "en_GB" ); },
		title:   "English",
		label:   "English"
	},
	{
		name:    "",
		icon: 	base_page + "img/flags/tr.png 16 11",
		onclick: function() { switch_language( "tr_TR" ); },
		title:   "Türkçe",
		label:   "Türkçe"
	}));

	Element.show('language_select');
}



//#########################################################
// Input Modus ändern
//#########################################################

//---- Anzeige Modus ändern
//@author Thomas Bachem
//@param
//mode		Modus in den gewechselt werden soll (show / hide)
//name		Name bzw ID des Objekts
function change_display (object, mode) {
	SLS.p({pageName: pagetitle_escaped});
	DEBUG.write('Action: changing display - ' + mode);
	DEBUG.write();
	if (object) {
		if (mode == 'show') {
			if (object.tagName.toLowerCase() == 'span') {
				object.style.display = 'inline';
			} else {
				object.style.display = 'block';
			}
		} else {
			object.style.display = 'none';
		}
	}
}


//---- Anzeige Modus ändern
//@param
//mode			Modus in den gewechselt werden soll
//name			Name bzw ID des Objekts
//oldheight		Alte Höhe des Elements
//newheight		Neue Höhe des Elements
//norevert		Wenn das Element später nich mehr "zusliden" soll (true / false)
function change_mode (mode, name, oldheight, newheight, norevert) {
	SLS.p({pageName: pagetitle_escaped});
	DEBUG.write('Action: changing mode - ' + mode);
	DEBUG.write();
	if (mode == 'view') {

		//wenn oldheight und newheight übergeben wurde
		//"zusliden" des Elements
		if(typeof newheight == 'number' && typeof oldheight == 'number') {

			Element.show(name + '_view');
			Element.hide(name + '_edit');

			new Effect.Scale(name + '_view',(newheight / oldheight) * 100,{duration:0.5,scaleX:false,scaleContent:false});

		//Andernfalls einfach den Modus ändern
		} else {
			if ($(name + '_edit')) Effect.Fade(name + '_edit', { duration: 0.5 });
			if ($(name + '_delete')) Effect.Fade(name + '_delete', { duration: 0.5 });
			Effect.Appear(name + '_view', { duration: 0.5 });
		}

	} else if (mode == 'delete') {
		if ($(name + '_edit')) Effect.Fade(name + '_edit', { duration: 0.5 });
		Effect.Fade(name + '_view', { duration: 0.5 });
		Effect.Appear(name + '_delete', { duration: 0.5 });

	} else if (mode == 'edit') {

		//wenn oldheight und newheight übergeben wurde
		//"aufsliden" des Elements
		if(typeof newheight == 'number' && typeof oldheight == 'number') {

			if(Element.hasClassName(name + '_view', 'edit_hover')) {
				Element.removeClassName(name + '_view', 'edit_hover');
			}

			new Effect.Scale(name + '_view',(newheight / oldheight) * 100,{duration:0.5,scaleX:false,scaleContent:false,afterFinish:function(effect){

				Element.hide(name + '_view');
				Element.show(name + '_edit');

				if(norevert && typeof norevert != 'undefined') {
					$(name + '_view').style.height = '';
				}

				if ($(name + '_edit_input')) {
					$(name + '_edit_input').focus();
				}

			}});

		//Andernfalls einfach den Modus ändern
		} else {
			Effect.Fade(name + '_view', { duration: 0.5 });
			if ($(name + '_delete')) Effect.Fade(name+'_delete', { duration: 0.5 });
			Effect.Appear(name + '_edit', { duration: 0.5,afterFinish:function(effect){

				if ($(name + '_edit_input')) {
					$(name + '_edit_input').focus();
				}

			}});
		}


	}
}


//---- Boxen auf- und zuklappen
//@author Thomas Bachem
function toggleBox (name) {
	SLS.p({pageName: pagetitle_escaped});
	if (Element.visible(name)) {
		Effect.Appear(name+'_expand', { duration: 0.5,
			afterFinish: function (effect) {
				Element.hide(name+'_contract');
			}
		});
	} else {
		Element.show(name+'_contract');
		Effect.Fade(name+'_expand', { duration: 0.5 });
	}
	Effect.toggle(name, 'blind', { duration: 0.7 });
}


//#########################################################
// Profilseite
//#########################################################

//---- Alben auf Profilseite darstellen
//@author Sven Schollmeyer
function div_toggle (all,expand,contract) {
	SLS.p({pageName: pagetitle_escaped});
	if (Element.visible(all)) {
		Effect.Appear(expand, { duration: 0.5,
			afterFinish: function (effect) {
				Element.hide(contract);
			}
		});
	} else {
		Element.show(contract);
		Effect.Fade(expand, { duration: 0.5 });
	}
	Effect.toggle(all, 'blind', { duration: 1.0 });
}

//---- Notiz auf Benutzer-Profilseite darstellen
//@author Sven Schollmeyer
function show_contact_notices () {
	if (Element.visible('contact_notices')) {
		new Effect.SlideUp('contact_notices');
	} else {
		new Effect.SlideDown('contact_notices');
	}
}

//---- Scores auf Benutzer-Profilseite darstellen
//@author Sven Schollmeyer
function scores_toggle () {
	SLS.p({pageName: pagetitle_escaped});
	if (Element.visible('scores_content')) {
		new Effect.Fade('scores_content',{duration:0.5,afterFinish:function(){
			new Effect.Appear('scores_details_content',{duration:0.5})
		}});
	} else {
		new Effect.Fade('scores_details_content',{duration:0.5,afterFinish:function(){
			new Effect.Appear('scores_content',{duration:0.5})
		}});
	}
}