sp-jsom-node
Version:
SharePoint JavaScript Object Model for Node.js
1,232 lines (1,146 loc) • 714 kB
JavaScript
function $_global_init() {
{
if ("undefined" == typeof g_all_modules) {
g_all_modules = {};
}
g_all_modules["init.js"] = {
"version": {
"rmj": 16,
"rmm": 0,
"rup": 21319,
"rpr": 12007
}
};
}
if (-1 != navigator.userAgent.indexOf('ProfilerMark') && 'function' == typeof msWriteProfilerMark) {
spWriteProfilerMark = function(m) {
window.msWriteProfilerMark(m);
};
}
if (typeof spWriteProfilerMark == 'function')
spWriteProfilerMark("perfMarkBegin_" + "init.js");
if (typeof OffSwitch == 'undefined') {
OffSwitch = {
"__namespace": true
};
OffSwitch_module_def();
}
if (typeof RuntimeErrors == 'undefined') {
RuntimeErrors = {
"__namespace": true
};
RuntimeErrors_module_def();
}
if (typeof Verify == 'undefined') {
Verify = {
"__namespace": true
};
Verify_module_def();
}
if (typeof Define == 'undefined') {
Define = {
"__namespace": true
};
Define_module_def();
}
if (typeof BrowserDetection == 'undefined') {
BrowserDetection = {
"__namespace": true
};
BrowserDetection_module_def();
}
(function() {
BrowserisOld.prototype = {
firefox: undefined,
firefox36up: undefined,
firefox3up: undefined,
firefox4up: undefined,
ie: undefined,
ie55up: undefined,
ie5up: undefined,
ie7down: undefined,
ie8down: undefined,
ie8standard: undefined,
ie8standardUp: undefined,
ie9down: undefined,
ie9standardUp: undefined,
ipad: undefined,
windowsphone: undefined,
chrome: undefined,
chrome7up: undefined,
chrome8up: undefined,
chrome9up: undefined,
chrome81up: undefined,
iever: undefined,
mac: undefined,
major: undefined,
msTouch: undefined,
isTouch: undefined,
nav: undefined,
nav6: undefined,
nav6up: undefined,
nav7up: undefined,
osver: undefined,
safari: undefined,
safari125up: undefined,
safari3up: undefined,
verIEFull: undefined,
w3c: undefined,
webKit: undefined,
win: undefined,
win8AppHost: undefined,
win32: undefined,
win64bit: undefined,
winnt: undefined,
armProcessor: undefined
};
Browseris.prototype = BrowserisOld.prototype;
Browseris.prototype.ie10standardUp = undefined;
Browseris.prototype.ie11 = undefined;
Browseris.prototype.ie11up = undefined;
Browseris.prototype.msEdge = undefined;
function Browseris() {
var agt = navigator.userAgent.toLowerCase();
var navIdx;
this.osver = 1.0;
if (Boolean(agt)) {
var stOSVer = agt.substring(agt.indexOf("windows ") + 11);
this.osver = parseFloat(stOSVer);
}
this.major = parseInt(navigator.appVersion);
this.msEdge = agt.indexOf("edge/") != -1;
var msieIdx = agt.indexOf("msie");
var tridentIdx = agt.indexOf("trident");
this.ie = msieIdx != -1 || tridentIdx != -1;
var stIEVer = "0";
if (this.ie) {
if (msieIdx != -1) {
stIEVer = agt.substring(msieIdx + 5);
}
else {
var rvIdx = agt.indexOf("rv:");
if (rvIdx != -1) {
stIEVer = agt.substring(rvIdx + 3);
}
}
}
this.iever = parseInt(stIEVer);
this.verIEFull = parseFloat(stIEVer);
this.ie4up = this.ie && this.major >= 4;
this.ie5up = this.ie && this.iever >= 5;
this.ie55up = this.ie && this.verIEFull >= 5.5;
this.ie6up = this.ie && this.iever >= 6;
this.ie7down = this.ie && this.iever <= 7;
this.ie8down = this.ie && this.iever <= 8;
this.ie9down = this.ie && this.iever <= 9;
this.ie7up = this.ie && this.iever >= 7;
this.ie8standard = this.ie && Boolean(document.documentMode) && document.documentMode == 8;
this.ie8standardUp = this.ie && (Boolean(document.documentMode) && document.documentMode >= 8);
this.ie9standardUp = this.ie && (Boolean(document.documentMode) && document.documentMode >= 9);
this.ie10standardUp = this.ie && (Boolean(document.documentMode) && document.documentMode >= 10);
this.ie11 = this.ie && Boolean(document.documentMode) && document.documentMode == 11;
this.ie11up = this.ie && (Boolean(document.documentMode) && document.documentMode >= 11);
this.nav = agt.indexOf('mozilla') != -1 && agt.indexOf('spoofer') == -1 && agt.indexOf('compatible') == -1 && !this.ie;
this.nav6 = this.nav && this.major == 5;
this.nav6up = this.nav && this.major >= 5;
this.nav7up = false;
if (this.nav6up) {
navIdx = agt.indexOf("netscape/");
if (navIdx >= 0)
this.nav7up = parseInt(agt.substring(navIdx + 9)) >= 7;
}
this.winnt = agt.indexOf("winnt") != -1 || agt.indexOf("windows nt") != -1;
this.win32 = this.major >= 4 && navigator.platform == "Win32" || agt.indexOf("win32") != -1 || agt.indexOf("32bit") != -1;
this.win64bit = agt.indexOf("win64") != -1;
this.win = this.winnt || this.win32 || this.win64bit;
this.safari = agt.indexOf("webkit") != -1 && !this.ie && !this.msEdge;
this.safari125up = false;
this.safari3up = false;
if (this.safari && this.major >= 5) {
navIdx = agt.indexOf("webkit/");
if (navIdx >= 0)
this.safari125up = parseInt(agt.substring(navIdx + 7)) >= 125;
var verIdx = agt.indexOf("version/");
if (verIdx >= 0)
this.safari3up = parseInt(agt.substring(verIdx + 8)) >= 3;
}
this.firefox = this.nav && agt.indexOf("firefox") != -1;
this.firefox3up = false;
this.firefox36up = false;
this.firefox4up = false;
if (this.firefox && this.major >= 5) {
var ffVerIdx = agt.indexOf("firefox/");
if (ffVerIdx >= 0) {
var firefoxVStr = agt.substring(ffVerIdx + 8);
this.firefox3up = parseInt(firefoxVStr) >= 3;
this.firefox36up = parseFloat(firefoxVStr) >= 3.6;
this.firefox4up = parseInt(firefoxVStr) >= 4;
}
}
this.chrome = this.nav && agt.indexOf("chrome") != -1 && !this.ie && !this.msEdge;
this.chrome7up = false;
this.chrome8up = false;
this.chrome9up = false;
this.chrome81up = false;
if (this.chrome && this.major >= 5) {
var chmVerIdx = agt.indexOf("chrome/");
if (chmVerIdx >= 0) {
var chmVerStr = agt.substring(chmVerIdx + 7);
var chmVerInt = parseInt(chmVerStr);
this.chrome7up = chmVerInt >= 7;
this.chrome8up = chmVerInt >= 8;
this.chrome9up = chmVerInt >= 9;
this.chrome81up = chmVerInt >= 81;
}
}
this.ipad = agt.indexOf("ipad") != -1;
this.windowsphone = agt.indexOf("windows phone") != -1;
this.aol = this.ie && agt.indexOf(" aol ") != -1;
this.mac = agt.indexOf("mac") != -1;
this.w3c = this.nav6up;
this.webKit = agt.indexOf("webkit") != -1 && !this.ie && !this.msEdge;
this.win8AppHost = agt.indexOf("msapphost") != -1;
this.msTouch = typeof navigator.msMaxTouchPoints != "undefined" && navigator.msMaxTouchPoints > 0;
this.isTouch = this.msTouch || "ontouchstart" in document.documentElement;
this.armProcessor = agt.indexOf("arm") != -1;
}
function BrowserisOld() {
var agt = navigator.userAgent.toLowerCase();
var navIdx;
this.osver = 1.0;
if (Boolean(agt)) {
var stOSVer = agt.substring(agt.indexOf("windows ") + 11);
this.osver = parseFloat(stOSVer);
}
this.major = parseInt(navigator.appVersion);
this.nav = agt.indexOf('mozilla') != -1 && (agt.indexOf('spoofer') == -1 && agt.indexOf('compatible') == -1);
this.nav6 = this.nav && this.major == 5;
this.nav6up = this.nav && this.major >= 5;
this.nav7up = false;
if (this.nav6up) {
navIdx = agt.indexOf("netscape/");
if (navIdx >= 0)
this.nav7up = parseInt(agt.substring(navIdx + 9)) >= 7;
}
this.ie = agt.indexOf("msie") != -1;
this.ipad = agt.indexOf("ipad") != -1;
this.windowsphone = agt.indexOf("windows phone") != -1;
this.aol = this.ie && agt.indexOf(" aol ") != -1;
if (this.ie) {
var stIEVer = agt.substring(agt.indexOf("msie ") + 5);
this.iever = parseInt(stIEVer);
this.verIEFull = parseFloat(stIEVer);
}
else
this.iever = 0;
this.ie4up = this.ie && this.major >= 4;
this.ie5up = this.ie && this.iever >= 5;
this.ie55up = this.ie && this.verIEFull >= 5.5;
this.ie6up = this.ie && this.iever >= 6;
this.ie7down = this.ie && this.iever <= 7;
this.ie8down = this.ie && this.iever <= 8;
this.ie9down = this.ie && this.iever <= 9;
this.ie7up = this.ie && this.iever >= 7;
this.ie8standard = this.ie && Boolean(document.documentMode) && document.documentMode == 8;
this.ie8standardUp = this.ie && Boolean(document.documentMode) && document.documentMode >= 8;
this.ie9standardUp = this.ie && Boolean(document.documentMode) && document.documentMode >= 9;
this.ie10standardUp = this.ie && Boolean(document.documentMode) && document.documentMode >= 10;
this.winnt = agt.indexOf("winnt") != -1 || agt.indexOf("windows nt") != -1;
this.win32 = this.major >= 4 && navigator.platform == "Win32" || agt.indexOf("win32") != -1 || agt.indexOf("32bit") != -1;
this.win64bit = agt.indexOf("win64") != -1;
this.win = this.winnt || this.win32 || this.win64bit;
this.mac = agt.indexOf("mac") != -1;
this.w3c = this.nav6up;
this.webKit = agt.indexOf("webkit") != -1;
this.safari = agt.indexOf("webkit") != -1;
this.safari125up = false;
this.safari3up = false;
if (this.safari && this.major >= 5) {
navIdx = agt.indexOf("webkit/");
if (navIdx >= 0)
this.safari125up = parseInt(agt.substring(navIdx + 7)) >= 125;
var verIdx = agt.indexOf("version/");
if (verIdx >= 0)
this.safari3up = parseInt(agt.substring(verIdx + 8)) >= 3;
}
this.firefox = this.nav && agt.indexOf("firefox") != -1;
this.firefox3up = false;
this.firefox36up = false;
this.firefox4up = false;
if (this.firefox && this.major >= 5) {
var ffVerIdx = agt.indexOf("firefox/");
if (ffVerIdx >= 0) {
var firefoxVStr = agt.substring(ffVerIdx + 8);
this.firefox3up = parseInt(firefoxVStr) >= 3;
this.firefox36up = parseFloat(firefoxVStr) >= 3.6;
this.firefox4up = parseInt(firefoxVStr) >= 4;
}
}
this.win8AppHost = agt.indexOf("msapphost") != -1;
this.chrome = this.nav && agt.indexOf("chrome") != -1;
this.chrome7up = false;
this.chrome8up = false;
this.chrome9up = false;
this.chrome81up = false;
if (this.chrome && this.major >= 5) {
var chmVerIdx = agt.indexOf("chrome/");
if (chmVerIdx >= 0) {
var chmVerStr = agt.substring(chmVerIdx + 7);
var chmVerInt = parseInt(chmVerStr);
this.chrome7up = chmVerInt >= 7;
this.chrome8up = chmVerInt >= 8;
this.chrome9up = chmVerInt >= 9;
this.chrome81up = chmVerInt >= 81;
}
}
this.msTouch = typeof navigator.msMaxTouchPoints != "undefined" && navigator.msMaxTouchPoints > 0;
this.isTouch = this.msTouch || "ontouchstart" in document.documentElement;
this.armProcessor = agt.indexOf("arm") != -1;
}
if (typeof _browserisFlight !== "undefined") {
BrowserDetection.userAgent = new Browseris();
}
else {
BrowserDetection.userAgent = new BrowserisOld();
}
})();
browseris = BrowserDetection.userAgent;
bis = BrowserDetection.userAgent;
if (typeof BrowserStorage == 'undefined') {
BrowserStorage = {
"__namespace": true
};
BrowserStorage_module_def();
}
if (typeof CSSUtil == 'undefined') {
CSSUtil = {
"__namespace": true
};
CSSUtil_module_def();
}
;
pxToNum = CSSUtil.pxToNum;
GetWidthFromPxString = CSSUtil.pxToFloat;
GetCurrentEltStyle = CSSUtil.getCurrentStyle;
GetCurrentEltStyleByNames = CSSUtil.getCurrentEltStyleByNames;
GetOpacity = CSSUtil.getOpacity;
SetOpacity = CSSUtil.setOpacity;
HasCssClass = CSSUtil.HasClass;
AddCssClassToElement = CSSUtil.AddClass;
RemoveCssClassFromElement = CSSUtil.RemoveClass;
getCurrentEltStyleByNames = CSSUtil.getCurrentEltStyleByNames;
if (typeof DOM == 'undefined') {
DOM = {
"__namespace": true
};
DOM_module_def();
}
fRightToLeft = DOM.rightToLeft;
cancelDefault = DOM.cancelDefault;
AbsLeft = DOM.AbsLeft;
AbsTop = DOM.AbsTop;
CancelEvent = DOM.CancelEvent;
GetElementsByName = DOM.GetElementsByName;
GetEventCoords = DOM.GetEventCoords;
GetEventSrcElement = DOM.GetEventSrcElement;
GetInnerText = DOM.GetInnerText;
PreventDefaultNavigation = DOM.PreventDefaultNavigation;
SetEvent = DOM.SetEvent;
if (typeof Encoding == 'undefined') {
Encoding = {
"__namespace": true
};
Encoding_module_def();
}
encodeScriptQuote = Encoding.EncodeScriptQuote;
STSHtmlEncode = Encoding.HtmlEncode;
STSHtmlEncodeEx = Encoding.HtmlEncodeEx;
STSHtmlDecode = Encoding.HtmlDecode;
StAttrQuote = Encoding.AttrQuote;
STSScriptEncode = Encoding.ScriptEncode;
STSScriptEncodeWithQuote = Encoding.ScriptEncodeWithQuote;
CanonicalizeUrlEncodingCase = Encoding.CanonicalizeUrlEncodingCase;
EncodePath = Encoding.EncodePath;
if (typeof ExpFlighting == 'undefined') {
ExpFlighting = {
"__namespace": true
};
ExpFlighting_module_def();
}
if (typeof IE8Support == 'undefined') {
IE8Support = {
"__namespace": true
};
IE8Support_module_def();
}
if (typeof RequestUtil == 'undefined') {
RequestUtil = {
"__namespace": true
};
RequestUtil_module_def();
}
if (typeof StringUtil == 'undefined') {
StringUtil = {
"__namespace": true
};
StringUtil_module_def();
}
StBuildParam = StringUtil.BuildParam;
if (typeof TypeUtil == 'undefined') {
TypeUtil = {
"__namespace": true
};
TypeUtil_module_def();
}
IsArray = TypeUtil.IsArray;
IsNullOrUndefined = TypeUtil.IsNullOrUndefined;
ObjectUtil = {
"__namespace": true
};
ObjectUtil_module_def();
URI = function(uriString, options) {
var that = this;
var URI_POUND = "#";
var URI_COLON = ":";
var URI_FORWARDSLASH = "/";
var URI_DOUBLE_FORWARDSLASHES = "//";
var URI_QUESTIONMARK = "?";
var URI_SEMICOLON = ";";
var URI_AMPERSAND = "&";
var URI_AT = "@";
var URI_EQUAL = "=";
var URI_DELIMITERS = ";/?:@&=$,";
var URI_AUTHORITY_TERMINATORS = "/?";
var m_queryCaseInsensitive = false;
if (typeof options !== "undefined" && typeof options.queryCaseInsensitive === 'boolean') {
m_queryCaseInsensitive = options.queryCaseInsensitive;
}
var m_disableEncodingDecodingForLegacyCode = false;
if (typeof options !== "undefined" && typeof options.disableEncodingDecodingForLegacyCode === 'boolean') {
m_disableEncodingDecodingForLegacyCode = options.disableEncodingDecodingForLegacyCode;
}
var m_pathCaseInsensitive = false;
if (typeof options !== "undefined" && typeof options.pathCaseInsensitive === 'boolean') {
m_pathCaseInsensitive = options.pathCaseInsensitive;
}
var m_scheme = "";
var m_user = "";
var m_host = "";
var m_port = "";
var m_path = "";
var m_pathEncoded = "";
var m_parameters = "";
var m_query = {};
var m_fragment = "";
this.getScheme = function() {
return m_scheme;
};
this.setScheme = function(scheme) {
m_scheme = decodeURIComponentIfNecessary(scheme);
};
this.getAuthority = function() {
return getAuthority(false);
};
this.setAuthority = function(authority) {
parseAuthority(authority);
};
this.getUser = function() {
return m_user;
};
this.getHost = function() {
return m_host;
};
this.getPort = function() {
return m_port;
};
this.getPath = function(trimTrailingSlash) {
var retPath = m_path;
if (typeof trimTrailingSlash === 'boolean' && trimTrailingSlash) {
if (retPath !== null && retPath.lastIndexOf(URI_FORWARDSLASH) === retPath.length - 1) {
retPath = retPath.slice(0, -1);
}
}
return retPath;
};
this.setPath = function(path) {
if (path.indexOf(URI_FORWARDSLASH) !== 0) {
path = URI_FORWARDSLASH + path;
}
parsePath(path);
};
this.getPathSegments = function() {
if (m_path === null) {
return [];
}
var ret = m_path.split(URI_FORWARDSLASH);
if (ret.length > 0) {
if (ret[0] === "") {
ret.shift();
}
else if (ret[ret.length - 1] === "") {
ret.pop();
}
}
return ret;
};
this.getLastPathSegment = function(includeParameters) {
var pathSegments = that.getPathSegments();
if (pathSegments.length === 0) {
return "";
}
else {
var retPath = pathSegments[pathSegments.length - 1];
if (typeof includeParameters !== 'boolean' || !includeParameters) {
var paramBeginPos = retPath.indexOf(URI_SEMICOLON);
if (paramBeginPos >= 0) {
retPath = retPath.substring(0, paramBeginPos);
}
}
return retPath;
}
};
this.getParameters = function() {
return m_parameters;
};
this.getQuery = function() {
return serializeQuery(m_query);
};
this.setQuery = function(query) {
var queryObject = deserializeQuery(query);
that.setQueryFromObject(queryObject);
};
this.getQueryAsObject = function() {
return m_query;
};
this.setQueryFromObject = function(queryObj) {
m_query = {};
for (var queryKey in queryObj) {
if (queryObj.hasOwnProperty(queryKey)) {
that.setQueryParameter(queryKey, queryObj[queryKey]);
}
}
};
this.getQueryParameter = function(queryKey) {
var ret = null;
var query = that.getQueryAsObject();
if (m_queryCaseInsensitive) {
for (var key in query) {
if (m_query.hasOwnProperty(key) && key.toLowerCase() === queryKey.toLowerCase()) {
ret = query[key];
}
}
}
else {
ret = query[queryKey];
}
if (typeof ret !== 'undefined') {
return ret;
}
else {
return null;
}
};
this.setQueryParameter = function(queryKey, queryValue) {
var queryKeyDecoded = decodeURIComponentIfNecessary(queryKey);
var queryValueDecoded = decodeURIComponentIfNecessary(queryValue);
m_query[queryKeyDecoded] = queryValueDecoded;
};
this.removeQueryParameter = function(queryKey) {
var queryKeyDecoded = decodeURIComponentIfNecessary(queryKey);
delete m_query[queryKeyDecoded];
};
this.getFragment = function() {
return m_fragment;
};
this.setFragment = function(fragment) {
if (fragment.indexOf(URI_POUND) === 0) {
fragment = fragment.substring(1);
}
m_fragment = decodeURIComponentIfNecessary(fragment);
};
var isStringEqualInsensitive = function(a, b) {
if (a != null && b != null) {
return a.toLowerCase() === b.toLowerCase();
}
else {
return a === b;
}
};
var isStringEqual = function(a, b) {
return a === b;
};
this.equals = function(uri) {
return m_scheme.toLowerCase() === (uri.getScheme()).toLowerCase() && m_user === uri.getUser() && m_host.toLowerCase() === (uri.getHost()).toLowerCase() && m_port === uri.getPort() && (m_pathCaseInsensitive ? isStringEqualInsensitive : isStringEqual)(that.getPath(true), uri.getPath(true)) && m_parameters === uri.getParameters() && (m_queryCaseInsensitive ? isStringEqualInsensitive : isStringEqual)(that.getQuery(), uri.getQuery()) && m_fragment === uri.getFragment();
};
this.equivalent = function(uri) {
return isStringEqualInsensitive(m_scheme, uri.getScheme()) && isStringEqualInsensitive(m_user, uri.getUser()) && isStringEqualInsensitive(m_host, uri.getHost()) && isStringEqualInsensitive(m_port, uri.getPort()) && isStringEqualInsensitive(that.getPath(true), uri.getPath(true)) && isStringEqualInsensitive(m_parameters, uri.getParameters()) && ObjectUtil.deepCompare(that.getQueryAsObject(), uri.getQueryAsObject(), DecodeCompare) && isStringEqualInsensitive(m_fragment, uri.getFragment());
function DecodeCompare(l, r) {
var ll = URI.decodeURIComponent(l);
var rr = URI.decodeURIComponent(r);
return ll === rr;
}
};
this.getString = function(outputOptions) {
return getStringInternal(true, outputOptions);
};
this.getDecodedStringForDisplay = function() {
return getStringInternal(false);
};
this.getStringWithoutQueryAndFragment = function() {
return getStringWithoutQueryAndFragmentInternal(true);
};
var getStringInternal = function(encoded, outputOptions) {
var ret = getStringWithoutQueryAndFragmentInternal(encoded, outputOptions);
var query = serializeQuery(m_query, encoded);
if (query !== "") {
ret += URI_QUESTIONMARK + query;
}
if (m_fragment !== "") {
ret += URI_POUND + (encoded ? encodeURIComponentIfNecessary(m_fragment) : m_fragment);
}
return ret;
};
var getStringWithoutQueryAndFragmentInternal = function(encoded, outputOptions) {
var ret = "";
if (m_scheme !== "") {
ret += (encoded ? encodeURIComponentIfNecessary(m_scheme) : m_scheme) + URI_COLON;
}
var authority = getAuthority(encoded, outputOptions);
if (authority !== "") {
ret += URI_DOUBLE_FORWARDSLASHES + authority;
}
if (m_pathEncoded !== "") {
ret += encoded ? m_pathEncoded : m_path;
}
return ret;
};
var normalizeQueryKey = function(queryKey) {
var key = queryKey;
if (m_queryCaseInsensitive) {
key = key.toLowerCase();
}
return key;
};
var deserializeQuery = function(queryStr) {
var queryObj = {};
if (queryStr.indexOf(URI_QUESTIONMARK) === 0) {
queryStr = queryStr.substring(1);
}
var queryParts = queryStr.split(/[;&]+/);
for (var queryIdx = 0; queryIdx < queryParts.length; queryIdx++) {
var queryPart = queryParts[queryIdx];
var queryPartSegments = queryPart.split(URI_EQUAL);
if (queryPartSegments.length > 0) {
var queryKey = queryPartSegments[0];
if (queryKey.length > 0) {
var queryValue = "";
if (queryPartSegments.length == 2) {
queryValue = queryPartSegments[1];
}
queryObj[queryKey] = queryValue;
}
}
}
return queryObj;
};
var serializeQuery = function(queryObj, encoded) {
encoded = typeof encoded === "undefined" ? false : encoded;
var queryStr = "";
for (var queryKey in queryObj) {
if (queryObj.hasOwnProperty(queryKey)) {
var key = queryKey;
var value = queryObj[queryKey];
if (encoded) {
key = encodeURIComponentIfNecessary(key);
value = encodeURIComponentIfNecessary(value);
}
if (value === null || value === "") {
queryStr += key + URI_EQUAL + URI_AMPERSAND;
}
else {
queryStr += key + URI_EQUAL + value + URI_AMPERSAND;
}
}
}
if (queryStr !== "") {
queryStr = queryStr.slice(0, -1);
}
return queryStr;
};
var parseURI = function() {
var remainingString = uriString;
var fragmentBeginPos = remainingString.indexOf(URI_POUND);
if (fragmentBeginPos >= 0) {
var fragment = remainingString.substring(fragmentBeginPos + 1);
that.setFragment(fragment);
remainingString = remainingString.substring(0, fragmentBeginPos);
}
var schemeEndPos = findOneOf(remainingString, URI_DELIMITERS);
if (schemeEndPos >= 0) {
var firstColonPos = remainingString.indexOf(URI_COLON);
if (firstColonPos >= 0 && firstColonPos === schemeEndPos) {
m_scheme = remainingString.substring(0, schemeEndPos);
remainingString = remainingString.substring(schemeEndPos + 1);
}
}
else {
parsePath(remainingString);
return;
}
var authority = "";
var doubleSlashPos = remainingString.indexOf(URI_DOUBLE_FORWARDSLASHES);
if (doubleSlashPos >= 0 && doubleSlashPos === 0) {
remainingString = remainingString.substring(2);
var nothingElseLeft;
var authorityEndPos = findOneOf(remainingString, URI_AUTHORITY_TERMINATORS);
if (authorityEndPos >= 0) {
authority = remainingString.substring(0, authorityEndPos);
remainingString = remainingString.substring(authorityEndPos);
nothingElseLeft = false;
}
else {
authority = remainingString;
nothingElseLeft = true;
}
parseAuthority(authority);
if (nothingElseLeft) {
return;
}
}
var queryBeginPos = remainingString.indexOf(URI_QUESTIONMARK);
if (queryBeginPos >= 0) {
that.setQuery(remainingString.substring(queryBeginPos + 1));
remainingString = remainingString.substring(0, queryBeginPos);
}
parsePath(remainingString);
};
var parseAuthority = function(authority) {
m_host = authority;
var userNameEndPos = authority.lastIndexOf(URI_AT);
if (userNameEndPos >= 0) {
m_host = m_host.substring(userNameEndPos + 1);
}
var hostPortSeparatorPos = m_host.indexOf(URI_COLON);
if (userNameEndPos < 0 && hostPortSeparatorPos < 0) {
return;
}
var authorityComponents = authority;
if (userNameEndPos < 0) {
m_host = authorityComponents;
}
else {
m_user = authorityComponents.substring(0, userNameEndPos);
m_host = authorityComponents.substring(userNameEndPos + 1);
}
if (hostPortSeparatorPos >= 0) {
m_port = m_host.substring(hostPortSeparatorPos + 1);
m_host = m_host.substring(0, hostPortSeparatorPos);
}
m_user = decodeURIComponentIfNecessary(m_user);
m_host = decodeURIComponentIfNecessary(m_host);
};
var parsePath = function(remainingString) {
var paramBeginPos = remainingString.indexOf(URI_SEMICOLON);
if (paramBeginPos >= 0) {
m_parameters = decodeURIComponentIfNecessary(remainingString.substring(paramBeginPos + 1));
}
m_path = decodeURIComponentIfNecessary(remainingString);
var encodedPathSegments = remainingString.split(URI_FORWARDSLASH);
for (var i = 0; i < encodedPathSegments.length; ++i) {
var segment = encodedPathSegments[i];
var segmentAndParameters = segment.split(URI_SEMICOLON);
var decodedSegment = decodeURIComponentIfNecessary(segmentAndParameters[0]);
encodedPathSegments[i] = encodeURIComponentIfNecessary(decodedSegment);
for (var j = 1; j < segmentAndParameters.length; ++j) {
var decodedParameter = decodeURIComponentIfNecessary(segmentAndParameters[j]);
encodedPathSegments[i] += URI_SEMICOLON + encodeURIComponentIfNecessary(decodedParameter);
}
}
m_pathEncoded = encodedPathSegments.join(URI_FORWARDSLASH);
};
var findOneOf = function(str, searchValues) {
for (var strIdx = 0; strIdx < str.length; strIdx++) {
var c = str[strIdx];
for (var delimIdx = 0; delimIdx < searchValues.length; delimIdx++) {
if (c === searchValues[delimIdx]) {
return strIdx;
}
}
}
return -1;
};
var getUserEncodedIfNecessary = function() {
var user;
if (m_disableEncodingDecodingForLegacyCode) {
user = m_user;
}
else {
user = encodeURIComponentIfNecessary(m_user);
user = user.replace("%3A", ":");
}
return user;
};
var getAuthority = function(encoded, outputOptions) {
var doNotPercentEncodeHost = false;
if (typeof outputOptions !== "undefined" && typeof outputOptions.doNotPercentEncodeHost === 'boolean') {
doNotPercentEncodeHost = outputOptions.doNotPercentEncodeHost;
}
var authority = "";
var user;
var host;
var port;
if (encoded) {
user = getUserEncodedIfNecessary();
if (doNotPercentEncodeHost) {
host = m_host;
}
else {
host = encodeURIComponentIfNecessary(m_host);
}
port = encodeURIComponentIfNecessary(m_port);
}
else {
user = m_user;
host = m_host;
port = m_port;
}
if (user !== "") {
authority = user + URI_AT;
}
if (m_host !== "") {
authority += host;
}
if (m_port !== "") {
authority += URI_COLON + port;
}
return authority;
};
var encodeURIComponentIfNecessary = function(component) {
return m_disableEncodingDecodingForLegacyCode ? component : encodeURIComponent(component);
};
var decodeURIComponentIfNecessary = function(component) {
return m_disableEncodingDecodingForLegacyCode ? component : URI.decodeURIComponent(component);
};
parseURI();
};
(function() {
var g_rgdwchMinEncoded = [0x00000000, 0x00000080, 0x00000800, 0x00010000, 0x00200000, 0x04000000, 0x80000000];
function Vutf8ToUnicode(rgBytes) {
var ix = 0;
var strResult = "";
var dwch, wch, uch;
var nTrailBytes, nTrailBytesOrig;
while (ix < rgBytes.length) {
if (rgBytes[ix] <= 0x007f) {
strResult += String.fromCharCode(rgBytes[ix++]);
}
else {
uch = rgBytes[ix++];
nTrailBytes = Boolean(uch & 0x20) ? Boolean(uch & 0x10) ? 3 : 2 : 1;
nTrailBytesOrig = nTrailBytes;
dwch = uch & 0xff >>> 2 + nTrailBytes;
while (Boolean(nTrailBytes) && ix < rgBytes.length) {
--nTrailBytes;
uch = rgBytes[ix++];
if (uch == 0) {
return strResult;
}
if ((uch & 0xC0) != 0x80) {
strResult += '?';
break;
}
dwch = dwch << 6 | uch & 0x003f;
}
if (Boolean(nTrailBytes)) {
strResult += '?';
break;
}
if (dwch < g_rgdwchMinEncoded[nTrailBytesOrig]) {
strResult += '?';
break;
}
else if (dwch <= 0xffff) {
strResult += String.fromCharCode(dwch);
}
else if (dwch <= 0x10ffff) {
dwch -= 0x10000;
strResult += String.fromCharCode(0xD800 | dwch >>> 10);
strResult += String.fromCharCode(0xDC00 | dwch & 0x003FF);
}
else {
strResult += '?';
}
}
}
return strResult;
}
function unescapeProperlyInternal(str) {
if (str == null)
return "null";
var ix = 0, ixEntity = 0;
var strResult = "";
var rgUTF8Bytes = [];
var ixUTF8Bytes = 0;
var hexString, hexCode;
while (ix < str.length) {
if (str.charAt(ix) == '%') {
if (str.charAt(++ix) == 'u') {
hexString = "";
for (ixEntity = 0; ixEntity < 4 && ix < str.length; ++ixEntity) {
hexString += str.charAt(++ix);
}
while (hexString.length < 4) {
hexString += '0';
}
hexCode = parseInt(hexString, 16);
if (isNaN(hexCode)) {
strResult += '?';
}
else {
strResult += String.fromCharCode(hexCode);
}
}
else {
hexString = "";
for (ixEntity = 0; ixEntity < 2 && ix < str.length; ++ixEntity) {
hexString += str.charAt(ix++);
}
while (hexString.length < 2) {
hexString += '0';
}
hexCode = parseInt(hexString, 16);
if (isNaN(hexCode)) {
if (Boolean(ixUTF8Bytes)) {
strResult += Vutf8ToUnicode(rgUTF8Bytes);
ixUTF8Bytes = 0;
rgUTF8Bytes.length = ixUTF8Bytes;
}
strResult += '?';
}
else {
rgUTF8Bytes[ixUTF8Bytes++] = hexCode;
}
}
}
else {
if (Boolean(ixUTF8Bytes)) {
strResult += Vutf8ToUnicode(rgUTF8Bytes);
ixUTF8Bytes = 0;
rgUTF8Bytes.length = ixUTF8Bytes;
}
strResult += str.charAt(ix++);
}
}
if (Boolean(ixUTF8Bytes)) {
strResult += Vutf8ToUnicode(rgUTF8Bytes);
ixUTF8Bytes = 0;
rgUTF8Bytes.length = ixUTF8Bytes;
}
return strResult;
}
function URI_unescapeProperly(str) {
var strResult = null;
try {
strResult = decodeURIComponent(str);
}
catch (e) {
strResult = unescapeProperlyInternal(str);
}
return strResult;
}
function URI_GetAbsoluteUrl(url) {
var dummyAnchor = document.createElement('a');
dummyAnchor.href = url;
var retVal = dummyAnchor.href;
dummyAnchor = null;
return retVal;
}
;
function URI_RemoveQueryParameterFromUrl(stURL, stParameterName) {
var startArg = stURL.indexOf("?");
var startFragment = stURL.indexOf("#");
if (-1 == startArg)
return stURL;
if (-1 == startFragment)
startFragment = stURL.length;
if (startFragment <= startArg)
return stURL;
var stUrlArgs = stURL.substr(startArg, startFragment - startArg);
var re = new RegExp("[&?]" + stParameterName + "=[^&]*", "");
stUrlArgs = stUrlArgs.replace(re, "");
if (stUrlArgs.length > 0 && "&" == stUrlArgs[0]) {
stUrlArgs = "?" + stUrlArgs.substr(1);
}
return stURL.substr(0, startArg) + stUrlArgs + stURL.substr(startFragment);
}
function URI_RemoveUrlKeyValue(keyName, url) {
var re = new RegExp(keyName + "=[^&]*&");
url = url.replace(re, "");
re = new RegExp(keyName + "=[^&]*");
url = url.replace(re, "");
return url;
}
function URI_RemoveParametersFromUrl(url) {
var paramsBeginPos = url.indexOf('?');
if (paramsBeginPos == -1)
return url;
else
return url.substr(0, paramsBeginPos);
}
function URI_StURLSetVar2(stURL, stVar, stValue) {
var stNewSet = stVar + "=" + stValue;
var ichQ = stURL.indexOf("?");
var ichH = stURL.indexOf("#");
if (ichQ != -1) {
var ich = stURL.indexOf("?" + stVar + "=", ichQ);
if (ich == -1) {
ich = stURL.indexOf("&" + stVar + "=", ichQ);
if (ich != -1)
stNewSet = "&" + stNewSet;
}
else {
stNewSet = "?" + stNewSet;
}
if (ich != -1) {
var re = new RegExp("[&?]" + stVar + "=[^&#]*", "");
stURL = stURL.replace(re, stNewSet);
}
else {
if (ichH == -1)
stURL = stURL + "&" + stNewSet;
else
stURL = stURL.substr(0, ichH) + "&" + stNewSet + stURL.substr(ichH);
}
}
else {
if (ichH == -1)
stURL = stURL + "?" + stNewSet;
else
stURL = stURL.substr(0, ichH) + "?" + stNewSet + stURL.substr(ichH);
}
return stURL;
}
function URI_CompleteDecode(strIn) {
if (typeof strIn == 'undefined' || strIn == null)
return strIn;
var strOut = strIn;
var dStr = URI_unescapeProperly(strOut);
while (strOut != dStr) {
strOut = dStr;
dStr = URI_unescapeProperly(strOut);
}
return strOut;
}
function URI_RestructureFilterUrl(strDocUrl, filterNo) {
var j = filterNo + 1;
var filterArray = strDocUrl.match(new RegExp("FilterField" + String(j) + "=[^&]*"));
var isMultipleFilter = false;
if (!Boolean(filterArray)) {
filterArray = strDocUrl.match(new RegExp("FilterFields" + String(j) + "=[^&]*"));
isMultipleFilter = filterArray != null;
}
for (var i = filterNo; filterArray != null; i++) {
var strNew = isMultipleFilter ? "FilterFields" + String(i) : "FilterField" + String(i);
var strOld = isMultipleFilter ? "FilterFields" + String(j) : "FilterField" + String(j);
strDocUrl = strDocUrl.replace(strOld, strNew);
strNew = isMultipleFilter ? "FilterValues" + String(i) : "FilterValue" + String(i);
strOld = isMultipleFilter ? "FilterValues" + String(j) : "FilterValue" + String(j);
strDocUrl = strDocUrl.replace(strOld, strNew);
strNew = "FilterOp" + String(i);
strOld = "FilterOp" + String(j);
strDocUrl = strDocUrl.replace(strOld, strNew);
strNew = "FilterLookupId" + String(i);
strOld = "FilterLookupId" + String(j);
strDocUrl = strDocUrl.replace(strOld, strNew);
strNew = "FilterData" + String(i);
strOld = "FilterData" + String(j);
strDocUrl = strDocUrl.replace(strOld, strNew);
j++;
filterArray = strDocUrl.match(new RegExp("FilterField" + String(j) + "=[^&]*"));
if (!Boolean(filterArray))
filterArray = strDocUrl.match(new RegExp("FilterFields" + String(j) + "=[^&]*"));
}
return strDocUrl;
}
function URI_ParseMultiColumnValue(fieldValue, delimiter, bIncludeEmpty) {
var strSubColumn;
var subColumnValues = [];
if (delimiter == null)
delimiter = ';#';
var lead = delimiter.charCodeAt(0);
var trail = delimiter.charCodeAt(1);
if (fieldValue == null || fieldValue.length == 0)
return subColumnValues;
var strLead = delimiter.charAt(0);
var strLeadLead = strLead + strLead;
var escaped = new RegExp(strLeadLead, "g");
var unescaped = delimiter.charAt(0);
var startLocal = 0;
if (fieldValue.substr(0, 2) == delimiter) {
if (Boolean(bIncludeEmpty))
subColumnValues.push('');
startLocal = 2;
}
var end = startLocal;
var bContainEscapedCharacters = false;
var totalLength = fieldValue.length;
while (end < totalLength) {
var index = fieldValue.indexOf(strLead, end);
if (index >= 0) {
end = index;
end++;
if (fieldValue.charCodeAt(end) == trail) {
if (end - 1 > startLocal) {
strSubColumn = fieldValue.substr(startLocal, end - startLocal - 1);
if (bContainEscapedCharacters)
strSubColumn = strSubColumn.replace(escaped, unescaped);
subColumnValues.push(strSubColumn);
bContainEscapedCharacters = false;
}
else {
subColumnValues.push('');
}
end++;
startLocal = end;
continue;
}
else if (fieldValue.charCodeAt(end) == lead) {
end++;
bContainEscapedCharacters = true;
continue;
}
else {
throw "ArgumentException";
}
}
else {
end = totalLength;
}
}
if (end > startLocal) {
strSubColumn = fieldValue.substr(startLocal, end - startLocal);
if (bContainEscapedCharacters)
strSubColumn = strSubColumn.replace(escaped, unescaped);
subColumnValues.push(strSubColumn);
}
else if (Boolean(bIncludeEmpty))
subColumnValues.push('');
return subColumnValues;
}
function URI_ConvertMultiColumnValueToString(subColumnValues, delimiter, bAddLeadingTailingDelimiter) {
if (delimiter == null)
delimiter = ";#";
if (bAddLeadingTailingDelimiter == null)
bAddLeadingTailingDelimiter = true;
var strLead = delimiter.charAt(0);
var strLeadLead = strLead + strLead;
var escaped = new RegExp(delimiter.charAt(0), "g");
var bHasValue = false;
var sb = '';
for (var i = 0; i < subColumnValues.length; i++) {
var strSubColumn = subColumnValues[i];
if (strSubColumn != null && strSubColumn.length > 0)
strSubColumn = strSubColumn.replace(escaped, strLeadLead);
if (strSubColumn != null && strSubColumn.length > 0)
bHasValue = true;
if (bAddLeadingTailingDelimiter || i