Subversion Repositories bacoAlunos

Rev

Rev 159 | Rev 165 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
53 jmachado 1
/**
163 jmachado 2
 *
3
 * AJAX Functions
4
 *
5
 * This code is protected under GNU LGPL License
6
 *
7
 * @author Jorge Machado
8
 * @date April 2008
9
 **/
1 fvelez 10
 
53 jmachado 11
/**
12
 * Starts XMLHTTP Ajax request
13
 *
14
 * @author Jorge Machado
15
 * @date April 2008
16
 *
17
 * params:
18
 * @params HTTP GET Parameters for query string
19
 * @xmlHttpRequest request
20
 * @id target element
21
 * @stateChanged target function
22
 * @innerPhrase to put while waiting for response
23
 * @navjsp requested jsp
24
 */
25
function startRequest(xmlHttpRequest,params,id,stateChanged,innerPhrase,navjsp)
26
{
27
    if(innerPhrase != '')
28
        getObjectById(id).innerHTML = innerPhrase;
29
    if (xmlHttpRequest==null)
30
    {
31
        alert ("Browser does not support HTTP Request");
32
        return;
33
    }
34
    var url= navjsp;
35
    if(params != null && params.length > 0)
36
    {
37
        url=url+"?"+ params;
38
        url=url+"&sid="+Math.random();
39
    }
40
    else
41
    {
42
        url=url+"?sid="+Math.random();
43
    }
44
    xmlHttpRequest.onreadystatechange=stateChanged;
45
    xmlHttpRequest.open("GET",url,true);
46
    xmlHttpRequest.send(null);
47
}
1 fvelez 48
 
53 jmachado 49
/**
50
 * Return an HTML element given ID
51
 *
52
 * @author Jorge Machado
53
 * @date April 2008
54
 *
55
 * params:
56
 * @objectId required object
57
 */
58
function getObjectById(objectId)
59
{
60
    // cross-browser function to get an object's style object given its id
61
    try
62
    {
63
        if(document.getElementById && document.getElementById(objectId))
1 fvelez 64
        {
65
            // W3C DOM
53 jmachado 66
            return document.getElementById(objectId);
67
        }
68
        else if (document.all(objectId))
69
        {
1 fvelez 70
            // MSIE 4 DOM
53 jmachado 71
            return document.all(objectId);
72
        }
73
        else if (document.layers && document.layers[objectId])
74
        {
1 fvelez 75
            // NN 4 DOM.. note: this won't find nested layers
53 jmachado 76
            return document.layers[objectId];
1 fvelez 77
        }
53 jmachado 78
        else
1 fvelez 79
        {
80
            return false;
81
        }
53 jmachado 82
    }
83
    catch(e)
84
    {
85
        return false;
86
    }
1 fvelez 87
}
88
 
92 jmachado 89
function hide(id,showId)
90
{
91
    getObjectById(id).style.visibility='hidden';
92
    getObjectById(id).style.position='absolute';
93
    getObjectById(showId).style.visibility='visible';
94
    getObjectById(showId).style.position='relative';
95
}
96
function show(id,hideId)
97
{
98
    getObjectById(id).style.visibility='visible';
99
    getObjectById(id).style.position='relative';
100
    getObjectById(hideId).style.visibility='hidden';
101
    getObjectById(hideId).style.position='absolute';
102
}
159 jmachado 103
function show(id)
104
{
105
    getObjectById(id).style.visibility='visible';
106
    getObjectById(id).style.position='relative';
107
}
108
function showOrHide(id)
109
{
110
    if(getObjectById(id).style.visibility == 'hidden')
111
    {
112
        show(id);
113
    }
114
    else
115
        hide(id);
116
}
163 jmachado 117
 
118
function showOrHide(id,hideValue,showValue)
119
{
120
    if(getObjectById(id).style.visibility == 'hidden')
121
    {
122
        show(id);
123
        return showValue;
124
    }
125
    else
126
    {
127
        hide(id);
128
        return hideValue;
129
    }
130
}
159 jmachado 131
function hide(id)
132
{
133
    getObjectById(id).style.visibility='hidden';
134
    getObjectById(id).style.position='absolute';
135
}
92 jmachado 136
 
1 fvelez 137
/**
53 jmachado 138
 * Creates a new XmlHttpObject
139
 * @author Jorge Machado
140
 * @date April 2008
1 fvelez 141
 *
53 jmachado 142
 * params:
143
 * @handler target xmlHttpObject function
1 fvelez 144
 */
53 jmachado 145
function GetXmlHttpObject(handler)
1 fvelez 146
{
53 jmachado 147
    var objXmlHttp = null;
148
    if (navigator.userAgent.indexOf("Opera")>=0)
149
    {
150
        alert("This example doesn't work in Opera") ;
151
        return objXmlHttp;
152
    }
153
    if (navigator.userAgent.indexOf("MSIE")>=0)
154
    {
155
        var strName="Msxml2.XMLHTTP";
156
        if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
1 fvelez 157
        {
53 jmachado 158
            strName="Microsoft.XMLHTTP";
1 fvelez 159
        }
53 jmachado 160
        try
161
        {
162
            objXmlHttp=new ActiveXObject(strName);
163
            objXmlHttp.onreadystatechange=handler ;
164
            return objXmlHttp;
165
        }
166
        catch(e)
167
        {
168
            alert("Error. Scripting for ActiveX might be disabled") ;
169
            return objXmlHttp;
170
        }
171
    }
172
    if (navigator.userAgent.indexOf("Mozilla")>=0)
173
    {
174
        objXmlHttp=new XMLHttpRequest();
175
        objXmlHttp.onload=handler;
176
        objXmlHttp.onerror=handler;
177
        return objXmlHttp;
178
    }
1 fvelez 179
}
180
 
53 jmachado 181
/***************************************************
182
 TopFlashNews
163 jmachado 183
 ***************************************************/
53 jmachado 184
var xmlHttpTopFlashNews;
185
var getFlashNewsTimeout;
186
var getFlashNewsJsp;
1 fvelez 187
 
53 jmachado 188
function getFlashNews(jsp,timeout)
48 fvelez 189
{
53 jmachado 190
    getFlashNewsJsp = jsp;
191
    getFlashNewsTimeout = timeout;
192
    getFlashNewsTimeoutCall();
48 fvelez 193
}
53 jmachado 194
function getFlashNewsTimeoutCall()
48 fvelez 195
{
53 jmachado 196
    xmlHttpTopFlashNews=GetXmlHttpObject(stateChangedGetFlashNews);
197
    startRequest(xmlHttpTopFlashNews,"","flashTopNews",stateChangedGetFlashNews,"",getFlashNewsJsp)
48 fvelez 198
}
199
function stateChangedGetFlashNews()
200
{
53 jmachado 201
    if (xmlHttpTopFlashNews.readyState==4 || xmlHttpTopFlashNews.readyState=="complete")
202
    {
203
        getObjectById("flashTopNews").innerHTML=xmlHttpTopFlashNews.responseText;
204
        setTimeout(getFlashNewsTimeoutCall,getFlashNewsTimeout);
205
    }
48 fvelez 206
}
1 fvelez 207
 
208
 
92 jmachado 209
/***************************************************
210
 Search
163 jmachado 211
 ***************************************************/
92 jmachado 212
var xmlHttpSearch;
213
var searchResultsDiv;
1 fvelez 214
 
92 jmachado 215
function searchCall(div,query,searchType,page,module,action)
216
{
217
    searchResultsDiv = div;
218
    xmlHttpSearch=GetXmlHttpObject(stateChangedSearchCall);
219
    startRequest(xmlHttpSearch,"dispatch=searchModule&query=" + query + "&searchType=" + searchType + "&page=" + page + "&module=" + module,"",stateChangedSearchCall,"",action);
220
}
221
function stateChangedSearchCall()
222
{
223
    if (xmlHttpSearch.readyState==4 || xmlHttpSearch.readyState=="complete")
224
    {
225
        getObjectById(searchResultsDiv).innerHTML=xmlHttpSearch.responseText;
226
    }
227
}
1 fvelez 228
 
229
 
159 jmachado 230
/***************************************************
231
 Pop
163 jmachado 232
 ***************************************************/
159 jmachado 233
var xmlHttpPop;
234
var popDiv;
1 fvelez 235
 
159 jmachado 236
function loadPop(div,action)
237
{
238
    popDiv = div;
239
    xmlHttpPop=GetXmlHttpObject(stateChangedPopCall);
240
    startRequest(xmlHttpPop,"","",stateChangedPopCall,"",action);
241
}
242
function stateChangedPopCall()
243
{
244
    if (xmlHttpPop.readyState==4 || xmlHttpPop.readyState=="complete")
245
    {
246
        getObjectById(popDiv).innerHTML=xmlHttpPop.responseText;
247
    }
248
}
1 fvelez 249
 
163 jmachado 250
/***************************************************
251
 Reminders
252
 ***************************************************/
253
var xmlHttpReminder;
254
var newReminderId;
255
var reminderFormId;
256
var putMsgId;
257
var putOkMsg;
258
var putFailMsg;
1 fvelez 259
 
163 jmachado 260
function putReminder(startDate,expireDate,text,newReminderDiv,msgDiv,reminderFormDiv,action,waitMsg,okMsg,failMsg)
261
{
262
    newReminderId = newReminderDiv;
263
    reminderFormId = reminderFormDiv;
264
    putMsgId = msgDiv;
265
    putOkMsg = okMsg;
266
    putFailMsg = failMsg;
267
    getObjectById(putMsgId).innerHTML = waitMsg;
268
    xmlHttpReminder=GetXmlHttpObject(stateChangedPutReminderCall);
269
    startRequest(xmlHttpReminder,"dispatch=save&startDate="+startDate+"&expireDate="+expireDate+"&reminderView.text="+text,"",stateChangedPutReminderCall,"",action);
270
    hide(reminderFormId);
271
    show(putMsgId);
272
}
273
function stateChangedPutReminderCall()
274
{
275
    if (xmlHttpReminder.readyState==4 || xmlHttpReminder.readyState=="complete")
276
    {
277
        if(xmlHttpReminder.responseText.indexOf("<div class=\"messages\">") >= 0)
278
        {
279
            getObjectById(putMsgId).innerHTML = xmlHttpReminder.responseText;
280
        }
281
        else
282
        {
283
            getObjectById(putMsgId).innerHTML = '<div class="statusOK">' + putOkMsg + '</div>';
284
            getObjectById(newReminderId).innerHTML = xmlHttpReminder.responseText + getObjectById(newReminderId).innerHTML;
285
        }
286
    }
287
    setTimeout(cleanReminderStatus,10000);
288
}
289
function cleanReminderStatus()
290
{
291
   getObjectById(putMsgId).innerHTML = '';
292
}
1 fvelez 293
 
294
 
295
 
296
 
48 fvelez 297
 
298
 
299
 
300
 
92 jmachado 301
 
302
 
303
 
159 jmachado 304
 
305
 
306
 
163 jmachado 307
 
308
 
309