function logout() {
	$('body').prepend( '<img class="hidden" src="https://mail.google.com/a/clara-online.de/?logout&hl=de">' );
	$('body').prepend( '<img class="hidden" src="https://www.dropbox.com/logout">' );
	var mleft = ( $('#body').innerWidth() / 2 )-100;
	$('#wall, #menu, #top form').fadeOut(400);
	$('#logoutProgress').css( 'margin-left', mleft ).delay(400).fadeIn(400);
	setTimeout( 'perform_logout()', 1000 );
}

function perform_logout() {
	$.get( '/index.php?logout&ajax', function(response){
		if( response == 'ok' ) {
			$('#spinner').attr( 'src', 'static/images/done.png' );
			$('#logoutProgress p').text( 'Du wurdest sicher abgemeldet.' );
			setTimeout( 'window.location.href="/"', 2000 );
		}
		else
			window.location.href="/index.php?logout";
	} );
}

$(document).ready(function(){
	
	setup_labelover();
	
	$('#logout').attr( 'href', '#' );
	
	$('input[name="vorname"],input[name="nachname"]').bind('change focus blur', function(){
		$('input[name="newemail"]').val( convert_email( $('input[name="vorname"]').val() ) +"."+ convert_email( $('input[name="nachname"]').val() ) +"@csg-bonn.de" );
	});
	
	$('input[tooltip]').each(function(){
		setup_qtip( $(this), 'focus', 'blur', -1 );
	});
	
	$('select[tooltip]').each(function(){
		setup_qtip( $(this), 'mouseover', 'mouseout', -9 );
	});
	
	fit_framecontainer();
	setTimeout( 'fit_framecontainer()', 500 );
	
	$('.profile_edit').click(function(){
		var fields = $(this).parent().next().children('li').not('.facebook');
		fields.each(function(){
			var value = $(this).children('p').text();
			$(this).children('p').wrapInner('<span></span>');
			if( $(this).hasClass('text') )
				$(this).children('p').append('<textarea name="'+ $(this).closest('li').attr('id') +'">'+ value +'</textarea>');
			else
				$(this).children('p').append('<input type="text" name="'+ $(this).closest('li').attr('id') +'" value="'+ value +'" />');
		});
		$(this).hide();
		$(this).parent().children('.profile_save,.profile_cancel').show();
	});
	
	$('.profile_cancel').click(function(){
		var fields = $(this).parent().next().children('li').not('.facebook');
		fields.each(function(){
			var value = $(this).children('p').children('span').text();
			$(this).children('p').text( value );
		});
		$(this).parent().children('.profile_edit').show();
		$(this).parent().children('.profile_save,.profile_cancel').hide();
	});
	
	$('.feed ul li p a.button').each(function(){
		var statusid = $(this).closest('li').attr('id').substr(7);
		$(this).click(function(){
			$.get( '/index.php?i=12&ajax-feed&status-delete='+ statusid, function(response){
				if( response == 'ok' )
					$('#status-'+statusid).remove();
			} );
		});
		$(this).removeAttr( 'href' );
	});
	
	$('.feed form').submit(function(){
		$('.feed form input:submit').hide();
		$('.feed form img').show();
		$.post( '/index.php?i=12&ajax-feed', {status: $('.feed form input:text').val()}, function(response){
			if( response == 'ok' ) {
				$('.feed form input:text').val('').focus().blur();
				$('.feed form input:submit').delay(500).show();
				$('.feed form img').delay(500).hide();
			}
		} );
		return false;
	});
	
	$('.personsearch').each(function(){
		init_personsearch( $(this) );
	});
	
	$('#top .personsearch').closest('form').submit(function(){
		window.location=window.location.protocol+'//'+window.location.host+'/'+ $('#top .personsearch').val();
		return false;
	});
	
	$('ul.tasks li input:checkbox').change(function(){
		var taskid = $(this).val();
		var done = $(this).is(':checked');
		var query = '/index.php?i=19&task='+ taskid +'&done='+ done;
		$(this).attr('disabled', 'true');
		$.get( query, function(response){
			if( response != 'ok' )
				$('#task-'+ taskid).attr( 'checked', ( done ? 'false' : 'true' ) );
			$('#task-'+ taskid).removeAttr('disabled');
		} );
	});
	
	if( $('.frame.email p').size() == 2 )
		check_gapps_status();
	
	if( $('.frame.clock').size() == 1 ) {
		setInterval( 'autoupdate_clock()', 1000 );
		setInterval( 'autoupdate_statusfeed()', 15000 );
	}
	
	$('a[href^="mailto:"]').each(function(){
		var mailto = $(this).attr('href').substr(7);
		$(this).removeAttr('href').attr('onClick', 'open_mail_panel(\''+ mailto +'\')');
		$(this).text('Nachricht schreiben');
		$(this).before( '<p>eMail: '+mailto+'</p>' );
	});
	
	setTimeout( "$('#registration_offer').slideDown();", 5000 );
	
});


$(window).resize(function(){
	fit_framecontainer();
});

function fit_framecontainer() {
	if( $('#leftwall, #rightwall').hasClass('third') ) {
		var width = ($('#wall').innerWidth()-50)/3;
		$('#leftwall, #rightwall').not('.fullwidth, .third').css( 'width', (width*2) +'px' );
		$('#leftwall.third, #rightwall.third').not('.fullwidth').css( 'width', width +'px' );
	}
	else
		$('#leftwall, #rightwall').not('.fullwidth').css( 'width', ($('#wall').innerWidth()-50)/2 +'px' );
}


function init_personsearch( elem ) {
	elem.wrap( '<span class="personsearch_wrapper"></span>' );
	elem.attr( 'lastlength', '0' );
	elem.after( '<img src="static/images/search.png" class="glass" />' );
	elem.after( '<img src="static/images/reset.png" class="reset" />' );
	elem.after( '<ul class="results"></ul>' );
	elem.keypress(function(evt){
		person_search_keypress( evt, $(this).closest('span') );
	});
	elem.keyup(function(){
		person_search( $(this).closest('span') );
	});
	elem.closest('span').children('.glass').click(function(){
		person_search( $(this).closest('span') );
	});
	elem.closest('span').children('.reset').click(function(){
		$(this).hide();
		$(this).closest('span').children('.glass').show();
		$(this).closest('span').children('input.personsearch').val('').focus();
	});
}


function person_search( wrapper ) {
	var input = wrapper.children( 'input.personsearch' );
	var resultlist = wrapper.children( 'ul.results' );
	resultlist.children('li').remove();
	resultlist.hide();
	var query = input.val();
	var lastlength = input.attr( 'lastlength' );
	input.attr( 'lastlength', query.length );
	input.attr( 'autocomplete', 'off' );
	if( query == '' || query == input.attr('label') || query.length < 1 )
		return false;
	if( lastlength > query.length )
		wrapper.children('.reset').hide().closest('span').children('.glass').show();
	$.get( '/index.php?'+ ( input.hasClass('exclme') ? 'exclme&' : '' ) +'personsearch='+query, function(response){
		resultlist.children('li').remove();
		if( response.length < 10 && lastlength < query.length ) {
			input.val( query.substr( 0, (query.length-1) ) );
			person_search( wrapper );
			return false;
		}
		var results = $.parseJSON( response );
		if( results.length == 1 && lastlength < query.length ) {
			input.val( results[0][3] );
			input.attr( 'lastlength', input.val().length );
			wrapper.children('.glass').hide();
			wrapper.children('.reset').show();
		}
		else if( results.length > 1 ) {
			for( var i=0; i<results.length; i++ ) {
				resultlist.append('<li onClick="person_search_select(\''+ results[i][3] +'\', $(this))"><img src="/index.php?avatar=s&user='+ results[i][3] +'" class="userpic" />'+ results[i][0] +' '+ results[i][1] +'<div class="username">'+ results[i][3] +'</div></li>');
			}
			resultlist.show();
		}
	});
	return true;
}

function person_search_keypress( evt, wrapper ) {
	var keyCode = document.layers ? evt.which : evt.keyCode;
	if( keyCode == 13 ) {
		wrapper.children('input.personsearch').attr( 'lastlength', 1 );
		return false;
	}
	return true;
}

function person_search_select( nickname, elem ) {
	var wrapper = elem.closest('span');
	var resultlist = wrapper.children('ul.results');
	var input = wrapper.children('input.personsearch');
	input.val( nickname );
	wrapper.children('.glass').hide();
	wrapper.children('.reset').show();
	resultlist.hide();
	resultlist.children('li').remove();
	if( input.hasClass('autosubmit') )
		wrapper.closest('form').submit();
}


function setup_qtip( elem, showEvent, hideEvent, yAdjust ) {
	elem.qtip({
		content: elem.attr('tooltip'),
		show: {
			delay: 0,
			solo: true,
			when: { event: showEvent },
			effect: 'slide'
		},
		hide: hideEvent,
		style: {
			background: 'orange',
			color: '#FFF',
			border: 'none',
			margin: '5px',
			'text-shadow': 'none'
		},
		position: {
			corner: {
				target: 'topMiddle',
				tooltip: 'bottomMiddle'
			},
			adjust: {
				y: yAdjust
			}
		}
	});
}


function convert_email( email ) {
	email = email.toLowerCase();
	email = email.replace('ß', 'ss');
	email = email.replace('ä', 'ae');
	email = email.replace('ö', 'oe');
	email = email.replace('ü', 'ue');
	email = email.replace(/[^a-z]/, '');
	return email;
}


function setup_labelover() {
	$('input[type="text"], input[type="password"], textarea').each(function(){
		if( $(this).attr('label') )
			labelover( $(this), $(this).attr('label') );
	});
}


function labelover( element, title ) {
	var color_label = '#AAA';
	var color_text = '#000';

	if( element.val() == '' )
		element.val(title).css( 'color', color_label );
	element.focus(function(){
		if( $(this).val() == title )
			$(this).val('').css( 'color', color_text );
	});
	element.blur(function(){
		if( $(this).val() == '' )
			$(this).val(title).css( 'color', color_label );
	});
	element.removeAttr( 'label' );
}


function open_panel() {
	setup_labelover();
	$('#overlay').fadeIn(200);
	$('#overlay .panel').hide().slideDown(450);
}


function close_panel() {
	$('#overlay .panel').slideUp(450);
	setTimeout( "$('#overlay').fadeOut(200)", 500 );
	setTimeout( "$('#overlay .panel').remove()", 700 );
}


function open_mail_panel( mailto ) {
	var panel = $('#overlay').prepend( '<div class="panel"><h1>eMail schreiben</h1></div>' );
	$('#overlay .panel').append( '<form method="post" action="/index.php?i=12"></form>' );
	$('#overlay .panel form').append( '<p><input type="text" name="mailto" label="Empf&auml;nger" value="'+ mailto +'" size="50" style="width: 540px" /><img src="static/images/add.png" class="add" /></p>' );
	$('#overlay .panel form').append( '<p><input type="text" name="subject" label="Thema" size="50" /></p>' );
	$('#overlay .panel form').append( '<p><textarea name="text" rows="14" cols="80" label="Nachricht"></textarea></p>' );
	$('#overlay .panel form').append( '<p><img src="static/images/spinner24.gif" class="spinner" /><input type="submit" class="button bigrounded green" value="Absenden" /><input type="button" class="button bigrounded white" value="Abbrechen" onClick="close_panel()" /></p>' );
	$('#overlay .panel img.add').click(function(){
		$('#overlay .panel div.add').remove();
		$('#overlay .panel img.add').after('<div class="add"><form>Empf&auml;nger hinzuf&uuml;gen: <input type="text" class="personsearch exclme autosubmit" label="Personensuche" style="width: 300px;" /></form></div>');
		setup_labelover();
		init_personsearch( $('#overlay .panel div.add form input.personsearch') );
		$('#overlay .panel div.add form input.personsearch').focus();
		$('#overlay .panel div.add form').submit(function(){
			var person = $('#overlay .panel div.add form input.personsearch').val();
			if( person != '' )
				$('#overlay .panel form:first input:first').val( $('#overlay .panel form:first input:first').val() + ', ' + person +"@csg-bonn.de" );
			$('#overlay .panel div.add').remove();
			return false;
		});
	});
	$('#overlay .panel form').submit(function(){
		$('#overlay .panel .button').hide();
		$('#overlay .panel .spinner').show();
		$.post( '/index.php', {
			mailto: $('#overlay .panel form input[name="mailto"]').val(),
			subject: $('#overlay .panel form input[name="subject"]').val(),
			text: $('#overlay .panel form textarea[name="text"]').val()
		}, function(response){
			$('#overlay .panel .spinner').hide();
			if( response == 'ok' )
				close_panel();
			else {
				alert( response );
				$('#overlay .panel .button').show();
			}
		});
		return false;
	});
	open_panel();
}


function load_statusfeed( start ) {
	$.get( '/index.php?i=12&ajax-feed&start='+start, function(response){
		if( response == '' )
			return $('.feed a:last').hide();
		$('.feed ul').append( response );
		$('.feed a:last').attr( 'onClick', 'load_statusfeed('+ (start+10) +')' );
	} );
}


function check_gapps_status() {
	$.get( '/index.php?i=12&ajax-check-gapps-status' );
}


function autoupdate_statusfeed() {
	var statusid = $('.feed ul li:first-child').attr('id').substr(7);
	$.get( '/index.php?i=12&ajax-feed&latest='+statusid, function(response){
		if( response != '' )
			$('.feed ul').prepend( response );
		setTimeout( 'autoupdate_statusfeed()', 15000 );
	} );
}


function autoupdate_clock() {
	var today = new Date();
	today.setTime( today.getTime()+1000 );
	var h = today.getHours();
	var m = today.getMinutes();
	var s = today.getSeconds();
	h = add_leading_zero( h );
	m = add_leading_zero( m );
	s = add_leading_zero( s );
	$('.frame.clock .stunde').text( h );
	$('.frame.clock .minute').text( ':'+m );
	$('.frame.clock .seconds').text( s );
}

function add_leading_zero( i ) {
	if( i<10 )
		i = "0" + i;
	return i;
}
