- /**
- * Update the live preview section with links found in the given text.
- * May start async data loads.
- *
- * @param {String} text: free-form input text
- */
- previewLinks: function(text)
- {
- var i;
- var old = LinkPreview.links;
- var links = LinkPreview.findLinks(text);
- LinkPreview.links = links;
-
- // Check for existing common elements...
- for (i = 0; i < old.length && i < links.length; i++) {
- if (links[i] != old[i]) {
- if (LinkPreview.state[i] == "loading") {
- // Slate this column for a refresh when this one's done.
- LinkPreview.refresh[i] = true;
+ /**
+ * Start looking up info for a link preview...
+ * May start async data loads.
+ *
+ * @param {number} col: column number to insert preview into
+ */
+ prepLinkPreview: function(col)
+ {
+ var id = 'link-preview-' + col;
+ var url = LinkPreview.links[col];
+ LinkPreview.refresh[col] = false;
+ LinkPreview.markLoading(col);
+
+ oEmbed.lookup(url, function(data) {
+ var thumb = null;
+ var width = 100;
+ if (data && typeof data.thumbnail_url == "string") {
+ thumb = data.thumbnail_url;
+ if (typeof data.thumbnail_width !== "undefined") {
+ if (data.thumbnail_width < width) {
+ width = data.thumbnail_width;
+ }
+ }
+ } else if (data && data.type == 'photo' && typeof data.url == "string") {
+ thumb = data.url;
+ if (typeof data.width !== "undefined") {
+ if (data.width < width) {
+ width = data.width;
+ }
+ }
+ }
+
+ if (thumb) {
+ LinkPreview.ensureArea();
+ var link = $('<span class="inline-attachment"><a><img/></a></span>');
+ link.find('a')
+ .attr('href', url)
+ .attr('target', '_blank')
+ .last()
+ .find('img')
+ .attr('src', thumb)
+ .attr('width', width)
+ .attr('title', data.title || data.url || url);
+ form.find('.' + id)
+ .empty()
+ .append(link);