/* * Convenient for testing ie vs. ff */ var agt=navigator.userAgent.toLowerCase(); var ie = (agt.indexOf("msie") != -1); /* * Class: Loader * Use JSON to import scripts/data * * var load = new Loader(); * load.loadJS("act.php?test",function(){ * var x = load.response.array[0]; * }); */ function Loader() { this.ns = document.createElement("script"); this.engine=""; this.callBack; this.response; this.hash; // Use JSON to load new scripts var loadJS = function(request,cb) { if(typeof(cb)=="function") this.callBack=cb; else request += "&cb="+cb; request += "&json"; this.ns.setAttribute("src",this.engine+request); document.getElementsByTagName("body")[0].appendChild(this.ns); this.listenCallBack(); }; this.loadJS = loadJS; // Wait and listen for the callback function var listenCallBack = function() { var self = this; var listenTimer = setInterval(function() { if(self.response!="") { self.callBack(); self.callBack = ""; self.response = ""; clearInterval(listenTimer); } },100); }; this.listenCallBack = listenCallBack; } /* * Creates handlers */ function makeRequestObject() { if (window.XMLHttpRequest) { return new XMLHttpRequest(); } else if(window.ActiveXObject) { return new ActiveXObject("Microsoft.XMLHTTP"); } } /* * Simplifies remote requests */ function sendGetReq(reqOb,reqURL) { if (reqOb.readyState == 4 || reqOb.readyState == 0) { reqOb.open("GET", reqURL, true); reqOb.onreadystatechange = handlerFunc; reqOb.send(null); } } /* * Same as above except using post headers */ function sendPostReq(reqOb,reqURL,input) { var output=""; if(typeof(input)=="object") { var parts=input.elements; for(i=0;i /* special input case */ if(parts[i].type=="select-multiple") { for(var j=0; j< parts[i].options.length; j++) { if(parts[i].options[j].selected) output += "&"+parts[i].name+"="+parts[i].options[j].value; } continue; } /* else */ if(parts[i].checked==true) parts[i].value = 1; output += "&"+parts[i].name+"="+parts[i].value.replace(/&/g,"|and|"); } } else output = input; if (reqOb.readyState == 4 || reqOb.readyState == 0) { reqOb.open("POST", reqURL, true); reqOb.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); reqOb.onreadystatechange = handlerFunc; reqOb.send(output); } } /* * Function: popWindow */ function popWindow(id,url,x,y) { day = new Date(); eval(id+"=window.open(url,'"+id+"','toolbar=0,scrollbars=0,location=0,statusbar=1,menubar=0,resizable=0,width="+x+",height="+y+",left=400,top=300');"); } /* * Function: in_array(arry,toFind) * Ret true if toFind is in array. Emulates PHP's function */ function in_array(arry,toFind) { return ('||'+arry.join('||')+'||').indexOf('||'+toFind+'||') > -1; } /* * Redirect */ function redirect(mylocation,mytime) { var rDTime = setTimeout( function(){ location.href = mylocation.replace('#',''); },mytime); } /* * getObj - return an object */ function getObj(name) { obj = document.getElementById(name); if(obj==null){ alert("Object ID: "+name+" could not be found."); } return obj; } function Querystring(qs) { // optionally pass a querystring to parse this.params = {}; if (qs == null) qs = location.search.substring(1, location.search.length); if (qs.length == 0) return; // Turn back to // See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1 qs = qs.replace(/\+/g, ' '); var args = qs.split('&'); // parse out name/value pairs separated via & // split out each name=value pair for (var i = 0; i < args.length; i++) { var pair = args[i].split('='); var name = decodeURIComponent(pair[0]); var value = (pair.length==2) ? decodeURIComponent(pair[1]) : name; this.params[name] = value; } } Querystring.prototype.get = function(key, default_) { var value = this.params[key]; return (value != null) ? value : default_; } Querystring.prototype.contains = function(key) { var value = this.params[key]; return (value != null); }