ga tracking, footers and footer link styles
[jalview.git] / examples / javascriptLaunch.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
2 <!--
3  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)
4  * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle
5  * 
6  * This file is part of Jalview.
7  * 
8  * Jalview is free software: you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License 
10  * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
11  *  
12  * Jalview is distributed in the hope that it will be useful, but 
13  * WITHOUT ANY WARRANTY; without even the implied warranty 
14  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
15  * PURPOSE.  See the GNU General Public License for more details.
16  * 
17  * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
18 -->
19 <html xmlns="http://www.w3.org/1999/xhtml">
20 <head>
21   <head><title>Opening JalviewLite from Javascript</title>
22   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
23   
24  <link href="css/reset.css" rel="stylesheet" type="text/css" />
25  <link href="css/style.css" rel="stylesheet" type="text/css" />
26  
27   <!--[if IE 6]>
28  <link rel="stylesheet" type="text/css" href="css/ie6.css" />
29 <![endif]-->
30
31 <!--[if IE 7]>
32  <link rel="stylesheet" type="text/css" href="css/ie7.css" />
33 <![endif]-->
34
35 <!-- dd menu -->
36 <script type="text/javascript">
37 <!--
38 var timeout         = 500;
39 var closetimer  = 0;
40 var ddmenuitem      = 0;
41
42 // open hidden layer
43 function mopen(id)
44
45  // cancel close timer
46  mcancelclosetime();
47
48  // close old layer
49  if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
50
51  // get new layer and show it
52  ddmenuitem = document.getElementById(id);
53  ddmenuitem.style.visibility = 'visible';
54
55 }
56 // close showed layer
57 function mclose()
58 {
59  if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
60 }
61
62 // go close timer
63 function mclosetime()
64 {
65  closetimer = window.setTimeout(mclose, timeout);
66 }
67
68 // cancel close timer
69 function mcancelclosetime()
70 {
71  if(closetimer)
72  {
73   window.clearTimeout(closetimer);
74   closetimer = null;
75  }
76 }
77
78 // close layer when click-out
79 document.onclick = mclose; 
80 // -->
81 </script>
82
83 </head>
84
85
86 <body>
87
88
89 <div id="header">
90 <div id="logo"><a href="/" title="Home"></a></div>
91 <ul id="buttons">
92 <li id="applet"><a href="applets.html" title="applet"></a></li>
93 <li id="desktop"><a href="/webstart/jalview.jnlp" title="desktop"></a></li>
94 </ul>
95 </div>
96
97
98 <div id ="nav">
99 <div id="navInner">
100
101 <ul id="sddm">
102  <li><a href="#">Home</a></li>
103  <li><a href="#" onmouseover="mopen('m1')" onmouseout="mclosetime()">About</a>
104   <div id="m1" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
105   <a href="#">Documentation</a>
106   <a href="#">Publications</a>
107   <a href="#">Credits</a>
108   <a href="#">Screenshots</a>
109   </div>
110  </li>
111  <li><a href="#">FAQ</a></li>
112  <li><a href="#" onmouseover="mopen('m3')" onmouseout="mclosetime()" class="community">Community</a>
113   <div id="m3" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
114   <a href="#">News Mailing List</a>
115   <a href="#">Discussion Mailing List</a>
116   <a href="#">Links</a>
117   <a href="#">Community News</a>
118   </div>
119  </li>
120  <li><a href="#" onmouseover="mopen('m4')" onmouseout="mclosetime()" class="development">Development</a>
121   <div id="m4" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
122   <a href="#">Release History</a>
123   <a href="#">Jalview Bug Tracker</a>
124   <a href="#">Jalview Git Web</a>
125   <a href="#">Development News</a>
126   </div>
127  </li>
128  <li><a href="#" onmouseover="mopen('m5')" onmouseout="mclosetime()" class="training">Training</a>
129   <div id="m5" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
130   <a href="#">Training Courses</a>
131   <a href="#">Training News</a>
132   </div>
133  </li>
134  <li><a href="#" class="download-right">Download</a></li>
135 </ul>
136 <div style="clear:both"></div>
137 </div>
138
139 </div>
140
141
142 <div id="pageWrap">
143
144 <div id="sideNav">
145 <ul>
146 <li><a href="applets.html">JalviewLite Examples</a></li>
147 <li><a href="appletParameters.html">Applet Parameters</a></li>
148 <li><a href="jalviewLiteJs.html">Javascript API</a><ul><li class="jvlite-nav-small"><a href="javascriptLaunch.html">JalviewLite Button</a></li></ul></li>
149 <li><a href="formComplete.html">in-page API demo</a></li>
150 <li><a href="linkedApplets_ng.html">Two JalviewLites demo</a></li>
151 <li><a href="embeddedWJmol.html">Jalview and Jmol demo</a></li>
152 </ul>
153 </div>
154
155 <div id="content" class="content"> 
156   <SCRIPT type="text/javascript">
157   /* <![CDATA[ // */
158 // From http://snipplr.com/view.php?codeview&id=1272
159 //----------------------------------------
160 //Wrapper function for constructing a request object.
161 //      Parameters:
162 //              reqType: The HTTP request type, such as GET or POST.
163 //              url: The URL of the server program.
164 //              asynch: Whether to send the request asynchronously or not.
165 //----------------------------------------
166
167 function httpRequest(reqType,url,asynch,respHandle) {
168
169         // Mozilla-based browsers
170         if (window.XMLHttpRequest) {
171                 request = new XMLHttpRequest();
172         } else if (window.ActiveXObject) {
173                 request = new ActiveXObject("Msxml2.XMLHTTP");
174                 if (!request) {
175                         request = new ActiveXObject("Microsoft.XMLHTTP");
176                 }
177         }
178         
179         // Request could still be null if neither ActiveXObject
180         //   initialization succeeded
181         if (request) {
182                 // If the reqType param is POST, then the fifth arg is the POSTed data
183                 if (reqType.toLowerCase() != "post") {
184                         initReq(reqType, url, asynch, respHandle);
185                 } else {
186                         // The POSTed data
187                         var args = arguments[5];
188                         if (args != null && args.length > 0) {
189                                 initReq(reqType, url, asynch, respHandle, args);
190                         }
191                 }
192         } else {
193                 alert("Your browser does not permit the use of all " +
194                         "of this application's features!");
195         }
196
197 }
198
199 //----------------------------------------
200 //Initialize a request object that is already constructed
201 //----------------------------------------
202
203 function initReq(reqType, url, bool, respHandle) {
204         try {
205                 // Specify the function that will handle the HTTP response
206                 request.onreadystatechange = respHandle;
207                 request.open(reqType, url, bool);
208                 // If the reqType param is POST, then the
209                 //   fifth argument to the function is the POSTed data
210                 if (reqType.toLowerCase() == "post") {
211                         // Set the Content-Type header for a POST request
212                         request.setRequestHeader("Content-Type", "application/x-ww-form-urlencoded; charset=UTF-8");
213                         request.send(arguments[4]);
214                 } else {
215                         request.send(null);
216                 }
217         } catch (errv) {
218                 alert("The application cannot contact the server at the moment. " +
219                         "Please try again in a few seconds.\n" +
220                         "Error detail: " + errv.message);
221         }
222 }
223
224 // jalview launching with fetched data
225
226 function startJalview(aligURL,title,alwvar) {
227                 var aligment = "";
228                 httpRequest("get",aligURL,true,function() {
229                                 if (request.readyState == 4) { 
230                                         alignment = request.responseText; 
231                                         eval("var "+alwvar+" = document.JalviewLite.loadAlignment(alignment,title)");
232                                 }
233                 })
234                 
235 }
236
237 /* ]]> */
238 </SCRIPT>
239   <form name="Form1">
240 <applet name="JalviewLite"  code="jalview.bin.JalviewLite"
241 archive="jalviewApplet.jar" width="0" height="0">
242 <param name="debug" value="true"/>
243 <param name="showbutton" value="false"/>
244 </applet>
245
246
247   <input type="button" name="Button1" value="Start"
248 onClick="startJalview('plantfdx.fa','Button1.alignment','alwvar')"/>
249   </form>
250   
251
252 </div>
253 </div>
254 <div id ="footer">
255 <div id="innerFooter">
256 <div id="copyright"><p>Published under <a href="http://creativecommons.org/licenses/by-sa/3.0/">CC-SA 3.0</a></p></div>
257 <div id="cite">
258 <p>
259 If you use Jalview in your work, please cite this publication:
260 </p>
261 <br />
262 <p>
263 Waterhouse, A.M., Procter, J.B., Martin, D.M.A, Clamp, M. and Barton, G. J. (2009)
264 "Jalview Version 2 - a multiple sequence alignment editor and analysis workbench"
265 Bioinformatics 25 (9) 1189-1191 <a href="http://dx.doi.org/10.1093/bioinformatics/btp033">doi: 10.1093/bioinformatics/btp033</a>
266 </p>
267 </div>
268 </div>
269 </div>
270
271 <script type="text/javascript">
272     var gaJsHost = (("https:" == document.location.protocol) ?
273  "https://ssl." : "http://www.");
274     document.write(unescape("%3Cscript src=\'" + gaJsHost +
275  "google-analytics.com/ga.js\' type=\'text/javascript\'%3E%3C/script%3E"));
276 </script>
277 <script type="text/javascript">
278 try{
279     var pageTracker = _gat._getTracker("'UA-9060947-1'");
280     pageTracker._trackPageview();
281 } catch(err) {}
282 </script>
283 </body>
284 </head>
285 </html>