/* json2.js * 2008-01-17 * Public Domain * No warranty expressed or implied. Use at your own risk. * See http://www.JSON.org/js.html */ if (!this.JSON) { JSON = function () { function f(n) { return n < 10 ? '0' + n : n; } Date.prototype.toJSON = function () { return this.getUTCFullYear() + '-' + f(this.getUTCMonth() + 1) + '-' + f(this.getUTCDate()) + 'T' + f(this.getUTCHours()) + ':' + f(this.getUTCMinutes()) + ':' + f(this.getUTCSeconds()) + 'Z'; }; var m = { '\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"': '\\"', '\\': '\\\\' }; function stringify(value, whitelist) { var a, i, k, l, r = /["\\\x00-\x1f\x7f-\x9f]/g, v; switch (typeof value) { case 'string': return r.test(value) ? '"' + value.replace(r, function (a) { var c = m[a]; if (c) { return c; } c = a.charCodeAt(); return '\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16); }) + '"' : '"' + value + '"'; case 'number': return isFinite(value) ? String(value) : 'null'; case 'boolean': case 'null': return String(value); case 'object': if (!value) { return 'null'; } if (typeof value.toJSON === 'function') { return stringify(value.toJSON()); } a = []; if (typeof value.length === 'number' && !(value.propertyIsEnumerable('length'))) { l = value.length; for (i = 0; i < l; i += 1) { a.push(stringify(value[i], whitelist) || 'null'); } return '[' + a.join(',') + ']'; } if (whitelist) { l = whitelist.length; for (i = 0; i < l; i += 1) { k = whitelist[i]; if (typeof k === 'string') { v = stringify(value[k], whitelist); if (v) { a.push(stringify(k) + ':' + v); } } } } else { for (k in value) { if (typeof k === 'string') { v = stringify(value[k], whitelist); if (v) { a.push(stringify(k) + ':' + v); } } } } return '{' + a.join(',') + '}'; } } return { stringify: stringify, parse: function (text, filter) { var j; function walk(k, v) { var i, n; if (v && typeof v === 'object') { for (i in v) { if (Object.prototype.hasOwnProperty.apply(v, [i])) { n = walk(i, v[i]); if (n !== undefined) { v[i] = n; } } } } return filter(k, v); } if (/^[\],:{}\s]*$/.test(text.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { j = eval('(' + text + ')'); return typeof filter === 'function' ? walk('', j) : j; } throw new SyntaxError('parseJSON'); } }; } (); } /* NOTE!! If you change this file, you should update AssemblyInfo.vb in the My Project section of this project. Update the node version number. Increment by 1. This will ensure the client will download an updated version of this script file! */ if (!Sd) { var Sd = { }; } if (!Sd.Common) { Sd.Common = { catchEnter: function(e) { if (e.key == 'enter') return false; } } } Sd.Login = { url: 'https://services.impulsedriven.com/login/20110514/', Params: function() { return JSON.parse('{"Username":"","Password":"","Guid":"","Result":0,"ReturnAddress":"","Data":0,"RememberLogin":true,"OriginHost":"","AccountID":0}') }, Attempt: function() { var user = $("input[id$='_TextUser']"); var pass = $("input[id$='_TextPass']"); var hidden = $("input[id$='_LoginParams']"); var params = Sd.Login.Params(); // Validation var m = []; if (user.val().trim() === '') { m.include('\tPlease enter an Email address.'); } if (pass.val().trim() === '') { m.include('\tPlease enter a Password.'); } if (m.length > 0) { alert('Please correct the following before attempting to Log In\n\n' + m.join('\n')); return false; } params.Data = 1; params.Username = user.val(); params.Password = pass.val(); params.OriginHost = location.hostname; if (Sd.Login.endsWith(location.toString(), Sd.Login.escape('+login')) === true && document.referrer && document.referrer !== '') { params.ReturnAddress = document.referrer; } else { params.ReturnAddress = location.toString(); } var data = JSON.stringify(params); hidden.val(data); if (!theForm) { return false; } theForm.method = 'POST'; theForm.action = Sd.Login.url + 'Login.axd'; theForm.submit(); return false; }, handleKeydown: function(e) { if (e.key == "enter") { Sd.Login.Attempt(); return false; } return true; }, endsWith: function (str, s) { var reg = new RegExp(s + "$"); return reg.test(str); }, escape: function(s) { var specials = ['/', '.', '*', '+', '?', '|','(', ')', '[', ']', '{', '}', '\\']; var r = new RegExp('(\\' + specials.join('|\\') + ')', 'g'); return s.replace(r, '\\$1'); } };