var contentTmpId = '';
var contentTmpValue = '';
var contentTmpType = '';
var votingTmpId = '';
var votingTmpValue = '';
var calendarTmpId = '';
var calendarTmpValue = '';
var userTmpId = '';
var userTmpValue = '';
var forwardTmp = '';
var tmp = '';
var messageTmpId = '';
var messageTmpValue = '';


//Variablen fuer Google Maps
var markerTmp = '';
var map = '';
var geocoder = '';
var geocoderSuccess = 0;
var baseIcon = '';


//Daten fuer Login senden
function login () {
	var formElements = document.forms['loginform'].elements;
	var myAjax = new Ajax.Request(config['fileWeb'], {method: 'get', parameters: 'ajax=login&loginname='+formElements['loginname'].value+'&loginpwd='+formElements['loginpwd'].value, onSuccess: loginReal, onException: loginError, onFailure:loginError});
}

function loginReal (originalRequest) {
	if (originalRequest.responseText == 'true') {
		reloadSite();
	} else if (originalRequest.responseText == 'relaunch') {
		window.location.href = 'http://stadtleben.de/deutschland/community/relaunch/';
	} else if (originalRequest.responseText == '') {
		alert("Oops, das ist nicht gut...");
	} else {
		document.getElementById('loginFormFields').innerHTML = originalRequest.responseText;
	}
}

function loginError (t) {
	alert('Ajax macht einen Fehler: '+t.status+' - '+t.statusText);
}

//Abmelden
function logout () {
	var pars = 'ajax=logout';
	var myAjax = new Ajax.Updater('logout', config['fileWeb'], {method: 'get', parameters: pars, onSuccess: reloadSite});
}

//aktuelle Webseite neu laden
function reloadSite () {
	var ziel = document.URL;
	document.location.href = ziel;
}


//Bild per Toolbar einfuegen
function insertImg(value, fieldId) {

	fieldObj = $(fieldId);

	if (value != '') insertTag2Textarea(value);
}


//markierten Text ermitteln
function saveMarkedText () {

	var text = '';

	//Internet Explorer
	if (document.selection) {
		fieldObj.focus();
		sel = document.selection.createRange();
		text = sel.text;

	//Mozilla
	} else if (fieldObj.selectionStart || fieldObj.selectionStart == '0') {
		var startPos = fieldObj.selectionStart;
		var endPos = fieldObj.selectionEnd;
		text = fieldObj.value.substring(startPos, endPos)
	}

	return text;
}


//String in Textfeld einfuegen
function insertTag2Textarea (value) {

	//Internet Explorer
	if (document.selection) {
		fieldObj.focus();
		sel = document.selection.createRange();
		sel.text = value;
		fieldObj.focus();

	//Mozilla
	} else if (fieldObj.selectionStart || fieldObj.selectionStart == '0') {
		var startPos = fieldObj.selectionStart;
		var endPos = fieldObj.selectionEnd;
		var scrollTop = fieldObj.scrollTop;
		fieldObj.value = fieldObj.value.substring(0, startPos) + value + fieldObj.value.substring(endPos, fieldObj.value.length);
		fieldObj.focus();
		fieldObj.selectionStart = startPos + value.length;
		fieldObj.selectionEnd = startPos + value.length;
        fieldObj.scrollTop = scrollTop;

	} else {
		fieldObj.value += value;
		fieldObj.focus();
	}
}


//Element per Toolbar einfuegen
function insertTag(fieldId, type) {

	var desc = '';
	var value = '';

	fieldObj = $(fieldId);

	if (type == 'li') {
		value = '\n<ul>\n<li><\/li>\n<li><\/li>\n<\/ul>\n';
	} else if (type == 'i') {
		desc = saveMarkedText(fieldObj);
		value = (desc) ? '<em>' + desc +'<\/em>' : '<em><\/em>';
	} else if (type == 'p') {
		desc = saveMarkedText(fieldObj);
		value = (desc) ? '\n<p>' + desc +'<\/p>\n' : '\n<p><\/p>\n';
	} else if (type == 'blockquote') {
		desc = saveMarkedText(fieldObj);
		value = (desc) ? '\n<blockquote>' + desc +'<\/blockquote>\n' : '\n<blockquote><\/blockquote>\n';
	} else if (type == 'h1') {
		desc = saveMarkedText(fieldObj);
		value = (desc) ? '\n<h1>' + desc +'<\/h1>\n' : '\n<h1><\/h1>\n';
	} else if (type == 'u') {
		desc = saveMarkedText(fieldObj);
		value = (desc) ? '<u>' + desc +'<\/u>' : '<u><\/u>';
	} else if (type == 'b') {
		desc = saveMarkedText(fieldObj);
		value = (desc) ? '<strong>' + desc +'<\/strong>' : '<strong><\/strong>';
	} else if (type == 'img') {
		obj = fieldObj;
	} else if (type == 'a') {
		var desc = saveMarkedText(fieldObj);
		var url = prompt(lang['toolbar.alink'] ,'http://');
		if (url) {
			if (desc == '') desc = prompt(lang['toolbar.alink2'] ,'');
			value = '<a href=\"' + url + '\">' + desc +'<\/a>';
		}
	} else if (type == 'video') {
		var desc = saveMarkedText(fieldObj);
		var url = prompt(lang['toolbar.videodesc'] ,'http://');
		if (url) {
			value = '<video src=\"' + url + '\" />';
		}
	}
	if (value != '') {
		insertTag2Textarea(value);
	}
}

function showInviteForm () {
	$('inviteformdesc').style.display='none';
	new Effect.SlideDown('inviteform');
}

function showUsersrelationsExpand () {
	if ($('usersrelationsmore').style.display == 'none') {
		$('usersrelationsshow_link').innerHTML=lang["users.relations.expand.less"];
		new Effect.SlideDown('usersrelationsmore');
	} else {
		$('usersrelationsshow_link').innerHTML=lang["users.relations.expand.more"];
		new Effect.SlideUp('usersrelationsmore');
	}
}

function showPwdChange () {
	$('pwdchangedesc').style.display='none';
	new Effect.SlideDown('pwdchange');
}

function showPortraitDownload () {
	$('user_image').value='';
	new Effect.SlideUp('showPortraitDelete', {duration: 1.0, afterFinish: new Effect.SlideDown('showPortraitDownload', {delay:1.0})});
}

function deleteFormGeo (type) {
	$(type+'_geolat').value='0';
	$(type+'_geolon').value='0';
	$(type+'_geoid').value='0';
	$(type+'_geoname').value='';
	$(type+'GeoName').innerHTML='';
	$(type+'GeoDelete').style.display='none';
}

function contentDelete (type, id, forward) {
	contentTmpId = id;
	contentTmpType = type;
	forwardTmp = forward;
	new Effect.Opacity(type+'Id'+id, { duration: 1.0, transition: Effect.Transitions.linear, from: 1.0, to: 0.5 });
	contentTmpValue = $(type+'Id'+id).innerHTML;
	Check = confirm(lang[type+'s.delete.confirm']);
	if (Check == true) {
		$(type+'Id'+id).innerHTML = '<div id="ajaxworkingopacity"><img src="'+config["pathSystem"]+'images/ajaxworkingopacity.gif" alt="" /> '+lang[type+'s.delete.working']+'</div>'+contentTmpValue;
		var myAjax = new Ajax.Request(config["fileWeb"], {method: 'get', parameters: 'ajax='+type+'sDelete&'+type+'_id='+id, onComplete:contentDeleteReal});
	} else {
		new Effect.Opacity(type+'Id'+id, { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
		$(type+'Id'+contentTmpId).innerHTML = contentTmpValue;
	}
}

function contentDeleteReal(originalRequest) {
	if (originalRequest.responseText == 'true') {
		Effect.Fade(contentTmpType+'Id'+contentTmpId);
		if (forwardTmp != '') window.location.href = forwardTmp;
	} else {
		alert(lang[contentTmpType+'s.delete.error']);
		new Effect.Opacity(contentTmpType+'Id'+contentTmpId, { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
		$(contentTmpType+'Id'+contentTmpId).innerHTML = contentTmpValue;
	}
}


function contentVoting (type, id, voting) {
	votingTmpId = 'voting-'+type+'-'+id;
	new Effect.Opacity(votingTmpId, { duration: 1.0, transition: Effect.Transitions.linear, from: 1.0, to: 0.5 });
	votingTmpValue = $(votingTmpId).innerHTML;
	$(votingTmpId).innerHTML = '<div id="ajaxworkingopacity"><img src="'+config["pathSystem"]+'images/ajaxworkingopacity.gif" alt="" /> '+lang["voting.working"]+'</div>'+votingTmpValue;
	var myAjax = new Ajax.Request(config["fileWeb"], {method: 'get', parameters: 'ajax=contentVoting&'+type+'_id='+id+'&voting='+voting, onComplete:contentVotingReal});
}

function contentVotingReal(originalRequest) {
	if (originalRequest.responseText != '') {
		$(votingTmpId).innerHTML = originalRequest.responseText;
		new Effect.Opacity(votingTmpId, { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
	} else {
		$(votingTmpId).innerHTML = votingTmpValue;
		new Effect.Opacity(votingTmpId, { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
	}
}

function deleteCalendar (calendarId, forward) {
	calendarTmpId = calendarId;
	forwardTmp = forward;
	calendarTmpValue = $('calendarId'+calendarId).innerHTML;
	new Effect.Opacity('calendarId'+calendarId, { duration: 1.0, transition: Effect.Transitions.linear, from: 1.0, to: 0.5 });
	Check = confirm(lang["calendar.delete.confirm"]);
	if (Check == true) {
		$('calendarId'+calendarId).innerHTML = '<div id="ajaxworkingopacity"><img src="'+config["pathSystem"]+'images/ajaxworkingopacity.gif" alt="" /> '+lang["calendar.delete.working"]+'</div>'+calendarTmpValue;
		var myAjax = new Ajax.Request(config["fileWeb"], {method: 'get', parameters: 'ajax=calendarDelete&calendar_id='+calendarId, onComplete:deleteCalendarReal});
	} else {
		new Effect.Opacity('calendarId'+calendarId, { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
		$('calendarId'+calenderTmpId).innerHTML = calendarTmpValue;
	}
}

function deleteCalendarReal (originalRequest) {
	if (originalRequest.responseText == 'true') {
		Effect.Fade('calendarId'+calendarTmpId);
		if (forwardTmp != '') window.location.href = forwardTmp;
	} else {
		alert(lang["calendar.delete.error"]);
		$('calendarId'+calendarTmpId).innerHTML = calendarTmpValue;
		new Effect.Opacity('calendarId'+calendarTmpId, { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
	}
}

function deactivateUser (id, forward) {
	userTmpId = id;
	forwardTmp = forward;
	new Effect.Opacity('userId'+id, { duration: 1.0, transition: Effect.Transitions.linear, from: 1.0, to: 0.5 });
	userTmpValue = $('userId'+id).innerHTML;
	Check = confirm(lang["users.deactivate.confirm"]);
	if (Check == true) {
		$('userId'+id).innerHTML = '<div id="ajaxworkingopacity"><img src="'+config["pathSystem"]+'images/ajaxworkingopacity.gif" alt="" /> '+lang["users.deactivate.working"]+'</div>'+userTmpValue;
		var myAjax = new Ajax.Request(config["fileWeb"], {method: 'get', parameters: 'ajax=usersDeactivate&user_id='+id, onComplete:deactivateUserReal});
	} else {
		new Effect.Opacity('userId'+id, { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
		$('userId'+userTmpId).innerHTML = userTmpValue;
	}
}

function deactivateUserReal (originalRequest) {
	if (originalRequest.responseText != 'error') {
		if (forwardTmp == '') {
			$('userId'+userTmpId).innerHTML = originalRequest.responseText;
			new Effect.Opacity('userId'+userTmpId, { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
		} else {
			new Effect.Fade('userId'+userTmpId);
			window.location.href = forwardTmp;
		}
	} else {
		alert(lang["users.deactivate.error"]);
		$('userId'+userTmpId).innerHTML = userTmpValue;
		new Effect.Opacity('userId'+userTmpId, { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
	}
}

function activateUser (id, forward) {
	userTmpId = id;
	forwardTmp = forward;
	new Effect.Opacity('userId'+id, { duration: 1.0, transition: Effect.Transitions.linear, from: 1.0, to: 0.5 });
	userTmpValue = $('userId'+id).innerHTML;
	Check = confirm(lang["users.activate.confirm"]);
	if (Check == true) {
		$('userId'+id).innerHTML = '<div id="ajaxworkingopacity"><img src="'+config["pathSystem"]+'images/ajaxworkingopacity.gif" alt="" /> '+lang["users.activate.working"]+'</div>'+userTmpValue;
		var myAjax = new Ajax.Request(config["fileWeb"], {method: 'get', parameters: 'ajax=usersActivate&user_id='+id, onComplete:activateUserReal});
	} else {
		new Effect.Opacity('userId'+id, { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
		$('userId'+userTmpId).innerHTML = userTmpValue;
	}
}

function activateUserReal (originalRequest) {
	if (originalRequest.responseText != 'error') {
		if (forwardTmp == '') {
			$('userId'+userTmpId).innerHTML = originalRequest.responseText;
			new Effect.Opacity('userId'+userTmpId, { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
		} else {
			new Effect.Fade('userId'+userTmpId);
			window.location.href = forwardTmp;
		}
	} else {
		alert(lang["users.activate.error"]);
		$('userId'+userTmpId).innerHTML = userTmpValue;
		new Effect.Opacity('userId'+userTmpId, { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
	}
}

function deleteMessageLine (id) {

	messageTmpId = id;
	messageTmpValue = $('messageId'+id).innerHTML;

	Check = confirm(lang["messages.delete.confirm"]);
	if (Check == true) {
		/*$('messageId'+id).innerHTML = '<td colspan="5"><img src="'+config["pathSystem"]+'images/ajaxworking.gif" alt="" /> '+lang["messages.delete.working"]+'</td>';*/
		var myAjax = new Ajax.Request(config["fileWeb"], {method: 'get', parameters: 'ajax=messagesDelete&message_id='+id, onComplete:deleteMessageLineReal});
	} else {
	}

}

function deleteMessageLineReal(originalRequest) {
	if (originalRequest.responseText == 'true') {
		Effect.Fade('messageId'+messageTmpId);
	} else {
		alert(lang["messages.delete.error"]);
		/*$('messageId'+messageTmpId).innerHTML = messageTmpValue;*/
	}
}

function deleteMessage (id, forward) {

	forwardTmp = forward;
	messageTmpId = id;
	messageTmpValue = $('messageId'+id).innerHTML;
	new Effect.Opacity('messageId'+id, { duration: 1.0, transition: Effect.Transitions.linear, from: 1.0, to: 0.5 });

	Check = confirm(lang["messages.delete.confirm"]);
	if (Check == true) {
		$('messageId'+id).innerHTML = '<div id="ajaxworkingopacity"><img src="'+config["pathSystem"]+'images/ajaxworkingopacity.gif" alt="" /> '+lang["messages.delete.working"]+'</div>'+messageTmpValue;
		var myAjax = new Ajax.Request(config["fileWeb"], {method: 'get', parameters: 'ajax=messagesDelete&message_id='+id, onComplete:deleteMessageReal});
	} else {
		new Effect.Opacity('messageId'+id, { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
		$('messageId'+userTmpId).innerHTML = userTmpValue;
	}

}

function deleteMessageReal(originalRequest) {
	if (originalRequest.responseText == 'true') {
		Effect.Fade('messageId'+messageTmpId);
		if (forwardTmp != '') window.location.href = forwardTmp;
	} else {
		alert(lang["messages.delete.error"]);
		new Effect.Opacity('messageId'+messageTmpId, { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
		$('messageId'+messageTmpId).innerHTML = messageTmpValue;
	}
}


function deleteMessagesAll (folder) {

	new Effect.Opacity('messages_folder', { duration: 1, transition: Effect.Transitions.linear, from: 1.0, to: 0.5 });
	Check = confirm(lang["messages.delete.all.confirm"]);
	if (Check == true) {
		var myAjax = new Ajax.Request(config["fileWeb"], {method: 'get', parameters: 'ajax=messagesDeleteAll&folder='+folder, onComplete:deleteMessagesAllReal});
	} else {
		new Effect.Opacity('messages_folder', { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
	}

}

function deleteMessagesAllReal (originalRequest) {
	if (originalRequest.responseText == 'true') {
		Effect.Fade('messages_folder');
	} else {
		alert(lang["messages.delete.all.error"]);
		new Effect.Opacity('messages_folder', { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
	}
}



/*
 * Smilies einem Textfeld hinzufuegen
 */

function smilieAdd (fieldId, code) {

	//Internet Explorer
	if (document.selection) {
		$(fieldId).focus();
		sel = document.selection.createRange();
		sel.text = ' '+code+' ';
		$(fieldId).focus();

	//Mozilla
	} else if ($(fieldId).selectionStart || $(fieldId).selectionStart == '0') {
		var startPos = $(fieldId).selectionStart;
		var endPos = $(fieldId).selectionEnd;
		$(fieldId).value = $(fieldId).value.substring(0, startPos) + ' '+code+' ' + $(fieldId).value.substring(endPos, $(fieldId).value.length);
		$(fieldId).focus();
		$(fieldId).selectionStart = startPos + code.length + 2;
		$(fieldId).selectionEnd = startPos + code.length + 2;

	} else {
		$(fieldId).value += ' '+code+' ';
		$(fieldId).focus();
	}

}

//Ansicht auf Stichwoerter aendern
function loadKeyword(level) {
	var formElements = document.forms['tagssearch'].elements;
	var url = config['usersTags'];
	for (var i=1; i<=level; i++) {
		url = url + formElements['tag' + i].value + '/';
	}
	window.location.href = url;
}


//Bild auswaehlen, zusammenstellen und einfuegen
function imageSelector (fieldId, imagePath) {

	var formElements = document.forms['imagesselect'].elements;
	var insert = '';
	var subtitle = '';

	if (formElements['image_align'][0].checked == true) {
		className = ' class="align_left"';
	} else if (formElements['image_align'][1].checked == true) {
		className = ' class="align_center"';
	} else if (formElements['image_align'][2].checked == true) {
		className = ' class="align_right"';
	}

	if (formElements['image_url'].value != '') insert = insert + '<a href="' + formElements['image_url'].value + '"' + className + '>';
	insert = insert + '<img src="' + imagePath + '" ';
	if (formElements['image_url'].value == '') insert = insert + className;
	insert = insert + subtitle + ' />';
	if (formElements['image_url'].value != '') insert = insert + '</a>';

	parent.insertImg(insert, fieldId);
	parent.myLightbox.end();
}

//externes Bild auswaehlen, zusammenstellen und einfuegen
function imageSelectorExtern (fieldId) {

	var formElements = document.forms['imagesselectextern'].elements;

	var insert = '<img src="' + formElements['image_extern'].value + '" alt="" />';

	parent.insertImg(insert, fieldId);
	parent.myLightbox.end();
}

//Bild auswaehlen, zusammenstellen und einfuegen
function imageSelectorTinymce (fieldId, imagePath) {

	var formElements = document.forms['imagesselect'].elements;
	var insert = '';
	var subtitle = '';

	if (formElements['image_align'][0].checked == true) {
		className = ' class="align_left"';
	} else if (formElements['image_align'][1].checked == true) {
		className = ' class="align_center"';
	} else if (formElements['image_align'][2].checked == true) {
		className = ' class="align_right"';
	}

	if (formElements['image_url'].value != '') insert = insert + '<a href="' + formElements['image_url'].value + '"' + className + '>';
	insert = insert + '<img src="' + imagePath + '" ';
	if (formElements['image_url'].value == '') insert = insert + className;
	insert = insert + subtitle + ' />';
	if (formElements['image_url'].value != '') insert = insert + '</a>';

	parent.tinyMCE.execInstanceCommand(fieldId, 'mceInsertContent', false, insert);
	parent.myLightbox.end();
}



/* --- Chat starten --- */
var chatUserId = '';

function chatInit (userId) {
	chatUserId = userId;
	var myAjax = new Ajax.Request(config['fileWeb'], {method: 'get', parameters: 'ajax=chatInit&user_id='+userId, onComplete:chatInitReal});
}

function chatInitReal(originalRequest) {
	if (originalRequest.responseText != '') {
		window.open(config['fileWeb']+'?popup=chatWindow&user_id='+chatUserId+'&key='+originalRequest.responseText, lang["chat.window.header"], 'left=100, top=100, width=700,height=525,scrollbars=yes');
	} else {
		alert(lang["chat.init.error"]);
	}
}


/* --- Popup fuer Watchlist anzeigen --- */
var onlinebuddiesFadeStatus = 0;

function onlineBuddiesShow (useAjax) {
	onlinebuddiesStatus = 0;
	if ($('onlinebuddies_popup').style.display == '') {
		Effect.Fade('onlinebuddies_popup');
	} else {
		Effect.Appear('onlinebuddies_popup');
		if (useAjax == 1) {
			new Ajax.Request(config["fileWeb"], {method: 'get', parameters: 'ajax=onlinebuddiesLoad', onComplete:onlineBuddiesShowReal});
		}
	}
}

function onlineBuddiesAppear () {
	onlinebuddiesStatus = 0;
}

function onlineBuddiesFade () {
	onlinebuddiesStatus = 1;
	window.setTimeout("onlineBuddiesFadeReal()",2000);
}

function onlineBuddiesFadeReal () {
	if (onlinebuddiesStatus == 1 && $('onlinebuddies_popup').style.display == '') {
		Effect.Fade('onlinebuddies_popup');
	}
}

/* --- Inhalt fuer Watchlist laden --- */
function onlineBuddiesShowReal (originalRequest) {
	if (originalRequest.responseText != '') {
		$('onlinebuddies_popup').innerHTML=originalRequest.responseText;
	}
}


/* --- Inhalt aus Watchlist entfernen --- */
var watchlistId = '';

function watchlistDelete (type, id) {
	watchlistId = type+'-'+id;
	var myAjax = new Ajax.Request(config["fileWeb"], {method: 'get', parameters: 'ajax=watchlistDelete&type='+type+'&id='+id, onComplete:watchlistDeleteReal});
}

function watchlistDeleteReal (originalRequest) {
	if (originalRequest.responseText == 'true') {
		Effect.Fade("watchlist-"+watchlistId);
	}
}


//Inhalte fuer Watchlist markieren
function updateWatchlist (ajax, type, id, msg) {
	var myAjax = new Ajax.Updater(type+'marker-'+id, config["fileWeb"], { method: 'get', parameters: 'ajax='+ajax+'&'+type+'_id='+id+'&msg='+msg});
}


//Einladung zu einem Termin per Ajax ablehnen
function inviteCancel (calendarId) {
	var myAjax = new Ajax.Request(config["fileWeb"], {method: 'get', parameters: 'ajax=inviteCancel&calendar_id='+calendarId, onComplete:inviteCancelReal});
}

function inviteCancelReal (originalRequest) {
	if (originalRequest.responseText == 'true') {
		alert('Der Termin wurde erfolgreich abgelehnt...');
	} else {
		alert('Der Termin zur Einladung wurde bereits gelöscht...');
	}
}


/* --- Kommentar aus Liste loeschen --- */
var commentIdTmp = '';
var commentTmpValue = '';

function deleteComment (type, typeId, commentId) {
	commentIdTmp = commentId;
	commentTmpValue = $('commentId'+commentId).innerHTML;
	new Effect.Opacity('commentId'+commentId, { duration: 1.0, transition: Effect.Transitions.linear, from: 1.0, to: 0.5 });
	Check = confirm(lang["comment.delete.confirm"]);
	if (Check == true) {
		$('commentId'+commentId).innerHTML = '<div id="ajaxworking"><img src="'+config["pathSystem"]+'images/ajaxworking.gif" alt="" /> '+lang["comment.delete.working"]+'</div>'+commentTmpValue;
		var tmp = new Effect.Highlight('ajaxworking', {startcolor:'#ffffff', endcolor:'#ffff99', restorecolor:'#ffff99'})
		var myAjax = new Ajax.Request(config["fileWeb"], {method: 'get', parameters: 'ajax=deleteComment&type='+type+'&'+type+'_id='+typeId+'&comment_id='+commentId, onComplete:deleteCommentReal});
	} else {
		new Effect.Opacity('commentId'+commentId, { duration: 1.0, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
		$('commentId'+commentIdTmp).innerHTML = commentTmpValue;
	}
}

function deleteCommentReal(originalRequest) {
	if (originalRequest.responseText == 'true') {
		Effect.Fade('commentId'+commentIdTmp);
	} else {
		$('commentId'+commentIdTmp).innerHTML = commentTmpValue;
		alert(lang["comment.delete.error"]);
		new Effect.Opacity('commentId'+commentIdTmp, { duration: 1.0, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
	}
}


/* --- Chat --- */
var buttonSave = '';
var chatKey = '';
var chatUserId = 0;

function pencode (input) {
	input = escape( input.replace( /\+/, "{pluszeichen}") );
	return input;
}

function chatInsert (userId, key) {
	if( $('chat_content').value != "" ) {
		var pars = 'ajax=chatMessagesSave&user_id='+userId+'&key='+key+'&content='+pencode($('chat_content').value);
		buttonSave = $('saveButton').innerHTML;
		$('saveButton').innerHTML = '<span id="ajaxworking" style="background: transparent;"><img src="'+config["pathSystem"]+'images/ajaxworking.gif" alt="" /> '+lang["chat.form.working"]+'</span>';
		new Ajax.Request(config["fileWeb"], {method: 'post', parameters: pars, onComplete: chatMessageAdd});
	} else {
		window.alert(lang["chat.form.error"]);
	}
}

function chatListener (userId, key) {
	chatUserId = userId;
	chatKey = key;
	document.onkeypress = chatShortcuts;
}

function chatShortcuts (evt) {

	var code = '';
	evt = (evt) ? evt : ((event) ? event : null);

	if (!evt.ctrlKey) {
		if (evt.which) {
			code = evt.which;
		} else if (evt.keyCode) {
			code = evt.keyCode;
		}
		if (code == 13) {
			chatInsert(chatUserId,chatKey)
		}
	} else {
		$('chat_content').value += "\n";
	}

}

function chatClose (userId, key, userName) {
	new Ajax.Request(config["fileWeb"], {method: 'post', parameters: 'ajax=chatMessagesSave&user_id='+userId+'&key='+key+'&content='+pencode(userName+' '+lang["chat.form.close"])});
}

function chatMessagesDelete () {
	new Effect.Opacity('chatmessages', { duration: 1.5, transition: Effect.Transitions.linear, from: 1.0, to: 0.1, afterFinish:chatMessagesDeleteReal });
}

function chatMessagesDeleteReal () {
	$('chatmessages').innerHTML = '';
	new Effect.Opacity('chatmessages', { duration: 0, transition: Effect.Transitions.linear, from: 0.1, to: 1.0});
}

function chatMessageAdd (originalRequest) {
	if( originalRequest.responseText != '' ) {
		new Insertion.Bottom('chatmessages', originalRequest.responseText );
		new Effect.ScrollTo('chatdelete')
	}
	$('chat_content').value='';
	$('saveButton').innerHTML = buttonSave;
}

function commentEmoticon(code) {
	var cache = document.chatfields.chat_content.value;
	document.chatfields.chat_content.value = cache+' '+code+' ';
	document.chatfields.chat_content.focus();
}

/* --- Ort per Ajax loeschen --- */

var placeTmpId = '';
var placeTmpValue = '';

function deletePlace (placeId, forward) {
	placeTmpId = placeId;
	forwardTmp = forward;
	placeTmpValue = $('placeId'+placeId).innerHTML;
	new Effect.Opacity('placeId'+placeId, { duration: 1.0, transition: Effect.Transitions.linear, from: 1.0, to: 0.5 });
	Check = confirm(lang["places.delete.confirm"]);
	if (Check == true) {
		$('placeId'+placeId).innerHTML = '<div id="ajaxworkingopacity"><img src="'+config["pathSystem"]+'images/ajaxworkingopacity.gif" alt="" /> '+lang["places.delete.working"]+'</div>'+placeTmpValue;
		var myAjax = new Ajax.Request(config["fileWeb"], {method: 'get', parameters: 'ajax=placesDelete&place_id='+placeId, onComplete:deletePlaceReal});
	} else {
		new Effect.Opacity('placeId'+placeTmpId, { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
		$('placeId'+placeTmpId).innerHTML = placeTmpValue;
	}
}

function deletePlaceReal(originalRequest) {
	if (originalRequest.responseText == 'true') {
		Effect.Fade('placeId'+placeTmpId);
		if (forwardTmp != '') window.location.href = forwardTmp;
	} else {
		alert(lang["places.delete.error"]);
		$('placeId'+placeTmpId).innerHTML = placeTmpValue;
	}
}


/* --- Inhalt als Favorit markieren --- */
var favoriteTmpValue = "";
var favoriteTmpType = "";

function favoritesList (type, id, todo) {
	favoriteTmpType = type;
	favoriteTmpValue = $(favoriteTmpType+'_favorites').innerHTML;
	new Effect.Opacity(favoriteTmpType+'_favorites', { duration: 1, transition: Effect.Transitions.linear, from: 1.0, to: 0.5 });
	$(favoriteTmpType+'_favorites').innerHTML = '<div id="ajaxworkingopacity"><img src="'+config["pathSystem"]+'images/ajaxworkingopacity.gif" alt="" /> '+lang["favorites.working"]+'</div>'+favoriteTmpValue;
	var myAjax = new Ajax.Request(config["fileWeb"], {method: 'get', parameters: 'ajax=favoritesListAjax&type='+type+'&id='+id+'&todo='+todo, onComplete:favoritesListReal});
}

function favoritesListReal (originalRequest) {
	if (originalRequest.responseText != '') {
		new Effect.Opacity(favoriteTmpType+'_favorites', { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
		$(favoriteTmpType+'_favorites').innerHTML = originalRequest.responseText;
	} else {
		new Effect.Opacity(favoriteTmpType+'_favorites', { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
		$(favoriteTmpType+'_favorites').innerHTML = favoriteTmpValue;
		alert(lang["favorites.error"]);
	}
}



/* --- unnoetige Leerzeichen entfernen --- */
function trim (str) {
	return (str.replace(/^\s+/,'').replace(/\s+$/,''));
}



/* --- Tags per Popup hinzufuegen --- */
function tagsSelectorInit (maxFields) {

	var formElements = document.forms['tagsselect'].elements;
	var tagsList = parent.document.getElementById("keysSelect").value;
	var tagsCurrent = tagsList.split(',');

	for (x=0; x<tagsCurrent.length; x++) {
		tagsCurrent[x] = trim(tagsCurrent[x]);
	}

	for (i=0; i<maxFields; i++) {
		for (x=0; x<tagsCurrent.length; x++) {
			if (formElements['tagsselect_' + i].value == tagsCurrent[x]) {
				formElements['tagsselect_' + i].checked = true;
			}
		}
	}

}



/* --- Tags per Popup hinzufuegen --- */
function tagsSelector (maxFields) {

	var formElements = document.forms['tagsselect'].elements;
	var insert = parent.document.getElementById("keysSelect").value;
	var tagsCurrent = insert.split(',');
	var tagsHash = new Object();

	for (x=0; x<tagsCurrent.length; x++) {
		tagsCurrent[x] = trim(tagsCurrent[x]);
		tagsHash[tagsCurrent[x]] = 1;
	}

	for (i=0; i<maxFields; i++) {
		if (formElements['tagsselect_' + i].checked == true) {
			if (tagsHash[formElements['tagsselect_' + i].value] != 1) {
	   			if (insert == '') {
					insert = formElements['tagsselect_' + i].value;
	   			} else {
					insert = insert + ', ' + formElements['tagsselect_' + i].value;
	   			}
			}
		} else {
			if (tagsHash[formElements['tagsselect_' + i].value] == 1) {
				eval('var match = /\\s*\\b'+formElements['tagsselect_' + i].value+'\\b,*\\s*/');
				insert = insert.replace(match, '');
			}
		}
	}

	parent.document.getElementById("keysSelect").value = insert;
	parent.myLightbox.end();
}


/* --- Details zu einem Link automatisch nachladen --- */
function linksAutoData (url) {

	if ($('link_title').value == '' && $('link_content').value == '') {
		var myAjax = new Ajax.Request(config["fileWeb"], {method: 'get', parameters: 'ajax=linksAutoData&url='+url, onComplete:linksAutoDataReal});
	}

}

function linksAutoDataReal (originalRequest) {
	var xmldoc = originalRequest.responseXML;
	if(xmldoc == null || xmldoc == 'undefined') {
		return;
	}
	$('link_title').value = xmldoc.getElementsByTagName('title').item(0).firstChild.data;
	$('link_content').value = xmldoc.getElementsByTagName('content').item(0).firstChild.data
}


/* --- Benutzer als Buddie bestaetigen --- */
function usersBuddieChecked (id) {
	userTmpId = id;
	Check = confirm(lang["users.buddieschecked.confirm"]);
	if (Check == true) {
		new Ajax.Request(config["fileWeb"], {method: 'get', parameters: 'ajax=usersBuddieChecked&user_id='+id, onComplete:usersBuddieCheckedReal});
	}
}

function usersBuddieCheckedReal(originalRequest) {
	if (originalRequest.responseText == 'true') {
		alert(lang["users.buddieschecked.success"]);
		if ($('buddieCheck-'+userTmpId) != undefined) {
			$('buddieCheck-'+userTmpId).style.display='none';
		}
	} else {
		alert(lang["users.buddieschecked.error"]);
	}
}

/* --- Benutzer als Buddie loeschen --- */
function usersBuddieDelete (id, type) {
	userTmpId = id;
	Check = confirm(lang["users.buddiesdelete.confirm"]);
	if (Check == true) {
		new Ajax.Request(config["fileWeb"], {method: 'get', parameters: 'ajax=usersBuddieDelete&user_id='+id+'&type='+type, onComplete:usersBuddieDeleteReal});
	}
}

function usersBuddieDeleteReal(originalRequest) {
	if (originalRequest.responseText == 'true') {
		alert(lang["users.buddiesdelete.success"]);
		if ($('buddieCheck-'+userTmpId) != undefined) {
			$('buddieCheck-'+userTmpId).style.display='none';
		}
	} else {
		alert(lang["users.buddiesdelete.error"]);
	}
}

/* --- Plugin fuer tinyMCE --- */
var TinyMCE_GupsiimagePlugin = {

	getControlHTML : function(cn) {
		switch (cn) {
			case "gupsiimage":

				return '<a id="{$editor_id}_gupsiimage" href="'+config["fileWeb"]+'?popup=imagesSelect&fieldId={$editor_id}" rel="lightframe" class="mceButtonNormal"><img src="http://localhost/gupsimedia/system/images/icon_edit.gif" alt="" /></a>';;

		}

		return "";
	},

	execCommand : function(editor_id, element, command, user_interface, value) {
		switch (command) {
			case "mceGupsiimage":
				// Do your custom command logic here.
				alert('xxx');

				return true;
		}

		return false;
	}

};


/* --- Location per Geo-Daten auswaehlen --- */
function placesDefine () {

	if (GBrowserIsCompatible()) {

		var geoLat = $('place_geolat').value;
		var geoLon = $('place_geolon').value;
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.addControl(new GOverviewMapControl());

		if (geoLat != '' && geoLon != '') {
			map.setCenter(new GLatLng(geoLat, geoLon), 10);
		} else {
			map.setCenter(new GLatLng(50.079176, 8.238373), 5);
		}

		GEvent.addListener(map, "click", function(marker, point) {
			if (marker) {
				map.removeOverlay(marker);
				$('place_geolat').value='';
				$('place_geolon').value='';
			} else {
				marker = new GMarker(point);
				if (markerTmp != '') {
					map.removeOverlay(markerTmp);
				}
				map.addOverlay(marker);
				markerTmp = marker;
				$('place_geolat').value=point.lat();
				$('place_geolon').value=point.lng();
			}
		});

		if (geoLat != '' && geoLon != '') {
			var point = new GLatLng(geoLat, geoLon);
			markerTmp = new GMarker(point);
			map.addOverlay(markerTmp);
		}
	}
}



/* --- Google Map mit Locations per Ajax anzeigen --- */
function googleMapInit (type, userNickname, tagString, geoLat, geoLon, geoZoom) {

	if (GBrowserIsCompatible()) {

		var infoTabs = '';
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.addControl(new GOverviewMapControl ());
		if (geoLat != 0 && geoLon != 0 && geoZoom != '') {
			map.setCenter(new GLatLng(geoLat, geoLon), parseInt(geoZoom));
		} else {
			map.setCenter(new GLatLng(50.079176, 8.238373), 5);
		}

		createBaseIcon();

		GEvent.addListener(map, "dragend", function() {
			placesLoad(type, userNickname, tagString);
		});
		GEvent.addListener(map, "zoomend", function() {
			placesLoad(type, userNickname, tagString);
		});

		placesLoad(type, userNickname, tagString);

	}
}


/* --- Standard-Icon fuer Google Map erzeugen ---*/
function createBaseIcon () {

	baseIcon = new GIcon();
	baseIcon.image = config["pathSystem"]+'images/icons/googleicon_allgemein.png';
	baseIcon.shadow = config["pathSystem"]+'images/icons/googleicon_schatten.png';
	baseIcon.iconSize = new GSize(24, 26);
	baseIcon.shadowSize = new GSize(24, 26);
	baseIcon.iconAnchor = new GPoint(24, 26);
	baseIcon.infoWindowAnchor = new GPoint(9, 2);
	baseIcon.infoShadowAnchor = new GPoint(18, 25);

	return baseIcon;
}


/* --- individuelles Icon fuer Google Map erzeugen ---*/
function createCustomIcon (type) {

	var icon = new GIcon(baseIcon);

	if (type == 1) {
		icon.image = config["pathSystem"]+'images/icons/googleicon_haltestelle.png';
	} else if (type == 2) {
		icon.image = config["pathSystem"]+'images/icons/googleicon_touristik.png';
	} else if (type == 3) {
		icon.image = config["pathSystem"]+'images/icons/googleicon_club_disco.png';
	} else if (type == 4) {
		icon.image = config["pathSystem"]+'images/icons/googleicon_gastronomie.png';
	} else if (type == 5) {
		icon.image = config["pathSystem"]+'images/icons/googleicon_shopping.png';
	} else if (type == 6) {
		icon.image = config["pathSystem"]+'images/icons/googleicon_kultur.png';
	} else if (type == 'weblog') {
		icon.image = config["pathSystem"]+'images/icons/googleicon_blog.png';
	} else if (type == 'image') {
		icon.image = config["pathSystem"]+'images/icons/googleicon_video_bilder.png';
	} else if (type == 'calendar') {
		icon.image = config["pathSystem"]+'images/icons/googleicon_termine.png';
	}

	return icon;
}


/* --- Geodaten per Download laden --- */
function placesLoad (type, userNickname, tagString) {

	new Effect.Opacity('map', { duration: 1.0, transition: Effect.Transitions.linear, from: 1.0, to: 0.5 });

	map.clearOverlays();

	Rectangle.prototype = new GOverlay();

	function Rectangle(bounds) {
		this.bounds_ = bounds;
	}

	Rectangle.prototype.initialize = function(map) {
		var div = document.createElement("div");
		div.style.position = "absolute";
		map.getPane(G_MAP_MAP_PANE).appendChild(div);
		this.map_ = map;
		this.div_ = div;
	}

	Rectangle.prototype.remove = function() {
		this.div_.parentNode.removeChild(this.div_);
	}

	Rectangle.prototype.redraw = function(force) {
		if (!force) return;

		//Groesse der Karte ermitteln
		var c1 = this.map_.fromLatLngToDivPixel(this.bounds_.getSouthWest());
		var c2 = this.map_.fromLatLngToDivPixel(this.bounds_.getNorthEast());

		//Message positionieren
		this.div_.style.width = "170px";
		this.div_.style.height = "20px";
		this.div_.style.left = (Math.min(c2.x, c1.x)) + "px";
		this.div_.style.top = (Math.min(c2.y, c1.y)) + "px";

		var elementId = document.createAttribute("id");
		elementId.nodeValue = "ajaxworkingopacity";
		this.div_.setAttributeNode(elementId);

		var img = document.createElement("img");
		var imgSrc = document.createAttribute("src");
		imgSrc.nodeValue = config["pathSystem"]+'images/ajaxworkingopacity.gif';
		img.setAttributeNode(imgSrc);

		this.div_.appendChild(img);
		this.div_.appendChild(document.createTextNode(' Bitte warten ... '));

	}

	var bounds = map.getBounds();
	var southWest = bounds.getSouthWest();
	var northEast = bounds.getNorthEast();
	var lngDelta = (northEast.lng() - southWest.lng()) / 4;
	var latDelta = (northEast.lat() - southWest.lat()) / 4;
	var rectBounds = new GLatLngBounds(new GLatLng(southWest.lat() + latDelta, southWest.lng() + lngDelta), new GLatLng(northEast.lat() - latDelta, northEast.lng() - lngDelta));
	var ajaxOverlay = new Rectangle(rectBounds);

	map.addOverlay(ajaxOverlay);

	GDownloadUrl(config["fileWeb"]+'?ajax=getGoogleMapsData&nickname='+userNickname+'&tag='+tagString+'&type='+type+'&ne_lat='+northEast.lat()+'&ne_lon='+northEast.lng()+'&sw_lat='+southWest.lat()+'&sw_lon='+southWest.lng(), function(data, responseCode) {

		var xml = GXml.parse(data);
		var markers = xml.documentElement.getElementsByTagName("point");

		for (var i = 0; i < markers.length; i++) {

			var lat = parseFloat(markers[i].getElementsByTagName("lat")[0].firstChild.nodeValue);
			var lon = parseFloat(markers[i].getElementsByTagName("lon")[0].firstChild.nodeValue);
			var title = markers[i].getElementsByTagName("title")[0].firstChild.nodeValue;
			var url = markers[i].getElementsByTagName("url")[0].firstChild.nodeValue;
			var user = markers[i].getElementsByTagName("user")[0].firstChild.nodeValue;
			var content = markers[i].getElementsByTagName("content")[0].firstChild.nodeValue;
			var category = markers[i].getElementsByTagName("category")[0].firstChild.nodeValue;
			var point = new GLatLng(lat, lon);
			var placeDesc = '<a href="'+url+'" target="_top"><strong>'+title+'</strong></a><br />'+content;

			if (markers[i].getElementsByTagName("current")[0] == undefined) {

				map.addOverlay(createMarker(point, placeDesc, category));

			} else {

				var current = markers[i].getElementsByTagName("current")[0];
				var currentUrl = current.getElementsByTagName("url")[0].firstChild.nodeValue;
				var currentTitle = current.getElementsByTagName("title")[0].firstChild.nodeValue;
				var currentContent = current.getElementsByTagName("content")[0].firstChild.nodeValue;
				var currentDate = current.getElementsByTagName("date")[0].firstChild.nodeValue;
				var currentDesc = '<a href="'+currentUrl+'" target="_top"><strong>'+currentTitle+'</strong></a><br /><small>'+currentDate+'</small><br />'+currentContent;

				map.addOverlay(createMarkerTab(point, [new GInfoWindowTab('Aktuell', currentDesc), new GInfoWindowTab('Location', placeDesc)], type));
			}

		}

	});

	map.removeOverlay(ajaxOverlay);

	new Effect.Opacity('map', { duration: 1.0, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
}


/* --- einfacher Marker fuer Google Map erzeugen --- */
function createMarker (point, html, type) {

	var icon = createCustomIcon(type);

	var marker = new GMarker(point, icon);
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(html, { maxWidth: 300 });
	});
	return marker;

}

/* --- erweiteter Marker fuer Google Map erzeugen --- */
function createMarkerTab (point, tabs, type) {

	var icon = createCustomIcon(type);

	var marker = new GMarker(point, icon);
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowTabsHtml(tabs, { maxWidth: 300 });
	});
	return marker;

}


/*
 * Location anhand einer Adresse auswaehlen
 */
function placesFormSearch () {

	if (GBrowserIsCompatible()) {

		var address = '';
		var street = $('place_street').value;
		var plz = $('place_plz').value;
		var city = $('place_city').value;
		if (!geocoder) geocoder = new GClientGeocoder();

		if (geocoder) {

			if (street != '') address += street;
			if (plz != '') {
				if (address != '') address += ', ';
			}
			if (city != '') {
				if (address != '') address += ' ';
				address += city;
			}

			geocoder.getLatLng(
				address,
				function(point) {
					if (!point) {
						if (plz != '') {
							geocoder.getLatLng(
								plz,
								function(point) {
									if (!point) {
										alert(lang["places.form.search.error"]);
									} else {
										if (markerTmp != '') map.removeOverlay(markerTmp);
										map.setCenter(point, 13);
										var marker = new GMarker(point);
										markerTmp = marker;
										map.addOverlay(marker);
										marker.openInfoWindowHtml(address);
										$('place_geolat').value=point.lat();
										$('place_geolon').value=point.lng();
										alert(lang["places.form.search.warning"]);
									}
								}
							);
						} else if (city != '') {
							geocoder.getLatLng(
								city,
								function(point) {
									if (!point) {
										alert(lang["places.form.search.error"]);
									} else {
										if (markerTmp != '') map.removeOverlay(markerTmp);
										map.setCenter(point, 13);
										var marker = new GMarker(point);
										markerTmp = marker;
										map.addOverlay(marker);
										marker.openInfoWindowHtml(address);
										$('place_geolat').value=point.lat();
										$('place_geolon').value=point.lng();
										alert(lang["places.form.search.warning"]);
									}
								}
							);
						}
					} else {
						if (markerTmp != '') map.removeOverlay(markerTmp);
						map.setCenter(point, 13);
						var marker = new GMarker(point);
						markerTmp = marker;
						map.addOverlay(marker);
						marker.openInfoWindowHtml(address);
						$('place_geolat').value=point.lat();
						$('place_geolon').value=point.lng();
						alert(lang["places.form.search.done"]);
					}
				}
			);
		}
	}
}



//Location per Popup zuordnen
function placeSelect (type, geoId, geoName, geoLat, geoLon) {

	if (GBrowserIsCompatible() && type != '') {
		parent.document.getElementById(type+'GeoName').innerHTML=geoName;
		parent.document.getElementById(type+'_geoid').value=geoId;
		parent.document.getElementById(type+'_geoname').value=geoName;
		parent.document.getElementById(type+'_geolat').value=geoLat;
		parent.document.getElementById(type+'_geolon').value=geoLon;
		parent.document.getElementById(type+'GeoDelete').style.display='inline';
		alert('Der Ort wurde erfolreich ausgewählt');
	} else {
		alert('Der Ort konnte nicht ausgewählt werden!');
	}
}


function showAddress(type,address) {
	if (GBrowserIsCompatible()) {
		if (geocoder) {
			 geocoder.getLatLng(
				address,
				function(point) {
					if (!point) {
						alert(address + " not found");
					} else {
						if (markerTmp != '') map.removeOverlay(markerTmp);
						markerTmp = marker;
						map.setCenter(point, 13);
						var marker = new GMarker(point);
						map.addOverlay(marker);
						marker.openInfoWindowHtml(address);
						parent.document.getElementById(type+'_geolat').value=point.lat();
						parent.document.getElementById(type+'_geolon').value=point.lng();
						parent.document.getElementById(type+'GeoDelete').style.display='inline';
						parent.document.getElementById(type+'GeoHref').href=config["fileWeb"]+'?popup=geoDataSelect&type='+type+'&geo_lat='+point.lat()+'&geo_lon='+point.lng();
					}
				}
			);
		}
	}
}

/* --- einzelnen Ort in Google Map anzeigen --- */
function googleMapSinglePlace (geoLat, geoLon, type, zoom, mapType) {

	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("places_view_map"));
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(geoLat, geoLon), zoom);
		if (mapType == 1) {
			map.setMapType(G_SATELLITE_MAP);
		} else if (mapType == 2) {
			map.setMapType(G_HYBRID_MAP);
		}

		var icon = createBaseIcon();
		if (type != '' && type != 0) icon = createCustomIcon(type);

		var point = new GLatLng(geoLat, geoLon);
		var marker = new GMarker(point, icon);
		map.addOverlay(marker);
	}
}

/* --- Inhalte an Administratoren melden --- */
function reportContent () {
	var reason = prompt(lang['report.prompt'] ,'');
	var url = document.URL;

	if (reason != null) {
		new Ajax.Request(config["fileWeb"], {method: 'get', parameters: 'ajax=reportContent&url='+url+'&reason='+reason, onComplete:reportContentReal});
	}
}

function reportContentReal(originalRequest) {
	if (originalRequest.responseText == 'true') {
		alert(lang['report.success']);
	} else {
		alert(lang['report.error']);
	}
}


/* --- Element anzeigen bzw. verbergen --- */
function slideElement (elementShow, elementHide) {
	if ($(elementShow).style.display == 'none') {
		$(elementHide).style.display='none';
		new Effect.SlideDown(elementShow);
	} else {
		$(elementShow).style.display='none';
		new Effect.SlideDown(elementHide);
	}
}


/* --- Benutzer per Popup zuordnen --- */
function usersSelectorInit (count) {

	var formElements = document.forms['usersselect'].elements;
	var usersList = parent.document.getElementById("usersSelect").value;
	var usersCurrent = usersList.split(',');

	for (x=0; x<usersCurrent.length; x++) {
		usersCurrent[x] = trim(usersCurrent[x]);
	}

	for (i=0; i<count; i++) {
		for (x=0; x<usersCurrent.length; x++) {
			if (formElements['usersselect_'+i].value == usersCurrent[x]) {
				formElements['usersselect_'+i+'_checked'].value = 1;
				if ($('usersselect_'+i+'_img') == undefined) {
				} else {
					$('usersselect_'+i+'_img').className = "checked";
				}
			}
		}
	}

}

function usersSelectAdd(userId, count) {
	var formElements = document.forms['usersselect'].elements;
	if (formElements['usersselect_'+userId+'_checked'].value == 1) {
		formElements['usersselect_'+userId+'_checked'].value = 0;
		$('usersselect_'+userId+'_img').className = "none";
	} else {
		formElements['usersselect_'+userId+'_checked'].value = 1;
		$('usersselect_'+userId+'_img').className = "checked";
	}
	usersSelector(count);
}

function usersSelector(count) {

	var formElements = document.forms['usersselect'].elements;
	var insert = parent.document.getElementById("usersSelect").value;
	var tagsCurrent = insert.split(',');
	var tagsHash = new Object();

	for (x=0; x<tagsCurrent.length; x++) {
		tagsCurrent[x] = trim(tagsCurrent[x]);
		tagsHash[tagsCurrent[x]] = 1;
	}

	for (i=0; i<count; i++) {
		if (formElements['usersselect_'+i+'_checked'].value == 1) {
			if (tagsHash[formElements['usersselect_' + i].value] != 1) {
	   			if (insert == '') {
					insert = formElements['usersselect_' + i].value;
	   			} else {
					insert = insert + ', ' + formElements['usersselect_' + i].value;
	   			}
			}
		} else {
			if (tagsHash[formElements['usersselect_' + i].value] == 1) {
				eval('var match = /\\s*\\b'+formElements['usersselect_' + i].value+'\\b,*\\s*/');
				insert = insert.replace(match, '');
			}
		}
	}

	parent.document.getElementById("usersSelect").value = insert;
}


/* --- Autocomplete fuer Staedtenamen --- */
function autoCompleteCity (originalRequest) {
	var data = originalRequest.innerHTML;
	var plz = data.replace(/^<span class="plz">([\d]+)<\/span>.*/, "$1");
	var city = data.replace(/.*>([\w- ]+)<\/span>$/, "$1");
	$('user_plz_p').value = plz;
	$('user_city_p').value = city;
}


/* --- Tooltip --- */
var offsetx = 5;
var offsety = -135;
var ie5 = (document.getElementById && document.all);
//var ie5 = (navigator.appName.indexOf("Internet Explorer") != -1);
var ns6 = (document.getElementById && !document.all);
var ua = navigator.userAgent.toLowerCase();
var isopera = (ua.indexOf('opera') != -1 ? 1 : 0);
var isapple = (ua.indexOf('applewebkit') != -1 ? 1 : 0);

function newelement(newid) {
	if (document.createElement) {
		var el = document.createElement('div');
		el.id = newid;
		with (el.style) {
			display = 'none';
			position = 'absolute';
		}
		el.innerHTML = '&nbsp;';
		document.body.appendChild(el);
	}
}

function getmouseposition(e) {

	if (document.getElementById) {

		var iebody=(document.compatMode &&
			document.compatMode != 'BackCompat') ?
				document.documentElement : document.body;
		pagex = (isapple == 1 ? 0:(ie5)?iebody.scrollLeft:window.pageXOffset);
		pagey = (isapple == 1 ? 0:(ie5)?iebody.scrollTop:window.pageYOffset);
		mousex = (ie5)?event.x:(ns6)?clientX = e.clientX:false;
		mousey = (ie5)?event.y:(ns6)?clientY = e.clientY:false;

		if (isopera == 1) {
			mousex = event.screenX-5;
			mousey = event.screenY-95;
		}
		if (ie5) {
			mousex = event.clientX-5;
			mousey = event.clientY;
		}

		var idCard = document.getElementById('rollover_idcard');
		idCard.style.left = (mousex+pagex+offsetx) + 'px';
		idCard.style.top = (mousey+pagey+offsety) + 'px';
	}

}

function idCardOpen(nickname, image, sex, age, family, place, message) {

	if(!document.getElementById('rollover_idcard')) newelement('rollover_idcard');

	var idCard = document.getElementById('rollover_idcard');

	var html = '<div class="rollover_idcard_content">';

	if (message != '') {
		html += message;
	} else {
		html += '<img src="'+image+'" class="portrait" />';
		if (nickname != '') html += '<strong>'+nickname+'</strong>';
		if (sex == 1) {
			html += '<img src="' + config["pathSystem"] + 'images/icons/icon_female.gif" class="sex" />';
		} else if (sex == 2) {
			html += '<img src="' + config["pathSystem"] + 'images/icons/icon_male.gif" class="sex" />';
		}
		if (age != '' && age > 0) html += age + ' Jahre<br />';
		if (family != '' && family != '0') {
			if (family == 1) {
				html += 'ledig<br/>';
			} else if (family == 2) {
				html += 'gebunden<br/>';
			} else if (family == 3) {
				html += 'verheiratet<br/>';
			}
		}
		if (place != '') html += place;
	}
	html += '</div>';

	idCard.innerHTML = html;

	document.onmousemove = getmouseposition;

	idCard.style.display = "block";
}

function idCardClose() {
	document.getElementById('rollover_idcard').style.display = 'none';
}


/* --- Style bearbeiten --- */
function changeStyleMuster (newMuster) {
	var currentMuster = $('style_muster').value;
	if ($('style_muster_'+currentMuster)) $('style_muster_'+currentMuster).className = "none";
	$('style_muster_'+newMuster).className = "selected";
	$('style_muster').value = newMuster;
}

function changeStyleMaske (newMaske) {
	var currentMaske = $('style_maske').value;
	if ($('style_maske_'+currentMaske)) $('style_maske_'+currentMaske).className = "none";
	$('style_maske_'+newMaske).className = "selected";
	$('style_maske').value = newMaske;
}

function changeStyleColor (newColor) {
	var currentColor = $('style_color').value;
	if ($('style_color_'+currentColor)) $('style_color_'+currentColor).className = "none";
	$('style_color_'+newColor).className = "selected";
	$('style_color').value = newColor;
}

function changeStyleColortitle (newColortitle) {
	var currentColortitle = $('style_colortitle').value;
	if ($('style_colortitle_'+currentColortitle)) $('style_colortitle_'+currentColortitle).className = "none";
	$('style_colortitle_'+newColortitle).className = "selected";
	$('style_colortitle').value = newColortitle;
}


/*
 * Unterkategorien fuer Kleinanzeigen nachladen
 */

function advertisementsSubCategory (elem) {
	var myAjax = new Ajax.Request(config["fileWeb"], {method: 'get', parameters: 'ajax=advertisementsSubcategoryLoad&id='+elem.value, onComplete:advertisementsSubCategoryReal});
}

function advertisementsSubCategoryReal (originalRequest) {
	if (originalRequest.responseText != 'false') {
		$('advertisement_subcategory').innerHTML = originalRequest.responseText;
	} else {
		$('advertisement_subcategory').innerHTML = '';
	}
}


/*
 * Stichwort-Generator
 */

function tagsGeneratorInit (count) {

	var formElements = document.forms['tagsselect'].elements;
	var tagsList = parent.document.getElementById("userstags").value;
	var tagsCurrent = tagsList.split(',');

	for (x=0; x<tagsCurrent.length; x++) {
		tagsCurrent[x] = trim(tagsCurrent[x]);
	}

	for (i=0; i<count; i++) {
		for (x=0; x<tagsCurrent.length; x++) {
			if (formElements['tagsselect_'+i].value == tagsCurrent[x]) {
				formElements['tagsselect_'+i].checked = true;
			}
		}
	}

}

function tagsGenerator(count) {

	var formElements = document.forms['tagsselect'].elements;
	var insert = parent.document.getElementById("userstags").value;
	var tagsCurrent = insert.split(',');
	var tagsHash = new Object();

	for (x=0; x<tagsCurrent.length; x++) {
		tagsCurrent[x] = trim(tagsCurrent[x]);
		tagsHash[tagsCurrent[x]] = 1;
	}

	for (i=0; i<count; i++) {
		if (formElements['tagsselect_'+i].checked == true) {
			if (tagsHash[formElements['tagsselect_' + i].value] != 1) {
	   			if (insert == '') {
					insert = formElements['tagsselect_' + i].value;
	   			} else {
					insert = insert + ', ' + formElements['tagsselect_' + i].value;
	   			}
			}
		} else {
			if (tagsHash[formElements['tagsselect_' + i].value] == 1) {
				eval('var match = /\\s*\\b'+formElements['tagsselect_' + i].value+'\\b,*\\s*/');
				insert = insert.replace(match, '');
			}
		}
	}

	parent.document.getElementById("userstags").value = insert;
}


/*
 * Portraitbilder per Ajax loeschen
 */

function portraitsDelete (id) {
	contentTmpId = id;
	new Effect.Opacity('userId'+id, { duration: 1.0, transition: Effect.Transitions.linear, from: 1.0, to: 0.5 });
	contentTmpValue = $('userId'+id).innerHTML;
	Check = confirm(lang['users.portraitdelete.confirm']);
	if (Check == true) {
		$('userId'+id).innerHTML = '<div id="ajaxworkingopacity"><img src="'+config["pathSystem"]+'images/ajaxworkingopacity.gif" alt="" /> '+lang['users.portraitdelete.working']+'</div>'+contentTmpValue;
		var myAjax = new Ajax.Request(config["fileWeb"], {method: 'get', parameters: 'ajax=usersAdminPortraitsDelete&user_id='+id, onComplete:portraitsDeleteReal});
	} else {
		new Effect.Opacity('userId'+id, { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
		$('userId'+contentTmpId).innerHTML = contentTmpValue;
	}
}

function portraitsDeleteReal (originalRequest) {
	if (originalRequest.responseText == 'true') {
		Effect.Fade('userId'+contentTmpId);
	} else {
		alert(lang['users.portraitdelete.error']);
		new Effect.Opacity('userId'+contentTmpId, { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
		$(contentTmpType+'Id'+contentTmpId).innerHTML = contentTmpValue;
	}
}


/*
 * Bekannte in FOAF-Datei verwalten
 */

function foafKnowsAdd () {
	var form = '';

	form += '<li id="foaf_knows_list_'+$('foafKnowsCounter').value+'">'+lang['admin.foaf.knows.name']+' <input type="text" class="text" value="" name="foaf_knows_list_name_'+$('foafKnowsCounter').value+'" id="foaf_knows_list_name_'+$('foafKnowsCounter').value+'" style="width:125px;" /> &nbsp; '+lang['admin.foaf.knows.foaf']+' <input type="text" class="text" value="" name="foaf_knows_list_url_'+$('foafKnowsCounter').value+'" id="foaf_knows_list_url_'+$('foafKnowsCounter').value+'" style="width:175px;" />  <a href="#" onclick="foafKnowsDelete(\''+$('foafKnowsCounter').value+'\'); return false;\"><img src="'+config["pathSystem"]+'images/icons/smallicon_delete.gif" alt="'+lang['admin.foaf.knows.delete']+'" title="'+lang['admin.foaf.knows.delete']+'" /></a></li>';
	new Insertion.Bottom('foaf_knows_list', form);
	$('foafKnowsCounter').value = parseInt($('foafKnowsCounter').value) + 1;
}

function foafKnowsDelete (id) {
	new Effect.Opacity('foaf_knows_list_'+id, { duration: 1.0, transition: Effect.Transitions.linear, from: 1.0, to: 0.5 });
	Check = confirm(lang['admin.foaf.knows.confirm']);
	if (Check == true) {
		$('foaf_knows_list_name_'+id).value = '';
		$('foaf_knows_list_url_'+id).value = '';
		Effect.Fade('foaf_knows_list_'+id);
	} else {
		new Effect.Opacity('foaf_knows_list_'+id, { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
	}
}


/*
 * Kleinanzeigen reaktivieren
 */

function advertisementsReboot (id, forward) {
	contentTmpId = id;
	forwardTmp = forward;
	contentTmpValue = $('advertisementId'+id).innerHTML;
	new Effect.Opacity('advertisementId'+contentTmpId, { duration: 1, transition: Effect.Transitions.linear, from: 1.0, to: 0.5 });
	Check = confirm(lang['advertisements.reboot.confirm']);
	if (Check == true) {
		$('advertisementId'+id).innerHTML = '<div id="ajaxworkingopacity"><img src="'+config["pathSystem"]+'images/ajaxworkingopacity.gif" alt="" /> '+lang['advertisements.reboot.working']+'</div>'+contentTmpValue;
		var myAjax = new Ajax.Request(config["fileWeb"], {method: 'get', parameters: 'ajax=advertisementsReboot&advertisement_id='+id, onComplete:advertisementsRebootReal});
	} else {
		new Effect.Opacity('advertisementId'+contentTmpId, { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
	}
}

function advertisementsRebootReal(originalRequest) {
	if (originalRequest.responseText == 'true') {
		if (forwardTmp != '') {
			window.location.href = forwardTmp;
		} else {
			new Effect.Opacity('advertisementId'+contentTmpId, { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
			$('advertisementId'+contentTmpId).innerHTML = contentTmpValue;
			if ($('done') != undefined) $('done').style.display='none';
			if ($('advertisementButtonReboot') != undefined) $('advertisementButtonReboot').style.display='none';
		}
	} else {
		alert(lang['advertisements.reboot.error']);
		new Effect.Opacity('advertisementId'+contentTmpId, { duration: 1, transition: Effect.Transitions.linear, from: 0.5, to: 1.0 });
		$('advertisementId'+contentTmpId).innerHTML = contentTmpValue;
	}
}



/*
 * Status einer privaten Nachricht aendern
 */

function messageAdminStatus (messageId, status) {
	contentTmpValue = $('message_admin_status').innerHTML;
	$('message_admin_status').innerHTML = '<img src="'+config["pathSystem"]+'images/ajaxworking.gif" alt="" /> Bitte warten...';
	var myAjax = new Ajax.Request(config['fileWeb'], {method: 'get', parameters: 'ajax=messageAdminStatus&message_id='+messageId+'&folder=admin&status='+status, onSuccess: messageAdminStatusReal});
}

function messageAdminStatusReal (originalRequest) {
	if (originalRequest.responseText != 'false') {
		$('message_admin_status').innerHTML = originalRequest.responseText;
	} else {
		$('message_admin_status').innerHTML = contentTmpValue;
		alert("Oops, der Status konnte nicht geändert werden");
	}
}


/*
 * private Nachrichten markieren
 */
function messagesSelect (action) {

	var formElements = document.forms['messagelist'].elements;

	if (action == 'all') {

		for (i=0;i<formElements.length;i++) {
			if (formElements[i].type=="checkbox") formElements[i].checked=true;
		}

	}

}



/*
 * internes Voting speichern
 */

var internVotingKey = '';

function internVoting (key, value) {

	internVotingKey = key;

	var myAjax = new Ajax.Request(config["fileWeb"], {method: 'get', parameters: 'ajax=internVoting&key='+key+'&value='+value, onComplete:internVotingReal});
}

function internVotingReal (originalRequest) {
	if (originalRequest.responseText == 'true') {
		new Effect.Fade(internVotingKey+'Voting');
	} else {
		alert("Die Bewertung konnte nicht gespeichert werden!");
	}
}


/*
 * Popup-Fenster zum Bestellen einer Premium-Mitgliedschaft
 */

function premiumoffer (userId) {

	var formElements = document.forms['premiumform'].elements;

    //Kreditkarte
    if (formElements["order"][2].checked) {

        newWindow = window.open('http://billing.micropayment.de/creditcard/event/?project=stdtlbn&theme=d1&bgcolor=ffffff&title='+userId+'&type=creditcard','eBank2Pay','width=600,height=580,scrolling=no'); 
        newWindow.focus();
                
    //Telefonanruf
    } else if (formElements["order"][0].checked) {

        newWindow = window.open('http://billing.micropayment.de/call2pay/event/?project=stdtlbn&theme=d1&bgcolor=ffffff&title='+userId+'&type=call2pay','call2pay','width=600,height=400,scrolling=no'); 
        newWindow.focus();
                
    //Ueberweisung
    } else if (formElements["order"][1].checked) {

        newWindow = window.open('http://billing.micropayment.de/ebank2pay/event/?project=stdtlbn&theme=d1&bgcolor=ffffff&title='+userId+'&type=ebank2pay','ebank2pay','width=600,height=580,scrolling=no'); 
        newWindow.focus();

    }

}
