
function RObj(ea) {
var LS="";var QS=new Object()
function Err(arg) {if (ea) alert("Request Object Error:\n====================\n"+arg)}
function URID(t) {var d="";if (t) {for (var i=0; i<t.length; ++i) {var c=t.charAt(i);d+=(c=="+" ? " ":c);};};return unescape(d);}
function OL(o) {var l=0;for (var i in o) {if (typeof(o[i])!="function") l++;};return l;}
function AK(key) {var auk=true;for (var u in QS) {if (typeof(QS[u])!="function" && u.toString().toLowerCase()==key.toLowerCase()) {auk=false;return u;}};if (auk) {QS[key]=new Object();QS[key].toString=function() {return TS(QS[key])};QS[key].Count=function() {return OL(QS[key])};QS[key].Count.toString=function() {return OL(QS[key]).toString()};QS[key].Item=function(e) {if (typeof(e)=="undefined") return QS[key];else {if (typeof(e)=="number") {var a=QS[key][Math.ceil(e)];if (typeof(a)=="undefined") Err("ERROR: Index out of range in\nRequest.QueryString(\""+key+"\").Item("+e+")");return a;}else Err("ERROR: Expecting numeric input in\nRequest.QueryString(\""+key+"\").Item(\""+e+"\")");}};QS[key].Item.toString=function(e) {if (typeof(e)=="undefined") return QS[key].toString();else {var a=QS[key][e];if (typeof(a)=="undefined") Err("ERROR: Index out of range in\nRequest.QueryString(\""+key+"\").Item("+e+")");return a.toString();};};QS[key].Key=function(e) {var t=typeof(e);if (t=="string") {var a=QS[key][e];return (typeof(a)!="undefined" && a && a.toString() ? e:"");}else Err("ERROR: Object doesn't support this property or method\nRequest.QueryString.Key("+(e?e:"")+")");};QS[key].Key.toString=function() {return "undefined"};};return key}
function AVTK(key, val) {if (key!="") {var key=AK(key);var l=OL(QS[key]);QS[key][l+1]=val;}}
function TS(o) {var s="";for (var i in o) {var ty=typeof(o[i]);if (ty=="object") s+=TS(o[i]);else if (ty!="function") s+=o[i]+", ";};var l=s.length;if (l>1) return(s.substring(0,l-2));return (s=="" ? "undefined":s);}
function KM(k, o) {var k=k.toLowerCase();for (var u in o) {if (typeof(o[u])!="function" && u.toString().toLowerCase()==k) return u;};}
if (window.location && window.location.search) {LS=window.location.search;var l=LS.length;if (l>0) {LS=LS.substring(1,l);var preAmpAt=0;var ampAt=-1;var eqAt=-1;var k=0;var skip=false;for (var i=0; i<l; ++i) {var c=LS.charAt(i);if (LS.charAt(preAmpAt)=="=" || (preAmpAt==0 && i==0 && c=="=")) skip=true;if (c=="=" && eqAt==-1 && !skip) eqAt=i;if (c=="&" && ampAt==-1) {if (eqAt!=-1) ampAt=i;if (skip) preAmpAt=i+1;skip=false;};if (ampAt>eqAt) {AVTK(URID(LS.substring(preAmpAt,eqAt)),URID(LS.substring(eqAt+1,ampAt)));preAmpAt=ampAt+1;eqAt=ampAt=-1;++k;};};if (LS.charAt(preAmpAt)!="=" && (preAmpAt!=0 || i!=0 || c!="=")) {if (preAmpAt!=l) {if (eqAt!=-1) AVTK(URID(LS.substring(preAmpAt,eqAt)),URID(LS.substring(eqAt+1,l)));else if (preAmpAt!=l-1) AVTK(URID(LS.substring(preAmpAt,l)),"");};if (l==1) AVTK(LS.substring(0,1),"");};};};var TC=OL(QS);if (!TC) TC=0
QS.toString=function() {return LS.toString()};QS.Count=function() {return (TC ? TC:0)};QS.Count.toString=function() {return (TC ? TC.toString():"0")};QS.Item=function(e) {if (typeof(e)=="undefined") return LS;else {if (typeof(e)=="number") {var e=Math.ceil(e);var c=0;for (var i in QS) {if (typeof(QS[i])!="function" && ++c==e) return QS[i];};Err("ERROR: Index out of range in\nRequest.QueryString().Item("+e+")");}else return QS[KM(e, QS)];};return "undefined";};QS.Item.toString=function() {return LS.toString()};QS.Key=function(e) {var t=typeof(e);if (t=="number") {var e=Math.ceil(e);var c=0;for (var i in QS) {if (typeof(QS[i])!="function" && ++c==e) return i;}}else if (t=="string") {var e=KM(e, QS);var a=QS[e];return (typeof(a)!="undefined" && a && a.toString() ? e:"");}else Err("ERROR: Wrong number of arguments or invalid property assignment\nRequest.QueryString().Key("+(e?e:"")+")");Err("ERROR: Index out of range in\nRequest.QueryString().Item("+e+")");};QS.Key.toString=function() {Err("ERROR: Wrong number of arguments or invalid property assignment\nRequest.QueryString().Key");}
this.QueryString=function(k) {if (typeof(k)=="undefined") return QS;else {var k=KM(k, QS);if (typeof(QS[k])=="undefined") {t=new Object();t.Count=function() {return 0};t.Count.toString=function() {return "0"};t.toString=function() {return "undefined"};t.Item=function(e) {return "undefined"};t.Item.toString=function() {return "undefined"};t.Key=function(e) {Err("ERROR: Object doesn't support this property or method\nRequest.QueryString.Key("+(e?e:"")+")");};t.Key.toString=function() {return "undefined"};return t;}if (typeof(k)=="number") return QS.Item(k);else return QS[k];}}
this.QueryString.toString=function() {return LS.toString();};this.QueryString.Count=function() {return (TC ? TC:0)};this.QueryString.Count.toString=function() {return (TC ? TC.toString():"0")};this.QueryString.Item=function(e) {if (typeof(e)=="undefined") return LS.toString();else {if (typeof(e)=="number") {var e=Math.ceil(e);var c=0;for (var i in QS) {if (typeof(QS[i])!="function" && ++c==e) return QS[i];};Err("ERROR: Index out of range in\nRequest.QueryString.Item("+e+")");}else return QS[KM(e, QS)];}if (typeof(e)==("number")) Err("ERROR: Index out of range in\nRequest.QueryString.Item("+e+")");return "undefined";}
this.QueryString.Item.toString=function() {return LS.toString()};this.QueryString.Key=function(e) {var t=typeof(e);if (t=="number") {var e=Math.ceil(e);var c=0;for (var i in QS) {if (typeof(QS[i])=="object" && (++c==e)) {return i;}}}else if (t=="string") {var e=KM(e, QS);var a=QS[e];return (typeof(a)!="undefined" && a && a.toString() ? e:"");}else Err("ERROR: Wrong number of arguments or invalid property assignment\nRequest.QueryString.Key("+(e?e:"")+")");Err("ERROR: Index out of range in\nRequest.QueryString.Item("+e+")");};this.QueryString.Key.toString=function() {Err("ERROR: Wrong number of arguments or invalid property assignment\nRequest.QueryString.Key");};this.Version=1.0;this.Author="Andrew Urquhart (www.andrewu.co.uk)";}
var Request=new RObj(false);