var EnvelopeClass = {init:function(a, c) {
	$.extend(this, EnvelopeClass);
	var b = false, d = typeof a;
	this.suppressMsg = c;
	if(d == "object") {
		if(a.responseText) {
			if(a.responseXML && a.responseXML.baseURI) {
				b = {redirectUrl:a.responseXML.baseURI}
			}else {
				a = a.responseText;
				d = "string"
			}
		}else {
			b = a
		}
	}if(d == "string") {
		a = $.trim(a);
		if(!a) {
			return
		}if(a.charAt(0) == "{" && a.slice(-1) == "}") {
			b = this.toObj(a)
		}else {
			if(c = a.replace(/[^ -~]+/g, " ").match(/^(.*?)({"redirectUrl".*})\s?(.*)$/)) {
				a = $.trim(c[1] || "") + $.trim(c[3] || "");
				try {
					b = this.toObj(c[2])
				}catch(e) {
					b = false
				}
			}else {
				a = "<pre>" + a + "</pre>"
			}if(a.length > 1024) {
				a = a.substring(0, 1024) + "<b>...</b>"
			}a = ['<div class="message errorMessage"><span class="delete-icon js-delete-uimessage"></span><div class="messageIcon errorMessageIcon"></div><div class="messageBody"><h4>AJAX Error</h4>', a, "<br/></div></div>"].join("");
			this.showMessage(a)
		}
	}if(b) {
		this.fullResponse = b;
		if(b.redirectUrl) {
			window.location = b.redirectUrl
		}else {
			this.payload = b.payload ? b.payload : {};
			if(b.message) {
				this.showMessage(b.message)
			}else {
				b.messagesUrl && $(window.parent.document.body).find("#messageWrapper").load(b.messagesUrl + " #messageWrapper > div", this.showMessage)
			}if(window.profilerOn && window.profilerInit && b.profilerContent) {
				$(window.parent.document.body).find("#profilerAjaxWrapper").append(b.profilerContent);
				profilerInit()
			}
		}
	}else {
		a = '<div class="message errorMessage"><span class="delete-icon js-delete-uimessage"></span><div class="messageIcon errorMessageIcon"></div><div class="messageBody"><h4>Error</h4>An unexpected error occurred with your request. Please try again later or contact customer care.<br/></div></div>';
		this.showMessage(a)
	}
}, toObj:function(a) {
	return window.JSON && window.JSON.parse ? window.JSON.parse(a) : (new Function("return " + a))()
}, showMessage:function(a) {
	if(!this.suppressMsg) {
		var c = $("#messageWrapper"), b = false;
		if(c.length === 0) {
			c = $(window.parent.document.body).find("#messageWrapper");
			b = true
		}if(c.length !== 0) {
			a ? c.append(a).show().data("complete", false) : c.show().data("complete", false);
			b ? window.parent.scroll(0, 0) : window.scroll(0, 0);
			this.message = true;
			setTimeout(function() {
				c.data("complete", true);
				c = null
			}, 5E3)
		}
	}
}, hideMessage:function() {
	var a = $("#messageWrapper", window.parent.document.body);
	a.html() && a.data("complete") === true && a.html("").data("complete", false)
}, payload:{}, fullResponse:false, message:false, suppressMsg:false}, Envelope = EnvelopeClass.init;
