(no commit message)
[freeside.git] / fs_selfservice / fri / includes / ajax.php
1 <?php
2
3 /*
4  * AJAX page update script
5  */
6 function ajaxRefreshScript($args) {
7
8   global $AJAX_PAGE_REFRESH_TIME;
9
10   $url_args = "?ajax_refresh=1&";
11   foreach($args as $key => $value) {
12     $url_args .= $key . "=" . $value . "&";
13   }
14   $url_args = substr($url_args, 0,strlen($url_args)-1);
15
16   $ret = "
17     <script type='text/javascript' language='javascript'>
18
19       var http_request = false;
20
21       function makeRequest(url, parameters) {
22
23         http_request = false;
24
25         if (window.XMLHttpRequest) { // Mozilla, Safari,...
26           http_request = new XMLHttpRequest();
27           if (http_request.overrideMimeType) {
28             http_request.overrideMimeType('text/xml');
29           }
30         } 
31         else if (window.ActiveXObject) { // IE
32           try {
33             http_request = new ActiveXObject('Msxml2.XMLHTTP');
34           } 
35           catch (e) {
36             try {
37               http_request = new ActiveXObject('Microsoft.XMLHTTP');
38             } 
39             catch (e) {}
40           }
41         }
42         if (!http_request) {
43           return false;
44         }
45         http_request.onreadystatechange = alertContents;
46         http_request.open('GET', url + parameters, true);
47         http_request.send(null);
48       }
49
50       function alertContents() {
51
52         if (!http_request) {
53           return;
54         }
55
56         if (http_request.readyState == 4) {
57           if (http_request.status == 200) {
58
59             var result = http_request.responseXML;
60             if (!result.documentElement && http_request.responseStream) {
61               result.load(http_request.responseStream);
62             }
63
64             var response = http_request.responseXML.documentElement;
65
66             var nav_menu = '';
67             if (response.getElementsByTagName('nav_menu')[0]) {
68               nav_menu = response.getElementsByTagName('nav_menu')[0].firstChild.data;
69             }
70             var nav_submenu = '';
71             if (response.getElementsByTagName('nav_submenu')[0]) {
72               nav_submenu = response.getElementsByTagName('nav_submenu')[0].firstChild.data;
73             }
74             var content = '';
75             if (response.getElementsByTagName('content')[0]) {
76               content = response.getElementsByTagName('content')[0].firstChild.data;
77             }
78
79             if (nav_menu) {
80               document.getElementById('nav_menu').innerHTML = '';
81               document.getElementById('nav_menu').innerHTML = nav_menu;
82             }
83             if (nav_submenu) {
84               document.getElementById('nav_submenu').innerHTML = '';
85               document.getElementById('nav_submenu').innerHTML = nav_submenu;
86             }
87             if (content) {
88               document.getElementById('content').innerHTML = '';
89               document.getElementById('content').innerHTML = content;
90             }
91           } 
92         }
93       }
94
95       function updatePage() {
96         makeRequest('" . $_SESSION['ARI_ROOT'] . "', '" . $url_args . "');
97       }
98
99       // refresh time in 'minutes:seconds' (0 to inifinity) : (0 to 59)
100       var refresh_time='" . $AJAX_PAGE_REFRESH_TIME . "';
101
102       if (document.images){
103         var limit=refresh_time.split(\":\");
104         limit=limit[0]*60+limit[1]*1;
105         var current = limit;
106       }
107
108       function beginRefresh(){
109         
110         if (!document.images) {
111           return;
112         }
113         if (current==1) {
114           updatePage();
115           current = limit;
116         }
117         else { 
118           current-=1;
119         }
120
121         setTimeout(\"beginRefresh()\",1000);
122       }
123
124       window.onload=beginRefresh;
125
126     </script>";
127
128   return $ret;
129 }
130
131
132 ?>