Fix #6913 - add more documentation to code
[roojs1] / docs / src / Roo_lib_Ajax.js.html
1 <html><head><title>Roo/lib/Ajax.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
2
3 <span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
4     </span><span class="jsdoc-comment">/**
5      * @class Roo.lib.Ajax
6      *
7      * provide a simple Ajax request utility functions
8      * 
9      * Portions of this file are based on pieces of Yahoo User Interface Library
10     * Copyright (c) 2007, Yahoo! Inc. All rights reserved.
11     * YUI licensed under the BSD License:
12     * http://developer.yahoo.net/yui/license.txt
13     * &lt;script type=&quot;text/javascript&quot;&gt;
14     *
15      *
16      */
17     </span><span class="jsdoc-var">Roo.lib.Ajax </span><span class="jsdoc-syntax">= {
18         </span><span class="jsdoc-comment">/**
19          * @static 
20          */
21         </span><span class="jsdoc-var">request </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">method</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">uri</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cb</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">) {
22             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">){
23                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">hs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">options.headers</span><span class="jsdoc-syntax">;
24                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hs</span><span class="jsdoc-syntax">){
25                     </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">h </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">hs</span><span class="jsdoc-syntax">){
26                         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hs.hasOwnProperty</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">)){
27                             </span><span class="jsdoc-var">this.initHeader</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">hs</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">h</span><span class="jsdoc-syntax">], </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
28                         }
29                     }
30                 }
31                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">options.xmlData</span><span class="jsdoc-syntax">){
32                     </span><span class="jsdoc-var">this.initHeader</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'Content-Type'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'text/xml'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
33                     </span><span class="jsdoc-var">method </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'POST'</span><span class="jsdoc-syntax">;
34                     </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">options.xmlData</span><span class="jsdoc-syntax">;
35                 }
36             }
37
38             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.asyncRequest</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">method</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">uri</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cb</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">);
39         },
40         </span><span class="jsdoc-comment">/**
41          * serialize a form
42          *
43          * @static
44          * @param {DomForm} form element
45          * @return {String} urlencode form output.
46          */
47         </span><span class="jsdoc-var">serializeForm </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">form</span><span class="jsdoc-syntax">) {
48             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">form </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'string'</span><span class="jsdoc-syntax">) {
49                 </span><span class="jsdoc-var">form </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">document.getElementById</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">form</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-var">document.forms</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">form</span><span class="jsdoc-syntax">]);
50             }
51
52             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">disabled</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">hasSubmit </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
53             </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">form.elements.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
54                 </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">form.elements</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
55                 </span><span class="jsdoc-var">disabled </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">form.elements</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.disabled</span><span class="jsdoc-syntax">;
56                 </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">form.elements</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.name</span><span class="jsdoc-syntax">;
57                 </span><span class="jsdoc-var">val </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">form.elements</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.value</span><span class="jsdoc-syntax">;
58
59                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">disabled </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">){
60                     </span><span class="jsdoc-keyword">switch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.type</span><span class="jsdoc-syntax">)
61                             {
62                         </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'select-one'</span><span class="jsdoc-syntax">:
63                         </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'select-multiple'</span><span class="jsdoc-syntax">:
64                             </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">el.options.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">++) {
65                                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.options</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.selected</span><span class="jsdoc-syntax">) {
66                                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isIE</span><span class="jsdoc-syntax">) {
67                                         </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">Roo.encodeURIComponent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'=' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">Roo.encodeURIComponent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.options</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.attributes</span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">'value'</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.specified </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">el.options</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.value </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">el.options</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.text</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'&amp;'</span><span class="jsdoc-syntax">;
68                                     }
69                                     </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
70                                         </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">Roo.encodeURIComponent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'=' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">Roo.encodeURIComponent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.options</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.hasAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'value'</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-var">el.options</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.value </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">el.options</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.text</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'&amp;'</span><span class="jsdoc-syntax">;
71                                     }
72                                 }
73                             }
74                             </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
75                         </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'radio'</span><span class="jsdoc-syntax">:
76                         </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'checkbox'</span><span class="jsdoc-syntax">:
77                             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.checked</span><span class="jsdoc-syntax">) {
78                                 </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">Roo.encodeURIComponent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'=' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">Roo.encodeURIComponent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'&amp;'</span><span class="jsdoc-syntax">;
79                             }
80                             </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
81                         </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'file'</span><span class="jsdoc-syntax">:
82
83                         </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">undefined</span><span class="jsdoc-syntax">:
84
85                         </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'reset'</span><span class="jsdoc-syntax">:
86
87                         </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'button'</span><span class="jsdoc-syntax">:
88
89                             </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
90                         </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'submit'</span><span class="jsdoc-syntax">:
91                             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">hasSubmit </span><span class="jsdoc-syntax">== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">) {
92                                 </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">Roo.encodeURIComponent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'=' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">Roo.encodeURIComponent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'&amp;'</span><span class="jsdoc-syntax">;
93                                 </span><span class="jsdoc-var">hasSubmit </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
94                             }
95                             </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
96                         </span><span class="jsdoc-keyword">default</span><span class="jsdoc-syntax">:
97                             </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">Roo.encodeURIComponent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'=' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">Roo.encodeURIComponent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'&amp;'</span><span class="jsdoc-syntax">;
98                             </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
99                     }
100                 }
101             }
102             </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">data.substr</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">data.length </span><span class="jsdoc-syntax">- 1);
103             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">;
104         },
105
106         </span><span class="jsdoc-var">headers</span><span class="jsdoc-syntax">:{},
107
108         </span><span class="jsdoc-var">hasHeaders</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
109
110         </span><span class="jsdoc-var">useDefaultHeader</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
111
112         </span><span class="jsdoc-var">defaultPostHeader</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'application/x-www-form-urlencoded'</span><span class="jsdoc-syntax">,
113
114         </span><span class="jsdoc-var">useDefaultXhrHeader</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
115
116         </span><span class="jsdoc-var">defaultXhrHeader</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'XMLHttpRequest'</span><span class="jsdoc-syntax">,
117
118         </span><span class="jsdoc-var">hasDefaultHeaders</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
119
120         </span><span class="jsdoc-var">defaultHeaders</span><span class="jsdoc-syntax">:{},
121
122         </span><span class="jsdoc-var">poll</span><span class="jsdoc-syntax">:{},
123
124         </span><span class="jsdoc-var">timeout</span><span class="jsdoc-syntax">:{},
125
126         </span><span class="jsdoc-var">pollInterval</span><span class="jsdoc-syntax">:50,
127
128         </span><span class="jsdoc-var">transactionId</span><span class="jsdoc-syntax">:0,
129
130         </span><span class="jsdoc-var">setProgId</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">)
131         {
132             </span><span class="jsdoc-var">this.activeX.unshift</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">);
133         },
134
135         </span><span class="jsdoc-var">setDefaultPostHeader</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">)
136         {
137             </span><span class="jsdoc-var">this.useDefaultHeader </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">;
138         },
139
140         </span><span class="jsdoc-var">setDefaultXhrHeader</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">)
141         {
142             </span><span class="jsdoc-var">this.useDefaultXhrHeader </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">;
143         },
144
145         </span><span class="jsdoc-var">setPollingInterval</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">)
146         {
147             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'number' </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">isFinite</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">)) {
148                 </span><span class="jsdoc-var">this.pollInterval </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">;
149             }
150         },
151
152         </span><span class="jsdoc-var">createXhrObject</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">transactionId</span><span class="jsdoc-syntax">)
153         {
154             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">http</span><span class="jsdoc-syntax">;
155             </span><span class="jsdoc-keyword">try
156             </span><span class="jsdoc-syntax">{
157
158                 </span><span class="jsdoc-var">http </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">XMLHttpRequest</span><span class="jsdoc-syntax">();
159
160                 </span><span class="jsdoc-var">obj </span><span class="jsdoc-syntax">= { </span><span class="jsdoc-var">conn</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">http</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">tId</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">transactionId </span><span class="jsdoc-syntax">};
161             }
162             </span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
163             {
164                 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">this.activeX.length</span><span class="jsdoc-syntax">; ++</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
165                     </span><span class="jsdoc-keyword">try
166                     </span><span class="jsdoc-syntax">{
167
168                         </span><span class="jsdoc-var">http </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">ActiveXObject</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.activeX</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
169
170                         </span><span class="jsdoc-var">obj </span><span class="jsdoc-syntax">= { </span><span class="jsdoc-var">conn</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">http</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">tId</span><span class="jsdoc-syntax">:</span><span class="jsdoc-var">transactionId </span><span class="jsdoc-syntax">};
171                         </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
172                     }
173                     </span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
174                     }
175                 }
176             }
177             </span><span class="jsdoc-keyword">finally
178             </span><span class="jsdoc-syntax">{
179                 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">;
180             }
181         },
182
183         </span><span class="jsdoc-var">getConnectionObject</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
184         {
185             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">;
186             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.transactionId</span><span class="jsdoc-syntax">;
187
188             </span><span class="jsdoc-keyword">try
189             </span><span class="jsdoc-syntax">{
190                 </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.createXhrObject</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tId</span><span class="jsdoc-syntax">);
191                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">) {
192                     </span><span class="jsdoc-var">this.transactionId</span><span class="jsdoc-syntax">++;
193                 }
194             }
195             </span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
196             }
197             </span><span class="jsdoc-keyword">finally
198             </span><span class="jsdoc-syntax">{
199                 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">;
200             }
201         },
202
203         </span><span class="jsdoc-var">asyncRequest</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">method</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">uri</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">postData</span><span class="jsdoc-syntax">)
204         {
205             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getConnectionObject</span><span class="jsdoc-syntax">();
206
207             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">) {
208                 </span><span class="jsdoc-keyword">return null</span><span class="jsdoc-syntax">;
209             }
210             </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
211                 </span><span class="jsdoc-var">o.conn.open</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">method</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">uri</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
212
213                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.useDefaultXhrHeader</span><span class="jsdoc-syntax">) {
214                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.defaultHeaders</span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">'X-Requested-With'</span><span class="jsdoc-syntax">]) {
215                         </span><span class="jsdoc-var">this.initHeader</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'X-Requested-With'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.defaultXhrHeader</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
216                     }
217                 }
218
219                 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">postData </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.useDefaultHeader</span><span class="jsdoc-syntax">){
220                     </span><span class="jsdoc-var">this.initHeader</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'Content-Type'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.defaultPostHeader</span><span class="jsdoc-syntax">);
221                 }
222
223                  </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hasDefaultHeaders </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">this.hasHeaders</span><span class="jsdoc-syntax">) {
224                     </span><span class="jsdoc-var">this.setHeader</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">);
225                 }
226
227                 </span><span class="jsdoc-var">this.handleReadyState</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">);
228                 </span><span class="jsdoc-var">o.conn.send</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">postData </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">);
229
230                 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">;
231             }
232         },
233
234         </span><span class="jsdoc-var">handleReadyState</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">)
235         {
236             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">oConn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
237
238             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">callback.timeout</span><span class="jsdoc-syntax">) {
239
240                 </span><span class="jsdoc-var">this.timeout</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">o.tId</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">window.setTimeout</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
241                     </span><span class="jsdoc-var">oConn.abort</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
242                 }, </span><span class="jsdoc-var">callback.timeout</span><span class="jsdoc-syntax">);
243             }
244
245             </span><span class="jsdoc-var">this.poll</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">o.tId</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">window.setInterval</span><span class="jsdoc-syntax">(
246                     </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
247                         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.conn </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">o.conn.readyState </span><span class="jsdoc-syntax">== 4) {
248                             </span><span class="jsdoc-var">window.clearInterval</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">oConn.poll</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">o.tId</span><span class="jsdoc-syntax">]);
249                             </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">oConn.poll</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">o.tId</span><span class="jsdoc-syntax">];
250
251                             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">callback.timeout</span><span class="jsdoc-syntax">) {
252                                 </span><span class="jsdoc-var">window.clearTimeout</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">oConn.timeout</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">o.tId</span><span class="jsdoc-syntax">]);
253                                 </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">oConn.timeout</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">o.tId</span><span class="jsdoc-syntax">];
254                             }
255
256                             </span><span class="jsdoc-var">oConn.handleTransactionResponse</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">);
257                         }
258                     }
259                     , </span><span class="jsdoc-var">this.pollInterval</span><span class="jsdoc-syntax">);
260         },
261
262         </span><span class="jsdoc-var">handleTransactionResponse</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">isAbort</span><span class="jsdoc-syntax">)
263         {
264
265             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">) {
266                 </span><span class="jsdoc-var">this.releaseObject</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">);
267                 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
268             }
269
270             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">httpStatus</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">responseObject</span><span class="jsdoc-syntax">;
271
272             </span><span class="jsdoc-keyword">try
273             </span><span class="jsdoc-syntax">{
274                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.conn.status </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-var">undefined </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">o.conn.status </span><span class="jsdoc-syntax">!= 0) {
275                     </span><span class="jsdoc-var">httpStatus </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o.conn.status</span><span class="jsdoc-syntax">;
276                 }
277                 </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
278                     </span><span class="jsdoc-var">httpStatus </span><span class="jsdoc-syntax">= 13030;
279                 }
280             }
281             </span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
282
283
284                 </span><span class="jsdoc-var">httpStatus </span><span class="jsdoc-syntax">= 13030;
285             }
286
287             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">httpStatus </span><span class="jsdoc-syntax">&gt;= 200 &amp;&amp; </span><span class="jsdoc-var">httpStatus </span><span class="jsdoc-syntax">&lt; 300) {
288                 </span><span class="jsdoc-var">responseObject </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.createResponseObject</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback.argument</span><span class="jsdoc-syntax">);
289                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback.success</span><span class="jsdoc-syntax">) {
290                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">callback.scope</span><span class="jsdoc-syntax">) {
291                         </span><span class="jsdoc-var">callback.success</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">responseObject</span><span class="jsdoc-syntax">);
292                     }
293                     </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
294
295
296                         </span><span class="jsdoc-var">callback.success.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback.scope</span><span class="jsdoc-syntax">, [</span><span class="jsdoc-var">responseObject</span><span class="jsdoc-syntax">]);
297                     }
298                 }
299             }
300             </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
301                 </span><span class="jsdoc-keyword">switch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">httpStatus</span><span class="jsdoc-syntax">) {
302
303                     </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">12002:
304                     </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">12029:
305                     </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">12030:
306                     </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">12031:
307                     </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">12152:
308                     </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">13030:
309                         </span><span class="jsdoc-var">responseObject </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.createExceptionObject</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.tId</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback.argument</span><span class="jsdoc-syntax">, (</span><span class="jsdoc-var">isAbort </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">isAbort </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">));
310                         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback.failure</span><span class="jsdoc-syntax">) {
311                             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">callback.scope</span><span class="jsdoc-syntax">) {
312                                 </span><span class="jsdoc-var">callback.failure</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">responseObject</span><span class="jsdoc-syntax">);
313                             }
314                             </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
315                                 </span><span class="jsdoc-var">callback.failure.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback.scope</span><span class="jsdoc-syntax">, [</span><span class="jsdoc-var">responseObject</span><span class="jsdoc-syntax">]);
316                             }
317                         }
318                         </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
319                     </span><span class="jsdoc-keyword">default</span><span class="jsdoc-syntax">:
320                         </span><span class="jsdoc-var">responseObject </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.createResponseObject</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback.argument</span><span class="jsdoc-syntax">);
321                         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback.failure</span><span class="jsdoc-syntax">) {
322                             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">callback.scope</span><span class="jsdoc-syntax">) {
323                                 </span><span class="jsdoc-var">callback.failure</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">responseObject</span><span class="jsdoc-syntax">);
324                             }
325                             </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
326                                 </span><span class="jsdoc-var">callback.failure.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback.scope</span><span class="jsdoc-syntax">, [</span><span class="jsdoc-var">responseObject</span><span class="jsdoc-syntax">]);
327                             }
328                         }
329                 }
330             }
331
332             </span><span class="jsdoc-var">this.releaseObject</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">);
333             </span><span class="jsdoc-var">responseObject </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
334         },
335
336         </span><span class="jsdoc-var">createResponseObject</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callbackArg</span><span class="jsdoc-syntax">)
337         {
338             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">obj </span><span class="jsdoc-syntax">= {};
339             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">headerObj </span><span class="jsdoc-syntax">= {};
340
341             </span><span class="jsdoc-keyword">try
342             </span><span class="jsdoc-syntax">{
343                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">headerStr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o.conn.getAllResponseHeaders</span><span class="jsdoc-syntax">();
344                 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">header </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">headerStr.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'\n'</span><span class="jsdoc-syntax">);
345                 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">header.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
346                     </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">delimitPos </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">':'</span><span class="jsdoc-syntax">);
347                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">delimitPos </span><span class="jsdoc-syntax">!= -1) {
348                         </span><span class="jsdoc-var">headerObj</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.substring</span><span class="jsdoc-syntax">(0, </span><span class="jsdoc-var">delimitPos</span><span class="jsdoc-syntax">)] = </span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">delimitPos </span><span class="jsdoc-syntax">+ 2);
349                     }
350                 }
351             }
352             </span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
353             }
354
355             </span><span class="jsdoc-var">obj.tId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o.tId</span><span class="jsdoc-syntax">;
356             </span><span class="jsdoc-var">obj.status </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o.conn.status</span><span class="jsdoc-syntax">;
357             </span><span class="jsdoc-var">obj.statusText </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o.conn.statusText</span><span class="jsdoc-syntax">;
358             </span><span class="jsdoc-var">obj.getResponseHeader </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">headerObj</span><span class="jsdoc-syntax">;
359             </span><span class="jsdoc-var">obj.getAllResponseHeaders </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">headerStr</span><span class="jsdoc-syntax">;
360             </span><span class="jsdoc-var">obj.responseText </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o.conn.responseText</span><span class="jsdoc-syntax">;
361             </span><span class="jsdoc-var">obj.responseXML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o.conn.responseXML</span><span class="jsdoc-syntax">;
362
363             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">callbackArg </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-var">undefined</span><span class="jsdoc-syntax">) {
364                 </span><span class="jsdoc-var">obj.argument </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">callbackArg</span><span class="jsdoc-syntax">;
365             }
366
367             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">;
368         },
369
370         </span><span class="jsdoc-var">createExceptionObject</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tId</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callbackArg</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">isAbort</span><span class="jsdoc-syntax">)
371         {
372             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">COMM_CODE </span><span class="jsdoc-syntax">= 0;
373             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">COMM_ERROR </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'communication failure'</span><span class="jsdoc-syntax">;
374             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ABORT_CODE </span><span class="jsdoc-syntax">= -1;
375             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ABORT_ERROR </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'transaction aborted'</span><span class="jsdoc-syntax">;
376
377             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">obj </span><span class="jsdoc-syntax">= {};
378
379             </span><span class="jsdoc-var">obj.tId </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">tId</span><span class="jsdoc-syntax">;
380             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">isAbort</span><span class="jsdoc-syntax">) {
381                 </span><span class="jsdoc-var">obj.status </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ABORT_CODE</span><span class="jsdoc-syntax">;
382                 </span><span class="jsdoc-var">obj.statusText </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ABORT_ERROR</span><span class="jsdoc-syntax">;
383             }
384             </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
385                 </span><span class="jsdoc-var">obj.status </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">COMM_CODE</span><span class="jsdoc-syntax">;
386                 </span><span class="jsdoc-var">obj.statusText </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">COMM_ERROR</span><span class="jsdoc-syntax">;
387             }
388
389             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callbackArg</span><span class="jsdoc-syntax">) {
390                 </span><span class="jsdoc-var">obj.argument </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">callbackArg</span><span class="jsdoc-syntax">;
391             }
392
393             </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">;
394         },
395
396         </span><span class="jsdoc-var">initHeader</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">label</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">isDefault</span><span class="jsdoc-syntax">)
397         {
398             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">headerObj </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">isDefault</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-var">this.defaultHeaders </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.headers</span><span class="jsdoc-syntax">;
399
400             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">headerObj</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">label</span><span class="jsdoc-syntax">] === </span><span class="jsdoc-var">undefined</span><span class="jsdoc-syntax">) {
401                 </span><span class="jsdoc-var">headerObj</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">label</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">;
402             }
403             </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
404
405
406                 </span><span class="jsdoc-var">headerObj</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">label</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">&quot;,&quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">headerObj</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">label</span><span class="jsdoc-syntax">];
407             }
408
409             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">isDefault</span><span class="jsdoc-syntax">) {
410                 </span><span class="jsdoc-var">this.hasDefaultHeaders </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
411             }
412             </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
413                 </span><span class="jsdoc-var">this.hasHeaders </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
414             }
415         },
416
417
418         </span><span class="jsdoc-var">setHeader</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">)
419         {
420             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hasDefaultHeaders</span><span class="jsdoc-syntax">) {
421                 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">prop </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">this.defaultHeaders</span><span class="jsdoc-syntax">) {
422                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.defaultHeaders.hasOwnProperty</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">prop</span><span class="jsdoc-syntax">)) {
423                         </span><span class="jsdoc-var">o.conn.setRequestHeader</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">prop</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.defaultHeaders</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">prop</span><span class="jsdoc-syntax">]);
424                     }
425                 }
426             }
427
428             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.hasHeaders</span><span class="jsdoc-syntax">) {
429                 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">prop </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">this.headers</span><span class="jsdoc-syntax">) {
430                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.headers.hasOwnProperty</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">prop</span><span class="jsdoc-syntax">)) {
431                         </span><span class="jsdoc-var">o.conn.setRequestHeader</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">prop</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.headers</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">prop</span><span class="jsdoc-syntax">]);
432                     }
433                 }
434                 </span><span class="jsdoc-var">this.headers </span><span class="jsdoc-syntax">= {};
435                 </span><span class="jsdoc-var">this.hasHeaders </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
436             }
437         },
438
439         </span><span class="jsdoc-var">resetDefaultHeaders</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
440             </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.defaultHeaders</span><span class="jsdoc-syntax">;
441             </span><span class="jsdoc-var">this.defaultHeaders </span><span class="jsdoc-syntax">= {};
442             </span><span class="jsdoc-var">this.hasDefaultHeaders </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
443         },
444
445         </span><span class="jsdoc-var">abort</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">isTimeout</span><span class="jsdoc-syntax">)
446         {
447             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isCallInProgress</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">)) {
448                 </span><span class="jsdoc-var">o.conn.abort</span><span class="jsdoc-syntax">();
449                 </span><span class="jsdoc-var">window.clearInterval</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.poll</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">o.tId</span><span class="jsdoc-syntax">]);
450                 </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.poll</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">o.tId</span><span class="jsdoc-syntax">];
451                 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">isTimeout</span><span class="jsdoc-syntax">) {
452                     </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.timeout</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">o.tId</span><span class="jsdoc-syntax">];
453                 }
454
455                 </span><span class="jsdoc-var">this.handleTransactionResponse</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
456
457                 </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
458             }
459             </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
460                 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
461             }
462         },
463
464
465         </span><span class="jsdoc-var">isCallInProgress</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">)
466         {
467             </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">o.conn</span><span class="jsdoc-syntax">) {
468                 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">o.conn.readyState </span><span class="jsdoc-syntax">!= 4 &amp;&amp; </span><span class="jsdoc-var">o.conn.readyState </span><span class="jsdoc-syntax">!= 0;
469             }
470             </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
471
472                 </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
473             }
474         },
475
476
477         </span><span class="jsdoc-var">releaseObject</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">)
478         {
479
480             </span><span class="jsdoc-var">o.conn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
481
482             </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
483         },
484
485         </span><span class="jsdoc-var">activeX</span><span class="jsdoc-syntax">:[
486         </span><span class="jsdoc-string">'MSXML2.XMLHTTP.3.0'</span><span class="jsdoc-syntax">,
487         </span><span class="jsdoc-string">'MSXML2.XMLHTTP'</span><span class="jsdoc-syntax">,
488         </span><span class="jsdoc-string">'Microsoft.XMLHTTP'
489         </span><span class="jsdoc-syntax">]
490
491
492     };
493 })();</span></code></body></html>