Tips.implement({
	position: function(el) {
		this.tip.getElement('img').addEvent('load', function(){
			var s  = this.tip.getElement('img').getSize();
			var cs = $('centerContainer').getSize();
			var cp = $('centerContainer').getPosition();
			this.tip.set('styles', {
				'left': (cs.x-s.x)/2+cp.x,
				'top': window.getScrollTop()+this.options.offsets.y
			});
		}.bind(this));
	}
	
	
	/*position: function(event){
		var size = window.getSize(), scroll = window.getScroll();
		var tip = {x: this.tip.offsetWidth, y: this.tip.offsetHeight};
		var props = {x: 'left', y: 'top'};
		for (var z in props){
			var pos = event.page[z] + this.options.offsets[z];
			if ((pos + tip[z] - scroll[z]) > size[z]) pos = event.page[z] - this.options.offsets[z] - tip[z];
			this.tip.setStyle(props[z], pos);
		}
	}*/
	
});
var myS = $H();
var slider = {};
var myPicScroll;
var myPicScroll18;
var picScrollSite = 1;
var picScrollSite18 = 1;
window.addEvent('domready', function(){
	
	var myTips = new Tips($$('.toolTipImg'), {
		maxTitleChars: 40,
		fixed: true,
		hideDelay: 500,
		offsets: {x: 0, y: -40},
		onShow: function(tip){tip.effect('opacity').start('1');},
		onHide: function(tip){tip.effect('opacity').start('0');}
	});
	myTips.hide();
	
	$$('.slider').each(function(e){
		var eID		= e.id.replace(/pmenu_|content_/, '');
		if($('content_'+eID)) {
			var slide	= new Fx.Slide($('content_'+eID), {duration: 500});
			$('content_'+eID).setStyle('display', 'block');
			slide.hide();
			myS.set(eID, slide);
			e.addEvent('click', function(theClickedElement) {
				if(theClickedElement.id=='content_previewPic') {
					if(theClickedElement.hasClass('ab18'))
						$('pmenu_images18').fireEvent("click");
					else
						$('pmenu_images').fireEvent("click");
					return false;
				}
				if ($(theClickedElement.id)) myslide(e, theClickedElement);
				history.setState(theClickedElement.id.replace(/pmenu_/, ''));
				return false;
			}.pass(e));
		}
	});
	if(!(Browser.Engine.trident && Browser.Engine.version==4)) {
		History.start();
		window.route = new History.Route({
			defaults: ['overview'],
			pattern: (/(\w+)/),
			generate: function(values) {
				return values[0];
			},
			onMatch: function(values, defaults) {
				myslide($('pmenu_'+values[0]), $('pmenu_'+values[0]));
			}
		});
		History.match();
	}
	if(document.location.hash.length>2 && $("pmenu_"+document.location.hash.toLowerCase().substr(1))) {
		$("pmenu_"+document.location.hash.toLowerCase().substr(1)).fireEvent("click");
	}else{
		myS.get("overview").show();
		myS.get("previewPic").show();
	}
	
	if($('picContainer')) {
		myPicScroll = new Fx.Scroll('picContainer', {
			wait: false,
			duration: 1500,
			offset: {'x': 0, 'y': 0},
			transition: Fx.Transitions.Quad.easeInOut
		});
	}
	
	if($('picContainer18')) {
		myPicScroll18 = new Fx.Scroll('picContainer18', {
			wait: false,
			duration: 1500,
			offset: {'x': 0, 'y': 0},
			transition: Fx.Transitions.Quad.easeInOut
		});
	}
	
	var userForm = new Element('form').setProperties({
		'action': 'box.html',
		'method': 'post',
		'id': 'reportForm'
	});
	userForm.innerHTML = '<textarea style="width:350px;margin-bottom:10px" rows="5" cols="50" name="reason" id="reason"></textarea>';
	
	if($('buddyaddbutton')) $('buddyaddbutton').onclick = function() {
		var boxHtml = new MooPrompt(LANG.profile.contact_request, userForm, {
			width: 380,
			height: 170,
			buttons: 2,
			horizontal: 'center', vertical: 'middle', effect:'slide', 
			button1: LANG.profile.contact_request_send,
			button2: LANG.profile.cancel,
			overlay: true,
			onButton1: function() {
				jslink($('buddyaddbutton').href, {'reason':$('reason').value}, 'Buddy::addBuddy', function(data){
					$$('#banreturn, #contactreturn').setHTML('<a href=\'/'+LANG.LANG+'/buddies/\'>&rarr; '+LANG.profile.contact_request_requested+'</a>')
				});
				return false;
			}
		});
		return false;
	};
	
	
	if($('banaddbutton')) $('banaddbutton').onclick = function() {
		var boxHtml = new MooPrompt(LANG.profile.ban_request, 'Wenn du '+$('username').get('html')+' ignorieren willst, bekommst du ab sofort keine Nachrichten, Gästebucheinträge und Profilansichten mehr von diesem Mitglied. Du kannst deine Ignorier-Liste über den Menü-Punkt "Kontakte" jederzeit verwalten und ignorierte Mitglieder wieder freigeben.', {
			width: 380,
			height: 170,
			buttons: 2,
			horizontal: 'center', vertical: 'middle', effect:'slide', 
			button1: LANG.profile.ban_request_send,
			button2: LANG.profile.cancel,
			overlay: true,
			onButton1: function() {
				jslink($('banaddbutton').href, {}, 'Buddy::banUser', function(data){
					$$('#banreturn, #contactreturn').setHTML('<a href=\'/'+LANG.LANG+'/buddies/\'>&rarr; '+LANG.profile.ban_request_requested+'</a>')
				});
				return false;
			}
		});
		return false;
	};
	
	if($('profiledenunciationbutton')) {
		$('profiledenunciationbutton').onclick = function() {
			var boxHtml = new MooPrompt(LANG.profile.denunciate, userForm, {
				width: 380,
				height: 170,
				buttons: 2,
				horizontal: 'center', vertical: 'middle', effect:'slide', 
				button1: LANG.profile.denunciate_send,
				button2: LANG.profile.cancel,
				overlay: true,
				onButton1: function() {				
					jslink($('profiledenunciationbutton').href, {'reason':$('reason').value}, 'Denunciation::user', function(data){$('denunciationreturn').setHTML('<a href=\'#\' class="denunciated">&rarr; '+LANG.profile.denunciat_request_denunciat+'</a>')});
					return false;
				}
			});
			return false;
		};
	}
	
	if($('shoutList')) {
		new Asset.javascript('/js/shoutbook.js?new', {id: 'ShoutbookJS'});
		new Asset.css('/css/shoutbook.css', {id: 'CropprCss'});
	}
});

function myslide(e, theClickedElement) {
		myS.each(function(e) {
			if(e.element.id!=this.id.replace(/pmenu_/, 'content_')) e.slideOut();
		}.bind(theClickedElement));
		myS.get(theClickedElement.id.replace(/pmenu_/, '')).slideIn();
		
		//Special, Preview Bild ein/ausblenden für Galerielink
		if(theClickedElement.id!="pmenu_images"&&theClickedElement.id!="pmenu_images18")	myS.get("previewPic").stop().slideIn();
		else						myS.get("previewPic").stop().slideOut();
		
		aktivateMenu(theClickedElement);
}

function aktivateMenu(el) {
	$('profil_navi_main').getChildren().removeClass('aktiv');
	$(el).addClass('aktiv');
}

function displayBuddies(data) {
	data = Json.evaluate(data);
	$('buddies').innerHTML = "";
	for (var i in data) if (typeof data[i] == "string") {
		$('buddies').innerHTML += data[i];
	}
	myS.get("contacts").stop().slideIn();
}
function showContacts(el) {
	//Load Contact Data
	if ($('buddies').innerHTML == "") {
		jslink(location.href, {}, "Buddy::getAjaxBuddyList", displayBuddies);
	};
	return false;
}

function sendSMS(that) {
	myS.get("sms").slideOut().chain(
		function() {
			$('smsForm').addClass('hidden');
			$('smsSending').removeClass('hidden');
			myS.get("sms").slideIn();
		}
	);
	
	jslink(location.href, {text:$('theSMSText').value}, "User::sendSMS", function(ret) {
		myS.get("sms").slideOut().chain(
			function(ret) {
				$('smsSending').addClass('hidden');
				$('smsSendingFin').removeClass('hidden');
				$('smsSendingFin').setHTML('<div style="height:150px; margin: 0pt auto; '+(ret=='true'?"background: transparent url(/images/haken_gruen.gif) no-repeat scroll 100px 20px;":"")+' text-align: center;"><strong>'+(ret=='true'?LANG.profile.sms_was_sent:Json.evaluate(ret).toString())+'</strong></div><br/><br/><br/>');
				myS.get("sms").slideIn();
			}.pass(ret)
		);
	});
	return false;
}
function textCounter(field, countfield, maxlimit) {
	if (field.value.length > maxlimit)
		field.value = field.value.substring(0, maxlimit);
	else
		countfield.setHTML(maxlimit - field.value.length);
}

var old_text;
var key_up_triggered=true;
function fieldPreCheckKeyDown(field) {	
	if(key_up_triggered) {
		old_text = field.value;
		key_up_triggered=false;
	}
	return true;
}

function fieldPreCheckKeyUp(field, preText) {
	key_up_triggered=true;
	if(!field.value.match(eval("/^"+preText+".*$/"))) {
		field.value = old_text;
	}
	else old_text = field.value;
	return true;
}

