if (typeof(SEENLY) == "undefined")
{
	SEENLY = {};
}

SEENLY.loader_small = new Image();
SEENLY.loader_small.src = "static/v1.2/img/loader_small.gif";

SEENLY.share_mail = new function()
{
	this.send = function()
	{
		jQuery("#share_mail_entry").hide();
		jQuery("#share_mail_loading").html("<span class=\"notify\">Sending, please wait...<br /><br /><img class=\"loader_small\" src=\"" + SEENLY.loader_small.src + "\" /></span>").show();

		var req_from_name = jQuery("#from_name").val();
		var req_from_address = jQuery("#from_address").val();
		var req_to_address = jQuery("#to_address").val();
		var req_message = jQuery("#comments").val();
		var req_url = jQuery("#pic_url").val();

		jQuery.ajax({
			url: "ajax.php",
			type: "POST",
			dataType: "json",
			error: SEENLY.share_mail.onError,
			success: SEENLY.share_mail.onSuccess,
			data:
			{
				action: "share_mail",
				url: req_url,
				from_name: req_from_name,
				from_address: req_from_address,
				to_address: req_to_address,
				body: req_message
			}
		});
	};

	this.showError = function(error)
	{
		jQuery("#share_mail_error").html('<span class="notify"><span style="font-size: smaller">An error occured:</span><br />' + error + '</span>' +
					'<span class="lowfi_button" id="share_mail_error_back">Back</span>');
		
		jQuery("#share_mail_loading").hide();
		jQuery("#share_mail_error").show();
		jQuery("#share_mail_error_back").click(function()
		{
			jQuery("#share_mail_error").hide();
			jQuery("#share_mail_entry").show();
		});
	}


	this.onError = function(xmlhttp, error)
	{
		SEENLY.share_mail.showError("Try again later.");
	};


	this.onSuccess = function(data)
	{
		if (data.code >= 0)
		{
			jQuery("#share_mail_loading").hide();
			jQuery("#share_mail_ok").show();
			jQuery("#share_mail_ok_back").click(function()
			{
				jQuery("#share_mail_ok").hide();
				jQuery("#share_mail_entry").show();
			});

			jQuery("#to_address").val("");
		}

		else
		{
			SEENLY.share_mail.showError(data.text);
		}
	};
};

SEENLY.gallery = new function()
{
	/**
	 * Removes the picture with pid event.data.pid
	 */
	this.preview_delete = function(event)
	{
		jQuery("#" + event.data.pid + " .confirm").html("<img class=\"loader_small\" src=\"" + SEENLY.loader_small.src + "\" />");
		var that = jQuery("#" + event.data.pid);

		jQuery.ajax({
			url: "ajax.php",
			type: "POST",
			dataType: "json",
			error: function(xmlhttp, error)
			{
				SEENLY.gallery.preview_error(event.data.pid, error);
			},
			success: function(data)
			{
				if (data.code >= 0)
				{
					that.hide(500);
				}

				else
				{
					SEENLY.gallery.preview_error(event.data.pid, data.text);
				}
			},

			data:
			{
				action: "delete_image",
				pid: event.data.pid
			}});
	}

	/**
	 * Shows an error with a back-button
	 */
	this.preview_error = function(pid, text)
	{
		jQuery("#" + pid + " .confirm").html("An error occured. <span class=\"yes\">back</span>");
		jQuery("#" + pid + " .confirm .yes").bind("click", {pid: pid}, SEENLY.gallery.preview_reset);
	}



	/**
	 * Reset to original representation
	 */
	this.preview_reset = function(event)
	{
		var that = jQuery("#" + event.data.pid);
		that.children(".info").show();
		that.children(".confirm").remove();
		return false;
	}


	/**
	 * Changes the delete-span of the picture with pid event.data.pid to a confirmation-request
	 */
	this.preview_delete_confirm = function(pid)
	{
		jQuery(function()
		{
			var container = jQuery("#" + pid);
			container.children(".info").hide();

			var that = jQuery("<div class=\"confirm\">Sure? <span class=\"yes\">delete</span> / <span class=\"no\">cancel</span>").appendTo(container);

			that.children(".yes").bind("click", {pid: pid}, SEENLY.gallery.preview_delete);
			that.children(".no").bind("click", {pid: pid}, SEENLY.gallery.preview_reset);
		});
	}
}



SEENLY.code_box = new function()
{
	this.count = 0;
	this.codes = [];

	this.copy = function(index)
	{
		jscopy(this.codes[index]);
	}

	this.create = function(code, showcopy)
	{
		this.codes[this.count] = code.replace(/"/g,"'");

		var id = "code_box_" + this.count;

		var result = "<input type='text' id='" + id + "' class='code_box' onclick='document.getElementById(\"" + id + "\").select();' id='" + id + "' readonly='true' value='" + code + "' />";

		this.count++;
		return result;
	}
}


SEENLY.tabs = new function()
{
	/**
	 * Create tabs
	 */
	this.set_tabs = function(elements)
	{
		var tab;
		var tab_target;

		for (var i=0; i<elements.length; i++)
		{
			tab = jQuery(elements.get(i));
			tab_target = jQuery("#" + tab.attr("id") + "_target");

			tab.bind("click", {tab: tab, tab_target: tab_target}, SEENLY.tabs.switch_tab);

			if (tab.is('.selected'))
			{
				SEENLY.tabs.tab_selected = tab;
				SEENLY.tabs.tab_selected_target = tab_target;
			}
		}
	}

	this.switch_tab = function(event)
	{
		SEENLY.tabs.tab_selected.removeClass("selected").addClass("tab");
		SEENLY.tabs.tab_selected_target.hide();

		event.data.tab.removeClass("tab").addClass("selected");
		event.data.tab_target.show();

		SEENLY.tabs.tab_selected = event.data.tab;
		SEENLY.tabs.tab_selected_target = event.data.tab_target;

		tabid = event.data.tab.attr("id");
		tabid = tabid.substr(tabid.lastIndexOf("_")+1);
		trackEvent("ViewTabs", tabid);
	}

	this.refresh = function()
	{
		$(function(){
      SEENLY.tabs.set_tabs($("#do_tabs > *"));
    });
	}
}


SEENLY.pic_box = function(url)
{
	var medium = url.substr(0, url.length-36) + "medium/" + url.substr(-36);
	var shortlink = url.substr(0, url.length-4);		// without ".jpg"
	var picname = url.substr(url.lastIndexOf("/")+1);	// "aAjkFeiIOfjd"

	var z_snap = encodeURIComponent(url);
	var z_caption = encodeURIComponent("I <3 Seenly!");
	var z_image_tracking = encodeURIComponent(picname);
	var z_tracking = encodeURIComponent("viewer");
	var z_url = 'http://www.zazzle.com/api/create/at-238985167054435943?rf=238985167054435943&ax=Linkover&pd=168370566118236690&fwd=ProductPage&ed=true' + 
			'&tc=' + z_tracking +
			'&ic=' + z_image_tracking +
			'&caption=' + z_caption +
			'&snap=' + z_snap;


	var container = $("<div></div>");

  var div_url = $('<div id="do_tab_links_target">' +
			'URL to this snap:<br/>' +
			SEENLY.code_box.create(shortlink, false) +
			'<div style="margin: 10px;">' +
			'<iframe allowtransparency="true" frameborder="0" scrolling="no" src="http://platform.twitter.com/widgets/tweet_button.html?count=none&url=' + encodeURIComponent(shortlink) + '" style="width:55px; height:20px; padding-left: 35px;"></iframe> ' +
			'<a style="margin-right: 6px" name="fb_share" type="button" share_url="' + encodeURIComponent(shortlink.substring(7)) + '">Share</a>' +
			'<iframe src="http://www.facebook.com/plugins/like.php?href=' + encodeURIComponent(shortlink) + '&layout=button_count&show_faces=false&width=90&action=like&colorscheme=light&height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:90px; height:21px; margin-bottom: -1px" />' +
//			'<fb:like href="' + shortlink + '" ref="picbox_v1"  width="90px" layout="button_count" />' +
			'</div></div>').appendTo(container); 

	var div_codes = $('<div id="do_tab_codes_target" style="display: none">' +
			'<div style="margin: 4px">HTML: ' + SEENLY.code_box.create("<img src=\"" + url + "\" width=\"480\" height=\"360\" />") + '</div>' +
			'<div style="margin: 4px">Forums: ' + SEENLY.code_box.create("[IMG]" + url + "[/IMG]") + '</div>' +
			'<div style="margin: 4px">Forums+Thumbnail: ' + SEENLY.code_box.create("[URL=" + url + "][IMG]" + medium + "[/IMG][/URL]") + '</div>' +
			'</div>').appendTo(container);

var div_mail = $('<div id="do_tab_mail_target" style="display: none; margin: auto; width: 500px; height: 300px; text-align: left">' + '<a name="mail"></a>' + '<input type="hidden" name="pic_url" id="pic_url" value="' + url + '" />' + '<div id="share_mail_entry" style="padding-left: 25px">' + '<div>' + '<label class="editbox_small" for="from_name">Your name:</label><br />' + '<input type="text" class="editbox_small" name="from_name" id="from_name" /><br />' +

    '<div style="float: left; width: 50%">' + '<label class="editbox_small" for="from_address">Your address:</label><br />' + '<input type="text" class="editbox_small" name="from_address" id="from_address" />' + '</div>' +

    '<label class="editbox_small" for="to_address">Friend\'s address:</label><br />' + '<input type="text" class="editbox_small" name="to_address" id="to_address" /><br />' + '</div>' + '<label class="editbox_small" for="comments">A message:</label><br />' + '<textarea class="editbox_small" name="comments" id="comments" style="width: 450px; height: 100px"></textarea>' + '<button id="send_share_mail">Send</button>' + '</div>' +

    '<div id="share_mail_loading" style="display: none; margin: auto; width: 500px; text-align: left">' + '</div>' +

    '<div id="share_mail_error" style="display: none; margin: auto; width: 500px; text-align: left">' + '</div>' +

    '<div id="share_mail_ok" style="display: none; margin: auto; width: 500px; text-align: left">' + '<div class="notify">Success!<br /><span style="font-size: smaller">Your mail was sent succesfully.</span></div><br />' + '<span class="lowfi_button" id="share_mail_ok_back">Back</span>' + '</div>' + '</div>').appendTo(container);

/*
	var div_merch = $('<div id="do_tab_merch_target" style="display: none; margin: auto; width: 480px; height: 263px">' +
			'<a name="merch"></a>' +
			'<a href="' + z_url + '" target="_blank"><img style="border: none" src="/static/v1.2/img/mug.png"></a>' +
			'</div>').appendTo(container);
*/

	var tabs = $('<div id="do_tabs">' + 
			'<span id="do_tab_links" class="selected">URL</span>' +
			'<a id="do_tab_mail" class="tab" href="#mail">E-Mail</a>' +
			'<span id="do_tab_codes" class="tab">Code</span>' + 
//			'<a id="do_tab_merch" class="tab" href="#merch">On a Mug</a>' +
			'</div>').appendTo(container);

	return container;
}

