// $Id: flickr.js,v 1.1.2.3.2.2 2008/11/21 23:25:30 jeffcd Exp $
function yui_editor_flickr() {
for (var e in YAHOO.Drupal.editors) {
var myEditor = YAHOO.Drupal.editors[e].editor;
var config = YAHOO.Drupal.editors[e].config;
if (config.flickr == 1) {
var gutter = null;
myEditor.on('toolbarLoaded', function() {
gutter = new YAHOO.gutter();
var flickrConfig = {
type: 'push',
label: 'Insert Flickr Image',
value: 'flickr'
}
myEditor.toolbar.addButtonToGroup(flickrConfig, 'plugins');
myEditor.toolbar.on('flickrClick', function(ev) {
myEditor._focusWindow();
if (ev && ev.img) {
var html = '';
myEditor.execCommand('inserthtml', html);
}
gutter.toggle();
});
gutter.createGutter();
});
YAHOO.util.Event.onAvailable('flickr_search', function() {
YAHOO.util.Event.on('flickr_results', 'click', function(ev) {
var tar = YAHOO.util.Event.getTarget(ev);
if (tar.tagName.toLowerCase() == 'img') {
if (tar.getAttribute('fullimage', 2)) {
var img = tar.getAttribute('fullimage', 2),
title = tar.getAttribute('fulltitle'),
owner = tar.getAttribute('fullowner'),
url = tar.getAttribute('fullurl');
myEditor.toolbar.fireEvent('flickrClick', {
type: 'flickrClick',
img: img,
title: title,
owner: owner,
url: url
});
}
}
});
oACDS = new YAHOO.widget.DS_XHR("",
["photo", "title", "id", "owner", "secret", "server"]);
oACDS.scriptQueryParam = "tags";
oACDS.responseType = YAHOO.widget.DS_XHR.TYPE_XML;
oACDS.maxCacheEntries = 0;
oACDS.scriptQueryAppend = "q=yui_editor/flickr" + '&flickr_api_key=' + config.flickr_api_key;
oAutoComp = new YAHOO.widget.AutoComplete('flickr_search','flickr_results', oACDS);
oAutoComp.autoHighlight = false;
oAutoComp.alwaysShowContainer = true;
oAutoComp.formatResult = function(oResultItem, sQuery) {
var sTitle = oResultItem[0];
var sId = oResultItem[1];
var sOwner = oResultItem[2];
var sSecret = oResultItem[3];
var sServer = oResultItem[4];
var urlPart = 'http:/'+'/static.flickr.com/' + sServer + '/' + sId + '_' + sSecret;
var sUrl = urlPart + '_s.jpg';
var lUrl = urlPart + '_m.jpg';
var fUrl = 'http:/'+'/www.flickr.com/photos/' + sOwner + '/' + sId;
var sMarkup = '
';
return (sMarkup);
};
});
}
(function() {
var Dom = YAHOO.util.Dom,
Event = YAHOO.util.Event;
YAHOO.gutter = function() {
return {
status: false,
gutter: null,
createGutter: function() {
this.gutter = new YAHOO.widget.Overlay('gutter1', {
height: '425px',
width: '300px',
context: [
myEditor.get('element'),
'tl',
'tr'
],
position: 'absolute',
visible: false
});
this.gutter.hideEvent.subscribe(function() {
myEditor.toolbar.deselectButton('flickr');
Dom.setStyle('gutter1', 'visibility', 'visible');
var anim = new YAHOO.util.Anim('gutter1', {
width: {
from: 300,
to: 0
},
opacity: {
from: 1,
to: 0
}
}, 1);
anim.onComplete.subscribe(function() {
Dom.setStyle('gutter1', 'visibility', 'hidden');
});
anim.animate();
}, this, true);
this.gutter.showEvent.subscribe(function() {
myEditor.toolbar.selectButton('flickr');
Dom.setStyle(this.gutter.element, 'width', '0px');
var anim = new YAHOO.util.Anim('gutter1', {
width: {
from: 0,
to: 300
},
opacity: {
from: 0,
to: 1
}
}, 1);
anim.animate();
}, this, true);
var warn = '';
if (myEditor.browser.webkit || myEditor.browser.opera) {
warn = myEditor.STR_IMAGE_COPY;
}
this.gutter.setBody('
Enter flickr tags into the box above, separated by commas. Be patient.