Function.prototype.curry = function()
{
  var method = this, args = Array.prototype.slice.call(arguments);
  return function()
  {
    return method.apply(this, args.concat(Array.prototype.slice.call(arguments)));
  };
};


eigenes_created = false;
foto_regionen = new Array();
notes_initialized = false;
foto_note_ie_limit_counter = 0;
/*
if (animexx_sprache && animexx_sprache == "en") {
n_str_save = "Save";
n_str_cancel = "Cancel";
n_str_delete = "Del";
n_ie_errstr = "Due to a problem with the Internet Explorer, no additional comments can be created.";
} else {
*/
n_str_save = "Speichern";
n_str_cancel = "Abbr.";
n_str_delete = "Del";
n_ie_errstr = "Wegen eines Problems im Internet Explorer können nicht mehr Kommentare auf dem Fanart erstellt werden.";
//}
activeAdmin = 0;
$('#adminframe').css("top", document.firstChild.nextSibling.offsetHeight);

function open_empf_win () {
  var url = "/fanart/" + fanart_id + "/wer_empfohlen/";
  param = "toolbar=yes,location=no,status=yes,scrollbars=yes,resizable=yes,width=300,height=200,left=0,top=0";
  remote = window.open(url, "remotewin_empf", param);
  if (remote.opener == null) remote.opener = window;
  remote.opener.name = "opener";
}

function open_rekl_win () {
  var url = "/fanart/" + fanart_id + "/reklamieren/";
  param = "toolbar=yes,location=no,status=yes,scrollbars=yes,resizable=yes,width=400,height=350,left=0,top=0";
  remote = window.open(url, "remotewin_empf", param);
  if (remote.opener == null) remote.opener = window;
  remote.opener.name = "opener";
}

function open_rekl_win2 () {
  open_iframe_dialog("rekl_dialog", "./reklamieren/", "Reklamieren", 420, 380);
}
function open_empf_win2 () {
  open_iframe_dialog("empf_dialog", "./wer_empfohlen/", "Favoritenlisten", 420, 380);
}



function fav_set_save(mode) {
	$("#fav_set_1, #fav_set_0, #fav_set_s").hide();
	$("#fav_set_l").show();
	$.get("./ajax_empfehlungs_set/?set=" + mode + '&' + animexx_absolutelink_sid, function (res) {
		$("#fav_set_l").hide();
		if (res == "0") {
			$("#fav_set_1").hide();
			$("#fav_set_0, #fav_set_s").show();
		} else {
			$("#fav_set_1, #fav_set_s").show();
			$("#fav_set_0").hide();
		}
	});
}

function open_wett_win () {
  var url = "/fanart/" + fanart_id + "/wettbewerbe/";
  param = "toolbar=yes,location=no,status=yes,scrollbars=yes,resizable=yes,width=300,height=200,left=0,top=0";
  remote = window.open(url, "remotewin_wettbewerbe", param);
  if (remote.opener == null) remote.opener = window;
  remote.opener.name = "opener";
}

function open_noten_win () {
  var url = "/fanart/" + fanart_id + "/noten_stats/";
  param = "toolbar=yes,location=no,status=yes,scrollbars=yes,resizable=yes,width=300,height=200,left=0,top=0";
  remote = window.open(url, "remotewin_noten", param);
  if (remote.opener == null) remote.opener = window;
  remote.opener.name = "opener";
}

function foto_note_incr_ie_counter() {
	if (!isIE) return true;
	if (foto_note_ie_limit_counter == 10) {
		alert(n_ie_errstr);
		return false;
	}
	foto_note_ie_limit_counter++;
	return true;
}




function zeige_notes_ro() {
	if (notes_initialized) {
		if (!notes_showing) {
			foto_notes.ShowAllNotes();
			notes_showing = true;
		}
		return;
	}
	foto_notes = new PhotoNoteContainer(document.getElementById('PhotoContainer'));
	for (var i = 0; i < foto_regionen.length && foto_note_incr_ie_counter(); i++) {
		var reg = foto_regionen[i];
		var note;
		var rect = new PhotoNoteRect( reg[1], reg[2], reg[3], reg[4]);
		note = new PhotoNote(reg[0], '', 3, false, false, false, rect);
		foto_notes.AddNote(note);
	}
	notes_initialized = true;
	notes_showing = true;
}
function verstecke_notes_ro(event) {
	var elp = $("#fanart_img").offset();
	if (event.pageX >= elp.left && event.pageX < (elp.left + $("#fanart_img").width()) && event.pageY >= elp.top && event.pageY < (elp.top + $("#fanart_img").height())) return;
	if (notes_initialized) foto_notes.HideAllNotes();
	notes_showing = false;
}


function foto_newnote_cancel_cb() {
	eigenes_created = false;
}
function foto_editnote_cancel_cb() {
	eigenes_created = false;
}
function note_save_cb(id, note) {
	$.post("ajax_annotationen/?" + animexx_absolutelink_sid, {
		mode: "add_annotation",
		anno_id: id,
		x: note.rect.left,
		y: note.rect.top,
		w: note.rect.width,
		h: note.rect.height,
		text: note.gui.TextBox.value
	});
	eigenes_created = false;
	return 1;
};
function note_del_cb(id, note) {
	$.get("ajax_annotationen/?" + animexx_absolutelink_sid, { mode: "del_annotation", anno_id: id });
	return 1;
};

function addNote() {
	if (eigenes_created) return;
	eigenes_created = true;
	zeige_notes();
	
	var newNote = new PhotoNote('', '', -1, true, true, false, new PhotoNoteRect(50,50,100,100));
	newNote.onsave = note_save_cb.curry("neu");
	newNote.ondelete = function (note) { return true; };
	foto_notes.AddNote(newNote);
	newNote.Select();
}
function zeige_notes() {
	if (notes_initialized) {
		if (!notes_showing) {
			foto_notes.ShowAllNotes();
			notes_showing = true;
		}
		return;
	}
	foto_notes = new PhotoNoteContainer(document.getElementById('PhotoContainer'));
	for (var i = 0; i < foto_regionen.length && foto_note_incr_ie_counter(); i++) {
		var reg = foto_regionen[i];
		var note = new PhotoNote(reg[0], '', 3, true, true, true, new PhotoNoteRect( reg[1], reg[2], reg[3], reg[4]));
		note.onsave = note_save_cb.curry(reg[5]);
		note.ondelete = note_del_cb.curry(reg[5]);
		foto_notes.AddNote(note);
	}
	notes_initialized = true;
	notes_showing = true;
}
function verstecke_notes(event) {
	if (eigenes_created) return;
	var elp = $("#fanart_img").offset();
	if (event.pageX >= elp.left && event.pageX < (elp.left + $("#fanart_img").width()) && event.pageY >= elp.top && event.pageY < (elp.top + $("#fanart_img").height())) return;
	if (notes_initialized) foto_notes.HideAllNotes();
	notes_showing = false;
}


function borderinit(wid, hei, wid2, hei2) {
	if (border_style == "plain") $("#fanart_img").css({border: "solid 2px " + border_color});
	if (border_style == "shadow") {
		$("#fa_borderholder").css({width: wid + "px", height: hei + "px" });
		$("#PhotoContainer").css({position: "absolute", left: "10px", top: "10px" });
		var border = RUZEE.ShadedBorder.create({ corner:0, shadow:15,  border:0 });
		border.render('fa_borderholder');
	}
	if (exists("fanart_img_gross")) {
		if (border_style == "plain") $("#fanart_img_gross").css({border: "solid 2px " + border_color});
		if (border_style == "shadow") {
			$("#fa_borderholder_gross").css({width: wid2 + "px", height: hei2 + "px" });
			$("#fa_borderholder_gross").find("div").css({position: "absolute", left: "10px", top: "10px" });
			var border = RUZEE.ShadedBorder.create({ corner:0, shadow:15,  border:0 });
			border.render('fa_borderholder_gross');
		}
	}
}




function openFrame(fanart) {
	$("#adminframe").remove();
	var pos = $("#zufr_" + fanart).offset();
	var src = "/fanart/" + fanart + "/zuordnungsbox/";
	var fr = $("<iframe id='adminframe' frameborder=0 scrolling='no' src='" + src + "'></iframe>").css({ position: "absolute", top: (pos.top+20) + "px", left: pos.left + "px", padding: "0px", margin: "0px", width: "410px", height: "310px"});
	$("#bodyid").append(fr);
	activeAdmin = fanart;
}
function closeFrame(i) {
	$("#adminframe").remove();
	activeAdmin = 0;
}
function clickAdmin(fanart) {
	if (activeAdmin == fanart) closeFrame();
	else openFrame(fanart);
}

function fa_output_big() {
	if (eigenes_created) return;
	$("#output_mode_std").hide();
	$("#output_mode_gross").show();
}
function fa_output_std() {
	if (eigenes_created) return;
	$("#output_mode_std").show();
	$("#output_mode_gross").hide();
}


function searchbox_recalc_link_h() {
	if ($("#searchbox_typ_serie").prop("checked")) return ($("#searchbox_serie").val() != "" || (exists("searchbox_keineserie") && $("#searchbox_keineserie").prop("checked")));
	if ($("#searchbox_typ_unterthema").prop("checked")) return ($("#searchbox_unterthema").val() != "");
	if ($("#searchbox_typ_charakter").prop("checked")) return ($("#searchbox_charakter").val() != "");
	if ($("#searchbox_typ_stil").prop("checked")) return ($("#searchbox_stil").val() != "");
	if ($("#searchbox_typ_zeichner").prop("checked")) return ($("#searchbox_zeichner").val() != "");
	if ($("#searchbox_typ_username").prop("checked")) return ($("#searchbox_username").val() != "");
	if ($("#searchbox_typ_referenz").prop("checked")) return true;
	if ($("#searchbox_typ_abgezeichnet").prop("checked")) return true;
	if ($("#searchbox_typ_favoriten").prop("checked")) return true;
	if ($("#searchbox_typ_titel").prop("checked")) return ($("#searchbox_titel").val().length > 2);
	return false;
}

function searchbox_recalc_link() {
	if (searchbox_recalc_link_h()) {
		var url = "";
		var modi = "";
		if ($("#searchbox_modus0").prop("checked")) modi = "-";
		if ($("#searchbox_typ_serie").prop("checked")) {
			if (exists("searchbox_keineserie") && $("#searchbox_keineserie").prop("checked")) url = "keineserie/";
			else url = "serie/" + modi + $("#searchbox_serie").val() + "/";
		}
		if ($("#searchbox_typ_unterthema").prop("checked")) url = "unterthema/" + modi + $("#searchbox_unterthema").val() + "/";
		if ($("#searchbox_typ_charakter").prop("checked")) url = "charakter/" + modi + $("#searchbox_charakter").val() + "/";
		if ($("#searchbox_typ_stil").prop("checked")) url = "stil/" + modi + $("#searchbox_stil").val() + "/";
		if ($("#searchbox_typ_zeichner").prop("checked")) url = "zeichner/" + modi + $("#searchbox_zeichner").val() + "/";
		if ($("#searchbox_typ_username").prop("checked")) url = "username/" + modi + encodeURI($("#searchbox_username").val()) + "/";
		if ($("#searchbox_typ_favoriten").prop("checked")) url = "favoriten/" + animexx_user_id + "/";
		if ($("#searchbox_typ_abgezeichnet").prop("checked")) {
			if (modi == "-") url = "keine_abgezeichneten/";
			else url = "abgezeichnete/";
		}
		if ($("#searchbox_typ_referenz").prop("checked")) {
			if (modi == "-") url = "keine_referenz/";
			else url = "referenz/";
		}
		if ($("#searchbox_typ_titel").prop("checked")) {
			if ($("#searchbox_freitext").prop("checked")) url = "freitext/" + modi + $("#searchbox_titel").val() + "/";
			else url = "titel/" + modi + $("#searchbox_titel").val() + "/";
		}
		$("#searchbox_form").attr("action", ff_such_base + url);
		$("#searchbox_submit").prop("disabled", false);
	} else $("#searchbox_submit").prop("disabled", true);
}



function fa_addToFav(formname) {
	$.get("./?" + formname + "=1&" + animexx_absolutelink_sid, function(res) {
		if (res == "1") {
			$("#fav_add").hide();
			$("#fav_remove").show();
		} else alert("Es ist ein Fehler aufgetreten: " + res);
	});
}

function fa_removeFav(formname) {
	$.get("./?" + formname + "=-1&" + animexx_absolutelink_sid, function(res) {
		if (res == "-1") {
			$("#fav_add").show();
			$("#fav_remove").hide();
		} else alert("Es ist ein Fehler aufgetreten: " + res);
	});
}

function fa_recommend(formname) {
	$.get("./?" + formname + "=1&" + animexx_absolutelink_sid, function(res) {
		if (res == "1") {
			$("#empfehlen_done").show();
			$("#empfehlen_add").hide();
		} else alert("Es ist ein Fehler aufgetreten: " + res);
	});
}

function osort_show() {
	$("#osort_shower").hide();
	$("#osort_hider").show();
	$("td.fanarteditholder").each(function(){
		var fid = $(this).data("fid");
		var oid = $(this).data("oid");
		var str = "<select name='ordner_" + fid + "' size='1'>";
		$.each(ordner, function(key){
			str += "<option value='" + key + "' ";
			if (oid == key) str += "selected";
			str += ">" + this + "</option>\n";
		});
		str += "</select>";
		$(this).html(str);
	});
}
function osort_hide() {
	$("#osort_shower").show("block");
	$("#osort_hider").hide("none");
	$("td.fanarteditholder").each(function(){
		var fid = $(this).data("fid");
		$(this).html("[<a href='/fanart/faadmin/" + fid + "/'>Bearbeiten</a>]");
	});
}


