jQuery(document).ready(function(){
	/*
	$.ajaxSetup({
		'beforeSend' : function(xhr) {
			if (xhr && xhr.overrideMimeType) xhr.overrideMimeType('text/html; charset=ISO-8859-1');
		},
	});
	*/

	$("#listloader").hide();

	var list_view_indent_class = $('#content div.hidden_data div.list_pagination_viewindentclass').text();
	var list_view_class = $('#content div.hidden_data div.list_pagination_viewclass').text();
	var list_scroll_class = $('#content div.hidden_data div.list_pagination_class').text();
	var current_page = parseInt($('#content div.hidden_data div.list_pagination_currentpage').text());
	var max_pages = parseInt($('#content div.hidden_data div.list_pagination_maxpages').text());
	var link = $('#content div.hidden_data div.list_pagination_link').text();
	var page_name = $('#content div.hidden_data div.list_pagination_url').text();
	var list_scroll_height = parseInt($('#content div.hidden_data div.list_pagination_height').text());

	setCookie('pageUrl', page_name);

	if (parseInt(current_page)) check_heights('#list_scroll_' + current_page, '#content div.' + list_view_class, '#content div.' + list_view_indent_class);
	check_buttons_css(current_page, max_pages);

	$('#content #listbuttonup').click(function() {
		if (current_page > 1) {
			current_page -= 1;
			$('#list_scroll_' + (current_page + 1)).after('<div id="list_scroll_' + current_page + '"></div>');
			$('#content #listbuttonup').css('visibility', 'hidden');
			$('#content #listbuttondown').css('visibility', 'hidden');
			$("#listloader").show();
			$.get(link, { Page: current_page }, function(data){
				$('#list_scroll_' + current_page).fadeTo('fast', 0.0, function(){
					$('#list_scroll_' + current_page).html(data);
				});

				$('#list_scroll_' + (current_page + 1)).fadeTo(500, 0.0, function(){
					$('#list_scroll_' + (current_page + 1)).remove();

					$('#list_scroll_' + current_page).fadeTo(500, 1.0, function(){
						$("#listloader").hide();
						check_heights('#list_scroll_' + current_page, '#content div.' + list_view_class, '#content div.' + list_view_indent_class);
						$('#content #listbuttonup').css('visibility', 'visible');
						$('#content #listbuttondown').css('visibility', 'visible');

						$.scrollTo('#content', 1000, {offset: -111});

						check_buttons_css(current_page, max_pages);
						reset_items();
						setCookie('current_page', current_page);
					});
				});
			});
		}
	});

	$('#content #listbuttondown').click(function() {
		if (current_page < max_pages) {
			current_page += 1;
			$('#list_scroll_' + (current_page - 1)).after('<div id="list_scroll_' + current_page + '"></div>');
			$('#content #listbuttonup').css('visibility', 'hidden');
			$('#content #listbuttondown').css('visibility', 'hidden');
			$("#listloader").show();
			$.get(link, { Page: current_page }, function(data){
				$('#list_scroll_' + current_page).fadeTo('fast', 0.0, function(){
					$('#list_scroll_' + current_page).html(data);
				});

				$('#list_scroll_' + (current_page - 1)).fadeTo(500, 0.0, function(){
					$('#list_scroll_' + (current_page - 1)).remove();

					$('#list_scroll_' + current_page).fadeTo(500, 1.0, function(){
						$("#listloader").hide();
						check_heights('#list_scroll_' + current_page, '#content div.' + list_view_class, '#content div.' + list_view_indent_class);
						$('#content #listbuttonup').css('visibility', 'visible');
						$('#content #listbuttondown').css('visibility', 'visible');

						$.scrollTo('#content', 1000, {offset: -111});

						check_buttons_css(current_page, max_pages);
						reset_items();
						setCookie('current_page', current_page);
					});
				});
			});
		}
	});

	function check_buttons_css(current_page, max_pages) {
		if ((current_page == 1) || (!max_pages)) {
			$('#content #listbuttonup').css('opacity', 0.5);
			$('#content #listbuttonup').css('cursor', 'auto');
		}
		else {
			$('#content #listbuttonup').css('opacity', 1.0);
			$('#content #listbuttonup').css('cursor', 'pointer');
		}

		if ((current_page == max_pages) || (!max_pages)) {
			$('#content #listbuttondown').css('opacity', 0.5);
			$('#content #listbuttondown').css('cursor', 'auto');
		}
		else {
			$('#content #listbuttondown').css('opacity', 1.0);
			$('#content #listbuttondown').css('cursor', 'pointer');
		}
	}

	function check_heights(check_scroll_class, check_view_class, check_indent_class) {
		var check_scroll_height = $(check_scroll_class).height();
		var check_view_height = $(check_view_class).height();
		var old_view_height = check_view_height;
		if (parseInt(check_scroll_height) > parseInt(list_scroll_height)) {
			$(check_indent_class).css('height', check_scroll_height + 'px');
			$(check_view_class).css('height', check_scroll_height + 'px');
			var new_view_height = check_scroll_height;
		}
		else {
			$(check_indent_class).css('height', list_scroll_height + 'px');
			$(check_view_class).css('height', list_scroll_height + 'px');
			var new_view_height = list_scroll_height;
		}

		var diff_height = parseInt(new_view_height) - parseInt(old_view_height);

		$('#main #middle #left').css('height', (parseInt($('#main #middle #left').height()) + diff_height) + 'px');
		$('#main #middle #center').css('height', (parseInt($('#main #middle #center').height()) + diff_height) + 'px');
		$('#main #middle #right').css('height', (parseInt($('#main #middle #right').height()) + diff_height) + 'px');
	}

	function reset_items() {
		jQuery("#content .listrowsmall").css("opacity", 0.85);

		// this adds hover to full opacity:
		jQuery("#content .listrowsmall").hover(
			// hover state
			function() {
				jQuery(this).css({opacity: 1.0});
			},
			// back to off
			function() {
				jQuery(this).css({opacity: 0.85});
			}
		);

		jQuery("#content .listrowbig").css("opacity", 0.85);

		// this adds hover to full opacity:
		jQuery("#content .listrowbig").hover(
			// hover state
			function() {
				jQuery(this).css({opacity: 1.0});
			},
			// back to off
			function() {
				jQuery(this).css({opacity: 0.85});
			}
		);

		$('a.targetext').each(function(){
			$(this).attr('href', 'javascript:void(0);');
		});

		$('a.targetext').click(function(){
			var url = $(this).find('.url').text();

			if (url) window.open(url);
		});
	}
});