annotate chrome/content/tinyurl.js @ 0:c14d52a3b2fe

initial import
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Mon, 11 Aug 2008 20:34:21 +0900
parents
children bebb38edfc61
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
1
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
2 var oLongUrlField = null;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
3 var oTabBox = null;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
4 var oSavedTree = null;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
5 var oSavedTreeItems = null;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
6 var tinyurl_loaded = false;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
7
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
8 function tinyurl_overlayInit(){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
9 try{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
10 var oContext = document.getElementById("contentAreaContextMenu");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
11 oContext.setAttribute("onpopupshowing", "tinyurl_contextShowing(event); "+ oContext.getAttribute("onpopupshowing"));
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
12 } catch(err) { alert(err); }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
13
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
14 // Update all links with preview title attribute
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
15 if(gBrowser && !tinyurl_loaded){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
16
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
17 gBrowser.addEventListener("load", function(){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
18 var tiny = new TinyUrl();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
19 var doc = gBrowser.selectedBrowser.contentDocument;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
20 var anchors = doc.getElementsByTagName("a");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
21 for(var i = 0; i < anchors.length; i++){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
22 if(anchors[i].href.indexOf("http://tinyurl.com/") == 0){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
23 tiny.addPreview(anchors[i]);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
24 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
25 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
26 }, true);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
27
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
28 tinyurl_loaded = true;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
29 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
30 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
31
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
32 /**
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
33 * Load TinyUrl dialog
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
34 */
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
35 function tinyurl_load(){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
36 oLongUrlField = document.getElementById("longurl-field");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
37 oTabBox = document.getElementById("tinyurl-tabs");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
38 oSavedTree = document.getElementById("saved-tree");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
39 oSavedTreeItems = document.getElementById("saved-items");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
40
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
41 // Cancel button
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
42 document.getElementById('tinyurlDialog').getButton('cancel').setAttribute("label", "Close");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
43
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
44 // Is RDF Present
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
45 tinyurl_saved_rdfCreate();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
46
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
47 // Load Saved Data
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
48 tinyurl_saved_read();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
49
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
50 // Preload Field
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
51 if(opener.gBrowser && opener.gBrowser.currentURI){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
52 oLongUrlField.value = opener.gBrowser.currentURI.spec;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
53 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
54
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
55 // Goto Save Tab
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
56 if(window.arguments.length > 0 && window.arguments[0] == "saved"){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
57 oTabBox.selectedTab = document.getElementById("tinyurl-saved-tab");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
58 oTabBox.selectedPanel = document.getElementById("tinyurl-saved-tabpanel");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
59 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
60 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
61
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
62 /**
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
63 * Create TinyUrl from current page
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
64 */
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
65 function tinyurl_createFromCurrent(){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
66 var tiny = new TinyUrl(gBrowser.currentURI.spec, window._content.document.title);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
67 window.openDialog('chrome://tinyurl/content/create.xul','TinyUrlCreate','chrome, centerscreen, resizable', tiny);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
68 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
69
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
70 /**
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
71 * Creat new Tiny Url from dialog
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
72 */
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
73 function tinyurl_createNew(){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
74 try{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
75
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
76 // If not in main tab
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
77 if(oTabBox.selectedTab.id != "tinyurl-create-tab"){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
78 return;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
79 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
80
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
81 // Validate
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
82 if(oLongUrlField == null || oLongUrlField.value == ""){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
83 alert("You have not entered a long url");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
84 return;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
85 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
86
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
87 document.getElementById("tinyurl-field").value = "Loading...";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
88
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
89 // Title
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
90 var sTitle = "";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
91 if(opener && oLongUrlField.value == opener.gBrowser.currentURI.spec){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
92 sTitle = opener.window._content.document.title;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
93 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
94
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
95 // Get TinyUrl
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
96 var tiny = new TinyUrl(oLongUrlField.value, sTitle);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
97
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
98 // Output
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
99 var loaded = {
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
100 done : function(oTiny){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
101 if(oTiny.tiny != null){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
102 document.getElementById("tinyurl-field").value = oTiny.tiny;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
103 document.getElementById("copy-button").disabled = false;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
104 document.getElementById("save-button").setAttribute("oncommand", "tinyurl_saved_add('"+ oTiny.tiny +"', '"+ oTiny.original +"');");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
105 document.getElementById("save-button").disabled = false;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
106 document.getElementById('tinyurlDialogMain').style.cursor = "default";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
107 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
108 },
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
109
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
110 error : function(oTiny){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
111 document.getElementById("tinyurl-field").value = "";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
112 alert("An error occurred.\nIs your internet connection available?");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
113 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
114 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
115
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
116 tiny.shrink(loaded);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
117
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
118 }catch(err){ alert("Error 120\nAn unknown error occurred\n"+ err); }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
119 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
120
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
121 /**
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
122 * Create TinyUrl from anchor on page
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
123 */
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
124 function tinyurl_createFromAnchor(){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
125 if(gContextMenu != null && (gContextMenu.getLinkURL || gContextMenu.linkURL)){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
126 var url = (gContextMenu.getLinkURL) ? gContextMenu.getLinkURL() : gContextMenu.linkURL
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
127 var tiny = new TinyUrl(url, null);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
128
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
129 window.openDialog('chrome://tinyurl/content/create.xul','TinyUrlCreate','chrome, centerscreen, resizable', tiny);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
130 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
131 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
132
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
133 //Send text to tinyurl_copyText()
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
134 function tinyurl_copy(){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
135 try{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
136 var oField = document.getElementById("tinyurl-field");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
137
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
138 if(oField == null || oField.value == ""){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
139 return;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
140 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
141
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
142 //Copy
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
143 tinyurl_copyText(oField.value);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
144
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
145 }catch(err){ alert("Error 140\nCouldn't copy to clipboard"); }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
146 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
147
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
148 // Comand from key stroke
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
149 function tinyurl_copy_command(){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
150 if(oTabBox.selectedTab.id == "tinyurl-create-tab"){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
151 tinyurl_copy();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
152 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
153 else if(oTabBox.selectedTab.id == "tinyurl-saved-tab"){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
154 tinyurl_saved_copy();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
155 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
156 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
157
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
158 //Copies str to clipboard
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
159 function tinyurl_copyText(str){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
160 try{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
161 //Copy
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
162 var oClipboard = Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
163 oClipboard.copyString(str);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
164
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
165 }catch(err){ throw err }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
166 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
167
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
168 // Context Showing
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
169 function tinyurl_contextShowing(event){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
170 try{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
171 if(document.popupNode.nodeName.toUpperCase() == "A"){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
172 document.getElementById("tinyurl-context-link-menu").setAttribute("collapsed", false);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
173 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
174 else {
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
175 document.getElementById("tinyurl-context-link-menu").setAttribute("collapsed", true);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
176 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
177 } catch(e) {}
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
178 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
179
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
180 //Opens http://tinyurl.com
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
181 function tinyurl_gotoTinyUrl(){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
182 opener.focus();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
183 self.focus();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
184
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
185 if(opener.gBrowser.addTab)
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
186 opener.gBrowser.selectedTab = opener.gBrowser.addTab("http://tinyurl.com");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
187 else
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
188 window.open("http://tinyurl.com");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
189 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
190
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
191
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
192
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
193 /**
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
194 * @constructor
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
195 */
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
196 function TinyUrl(url, title){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
197
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
198 /**
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
199 * Original url
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
200 * @type string
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
201 */
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
202 this.original = url;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
203
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
204 /**
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
205 * Shunken url
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
206 * @type string
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
207 */
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
208 this.tiny = null;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
209
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
210 /**
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
211 * Title of the page from the original url.
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
212 * Used for when the user selects to save the tiny url.
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
213 * @type string
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
214 */
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
215 this.title = title;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
216
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
217 /**
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
218 * @type XMLHttpRequest
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
219 */
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
220 this.request = null;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
221
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
222
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
223 /**
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
224 * Make the long url tiny
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
225 */
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
226 this.shrink = function(callback){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
227
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
228 // No need to shrink
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
229 if(this.tiny != null){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
230 return;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
231 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
232
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
233 // Abort current request
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
234 if(this.request != null){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
235 this.request.abort();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
236 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
237
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
238 // Encode URL (can't use encodeURIComponent, because TinyUrl.com will choke)
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
239 var url = this.original;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
240 url = url.replace(/\+/g, "%2B");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
241 url = url.replace(/\?/g, '%3F');
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
242 url = url.replace(/&/g, '%26');
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
243 url = url.replace(/=/g, '%3D');
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
244
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
245 // Setup Request
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
246 this.request = new XMLHttpRequest();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
247 this.request.open("GET", "http://tinyurl.com/api-create.php?url="+ url, true);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
248 this.request.setRequestHeader("User-Agent", navigator.userAgent);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
249 this.request.setRequestHeader("Accept", "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
250 this.request.setRequestHeader("Accept-Language", navigator.language);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
251 this.request.setRequestHeader("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
252 this.request.setRequestHeader("Referer", "http://tinyurl.com/");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
253 this.request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
254
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
255 var obj = this;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
256
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
257 // Handle request
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
258 this.request.onload = {
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
259 handleEvent : function(e){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
260
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
261 // If already aborted
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
262 if(obj.request == null){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
263 return;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
264 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
265
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
266 //Parse Response
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
267 obj.tiny = null;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
268 var url = obj.request.responseText;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
269 if(url.length < 200){ // must have returned more than the URL if more than 200
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
270 obj.tiny = url;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
271 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
272
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
273 // Notify callback function
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
274 if(obj.tiny == null){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
275 callback.error(obj);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
276 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
277 else{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
278 callback.done(obj);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
279 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
280 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
281 };
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
282
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
283 // Handle Error
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
284 this.request.onerror = {
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
285 handleEvent : function(e){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
286 callback.error(obj);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
287 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
288 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
289
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
290 // Start Request
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
291 this.request.send("");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
292 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
293
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
294 /**
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
295 * Abort TinyUrl shrink request
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
296 */
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
297 this.abort = function(){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
298 try{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
299 this.request.abort();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
300 }catch(e){ }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
301 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
302
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
303 /**
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
304 * Add a the full URL to an link with a TinyURL
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
305 * @param {Anchor} anchor The anchor tag with a TinyURL
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
306 */
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
307 this.addPreview = function(anchor){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
308
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
309 // Find where it redirects to
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
310 try{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
311
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
312 // Setup request objects
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
313 var io = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
314 var uri = Components.classes["@mozilla.org/network/standard-url;1"].createInstance(Components.interfaces.nsIURI);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
315 uri.spec = anchor.href;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
316 var request = io.newChannelFromURI(uri).QueryInterface(Components.interfaces.nsIHttpChannel);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
317
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
318 request.redirectionLimit = 0;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
319 request.requestMethod = "HEAD";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
320
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
321 // Start request and find redirect location
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
322 request.asyncOpen({
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
323 onStartRequest : function(request, context){ },
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
324 onStopRequest : function(request, context, statusCode){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
325 var location = request.getResponseHeader("Location");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
326 anchor.setAttribute("title", location);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
327 },
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
328 onDataAvailable : function(request, context, inputStream, offset, count){}
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
329 }, null);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
330
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
331 } catch(e){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
332 e = e;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
333 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
334
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
335
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
336 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
337 }