swdyh-avaticon 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/ChangeLog ADDED
@@ -0,0 +1,4 @@
1
+ == 0.0.1 / 2008-09-29
2
+
3
+ * initial release
4
+
data/README.rdoc ADDED
@@ -0,0 +1,37 @@
1
+
2
+ = avaticon
3
+
4
+ A library for getting web service user icon.
5
+
6
+ == Description
7
+
8
+
9
+ == Installation
10
+
11
+ === Archive Installation
12
+
13
+ rake install
14
+
15
+ === Gem Installation
16
+
17
+ gem sources -a http://gems.github.com (you only have to do this once)
18
+ sudo gem install swdyh-avaticon
19
+
20
+ == Features/Problems
21
+
22
+
23
+ == Synopsis
24
+
25
+ avt = Avaticon.new
26
+
27
+ # get icon
28
+ icon_url = avt.get_icon 'twitter', 'swdyh'
29
+
30
+ # search by url
31
+ icon_url = avt.search_by_url 'http://twitter.com/swdyh'
32
+
33
+ == Copyright
34
+
35
+ Author:: swdyh http://mailhide.recaptcha.net/d?k=01AhB7crgrlHptVaYRD0oPwA==&c=L_iqOZrGmo6hcGpPTFg1QYnjr-WpAStyQ4Y8ShfgOHs=
36
+ Copyright:: Copyright (c) 2008 swdyh
37
+ License:: The MIT License
data/Rakefile ADDED
@@ -0,0 +1,143 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'rake/clean'
4
+ require 'rake/testtask'
5
+ require 'rake/packagetask'
6
+ require 'rake/gempackagetask'
7
+ require 'rake/rdoctask'
8
+ require 'rake/contrib/rubyforgepublisher'
9
+ require 'rake/contrib/sshpublisher'
10
+ require 'fileutils'
11
+ include FileUtils
12
+
13
+ NAME = "avaticon"
14
+ AUTHOR = "swdyh"
15
+ EMAIL = ""
16
+ DESCRIPTION = "A library for getting web service user icon."
17
+ RUBYFORGE_PROJECT = "avaticon"
18
+ HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
19
+ BIN_FILES = %w( )
20
+ VERS = "0.0.2"
21
+
22
+ REV = File.read(".svn/entries")[/committed-rev="(d+)"/, 1] rescue nil
23
+ CLEAN.include ['**/.*.sw?', '*.gem', '.config']
24
+ RDOC_OPTS = [
25
+ '--title', "#{NAME} documentation",
26
+ "--charset", "utf-8",
27
+ "--opname", "index.html",
28
+ "--line-numbers",
29
+ "--main", "README.rdoc",
30
+ "--inline-source",
31
+ ]
32
+
33
+ task :default => [:test]
34
+ task :package => [:clean]
35
+
36
+ Rake::TestTask.new("test") do |t|
37
+ t.libs << "test"
38
+ t.pattern = "test/**/*_test.rb"
39
+ t.verbose = true
40
+ end
41
+
42
+ spec = Gem::Specification.new do |s|
43
+ s.name = NAME
44
+ s.version = VERS
45
+ s.platform = Gem::Platform::RUBY
46
+ s.has_rdoc = true
47
+ s.extra_rdoc_files = ["README.rdoc", "ChangeLog"]
48
+ s.rdoc_options += RDOC_OPTS + ['--exclude', '^(examples|extras)/']
49
+ s.summary = DESCRIPTION
50
+ s.description = DESCRIPTION
51
+ s.author = AUTHOR
52
+ s.email = EMAIL
53
+ s.homepage = HOMEPATH
54
+ s.executables = BIN_FILES
55
+ s.rubyforge_project = RUBYFORGE_PROJECT
56
+ s.bindir = "bin"
57
+ s.require_path = "lib"
58
+ s.autorequire = ""
59
+ s.test_files = Dir["test/test_*.rb"]
60
+
61
+ s.add_dependency('hpricot', '>= 0.6')
62
+ #s.add_dependency('activesupport', '>=1.3.1')
63
+ #s.required_ruby_version = '>= 1.8.2'
64
+
65
+ s.files = %w(README.rdoc ChangeLog Rakefile) +
66
+ Dir.glob("{bin,doc,test,lib,templates,generator,extras,website,script}/**/*") +
67
+ Dir.glob("ext/**/*.{h,c,rb}") +
68
+ Dir.glob("examples/**/*.rb") +
69
+ Dir.glob("tools/*.rb")
70
+
71
+ s.extensions = FileList["ext/**/extconf.rb"].to_a
72
+ end
73
+
74
+ Rake::GemPackageTask.new(spec) do |p|
75
+ p.need_tar = true
76
+ p.gem_spec = spec
77
+ end
78
+
79
+ task :install do
80
+ name = "#{NAME}-#{VERS}.gem"
81
+ sh %{rake package}
82
+ sh %{sudo gem install pkg/#{name}}
83
+ end
84
+
85
+ task :uninstall => [:clean] do
86
+ sh %{sudo gem uninstall #{NAME}}
87
+ end
88
+
89
+
90
+ Rake::RDocTask.new do |rdoc|
91
+ rdoc.rdoc_dir = 'html'
92
+ rdoc.options += RDOC_OPTS
93
+ rdoc.template = "resh"
94
+ #rdoc.template = "#{ENV['template']}.rb" if ENV['template']
95
+ if ENV['DOC_FILES']
96
+ rdoc.rdoc_files.include(ENV['DOC_FILES'].split(/,\s*/))
97
+ else
98
+ rdoc.rdoc_files.include('README.rdoc', 'ChangeLog')
99
+ rdoc.rdoc_files.include('lib/**/*.rb')
100
+ rdoc.rdoc_files.include('ext/**/*.c')
101
+ end
102
+ end
103
+
104
+ desc "Publish to RubyForge"
105
+ task :rubyforge => [:rdoc, :package] do
106
+ require 'rubyforge'
107
+ Rake::RubyForgePublisher.new(RUBYFORGE_PROJECT, 'swdyh').upload
108
+ end
109
+
110
+ desc 'Package and upload the release to rubyforge.'
111
+ task :release => [:clean, :package] do |t|
112
+ v = ENV["VERSION"] or abort "Must supply VERSION=x.y.z"
113
+ abort "Versions don't match #{v} vs #{VERS}" unless v == VERS
114
+ pkg = "pkg/#{NAME}-#{VERS}"
115
+
116
+ rf = RubyForge.new
117
+ puts "Logging in"
118
+ rf.login
119
+
120
+ c = rf.userconfig
121
+ # c["release_notes"] = description if description
122
+ # c["release_changes"] = changes if changes
123
+ c["preformatted"] = true
124
+
125
+ files = [
126
+ "#{pkg}.tgz",
127
+ "#{pkg}.gem"
128
+ ].compact
129
+
130
+ puts "Releasing #{NAME} v. #{VERS}"
131
+ rf.add_release RUBYFORGE_PROJECT, NAME, VERS, *files
132
+ end
133
+
134
+ desc 'Show information about the gem.'
135
+ task :debug_gemspec do
136
+ puts spec.to_ruby
137
+ end
138
+
139
+ desc 'Update information about the gem.'
140
+ task :update_gemspec do
141
+ open("#{NAME}.gemspec", 'w') { |f| f.puts spec.to_ruby }
142
+ end
143
+
data/lib/avaticon.rb ADDED
@@ -0,0 +1,76 @@
1
+ require 'open-uri'
2
+ require 'rubygems'
3
+ require 'hpricot'
4
+ require 'json'
5
+
6
+ class Avaticon
7
+ BASE_PATH = File.dirname(__FILE__)
8
+ DEFAULT_SITEINFO_PATH = File.join(BASE_PATH, 'siteinfo.json')
9
+ attr_accessor :siteinfo
10
+
11
+ def initialize opt = {}
12
+ @siteinfo = []
13
+ (opt[:siteinfo_path] || DEFAULT_SITEINFO_PATH).each do |i|
14
+ load_siteinfo i
15
+ end
16
+ end
17
+
18
+ def load_siteinfo path
19
+ JSON.parse(open(path).read).each do |i|
20
+ # 1.9 feature
21
+ # index = @siteinfo.index { |j| j['service_name'] == i['service_name']}
22
+ index = nil
23
+ @siteinfo.each_with_index do |j, ind|
24
+ if j['service_name'] == i['service_name']
25
+ index = ind
26
+ break
27
+ end
28
+ end
29
+
30
+ if index
31
+ @siteinfo[index] = i
32
+ else
33
+ @siteinfo.push i
34
+ end
35
+ end
36
+ end
37
+
38
+ def get_icon service, user_id
39
+ info = @siteinfo.find { |i| i['service_name'] == service }
40
+ if info
41
+ url = info['iconPageUrl'].gsub('{user_id}', user_id)
42
+ icon = Hpricot(open(url)).at(info['iconImageElement'])
43
+ if icon
44
+ Avaticon.path2url url, icon['src']
45
+ end
46
+ end
47
+ end
48
+
49
+ def search_by_url url
50
+ @siteinfo.each do |i|
51
+ m = Regexp.new(i['url']).match(url)
52
+ if m
53
+ return get_icon(i['service_name'], m.to_a[1])
54
+ end
55
+ end
56
+ end
57
+
58
+ def services
59
+ @siteinfo.map{ |i| i['service_name'] }
60
+ end
61
+
62
+ def self.path2url url, path
63
+ #FIXME
64
+ case path
65
+ when /^http/
66
+ path
67
+ when /^\//
68
+ u = URI.parse(url)
69
+ u.path = path
70
+ u.to_s
71
+ else
72
+ url + path
73
+ end
74
+ end
75
+ end
76
+
data/lib/siteinfo.json ADDED
@@ -0,0 +1,58 @@
1
+ [
2
+ {
3
+ "service_name": "twitter",
4
+ "url": "^http:\/\/twitter\\.com\/([^.\/]+)",
5
+ "iconPageUrl": "http:\/\/twitter.com\/{user_id}",
6
+ "iconImageElement": "\/\/img[@id=\"profile-image\"]",
7
+ "exampleUrl": "http:\/\/twitter.com\/swdyh",
8
+ "exampleImageUrl": "http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/51990802\/IMAG8174_bigger.JPG"
9
+ },
10
+ {
11
+ "service_name": "wassr",
12
+ "url": "^http:\/\/wassr\\.jp\/user\/([^.\/]+)",
13
+ "iconPageUrl": "http:\/\/wassr.jp\/user\/{user_id}",
14
+ "iconImageElement": "\/\/div[@class=\"image\"]\/a\/img",
15
+ "exampleUrl": "http:\/\/wassr.jp\/user\/kotoriko",
16
+ "exampleImageUrl": "http:\/\/wassr.jp\/user\/kotoriko\/profile_img.png.128.1212746583"
17
+ },
18
+ {
19
+ "service_name": "hatena",
20
+ "url": "^http:\/\/[^.]+\\.hatena.ne\\.jp\/([^.\/]+)",
21
+ "iconPageUrl": "http:\/\/www.hatena.ne.jp\/{user_id}\/",
22
+ "iconImageElement": "\/\/img[@class=\"profile-image\"]",
23
+ "exampleUrl": "http:\/\/www.hatena.ne.jp\/swdyh\/",
24
+ "exampleImageUrl": "http:\/\/www.hatena.ne.jp\/users\/sw\/swdyh\/profile.gif"
25
+ },
26
+ {
27
+ "service_name": "nowa",
28
+ "url": "^http:\/\/([^.\/]+)\\.nowa\\.jp\/profile\/",
29
+ "iconPageUrl": "http:\/\/{user_id}.nowa.jp\/profile\/",
30
+ "iconImageElement": "\/\/div[@class=\"basic-information\"]\/img",
31
+ "exampleUrl": "http:\/\/yuiseki.nowa.jp\/profile\/",
32
+ "exampleImageUrl": "http:\/\/image.nowa.jp\/icon\/00000011c1be13a9decc002ed6f1505814cae91870a1759-o.jpg"
33
+ },
34
+ {
35
+ "service_name": "lastfm",
36
+ "url": "^http:\/\/www\\.lastfm\\.jp\/user\/([^.\/]+)",
37
+ "iconPageUrl": "http:\/\/www.lastfm.jp\/user\/{user_id}",
38
+ "iconImageElement": "\/\/span[@class=\"userImage\"]\/img",
39
+ "exampleUrl": "http:\/\/www.lastfm.jp\/user\/youpy",
40
+ "exampleImageUrl": "http:\/\/userserve-ak.last.fm\/serve\/126\/936583.jpg"
41
+ },
42
+ {
43
+ "service_name": "flickr",
44
+ "url": "^http:\/\/www\\.flickr\\.com\/people\/([^.\/]+)\/",
45
+ "iconPageUrl": "http:\/\/www.flickr.com\/people\/{user_id}\/",
46
+ "iconImageElement": "\/\/td[@class=\"Buddy\"]\/a\/img",
47
+ "exampleUrl": "http:\/\/www.flickr.com\/people\/kusaker\/",
48
+ "exampleImageUrl": "http:\/\/farm1.static.flickr.com\/128\/buddyicons\/39255132@N00.jpg?1169585056#39255132@N00"
49
+ },
50
+ {
51
+ "service_name": "github",
52
+ "url": "^http:\/\/github\\.com\/([^.\/]+)",
53
+ "iconPageUrl": "http:\/\/github.com\/{user_id}",
54
+ "iconImageElement": "\/\/div[@class=\"identity\"]\/img",
55
+ "exampleUrl": "http:\/\/github.com\/kzys",
56
+ "exampleImageUrl": "http:\/\/www.gravatar.com\/avatar\/7828b45f8396aa361d85cead01fd99ca?s=50&d=http%3A%2F%2Fgithub.com%2Fimages%2Fgravatars%2Fgravatar-50.png"
57
+ }
58
+ ]
@@ -0,0 +1,48 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ require "test/unit"
4
+ require 'mocha'
5
+
6
+ REMOTE_TEST = ENV['REMOTE_TEST'] == 'true'
7
+ MOCK_HTML_DIR = File.join 'test', 'html'
8
+
9
+ class AvaticonTest < Test::Unit::TestCase
10
+
11
+ def prepare_stubs service, user_id
12
+ unless REMOTE_TEST
13
+ path = File.join(MOCK_HTML_DIR, [service, user_id].join('_'))
14
+ OpenURI.stubs(:open_uri).returns(IO.read(path))
15
+ end
16
+ end
17
+
18
+ def test_siteinfo_example_url
19
+ avt = Avaticon.new
20
+ avt.siteinfo.each do |s|
21
+ m = Regexp.new(s['url']).match(s['exampleUrl'])
22
+ assert m
23
+ assert_equal 2, m.to_a.size
24
+ end
25
+ end
26
+
27
+ def test_get_icon
28
+ avt = Avaticon.new
29
+ avt.siteinfo.each do |s|
30
+ m = Regexp.new(s['url']).match(s['exampleUrl'])
31
+ service = s['service_name']
32
+ user_id = m.to_a[1]
33
+ prepare_stubs service, user_id
34
+ icon_url = avt.get_icon service, user_id
35
+ assert_equal s['exampleImageUrl'], icon_url
36
+ end
37
+ end
38
+
39
+ def test_search_by_url
40
+ avt = Avaticon.new
41
+ s = avt.siteinfo[0]
42
+ m = Regexp.new(s['url']).match(s['exampleUrl'])
43
+ user_id = m.to_a[1]
44
+ prepare_stubs s['service_name'], user_id
45
+ assert_equal s['exampleImageUrl'], avt.search_by_url(s['exampleUrl'])
46
+ end
47
+ end
48
+
@@ -0,0 +1,829 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html>
3
+ <head>
4
+ <title>Flickr: kusaker</title>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
6
+ <meta name="keywords" content="photography, digital photography, cameraphones, camera, hobby photography, photo, digital camera, compactflash, smartmedia, cameras, canon, nikon, olympus, fujifilm, video">
7
+ <meta name="description" content="Flickr is almost certainly the best online photo management and sharing application in the world. Show off your favorite photos and videos to the world, securely and privately show content to your friends and family, or blog the photos and videos you take with a cameraphone.">
8
+ <meta http-equiv="imagetoolbar" content="no">
9
+ <meta name="viewport" content="width=820" />
10
+ <link href="http://l.yimg.com/g/css/c_flickr.css.v59787.14" rel="stylesheet" type="text/css">
11
+ <link rel="shortcut icon" type="image/ico" href="/favicon.ico">
12
+ <link href="http://l.yimg.com/g/css/c_profile.css.v35667.14" rel="stylesheet" type="text/css" />
13
+ <link href="http://l.yimg.com/g/css/c_contacts.css.v45805.14" rel="stylesheet" type="text/css" />
14
+ <link href="http://l.yimg.com/g/css/c_search.css.v57483.14" rel="stylesheet" type="text/css" />
15
+
16
+ <!--[if LT IE 7]>
17
+ <style type="text/css">
18
+ .trans_png {
19
+ behavior: url('/javascript/pngbehavior2.htc');
20
+ border:0;
21
+ }
22
+ </style>
23
+ <![endif]-->
24
+
25
+ <link href="http://l.yimg.com/g/css/intl/c_en-us.css.v33225.14" rel="stylesheet" type="text/css">
26
+
27
+ <script type="text/javascript">
28
+ var global_magisterLudi = '48c6bbc703d6a02e51ff6591490f941a',
29
+ global_auth_hash = '89d44653b4f795eb9de5f5e64856b86e',
30
+ global_auth_token = '',
31
+ global_flickr_secret = 'b06793b1c5ccb653',
32
+ global_slideShowVersion = '6708',
33
+ global_slideShowCodeVersion = '34351',
34
+ global_slideShowVersionV2 = '33427',
35
+ global_slideShowCodeVersionV2 = '49745',
36
+ global_slideShowTextVersion = '58886',
37
+ global_slideShowVersionV3 = '59913',
38
+ global_nsid = '',
39
+ global_ispro = 0,
40
+ global_dbid = '',
41
+ global_name ='',
42
+ global_expire ='',
43
+ global_icon_url ='http://l.yimg.com/g/images/buddyicon.jpg#',
44
+ global_tag_limit = '75',
45
+ global_collection_depth_limit = 5,
46
+ global_stewartVersion = '60247',
47
+ global_contact_limit = '3000',
48
+ global_eighteen = 1,
49
+ global_group_limit = 10,
50
+ global_photos_ids_limit = 20,
51
+ disable_stewart = 0;
52
+ disable_geo = 0;
53
+ var global_rper = 0;
54
+
55
+ var global_intl_lang = 'en-us';
56
+
57
+ var _photo_root = 'http://farm.static.flickr.com/';
58
+ var _site_root = 'http://www.flickr.com';
59
+ var _images_root = 'http://l.yimg.com/g/images';
60
+ var _intl_images_root = 'http://l.yimg.com/g/images/en-us';
61
+
62
+
63
+ var do_bbml = 0;
64
+
65
+ </script>
66
+
67
+
68
+ <script type="text/javascript" src="http://l.yimg.com/g/javascript/global.js.v58474.14"></script>
69
+
70
+ <script type="text/javascript">
71
+
72
+ </script>
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+ <script type="text/javascript" src="http://l.yimg.com/g/javascript/fold_main.js.v48851.48851.48851.48851.48851.38771.48851.48851.60501.38771.38771.49635.38771.38771.38771.39083.55689.53587.38771.57388.38771.60180.14"></script>
104
+ <script type="text/javascript" src="http://l.yimg.com/g/javascript/video.js.v55944.14"></script>
105
+ <script type="text/javascript" src="http://l.yimg.com/g/javascript/swfobject.js.v55944.14"></script>
106
+
107
+
108
+ <script type="text/javascript" src="http://l.yimg.com/g/javascript/slideshow3.js.v59253.14"></script>
109
+
110
+ <link href="http://l.yimg.com/g/css/c_sharing.css.v57426.14" rel="stylesheet" type="text/css">
111
+
112
+ <script type="text/javascript" src="http://l.yimg.com/g/javascript/s_output_en-us.js.9cd45e469cef593118863d07b30f5c95"></script>
113
+
114
+ <script type="text/javascript">
115
+
116
+ YAHOO.util.Event.addListener(window, 'load', F._window_onload);
117
+ YAHOO.util.Event.addListener(window, 'resize', F._window_onresize);
118
+ YAHOO.util.Event.addListener(window, 'blur', F._window_onblur);
119
+ YAHOO.util.Event.addListener(window, 'focus', F._window_onfocus);
120
+ YAHOO.util.Event.addListener(window, 'unload', F._window_onunload);
121
+
122
+ </script>
123
+
124
+
125
+
126
+ <script type="text/javascript">
127
+ var global_joinDate = F.convert_unix_time_stamp('');
128
+ var global_time_stamp = '080926164740';
129
+
130
+
131
+ fixMaxWidth_getWidth = (navigator.userAgent.match(/MSIE 6/i)?function(el) {
132
+ return el.currentStyle['max-width'];
133
+ }:function(el){
134
+ return el.currentStyle['maxWidth'];
135
+ });
136
+
137
+ fixMaxWidth = function(el) {
138
+ try {
139
+ el.runtimeStyle.behavior = 'none';
140
+ var mw = fixMaxWidth_getWidth(el);
141
+ var nmw = parseInt(mw,10) || 10000;
142
+ var cW = parseInt(el.offsetWidth);
143
+ var cH = parseInt(el.offsetHeight);
144
+ var ratio = (cH/cW);
145
+ if (el.offsetWidth>nmw) {
146
+ el.style.width = (nmw+'px');
147
+ if (!isNaN(cH) && cH) {
148
+ el.style.height = (Math.ceil(nmw*ratio)+'px');
149
+ }
150
+ }
151
+ } catch(e) {
152
+ // oh well
153
+ }
154
+ }
155
+
156
+
157
+
158
+ // Dean Edwards/Matthias Miller/John Resig
159
+
160
+ /* for Mozilla/Opera9 */
161
+ if (document.addEventListener) {
162
+ document.addEventListener("DOMContentLoaded", F._window_onload_dom, false);
163
+ }
164
+
165
+ /* for Internet Explorer */
166
+ /*@cc_on @*/
167
+ /*@if (@_win32)
168
+ document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
169
+ var script = document.getElementById("__ie_onload");
170
+ script.onreadystatechange = function() {
171
+ if (this.readyState == "complete") {
172
+ F._window_onload_dom(); // call the onload handler
173
+ }
174
+ };
175
+ /*@end @*/
176
+
177
+ /* for Safari */
178
+ if (/WebKit/i.test(navigator.userAgent)) { // sniff
179
+ F.onload_dom_timer = setInterval(function() {
180
+ if (/loaded|complete/.test(document.readyState)) {
181
+ F._window_onload_dom(); // call the onload handler
182
+ }
183
+ }, 10);
184
+ }
185
+
186
+
187
+
188
+ </script>
189
+
190
+ <!--[if IE]>
191
+ <style type="text/css">
192
+
193
+ img.notsowide {
194
+ behavior:expression(fixMaxWidth(this));
195
+ }
196
+
197
+ </style>
198
+ <![endif]-->
199
+
200
+
201
+
202
+
203
+ <body>
204
+
205
+ <div id="beacon"><img src="http://geo.yahoo.com/f?s=792600091&t=d8c6117929c5cfcb968455ebbc3262d5&fl_ev=0&lang=en&intl=us" width="0" height="0" alt="" /></div>
206
+
207
+ <a name="top"></a>
208
+
209
+
210
+
211
+
212
+
213
+
214
+
215
+
216
+ <div class="TopBar" id="TopBar">
217
+ <table cellspacing="0" class="Header" border="0">
218
+ <tr>
219
+ <td class="FlickrLogo">
220
+ <a href="/"><img src="http://l.yimg.com/g/images/flickr_logo_gamma.gif.v59899.14" id="FlickrLogo" width="98" height="26" alt="Flickr logo. If you click it, you'll go home" />
221
+ </a>
222
+ </td>
223
+ <td class="Status">
224
+
225
+
226
+
227
+ You aren't signed in
228
+ &nbsp;&nbsp;&nbsp;
229
+ <a href="/signin/">Sign In</a>
230
+ &nbsp;&nbsp;
231
+ <a href="/help/">Help</a>
232
+ </td>
233
+ </tr>
234
+ </table>
235
+ <table cellspacing="0" class="NavBar" border="0">
236
+ <tr>
237
+ <td class="Primary">
238
+
239
+ <div id="candy_nav_button_bar" class="candy_button_bar">
240
+ <ul class="site_nav_menu_buttons">
241
+
242
+ <li class="no_menu_li"><span><a href="/">Home</a></span></li>
243
+
244
+
245
+ <li class="no_menu_li"><span><a href="/tour/" alt="Take the Flickr tour">The Tour</a></span></li>
246
+
247
+ <li class="no_menu_li"><span><a href="/signup/" alt="Sign Up for a Free Account">Sign Up</a></span></li>
248
+
249
+
250
+
251
+ <li class="menu_li" id="candy_nav_button_explore"><span><a href="/explore/" alt="Explore Flickr">Explore</a> <img src="http://l.yimg.com/g/images/site_nav_caret_split_default.png" class="nav_button_caret" width="18" height="15" alt="More options"></span>
252
+ <div class="candy_menu" id="candy_nav_menu_explore">
253
+ <a href="/explore/">Explore Page</a>
254
+ <a href="/explore/interesting/7days/">Last 7 Days Interesting</a>
255
+ <a href="/photos/tags/">Popular Tags</a>
256
+ <a href="/explore/interesting/2008/09/">Calendar</a>
257
+ <a href="/photos/">Most Recent Uploads</a>
258
+ <a href="/explore/video/">Video on Flickr</a>
259
+ <a href="/analog/">Explore Analog</a>
260
+ <!--<a href="/explore/interesting/2007/09/">A Year Ago Today</a>-->
261
+
262
+ <a title="Photos and videos on a map" href="/map/" class="menu_item_line_above">World Map</a> <a href="/places/">Places</a>
263
+ <a href="/commons/" class="menu_item_line_above">The Commons</a>
264
+ <a href="/creativecommons/">Creative Commons</a>
265
+
266
+ <a href="http://blog.flickr.com/" class="menu_item_line_above">FlickrBlog</a>
267
+ <a href="http://code.flickr.com/">code.flickr</a>
268
+ <a href="/services/">Flickr Services</a>
269
+
270
+ <a href="/do/more/" class="menu_item_line_above">Do More, Order Prints</a>
271
+ <a href="/cameras/">Camera Finder</a> </div>
272
+ </li>
273
+
274
+ </ul>
275
+ </div>
276
+ <script type="text/javascript">F.decorate(_ge('candy_nav_button_bar'), F._nav_button_bar).bar_go_go_go();</script>
277
+
278
+
279
+
280
+ </td>
281
+
282
+
283
+
284
+
285
+
286
+ <td id="search_header_form_td">
287
+ <form action="/search/" method="get" onsubmit="_do_header_search('', 'tags', '/search/', '', '');return false;" id="headersearchform">
288
+ <input name="q" id="header_search_q" type="text" class="Box" value="">
289
+ <input name="w" type="hidden" value="">
290
+ <input name="m" type="hidden" value="tags">
291
+ <input name="s" type="hidden" value="">
292
+ <input name="mt" type="hidden" value="">
293
+ <span id="headersearchbutton1"><input value="Search" type="image" src="http://l.yimg.com/g/images/header_search_button.png" /></span>
294
+ </form>
295
+ </td>
296
+ <td id="search_header_button_td" width="82">
297
+
298
+ <div id="candy_search_button_bar" class="candy_button_bar" style="">
299
+ <ul class="site_nav_menu_buttons">
300
+ <li class="menu_li" id="candy_nav_button_search"><span><a href="/search/" onclick="_do_header_search('', 'tags', '/search/', '', '');return false;">Search</a> <img src="http://l.yimg.com/g/images/site_nav_caret_split_default.png" class="nav_button_caret" width="18" height="15" alt="More options"></span>
301
+ <div class="candy_menu" id="candy_nav_menu_search">
302
+ <a title="Everyone's Uploads" href="/search/" onclick="_do_header_search('all', null, null, null, ''); return false;"><b>&#183;</b> Everyone's Uploads</a>
303
+ <a title="Groups" href="/search/groups/" onclick="_do_header_search('', '', '/search/groups/'); return false;">Groups</a>
304
+ <a title="Flickr Members" href="/search/people/" onclick="_do_header_search('', 'names', '/search/people/'); return false;">Flickr Members</a>
305
+ <a title="For a Location" href="/map/" onclick="_do_header_search('location', '', '/map/'); return false;">For a Location</a>
306
+ </div>
307
+ </li>
308
+ </ul>
309
+ </div>
310
+
311
+ <script type="text/javascript">F.decorate(_ge('candy_nav_button_search'), F._nav_button).button_go_go_go();</script>
312
+
313
+ <script type="text/javascript">
314
+ var b1 = _ge('headersearchbutton1');
315
+ b1.parentNode.removeChild(b1);
316
+
317
+ _ge('search_header_form_td').style.paddingBottom = '2px';
318
+
319
+ _ge('candy_search_button_bar').style.display = 'block';
320
+
321
+
322
+ var f = _ge('headersearchform');
323
+
324
+ if (f.q.value == '') f.q.style.color = '#999';
325
+
326
+ f.q.onfocus = function() {
327
+ if (this.value == '') this.value = '';
328
+ this.style.color = '#222';
329
+ if (window.ymap) ymap._disableKeys = true;
330
+ }
331
+
332
+ f.q.onblur = function() {
333
+ if (this.value != '') return;
334
+ this.style.color = '#999';
335
+ this.value = '';
336
+ if (window.ymap) ymap._disableKeys = false;
337
+ }
338
+
339
+ var _do_header_search = function(w, m, action, s, mt) {
340
+ var f = _ge('headersearchform');
341
+ if (f.q.value == '') f.q.value = '';
342
+ f.q.value = f.q.value.trim();
343
+
344
+
345
+ // do location search if the location search window is open, or if w == 'location'
346
+ if (w == 'location' || (_ge('loc_search_div') && _ge('loc_search_div').style.display != 'none')) {
347
+ if (!_ge('loc_search_div')) {
348
+ // create the location search crap!
349
+ var div = document.createElement('div');
350
+ div.id = 'loc_search_div';
351
+ document.body.appendChild(div);
352
+
353
+ var page_type = 'site';
354
+ F.decorate(div, F._loc_search_div).div_go_go_go(page_type);
355
+ }
356
+ try {_ge('loc_search_div').div_do_loc_search()} catch(err) {writeDebug(err)};return false;
357
+ return;
358
+ }
359
+
360
+
361
+
362
+
363
+ f.w.value = w;
364
+ f.m.value = (m) ? m : '';
365
+ f.s.value = (s) ? s : '';
366
+ f.mt.value = (mt) ? mt : '';
367
+ f.action = (action) ? action : '/search/';
368
+
369
+ if (f.m.value == 'tags' && f.q.value && f.q.value.indexOf(' ') == -1) {
370
+ var alias = '';
371
+ alias = (alias) ? alias : f.w.value;
372
+ var turl = '/photos/';
373
+ if (f.w.value == 'all') {
374
+ turl+= 'tags/'+encodeURIComponent(f.q.value);
375
+ } else {
376
+ turl+= alias+'/tags/'+encodeURIComponent(f.q.value);
377
+ }
378
+ document.location = turl;
379
+ return;
380
+ }
381
+
382
+ var qsA = ['q='+encodeURIComponent(f.q.value)];
383
+ if (f.w.value) qsA.push('w='+encodeURIComponent(f.w.value));
384
+ if (f.m.value) qsA.push('m='+encodeURIComponent(f.m.value));
385
+ if (f.s.value) qsA.push('s='+encodeURIComponent(f.s.value));
386
+ if (f.mt.value) qsA.push('mt='+encodeURIComponent(f.mt.value));
387
+
388
+ var surl = f.action+'?'+qsA.join('&');
389
+ document.location = surl;
390
+ }
391
+
392
+
393
+ </script>
394
+
395
+ </td>
396
+ </tr>
397
+ </table>
398
+ </div>
399
+
400
+ <div id="Main" >
401
+
402
+ <div class="vcard">
403
+
404
+
405
+
406
+ <table width="800" cellspacing="0" id="SubNav">
407
+ <tr>
408
+ <td class="Buddy">
409
+ <a href="/photos/kusaker/"><img src="http://farm1.static.flickr.com/128/buddyicons/39255132@N00.jpg?1169585056#39255132@N00" alt="to kusaker's photostream page" width="48" height="48" class="logo" /></a>
410
+ </td>
411
+ <td class="Section">
412
+ <h1>
413
+ About <span class="nickname">kusaker</span>
414
+ <span class="RealName">/ <span class="fn n"><span class="given-name">kusaker</span></span></span> </h1>
415
+ <p class="Links">
416
+ <a href="/photos/kusaker/" rel="me">&larr; Photostream</a>
417
+
418
+
419
+ </p>
420
+ </td>
421
+
422
+ </tr>
423
+ </table>
424
+
425
+
426
+
427
+
428
+
429
+ <table id="ProfileInfo" cellspacing="0" width="100%">
430
+ <tr valign="top">
431
+ <td id="Left">
432
+
433
+ <!-- ############################### -->
434
+
435
+ <div class="About">
436
+ <p class="note"><img class="notsowide" src="http://gyazo.com/2d43ccb535344e4e9672ad415afdb446.png" /><br />
437
+ <br />
438
+ <strong>Activity: </strong><br />
439
+ <a href="http://tako3.com/http://flickr.com/photos/kusaker/">http://tako3.com/http://flickr.com/photos/kusaker/</a><br />
440
+ <br />
441
+ <strong>Hardware: </strong><br />
442
+ <a href="http://www.flickr.com/cameras/canon/powershot_sd550/">IXY Digital 700</a> Canon</p>
443
+ <p>
444
+ I'm <strong>Male</strong>.
445
+
446
+
447
+ </p>
448
+ <p>
449
+ <span class="adr"><span class="locality">Kodaira / Yokohama</span>, <span class="country-name">Japan</span></span>
450
+ </p>
451
+ </div>
452
+
453
+ <!-- ############################### -->
454
+
455
+
456
+ <h3>
457
+ kusaker's contacts
458
+ (<a href="/people/kusaker/contacts/" rel="me">80</a>)
459
+ </h3>
460
+
461
+
462
+ <div class="RecentContacts">
463
+ <p>
464
+ <a href="/photos/umelabo/" rel="contact">
465
+ <img src="http://farm4.static.flickr.com/3208/buddyicons/7754708@N08.jpg?1215610488#7754708@N08" alt="umelabo" width="48" height="48" /><br />
466
+ umelabo</a>
467
+ </p> <p>
468
+ <a href="/photos/30348100@N08/" rel="contact">
469
+ <img src="http://farm4.static.flickr.com/3236/buddyicons/30348100@N08.jpg?1220760343#30348100@N08" alt="fujishirolie" width="48" height="48" /><br />
470
+ fujishirolie</a>
471
+ </p> <p>
472
+ <a href="/photos/25386005@N02/" rel="contact">
473
+ <img src="http://l.yimg.com/g/images/buddyicon.jpg#25386005@N02" alt="nanigashi" width="48" height="48" /><br />
474
+ nanigashi</a>
475
+ </p> <p>
476
+ <a href="/photos/27211277@N04/" rel="contact">
477
+ <img src="http://farm4.static.flickr.com/3164/buddyicons/27211277@N04.jpg?1212232596#27211277@N04" alt="sioameumai" width="48" height="48" /><br />
478
+ sioameumai</a>
479
+ </p> <p>
480
+ <a href="/photos/hrykm169/" rel="contact">
481
+ <img src="http://farm3.static.flickr.com/2336/buddyicons/90939917@N00.jpg?1192787253#90939917@N00" alt="怪獣ヒロン" width="48" height="48" /><br />
482
+ 怪獣ヒロン</a>
483
+ </p> <p>
484
+ <a href="/photos/kagawa/" rel="contact">
485
+ <img src="http://farm1.static.flickr.com/34/buddyicons/19717110@N00.jpg?1206735041#19717110@N00" alt="kagawa3" width="48" height="48" /><br />
486
+ kagawa3</a>
487
+ </p> <p>
488
+ <a href="/photos/8331703@N04/" rel="contact">
489
+ <img src="http://l.yimg.com/g/images/buddyicon.jpg#8331703@N04" alt="dig-t" width="48" height="48" /><br />
490
+ dig-t</a>
491
+ </p> <p>
492
+ <a href="/photos/kuzirawhale/" rel="contact">
493
+ <img src="http://farm1.static.flickr.com/224/buddyicons/55623505@N00.jpg?1178033907#55623505@N00" alt="kuzirawhale" width="48" height="48" /><br />
494
+ kuzirawhale</a>
495
+ </p> <p>
496
+ <a href="/photos/h3f3f/" rel="contact">
497
+ <img src="http://farm1.static.flickr.com/23/buddyicons/63211198@N00.jpg?1121084879#63211198@N00" alt="h3f3f" width="48" height="48" /><br />
498
+ h3f3f</a>
499
+ </p> <p>
500
+ <a href="/photos/notohiro/" rel="contact">
501
+ <img src="http://farm4.static.flickr.com/3163/buddyicons/24112745@N07.jpg?1219129128#24112745@N07" alt="notohiro" width="48" height="48" /><br />
502
+ notohiro</a>
503
+ </p>
504
+ <p class="MoreContacts">
505
+ <a href="/people/kusaker/contacts/" rel="me">More...</a>
506
+ </p>
507
+ </div>
508
+ <br clear="all" />
509
+
510
+ <h3>kusaker's public groups</h3>
511
+
512
+ <table class="Stats">
513
+ <tr>
514
+ <td width="50%">
515
+ <ul>
516
+ <li>
517
+ <a href="/groups/rightasrain/">Right as Rain</a>
518
+ </li>
519
+ <li>
520
+ <a href="/groups/11947580@N00/">Night Images</a>
521
+ </li>
522
+ <li>
523
+ <a href="/groups/japanese-food/">Japanese Food</a>
524
+ </li>
525
+ <li>
526
+ <a href="/groups/20077958@N00/">Museum</a>
527
+ </li>
528
+ <li>
529
+ <a href="/groups/34062645@N00/">iPodCentral</a>
530
+ </li>
531
+ <li>
532
+ <a href="/groups/greenisbeautiful/">Green is Beautiful</a>
533
+ </li>
534
+ <li>
535
+ <a href="/groups/reflections/">Reflections</a>
536
+ </li>
537
+ <li>
538
+ <a href="/groups/fireworks/">Fireworks</a>
539
+ </li>
540
+ <li>
541
+ <a href="/groups/78418589@N00/">Yokohama</a>
542
+ </li>
543
+ <li>
544
+ <a href="/groups/79171409@N00/">subway</a>
545
+ </li>
546
+ <li>
547
+ <a href="/groups/jlandscape/">Japanese Landscape - 日本の風景写真 -</a>
548
+ </li>
549
+ <li>
550
+ <a href="/groups/68004195@N00/">Full Moon</a>
551
+ </li>
552
+ <li>
553
+ <a href="/groups/tokyo-sky/">TOKYO SKY</a>
554
+ </li>
555
+ <li>
556
+ <a href="/groups/tokyoimages/">Tokyo Images</a>
557
+ </li>
558
+ <li>
559
+ <a href="/groups/windowsnaps/">Just Windows!</a>
560
+ </li>
561
+ <li>
562
+ <a href="/groups/towerblock/">tower block</a>
563
+ </li>
564
+ <li>
565
+ <a href="/groups/geotagging/">GeoTagging Flickr</a>
566
+ </li>
567
+ <li>
568
+ <a href="/groups/64605954@N00/">Kanji</a>
569
+ </li>
570
+ <li>
571
+ <a href="/groups/95576359@N00/">Reflections of...</a>
572
+ </li>
573
+ <li>
574
+ <a href="/groups/processing/">Processing.org</a>
575
+ </li>
576
+ <li>
577
+ <a href="/groups/sunsetpix/">SUNSET&amp;RISEPIX</a>
578
+ </li>
579
+ <li>
580
+ <a href="/groups/wiring/">wiring / 配線</a>
581
+ </li>
582
+ <li>
583
+ <a href="/groups/hitomoji/">Hito Moji</a>
584
+ </li>
585
+ <li>
586
+ <a href="/groups/highways_ramps/">highway overpasses &amp; ramps</a>
587
+ </li>
588
+ </ul>
589
+ </td>
590
+ <td width="50%">
591
+ <ul>
592
+ <li>
593
+ <a href="/groups/50167249@N00/">I Love Tokyo Tower</a>
594
+ </li>
595
+ <li>
596
+ <a href="/groups/aperture_users/">Aperture Users</a>
597
+ </li>
598
+ <li>
599
+ <a href="/groups/train_station/">Train、Station &amp; Terminal</a>
600
+ </li>
601
+ <li>
602
+ <a href="/groups/japan_directory_nihon/">JAPAN [directory] 日本</a>
603
+ </li>
604
+ <li>
605
+ <a href="/groups/ilovetrains/">I Love Trains</a>
606
+ </li>
607
+ <li>
608
+ <a href="/groups/slow/"> Slow Shutter Speed</a>
609
+ </li>
610
+ <li>
611
+ <a href="/groups/views100/">Views: 100</a>
612
+ </li>
613
+ <li>
614
+ <a href="/groups/48652386@N00/">JAPANESE TRAIN RAILS</a>
615
+ </li>
616
+ <li>
617
+ <a href="/groups/peopleinpublictransport/">People in Public Transport</a>
618
+ </li>
619
+ <li>
620
+ <a href="/groups/ixy700/">Canon IXY 700</a>
621
+ </li>
622
+ <li>
623
+ <a href="/groups/japanese-typography/">Japanese Typography</a>
624
+ </li>
625
+ <li>
626
+ <a href="/groups/muji360/">MUJI / 無印良品</a>
627
+ </li>
628
+ <li>
629
+ <a href="/groups/1000views-of-tokyotower/">東京タワー千景 (1000 Views of Tokyo Tower)</a>
630
+ </li>
631
+ <li>
632
+ <a href="/groups/japanrail/">[JR] Japan Rail</a>
633
+ </li>
634
+ <li>
635
+ <a href="/groups/night_reflections/">Night Reflection</a>
636
+ </li>
637
+ <li>
638
+ <a href="/groups/japanesesigns/">Japanese Signs / 日本語の標識</a>
639
+ </li>
640
+ <li>
641
+ <a href="/groups/dejavuphotos/">Deja Vu (Two photos that look the same despite being different)</a>
642
+ </li>
643
+ <li>
644
+ <a href="/groups/60179787@N00/">World from a train</a>
645
+ </li>
646
+ <li>
647
+ <a href="/groups/tanuki/">狸</a>
648
+ </li>
649
+ <li>
650
+ <a href="/groups/weihnachten/">weihnachten? ist mir doch egal</a>
651
+ </li>
652
+ <li>
653
+ <a href="/groups/kanji/">Kanji 漢字</a>
654
+ </li>
655
+ <li>
656
+ <a href="/groups/49527651@N00/">the colour of the sky</a>
657
+ </li>
658
+ <li>
659
+ <a href="/groups/346041@N23/">Seibu Railways of Tokyo and Saitama (西武線), Japan.</a>
660
+ </li>
661
+ <li>
662
+ <a href="/groups/24flickr/">24 hours of Flickr</a>
663
+ </li>
664
+ </ul>
665
+ </td>
666
+ </tr>
667
+ </table>
668
+
669
+
670
+ <h3>A bit more about kusaker...</h3>
671
+ <table class="Stats">
672
+ <tr>
673
+ <td width="25%">Hometown:</td>
674
+ <td>Shinagawa</td>
675
+ </tr>
676
+ <tr>
677
+ <td width="25%">Occupation:</td>
678
+ <td class="title">University student</td>
679
+ </tr>
680
+ </table>
681
+
682
+ </td>
683
+ <td id="Right">
684
+ <h3>Testimonials </h3>
685
+
686
+
687
+
688
+ <p>kusaker doesn't have any testimonials yet.</p>
689
+
690
+
691
+
692
+ <!-- IF ISN'T IGNORED -->
693
+
694
+
695
+
696
+ <img src="http://l.yimg.com/g/images/spaceball.gif" alt="spacer image" width="200" height="1" />
697
+
698
+ </td>
699
+ </tr>
700
+ </table>
701
+
702
+ </div>
703
+
704
+
705
+ </div>
706
+
707
+ <br id="MainFooterClear" clear="all" />
708
+
709
+ <div id="FooterWrapper">
710
+ <div class="Footer">
711
+
712
+ <table class="Jump" cellspacing="0">
713
+
714
+ <tr>
715
+ <th class="To">
716
+ You
717
+ </th>
718
+ <td>
719
+ <a href="/signin/">Sign in</a> |
720
+ <a href="/signup/">Create Your Free Account</a>
721
+ </td>
722
+ </tr>
723
+ <tr>
724
+ <th class="To">
725
+ <a href="/explore/" class="Plain">Explore</a>
726
+ </th>
727
+ <td>
728
+ <a href="/places/">Places</a> |
729
+ <a href="/explore/interesting/7days/">Last 7 Days</a> |
730
+ <a href="/explore/interesting/2008/09/">This Month</a> |
731
+ <a href="/photos/tags/">Popular Tags</a> |
732
+ <a href="/commons/">The Commons</a> |
733
+ <a href="/creativecommons/">Creative Commons</a> |
734
+ <a href="/search/">Search</a>
735
+ </td>
736
+ </tr>
737
+ <tr>
738
+ <th class="To">
739
+ <a href="/help/" class="Plain">Help</a>
740
+ </th>
741
+ <td>
742
+ <a href="/guidelines.gne">Community Guidelines</a> |
743
+ <a href="/help/forum/">The Help Forum</a> |
744
+
745
+ <a href="/help/faq/">FAQ</a> |
746
+ <a href="/sitemap.gne">Sitemap</a> |
747
+ <a href="/help/contact/">Help by Email</a>
748
+ </td>
749
+ </tr>
750
+ </table>
751
+ <div class="Delicious">
752
+ <a href="http://del.icio.us/post"
753
+ onclick="window.open('http://delicious.com/save?partner=flickr&amp;v=5&amp;noui&amp;jump=close&amp;url='+encodeURIComponent(location.href)+'&amp;title='+encodeURIComponent(document.title), 'delicious','toolbar=no,width=550,height=550'); return false;"><img src="http://l.yimg.com/g/images/add_to_delicious.gif.v1" width="10" height="10" /> &nbsp;Save to Delicious</a>
754
+ </div>
755
+
756
+ <p class="About">
757
+
758
+ <span class="yahoo_logo">
759
+ <a href="http://www.yahoo.com"><img src="http://l.yimg.com/g/images/logo_yahoo_company.gif.v11691.14" width="99" height="11" alt="Flickr, a Yahoo! Company" /></a>
760
+ </span>
761
+
762
+ <a href="http://blog.flickr.net/">Flickr Blog</a> |
763
+ <a href="/about/">About Flickr</a> |
764
+ <a href="/terms.gne" onClick="window.open('/terms.gne','TOC','status=yes,scrollbars=yes,resizable=yes,width=600,height=480'); return false">Terms of Use</a> |
765
+ <a href="/privacy_policy.gne">Your Privacy</a> |
766
+ <a href="http://docs.yahoo.com/info/copyright/copyright.html" target="_blank">Copyright/IP Policy</a> | <a id="ft-report-abuse" href="/report_abuse.gne">Report Abuse</a>
767
+
768
+ <p class="LanguageSelector">
769
+
770
+
771
+ <span>
772
+ <a href="/change_language.gne?lang=zh-hk&magic_cookie=89d44653b4f795eb9de5f5e64856b86e" class="image_link" id="lang_zh-hk"><img src="http://l.yimg.com/g/images/lang_zh-tw_11px_default.png" width="45" height="13" id="langselect_zh-hk" alt="繁體中文"></a> <b>|</b>
773
+ <a href="/change_language.gne?lang=de-de&magic_cookie=89d44653b4f795eb9de5f5e64856b86e" >Deutsch</a>
774
+ <b>|</b>
775
+ <a href="/change_language.gne?lang=en-us&magic_cookie=89d44653b4f795eb9de5f5e64856b86e" class="selected">English</a>
776
+ <b>|</b>
777
+ <a href="/change_language.gne?lang=es-us&magic_cookie=89d44653b4f795eb9de5f5e64856b86e" >Espa&#241;ol</a>
778
+ <b>|</b>
779
+ <a href="/change_language.gne?lang=fr-fr&magic_cookie=89d44653b4f795eb9de5f5e64856b86e" >Fran&#231;ais</a>
780
+ <b>|</b>
781
+ <a href="/change_language.gne?lang=ko-kr&magic_cookie=89d44653b4f795eb9de5f5e64856b86e" class="image_link" id="lang_ko-kr"><img src="http://l.yimg.com/g/images/lang_ko-kr_11px_default.png" width="23" height="13" id="langselect_ko-kr" alt="한글"></a> <b>|</b>
782
+ <a href="/change_language.gne?lang=it-it&magic_cookie=89d44653b4f795eb9de5f5e64856b86e" >Italiano</a>
783
+ <b>|</b>
784
+ <a href="/change_language.gne?lang=pt-br&magic_cookie=89d44653b4f795eb9de5f5e64856b86e" >Portugu&#234;s</a>
785
+ </span>
786
+
787
+ <script type="text/javascript">if (_ge('langselect_zh-hk')) F.decorate(_ge('langselect_zh-hk'), F._link_button).button_go_go_go();</script>
788
+ <script type="text/javascript">if (_ge('langselect_ko-kr')) F.decorate(_ge('langselect_ko-kr'), F._link_button).button_go_go_go();</script>
789
+ Copyright &copy; 2008 Yahoo! Inc. All rights reserved.
790
+ </p> </p>
791
+
792
+
793
+ <br />
794
+
795
+
796
+ </div>
797
+ </div>
798
+ <div style="background: #000; color: #0f0; text-align: left; font-family: &quot;Courier New&quot;, Courier, monospace;"></div>
799
+
800
+
801
+
802
+
803
+
804
+ <script type="text/javascript">
805
+ try{
806
+ if (window.personmenu_init) personmenu_init(0);
807
+ } catch(er) {}
808
+
809
+ </script>
810
+
811
+
812
+
813
+
814
+ <!-- page generated by www21 (in mud) at 16:47:40 09/26/08 in 418ms -->
815
+
816
+
817
+ <script src="http://us.adserver.yahoo.com/a?f=792600091&p=flickr&l=FOOT9&c=r"></script>
818
+
819
+
820
+
821
+
822
+
823
+
824
+
825
+
826
+
827
+
828
+ </body>
829
+ </html>