function ajax_read_subtitles() {
	if ($('body_newsubtitle')) {
		$('body_newsubtitle').hide();
		$('button_newsubtitle').show();
	
		ajax_isloading(1);
		new Ajax.Request('/ajax/get_usersubtitles.php', {
			method:'get',
			requestHeaders: {Accept: 'application/json'},
			onSuccess: function(transport){
				var json = transport.responseText.evalJSON(true);
				ajax_isloading(-1);
	
				if (json) {
					$('usersubs').immediateDescendants().invoke('remove');
	
					var syntax = /(^|.|\r|\n)(%(\w+)%)/; //matches symbols like '%field%'
					var subtemplate = new Template('<li><ul class="nodots inline"><li>%sub_name%</li><li class="removesub l_%sub_id%"><a href=""></a></li></ul></li>', syntax);
	
					json.each(function(v){
						new Insertion.Bottom($('usersubs'), subtemplate.evaluate({sub_name: v.name, sub_id: v.id}));
					});
					Behaviour.apply();
				}
			}
		});
	}
}

function ajax_read_genres() {
	if ($('body_newgenre')) {
		$('body_newgenre').hide();
		$('button_newgenre').show();
	
		ajax_isloading(1);
		new Ajax.Request('/ajax/get_usergenres.php', {
			method:'get',
			requestHeaders: {Accept: 'application/json'},
			onSuccess: function(transport){
				var json = transport.responseText.evalJSON(true);
				ajax_isloading(-1);
	
				if (json) {
					$('usergenres').immediateDescendants().invoke('remove');
	
					var syntax = /(^|.|\r|\n)(%(\w+)%)/; //matches symbols like '%field%'
					var genretemplate = new Template('<li><ul class="nodots inline"><li>%genre_name%</li><li class="removegenre l_%genre_id%"><a href=""></a></li></ul></li>', syntax);
	
					json.each(function(v){
						new Insertion.Bottom($('usergenres'), genretemplate.evaluate({genre_name: v.name, genre_id: v.id}));
					});
					Behaviour.apply();
				}
			}
		});
	}
}

function ajax_read_languages() {
	if ($('body_newlang')) {
		$('body_newlang').hide();
		$('button_newlang').show();
	
		ajax_isloading(1);
		new Ajax.Request('/ajax/get_userlangs.php', {
			method:'get',
			requestHeaders: {Accept: 'application/json'},
			onSuccess: function(transport){
				var json = transport.responseText.evalJSON(true);
				ajax_isloading(-1);
	
				
				
				if (json) {
					$('userlangs').immediateDescendants().invoke('remove');
		
					var syntax = /(^|.|\r|\n)(%(\w+)%)/; //matches symbols like '%field%'
					var langtemplate = new Template('<li><ul class="nodots inline"><li>%lang_name%</li><li class="removelang l_%lang_id%"><a href=""></a></li></ul></li>', syntax);
	
					json.each(function(v){
						new Insertion.Bottom($('userlangs'), langtemplate.evaluate({lang_name: v.name, lang_id: v.id}));
					});
					Behaviour.apply();
				}
			}
		});
	}
}

function ajax_read_tags() {
	if ($('movieid')) {
		movieid = $F($('movieid'));
	}
	else {
		movieid = '';
	}
	ajax_isloading(1);
	new Ajax.Request('/ajax/get_usertags.php', {
		method:'get',
		parameters: {movie: movieid},
		requestHeaders: {Accept: 'application/json'},
		onSuccess: function(transport){
			var json = transport.responseText.evalJSON(true);
			ajax_isloading(-1);


			if (json) {
				$('usertags').immediateDescendants().invoke('remove');
	
				var max = parseFloat(json.minmax.max);
				var min = parseFloat(json.minmax.min);
				var thresholds = new Array();
				var fontsizes = new Array('', 'tag1', 'tag2', 'tag3', 'tag4', 'tag5', 'tag6');
				var Delta = (max - min) / (fontsizes.length-1);
				var syntax = /(^|.|\r|\n)(%(\w+)%)/; //matches symbols like '%field%'
				var tagtemplate = new Template('<li class="%size%"><a href="/tags/%id%_%tname%">%tname%</a></li>', syntax);
				
				
				fontsizes.each(function(v, index){
					thresholds[index] = 100 * Math.log((min + index * Delta) + 2)/Math.log(10);
				});
	
				if (json.data) {
					json.data.each(function(v){
						var Fontset_flag = false;
						thresholds.each(function(t, vv){
							if (Fontset_flag == false) {
								c = (100 * Math.log(parseFloat(v.count) + 2)/Math.log(10));
								if (vv > 0 && c <= t) {
									new Insertion.Bottom($('usertags'), tagtemplate.evaluate({id: v.id, tname: v.tag_text, size: fontsizes[vv]}));
									Fontset_flag = true;
								}
							}
						});
					});
				}
			}
		}
	});
}

function ajax_set_stars(rating) {
	if ($('movieid')) {
		movieid = $F($('movieid'));
	}
	
	$('bewertung_star1').removeClassName('set');
	$('bewertung_star2').removeClassName('set');
	$('bewertung_star3').removeClassName('set');
	$('bewertung_star4').removeClassName('set');
	$('bewertung_star5').removeClassName('set');
				
	if (!rating) {
		ajax_isloading(1);
		new Ajax.Request('/ajax/get_rating.php', {
			method:'get',
			parameters: {movie: movieid},
			requestHeaders: {Accept: 'application/json'},
			onSuccess: function(transport){
				var json = transport.responseText.evalJSON(true);
				ajax_isloading(-1);
/* ACTION! */


				var rating = json.val;
				if (rating >= 1) {
					$('bewertung_star1').className = "set";
					}
				if (rating >= 2) {
					$('bewertung_star2').className = "set";
					}
				if (rating >= 3) {
					$('bewertung_star3').className = "set";
					}
				if (rating >= 4) {
					$('bewertung_star4').className = "set";
					}
				if (rating >= 5) {
					$('bewertung_star5').className = "set";
					}
			}
		});
	}
	else {
		if (rating >= 1) {
			$('bewertung_star1').className = "set";
			}
		if (rating >= 2) {
			$('bewertung_star2').className = "set";
			}
		if (rating >= 3) {
			$('bewertung_star3').className = "set";
			}
		if (rating >= 4) {
			$('bewertung_star4').className = "set";
			}
		if (rating >= 5) {
			$('bewertung_star5').className = "set";
			}
	}
}

function ajax_read_page_filminfo() {
	$('body_filmbewertung').show();
	$('body_tags').show();

	document.getElementsByClassName('button_wunschliste').invoke('show');
	document.getElementsByClassName('button_dvdsammlung').invoke('show');

	// User-Tags einblenden
	ajax_read_tags();
	
	//	Filmbewertung einblenden
	ajax_set_stars(false);


	Element.observe($('newtag'), 'keypress', function(eEvent){
		if (eEvent.keyCode == Event.KEY_ESC) {
			$('newtag').clear();
			$('body_newtag').hide();
			$('button_addtags').show();
		}
	});

	document.getElementsByClassName('button_wunschliste').each(function(element){
		var id = $(element).classNames().find(function(s) { return s.startsWith('_');});
		new Ajax.Request('/ajax/get_wish.php', {
			method:'post',
			parameters: {produkt: id},
			requestHeaders: {Accept: 'application/json'},
			onSuccess: function(transport){
				var json = transport.responseText.evalJSON(true);
				var id = json.id;
				if (json.selected == 1) {
					$$('div.w'+id).each(function(element){element.addClassName('set')});
				}
				else {
					$$('div.w'+id).each(function(element){element.removeClassName('set')});
				}

			}
		});
	});
	document.getElementsByClassName('button_dvdsammlung').each(function(element){
		var id = $(element).classNames().find(function(s) { return s.startsWith('_');});
		new Ajax.Request('/ajax/get_own.php', {
			method:'post',
			parameters: {produkt: id},
			requestHeaders: {Accept: 'application/json'},
			onSuccess: function(transport){
				var json = transport.responseText.evalJSON(true);
				var id = json.id;
				if (json.selected == 1) {
					$$('div.o'+id).each(function(element){element.addClassName('set')});
				}
				else {
					$$('div.o'+id).each(function(element){element.removeClassName('set')});
				}
			}
		});
	});
}

var loadlist = 0;

function ajax_isloading(val) {
	loadlist += val;

	if (val > 0) {
		setTimeout("ajax_isloading(-1)", 10000);
	}

	if (loadlist <= 0) {
		loadlist = 0;
		$('loading_wait').hide();
	}
	else {
		$('loading_wait').show();
	}
}

function moveOptions(from, to) {
	var pool = $(from);
	var selected = $(to);
	
	while (pool.selectedIndex != -1) {
		selected.appendChild(pool.options.item(pool.selectedIndex))
	}
}

function areyousure() {
	val = Math.round(Math.random() * 1000);

	check = prompt("Enter " + val + " to confirm");
	if (check == val) {
		return true;
	}
	else {
		return false;
	}
}
