MooTools.lang.setLanguage("de-DE");

Array.prototype.contains = function (elem)
{
	var i;

	for (i = 0; i < this.length; i++)
	{
		if (this[i] == elem)
			return true;
	}

	return false;
};

Selectors.Pseudo.checked = function(){
	return ('input' == this.get('tag') && ('radio' == this.get('type') || 'checkbox' == this.get('type')) && this.checked);
};

Request.implement({
	onSuccess: function() {

		/* Wofür ist das? Das steht doch schon unten... */
		/*if($defined(this.options.reloadIVW) || this.options.reloadIVW == true){
			try {
				var oewaimg = $$('img.oewa');
				if(oewaimg.length > 0){
					oewaimg[0].set('src', OEWA + "?r=" + escape(document.referrer) + "&d=" + (new Date()).getTime());
				}
			}
			catch (e) { }
		}*/


		/*if(!$defined(this.options.reloadIVW) || this.options.reloadIVW == true){*/
		if(this.options.IVWClick) {
			try {
				var ivwimg = $$('img.ivw');
				if(ivwimg.length > 0){
					ivwimg[0].set('src', IVW + "?r=" + escape(document.referrer) + "&d=" + (Math.random()*100000));
				}
				var oewaimg = $$('img.oewa');
				if(oewaimg.length > 0){
					oewaimg[0].set('src', OEWA + "?r=" + escape(document.referrer) + "&d=" + (new Date()).getTime());
				}
				var gaimg = $$('img.ga');
				if(gaimg.length > 0){
					gaimg[0].set('src', gaimg[0].get('src').replace(/utmn=([0-9]+)/,'utmn=' + Math.round(Math.random() * 2147483647)));
				}
			}
			catch (e) { }
		}
		this.fireEvent('complete', arguments).fireEvent('success', arguments).callChain();
	}
});

Element.implement({

	'rotateClass': function(items) {
		var classes = this.className.split(' ');
		for(var i=0; i<classes.length; i++) {
			var index = items.indexOf(classes[i]);
			if(index > -1) {
				index = (index + 1) % items.length;
				classes[i] = items[index];
			}
		}
		this.className = classes.join(' ');
	},

	'filterOptions': function(foo) {
		var nodes = this.getElementsByTagName('option');
		for(var i=0; i<nodes.length; i++) {
			if(nodes[i].get('text').toLowerCase().substring(0, foo.length) == foo.toLowerCase()) {
				nodes[i].set('disabled', '');
			} else {
				nodes[i].set('disabled', 'disabled');
			}
		}
	},

	'scrollToMe': function() {
		var position = this.getPosition();
		window.scrollTo(position.x, position.y);
	},

	'displayed': function() {
		return this.getStyle('display') != 'none';
	}

});

String.prototype.endsWith = function(str) {
	return (this.match(str+"$")==str);
};

String.prototype.startsWith = function(str) {
	return (this.match("^"+str)==str);
};

function allowNumbers(event) {
	if (isNaN(String.fromCharCode((event.keyCode) ? event.keyCode : event.which))) {
		if (event.charCode < 33) {
			return true;
		}
		else {
			return false;
		}
	}
	return true;
}

function allowChars(event) {

	if(window.event) {  // IE
		keynum = event.keyCode;
	}
	else if(event.which) { // ANDERE
		keynum = event.which;
	}
	else {
		keynum = null;
	}

	if (keynum != null) {
		keychar = String.fromCharCode(keynum);
		numcheck = /\d/;
		return !numcheck.test(keychar);
	}
	else {
		return true;
	}

}


function form_validate() {
	var success = true;

	for(var i=0; i<arguments.length; i++) {
		var node = $(arguments[i]);

		if(!node) {
			continue;
		}

		if(node.get('value') == '') {
			success = false;
			node.highlight('#ff9999');
		}
	}
	return success;
}

var opentags = new Object();


function passwordStrength(input_element, info_element) {
	input_element = $(input_element);
	info_element = $(info_element);

	var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
	var mediumRegexLetter = new RegExp("^[a-zA-zöäüßÖÄÜ\\W]{5,8}$");
	var mediumRegexNumber = new RegExp("^[0-9\\W]{5,8}$");
	var mediumRegex = new RegExp("^[a-zA-zöäüßÖÄÜ0-9\\W]{5,}$");
	var enoughRegex = new RegExp("^[a-zA-zöäüßÖÄÜ0-9]{5,}$");

	var onlyLetter = new RegExp("^[a-zA-zöäüßÖÄÜ]+$");

	var pwd = input_element.value;

	info_element.removeClass('pw-secure'); 		// rot gelb gelb Grün
	info_element.removeClass('pw-ok'); 			// rot gelb gelb
	info_element.removeClass('pw-short'); 		// rot gelb
	info_element.removeClass('pw-nogiven');		// rot

	if (strongRegex.test(pwd)) {
		// Sicheres Passwort
		info_element.addClass('pw-secure');
	}
	else if (
			(mediumRegexLetter.test(pwd)) ||
			(mediumRegexNumber.test(pwd)) ||
			(mediumRegex.test(pwd))
		){
		// Länge, Gross - Kleinschreibung, Zahlen
		info_element.addClass('pw-ok');
	}
	else if (enoughRegex.test(pwd)) {
		// Länge is > 8
		info_element.addClass('pw-short');
	}
	else if (
			(pwd.length<5) ||
			(pwd == nickname) ||
			(pwd == email) ||
			(onlyLetter.test(pwd)) ||
			(!isNaN(pwd))
	){
		info_element.addClass('pw-nogiven');
	}
	else {
		// Unsicheres Passwort
		info_element.addClass('pw-nogiven');
	}

	 /*alert("Länge : " + (pwd.length<5) + " (" + pwd + ")" + "\n" +
		"Nick  : " + (pwd == nickname) + " (" + pwd + ")"+ "\n" +
		"eMail : " + (pwd == email) + " (" + pwd + ")"+ "\n" +
		"Letter: " + (onlyLetter.test(pwd)) + " (" + pwd + ")"+ "\n" +
		"Number: " + (!isNaN(pwd)) + " (" + pwd + ")"+ "\n" +
		"Enough: " + (enoughRegex.test(pwd)) + " (" + pwd + ")"+ "\n" +
		"MedLet: " + (mediumRegexLetter.test(pwd)) + " (" + pwd + ")"+ "\n" +
		"MedNum: " + (mediumRegexNumber.test(pwd)) + " (" + pwd + ")"+ "\n" +
		"Medium: " + (mediumRegex.test(pwd)) + " (" + pwd + ")"+ "\n" +
		"Strong: " + (strongRegex.test(pwd)) + " (" + pwd + ")");*/
}



function slideInOut(id)
{
	var node = $(id);

	if(node.getStyle('display') == 'block')
	{
		node.setStyle('display', 'none');
	}
	else
	{
		node.setStyle('display', 'block');
	}
	//node.tween('height', [node.getStyle('height'),0]);
}

function countChars(id) {
	return $(id).value.length;
}


function calcChars(text, limit, content_id)
{
	if(text.length > limit)
	{
		$(content_id).value = text.substring(0,limit);
		return false;
	}
	else
	{
		$(content_id+'-chars').innerHTML = limit - text.length;
	}
}


function suggestPlace(cName) {
	$('place_name').value = $('suggest_name').value;
}

var more_onlinefriends = new Class({
	aUsers: [],
	oContainer: $('friends-online'),
	oArrow: $('friends-online-paginate'),

	show: function() {
		req = new Request.JSON({
			url: '/mitglieder/online/',
			method: 'get',
			onComplete: this.updateUsers.bind(this)

		}).send('onlinelist=1');
	},

	updateUsers: function(oData) {
		if (!oData) return false;
		this.aUsers.extend(oData.items);
		this.oArrow.dispose();
		this.oContainer.set('text', '');
		this.draw();
	},

	draw: function() {
		this.aUsers.each( function(oUser,i) {
			var li = new Element('li', {
				'class': oUser.g
			});
			var a = new Element('a', {
				'class': 'message',
				'href': '#',
				'onclick': 'overlay.show("/nachrichten/kurznachricht/'+oUser.n+'");return false;',
				'title': 'Nachricht an '+oUser.n
			});
			var img = new Element('img', {
				'src': oUser.msg,
				'alt': ''
			});
			a.appendChild(img);
			li.appendChild(a);
			var a = new Element('a', {
				'class': 'chat',
				'href': '#',
				'onclick': 'if (window.chat) window.chat.open(\''+oUser.n+'\'); return false;',
				'title': 'Mit '+oUser.n+' chatten'
			});
			var img = new Element('img', {
				'src': oUser.chat,
				'alt': ''
			});
			a.appendChild(img);
			// noch kein Chat!
			// li.appendChild(a);
			var a = new Element('a', {
				'text': oUser.n,
				'href': '/mitglieder/profil/'+oUser.n,
				'onmouseover': 'tt.set(this, "'+oUser.a+'")',
				'title': 'Profilseite von '+oUser.n
			});
			li.appendChild(a);
			this.oContainer.appendChild(li);

		}.bind(this));
	}
});

var image_tooltip = new Class({
	image: null,
	elem: null,
	left: false,
	type: null,

	initialize: function() {},

	set: function(elem, url, left, type) {
		if(left) this.left = true;
		else this.left = false;
		if(type) this.type = type;
		
		try{
			if (this.image == null) {
				this.image = new Element('img', {
					'src': url,
					'styles': {
						'display': 'none',
						'position': 'absolute',
						'left': '0px',
						'top': '0px',
						'zIndex': '200',
						'backgroundColor': '#FFF',
						'padding': '2px',
						'border': '1px solid gray'
					}
				});
				if (Browser.Engine.webkit420) {
					this.image.setStyle('-webkit-box-shadow', '3px 3px 2px #666');
				}
				this.image.inject(document.getElement("body"), 'bottom');
				document.addEvent("mousemove", this.update.bindWithEvent(this));
			}
			else{
				this.image.src = url;
			}
			if (this.elem != null) {
				this.elem.removeEvent("mouseenter", this.show.bind(this));
				this.elem.removeEvent("mouseleave", this.hide.bind(this));
			}

			this.elem = $(elem);
			this.elem.title = '';
			this.elem.addEvent("mouseenter", this.show.bind(this));
			this.elem.addEvent("mouseleave", this.hide.bind(this));

			this.show();
		}
		catch(e){
			alert(e);
			alert($type(elem));
		}
	},

	update: function(evt) {
		if (this.image == null) return;
		
		if(this.type == 'fdm') topvalue = (evt.page.y + 10) - (this.image.height / 2 );
		else topvalue = (evt.page.y + 10);
		if(this.left){
			this.image.setStyles({
				"left": (evt.page.x - (this.image.width)- 25) + "px",
				"top": topvalue + "px"
			});
		}else{
			this.image.setStyles({
				"left": (evt.page.x + 25) + "px",
				"top": topvalue + "px"
			});
		}
		
	},

	show: function() {
		this.image.setStyle("display", "block");
	},

	hide: function() {
		this.image.setStyle("display", "none");
	}

});

var profile_notifications = new Class({
	Implements: Options,
	options: {
		height: 10,
		wait: 3
	},
	items: [],
	timer: null,
	index: 0,
	req: null,
	pageTitle: document.title,
	toggleTitle: false,
	titleStatus: false,
	fx: null,

	initialize: function(options) {
		this.setOptions(options);
		// damit die leute online bleiben...
		var req = new Request.JSON({
			url: '/feeds/notifications/'
		});
		req.send.periodical(90*1000, req);

		if (typeof notifications != 'undefined') {
			this.update(notifications);
		}
		try {
			window.feed.addEvent('notifications', this.update.bind(this));
		}
		catch(e) {}

	},

	update: function(notifications) {
		if (typeof notifications != 'object' || notifications == null) {
			return false;
		}

		if(typeof notifications.games != 'undefined'){
			if($('running-games') != null){
				if(notifications.games == 0){
					$('running-games').setStyle('display', 'none');
				}
				else{
					$('running-games').setStyle('display', 'inline');
					$('running-games').set({
							'title': (notifications.games == 1) ? '1 Spiel wartet auf deinen Zug' : notifications.games + ' Spiele warten auf deinen Zug',
							'text': '(' + notifications.games + ')'
					});
					$('running-games').getParent('a').set('href', '/spiele/meinespiele/');
				}
			}
			delete notifications.games;
			var x = [];
			for(var i in notifications){
				x.push(notifications[i]);
			}
			notifications = x;
			x = null;
		}

		this.items = [];

		this.items = [];

		$A(notifications).each(function(id) {
			if(sessionuser.label == 'partyarea24'){
				this.add('notification_' + id, id + '_active_pa24');
			}else{
				this.add('notification_' + id, id + '_active');
			}
			
			if (id == 'messagereceived') {
				this.toggleTitle = true;
			}
		}, this);
	},

	add: function(elem, fileName) {
		elem = $(elem);
		if (elem && !this.items.contains(elem)) {
			elem.getElement('img').src = '/app/1/img/new_layout/notifications/ico_' + fileName + '.png';
			this.items.push(elem);
			if (this.items.length == 1) this.draw_step1();
			return true;
		}
		return false;
	},

	draw_step1: function() {
		$clear(this.timer);
		if (this.items.length == 0) return false;

		if (this.toggleTitle) {
			try {
				document.title = (this.titleStatus?'Neue Nachricht - ':'') + this.pageTitle;
				this.titleStatus = !this.titleStatus;
			}
			catch (e) {}
		}

		if (this.items.length == 1) {
			this.timer = this.draw_step2.delay(this.options.wait*1000, this, this.items[0]);
		}
		else if (this.items.length == 2) {
			this.index = (this.index == 0?1:0);
			this.timer = this.draw_step2.delay(this.options.wait*1000, this, this.items[this.index]);
		}
		else {
			this.timer = this.draw_step2.delay(this.options.wait*1000, this, this.items.getRandom());
		}
	},

	draw_step2: function(elem) {
		new Fx.Tween(elem, {
			'duration': 'short'
		}).addEvent(
			'complete',
			this.draw_step3.bind(this, elem)
		).start(
			'top',
			-4
		);
	},

	draw_step3: function(elem) {
		new Fx.Tween(elem, {
			'transition': Fx.Transitions.Bounce.easeOut
		}).addEvent(
			'complete',
			this.draw_step1.bind(this)
		).start(
			'top',
			4
		);
	}
});



Element.Properties.inputValue = {

    get: function(){
			 switch(this.get('tag')) {
			 	case 'select':
					vals = this.getSelected().map(function(op){
						var v = $pick(op.get('value'),op.get('text'));
						return (v=="")?op.get('text'):v;
					});
					return this.get('multiple')?vals:vals[0];
				case 'input':
					switch(this.get('type')) {
						case 'checkbox':
							return this.get('checked')?this.get('value'):false;
						case 'radio':
							var checked;
							if (this.get('checked')) return this.get('value');
							$(this.getParent('form')||document.body).getElements('input').each(function(input){
								if (input.get('name') == this.get('name') && input.get('checked')) checked = input.get('value');
							}, this);
							return checked||null;
					}
			 	case 'input': case 'textarea':
					return this.get('value');
				default:
					return this.get('inputValue');
			 }
    },

    set: function(value){
			switch(this.get('tag')){
				case 'select':
					this.getElements('option').each(function(op){
						var v = $pick(op.get('value'), op.get('text'));
						if (v=="") v = op.get('text');
						op.set('selected', $splat(value).contains(v));
					});
					break;
				case 'input':
					if (['radio','checkbox'].contains(this.get('type'))) {
						this.set('checked', $type(value)=="boolean"?value:$splat(value).contains(this.get('value')));
						break;
					}
				case 'textarea': case 'input':
					this.set('value', value);
					break;
				default:
					this.set('inputValue', value);
			}
			return this;
    },

	erase: function() {
		switch(this.get('tag')) {
			case 'select':
				this.getElements('option').each(function(op) {
					op.erase('selected');
				});
				break;
			case 'input':
				if (['radio','checkbox'].contains(this.get('type'))) {
					this.set('checked', false);
					break;
				}
			case 'input': case 'textarea':
				this.set('value', '');
				break;
			default:
				this.set('inputValue', '');
		}
		return this;
	}

};

function chessboard(columns, i) {
	columns = columns * 1;
	i = i * 1;

	if(columns < 1) {
		columns = 1;
	}

// 	so funktioniert das ganze:

// 	alle spalten gerade oder ungerade
//	if(columns % 2 == 0) {
//		var even = true;
//	}
//	else {
//		var even = false;
//	}

	// in welcher spalte bin ich?
//	var aktColumn = i / columns;

//	if(parseInt(even && aktColumn) % 2 == 1) {
//		var c = 0;
//	}
//	else {
//		var c = 1;
//	}

//	if((i + c) % 2 == 0) {
//		return 'odd';
//	}
//	else {
//		return 'even';
//	}

   return ((i + (parseInt((columns % 2 == 0) && (i / columns)) % 2 != 1)) % 2 == 0) ? 'odd' : 'even';
}

function hideRegionChanger() {
	overlay = $('region-change-overlay');
	overlay.setStyle('width', '0px');
	overlay.setStyle('display', 'none');
}

function changeRegion(event){
	var headline = $$('.bodywrap')[0];
	var container = new Element('div');
	container.inject(headline);
	container.position({
		relativeTo: $('region-changer'),
		position: 'bottomRight',
		offset: {y: -0, x: 2}});
	var overlay = headline.getElementById('region-change-overlay');
	event.stop();
	if(overlay == null){
		overlay = new Element('div', {
			id: 'region-change-overlay',
			styles: { 	'min-height': '500px',
						'width': '0px' }
		}).inject(container);
		var loading_div = new Element('div', { 'class': 'loading' }).inject(overlay);
		var r = new Request.HTML({
				method: 'GET',
				url: '/startseite/regionwechseln',
				data: {
					'url': document.location.pathname + document.location.search
				},
				update: overlay,
				onSuccess: addCountryChangeEvents
		}).send();
	}
	else{
		if(overlay.getStyle('display') == 'none'){
			overlay.setStyle('display', 'block');
			var trw = new Fx.Transition(Fx.Transitions.Back, 1);
			fxw = new Fx.Tween($('region-change-overlay'), {	transition: trw.easeOut,
											duration: 'normal'});

			fxw.start('width', '0px', '500px');
		}
		else{
			overlay.setStyle('width', '0px');
			overlay.setStyle('display', 'none');
		}
	}

}

function addCountryChangeEvents(){
	var container = $('region-change-overlay');
	var lists = container.getElements('div.right a');
	lists.addEvent('click', performCountryChange);

	var trw = new Fx.Transition(Fx.Transitions.Back, 1);
	fxw = new Fx.Tween($('region-change-overlay'), {	transition: trw.easeOut,
									duration: 'normal'});

	fxw.start('width', '0px', '500px');
}

function performCountryChange(event){
	var container = $('region-change-overlay');
	leftReg = container.getElements('div.left')[0];

	event.target.getParent('ul').getElements('li').removeClass('active');
	event.target.getParent('li').addClass('active');
	if(!event.target.hasClass('nochild')){
		var region = event.target.get('text').trim().replace(/\s?\(\d+\)$/,'');
		var lists = container.getElements('div.left div.province');
		for(var i = 0;i<lists.length;i++){
			if(lists[i].get('id') == 'rco-' + region) {
				lists[i].setStyle.delay(600, lists[i], ['display', 'block']);
			}
			else {
				lists[i].setStyle('display', 'none');
			}
		}
	}

	if(!i){
		return true;
	}

	container.getElements('div.left div.province').each(function(item, index) {
		item.setStyle('display', 'none');
	});

	var trw = new Fx.Transition(Fx.Transitions.Pow, 1);
	fxw = new Fx.Tween(container.getElements('div.left')[0], {
									transition: trw.easeOut,
									duration: 'short'});

	fxw.start('width', '250px', '0px').chain(
		function() { this.start('width', '0px', '250px'); }
	);

	var trz = new Fx.Transition(Fx.Transitions.Back, 1);
	fxz = new Fx.Tween($(container), {
									transition: trz.easeOut,
									duration: 'normal'});

	fxz.start('width', '500px', '250px').chain(
		function() { this.start('width', '250px', '500px'); }
	);

	region = null;
	container = null;
	lists = null;

}

function btnClick() {
	var btns = $$('.btn');
	btns.addEvent('mouseout', function() { this.toggleClass('hover'); } );
	btns.addEvent('mouseover', function() { this.toggleClass('hover'); } );
	btns.addEvent('mouseup', function() { this.toggleClass('active'); } );
	btns.addEvent('mousedown', function() { this.toggleClass('active'); } );

}

function btnSubmit() {
	var btns = $$('.btn-submit');
	btns.removeEvents('click');

	btns.addEvent('click', function() {
		$(this).getParent('form').submit();
		return false;
	});
	
	btns.addEvent('keydown', function(e) {
		if (e.key == "space") {
			$(this).getParent('form').submit();
			return false;
		}
	});

	var form = btns.getParent('form');
	if(form[0]) {
		form.each(function(f) {
			var inpts = f.getElements('input');
			if(inpts) {
				inpts.each(function(item) {
					item.addEvent('keyup', function(e) {
						if(e.key == "enter" && !this.hasClass('nosubmit')) {
							this.getParent('form').fireEvent('submit');
							this.getParent('form').submit();
							return false;
						}
					});
				});
			}
		});
	}
}

function fbContInit() {
	$$('.fb-like').setStyle.delay(1500, $$('.fb-like'), ['height', 'auto']);
}

function toggleProfilePhoto() {
	var mo = $('menu_open');
	if(mo.getStyle('display') == 'none') {
		mo.setStyle('display', 'block');
		mo.slide('hide').slide('in');
	}
	else {
		mo.setStyle.delay(500, mo, ['display', 'none']);
		mo.slide('out');
		$('menu_title_text').setStyle.delay(500, $('menu_title_text'), ['display', 'none']);
	}
}

if (typeof perf != 'undefined') {
	window.addEvent('load', function() {
		try {
			perf.onload = new Date();
			perf.domready = perf.domready.getTime() - perf.start.getTime();
			perf.onload = perf.onload.getTime() - perf.start.getTime();

			ivw = new Element('img', {
				'src': '/perf/ivw,' +perf.ivw+ '/dr,' +perf.domready+ '/ol,' +perf.onload+ '/?cb=' + Math.round(Math.random()*100000000),
				'styles': {
					'display': 'none'
				}
			});
			
			ivw.inject($$('body')[0], 'bottom');
		}
		catch (e) { }
	});
}

function toggleElements(el1, el2) {
	$(el1).setStyle('display', 'none');
	$(el2).setStyle('display', 'block');
}

function closeInformation() {
	if($('information-remove') != null){
		if(confirm("Soll die Information wirklich ausgeblendet werden?") == false) return;
		$('information-container').destroy();
		new Request({
			url: '/startseite/information/'
		}).send('ausblenden=1');
	}
}

var skyscraper_top = false;

window.addEvent('domready', function(){
	if (typeof perf != 'undefined')
		perf.domready = new Date();

	if ($('region-changer') != null){
		$('region-changer').addEvent('click', changeRegion);
		$('region-changer-desc').addEvent('click', changeRegion);
	}
	if ($('regionchooser')) {
		$('regionchooser').addEvent('click', function() {
			$('regionbox').set('load', {
				onSuccess: function() {
					$('regionbox').slide('in');
				}
			});

			if (!$('regionbox').hasChildNodes())
				$('regionbox').load('/startseite/regionwechseln/?url=' + document.location.pathname);
			else
				$('regionbox').slide();
			
			if ($('skyscraper'))
				$('skyscraper').destroy();
			
			return false;
		});

		if (!region_id)
			var region_id = 1;

		if (region_id == 62)
			$('regionchooser').fireEvent('click');
	}

	btnClick();
	btnSubmit();
	fbContInit();

	new Fx.SmoothScroll({
		duration: 400
	}, window);

	window.addEvent('scroll', function() {
		if(!$$('.beam-me-up').getElements('a')[0]) {
			return false;
		}
		if(window.getScroll().y > 400) {
			$$('.beam-me-up').getElements('a')[0].fade('in');
		}

		if(window.getScroll().y < 400) {
			$$('.beam-me-up').getElements('a')[0].fade('out');
		}
	});

	// Zugriff mit window.roar
	try {
		this.roar = new Roar({
			position: 'lowerRight',
			container: $('body2')
		});
	}
	catch(e) { /* kein roar */ }

	try {
		window.feed.addEvents({
			'profilevisit': function(item) {
				window.roar.alert('Profilbesuch', item.content);
				window.roar.body.addEvent('click', function() {
					document.location = '/mitglieder/profil/' + item.from;
				}, this);
			},
			'useronline': function(item) {
				window.roar.alert('Eingeloggt', item.content);
				window.roar.body.addEvent('click', function() {
					document.location = '/mitglieder/profil/' + item.from;
				}, this);
			},
			'gameinvite': function(item) {
				window.roar.alert('Neue Spiele Einladung', item.content);
				window.roar.body.addEvent('click', function() {
					document.location = '/spiele/anfragen';
				}, this);
			},
			'inviteaccept': function(item) {
				window.roar.alert('Einladung Angenommen', item.content);
				window.roar.body.addEvent('click', function() {
					document.location = item.link;
				}, this);
			},
			'gamewakeup': function(item) {
				window.roar.alert('Wach auf du bist dran!', item.content);
				window.roar.body.addEvent('click', function() {
					document.location = item.link;
				}, this);
			}

		});
	}
	catch(e) { /* gast */ }

	// sticky skyscraper
	if (typeof OA_stickyskyscraper != 'undefined' && OA_stickyskyscraper) {
		window.addEvent('scroll', function() {
			if (Browser.Engine.trident && Browser.Engine.version > 4) return;
			if($('skyscraper') != null){
				if (!skyscraper_top) skyscraper_top = parseInt($('skyscraper').getStyle('top'));
				if ((window.getScroll()).y > skyscraper_top)
					$('skyscraper').setStyles({position: 'fixed', top: '0'});
				else
					$('skyscraper').setStyles({position: 'absolute', top: skyscraper_top + 'px'});
			}
		});
	}
});


function toggleTrigger() {
	$('friend_trigger').setStyle('display', 'block');
	$('friend_trigger').slide('hide').slide('in');
	$('friend_trigger').slide.delay(15000, $('friend_trigger'), 'out');
	$('friend_trigger').setStyle.delay(15500, $('friend_trigger'), ['display', 'none']);
}

function toggleEl(el) {
	el.setStyle('display', 'block');
	el.slide('hide').slide('in');
}

function sendRequest(requrl, reqdata, reqmethod) {
	if(!reqmethod) {
		reqmethod = 'post';
	}

	new Request({
		'url': requrl,
		'data': reqdata,
		'method': reqmethod
	}).send();

	return false;
}

function fbRegisterEvents() {	
	if (typeof FB != 'undefined' && FB != null)
	{
		try
		{
	
			FB.Event.subscribe('edge.create', function(response)
				{
					new Request({
						url: '/interfaces/fblike/',
						method: 'post'
					}).send('fburl=' + response);
				}
			);
			
			FB.Event.subscribe('comment.create', function(response)
				{
					new Request({
						url: '/interfaces/fbcomment/',
						method: 'post',
						onSuccess: function(responseText){
					        if (responseText == 'true')
					        	window.location.reload();
					    }
					}).send('fburl=' + response.href);
				}
			);
		}
		catch(e) {}
	}
}

function rateCandidature(el, r) {
	el.setStyle('cursor', 'wait');
	stars = $$('.stars')[0];
	new Request({
		url: el.get('href'),
		onSuccess: function(res) {
			stars.getElements('a').dispose();
			stars.getElements('li').removeClass('active');

			stars.getElements('li').each(function(item, idx) {
				if(idx <= r-1) {
					item.addClass('active');
				}
			});
			stars.highlight('#96D050');
			el.setStyle('cursor', 'default');
			new Element('p', {
				'html': 'Danke für deine Bewertung',
				'class': 'infotext',
				'styles': {
					'margin-left': '-6px',
					'clear': 'left'
				}
			}).inject($$('.ratings')[0]);
		},
		onFailure: function() {
			stars.highlight('#dd0000');
			el.setStyle('cursor', 'default');
		}
	}).send();
}

function preventUnload(state, msg)	{
	if(!msg) {
		msg = "Es wurden Daten geändert und nicht gespeichert!";
	}

	window.onbeforeunload = state ? function() { return msg; } : null;
}

function rateUser(el, nickname) {
	el = $(el);
	el.getElements('img')[0].set('src', '/app/1/img/button/load_trans.gif');
	var span = el.getElements('span')[0].dispose();
	span.set('html', 'Bewertet');
	el.removeProperty('onclick');
	new Request({
		'url': '/mitglieder/profil/' + nickname,
		'method': 'get',
		'onComplete': function() {
			span.inject(el);
			el.getElements('img')[0].set('height', '12px');
			el.getElements('img')[0].set('src', '/app/1/img/new_layout/icon/yes.png');
		}
	}).send('positiv=bewerten');
}

function sendPMessage(el, user) {
	var form = el.getParent('form');
	CKEDITOR.instances['nachricht-text'].updateElement();
	if(escape($('nachricht-text').get('value')) == "%5Bleft%5D%A0%5B/left%5D") {
		alert('Eine leere Nachricht zu verschicken hat keinen Sinn');
		return false;
	}

	$('send-msg').getParent().setStyle('background', 'none');
	$('send-msg').getParent().set('html', 'Wird verschickt...');
	new Form.Request(form, form, {
		onSuccess: function(res, result) {
			cont 		= $$('div.message').getLast().clone().inject($$('div.message').getLast(), 'after');
			msgContent 	= cont.getElement('.msg_content');
			msgCount 	= cont.getElement('.msg_cnt');
			date 		= cont.getElement('.date');
			actionLinks = cont.getElement('.action');
			content 	= cont.getElement('.message-content');
			thumb		= cont.getElement('.thumb');
			arr 		= cont.getElement('.comment-arrow-left');
			userDiv		= content.getElement('.user');

			result[0].inject(msgContent);
			msgContent.appendText(' '); // IE FIX

			msgCount.set('html', parseInt(msgCount.get('html'))+1);
			msgContent.getNext().empty();
			date.set('html', 'gerade eben');

			cont.slide('hide').slide('in');

			actionLinks.dispose();

			userlink = userDiv.getElement('a');
			userlink.set('html', user.n);
			userlink.set('href', 'mitglieder/profil/' + user.n);

			thumb.getElement('img').set('src', user.a);
			thumb.set('href', '/mitglieder/profil/' + user.n);
			thumb.setStyle('float', 'right');

			content.removeProperties('style');
			content.setStyles({ 'width': '540px',
								'margin-left': '100px',
								'margin-right': '100px'});

			if(arr) {
				arr.removeClass('comment-arrow-left');
				arr.addClass('comment-arrow-right');
			}

			userDiv.getElement('img').set('src', '/app/1/img/new_layout/icon/gender-' + user.g + '.png');
			msgContent.getNext().setStyle('height', 'auto');

			$('send-message-main').setStyle('display', 'none');
			$('send-message-main-ok').setStyle('display', 'block');
			$('send-message-main-ok').slide('hide').slide('in');
		}
	}).send();
}

function quickJoinPlace(joinLink) {
	url = joinLink.href;
	joinLink.set('href', '#');
	joinLink.set('onclick', '');
	joinLink.removeEvents('click');

	joinLink.set('html', 'Bitte warten...');
	new Request({
		'url': url,
		'data': {'join': 1},
		'method': 'post',
		'onComplete': function() {
			joinLink.set('html', 'Du bist nun Mitglied');
			if(joinLink.getParent('div.container-place')) {
				joinLink.getParent('div.container-place').highlight('#cfeb2c', '#fff');
			}
		}.bind(this)
	}).send();

	return false;
}

function initQuickVote() {
	stars = $$('.stars');
	stars.each(function(rating) {
		rating.getElements('a').each(function(star, idx) {
			star.addEvent('click', function() { quickVote(this, idx+1); return false; } );
		}, this);
	});
}

function quickVote(el, r) {
	el.setStyle('cursor', 'wait');
	stars = el.getParent('ul.stars');
	new Request({
		url: el.get('href'),
		onSuccess: function(res) {
			stars.getElements('a').dispose();
			stars.getElements('li').removeClass('active');

			stars.getElements('li').each(function(item, idx) {
				if(idx <= r-1) {
					item.addClass('active');
				}
			});
			stars.highlight('#96D050');
			el.setStyle('cursor', 'default');
			new Element('p', {
				'html': 'Danke!',
				'class': 'infotext',
				'styles': {
					'padding-top': '8px'
				}
			}).inject(stars.getParent('div'));
			window.fireEvent('quickvotedone');
		},
		onFailure: function() {
			stars.highlight('#dd0000');
			el.setStyle('cursor', 'default');
		}
	}).send();

}

// init
var tt = new image_tooltip();
if (typeof(sessionuser) != 'undefined' && sessionuser && !sessionuser.guest) {
	window.addEvent('domready', function(){new profile_notifications();});
	var mof = new more_onlinefriends();
}

/* Do Some Magic Facebook Things */
try {
	window.addEvent('domready', function(){ fbRegisterEvents(); });
}
catch(e){ }

function slideProfileAvatar(open) {
	for(i = 1; i<= 3; i++) {
		a = $('thumb_'+i);
		if(!a) return false;
		a.show();
		a.set('tween', {'duration': 'short'});
		a.tween('left', (open?(i==1?190:370):12)+'px');	// beim öffnen 190, dann 370, beim schliessen 12
	}
}

var feed = new Class({
	Implements: Events,

	index: -1,
	token: null,
	pr: null,

	initialize: function(token, domain) {
		document.domain = domain;

		this.token = token;
		this.pr = new Hash.Cookie('EFOURFEED', {'duration': 0, 'domain': '.'+domain, 'path': '/'});
		this.pr.load();

		if (!this.pr || !this.pr.has('token') || this.pr.get('token') != this.token) {
			this.pr.extend({
				'token': this.token,
				'domain': domain,
				'indices': [],
				'active': -1
			});
		}

		var indices = this.pr.get('indices');
		if (indices.length == 0) {
			this.pr.set('indices', [1]);
			this.pr.set('active', 0);
			this.index = 0;
		}
		else {
			this.index = indices.indexOf(0);
			if (this.index != -1) {
				indices[this.index] = 1;
				this.pr.set('indices', indices);
			}
			else {
				indices.push(1);
				this.pr.set('indices', indices);
				this.index = indices.length-1;
			}
			this.pr.set('active', this.index);
		}

		window.addEvent('unload', function() {
			this.removeEvents();

			this.pr.load();
			if (!this.pr || !this.pr.has('token') || this.pr.get('token') != this.token) {
				return;
			}
			var indices = this.pr.get('indices');
			if (indices.length == 0) {
				return;
			}

			indices[this.index] = 0;

			while (indices.length > 0 && indices[indices.length-1] == 0) {
				indices.pop();
			}

			if (indices.length == 0) {
				this.pr.erase();
			}
			else {
				this.pr.set('indices', indices);
				if (this.pr.get('active') == this.index) {
					this.pr.set('active', -1);
				}
			}
		}.bind(this));

		var iframe = new Element('iframe', {
			'src': 'http://' + this.index + '.feed.' + domain + '/iframe/?noCache=' + new Date().getTime(),
			'width': '0',
			'height': '0',
			'frameborder': '0'
		});
		iframe.inject(document.body, 'bottom');
		iframe.setStyle('display', 'none');
	},

	isActive: function() {
		this.pr.load();

		var activeIndex = this.pr.get('active');
		if (activeIndex == this.index) {
			return true;
		}
		else if (isNaN(activeIndex) || activeIndex < 0) {
			this.pr.set('active', this.index);
			return true;
		}
		return false;
	}

});


if (typeof sessionuser != 'undefined' && typeof sessionuser.token != 'undefined' && typeof sessionuser.domain != 'undefined') {
	window.feed = new feed(sessionuser.token, sessionuser.domain);
}

if ($('submenu') && $('submenu').getElement('li.more ul')) {
	$('submenu').getElement('li.more ul').addEvent('mouseleave', function() { this.hide(); });
	$('submenu').getElement('li.more').addEvent('mouseleave', function() { this.getElements('ul').hide(); });
}




// alert('kamil hallo');

var galleryPlugin = new Class({
	
	container: null,
	active: null,
	requesturl: '/partyfotos/',
	ids: [],
	id: null,
	
	initialize: function(){
		this.container = $$('.gallery_plugin');
		this.createAlbums();
	},
	
	createAlbums: function(){
		for(var i=0; i<this.container.length; i++){
   			var img  = new Element('img', {src: '/app/1/img/ajax-loader-bar.gif'});
			this.active = this.container[i];
			this.id = parseFloat(this.active.get('text'));
			this.active.set('text', '');
			if(isNaN(this.id) == false){
				if(!this.duplicate()){
					img.inject(this.active, 'bottom');
					this.ids[this.id] = this.id;
					this.active.set('id', 'gid_'+this.id);
					this.ajaxRequest();
				}
			}else{
				this.destroy();
			}
		}
	},
	
	duplicate: function(){
		if(this.ids[this.id]){
			this.destroy();
			return true;
		}
		return false;
	},
	
	ajaxRequest: function(){
		new Request.HTML({
			method: 'get',
			url:  this.requesturl + 'gid,' + this.id,
			update: $('gid_'+this.id)
		}).send();
	},
	
	destroy: function(){
		this.active.destroy();
	}
	
});

window.addEvent('domready', function(){
	new galleryPlugin();
});

function fbLoginButton() {
	if (document.location.href.contains('?'))
		document.location.href='/startseite/facebook,anmelden/';
	else 
		document.location.href=document.location.href+(document.location.href.endsWith('/') ? '' : '/') + 'facebook,anmelden/fbconnect,1';
}

