source: tags/2.0.2/template-common/scripts.js @ 16859

Last change on this file since 16859 was 3009, checked in by plg, 15 years ago

modification: instructions are displayed by blocks that can be expanded
individually. The icon doesn't fit with roma theme currently.

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Author Date Id Revision
File size: 4.3 KB
Line 
1function SelectAll( formulaire )
2{
3var len = formulaire.elements.length;
4var i=0;
5for( i = 0; i < len; i++)
6{
7        if ( formulaire.elements[i].type=='checkbox'
8                && formulaire.elements[i].name != 'copie')
9        {
10                formulaire.elements[i].checked = true;
11        }
12}
13}
14
15function DeselectAll( formulaire )
16{
17var len = formulaire.elements.length;
18var i=0;
19for( i = 0; i < len; i++)
20{
21        if ( formulaire.elements[i].type=='checkbox'
22                && formulaire.elements[i].name != 'copie')
23        {
24        formulaire.elements[i].checked = false;
25        }
26}
27}
28
29function Inverser( formulaire )
30{
31var len = formulaire.elements.length;
32var i=0;
33for( i=0; i<len; i++)
34{
35        if ( formulaire.elements[i].type=='checkbox'
36                && formulaire.elements[i].name != 'copie')
37        {
38        formulaire.elements[i].checked = !formulaire.elements[i].checked;
39        }
40}
41}
42
43function phpWGOpenWindow(theURL,winName,features)
44{
45        img = new Image();
46        img.src = theURL;
47        if (img.complete)
48        {
49                var width=img.width +40;
50                var height=img.height +40;
51        }
52        else
53        {
54                var width=640;
55                var height=480;
56                img.onload = resizeWindowToFit;
57        }
58        newWin = window.open(theURL,winName,features+',left=2,top=1,width=' + width + ',height=' + height);
59}
60
61function resizeWindowToFit()
62{
63        newWin.resizeTo( img.width+50, img.height+100);
64}
65
66function popuphelp(url)
67{
68        window.open( url, 'dc_popup',
69                'alwaysRaised=yes,dependent=yes,toolbar=no,height=420,width=500,menubar=no,resizable=yes,scrollbars=yes,status=no'
70        );
71}
72
73
74
75Function.prototype.pwgBind = function() {
76        var __method = this, object = arguments[0], args = new Array();
77        for (var i=1; i<arguments.length; i++)
78                args[i-1] = arguments[i];
79        return function() { return __method.apply(object, args); }
80}
81
82function PwgWS(urlRoot)
83{
84        this.urlRoot = urlRoot;
85        this.options = {
86                method: "GET",
87                async:  true,
88                onFailure: null,
89                onSuccess: null
90        };
91};
92
93function blockToggleDisplay(headerId, contentId)
94{
95  var revHeader = document.getElementById(headerId);
96  var revContent = document.getElementById(contentId);
97
98  if (revContent.style.display == 'none')
99  {
100    revContent.style.display = 'block';
101    revHeader.className = 'instructionBlockHeaderExpanded';
102  }
103  else
104  {
105    revContent.style.display = 'none';
106    revHeader.className = 'instructionBlockHeaderCollapsed';
107  }
108}
109
110
111PwgWS.prototype = {
112
113        callService : function(method, parameters, options)
114        {
115                if (options)
116                {
117                        for (var property in options)
118                                this.options[property] = options[property];
119                }
120                try { this.transport = new XMLHttpRequest();}
121                catch(e) {
122                        try { this.transport = new ActiveXObject('Msxml2.XMLHTTP'); }
123                        catch(e) {
124                                try { this.transport = new ActiveXObject('Microsoft.XMLHTTP'); }
125                                catch (e){
126                                        dispatchError(0, "Cannot create request object");
127                                }
128                        }
129                }
130                this.transport.onreadystatechange = this.onStateChange.pwgBind(this);
131
132                var url = this.urlRoot;
133                url += "ws.php?format=json&method="+method;
134                if (parameters)
135                {
136                        for (var property in parameters)
137                        {
138                                if ( typeof parameters[property] == 'object' && parameters[property])
139                                {
140                                        for (var i=0; i<parameters[property].length; i++)
141                                                url += "&"+property+"[]="+encodeURIComponent(parameters[property][i]);
142                                }
143                                else
144                                        url += "&"+property+"="+encodeURIComponent(parameters[property]);
145                        }
146                }
147                this.transport.open(this.options.method, url, this.options.async);
148                this.transport.send(null);
149        },
150
151        onStateChange: function() {
152                var readyState = this.transport.readyState;
153                if (readyState == 4)
154                        this.respondToReadyState(this.transport.readyState);
155        },
156
157        dispatchError: function( httpCode, text )
158        {
159                !this.options.onFailure || this.options.onFailure( httpCode, text);
160        },
161
162        respondToReadyState: function(readyState)
163        {
164                var transport = this.transport;
165                if (readyState==4 && transport.status == 200)
166                {
167                        var resp;
168                        try {
169                                eval('resp = ' + transport.responseText);
170                        }
171                        catch (e) {
172                                this.dispatchError( 200, e.message + '\n' + transport.responseText.substr(0,512) );
173                        }
174                        if (resp!=null)
175                        {
176                                if (resp.stat==null)
177                                        this.dispatchError( 200, "Invalid response" );
178                                else if (resp.stat=='ok')
179                                {
180                                        if (this.options.onSuccess) this.options.onSuccess( resp.result );
181                                }
182                                else
183                                        this.dispatchError( 200, resp.err + " " + resp.message);
184                        }
185                }
186                if (readyState==4 && transport.status != 200)
187                        this.dispatchError( transport.status, transport.statusText );
188        },
189
190
191        transport: null,
192        urlRoot: null,
193        options: {}
194}
Note: See TracBrowser for help on using the repository browser.