/*	
**	jQuery library for SNS API				2010.06.10 thchao
**	sends ajax post request to /sns_click.php
**
**	frontend usage: 
**
**	<meta name="title" content="[title]">	// optional: 要推到 SNS 網站的文字（不另外指定則為 <title>）
**	<meta name="permlink" content="[url]">	// optional: 要推到 SNS 網站的 URL（不另外指定則為當下的 URL）
**
**	推文的連結：
**	<a	href="#"					// required
**		rel="sns"					// required
**		class="[target]"			// required: sns_p: plurk, sns_f: facebook
**		rev="[snskey]"				// optional: 計數器的主鍵，see project wiki for namespace rules 
**	>
**
**
**	例外：同一網頁中有多個「不同 url/title」的推文連結時（如婚紗全記錄）直接使用 openSns()
**
**	<a href="#" onclick="openSns([url], [title], [target], [snskey]);return false;">
**
**	1. DO NOT set a:rel when using openSns() directly!
**	2. [target]: P: plurk, F: facebook
**
*/

jQuery(document).ready(function() {
	jQuery('a[rel=sns]').click(function() {
		// set snskey to 0 if a:rev not specified
		$snskey = jQuery(this).attr('rev');
		if ($snskey == "") {
			$snskey = 0;
		}

		// meta:title > title
		$title = jQuery('meta[name=title]').attr('content');
		if ($title == undefined) {
			$title = jQuery('title').html();
		}

		// meta:permlink > current URL
		$url = jQuery('meta[name=permlink]').attr('content');
		if ($url == undefined) {
			$url = jQuery(location).attr('href');
		}

		// plurk
		if (jQuery(this).hasClass('sns_p')) {
			$target = 'P';
		}
		// facebook
		if (jQuery(this).hasClass('sns_f')) {
			$target = 'F';
		}

		// call ajax function
		doAjaxGet($url, $title, $target, $snskey);

		// do not let <a href="#"> work
		return false;
	});
});

function openSns($url, $title, $target, $snskey) {
	if ($snskey == "") {
		$snskey = 0;
	}
	doAjaxPost($url, $title, $target, $snskey);
}

// get data from PHP
function doAjaxGet($url, $title, $target, $snskey) {
	$script = '/sns_click.php';
	$success = false;

	jQuery.ajax({
		type: 'GET',
		url: $script,
		async: false,
		data: {
			snskey: $snskey,
			title: $title,
			url: $url,
			target: $target
		},
		success: function(data) {
			$success = true;
			$link = data;
		}
	});

	// window.open in ajax success call will be treated as pop-up by FF/Chrome
	if ($success) {
		window.open($link, $target);
	}
}
