var popupUserShowTimer = null;
var popupUserHideTimer = null;
var popupUserTimer = null;

var popupTimerDelay = 500;
var popupTimer = null;
var popupStartTimer = null;
var popId = null;

function check_all_boxes(value) {
	$(":checkbox").each(function(){
	                this.checked = value;
	});
}

function get_new_password(obj) {
	var eMailEl = $(obj).parents('form').find('#username');
	var eMail = eMailEl.val();
	// console.log('eMail: ' + eMail);
	/* $.post('ajax/ajax.php?action=xxxxxx, { xxxx Parameter xxxx},
		function(data) {
			$('#output-ajax').html('Ihnen wird gleich per E-Mail ein neues Passwort zugestellt.');
			$('#output-ajax').show().animate({opacity: 1}, 4000).fadeOut(2000);
		}
	); */
}

function write_message(obj, to) {
	var subject = obj.Subject.value;
	var message = obj.Message.value;
	if(obj.roster_id) var roster_id = obj.roster_id.value;
	if(parseInt(roster_id)>0) roster_id = '&roster_id='+roster_id;
	else roster_id = '';
	self.parent.tb_remove()

	// $.load('ajax/ajax.php?action=write_message&to='+to, {Subject: subject, Message: message});
	$.post('ajax/ajax.php?action=write_message&to='+to+roster_id,
		{Subject: subject, Message: message},
		function(data) {
			$('#output-ajax').html(data);
			$('#output-ajax').show().animate({opacity: 1}, 2000).fadeOut(2000);
		}
	);

	// ^ hier bitte den thickbox collector hinsetzen, so das die HTML-Antwort direkt in der Thickbox ausgegeben werden kann
	// Merke: bei Erfolg sollte die thickbox wohl nach ein paar sekunden ausgeblendet werden.

}

function add_a_friend(obj, user_id) {
	var Cause = obj.Cause.value;
	self.parent.tb_remove()

	//  $.load('ajax/ajax.php?action=add_a_friend&user_id='+user_id, {Cause: Cause});
	$.get('ajax/ajax.php?action=add_a_friend&user_id='+user_id,
		{ Cause: Cause },
		function(data) {
			$('#output-ajax').html('Freundesanfrage wurde zugestellt.');
			$('#output-ajax').show().animate({opacity: 1}, 2000).fadeOut(2000);
		}
	);
	// ^ hier bitte den thickbox collector hinsetzen, so das die HTML-Antwort direkt in der Thickbox ausgegeben werden kann
	// Merke: bei Erfolg sollte die thickbox wohl nach ein paar sekunden ausgeblendet werden.
}

function delete_a_friend(obj, user_id) {
	self.parent.tb_remove()

	//  $.load('ajax/ajax.php?action=add_a_friend&user_id='+user_id, {Cause: Cause});
	$.get('ajax/ajax.php?action=delete_a_friend&confirm=1&user_id='+user_id,
		'',
		function(data) {
			$('#output-ajax').html(data);
			$('#output-ajax').show().animate({opacity: 1}, 2000).fadeOut(2000);
		}
	);
	// ^ hier bitte den thickbox collector hinsetzen, so das die HTML-Antwort direkt in der Thickbox ausgegeben werden kann
	// Merke: bei Erfolg sollte die thickbox wohl nach ein paar sekunden ausgeblendet werden.
}



/*	======================
	Fügt Item einer ausgewählten Playliste hinzu
	Aufruf aus Song-Flyouts heraus.
*/
function add_to_playlist(obj, item_id, item_type_id) {
	if ( ($('#playlist_ID').eq(0).val() == '') && ($('.lower-half').hasClass('hide')) ) {
		// console.log('Klapp auf');
		$('.upper-half').addClass('hide');
		$('.lower-half').removeClass('hide');
	} else {
		// console.log('Senden');
		var playlist_ID = obj.playlist_ID.value;
		var playlist_name = obj.playlist_name.value;
		// var playlist_tags = obj.playlist_tags.value;

		if ($('#TB_ajaxContent').length > 0 ) {
			$('#TB_ajaxContent').load('ajax/ajax.php?action=itemplaylist', {item_id: item_id, item_type_id: item_type_id, playlist_ID: playlist_ID, playlist_name: playlist_name});
		} else {
			var warteschleife = '<div id="flyout-add-itemplaylist"><p>Abfrage läuft...</p><div class="wait-anim"><img src="images/wait.gif" /></div></div>';
			$('#add-playlist-'+item_id).html(warteschleife);
			$('#add-playlist-'+item_id).load('ajax/ajax.php?action=itemplaylist', {item_id: item_id, item_type_id: item_type_id, playlist_ID: playlist_ID, playlist_name: playlist_name});
		}

	}
}



function recommend_item(obj, item_id, formObj) {
	var user_id = obj.user_id.value;
	var email = obj.email.value;
	var message = obj.message.value;

	var isFlyout = $(formObj).parent().parent().hasClass('flyout-container-recommendation');

	if (isFlyout) {
		$('#recommend-'+item_id).load('ajax/ajax.php?action=recommend', {item_id: item_id, user_id: user_id, email: email, message: message});
	} else {
		self.parent.tb_remove()
		$.post('ajax/ajax.php?action=recommend',
			{item_id: item_id, user_id: user_id, email: email, message: message},
			function(data) {
				$('#output-ajax').html(data);
				$('#output-ajax').show().animate({opacity: 1}, 2000).fadeOut(2000);
			}
		);
	}

}

function sendRecommendation() {
	var formFriendId=$('#friends').val();
	var formText=$('#form-textarea').val();
    var itemId=$('#form-recipient').val();

	$('#TB_ajaxContent .box').load('ajax/ajax.php?action=recommendItem', {id : itemId , user_id: formFriendId, text: formText, type: 'sendmail'});
}

function sendMessageToFriend() {
    var formText=$('#form-textarea').val();
    var formRecipient=$('#form-recipient').val();

    $('#TB_ajaxContent .box').load('ajax/ajax.php?action=sendMessageToFriend', {text: formText, recipient: formRecipient});
}

function sendErrorReport() {
    var formText=$('#Error').val();
    var referrer=window.location.href;

    $('#TB_ajaxContent .box').load('ajax/ajax_beta.php?action=report_error', {Error: formText, Referrer: referrer});
}

function createHover() {
	var htmlStr = '<div id="hover-button"><a><img src="images/but-hover.png"></a></div>';
	return htmlStr;
}

function setProfileRule(rule, value) {
	$.post('ajax/ajax.php?action=setProfileRule', { rule: rule, value: value},'',"json");
}

function rollOver(aUrl) {
	var urlArr = aUrl.split('.');
	var newUrl = urlArr[0] + "_f2." + urlArr[1];
	return newUrl;
}
function rollOut(aUrl) {
	var urlArr = aUrl.split('_f2');
	var newUrl = urlArr[0] + urlArr[1];
	return newUrl;
}


function addFriend(id) {
	var Message = $('#Message').attr('value');
	$('#TB_ajaxContent .box').load('ajax/ajax.php?action=addFriend', {id: id, Message: Message});
}



function reloadone(box) {
	var parameter = $('#recommendations #'+box+' ul').attr('id');
	var old_id = parameter;
	parameter = parameter.split('_');
	if(!(parameter[1]>0)) parameter[1] = 1;
	if((parameter[2]>0)) { // Zweiten Fall gebaut, um ggf. zusätzlich item_type_id zu übergeben
		// Parameter[2] = item_type_id, Parameter[3] = item_type_str
		$('#recommendations #'+box+' ul').load('ajax/ajax.php?action=getMatch', {task: parameter[0], page: parseInt(parameter[1])+1, item_type_id: parseInt(parameter[2]), item_type_str: (parameter[3])}, function(data) {
			eval('data = '+data+';');
			$('#recommendations #'+box+' ul').html(data[0]);
			$('#recommendations #'+box+' ul').attr('id', parameter[0]+'_'+data[1]+'_'+parameter[2]+'_'+parameter[3]);
			// Binding Thickbox
			$('#recommendations #'+box+' UL.show-popup .thumb A, #popup').mouseover (function(ev) {
				$(this).showThickbox(ev);
			}).mouseout(function() {
				$(this).hideThickbox();
			});
			// Binding User-PopUp
			$('.show-popup-user .thumb A').mouseover (function(ev) {
				var thisObj = $(this);
				if (popupUserShowTimer) clearTimeout(popupUserShowTimer);
				popupUserShowTimer = setTimeout(function() {
					thisObj.showUserThickbox(ev);
				}, popupTimerDelay);
			}).mouseout(function() {
				clearTimeout(popupUserShowTimer);
				$(this).hideUserThickbox();
			});
		});
	} else {
		$('#recommendations #'+box+' ul').load('ajax/ajax.php?action=getMatch', {task: parameter[0], page: parseInt(parameter[1])+1}, function(data) {
			eval('data = '+data+';');
			$('#recommendations #'+box+' ul').html(data[0]);
			$('#recommendations #'+box+' ul').attr('id', parameter[0]+'_'+data[1]);
			// Binding Thickbox
			$('#recommendations #'+box+' UL.show-popup .thumb A, #popup').mouseover (function(ev) {
				$(this).showThickbox(ev);
			}).mouseout(function() {
				$(this).hideThickbox();
			});
			// Binding User-PopUp
			$('.show-popup-user .thumb A').mouseover (function(ev) {
				var thisObj = $(this);
				if (popupUserShowTimer) clearTimeout(popupUserShowTimer);
				popupUserShowTimer = setTimeout(function() {
					thisObj.showUserThickbox(ev);
				}, popupTimerDelay);
			}).mouseout(function() {
				clearTimeout(popupUserShowTimer);
				$(this).hideUserThickbox();
			});
		});
	}
}



function reload_match(box, params) {
	var parameter = $('#'+box+' ul').attr('id');
	var old_id = parameter;
	parameter = parameter.split('_');
	if(!(parameter[1]>0)) parameter[1] = 1;
	$('#'+box+' ul').load('ajax/ajax.php?action=getMatch'+params, {task: parameter[0], page: parseInt(parameter[1])+1}, function(data) {
		eval('data = '+data+';');

		$('#'+box+' ul').html(data[0]);
		$('#'+box+' ul').attr('id', parameter[0]+'_'+data[1]);
		// Binding Thickbox
		$('#'+box+' UL.show-popup .thumb A, #popup').mouseover (function(ev) {
			$(this).showThickbox(ev);
		}).mouseout(function() {
			$(this).hideThickbox();
		});
		// Binding User-PopUp
		$('.show-popup-user .thumb A').mouseover (function(ev) {
			var thisObj = $(this);
			if (popupUserShowTimer) clearTimeout(popupUserShowTimer);
			popupUserShowTimer = setTimeout(function() {
				thisObj.showUserThickbox(ev);
			}, popupTimerDelay);
		}).mouseout(function() {
			clearTimeout(popupUserShowTimer);
			$(this).hideUserThickbox();
		});
	});

	return false;
}

function reload_match_members(box, params, value) {
	var parameter = $('.pictures').attr('id');
	var old_id = parameter;
	parameter = parameter.split('_');
	var ft_name = $('#ft_name').val();
	if (ft_name)
	{
	    parameter[0] = ft_name;
	}
	if(!(parameter[1]>0)) parameter[1] = 1;
	$('#'+old_id).load('ajax/ajax.php?action=getMatch'+params, {task: parameter[0], page: parseInt(parameter[1])+value}, function(data) {
			eval('data = '+data+';');

			$('#'+old_id).html(data[0]);
			$('#'+old_id).attr('id', parameter[0]+'_'+data[1]);

			// Binding User-PopUp
			$('.show-popup-user .thumb A').mouseover (function(ev) {
				var thisObj = $(this);
				if (popupUserShowTimer) clearTimeout(popupUserShowTimer);
				popupUserShowTimer = setTimeout(function() {
					thisObj.showUserThickbox(ev);
				}, popupTimerDelay);
			}).mouseout(function() {
				clearTimeout(popupUserShowTimer);
				$(this).hideUserThickbox();
			});
	});

	return false;
}


function reload_match_members_members(box, params, value) {
	var parameter = $('.pictures').attr('id');
	var old_id = parameter;
	parameter = parameter.split('_');
	var ft_name = $('#ft_name').val();
	if (ft_name) {
	    parameter[0] = ft_name;
	}
	if(!(parameter[1]>0)) parameter[1] = 1;

	$('#'+box + ' UL').load('ajax/ajax.php?action=getMatch'+params, {task: parameter[0], page: parseInt(parameter[1])+value}, function(data) {
		eval('data = '+data+';');

		$('#'+box + ' UL').html(data[0]);
		$('#'+box + ' UL').attr('id', parameter[0]+'_'+data[1]);
		// Binding User-PopUp
		$('.show-popup-user .thumb A').mouseover (function(ev) {
			var thisObj = $(this);
			if (popupUserShowTimer) clearTimeout(popupUserShowTimer);
			popupUserShowTimer = setTimeout(function() {
				thisObj.showUserThickbox(ev);
			}, popupTimerDelay);
		}).mouseout(function() {
			clearTimeout(popupUserShowTimer);
			$(this).hideUserThickbox();
		});
	});

	return false;
}





function setactiv(box, container) {
	// var alt = $('#'+box+' .activ').attr('class', 'content-inner');
	// var neu = $('#'+box+' .content-inner[id^=\''+container+'\']').attr('class', 'content-inner activ');
	$('#'+box+' .activ').removeClass('activ').addClass('inactiv');
	$('#'+box+' .content-inner[id^=\''+container+'\']').removeClass('inactiv').addClass('activ');
	var id = $('#'+box+' .content-inner[id^=\''+container+'\']').attr('id');
	id = id.split('_');
	if(!(id[1]>0)) reloadone(box, 1);
}



function showHide(el1, el2) {
	$(el1).toggle();
	$(el2).toggle();
}

/*	============================================
	DOCUMENT-READY
	============================================ */
$(document).ready(function(){

	var wee_pathToImage = "images/wait.gif";
	imgLoader = new Image();// preload image
	imgLoader.src = wee_pathToImage;

	$("#tab-charts").tabs();
	$("#tab-sidebar-ratings > UL").tabs();
	$("#tabs-charts > UL").tabs();
	$("#tabs-new-items > UL").tabs();
	$("#recommendation-music > UL.tabs").tabs();
	$("#recommendation-movies > UL.tabs").tabs();
	$("#recommendation-books > UL.tabs").tabs();
	$("#tabs-itemtype > UL.tabs").tabs();
	$("#tabs-products > UL.tabs").tabs();
	$("#tabs-songs > UL.tabs").tabs();
	$("#tabs-persons > UL.tabs").tabs();
	$("#tabs-person1 > UL.tabs").tabs();
	$("#tabs-person2 > UL.tabs").tabs();


	$('.box-quarter #content-topleft H3 A').click(function() {
		var aId = $(this).attr('id');
		var classStr = $('#content').attr('class');
		var classArr = classStr.split(' ');
		var aType = classArr[0];

		$('#content-topleft .content-inner').load('ajax/ajax.php?action=getMatches', {tabString: aId, typeString: aType}, function(data) {
			eval('data = '+data+';');

			var htmlStr = '';

			var y = 1;
			for(x in data) {
				htmlStr += '<div class="asset-thumbnail">';
				htmlStr += '<div class="picture"><a href="index.php?action=details&id='+x+'"><img alt="[Cover]" title="'+data[x]['title']+'" src="'+data[x]['productimage']+'" /></a></div>';
				htmlStr += '<p>'+ y +'. Platz</p>';
				y++;
				htmlStr += '</div>';
			}

			$('#content-topleft .content-inner').html(htmlStr);

		});
	});


	$('.box-quarter #content-topright H3 A').click(function() {
		var aId = $(this).attr('id');
		var classStr = $('#content').attr('class');
		var classArr = classStr.split(' ');
		var aType = classArr[0];

		$('#content-topright .content-inner').load('ajax/ajax.php?action=getMatches', {tabString: aId, typeString: aType}, function(data) {
			eval('data = '+data+';');

			var htmlStr = '';

			var y = 1;
			for(x in data) {
				htmlStr += '<div class="asset-thumbnail">';
				htmlStr += '<div class="picture"><a href="index.php?action=details&id='+x+'"><img alt="[Cover]" title="'+data[x]['title']+'" src="'+data[x]['productimage']+'" /></a></div>';
				htmlStr += '<p>'+ y +'. Platz</p>';
				y++;
				htmlStr += '</div>';
			}

			$('#content-topright .content-inner').html(htmlStr);

		});
	});


	$('.tooltip').hover(
		function(e) {
			var idStr = jQuery(this).attr('id');
			$('#ajax-tooltip .content-inner').load('ajax/ajax.php?action=getTooltipData', {item_id: idStr});

			$('#ajax-tooltip').css('top', (e.pageY-40)+'px');
			$('#ajax-tooltip').css('left', (e.pageX+20)+'px');
			$('#ajax-tooltip').fadeIn('def');
		},
		function() {
			$('#ajax-tooltip').fadeOut('def');
		}
	);



	$('#previous-member-picture').click ( function() {
		var parameterStr = $('#member-picture').attr('alt');
		var parameterArr = parameterStr.split('_');
		var userId = parameterArr[0];
		var picId = parameterArr[1];
		$.post('ajax/ajax.php?action=previousMemberPicture', { userid: userId, picid: picId}, function(data) {
			$('#member-picture').attr('alt', userId + '_' + data.newid);
			$('#member-picture').attr('src', data.picurl);
		}, "json");
	});

	$('#next-member-picture').click ( function() {
		var parameterStr = $('#member-picture').attr('alt');
		var parameterArr = parameterStr.split('_');
		var userId = parameterArr[0];
		var picId = parameterArr[1];
		$.post('ajax/ajax.php?action=nextMemberPicture', { userid: userId, picid: picId}, function(data) {
			$('#member-picture').attr('alt', userId + '_' + data.newid);
			$('#member-picture').attr('src', data.picurl);
		}, "json");
	});

	$('#default-member-picture').click ( function() {
		var parameterStr = $('#member-picture').attr('alt');
		var parameterArr = parameterStr.split('_');
		var userId = parameterArr[0];
		var picId = parameterArr[1];
		$.post('ajax/ajax.php?action=defaultMemberPicture', { userid: userId, picid: picId}, function(data) {
			alert(data);
		}, "json");
	});

	$('#delete-member-picture').click ( function() {
		var parameterStr = $('#member-picture').attr('alt');
		var parameterArr = parameterStr.split('_');
		var userId = parameterArr[0];
		var picId = parameterArr[1];
		if(confirm('Wollen Sie wirklich dieses Bild löschen?')==true) location.href='index.php?action=profile&subaction=deletePicture&id=' + picId;
	});
	$('.hover IMG').hover(
		function(){
			var newurl = rollOver($(this).attr('src'));
			$(this).attr('src', newurl);
		},function(){
			var newurl = rollOut($(this).attr('src'));
			$(this).attr('src', newurl);
		}
	);

	$('#buzzer-center-map').hover(
		function(){
			var newurl = rollOver($('#buzzer-center IMG').attr('src'));
			$('#buzzer-center IMG').attr('src', newurl);
		},function(){
			var newurl = rollOut($('#buzzer-center IMG').attr('src'));
			$('#buzzer-center IMG').attr('src', newurl);
		}
	);


	$('#but-recommend').click( function() {
		//console.log('#but-recommend');
		var parameterStr = $(this).attr('alt');
		var parameterArr = parameterStr.split('_');
		var item_id = parameterArr[0];
		var item_type_id = parameterArr[1];
		var user_id = parameterArr[2];
		//console.log('item_id:'+ item_id + " item_type_id:" + item_type_id + " user_id:" + user_id);
		$.post('ajax/ajax.php?action=recommendItem', { item_id: item_id, item_type_id: item_type_id})
	})

	$('.with-message').click (function() {
		$(this).siblings('.request-accept').toggleClass('hide');
		$(this).siblings('.request-accept-msg').toggleClass('hide');
		$(this).siblings('.request-cancel').toggleClass('hide');
		$(this).siblings('.request-cancel-msg').toggleClass('hide');
	})


	// bbmark =========== BUTTONLEISTE ===========
	$('.bad-content').click( function() {
		var parStr = $(this).attr('id');
		var parArr = parStr.split('_');
		$.post('ajax/ajax.php?action=bad_content&subaction='+parArr[0], {id: parArr[1]}, function(data) {
				$('#output-ajax').html(data);
				$('#output-ajax').show().animate({opacity: 1}, 2000).fadeOut(2000);
		});
	});

	$('.add-actual-fav A').click( function() {
		var paramStr = $(this).attr('id');
		var paramArr = paramStr.split('_');
		var itemid = paramArr[1];
		var itemtypeid = paramArr[2];
		$.post('ajax/ajax.php?action=addcurrentfavourite', {item_id: itemid, item_type_id: itemtypeid}, function(data) {
			if (data[0] == true) {
				$('#output-ajax').html(data[1]);
				if (rez) {
					$('#output-ajax').show().animate({opacity: 1}, 2000).fadeOut(2000);
					$('.add-actual-fav').addClass('active');
				} else {
					$('#output-ajax').show();
				}
			}
		}, 'json');
	});


	// ... Wrapper für Add-To-List-Funktionalität.
	jQuery.fn.addToList = function() {
		return this.each(function(){
			// console.log('#add-list: ' + $(this).attr('id'));
			var paramStr = $(this).attr('id');
			var paramArr = paramStr.split('_');
			var itemid = paramArr[1];
			var itemtypeid = paramArr[2];

			var isFlyout = $(this).parents('.tab').hasClass('flyout-container-add-list');
			flyoutId = $(this).parents('.tab').attr('id');

			if (isFlyout) {
				$.post('ajax/ajax.php?action=additemmindlist',
					{item_id: itemid, item_type_id: itemtypeid},
					function(data) {
						$('#'+flyoutId).html(data);
					},
					'html');
			} else {
				$.post('ajax/ajax.php?action=additemmindlist',
					{item_id: itemid, item_type_id: itemtypeid},
					function(data) {
						$('#output-ajax').html(data);
						if (rez) {
							$('#output-ajax').show().animate({opacity: 1}, 2000).fadeOut(2000);
							$('.add-list').addClass('active');
						} else {
							$('#output-ajax').show();
						}
					},
					'html');
			}
			return false;
		});
	};
	jQuery.fn.addToUserList = function() {
		return this.each(function(){
			// ajax/ajax.php?action=addusermindlist&user_id=<!--{$id}-->
			var paramStr = $(this).attr('id');
			var paramArr = paramStr.split('_');
			var userId = paramArr[1];
			$.post('ajax/ajax.php?action=addusermindlist',
				{user_id: userId},
				function(data) {
					$('#output-ajax').html(data);
					$('#output-ajax').show().animate({opacity: 1}, 2000).fadeOut(2000);
					$('.add-clipboard').addClass('active');
				},
				'html');
			return false;
		});
	};

	$('.add-list A').click( function() { $(this).addToList();} );
	$('.add-clipboard A').click( function() { $(this).addToUserList();} );





	// ... Wrapper für Add-To-Playlist-Funktionalität.
	jQuery.fn.itemPlaylist = function(action) {
		return this.each(function(){

			var container = $(this).parents('#flyout-add-itemplaylist');

			var itemid = $('#addplaylist-item_id').val();
			var itemtypeid = $('#addplaylist-item_type_id').val();
			var playlistid = $('#addplaylist-playlist_ID').val();
			var playlistname = $('#addplaylist-playlist_name').val();
			var playlisttags = $('#addplaylist-playlist_tags').val();
            var checked = 1;
 if (action == false) checked=2;

			container.load('ajax/ajax.php?action=itemplaylist',
				{	item_id: itemid,
					item_type_id: itemtypeid,
					playlist_ID: playlistid,
					playlist_name: playlistname,
					playlist_tags: playlisttags,
					checked: checked
					},
				function(data) {
					// $('#'+flyoutId).html(data);
				},
				'html');

			return false;
		});
	};





	$('.but_add_to_favs').toggle(
		function() {
			var paramStr = $(this).attr('rel');
			var paramArr = paramStr.split('_');
			var userid = paramArr[0];
			var itemid = paramArr[1];
			var itemtypeid = paramArr[2];
			var itemtype = paramArr[3];
			switch (itemtype) {
				case 'books':
					var cfStr = 'add_book_to_favorites';
					break;
				case 'movies':
					var cfStr = 'add_movie_to_favorites';
					break;
				case 'music':
					var cfStr = 'add_artist_to_favorites';
					var person_type_id = 2;
					break;
				case 'track':
					var cfStr = 'add_track_to_favorites';
					break;
			}
			$.post('ajax/ajax.php?action=profile_rating', {user_id: userid, item_id: itemid, cf_data: cfStr, item_type_id: itemtypeid, person_type_id: person_type_id});
			$(this).attr('src', 'images/de/but-profiling-selected-'+itemtype+'.png');
		},
		function () {
			var paramStr = $(this).attr('rel');
			var paramArr = paramStr.split('_');
			var userid = paramArr[0];
			var itemid = paramArr[1];
			$.post('ajax/ajax.php?action=deleteProfileVoting', {user_id: userid, item_id: itemid});
			$(this).attr('src', 'images/de/but-profiling-unselected.png');
		}
	);

	/* =========== CAROUSEL::Members =========== */
	jQuery.fn.bindCarouselClick = function(ev) {
		return this.each(function() {
			// Beispiel: id="carousel_new-friends_2_8"
			// [0]: ignorieren, [1]: Type, [2]: Seite, [3]: Anzahl der zurückgegebenen Mitglieder
			// Also hier: aktuell werden die Mitglieder 9 bis 16 gezeigt (Seite 2 mit 8 Mitglieder)
			var carouselParamEl = $(this).parent();
			var carouselParamStr = $(this).parent().attr('id');
			var carouselParamArr = carouselParamStr.split('_');
			var carId = carouselParamArr[0];
			var carFunc = carouselParamArr[1];
			var carPage = carouselParamArr[2];
			var carNumber = carouselParamArr[3];
			var carNext = ($(this).hasClass('forth'))?parseInt(carPage)+1:parseInt(carPage)-1; // true: die nächsten x Freunde, false: die vorigen x Freunde

			if (carNext<1) return;

			var carParent = $(this).parent();
			var carBack = '<li class="back" onclick="$(this).bindCarouselClick();"><img src="images/browse-left.png" alt="Zurück blättern" width="15" height="55" /></li>';
			var carForth = '<li class="forth" onclick="$(this).bindCarouselClick();"><img src="images/browse-right.png" alt="Vorwärts blättern" width="15" height="55" /></li>';

			// alert('carouselClick: #'+carFunc+'( Seite '+carNext+' mit '+carNumber+' User holen)');

			$.post('ajax/ajax.php?action=getMatch', {page:carNext, task:'carousel', func:carFunc, limit:carNumber}, function(data) {
				carParent.html(carBack+data[0]+carForth);
				carNext = data[1];

				var paramStr = carId +'_'+ carFunc +'_'+ carNext +'_'+ carNumber;
				carouselParamEl.attr('id', paramStr);
				// ...... Binding des user-Popups ......
				$('.show-popup-user .thumb A').mouseover (function(ev) {
					var thisObj = $(this);
					if (popupUserShowTimer) clearTimeout(popupUserShowTimer);
					popupUserShowTimer = setTimeout(function() {
						thisObj.showUserThickbox(ev);
					}, popupTimerDelay);
				}).mouseout(function() {
					clearTimeout(popupUserShowTimer);
					$(this).hideUserThickbox();
				});

			},'json');

			//var paramStr = carId +'_'+ carFunc +'_'+ carNext +'_'+ carNumber;
			//carouselParamEl.attr('id', paramStr);
			// carParent.find('.back').click( function() { $(this).bindCarouselClick(); });
			// carParent.find('.forth').click( function() { $(this).bindCarouselClick(); });
		})
	}

	$('.browse .back').click( function() { $(this).bindCarouselClick(); });
	$('.browse .forth').click( function() { $(this).bindCarouselClick(); });


	/* =========== Rating im .meta-Teil =========== */
	// ... Rating anhand aktiven Stern ausgelesen
	// ... Rating an AJAX (Dummy: Alert) übergeben
	// ... Aktuelles Rating in Parent gesetzt.


	jQuery.fn.bindClick = function(ev) {
		return this.each(function() {
			var $target = $(ev.target);

			if (rez == false) {
				var t = null;
				var a = "ajax/ajax.php?action=itemplaylist&height=114&width=554";
				var g = false;
				var c = false;
				tb_show(t,a,g, c);
			} else if ($target.is('.but-rate')) {
				// ... Klick auf 'Sterne'
				$target.doRate('rate');
				$target.resetRatingHover();
				$target.parent().parent().siblings('.fan').addClass('hide');
				$target.parent().parent().siblings('.hate').addClass('hide');
				$target.parent().parent().siblings('.fanhate-buttons').removeClass('hide');

				var myID = $('#rate_me_id').val();
				$('#fan-'+myID).remove();
			} else if ($target.is('.but-hate')) {
				// ... Klick auf ICH BIN HATER
				$target.doRate('hate');
				$target.resetRatingHover();
				$target.parent('.fanhate').siblings('.hate').removeClass('hide');
				$target.parent('.fanhate').addClass('hide');

			} else if ($target.is('.but-fan')) {
				// ... Klick auf ICH BIN EIN FAN
				$target.doRate('fan');
				$target.resetRatingHover();
				$target.parent('.fanhate').siblings('.fan').removeClass('hide');
				$target.parent('.fanhate').addClass('hide');

				// Hinzufügen des Bildes in FAN-Spalte
				var myID = $('#rate_me_id').val();
				var myName = $('#rate_me_name').val();
				var itemTypeId = $(this).attr('id').split('_')[1];
				var myPicture = $('#rate_me_picture').val();
				if ((myPicture) && (itemTypeId<4)) {
					var secDirectory = myPicture.slice(0, 3);
					var primDirectory = secDirectory.slice(0, 1) + ((secDirectory.slice(1,3)/10)*10) + '0';
					htmlStr = '<li class="members" id="fan-'+myID+'"><div class="thumb"><a href="?action=memberdetails&id='+myID+'" title="'+myName+'"  style="background-image: url(/user_images/'+primDirectory+'/'+secDirectory+'/28x28/'+myPicture+')"></a></div></li>';
					$('#fan-container').append(htmlStr);
					$('#fan-leertext').remove();
				}
			}
			else if ($target.is('.but-reset-rating_fan')) {
				$target.doRate('unfan');
				$target.resetRatingHover();
				$target.parent('.fanhate').addClass('hide');
				$target.parent().siblings('.fanhate-buttons').removeClass('hide');

				var myID = $('#rate_me_id').val();
				$('#fan-'+myID).remove();
			}
			else if ($target.is('.but-reset-rating_hate')) {
				$target.doRate('unhate');
				$target.resetRatingHover();
				$target.parent('.fanhate').addClass('hide');
				$target.parent().siblings('.fanhate-buttons').removeClass('hide');

				var myID = $('#rate_me_id').val();
				$('#fan-'+myID).remove();
			}
		});
	};



	jQuery.fn.doRate = function(type) {
		return this.each(function() {
			// Das ist der String der als ID auf dem angeklickten Objekt (Fan/Hate) stehen muss:
			// rate-fan_1_9920_6_direct_undefined
			// split('_'). [0]: ignorieren, [1]: ItemType, [2]: ItemID, [3]: Rating, [4]: cfType/RateType, [5]: PersonType
            var itemTypeId = $(this).attr('id').split('_')[1];
            var itemId = $(this).attr('id').split('_')[2];
			var rating = $(this).attr('id').split('_')[3];
			var cf_type = $(this).attr('id').split('_')[4];
            var personTypeId = $(this).attr('id').split('_')[5];
            /* var itemTypeId = $('#rate_item_type').val();
            var cf_type = $('#rate_type').val();
            var personTypeId = $('#rate_person_type').val(); */
			// alert('Wertung des Items #' + itemId + " mit " + rating + " Sternen" + " / " + itemTypeId + " / " + type);
			if (type=='rate' || type == 'fan')
			{
                $.post('ajax/ajax.php?action=justVoteFromDetail', { item_id: itemId, rating: rating, item_type_id: itemTypeId ,person_type_id: personTypeId,cf_type: cf_type})
			}
			else if (type=='hate')
			{
			    $.post('ajax/ajax.php?action=hate', { item_id: itemId, rating: rating, item_type_id: itemTypeId, cf_type: cf_type , person_type_id: personTypeId})
			}
			else if (type == 'unfan' || type=='unhate')
			{
			     $.post('ajax/ajax.php?action=type_voting', { item_id: itemId, rating: rating, item_type_id: itemTypeId ,person_type_id: personTypeId,cf_type: cf_type})
			}
            var newAttrStr = $(this).parents('.rate-item').attr('id').split('_')[0] + '_' +itemTypeId+"_"+itemId+"_"+rating+"_"+cf_type+"_"+personTypeId;
			$(this).parents('.rate-item').attr('id', newAttrStr);
			$('.data-rating-me-'+itemId).val(rating);
		});
	};



	// ... Aktuelles Rating wird aus Parent ausgelesen und entsprechend Sterne gesetzt
	jQuery.fn.resetRatingHover = function() {
		return this.each(function(){
			var rateItemEl = $(this).parents('.rate-item');
			var itemTypeId = rateItemEl.attr('id').split('_')[1];
            var itemId = rateItemEl.attr('id').split('_')[2];
			var rating = rateItemEl.attr('id').split('_')[3];
			var cf_type = rateItemEl.attr('id').split('_')[4];
            var personTypeId = rateItemEl.attr('id').split('_')[5];
            // if (personTypeId == 'undefined') personTypeId = '';

			switch(parseInt(rating)) {
				case 1:
					var ratingTxt = 'schlecht';
					break;
				case 2:
					var ratingTxt = 'nicht so gut';
					break;
				case 3:
					var ratingTxt = 'gefällt mir';
					break;
				case 4:
					var ratingTxt = 'gut';
					break;
				case 5:
					var ratingTxt = 'sehr gut';
					break;
				case 6:
					var ratingTxt = '...';
					break;
				case -1:
					var ratingTxt = '...';
					break;
				default:
					var ratingTxt = 'Jetzt bewerten';
					break;
			}
			$('#rating-text-'+itemId).html(ratingTxt);

			for (var i=1; i<6; i++) {
				(i<=rating)? state='on':state='off';
				idStr = '#rate_'+itemTypeId+"_"+itemId+'_'+i+'_'+'rate'+'_'+personTypeId;
				$(idStr).attr('src', 'images/star-'+state+'.png');
				// console.log('Will zurücksetzen String: ' + idStr + '::');
			}
		});
	};

	// ... Rating wird übergeben und entsprechend Sterne gesetzt.
	jQuery.fn.doRatingHover = function(rating) {
		return this.each(function(){
            var itemTypeId = $(this).attr('id').split('_')[1];
            var itemId = $(this).attr('id').split('_')[2];
			var rating = $(this).attr('id').split('_')[3];
			var cf_type = $(this).attr('id').split('_')[4];
            var personTypeId = $(this).attr('id').split('_')[5];

			switch(parseInt(rating)) {
				case 1:
					var ratingTxt = 'schlecht';
					break;
				case 2:
					var ratingTxt = 'nicht so gut';
					break;
				case 3:
					var ratingTxt = 'gefällt mir';
					break;
				case 4:
					var ratingTxt = 'gut';
					break;
				case 5:
					var ratingTxt = 'sehr gut';
					break;
				case 6:
					var ratingTxt = '...';
					break;
				case -1:
					var ratingTxt = '...';
					break;
				default:
					var ratingTxt = 'Jetzt bewerten';
					break;
			}
			$('#rating-text-'+itemId).html(ratingTxt);

			for (var i=1; i<6; i++) {
				(i<=rating)? state='on':state='off';
				$('#rate_'+itemTypeId+"_"+itemId+'_'+i+'_'+cf_type+'_'+personTypeId).attr('src', 'images/star-'+state+'.png');
			}
		});
	};


	// ... Wrapper für Hover-über-Rating-Funktionalität.
	jQuery.fn.bindRatingHover = function() {
		return this.each(function(){
			var rating = $(this).attr('id').split('_')[2];
			$(this).doRatingHover(rating);
		});
	};

	/* ----------- Events::Ratings --------- */

	// ... Hover über Sterne
	$('.but-rate').mouseover( function() { $(this).bindRatingHover(); });
	// ... MouseOut über Sternebereich
	$('.my-rating').mouseout( function() { $(this).resetRatingHover(); });

	// Event Delegation für CLICK zum Raten
	$('.rate-item').click( function(ev) { $(this).bindClick(ev); });








	/* START =========== Rating in Dickbox =========== */
	var popupTimerDelay = 500;
	var popupTimer = null;
	var popupStartTimer = null;
	var popId = null;
	var $pop = $('#popup');


	// ...... Wrapper für Thickbox-Funktionen ......
	jQuery.fn.showThickbox = function(evObj) {
		return this.each(function(){
			if (popupTimer) clearTimeout(popupTimer);

			var dataId = $(this).parent('.thumb').siblings('.data-id').val();
			var personDataId = $(this).parent('.thumb').siblings('.person-data-id').val();
			if (($pop.is(':visible')) && (dataId == popId)) { // Wenn MouseOver vom gleichen Objekt kommt, raus.
				return;
			} else { // Popup einrichten
				var dataName = $(this).parent('.thumb').siblings('.data-name').val();
				var dataTitle = $(this).parent('.thumb').siblings('.data-title').val();
				var dataRatingCommunity = parseInt($(this).parent('.thumb').siblings('.data-rating-community').val());
				var dataRatingMe = $(this).parent('.thumb').siblings('.data-rating-me-'+dataId).val();
				var dataItemType = $(this).parent('.thumb').siblings('#rate_item_type-'+dataId).val();
				var dataPersonType = $(this).parent('.thumb').siblings('#rate_person_type-'+dataId).val();
				var popX = $(evObj.target).offset().left + 50;
				var popY = $(evObj.target).offset().top - 50;
				var popId = dataId;
				$pop.css('top', popY );
				$pop.css('left', popX );

				// Beschriftung und Farbe
				if(dataTitle) {
					$pop.children('#popup-body').children('#popup-inner H2').children('H2').html(dataTitle);
					$pop.children('#popup-body').children('#popup-inner H2').children('H3').html(dataName);
				} else {
					$pop.children('#popup-body').children('#popup-inner H2').children('H2').html(dataName);
					$pop.children('#popup-body').children('#popup-inner H2').children('H3').html('');
				}
				$pop.children('#popup-body').children('#popup-inner').attr('class', 'itemtype-'+dataItemType);

				// Rating-Sterne Community
				var ratingStr = '';
				for (var i=1; i<=5; i++) {
					if (i<= parseInt(dataRatingCommunity)) {
						ratingStr = ratingStr + '<img src="images/star-on.png" alt="" />';
					} else {
						ratingStr = ratingStr + '<img src="images/star-off.png" alt="" />';
					}
				}
				$('#popup .community-rating').html(ratingStr);

				// Rating-Sterne User
				var ratingStr = '';
				switch(parseInt(dataRatingMe)) {
					case 1:
						var ratingTxt = 'schlecht';
						break;
					case 2:
						var ratingTxt = 'nicht so gut';
						break;
					case 3:
						var ratingTxt = 'gefällt mir';
						break;
					case 4:
						var ratingTxt = 'gut';
						break;
					case 5:
						var ratingTxt = 'sehr gut';
						break;
					case 6:
						var ratingTxt = '...';
						break;
					case -1:
						var ratingTxt = '...';
						break;
					default:
						var ratingTxt = 'Jetzt bewerten';
						break;
				}
				var ratingStr = '<div class="rating-text" id="rating-text-'+dataId+'">'+ratingTxt+'</div>';
				for (var i=1; i<=5; i++) {
					if (i<= parseInt(dataRatingMe)) {
						ratingStr = ratingStr + '<img src="images/star-on.png" alt="" id="rate_'+dataItemType+"_"+dataId+'_'+i+'_rate_'+dataPersonType+'" class="but-rate cursor-pointer" />';
					} else {
						ratingStr = ratingStr + '<img src="images/star-off.png" alt="" id="rate_'+dataItemType+"_"+dataId+'_'+i+'_rate_'+dataPersonType+'" class="but-rate cursor-pointer" />';
					}
				}
				$('#popup .my-rating').html(ratingStr);


				// Event-Binding Sterne
				$('#popup .my-rating .but-rate').mouseover( function() { $(this).bindRatingHover(); });
				$('#popup .my-rating').mouseout( function() { $(this).resetRatingHover(); });

				// UL Parent
				idStr = "actual-rating_"+dataItemType+"_"+dataId+"_"+dataRatingMe+"_direct_"+dataPersonType;
				$('#popup .rate-item').attr('id', idStr);

				// cf_type bilden
				var cf_type = '';
				switch (parseInt(dataItemType)) {
					case 1:
						cf_type = 'book';
						// LI action-ignore
						var htmlStr0 = '<a href="ajax/ajax.php?action=ignorebytype&item_id='+dataId+'&ignoretype=ignorebook" title="">Buch nicht mehr empfehlen</a>';
						var htmlStr1 = '<a href="ajax/ajax.php?action=ignorebytype&item_id='+personDataId+'&ignoretype=ignoreauthor" title="">Autor nicht mehr empfehlen</a>';
						$('#popup .ignore').eq(0).html(htmlStr0);
						$('#popup .ignore').eq(1).removeClass('hide');
						$('#popup .ignore').eq(1).html(htmlStr1);

						break;
					case 2:
						cf_type = 'album';
						// LI action-ignore
						var htmlStr0 = '<a href="ajax/ajax.php?action=ignorebytype&item_id='+dataId+'&ignoretype=ignorealbum" title="">Produkt nicht mehr empfehlen</a>';
						var htmlStr1 = '<a href="ajax/ajax.php?action=ignorebytype&item_id='+personDataId+'&ignoretype=ignoreartist" title="">Interpret nicht mehr empfehlen</a>';
						$('#popup .ignore').eq(0).html(htmlStr0);
						$('#popup .ignore').eq(1).removeClass('hide');
						$('#popup .ignore').eq(1).html(htmlStr1);

						break;
					case 3:
						cf_type = 'movie';
						// LI action-ignore
						var htmlStr0 = '<a href="ajax/ajax.php?action=ignorebytype&item_id='+dataId+'&ignoretype=ignoremovie" title="">Film nicht mehr empfehlen</a>';
						var htmlStr1 = '';
						$('#popup .ignore').eq(0).html(htmlStr0);
						$('#popup .ignore').eq(1).addClass('hide');
						$('#popup .ignore').eq(1).html(htmlStr1);

						break;
					case 4:
						cf_type = 'track';
						// LI action-ignore
						var htmlStr0 = '<a href="ajax/ajax.php?action=ignorebytype&item_id='+dataId+'&ignoretype=ignoretrack" title="">Titel nicht mehr empfehlen</a>';
						var htmlStr1 = '';
						$('#popup .ignore').eq(0).html(htmlStr0);
						$('#popup .ignore').eq(1).removeClass('hide');
						$('#popup .ignore').eq(1).html(htmlStr1);

						break;
					case 5:
						switch (parseInt(dataPersonType)) {
							case 1:
								cf_type = 'author';
								// LI action-ignore
								var htmlStr0 = '<a href="ajax/ajax.php?action=ignorebytype&item_id='+dataId+'&ignoretype=ignoreauthor" title="">Autor nicht mehr empfehlen</a>';
								var htmlStr1 = '';
								$('#popup .ignore').eq(0).html(htmlStr0);
								$('#popup .ignore').eq(1).addClass('hide');
								break;
							case 2:
								cf_type = 'artist';
								// LI action-ignore
								var htmlStr0 = '<a href="ajax/ajax.php?action=ignorebytype&item_id='+dataId+'&ignoretype=ignoreartist" title="">Interpret nicht mehr empfehlen</a>';
								var htmlStr1 = '';
								$('#popup .ignore').eq(0).html(htmlStr0);
								$('#popup .ignore').eq(1).addClass('hide');
								break;
							case 3:
								cf_type = 'actor';
								// LI action-ignore
								var htmlStr0 = '<a href="ajax/ajax.php?action=ignorebytype&item_id='+dataId+'&ignoretype=ignoreactor" title="">Darsteller nicht mehr empfehlen</a>';
								var htmlStr1 = '';
								$('#popup .ignore').eq(0).html(htmlStr0);
								$('#popup .ignore').eq(1).addClass('hide');
								break;
							case 4:
								cf_type = 'director';
								// LI action-ignore
								var htmlStr0 = '<a href="ajax/ajax.php?action=ignorebytype&item_id='+dataId+'&ignoretype=ignoredirector" title="">Regisseur nicht mehr empfehlen</a>';
								var htmlStr1 = '';
								$('#popup .ignore').eq(0).html(htmlStr0);
								$('#popup .ignore').eq(1).addClass('hide');
								break;
						}
						break;
				}



				// Alte Stringzusammensetzung
				// idStr = dataItemType+"_"+dataId+"_0_direct_"+dataPersonType+"_close-fan";
				idStr = "close-fan_"+dataItemType+"_"+dataId+"_0_unfan-"+cf_type+"_"+dataPersonType;
				$('#popup #popup-status-fan IMG').attr('id', idStr);

				idStr = "close-hate_"+dataItemType+"_"+dataId+"_0_unhate-"+cf_type+"_"+dataPersonType;
				$('#popup #popup-status-hate IMG').attr('id', idStr);

				idStr = "rate-fan_"+dataItemType+"_"+dataId+"_6_direct_"+dataPersonType;
				$('#popup #popup-status-switch IMG.but-fan').attr('id', idStr);

				// Anpassen an kriegsentscheidende Unterscheidung zwischen Fan vs Favorit
				$('#popup #popup-status-switch IMG.but-fan').attr('src', 'images/de/but-fan.png');
				$('#popup #popup-status-fan SPAN').html('Ich bin Fan!');

				idStr = "rate-hate_"+dataItemType+"_"+dataId+"_-1_hate-"+cf_type+"_"+dataPersonType;
				$('#popup #popup-status-switch IMG.but-hate').attr('id', idStr);

				switch(parseInt(dataRatingMe)) {
					case 6:
						$('#popup #popup-status-fan').removeClass('hide');
						$('#popup #popup-status-hate').addClass('hide');
						$('#popup #popup-status-switch').addClass('hide');
						break;
					case -1:
						$('#popup #popup-status-fan').addClass('hide');
						$('#popup #popup-status-hate').removeClass('hide');
						$('#popup #popup-status-switch').addClass('hide');
						break;
					default:
						$('#popup #popup-status-fan').addClass('hide');
						$('#popup #popup-status-hate').addClass('hide');
						$('#popup #popup-status-switch').removeClass('hide');
				}


				$pop.show();
			}

		});
	};

	jQuery.fn.hideThickbox = function(evObj) {
		return this.each(function(){
			if (popupTimer) clearTimeout(popupTimer);

			popupTimer = setTimeout(function() {
				popupTimer = null;
				$pop.hide();
				/* $pop.unbind();
				$pop.unbind(); */
			}, popupTimerDelay);
		});
	};


	// ...... Binding der Thickbox-Funktionalität beim Laden der Seite ......
	$('.show-popup .thumb A').mouseover (function(ev) {
		/* popupStartTimer = setTimeout(function() {
			popupStartTimer = null;
			$(this).showThickbox(ev);
		}, 500); */
		$(this).showThickbox(ev);
	}).mouseout(function() {
		//console.log('#mouseout: Thumb');
		popupStartTimer = null;
		$(this).hideThickbox();
	});
	$('#popup').mouseover (function(ev) {
		/* popupStartTimer = setTimeout(function() {
			popupStartTimer = null;
			$(this).showThickbox(ev);
		}, 500); */
		$(this).showThickbox(ev);
	}).mouseout(function() {
		// console.log('#mouseout: Popup');
		popupStartTimer = null;
		$(this).hideThickbox();
	});

	/* ENDE =========== Rating in Dickbox =========== */





	/* START =========== Popup-User =========== */
	var popUserId = null;
	var $popUser = $('#popup-user');
	var popupUserShowTimer = null;
	var popupUserHideTimer = null;
	var popupUserTimer = null;


	// ...... Wrapper für User-Thickbox-Funktionen ......
	jQuery.fn.showUserThickbox = function(evObj) {
		return this.each(function(){
			// Veralteten Timer loeschen
			if (popupUserShowTimer) clearTimeout(popupUserShowTimer);
			if (popupUserHideTimer) clearTimeout(popupUserHideTimer);
			// Hover uebern Popup selber?
			if ($(this).attr('id') == 'popup-user') return;

			// Alte Popup-Inhalte loeschen
			$('#popup-user-inner').html('<span>&nbsp;</span>');

			// Gibt zwei varianten von Code in denen das Thumbnail stecken kann.
			var userStr = $(this).parent('.thumb').attr('id') || $(this).parents('.members50').attr('id');

			// Auslesen User-ID
			var userArr = userStr.split('_');
			var userId = userArr[1];

			// Wenn MouseOver vom gleichen Objekt kommt, raus.
			if (($popUser.is(':visible')) && (userId == popUserId)) {
				return;
			} else {
				// Popup positionieren
				var popX = $(evObj.target).offset().left + 50;
				var popY = $(evObj.target).offset().top - 50;
				var popUserId = userId;
				$popUser.css('top', popY );
				$popUser.css('left', popX );

				// Werte ans HTML übergeben
				$('#popup-user-body').load('ajax/ajax.php?action=user_info&id='+userId);

				$popUser.show();
			}

		});
	};


	jQuery.fn.hideUserThickbox = function(evObj) {
		return this.each(function(){
			if (popupUserHideTimer) clearTimeout(popupUserHideTimer);

			popupUserHideTimer = setTimeout(function() {
				$popUser.hide();
			}, popupTimerDelay);
		});
	};


	// ...... Binding der Thickbox-Funktionalität beim Laden der Seite ......
	// ...... MouseOver::Thumbnail
	$('.show-popup-user .thumb A').mouseover (function(ev) {
		var thisObj = $(this);
		if (popupUserShowTimer) clearTimeout(popupUserShowTimer);
		// Erscheinen der Thickbox erst mit Verzögerung
		//		... um beim schnellen Hovern über mehrere Thumbs das Starten von
		//		mehr als 6 Connections per AJAX zu verhindern (max Connection per Browser)
		popupUserShowTimer = setTimeout(function() {
			thisObj.showUserThickbox(ev);
		}, popupTimerDelay);
	}).mouseout(function() {
		clearTimeout(popupUserShowTimer);
		$(this).hideUserThickbox();
	});

	// ...... MouseOver::Thickbox
	$('#popup-user').mouseover (function(ev) {
		$(this).showUserThickbox(ev);
	}).mouseout(function() {
		if (popupUserShowTimer) clearTimeout(popupUserShowTimer);
		$(this).hideUserThickbox();
	});

	/* ENDE =========== Popup-User =========== */




	$('.friends .but-more').click(function() {
		var pageStr = $(this).siblings('.user-pictures').attr('rel');
		var pageArr = pageStr.split('_');
		var itemId = pageArr[0];
		var page = pageArr[1];
		var usercount = pageArr[2];
		var pagecount = parseInt(usercount/18);
		if (pagecount >= 1) {
			page = parseInt(page) + 1;
			$(this).siblings('.user-pictures').attr('rel', itemId+'_'+page+'_'+usercount);
			$(this).siblings('.user-pictures').load('ajax/ajax.php?action=getcurrentfavusers&item_id='+itemId+'&page='+page);
			$(this).siblings('.but-less').removeClass('inactive');
			if (pagecount == (page-1)) $(this).addClass('inactive');
		}
	})

	$('.friends .but-less').click(function() {
		var pageStr = $(this).siblings('.user-pictures').attr('rel');
		var pageArr = pageStr.split('_');
		var itemId = pageArr[0];
		var page = pageArr[1];
		var usercount = pageArr[2];
		if (page > 1) {
			page = parseInt(page) - 1;
			$(this).siblings('.user-pictures').attr('rel', itemId+'_'+page+'_'+usercount);
			$(this).siblings('.user-pictures').load('ajax/ajax.php?action=getcurrentfavusers&item_id='+itemId+'&page='+page);
			if (page == 1) $(this).addClass('inactive');
			$(this).siblings('.but-more').removeClass('inactive');
		}
	})

	$('.but-flag-comment').click(function() {
		$(this).parent().parent().append('<p id="ajax-feedback">Kommentar melden...</p>');
		var pageStr = $(this).attr('id');
		var pageArr = pageStr.split('_');
		var commentId = pageArr[1];
		$.post('ajax/ajax.php?action=addbadcontent&type=comment', {id: commentId}, function(data){
			$("#ajax-feedback").html('Der Eintrag wurde als unangemessener Inhalt gemeldet. Das welike-Team wird den Fall umgehend prüfen.').fadeOut(1800, function() {
				$(this).remove();
			});
		});
	});


	$('.delete-rezension').click(function() {
		var paraStr = $(this).attr('id');
		var paraArr = paraStr.split('_');
		var rezensionId = paraArr[1];
		$.post('ajax/ajax.php?action=deletereview', {id: rezensionId}, function(data){
			/* $("#ajax-feedback").html('Die Rezension wurde gelöscht').fadeOut(1800, function() {
				$(this).remove();
			}); */
			window.location.href=window.location.href;
		});
	});


	$('.deletereviewcomment').click(function() {
		var paraStr = $(this).attr('id');
		var paraArr = paraStr.split('_');
		var commentId = paraArr[1];
		$.post('ajax/ajax.php?action=deletereviewcomment', {id: commentId}, function(data){
			/* $("#ajax-feedback").html('Die Rezension wurde gelöscht').fadeOut(1800, function() {
				$(this).remove();
			}); */
			window.location.href=window.location.href;
		});
	});



	/* =========== New Flyouts =========== */
	$('.but-toggle-flyout').toggle(
		function() { // ------ #OPEN FLYOUT
			// Alte Flyouts alle löschen. Nimm dies, Schurke!
			$('.but-toggle-flyout').removeClass('but-toggle-flyout-open');
			$('.flyout-trigger').removeClass('open');
			$('.flyout-content').html('<div class="loading"></div>');
			$('.flyout-body').addClass('hide');

			// Button austauschen
			$(this).addClass('but-toggle-flyout-open');

			// Flyout-TR an richtige Stelle verschieben
			// Flyout-TR erscheinen lassen.
			var $parentEl = $(this).parents('TR');
			var $flyoutBody = $(this).parents('TABLE').find('.flyout-body');
			$parentEl.after($flyoutBody);
			$parentEl.addClass('open');
			$flyoutBody.removeClass('hide');

			// Flyouts in Suche oder Charts?
			/* var isSearchFlyouts = $(this).parents('TR').hasClass('flyout-trigger');
			var isSongFlyouts = $(this).parents('TR').hasClass('flyout-song');
			if ((isSearchFlyouts) && (!isSongFlyouts)) {
				$flyoutTrigger = $(this).parents('TR');
				$flyoutTrigger.children('.col-main').attr('colspan', '2');
			} */

			// Daten für Flyout holen
			var flySubaction = $(this).parents('TABLE').find('.fly-subaction').val();
			var flyType = $(this).parents('TABLE').find('.fly-type').val();
			var flyPersonType = $(this).parents('TABLE').find('.fly-persontype').val();
			var flyID = $(this).attr('id').split('_')[1];

			// Flyout-Content laden.
			// flyType legt fest, welches Flyout-template geladen wird: song | person | product
			$.get('ajax/ajax.php?action=flyout',
				{ subaction: flySubaction, type: flyType, id: flyID, person_type_id: flyPersonType },
				function(data) {
					$flyoutBody.children('.flyout-content').html(data);
					$flyoutBody.find('.tabset').tabs();

					// Setzen von Fan|Hate
					var dataRatingMe = $('#data-rating-me-'+flyID).val();
					switch(parseInt(dataRatingMe)) {
					case 6:
						$('#flyout-status-fan').removeClass('hide');
						$('#flyout-status-hate').addClass('hide');
						$('#flyout-status-switch').addClass('hide');
						break;
					case -1:
						$('#flyout-status-fan').addClass('hide');
						$('#flyout-status-hate').removeClass('hide');
						$('#flyout-status-switch').addClass('hide');
						break;
					default:
						$('#flyout-status-fan').addClass('hide');
						$('#flyout-status-hate').addClass('hide');
						$('#flyout-status-switch').removeClass('hide');
					}

					// Binding der Events über Sterne
					var idStr = "#rate-" + flyID;
					$(idStr + ' .but-rate').mouseover( function() { $(this).bindRatingHover(); });
					$(idStr + ' .my-rating').mouseout( function() { $(this).resetRatingHover(); });
					$(idStr + ' .rate-item').click( function(ev) { $(this).bindClick(ev); });

				}
			);
		},
		function() { // ------ #CLOSE FLYOUT
			var $parentEl = $(this).parents('TR');
			var $flyoutBody = $(this).parents('TABLE').find('.flyout-body');
			$parentEl.removeClass('open');
			$(this).removeClass('but-toggle-flyout-open');
			$flyoutBody.addClass('hide');
			$flyoutBody.children('.flyout-content').html('<div class="loading"></div>');

			// Flyouts in Suche oder Charts?
			/* var isSearchFlyouts = $(this).parents('TR').hasClass('flyout-trigger');
			var isSongFlyouts = $(this).parents('TR').hasClass('flyout-song');
			if ((isSearchFlyouts) && (!isSongFlyouts)) {
				$flyoutTrigger = $(this).parents('TR');
				$flyoutTrigger.children('.col-main').attr('colspan', '1');
			} */
		}
	)









});

// fix a jQ/ff bug where animations would set display to block and break table display in non-IE browsers
jQuery.extend(jQuery.fx.prototype, {
  update: function(){
    if ( this.options.step )
      this.options.step.call( this.elem, this.now, this );

    (jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this );

    // Set display property to block for height/width animations
    if ( this.prop == "height" || this.prop == "width" ) {
      this.elem.style.display = (this.elem.nodeName == 'TR' && !$.browser.msie) ? 'table-row' : "block";
    }
  }
});
// end

jQuery.fn.extend({
  flyout: function() {

    hide = function($e) {
      var s = $e.siblings('tr.flyout-top, tr.flyout-bottom');
      var t = $(s.get(0)); var b = $(s.get(1));
      b.find('td').addClass('loading');
      s.addClass('hide');
      $e.removeClass('hide').removeClass('flyout-open');
    };

    show = function($e) {
      $e.addClass('hide');
      var s = $e.siblings('tr.flyout-top, tr.flyout-bottom');
      var t = $(s.get(0)); var b = $(s.get(1));
      t.html($e.html());
      t.find('.col-img, .col-play').remove();
      t.find('.rating').remove();
      t.find('.col-main').attr('colspan', 2);
      t.find('.bt-flyout img').attr('src', 'images/but-close.png').flyout();
      t.removeClass('flyout-trigger');
      b.insertAfter($e);
      t.insertAfter($e);
      s.removeClass('hide');
      var url = $e.find('.bt-flyout a').attr('href').split(/\?/);
      url[0] = 'ajax/ajax.php';
      load(b.find('.flyout-content'), url.join('?'));
      $e.addClass('flyout-open');
    };

    load = function($e, url) {
      $e.load(url, function(t,s,x){
        //console.log([t,s,x]);
        $e.find('.tab-holder ul.tabset').tabs();
        $e.removeClass('loading');
      });
    };

    this.click(function() {
      var $t = $($(this).parents('tr').get(0));
      if (!$t.hasClass('flyout-trigger')) $t = $t.prev('.flyout-trigger');
      if ($t.hasClass("flyout-open")) {
        hide($t);
      }
      else {
        $('.flyout-trigger.flyout-open').each(function(){ hide($(this)); });
        show($t);
      }
      return false;
    });
  }



});

function popupPlayer(parameter_obj)
{
    var item_type_id = typeof parameter_obj.item_type != 'undefined'? parameter_obj.item_type : "";
    var playlistid = typeof parameter_obj.playlist_id != 'undefined'? parameter_obj.playlist_id : "";
    var type = typeof parameter_obj.type != 'undefined'? parameter_obj.type : "";
    var item_id = typeof parameter_obj.item_id != 'undefined'? parameter_obj.item_id : "";
    var moviemaze_id = typeof parameter_obj.moviemaze_id != 'undefined'? parameter_obj.moviemaze_id : "";
    switch (type)
    {
        case 'moviemaze':
        if (moviemaze_id != '')
        {
            href = '/index.php?action=player&subaction=moviemaze&moviemaze_id='+moviemaze_id;
            new_window = window.open(href,'popup','width=740,height=250,toolbar="no",scrollbars="no",menubar="no"');
        }
        break;
        case 'playlist':
        if (item_type_id != '' && playlistid !='')
        {
            href = '/index.php?action=player&subaction=simfy&type=playlist&itemtypeid='+item_type_id+'&playlistid='+playlistid;
            new_window = window.open(href,'popup','width=740,height=250,toolbar="no",scrollbars="no",menubar="no"');
        }
        break;
        case 'WAproduct':
            if (item_id !='')
            {
            	href = '/index.php?action=player&subaction=simfy&type=WAProduct&item_id='+item_id;
                new_window = window.open(href,'popup','width=336,height=187,toolbar="no",scrollbars="no",menubar="no"');
            }
            break;
        case 'WAartist':
            if (item_id !='')
            {
                href = '/index.php?action=player&subaction=simfy&type=WAArtist&item_id='+item_id;
                new_window = window.open(href,'popup','width=336,height=187,toolbar="no",scrollbars="no",menubar="no"');
            }
            break;
        case 'album':
        if (item_id !='')
        {
            href = '/index.php?action=player&subaction=simfy&type=album&item_id='+item_id;
            new_window = window.open(href,'popup','width=740,height=250,toolbar="no",scrollbars="no",menubar="no"');
        }
        break;
        case 'top_25_tracks':
            href = '/index.php?action=player&subaction=simfy&type=top_25_tracks';
            new_window = window.open(href,'popup','width=740,height=250,toolbar="no",scrollbars="no",menubar="no"');
        break;
        case 'top_25_tracks_artist':
            if (item_id !='')
            {
                href = '/index.php?action=player&subaction=simfy&type=top_25_tracks_artist&item_id='+item_id;
                new_window = window.open(href,'popup','width=740,height=250,toolbar="no",scrollbars="no",menubar="no"');
            }
        break;
    }
}


