ÿþ<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>Untitled Page</title> <script type="text/javascript"> /*TITLE: Client-Side Request Object for javascript by Andrew Urquhart (UK) HOME: http://andrewu.co.uk/tools/request/ COPYRIGHT: You are free to use this script for any use you wish, the only thing I ask you do is keep this copyright message intact with the script. Please don't pass it off as your own work, but feel free to enhance it and send me the updated version. Please don't redistribute - it makes it harder to distribute new versions of the script. This script is provided as is, with no warranty of any kind. Use it at your own risk. VERSION: #1.41 2007-06-28 18:10 UTC*/ function RObj(ea) { var LS = ""; var QS = new Object(); var un = "undefined"; var x = null; // On platforms that understand the 'undefined' keyword replace 'null' with 'undefined' for maximum ASP-like behaviour. var f = "function"; var n = "number"; var r = "string"; var e1 = "ERROR: Index out of range in\r\nRequest.QueryString"; var e2 = "ERROR: Wrong number of arguments or invalid property assignment\r\nRequest.QueryString"; var e3 = "ERROR: Object doesn't support this property or method\r\nRequest.QueryString.Key"; var dU = window.decodeURIComponent ? 1 : 0; function Err(arg) { if (ea) { alert("Request Object:\r\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 (dU ? decodeURIComponent(d) : unescape(d)); } function OL(o) { var l = 0; for (var i in o) { if (typeof o[i] != f) { l++; } } return l; } function AK(key) { var auk = true; for (var u in QS) { if (typeof QS[u] != f && 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 == un) { return QS[key]; } else { if (typeof e == n) { var a = QS[key][Math.ceil(e)]; if (typeof a == un) { Err(e1 + "(\"" + key + "\").Item(" + e + ")"); } return a; } else { Err("ERROR: Expecting numeric input in\r\nRequest.QueryString(\"" + key + "\").Item(\"" + e + "\")"); } } } QS[key].Item.toString = function(e) { if (typeof e == un) { return QS[key].toString(); } else { var a = QS[key][e]; if (typeof a == un) { Err(e1 + "(\"" + key + "\").Item(" + e + ")"); } return a.toString(); } } QS[key].Key = function(e) { var t = typeof e; if (t == r) { var a = QS[key][e]; return (typeof a != un && a && a.toString() ? e : ""); } else { Err(e3 + "(" + (e ? e : "") + ")"); } } QS[key].Key.toString = function() { return x; } } 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 != f) { s += o[i] + ", "; } } var l = s.length; if (l > 1) { return (s.substring(0, l - 2)); } return (s == "" ? x : s); } function KM(k, o) { var k = k.toLowerCase(); for (var u in o) { if (typeof o[u] != f && 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 == un) { return LS; } else { if (typeof e == n) { var e = Math.ceil(e); var c = 0; for (var i in QS) { if (typeof QS[i] != f && ++c == e) { return QS[i]; } } Err(e1 + "().Item(" + e + ")"); } else { return QS[KM(e, QS)]; } } return x; } QS.Item.toString = function() { return LS.toString(); } QS.Key = function(e) { var t = typeof e; if (t == n) { var e = Math.ceil(e); var c = 0; for (var i in QS) { if (typeof QS[i] != f && ++c == e) { return i; } } } else if (t == r) { var e = KM(e, QS); var a = QS[e]; return (typeof a != un && a && a.toString() ? e : ""); } else { Err(e2 + "().Key(" + (e ? e : "") + ")"); } Err(e1 + "().Item(" + e + ")"); } QS.Key.toString = function() { Err(e2 + "().Key"); } this.QueryString = function(k) { if (typeof k == un) { return QS; } else { if (typeof k == n) { return QS.Item(k); } var k = KM(k, QS); if (typeof QS[k] == un) { t = new Object(); t.Count = function() { return 0; } t.Count.toString = function() { return "0"; } t.toString = function() { return x; } t.Item = function(e) { return x; } t.Item.toString = function() { return x; } t.Key = function(e) { Err(e3 + "(" + (e ? e : "") + ")"); } t.Key.toString = function() { return x; } return t; } 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 == un) { return LS.toString(); } else { if (typeof e == n) { var e = Math.ceil(e); var c = 0; for (var i in QS) { if (typeof QS[i] != f && ++c == e) { return QS[i]; } } Err(e1 + ".Item(" + e + ")"); } else { return QS[KM(e, QS)]; } } if (typeof e == n) { Err(e1 + ".Item(" + e + ")"); } return x; } this.QueryString.Item.toString = function() { return LS.toString(); } this.QueryString.Key = function(e) { var t = typeof e; if (t == n) { 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 == r) { var e = KM(e, QS); var a = QS[e]; return (typeof a != un && a && a.toString() ? e : ""); } else { Err(e2 + ".Key(" + (e ? e : "") + ")"); } Err(e1 + ".Item(" + e + ")"); } this.QueryString.Key.toString = function() { Err(e2 + ".Key"); } this.Version = 1.4; this.Author = "Andrew Urquhart (http://andrewu.co.uk)"; } var Request = new RObj(false); function validate_email(field,alerttxt) { with (field) { apos=value.indexOf("@"); dotpos=value.lastIndexOf("."); if (apos<1||dotpos-apos<2) {alert(alerttxt);return false;} else {return true;} } } function validate_form(thisform) { with (thisform) { if (validate_email(ea,"Not a valid e-mail address!")==false) {ea.focus();return false;} } } function retrieveLanguage(){ try { var Request = new RObj(false); var lang = Request.QueryString("lang"); } catch (Error) { alert(Error); } var join = document.getElementById("join"); if(lang == "en-US"){ join.firstChild.nodeValue = "Join Our Mailing List"; }else if(lang == "de-DE"){ join.firstChild.nodeValue = "Newsletter abonnieren"; }else if(lang == "ru-RU"){ join.firstChild.nodeValue = ">4?8A0BLAO =0 @0AAK;:C"; }else{ join.firstChild.nodeValue = "Join Our Mailing List"; } } </script> </head> <body onload="javascript:retrieveLanguage();"> <h2 id="join" style="color: rgb(99,103,106);font-family:Arial;font-weight:bold;font-size:12px;margin:0px 0px 5px 0px;text-align:left;">Join Our Mailing List</h2> <form method="post" onsubmit="return validate_form(this);" action="http://visitor.constantcontact.com/d.jsp" target="_blank" style="margin:0;" name="ccoptin"> <input type="hidden" name="m" value="1101954599347" /> <input type="hidden" name="p" value="oi" /> <span style="font-family: Arial; color: rgb(99,103,106); font-size: 12px; font-weight: normal;text-align:left;"> Email: </span> <input style="margin-top:5px;border-bottom: rgb(153,153,153) 1px solid; border-left: rgb(153,153,153) 1px solid; width: 100px; font-size: 10pt; border-top: rgb(153,153,153) 1px solid; border-right: rgb(153,153,153) 1px solid" name="ea" type="text" /><br /> <div style="text-align:right;width:100%;"> <input class="submit" type="submit" style="font-family: Arial, Helvetica, sans-serif; font-size: 10pt; margin-top:5px;" name="go" value="OK" /> </div> </form> </body> </html>