/**
 * AddThis-Grundkonfiguration
 */
var addthis_config =
{
	pubid:					'ra-4e1343667b570bbe',
	ui_language:			'de',
	ui_cobrand:				'CULTURall',
	ui_use_css:				true,
	data_track_clickback: 	false
};

/**
 * AddThis-Sharing-Konfiguration
 */
var addthis_share =
{
	url_transforms:
	{
		clean: true
	}
};

/**
 * individuelle addThis-Methoden
 */
var my_addthis =
{
	table_id: 		"my_addthis_table",
	td_text_class:	"text",
	dropdown_class:	"addthis",

	/**
	 * Erzeugt den HTML-Code für eine Tabelle
	 * mit allen benötigten Bokkmarkfunktionen
	 *
	 * @param {String} url zu bookmarkende URL
	 * @param {String} title Titel der zu bookmarkenden URL
	 * @param {Bool} thin schmale Tabelle erzeugen
	 * @return {String} HTML-Code
	 */
	createTable: function(url, title, thin)
	{
		// URL + Title an eventuelle Domäne des Topframes anpasssen
		// (außer bei culturall.de, das ist Standard)
		try {
			if (parent && parent.TOP_DOMAIN && parent.TOP_DOMAIN.region > 0) {
				// Domäne in der URL austauschen
				url = url.replace(/www\.culturall\.de/, parent.TOP_DOMAIN.domain);
				// dr-Parameter anhängen
				url += ((url.indexOf("?") > -1) ? "&" : "?") + "dr=" + parent.TOP_DOMAIN.dr;
				// Domäne vor den Title setzen
				title = parent.TOP_DOMAIN.domain + " " + title;
			}
		}
		catch (e) {}

		return "<div class='title'>LeseZeichen setzen</div><table id='"+this.table_id+"'>" +
			this.createCol(url, title, thin ? "Teilen"  : "auf Facebook teilen", "addthis_button_facebook") +
			this.createCol(url, title, thin ? "Empfehlen"  : "auf Facebook empfehlen", "addthis_button_facebook_like", {"fb:like:layout": "button_count"}) +
			this.createCol(url, title, thin ? "Teilen"  : "auf Twitter teilen", "addthis_button_twitter") +
			this.createCol(url, title, thin ? "Lesezeichen"  : "auf Google als Lesezeichen setzen", "addthis_button_google") +
			this.createCol(url, title, thin ? "Teilen"  : "auf Google+ teilen", "addthis_button_google_plusone") +
			this.createCol(url, title, thin ? "E-Mail"  : "E-Mail schreiben", "addthis_button_email") +
			this.createCol(url, title, thin ? "Drucken"  : "Seite drucken", "addthis_button_print") +
			/*"<tr><td><a class='addthis_counter addthis_bubble_style' id='atcounter' title='mehr ...'></a></td><td>mehr ...</td></tr>" +*/
		"</table>";
	},

	/**
	 * Erzeugt den HTML-Code für eine Bookmarkzeile
	 *
	 * @param {String} addthis_url URL für AddThis
	 * @param {String} addthis_title Titel für AddThis
	 * @param {String} title Titel des Links
	 * @param {String} css CSS-Klasse
	 * @param {Array} attr assoziatives Array mit zusätzlichen Attributen
	 * @return {String} HTML-Code
	 */
	createCol: function(addthis_url, addthis_title, title, css, attr)
	{
		var attr_str = "";
		if (attr)
			for (key in attr)
				attr_str += " "+key+"='"+attr[key]+"'";

		return "<tr><td><a class='" + css +
			"' addthis:url='" + addthis_url + "'" +
			((addthis_title.length > 0) ? " addthis:title='"+addthis_title+"'" : "") +
			attr_str +
			" title='" + title + "'></a></td><td class='"+this.td_text_class+"'>" + title + "</td></tr>";
	},

	/**
	 * Erzeugt die Buttons und Counter
	 *
	 * @param {String} toolbox_id ID des Elements, welches die Toolbox enthalten soll
	 * @param {String} counter_id ID des Elements, welches den Counter enthalten soll
	 */
	render: function(toolbox_id, counter_id)
	{
		if (toolbox_id) {
			addthis.toolbox(toolbox_id);
			//if (counter_id)
			//	addthis.counter(counter_id);
		}

		// jeder "text"-Tabellenzelle den Clickhandler
		// des entsprechenden Buttons zuweisen
		$("#"+this.table_id).find("td[class='"+this.td_text_class+"']").each(function() {
			$(this).click(function() {
				$(this).prev().children("a").trigger("click");
			});
		});
	}
};

$(document).ready(function()
{
	// Lesezeichen-Buttons auf Präsentationsseiten automatisch
	// erkennen und mit einem addthis-Dropdownmenü belegen
	var $img = $("#LeseZeichenButton");
	if ($img.length > 0) {
		$img.mouseenter(function() {
			var $img 	= $(this);
			var pos 	= $img.offset();

			dropdown.show(
				$img,
				false,
				my_addthis.createTable(location.href, $("head title").text()),
				my_addthis.dropdown_class,
				300,
				pos.left - 300 + $img.width() / 2,
				pos.top + $img.height() / 2
			);

			my_addthis.render("#dropdown", "#atcounter");
		});
	}
});
