var currentModal = '';

function showWaiting()
{
	if (!currentModal) currentModal = $.modal('<div align="center" style="font-family:Verdana; font-size:12px; color:#000;"><br /><img src="/images/modal-loader.gif" alt="" /><br /><br />Bitte warten...</div>');
}

function hideWaiting()
{
	if (currentModal) currentModal.close();
}

$(function(e){
	$('.dataField').each(function(i){
		var elem = $(this) ;
		if (!elem.text()) {
			elem.html(elem.attr('title')) ;
			elem.addClass('nodata') ;
		}
	}) ;
	
	$('.dataFieldEditButton').live('click', enableDataFieldSection) ;
	
	$('.dataFieldCancelButton').live('click', disableDataFieldSection) ;
	
	$('*[class!=block_pright] > .dataFieldSaveButton').live('click', saveDataFieldSection) ;
	$('#refEntries .dataFieldSaveButton').live('click', {url:'/index.php?cmd=sedcard.vita&action=update',dontClearDefault:true}, saveDataFieldSection) ;
	$('#refEntries .dataFieldDeleteButton').live('click', {url:'/index.php?cmd=sedcard.vita&action=delete',callback:function(data){
		$('#refEntries .refEntry:eq(5)').slideDown(500) ;
		$('#refEntry-'+data.vitaappwebuserID).slideUp(500, function(e){$(this).remove();new Pager($('#refPager')) ;}) ;
		hideWaiting();
	}}, deleteDataFieldSection) ;
	
	$('#gbEntries .dataFieldDeleteButton').live('click', {url:'/index.php?cmd=sedcard.gb&action=delete',callback:function(data){
		$('#gbEntries .refEntry:eq(5)').slideDown(500) ;
		$('#gbEntry-'+data.gbEntryID).slideUp(500, function(e){$(this).remove();new Pager($('#gbPager')) ;}) ;
		
	}}, deleteDataFieldSection) ;
	
	$('#applicationEditButton').bind('click', function(e){
		$('#applicationsView').hide() ;
		$('#applicationsEdit').show() ;
		e.preventDefault() ;
	}) ;
	
	$('#applicationCancelButton').bind('click', function(e){
		$('#applicationsEdit').hide() ;
		$('#applicationsView').show() ;
		e.preventDefault() ;
	}) ;
	
	$('#applicationSaveButton').bind('click', saveWebuserApplications) ;
	
	$('#dataField-country-input').prepend('<option value="">Bitte wählen</option>') ;
	

	if ($('#fotos-sortable').sortable) {
		$('#fotos-sortable').sortable({
			//grid: [105,153],
			cursor: 'move',
			handle:'.sort-handle',
			revert: 400,
			tolerance: 'pointer',
			update: function(event, ui) {
				var items = $('#fotos-sortable .layer-meinefoto') ;
				var sort = {} ;
				for (var i = 0; i < items.length; i++) {
					sort['pics['+items[i].id.replace('foto-item-', '')+']'] = i+1 ;
				}

				$.post('/index.php?cmd=sedcard.fotos&action=sort', sort) ;
			}
	    }) ;
	}
	if ($('#videos-sortable').sortable) {
		$('#videos-sortable').sortable({
			//grid: [105,153],
			cursor: 'move',
			handle:'.sort-handle',
			revert: 400,
			tolerance: 'pointer',
			update: function(event, ui) {
				var items = $('#videos-sortable .layer-meinevideos') ;
				var sort = {} ;
				for (var i = 0; i < items.length; i++) {
					sort['videos['+items[i].id.replace('video-item-', '')+']'] = i+1 ;
				}
				
				$.post('/index.php?cmd=sedcard.videos&action=sort', sort) ;
			}
		}) ;
	}
	
	$('#video-upload-notes-link').bind('click', function(event) {
		$('#video-upload-notes').dialog({title:'Hinweise für den Video-Upload'}) ;
		event.preventDefault() ;
	}) ;
	
	$('.delete-foto').live('click', function(event){
		if (confirm('Foto wirklich löschen?')) {
			var picElem = $(this).closest('.layer-meinefoto') ;
			$.post('/index.php?cmd=sedcard.fotos&action=delete', {picID:picElem.attr('id').replace('foto-item-', '')}, function(data, textStatus){if (data.error) {alert(data.error);}}, 'json') ;
			picElem.fadeOut(500, function(){ 
				$(this).remove();
				
				if ($('#fotos-sortable .layer-meinefoto').length < $('#max_fotos').val() || $('#user_paket').val() == '2') {
					$('#foto-upload-container_message').css('display', 'none');
					$('#foto-upload-container').css('display', 'block');
				}
				else {
					$('#foto-upload-container').css('display', 'none');
					$('#foto-upload-container_message').css('display', 'block');
				} 
				
			}) ;
		}
		
		event.preventDefault() ;
	}) ;
	$('.delete-video').live('click', function(event){
		if (confirm('Video wirklich löschen?')) {
			var videoElem = $(this).closest('.layer-meinevideos') ;
			$.post('/index.php?cmd=sedcard.videos&action=delete', {videoID:videoElem.attr('id').replace('video-item-', '')}, function(data, textStatus){if (data.error) {alert(data.error);}}, 'json') ;
			videoElem.fadeOut(500, function(){ 
				$(this).remove() ;			
				
				if ($('#videos-sortable .layer-meinevideos').length <= $('#max_videos').val()) {
					$('#video-upload-container:hidden').fadeIn() ;
				}
				else {
					$('#video-upload-container:visible').fadeOut() ;
				} 
			}) ;
		}
		
		event.preventDefault() ;
	}) ;
	$('.view-foto[href="#"]').live('click', function(event){event.preventDefault();}) ;
	
	$('.edit-foto').live('click', function(event){
		var form = $('#fotos-editData') ;
		form.dialog({
			autoOpen: false,
			buttons: {
				'Speichern': function() {
					$.post('/index.php?cmd=sedcard.fotos&action=picData', $('#fotos-editData').serialize(), function(data, textStatus){if (data.error) {alert(data.error);}}, 'json') ;
					
					var picElem = $('#foto-item-'+$('*[name="picID"]', this).val()) ;
					$('.copyright-text', picElem).html($('*[name="picData[copyright]"]', this).val()) ;
					$('.title-text', picElem).html($('*[name="picData[title]"]', this).val()) ;
					$('.description-text', picElem).html($('*[name="picData[description]"]', this).val()) ;
					$('.photographer-text', picElem).html($('*[name="picData[photographer]"]', this).val()) ;

					$(this).dialog('close') ;
				},
				'Abbrechen': function() {
					$(this).dialog('close') ;
				}
			},
			closeText: '',
			modal: true,
			resizable: false,
			title: 'Fotodaten bearbeiten'
		}) ;
		
		var picElem = $(this).closest('.layer-meinefoto') ;
		$('*[name="picID"]', form).val(picElem.attr('id').replace('foto-item-', '')) ;
		$('*[name="picData[copyright]"]', form).val($('.copyright-text', picElem).text()) ;
		$('*[name="picData[title]"]', form).val($('.title-text', picElem).text()) ;
		$('*[name="picData[description]"]', form).val($('.description-text', picElem).text()) ;
		$('*[name="picData[photographer]"]', form).val($('.photographer-text', picElem).text()) ;
		
		form.dialog('open') ;
		
		event.preventDefault() ;
	}) ;
	
	$('.edit-video').live('click', function(event){
		var form = $('#videos-editData') ;
		form.dialog({
			autoOpen: false,
			buttons: {
			'Speichern': function() {
				$.post('/index.php?cmd=sedcard.videos&action=videoData', $('#videos-editData').serialize(), function(data, textStatus){if (data.error) {alert(data.error);}}, 'json') ;
				
				var videoElem = $('#video-item-'+$('*[name="videoID"]', this).val()) ;
				$('.category-text', videoElem).html($('*[name="videoData[cat_id]"]', this).val()) ;
				$('.title-text', videoElem).html($('*[name="videoData[title]"]', this).val()) ;
				$('.description-text', videoElem).html($('*[name="videoData[description]"]', this).val()) ;
				$('.keywords-text', videoElem).html($('*[name="videoData[keywords]"]', this).val()) ;
				
				$(this).dialog('close') ;
			},
			'Abbrechen': function() {
				$(this).dialog('close') ;
			}
			},
			closeText: '',
			modal: true,
			resizable: false,
			title: 'Videodaten bearbeiten'
		}) ;
		
		var videoElem = $(this).closest('.layer-meinevideos') ;
		$('*[name="videoID"]', form).val(videoElem.attr('id').replace('video-item-', '')) ;
		$('*[name="videoData[cat_id]"]', form).val($('.category-text', videoElem).text()) ;
		$('*[name="videoData[title]"]', form).val($('.title-text', videoElem).text()) ;
		$('*[name="videoData[description]"]', form).val($('.description-text', videoElem).text()) ;
		$('*[name="videoData[keywords]"]', form).val($('.keywords-text', videoElem).text()) ;
		
		form.dialog('open') ;
		
		event.preventDefault() ;
	}) ;
	
	if ($('#album-data input[name=albumID]').val() == '0') {
		$('#album-data input').attr('disabled', 'disabled') ;
	}
	
	$('#delete-album').bind('click', function(e){
		e.preventDefault() ;
		
		if (!confirm('Dieses Album und alle enthaltenen Bilder wirklich löschen?')) {
			return ;
		}

		var form = $(this).closest('form') ;
		
		$.post('/index.php?cmd=sedcard.fotos&action=deleteAlbum', form.serialize(), function(data, textStatus){
			if (data.albumID) {
				location.href = location.href.replace(/\/Fotos.*/, '/Fotos') ;
			}
			else {
				alert('Album konnte nicht gelöscht werden.') ;
			}
		}, 'json') ;
	}) ;
	
	$('#save-album-data').bind('click', function(e){
		e.preventDefault() ;
		
		var form = $(this).closest('form') ;
		
		var albumName = $('input[name=albumName]', form).val() ;
		if (!albumName) {
			alert('Bitte geben Sie den Namen des neuen Albums ein.') ;
			return ;
		}
		
		$.post('/index.php?cmd=sedcard.fotos&action=updateAlbum', form.serialize(), function(data, textStatus){
			if (data.albumID) {
				alert('Daten erfolgreich gespeichert.') ;
			}
			else {
				alert('Daten konnten nicht gespeichert werden.') ;
			}
		}, 'json') ;
	}) ;
	
	$('#new-album').bind('click', function(e){
		$('#new-album-dialog').dialog({
			modal: true,
			title: 'Neues Album anlegen',
			buttons: {
				'OK': function() {
					var albumName = $('input[name=albumName]', this).val() ;
					if (!albumName) {
						alert('Bitte geben Sie den Namen des neuen Albums ein.') ;
						return ;
					}
			
					$.post('/index.php?cmd=sedcard.fotos&action=newAlbum', $(this).serialize(), function(data, textStatus){
						if (data.albumID) {
							location.href = location.href.replace(/\/Fotos.*/, '/Fotos/'+data.albumID) ;
						}
						else {
							alert('Album konnte nicht angelegt werden.') ;
						}
					}, 'json') ;
					$(this).dialog('close') ;
				},
				'Abbrechen': function() {
					$(this).dialog('close') ;
				}
			}
		}) ;
		e.preventDefault() ;
	}) ;
	
	$('.focusBlurDefault').live('focusin', function(e){if(this.value==this.defaultValue) this.value='';}) ;
	$('.focusBlurDefault').live('focusout', function(e){if(this.value=='') this.value=this.defaultValue;}) ;

	if (jQuery.fn.uploadify) {
		$('#foto-upload').uploadify({
			uploader: '/javascript/uploadify.swf',
			script: '/index.php?cmd=sedcard.fotos&action=upload',
			scriptData: {
				cmd: 'sedcard.fotos',
				action: 'upload',
				webuserID: $('#webuserID').val(),
				webuserHash: $('#webuserHash').val(),
				albumID: $('#albumID').val()
			},
			fileDataName: 'pictureFile',
			multi: true,
			//buttonText: 'Durchsuchen...',
			buttonImg: '/images/btn-foto-upload.gif',
			width: 129,
			height: 26,
			fileDesc: 'JPEG-Dateien (*.jpg)',
			fileExt: '*.jpg',
			sizeLimit: 6144000,
			onSelect: function(event, ID, fileObj) {
				var tmp = $('#foto-upload-data').clone() ;
				tmp.attr('id', 'foto-upload-data-'+ID) ;
				$('.filename', tmp).val(fileObj.name) ;
				$('.uploadifyProgressBar', tmp).attr('id', 'foto-upload'+ID+'ProgessBar') ;
				$('.cancelButton', tmp).bind('click', function(e){
					e.preventDefault();
					var ID = $(this).closest('.foto-upload-data').attr('id').replace('foto-upload-data-', '') ;
					$('#foto-upload').uploadifyCancel(ID);
				}) ;
				
				tmp.hide() ;
				tmp.insertBefore('#foto-upload-data') ;
				tmp.fadeIn(500) ;
				return false ;
			},
			onCancel: function(event, ID, fileObj, clearFast) {
				var fadeSpeed = (clearFast == true) ? 0 : 500 ;
				$('#foto-upload-data-'+ID).fadeOut(fadeSpeed, function() { jQuery(this).remove(); }) ;
			},
			onOpen: function(event, ID, fileObj) {
				$('#foto-upload-data-'+ID+' input').attr('disabled', 'disabled') ;
				$('#foto-upload-data-'+ID+' .cancelButton').fadeOut(50) ;
				$('#foto-upload-data-'+ID+' input').each(function(i){if(this.value==this.defaultValue) this.value='';}) ;
//				$('#foto-upload-data-'+ID+' .uploadifyProgress').slideDown() ;
			},
			onProgress: function(event, ID, fileObj, data) {
				$('#foto-upload-data-'+ID+' .percentage').text(data.percentage + ' % - ' + (Math.round(data.speed*100)/100) + 'KB/s') ;
				$('#foto-upload'+ID+'ProgessBar').css('width', data.percentage+'%') ;
				return false ;
			},
			onComplete: function(event, ID, fileObj, response, data) {
				try {
					response = window['eval']('('+response+')') ;
				}
				catch (e) {
					response = {error:'Fehler bei der Dateiübertragung.'} ;
				}
				
				if (response.error) {
					alert(response.error) ;
				}
				
				if (response.msg) {
					alert(response.msg) ;
				}
				
				if (response.picID) {
					$('#foto-upload-data-'+ID+' .percentage').text('Datei wird verarbeitet. Bitte warten...') ;
					
//					alert(response.picID) ;
//					alert(response.pictureFile_crypt) ;
					$('#foto-upload-data-'+ID+' input').removeAttr('disabled') ;
					
					var tmp = $('#foto-item-tmp').clone() ;
					tmp.attr('id', 'foto-item-'+response.picID) ;
					tmp.addClass('layer-meinefoto-uncropped') ;
					tmp.hide() ;
					$('.view-foto', tmp).attr('href', $('.view-foto', tmp).attr('href')+response.picID) ;
					$('.view-foto img', tmp).attr('src', '/newpic.php?filename='+response.pictureFile_crypt+'&doCmd=thumbSquare&upload=1') ;
					$('.copyright-text', tmp).html($('#foto-upload-data-'+ID+' input[name="picData[copyright]"]').val() || '&nbsp;') ;
					$('.title-text', tmp).html($('#foto-upload-data-'+ID+' input[name="picData[title]"]').val() || '&nbsp;') ;
					$('.description-text', tmp).html($('#foto-upload-data-'+ID+' input[name="picData[description]"]').val() || '&nbsp;') ;
					$('.photographer-text', tmp).html($('#foto-upload-data-'+ID+' input[name="picData[photographer]"]').val() || '&nbsp;') ;
					tmp.appendTo('#fotos-sortable') ;
					tmp.fadeIn(500) ;
					
					var postData = $('#foto-upload-data-'+ID+' input').serialize() ;
					postData += '&picID='+response.picID ;

					$.post('/index.php?cmd=sedcard.fotos&action=picData', postData, function(data, textStatus){if (data.error) {alert(data.error);}}, 'json') ;
					
					if ($('#fotos-sortable .layer-meinefoto').length < $('#max_fotos').val()  || $('#user_paket').val() == '2') {
						$('#foto-upload-container_message').css('display', 'none');
						$('#foto-upload-container').css('display', 'block');
					} else {
						$('#foto-upload-container').css('display', 'none');
						$('#foto-upload-container_message').css('display', 'block');
					} 

					
				}
				
				$('#foto-upload-data-'+ID).slideUp(500, function(e){$(this).remove();}) ;
				return false ;
			}
		});
		
		$('#fotos-upload-button').bind('click', function(event) {
			$('#foto-upload').uploadifyUpload() ;
			event.preventDefault() ;
		}) ;
		
		// Video Upload
		$('#video-upload').uploadify({
			uploader: '/javascript/uploadify.swf',
			script: '/index.php?cmd=sedcard.videos&action=upload',
			scriptData: {
				cmd: 'sedcard.videos',
				action: 'upload',
				webuserID: $('#webuserID').val(),
				webuserHash: $('#webuserHash').val() 
		},
		fileDataName: 'videoFile',
		multi: false,
		//buttonText: 'Durchsuchen...',
		buttonImg: '/images/btn-foto-upload.gif',
		width: 129,
		height: 26,
//		fileDesc: 'Video-Dateien (*.jpg)',
//		fileExt: '*.jpg',
		sizeLimit: 100*1024*1024,
		onSelect: function(event, ID, fileObj) {
			var tmp = $('#video-upload-data').clone() ;
			tmp.attr('id', 'video-upload-data-'+ID) ;
			$('.filename', tmp).val(fileObj.name) ;
			$('.uploadifyProgressBar', tmp).attr('id', 'video-upload'+ID+'ProgessBar') ;
			$('.cancelButton', tmp).bind('click', function(e){
				e.preventDefault();
				var ID = $(this).closest('.video-upload-data').attr('id').replace('video-upload-data-', '') ;
				$('#video-upload').uploadifyCancel(ID);
			}) ;
			
			tmp.hide() ;
			tmp.insertBefore('#video-upload-data') ;
			tmp.fadeIn(500) ;
			return false ;
		},
		onCancel: function(event, ID, fileObj, clearFast) {
			var fadeSpeed = (clearFast == true) ? 0 : 500 ;
			$('#video-upload-data-'+ID).fadeOut(fadeSpeed, function() { jQuery(this).remove(); }) ;
		},
		onOpen: function(event, ID, fileObj) {
			$('#video-upload-data-'+ID+' input').attr('disabled', 'disabled') ;
			$('#video-upload-data-'+ID+' .cancelButton').fadeOut(50) ;
			$('#video-upload-data-'+ID+' input').each(function(i){if(this.value==this.defaultValue) this.value='';}) ;
//				$('#foto-upload-data-'+ID+' .uploadifyProgress').slideDown() ;
		},
		onProgress: function(event, ID, fileObj, data) {
			$('#video-upload-data-'+ID+' .percentage').text(data.percentage + ' % - ' + (Math.round(data.speed*100)/100) + 'KB/s') ;
			$('#video-upload'+ID+'ProgessBar').css('width', data.percentage+'%') ;
			if (data.percentage == 100) {
				$('#video-upload-data-'+ID+' .percentage').text('Datei wird verarbeitet. Bitte warten...') ;
			}
			return false ;
		},
		onComplete: function(event, ID, fileObj, response, data) {
			try {
				response = window['eval']('('+response+')') ;
			}
			catch (e) {
				response = {error:'Fehler bei der Dateiübertragung.'} ;
			}
			
			if (response.error) {
				alert(response.error) ;
			}
			
			if (response.msg) {
				alert(response.msg) ;
			}
			
			if (response.videoID) {
//				$('#video-upload-data-'+ID+' .percentage').text('Datei wird verarbeitet. Bitte warten...') ;
				
//					alert(response.picID) ;
//					alert(response.pictureFile_crypt) ;
				$('#video-upload-data-'+ID+' input').removeAttr('disabled') ;
				
				var tmp = $('#video-item-tmp').clone() ;
				tmp.attr('id', 'video-item-'+response.videoID) ;
				tmp.addClass('layer-meinefoto-uncropped') ;
				tmp.hide() ;
//				$('.view-foto', tmp).attr('href', $('.view-foto', tmp).attr('href')+response.videoID) ;
//				$('.view-foto img', tmp).attr('src', $('.view-foto img', tmp).attr('src').replace('--filename--', response.pictureFile_crypt)) ;
				$('.category-text', tmp).html($('#video-upload-data-'+ID+' select[name="videoData[cat_id]"]').val() || '&nbsp;') ;
				$('.title-text', tmp).html($('#video-upload-data-'+ID+' input[name="videoData[title]"]').val() || '&nbsp;') ;
				$('.description-text', tmp).html($('#video-upload-data-'+ID+' input[name="videoData[description]"]').val() || '&nbsp;') ;
				$('.keywords-text', tmp).html($('#video-upload-data-'+ID+' input[name="videoData[keywords]"]').val() || '&nbsp;') ;
				tmp.appendTo('#videos-sortable') ;
				tmp.fadeIn(500) ;
				
				var postData = $('#video-upload-data-'+ID+' input, #video-upload-data-'+ID+' select').serialize() ;
				postData += '&videoID='+response.videoID ;
				
				$.post('/index.php?cmd=sedcard.videos&action=videoData', postData, function(data, textStatus){if (data.error) {alert(data.error);}}, 'json') ;
			}
			
			$('#video-upload-data-'+ID).slideUp(500, function(e){$(this).remove();}) ;
			
			if ($('#videos-sortable .layer-meinevideos').length < $('#max_videos').val()) {
				$('#video-upload-container:hidden').fadeIn() ;
			}
			else {
				$('#video-upload-container:visible').fadeOut() ;
			}
			
			return false ;
		}
		});
		
		$('.videos-upload-button').live('click', function(event) {
			$('#video-upload').uploadifyUpload() ;
			event.preventDefault() ;
		}) ;
	}
}) ;

$(function(e){
	$('.Lavel .choice_conteiner a').bind('click', function(event) {
		$('.Lavel .info_box').hide() ;
		$('#'+this.id.replace('-link', '')).show() ;
		$('.Lavel .choice_conteiner a').removeClass('active') ;
		$(this).addClass('active') ;
		event.preventDefault() ;
	}) ;
	
	$('.Lavel #guestbook-entries').hide() ;
}) ;

$(function(e){
	$('#new-vita-form-submit').bind('click', function(e){$('#new-vita-form').trigger('submit');e.preventDefault();}) ;
	$('#new-vita-form').bind('submit', function(e){
		e.preventDefault() ;
		var form = $(this) ;
		if (!$.trim($('*[name=dataField-media]', form).val()) || !$.trim($('*[name=dataField-year]', form).val()) || !$.trim($('*[name=dataField-app]', form).val()) || !$.trim($('*[name=dataField-comment]', form).val())) {
			alert('Bitte tragen Sie alle Angabe zu Ihrer Referenz ein.') ;
			$('input[name=dataField-media]', form).focus() ;
			return ;
		}
		
		$.post('/index.php?cmd=sedcard.vita&action=new', form.serialize(), function(json, status) {
			if (json.error) {
				alert(json.error) ;
			}
			
			var form = $('#new-vita-form') ;
			var refEntry = $('#refEntry-new') ;
			tmp = refEntry.clone() ;
			tmp.hide() ;
			tmp.attr('id', 'refEntry-'+json.vitaappwebuserID) ;
			tmp.addClass('refEntry') ;
			$('form', tmp).attr('id', 'vita-form-'+json.vitaappwebuserID) ;
			$('*[name=vitaappwebuserID]', tmp).val(json.vitaappwebuserID) ;
			$('#dataField-media-new-input', tmp).attr('id', 'dataField-media'+json.vitaappwebuserID+'-input').val($('*[name=dataField-media]', form).val()) ;
			$('#dataField-media-new', tmp).attr('id', 'dataField-media'+json.vitaappwebuserID).text($('#dataField-media'+json.vitaappwebuserID+'-input option:selected', tmp).text()) ;
			$('#dataField-year-new-input', tmp).attr('id', 'dataField-year'+json.vitaappwebuserID+'-input').val($('*[name=dataField-year]', form).val()) ;
			$('#dataField-year-new', tmp).attr('id', 'dataField-year'+json.vitaappwebuserID).text($('#dataField-year'+json.vitaappwebuserID+'-input option:selected', tmp).text()) ;
			$('#dataField-app-new-input', tmp).attr('id', 'dataField-app'+json.vitaappwebuserID+'-input').val($('*[name=dataField-app]', form).val()) ;
			$('#dataField-app-new', tmp).attr('id', 'dataField-app'+json.vitaappwebuserID).text($('#dataField-app'+json.vitaappwebuserID+'-input option:selected', tmp).text()) ;
			$('#dataField-comment-new-input', tmp).attr('id', 'dataField-comment'+json.vitaappwebuserID+'-input').val($('*[name=dataField-comment]', form).val()) ;
			$('#dataField-comment-new', tmp).attr('id', 'dataField-comment'+json.vitaappwebuserID).text($('*[name=dataField-comment]', form).val()) ;
			tmp.insertAfter(refEntry) ;
			tmp.slideDown(500) ;
			$('#refEntries .refEntry:eq(4)').slideUp(500, function(){new Pager($('#refPager')) ;}) ;
		}, 'json') ;
	}) ;
}) ;

$(function(e){
	$('#new-gb-form-submit').bind('click', function(e){$('#new-gb-form').trigger('submit');e.preventDefault();}) ;
	$('#new-gb-form').bind('submit', function(e){
		e.preventDefault() ;
		var form = $(this) ;
		if (!$.trim($('*[name=dataField-title]', form).val()) || !$.trim($('*[name=dataField-text]', form).val())) {
			alert('Bitte tragen Sie alle Angabe ein.') ;
			$('input[name=dataField-title]', form).focus() ;
			return ;
		}
		
		$.post('/index.php?cmd=sedcard.gb&action=new', form.serialize(), function(json, status) {
			if (json.error) {
				alert(json.error) ;
			}
			
			var form = $('#new-gb-form') ;
			var gbEntry = $('#gbEntry-new') ;
			tmp = gbEntry.clone() ;
			tmp.hide() ;
			tmp.attr('id', 'gbEntry-'+json.gbEntryID) ;
			tmp.addClass('gbEntry') ;
			$('form', tmp).attr('id', 'gb-form-'+json.gbEntryID) ;
			$('*[name=gbEntryID]', tmp).val(json.gbEntryID) ;
			$('#dataField-username-new-input', tmp).attr('id', 'dataField-username'+json.gbEntryID+'-input').val(json.username) ;
			$('#dataField-username-new', tmp).attr('id', 'dataField-username'+json.gbEntryID).html('<a href="/sedcard/'+encodeURIComponent(json.username)+'">'+json.username+'</a>') ;
			$('#dataField-date-new-input', tmp).attr('id', 'dataField-date'+json.gbEntryID+'-input').val(json.date) ;
			$('#dataField-date-new', tmp).attr('id', 'dataField-date'+json.gbEntryID).html(json.date) ;
			$('#dataField-title-new-input', tmp).attr('id', 'dataField-title'+json.gbEntryID+'-input').val($('*[name=dataField-title]', form).val()) ;
			$('#dataField-title-new', tmp).attr('id', 'dataField-title'+json.gbEntryID).html($('*[name=dataField-title]', form).val()) ;
			$('#dataField-text-new-input', tmp).attr('id', 'dataField-text'+json.gbEntryID+'-input').val($('*[name=dataField-text]', form).val()) ;
			$('#dataField-text-new', tmp).attr('id', 'dataField-text'+json.gbEntryID).html($('*[name=dataField-text]', form).val()) ;
			tmp.insertAfter(gbEntry) ;
			tmp.slideDown(500) ;
			$('#gbEntries .gbEntry:eq(4)').slideUp(500, function(){new Pager($('#gbPager')) ;}) ;
		}, 'json') ;
	}) ;
}) ;

function saveWebuserApplications(event) {
	
	showWaiting();
	
	var elem = $(this) ;
	var section = $('#applicationsEdit') ;
	var data = (section.is('form') ? section : section.find('*')).serialize() ;

	$.post('/index.php?cmd=sedcard.update', data, updateApplications, 'json') ;
    
	// event.preventDefault() ;
}

function updateApplications(data) {

	
	location.href = data['redir_url'];
	
	return;
	
    $('#applicationsView').html(data['application_view_html']);
    
    $('#applicationEditButton').bind('click', function(e){
        $('#applicationsView').hide() ;
        $('#applicationsEdit').show() ;
        e.preventDefault() ;
    }) ;
    
    $('#applicationsEdit').hide() ;
    $('#applicationsView').show() ;
    
    hideWaiting();
    
    /*
	for (var k in data) {
		if (k == 'dataField-applications') {
			$("a[id^='webuserapp']").addClass('red') ;
			for (var i = 0; i < data[k].length; i++) {
				$('#webuserapp-'+data[k][i]).removeClass('red') ;
			}
		}
		else {
			var n = 'webuser-'+k.replace('dataField-', '') ;
			$('#'+n).toggleClass('red', data[k] == 0) ;
		}
	}*/
    
}

function enableDataFieldSection(event) {
	var elem = $(this) ;
	var section = elem.closest('.dataFieldSection') ;
	section.addClass('dataFieldSectionActive') ;
	section.find('.dataFieldEditButton').hide() ; // Needed for ie6
	
	section.find('.dataField').each(function(i){
		var elem = $(this) ;
		var input = document.getElementById(elem.attr('id')+'-input') ;
		if (!input) {
			input = document.createElement('input') ;
			input = $(input) ;
			input.attr({
				id: elem.attr('id')+'-input',
				name: elem.attr('id'),
				title: elem.attr('title'),
				defaultValue: elem.attr('title'),
				value: elem.text(),
				'class': 'dataFieldInput focusBlurDefault',
				type: elem.attr('id').indexOf('password') != -1 ? 'password' : 'text'
			}) ;
			elem.after(input) ;
		}
		else {
			input = $(input) ;
			input.show() ;
//			elem.after(input) ;
		}

		if (input.attr('type') == 'text' || input.attr('type') == 'password' || input.is('textarea')) {
			input.val(elem.text()) ;
		}
	}) ;
	event.preventDefault() ;
}

function deleteDataFieldSection(event) {
	if (!confirm('Diesen Eintrag wirklich löschen?')) { 
		event.preventDefault() ;
		return ;
	}
	$.proxy(saveDataFieldSection, this)(event) ;
	
	hideWaiting();
	
}

function saveDataFieldSection(event) {
	
	showWaiting();
	
	var elem = $(this) ;
	var section = elem.closest('.dataFieldSection') ;
	event.preventDefault() ;
	if (!event.data) {
		event.data = {} ;
	}

	if (!checkDataFields(section, true)) {
		return ;
	}
	
	section.find('input[type=text], input[type=password]').each(function(i){
		if (!event.data.dontClearDefault && this.value == this.defaultValue) {
			this.value = '' ;
		}
	}) ;
	
	var url = event.data.url ? event.data.url : '/index.php?cmd=sedcard.update' ;
	var data = (section.is('form') ? section : section.find('*')).serialize() ;
	$.post(url, data, event.data.callback ? event.data.callback : updateDataFields, 'json') ;
	
	section.removeClass('dataFieldSectionActive') ;	
	section.find('.dataFieldEditButton').show() ; // Needed for ie6
}

function checkDataFields(section, alertMessage) {
	var errors = {} ;
	var hasErrors = false ;
	
	// Meldung || [Meldung, RegExp, aktiv]
	var checkFields = {
		'username': ['Bitte geben Sie einen gültigen Benutzernamen an. Der Benutzername darf keine Sonderzeichen enthalten.', /^[A-Za-z0-9]+$/],
		'password': ['Bitte geben Sie ein Passwort mit mindestens 6 Zeichen ein.', /^[^ ].{5,}$/],
		'new_password': ['Das Passwort wurde nicht korrekt wiederholt. Bitte prüfen Sie Ihre Eingabe.', /^$/, $('*[name=dataField-password]', section).val() != $('*[name=dataField-new_password]', section).val()],
		'anrede': 'Bitte geben Sie Ihr Geschlecht an.',
		'firstName': 'Bitte geben Sie Ihren Vornamen an.',
		'lastName': 'Bitte geben Sie Ihren Nachnamen an.',
		'street': 'Bitte geben Sie Ihre Straße an.',
		'housenumber': 'Bitte geben Sie Ihre Hausnummer an.',
		'zipcode': ['Bitte geben Sie Ihre Postleitzahl korrekt an.', /^[0-9]{4,5}$/],
		'city': 'Bitte geben Sie Ihren Wohnort an.',
		'country': 'Bitte wählen Sie Ihr Land aus.',
		'region': ['Bitte wählen Sie Ihr Bundesland aus.', /^[1-9]\d*$/, $('*[name=dataField-country]', section).val() == '1'],
		'eMail': ['Bitte geben Sie Ihre E-Mail-Adresse korrekt ein.', /[-_.a-zA-Z0-9]+\@[-.a-zA-Z0-9]+\.[a-zA-Z]{2,4}/],
		'new_eMail': ['Die E-Mail-Adresse wurde nicht korrekt wiederholt. Bitte prüfen Sie Ihre Eingabe.', /^$/, $('*[name=dataField-eMail]', section).val() != $('*[name=dataField-new_eMail]', section).val()],
		'birthdayGerman': ['Bitte geben Sie Ihren Geburtstag im Format tt.mm.jjjj an.', /^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{4}$/]
	} ;
	
	for (var field in checkFields) {
		var elem = $('*[name=dataField-'+field+']', section) ;
		if (elem.length < 1) {
			continue ;
		}
		
		var msg = checkFields[field] ;
		var check = /^.+$/ ;
		if ($.isArray(checkFields[field])) {
			msg = checkFields[field][0] ;
			check = checkFields[field][1] ;
			// Enable flag
			if (checkFields[field].length == 3 && !checkFields[field][2]) {
				continue ;
			}
		}
		
		if (!check.test(elem.val()) || elem.val() == elem.attr('defaultValue')) {
			if (!hasErrors) {
				elem.focus() ;
				elem.select() ;
				hasErrors = true ;
			}
			errors[field] = msg ;
		}	
		else if (field == 'username' && !checkUsername(elem.val())) {
			elem.focus() ;
			elem.select() ;
			hasErrors = true ;
			errors[field] = 'Der gewünschte Benutzername kann leider nicht vergeben werden.' ;
		}
	}

	var message = alertMessage == true ? '' : alertMessage ;
	for (var k in errors) {
		hasErrors = true ;
		if (message) {
			message += "\n" ;
		}
		message += errors[k] ;
	}
	if (hasErrors && alertMessage) {
		hideWaiting();
		alert(message) ;
//		$('<div></div>').html(message).dialog({modal:true, closeText:'OK', title:'Fehlerhafte Angaben'}) ;
	}
	
	return !hasErrors ;
}

function checkUsername(username) {
	var response = $.ajax({
		type: 'POST',
		url: '/index.php?cmd=sedcard.update&action=checkUsername',
		data: $.param({'username':username}),
		async: false
	}).responseText ;
	return (response && response != '' && response.indexOf('error') == -1) ;
}

function updateDataFields(data) {
	
	if (data.error) {
		alert(data.error) ;
		return ;
	}
	
	if (data['dataField-username'] && data['dataField-username'] != $('#dataField-username').text()) {
		data.redir = location.href.replace('/sedcard/'+$('#dataField-username').text(), '/sedcard/'+encodeURIComponent(data['dataField-username'])) ;
	}
	
	for (var k in data) {
		var field = $('#'+k) ;
		if (!field || !field.length) {
			continue ;
		}
		field.html(data[k] ? data[k] : field.attr('title')) ;
		field.toggleClass('nodata', data[k] == '') ;
	}
	
	if (data.redir) {
		location.href = data.redir ;
	}
	
	hideWaiting();
}

function disableDataFieldSection(event) {
	var elem = $(this) ;
	var section = elem.closest('.dataFieldSection') ;
	section.removeClass('dataFieldSectionActive') ;	
	section.find('.dataFieldEditButton').show() ; // Needed for ie6
	event.preventDefault() ;
}

////////////////// MULTISELECT //////////////////////

function Multiselect(multiselectElem, options) {	
	if (!options) {
		options = {} ;
	}
	
	this.multiselectId = null ;
	this.multiselectElem = null ;
	
	this.init(multiselectElem, options) ;
}

Multiselect.prototype = (function(){
	function _init(multiselectElem, options) {
		this.multiselectElem = multiselectElem ;
		this.multiselectId = this.multiselectElem.id.replace(/multiselect-/i, '') ;
		
		$('.multiselect-delLink', this.multiselectElem).live('click', $.proxy(_deleteItem, this)) ;
		$('.multiselect-addLink', this.multiselectElem).bind('click', $.proxy(_addItem, this)) ;
	}

	function _addItem(event) {
		event.preventDefault() ;
		
		var itemElem = document.getElementById('dataField-new_'+this.multiselectId+'-input') ;
		var item_id = $(itemElem).val() ;
		var item_text = itemElem.options[itemElem.options.selectedIndex].text ;
		
		// Check if the item is already selected
		var t = $("#dataField-"+this.multiselectId+"-"+item_id) ;
		if (t.length > 0) {
			return false ;
		}
		
		var span = $(document.createElement('div')) ;
		span.attr({
			'id':'dataField-'+this.multiselectId+'-'+item_id,
			'class':'dataField-'+this.multiselectId+'-item'
		}) ;
		span.html(''+item_text+' ') ;

		var input = $(document.createElement('input')) ;
		input.attr({
			'type':'hidden',
			'name':'dataField-'+this.multiselectId+'s[]',
			'value':item_id
		}) ;
		span.append(input) ;
		
		var a = $(document.createElement('img')) ;
		a.attr({
			//'href':'#',
			'id':'dataField-'+this.multiselectId+'-'+item_id+'-delLink',
			'class':'multiselect-delLink',
			'src':'/images/btn-down.gif'
		}) ;
//		a.html('') ;
		
		/*var image = $(document.createElement('img')) ;
		image.attr({
		}) ;
		
		a.append(image) ;*/
		
		span.append(a) ;
		
		span.append('<br />') ;
		
		$('#dataField-new_'+this.multiselectId+'-input').before(span) ;
	}
	
	function _deleteItem(event) {
		event.preventDefault() ;
		
		var id = '#'+event.target.parentNode.id.replace('-delLink', '') ;
		
		$(id).remove() ;
	}
	
	return {
		constructor: Multiselect,
		init: function(multiselectElem, options){_init.call(this, multiselectElem,options);}
	} ;
})() ;

$(function(){
	$('.multiselectSection').each(function(num){
		new Multiselect(this) ;
	}) ;
}) ;

//////////////////// PAGER //////////////////////

function Pager(pagerElem, options) {
	pagerId = $(pagerElem).attr('id').replace(/pager/i, '') ;
	if (!options) {
		options = {} ;
	}
	if (!options.perPage) {
		var pRegExp = /pager-perPage-(\d)+/ ;
		if (pRegExp.exec(pagerElem.className)) {
			options.perPage = RegExp.$1 ;
		}
	}
	
	this.pagerId = null ;
	this.perPage = 4 ;
	this.entries = null ;
	this.pageCount = 0 ;
	this.curPage = 1 ;

	this.firstPageLink = null ;
	this.prevPageLink = null ;
	this.nextPageLink = null ;
	this.lastPageLink = null ;
	
	this.init(pagerId, options) ;
}

Pager.prototype = (function(){
	function _init(pagerId, options) {
		this.pagerId = pagerId ;

		if (options) {
			if (options.perPage) {
				this.perPage = options.perPage ;
			}
		}

		this.entries = $('div.'+this.pagerId+'Entry') ;
		if (!this.entries) {
			return ;
		}

		this.pageCount = Math.ceil(this.entries.length / this.perPage) ;

		var removeButtons = this.pageCount < 2 ;

		pagesContainer = $('#'+this.pagerId+'Pages') ;
		pagesContainer.text('') ;
		if (pagesContainer && !removeButtons) {
			for (var p = 1; p <= this.pageCount; p++) {
				var a = document.createElement('a') ;
				a.href = '#' ;
				a.innerHTML = p ;
				$(a).unbind('click') ;
				$(a).bind('click', p, $.proxy(_pageLinkClickHandler, this)) ;
				
				pagesContainer.append(a) ;
			}
		}

		this.firstPageLink = $('#'+this.pagerId+'FirstPageLink') ;
		this.prevPageLink = $('#'+this.pagerId+'PrevPageLink') ;
		this.nextPageLink = $('#'+this.pagerId+'NextPageLink') ;
		this.lastPageLink = $('#'+this.pagerId+'LastPageLink') ;

		if (this.firstPageLink) {
			this.firstPageLink.unbind('click') ;
			this.firstPageLink.bind('click', 1, $.proxy(_pageLinkClickHandler, this)) ;
			if (removeButtons) {
				this.firstPageLink.hide() ;
			}
		}
		if (this.prevPageLink) {
			this.prevPageLink.unbind('click') ;
			this.prevPageLink.bind('click', 'prev', $.proxy(_pageLinkClickHandler, this)) ;
			if (removeButtons) {
				this.prevPageLink.hide() ;
			}
		}
		if (this.nextPageLink) {
			this.nextPageLink.unbind('click') ;
			this.nextPageLink.bind('click', 'next', $.proxy(_pageLinkClickHandler, this)) ;
			if (removeButtons) {
				this.nextPageLink.hide() ;
			}
		}
		if (this.lastPageLink) {
			this.lastPageLink.unbind('click') ;
			this.lastPageLink.bind('click', this.pageCount, $.proxy(_pageLinkClickHandler, this)) ;
			if (removeButtons) {
				this.lastPageLink.hide() ;
			}
		}

		this.showPage(1) ;
	}

	function _pageLinkClickHandler(event) {
		var p = event.data ;
		if (p == 'prev') {
			p = this.curPage - 1 ;
			if (p < 1) {
				p = 1 ;
			}
		}
		else if (p == 'next') {
			p = this.curPage + 1 ;
			if (p > this.pageCount) {
				p = this.pageCount ;
			}
		}
		
		this.showPage(p) ;
		event.preventDefault() ;
	}
	
	function _showPage(p) {
		this.curPage = p ;
		for (var i = 0; i < this.entries.length; i++)  {
			this.entries[i].style.display = (i >= (p-1)*this.perPage && i < p*this.perPage) ? 'block' : 'none' ;
		}
		
		var pages = $('#'+this.pagerId+'Pages a') ;
		for (var i = 0; i < pages.length; i++) {
			$(pages[i]).toggleClass('active', pages[i].innerHTML == p) ;
		}
		
		if (this.firstPageLink) {
			this.firstPageLink.css('visibility', p == 1 ? 'hidden' : 'visible') ;
		}
		if (this.prevPageLink) {
			this.prevPageLink.css('visibility', p == 1 ? 'hidden' : 'visible') ;
		}
		if (this.nextPageLink) {
			this.nextPageLink.css('visibility', p == this.pageCount ? 'hidden' : 'visible') ;
		}
		if (this.lastPageLink) {
			this.lastPageLink.css('visibility', p == this.pageCount ? 'hidden' : 'visible') ; ;
		}
	}
	
	return {
		constructor: Pager,
		init: function(pagerId, options){_init.call(this, pagerId,options);},
		getCount:function(){return this.pageCount;},
		showPage: function(page){_showPage.call(this, page);}
	} ;
})() ;

$(function(){
	$('.pager').each(function(num){
		new Pager(this) ;
	}) ;
}) ;

$(function(){
	$('#spamreport').hide() ;
	$('a[href="#spamreport"]').bind('click', function() {
		if ($(this).hasClass('active')) {
			$(this).removeClass('active') ;
			$('#spamreport').fadeOut() ;
		}
		else {
			$('#spamreport').fadeIn() ;
			$(this).addClass('active') ;
		}
		return false ;
	}) ;
	$('#close-spamreport').bind('click', function(){
		$('#spamreport-form')[0].reset() ;
		$('#spamreport').fadeOut() ;
		$('a[href="#spamreport"]').removeClass('active') ;
		return false ;
	}) ;
	
	$('#comment-list .profil_long').each(function(i){
		if (i == 5) {
			var more = $('#more-comments') ;
			more.show() ;
			more.css('display', 'block') ;
			more.bind('click', function(event){
				$(this).hide() ;
				
				$('#comment-list .profil_long').slideDown() ;
				
				event.preventDefault() ;
			}) ;
		}
		if (i >= 5) {
			$(this).hide() ;
		}
	}) ;
	
	$('#comment-list .comment-delete-link').bind('click', function(event){
		event.preventDefault() ;
		
		if (!confirm('Diesen Kommentar wirklich löschen?')) {
			return ;
		}
		
		var id = $(this).closest('.profil_long').attr('id') ;
		var regEx = /pic-(\d+)-comment-(\d+)/ ;
		var res = regEx.exec(id) ;
		var picID = res[1] ;
		var commentID = res[2] ;
		
		$.post('/?cmd=comments&action=delete', {itemType:'webuserpics',itemID:picID,commentID:commentID}, $.proxy(function(data){
			$(this).closest('.profil_long').slideUp(function(){$(this).remove();}) ;
		}, this), 'json') ;
	}) ;
	
	$('#comment-form').hide() ;
	$('.writemail a').click(function(event){
		$('#comment-form').show() ;
	}) ;
	
	$('#guestbook-entries .guestbook-delete-link').bind('click', function(event){
		event.preventDefault() ;
		
		if (!confirm('Diesen Gästebucheintrag wirklich löschen?')) {
			return ;
		}
		
		var id = $(this).closest('.profil_long').attr('id') ;
		var entryID = id.replace('guestbook-entry-', '') ;
		
		$.post('/?cmd=sedcard.gb&action=delete', {gbEntryID:entryID}, $.proxy(function(data){
			$(this).closest('.profil_long').slideUp(function(){$(this).remove();}) ;
		}, this), 'json') ;
	}) ;
	
	$('#checkall').click(function(event) {
		$(this).closest('form').find('input[type=checkbox]').attr('checked', $(this).attr('checked')) ;
	}) ;
	
}) ;
