/*
* 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);
}