PHP Classes

File: htdocs/js/ajax_functions.js

Recommend this page to a friend!
  Classes of ask sa sa   PHP LDAP admin   htdocs/js/ajax_functions.js   Download  
File: htdocs/js/ajax_functions.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: PHP LDAP admin
Perform operations to administer a LDAP server
Author: By
Last change:
Date: 1 year ago
Size: 7,205 bytes
 

Contents

Class file image Download
/** * @package phpLDAPadmin * @author The phpLDAPadmin development team * @author Xavier Bruyet */ // current request var http_div = ''; var http_request = null; var http_request_success_callback = ''; var http_request_error_callback = ''; function ajSUBMIT(div,obj,display) { var pageDiv = getDiv(div); window.scrollTo(0,95); makeHttpRequest('cmd.php',getParameters(obj.parentNode)+'meth=ajax','POST','alertAJ','cancelAJ',div); if (pageDiv) includeHTML(pageDiv,'<img src="images/ajax-progress.gif"><br><small>'+display+'...</small>'); else return true; return false; } function ajDISPLAY(div,urlParameters,display,ns) { var pageDiv = getDiv(div); if (! ns) window.scrollTo(0,95); makeHttpRequest('cmd.php',urlParameters+'&meth=ajax','GET','alertAJ','cancelAJ',div); if (pageDiv) includeHTML(pageDiv,'<img src="images/ajax-progress.gif"><br><small>'+display+'...</small>'); else return true; return false; } function ajJUMP(url,title,index,prefix) { var attr = prefix ? document.getElementById(prefix+index).value : index; if (attr) url += '&viewvalue='+attr; return ajDISPLAY('BODY',url,'Loading '+title); } function ajSHOWTHIS(key,except,ctl) { select = document.getElementById(key+except); if (select.style.display == '') return false; hideall(key,except,ctl); return false; }; function ajSHOWSCHEMA(type,key,value) { select = document.getElementById(type); if (value != null) { except = value; select.value = value; } else { except = select.value; } if (! except) { showall(key); } else { objectclass = document.getElementById(key+except); objectclass.style.display = ''; hideall(key,except); }; return false; }; function hideall(key,except,ctl) { items = items(); for (x in items) { if (! isNaN(x) && except != items[x]) { item = document.getElementById(key+items[x]); item.style.display = 'none'; if (ctl && (item = document.getElementById(ctl+items[x]))) { item.style.background = '#E0E0E0'; } } else if (! isNaN(x) && except == items[x]) { item = document.getElementById(key+items[x]); item.style.display = ''; if (ctl && (item = document.getElementById(ctl+items[x]))) { item.style.background = '#F0F0F0'; } } } } function showall(key) { items = items(); for (x in items) { if (! isNaN(x)) { item = document.getElementById(key+items[x]); item.style.display = ''; } } } // include html into a component function includeHTML(component,html) { if (typeof(component) != 'object' || typeof(html) != 'string') return; component.innerHTML = html; var scripts = component.getElementsByTagName('script'); if (!scripts) return; // load scripts for (var i = 0; i < scripts.length; i++) { var scriptclone = document.createElement('script'); if (scripts[i].attributes.length > 0) { for (var j in scripts[i].attributes) { if (typeof(scripts[i].attributes[j]) != 'undefined' && typeof(scripts[i].attributes[j].nodeName) != 'undefined' && scripts[i].attributes[j].nodeValue != null && scripts[i].attributes[j].nodeValue != '') { scriptclone.setAttribute(scripts[i].attributes[j].nodeName,scripts[i].attributes[j].nodeValue); } } } scriptclone.text = scripts[i].text; scripts[i].parentNode.replaceChild(scriptclone,scripts[i]); eval(scripts[i].innerHTML); } } // callback function function alertHttpRequest() { if (http_request && (http_request.readyState == 4)) { if (http_request.status == 200 || http_request.status == 401) { response = http_request.responseText; http_request = null; //alert(response); if (http_request_success_callback) { eval(http_request_success_callback + '(response,http_div)'); } } else { alert('There was a problem with the request.'); cancelHttpRequest(); } } } function cancelHttpRequest() { if (http_request) { http_request = null; if (http_request_error_callback) { eval(http_request_error_callback + '(http_div)'); } } } function makeHttpRequest(url,parameters,meth,successCallbackFunctionName,errorCallbackFunctionName,div) { cancelHttpRequest(div); http_request_success_callback = successCallbackFunctionName; http_request_error_callback = errorCallbackFunctionName; http_div = div; if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/html'); } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { try { http_request = new ActiveXObject('Microsoft.XMLHTTP'); } catch (e) {} } } if (!http_request) { alert('Cannot create XMLHTTP instance.'); return false; } http_request.onreadystatechange = window['alertHttpRequest']; if (meth == 'GET') url = url + '?' + parameters; http_request.open(meth,url,true); http_request.setRequestHeader('Content-type','application/x-www-form-urlencoded'); http_request.setRequestHeader('Content-length',parameters.length); http_request.setRequestHeader('Connection','close'); if (meth == 'GET') parameters = null; http_request.send(parameters); } function getParameters(obj) { var elements = ['input','select','textarea']; var getstr = ''; for (var j in elements) { for (i=0; i<obj.getElementsByTagName(elements[j]).length; i++) { // Ignore submit variables if (obj.getElementsByTagName(elements[j])[i].type == 'submit') { } else if (obj.getElementsByTagName(elements[j])[i].type == 'text') { getstr += obj.getElementsByTagName(elements[j])[i].name + '=' + encodeURIComponent(obj.getElementsByTagName(elements[j])[i].value) + '&'; } else if (obj.getElementsByTagName(elements[j])[i].type == 'checkbox') { if (obj.getElementsByTagName(elements[j])[i].checked) { getstr += obj.getElementsByTagName(elements[j])[i].name + '=' + encodeURIComponent(obj.getElementsByTagName(elements[j])[i].value) + '&'; } else { getstr += obj.getElementsByTagName(elements[j])[i].name + '=&'; } } else if (obj.getElementsByTagName(elements[j])[i].type == 'radio') { if (obj.getElementsByTagName(elements[j])[i].checked) { getstr += obj.getElementsByTagName(elements[j])[i].name + '=' + encodeURIComponent(obj.getElementsByTagName(elements[j])[i].value) + '&'; } } else if (obj.getElementsByTagName(elements[j])[i].tagName == 'SELECT') { var sel = obj.getElementsByTagName(elements[j])[i]; getstr += sel.name + '=' + encodeURIComponent(sel.options[sel.selectedIndex].value) + '&'; } else if (obj.getElementsByTagName(elements[j])[i].tagName == 'INPUT') { getstr += obj.getElementsByTagName(elements[j])[i].name + '=' + encodeURIComponent(obj.getElementsByTagName(elements[j])[i].value) + '&'; } else if (obj.getElementsByTagName(elements[j])[i].tagName == 'TEXTAREA') { getstr += obj.getElementsByTagName(elements[j])[i].name + '=' + encodeURIComponent(obj.getElementsByTagName(elements[j])[i].value) + '&'; } else { alert('UNTRAPPED FORM tag:'+elements[j]+', n: '+obj.getElementsByTagName(elements[j])[i].tagName+', t:'+obj.getElementsByTagName(elements[j])[i].type); } } } return getstr; }