summaryrefslogtreecommitdiff
path: root/lib/scripts/ajax.js
diff options
context:
space:
mode:
authorAndreas Gohr <andi@splitbrain.org>2005-10-29 02:26:52 +0200
committerAndreas Gohr <andi@splitbrain.org>2005-10-29 02:26:52 +0200
commitbad31ae944f074dab12f7a6d1362775d8f2b18dd (patch)
treeaf7ed25d7d8ef9c2c836afdd21b1ee7398db3dcd /lib/scripts/ajax.js
parent551242f8292dd257969d52089332f6ddb8bd70b2 (diff)
downloadrpg-bad31ae944f074dab12f7a6d1362775d8f2b18dd.tar.gz
rpg-bad31ae944f074dab12f7a6d1362775d8f2b18dd.tar.bz2
JavaScript refactoring
This patch addes a first go on a central javascript and CSS dispatcher which builds a single script from all needed scripts, does optimizing and caching. darcs-hash:20051029002652-7ad00-7558b569c2bf65f5e41820644580d97c62edd0d6.gz
Diffstat (limited to 'lib/scripts/ajax.js')
-rw-r--r--lib/scripts/ajax.js35
1 files changed, 21 insertions, 14 deletions
diff --git a/lib/scripts/ajax.js b/lib/scripts/ajax.js
index 0a4183463..c0323f09e 100644
--- a/lib/scripts/ajax.js
+++ b/lib/scripts/ajax.js
@@ -23,39 +23,46 @@ ajax_qsearch.sack.AjaxFailedAlert = '';
ajax_qsearch.sack.encodeURIString = false;
ajax_qsearch.init = function(inID,outID){
- if(ajax_qsearch.inObj == null)
- ajax_qsearch.inObj = document.getElementById(inID);
- if(ajax_qsearch.outObj == null)
- ajax_qsearch.outObj = document.getElementById(outID);
-}
+ ajax_qsearch.inObj = document.getElementById(inID);
+ ajax_qsearch.outObj = document.getElementById(outID);
+
+ // objects found?
+ if(ajax_qsearch.inObj === null){ return; }
+ if(ajax_qsearch.outObj === null){ return; }
+
+ // attach eventhandler to search field
+ addEvent(ajax_qsearch.inObj,'keyup',ajax_qsearch.call);
+
+ // attach eventhandler to output field
+ addEvent(ajax_qsearch.outObj,'click',function(){ ajax_qsearch.outObj.style.display='none'; });
+};
ajax_qsearch.clear = function(){
ajax_qsearch.outObj.style.display = 'none';
ajax_qsearch.outObj.innerHTML = '';
- if(ajax_qsearch.timer != null){
+ if(ajax_qsearch.timer !== null){
window.clearTimeout(ajax_qsearch.timer);
ajax_qsearch.timer = null;
}
-}
+};
ajax_qsearch.exec = function(){
ajax_qsearch.clear();
var value = ajax_qsearch.inObj.value;
- if(value == '') return;
+ if(value === ''){ return; }
ajax_qsearch.sack.runAJAX('call=qsearch&q='+encodeURI(value));
-}
+};
ajax_qsearch.sack.onCompletion = function(){
var data = ajax_qsearch.sack.response;
- if(data == '') return;
+ if(data === ''){ return; }
ajax_qsearch.outObj.innerHTML = data;
ajax_qsearch.outObj.style.display = 'block';
-}
+};
-ajax_qsearch.call = function(inID,outID){
- ajax_qsearch.init(inID,outID);
+ajax_qsearch.call = function(){
ajax_qsearch.clear();
ajax_qsearch.timer = window.setTimeout("ajax_qsearch.exec()",500);
-}
+};