Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- RightNow.Widget.UPDTextInput = function (data, instanceID) {
- this.data = data;
- this.instanceID = instanceID;
- this._formErrorLocation = null;
- this._validated = false;
- this._inputField = document.getElementById("rn_" + this.instanceID + "_" + this.data.js.name);
- if (this.data.js.hint) this._initializeHint();
- if (this.data.attrs.initial_focus && this._inputField.focus) this._inputField.focus();
- if (this.data.js.mask) this._initializeMask();
- RightNow.Event.subscribe("evt_formFieldValidateRequest", this._onValidate, this);
- this._fieldName = this.data.js.name;
- if (this.data.attrs.validate_on_blur) YAHOO.util.Event.addListener(this._inputField, "blur", this._blurValidate, null, this);
- };
- RightNow.Widget.UPDTextInput.prototype = {
- _onValidate: function (type, args) {
- this._validated = true;
- this._formErrorLocation = args[0].data.error_location;
- this._trimField();
- if (this._compareInputToMask(true) && this._checkRequired() && this._checkData() && this._checkValue() && this._checkUrl() && this._checkProd) {
- YAHOO.util.Dom.removeClass(this._inputField, "rn_ErrorField");
- YAHOO.util.Dom.removeClass("rn_" + this.instanceID + "_Label", "rn_ErrorLabel");
- var eo = new RightNow.Event.EventObject();
- eo.data = {
- "name": this.data.js.name,
- "value": this._getValue(),
- "table": this.data.js.table,
- "required": (this.data.attrs.required ? true : false),
- "prev": this.data.js.prev,
- "form": RightNow.UI.findParentForm("rn_" + this.instanceID)
- };
- if (this.data.js.profile) eo.data.profile = true;
- if (this.data.js.customID) {
- eo.data.custom = true;
- eo.data.customID = this.data.js.customID;
- eo.data.customType = this.data.js.type;
- } else {
- eo.data.custom = false;
- }
- if (this.data.js.channelID) {
- eo.data.channelID = this.data.js.channelID;
- }
- eo.w_id = this.data.info.w_id;
- RightNow.Event.fire("evt_formFieldValidateResponse", eo);
- } else {
- RightNow.UI.Form.formError = true;
- }
- RightNow.Event.fire("evt_formFieldCountRequest");
- },
- _blurValidate: function () {
- this._formErrorLocation = null;
- if (this._onAccountExistsResponse._dialogShowing) return;
- if (this._fieldName == "incoming_esn_or_csn") {
- this._getWarrantyData();
- }
- this._trimField();
- },
- _checkValue: function () {
- if (this.data.js.type === RightNow.Interface.Constants.EUF_DT_INT) {
- if (this._inputField.value !== "" && (isNaN(Number(this._inputField.value)) || parseInt(this._inputField.value) !== parseFloat(this._inputField.value))) {
- this._displayError(RightNow.Interface.getMessage('VALUE_MUST_BE_AN_INTEGER_MSG'));
- return false;
- }
- if (this.data.js.maxVal || this.data.js.minVal) {
- var value = parseInt(this._inputField.value);
- if (this.data.js.maxVal && value > parseInt(this.data.js.maxVal)) {
- this._displayError(RightNow.Interface.getMessage('VALUE_IS_TOO_LARGE_MAX_VALUE_MSG') + this.data.js.maxVal + ")");
- return false;
- }
- if (this.data.js.minVal && value < parseInt(this.data.js.minVal)) {
- this._displayError(RightNow.Interface.getMessage('VALUE_IS_TOO_SMALL_MIN_VALUE_MSG') + this.data.js.minVal + ")");
- return false;
- }
- }
- } else if (this.data.js.type === RightNow.Interface.Constants.EUF_DT_PASSWORD && this.data.js.name !== "password" && this.data.js.passwordLength) {
- var length = RightNow.Text.Encoding.utf8Length(this._inputField.value),
- minLength = this.data.js.passwordLength;
- if (length < minLength) {
- this._displayError(RightNow.Text.sprintf(RightNow.Interface.getMessage("PCT_D_CHARACTERS_MSG"), minLength));
- return false;
- }
- }
- if (this.data.js.fieldSize) {
- var length = RightNow.Text.Encoding.utf8Length(this._inputField.value),
- maxLength = this.data.js.field_size;
- if (maxLength < length) {
- var extra, errorString, roughMBCS = parseInt(length / (this._inputField.value.length)),
- numtokExp = new RegExp("%d");
- if (length % (this._inputField.value.length) !== 0) roughMBCS++;
- extra = parseInt((length - maxLength) / roughMBCS);
- errorString = RightNow.Text.sprintf(RightNow.Interface.getMessage("EXCEEDS_SZ_LIMIT_PCT_D_CHARS_PCT_D_LBL"), numtokExp, parseInt(maxLength / roughMBCS));
- if ((length - maxLength) % (roughMBCS) !== 0) extra++;
- errorString = errorString.replace(numtokExp, extra);
- this._displayError(errorString);
- return false;
- }
- }
- return true;
- },
- _checkData: function (silent) {
- return true;
- },
- _checkUrl: function (silent) {
- if ((this.data.js.customID) && (this.data.js.url) && !(this._inputField.value === "")) {
- if (!RightNow.Text.isValidUrl(this._inputField.value)) {
- if (!silent) this._displayError(RightNow.Interface.getMessage("IS_NOT_A_VALID_URL_MSG"));
- return false;
- }
- }
- return true;
- },
- _checkRequired: function () {
- if (this.data.attrs.required) {
- if (this._inputField.value === "") {
- this._displayError(this.data.attrs.label_required);
- return false;
- }
- }
- return true;
- },
- _getValue: function () {
- if (this.data.js.type === RightNow.Interface.Constants.EUF_DT_INT) {
- if (this._inputField.value !== "") return parseInt(this._inputField.value);
- }
- if (this.data.js.mask) return this._stripMaskFromFieldValue();
- return this._inputField.value;
- },
- _trimField: function () {
- if (this._inputField.value !== "" && this.data.js.type !== RightNow.Interface.Constants.EUF_DT_PASSWORD) this._inputField.value = YAHOO.lang.trim(this._inputField.value);
- return true;
- },
- _initializeHint: function () {
- if (YAHOO.widget.Overlay) {
- var overlay = document.createElement("span");
- overlay.id = "rn_" + this.instanceID + "_Hint";
- YAHOO.util.Dom.addClass(overlay, "rn_HintBox");
- YAHOO.util.Dom.insertAfter(overlay, this._inputField);
- overlay = new YAHOO.widget.Overlay(overlay, {
- visible: false
- });
- overlay.setBody(this.data.js.hint);
- overlay.render();
- YAHOO.util.Event.addListener(this._inputField, "focus", function () {
- overlay.show();
- });
- YAHOO.util.Event.addListener(this._inputField, "blur", function () {
- overlay.hide();
- });
- } else {
- var hint = document.createElement("span");
- hint.className = "rn_HintText";
- hint.innerHTML = this.data.js.hint;
- YAHOO.util.Dom.insertAfter(hint, this._inputField);
- }
- },
- _displayError: function (errorMessage) {
- var commonErrorDiv = document.getElementById(this._formErrorLocation);
- if (commonErrorDiv) {
- RightNow.UI.Form.errorCount++;
- if (RightNow.UI.Form.chatSubmit && RightNow.UI.Form.errorCount === 1) commonErrorDiv.innerHTML = "";
- var errorLink = "<div><b><a href='javascript:void(0);' onclick='document.getElementById(\"" + this._inputField.id + "\").focus(); return false;'>" + this.data.attrs.label_input + " ";
- if (errorMessage.indexOf("%s") > -1) errorLink = RightNow.Text.sprintf(errorMessage, errorLink);
- else errorLink = errorLink + errorMessage;
- errorLink += "</a></b></div> ";
- commonErrorDiv.innerHTML += errorLink;
- }
- YAHOO.util.Dom.addClass(this._inputField, "rn_ErrorField");
- YAHOO.util.Dom.addClass("rn_" + this.instanceID + "_Label", "rn_ErrorLabel");
- },
- _getWarrantyData: function () {
- $('#processingContainer').removeClass('noShow');
- var serialNumber = this._inputField.value;
- $.ajax({
- type: "POST",
- url: "/cc/MotorolaService/GetWarrantyInfo/SN/" + serialNumber,
- dataType: "json",
- success: function (data) {
- var eo = new RightNow.Event.EventObject();
- if (data != null) {
- $('#processingContainer').addClass('noShow');
- for (var dataIndex = 0; dataIndex < data.length; dataIndex++) {
- if (dataIndex == 0) {
- if ((data[dataIndex].val.toUpperCase() == "E09003") || (data[dataIndex].val.toUpperCase() == "E05002")) {
- alert("Your serial number was not found in our product database, please re-enter it");
- }
- }
- var localUpdObj = data[dataIndex];
- if (localUpdObj.key == "WarrantyStatus") {
- var warrStatus = localUpdObj.val;
- eo.data.warrStatus = warrStatus;
- if (warrStatus == "Out Of Warranty") {
- $("#warrValid").addClass('noShow');
- $("#warrInvalid").removeClass('noShow');
- } else if (warrStatus == "Out Of Warranty(POP date considered)") {
- $("#warrValid").addClass('noShow');
- $("#warrInvalid").removeClass('noShow');
- } else {
- $("#warrValid").removeClass('noShow');
- $("#warrInvalid").addClass('noShow');
- }
- }
- if (localUpdObj.key == "DeviceAuthentication") {
- var bootloaderCheck = localUpdObj.val;
- if (bootloaderCheck == 'BTL') {
- alert('Your device is out of warranty because you have performed a bootloader unlock on this device.');
- }
- }
- if (localUpdObj.key == "WarrantyCountry") {
- var warrCountry = localUpdObj.val;
- eo.data.warrCountry = warrCountry;
- RightNow.Event.fire("evt_UPDCountry", warrCountry);
- }
- if (localUpdObj.key == "WarrantyFlag") {
- var warrBool = localUpdObj.val;
- eo.data.warrBool = warrBool;
- }
- if (localUpdObj.key == "POPDateFromUPD") {
- var purchDate = localUpdObj.val;
- eo.data.purchDate = purchDate;
- }
- if (localUpdObj.key == "SoftwareUpdateEligibleFlag") {
- var updateBool = localUpdObj.val;
- eo.data.updateBool = updateBool;
- }
- if (localUpdObj.key == "SoftwareUpdateWarrantyExpirationDate") {
- var updateExpire = localUpdObj.val;
- eo.data.updateExpire = updateExpire;
- }
- if (localUpdObj.key == "CustomerModelNumber") {
- var custModel = localUpdObj.val;
- eo.data.custModel = custModel;
- }
- if (localUpdObj.key == "TransceiverModelNumber") {
- var transModel = localUpdObj.val;
- eo.data.transModel = transModel;
- }
- if (localUpdObj.key == "APC") {
- var apc = localUpdObj.val;
- eo.data.apc = apc;
- }
- if (localUpdObj.key == "CustomerSerialNumberType") {
- var serialType = localUpdObj.val;
- eo.data.serialType = serialType;
- }
- if (localUpdObj.key == "CustomerModelNumberFromUPD") {
- var custModelUPD = localUpdObj.val;
- eo.data.custModelUPD = custModelUPD;
- }
- }
- RightNow.Event.fire("evt_formUPDResponse", eo);
- }
- },
- error: function (xhr) {
- alert("failed");
- alert(xhr.responseText);
- }
- });
- },
- _onAccountExistsResponse: function (type, args) {
- RightNow.Event.unsubscribe("evt_formFieldAccountExistsResponse", this._onAccountExistsResponse);
- var results = args[0];
- if (results !== false && this._validated === false) {
- YAHOO.util.Dom.addClass("rn_" + this.instanceID + "_Label", "rn_ErrorLabel");
- YAHOO.util.Dom.addClass(this._inputField, "rn_ErrorField");
- var handleOK = function () {
- warnDialog.hide();
- this._onAccountExistsResponse._dialogShowing = false;
- this._inputField.focus();
- };
- var buttons = [{
- text: RightNow.Interface.getMessage("OK_LBL"),
- handler: {
- fn: handleOK,
- scope: this
- },
- isDefault: true
- }];
- var dialogBody = document.createElement("div");
- dialogBody.innerHTML = results.message;
- var warnDialog = RightNow.UI.Dialog.actionDialog(RightNow.Interface.getMessage("WARNING_LBL"), dialogBody, {
- "buttons": buttons,
- "width": "250px"
- });
- this._onAccountExistsResponse._dialogShowing = true;
- warnDialog.show();
- } else {
- YAHOO.util.Dom.removeClass("rn_" + this.instanceID + "_Label", "rn_ErrorLabel");
- YAHOO.util.Dom.removeClass(this._inputField, "rn_ErrorField");
- this._validated = false;
- }
- return false;
- },
- _onUPDChange: function (type, args) {
- var eventObj = args[0];
- if ((this._fieldName == "incoming_esn_or_csn") && (eventObj.data.apc == undefined)) {
- this._inputField.value = '';
- }
- if ((this._fieldName == "purch_store_type") && ("apc" in eventObj.data)) {
- this._inputField.value = eventObj.data.apc;
- }
- if ((this._fieldName == "upd_std_warr_date") && ("warrExpire" in eventObj.data)) {
- this._inputField.value = eventObj.data.warrExpire;
- }
- if ((this._fieldName == "upd_cust_model_num") && ("warrModel" in eventObj.data)) {
- this._inputField.value = eventObj.data.warrModel;
- }
- if ((this._fieldName == "ts_primary_issue") && ("warrCountry" in eventObj.data)) {
- this._inputField.value = eventObj.data.warrCountry;
- }
- if ((this._fieldName == "upd_status_name") && ("warrBool" in eventObj.data)) {
- this._inputField.value = eventObj.data.warrBool;
- }
- },
- _onProvinceChange: function (type, args) {
- var eventObj = args[0],
- resetMask = false;
- if (!eventObj.states.length) this.data.js.mask = "";
- if ((this._fieldName === "postal_code") && ("postal_mask" in eventObj)) {
- resetMask = true;
- this.data.js.mask = eventObj.postal_mask;
- } else if ("phone_mask" in eventObj) {
- resetMask = true;
- this.data.js.mask = eventObj.phone_mask;
- }
- if (resetMask && this.data.js.mask) this._initializeMask();
- else if (this._maskNodeOnPage) this._maskNodeOnPage.parentNode.removeChild(this._maskNodeOnPage);
- },
- _initializeMask: function () {
- YAHOO.util.Event.addListener(this._inputField, "keyup", this._compareInputToMask, null, this);
- YAHOO.util.Event.addListener(this._inputField, "blur", this._hideMaskMessage, null, this);
- YAHOO.util.Event.addListener(this._inputField, "focus", this._compareInputToMask, null, this);
- this.data.js.mask = this._createMaskArray(this.data.js.mask);
- var overlay = document.createElement("div");
- YAHOO.util.Dom.addClass(overlay, "rn_MaskOverlay");
- if (YAHOO.widget.Overlay) {
- this._maskNode = YAHOO.util.Dom.insertAfter(overlay, this._inputField);
- this._maskNode = new YAHOO.widget.Overlay(this._maskNode, {
- visible: false
- });
- this._maskNode.cfg.setProperty("context", [this._inputField, "tl", "bl", ["windowScroll"]]);
- this._maskNode.setBody("");
- this._maskNode.render();
- } else {
- YAHOO.util.Dom.addClass(overlay, "rn_Hidden");
- this._maskNode = overlay;
- YAHOO.util.Dom.insertAfter(this._maskNode, this._inputField);
- }
- if (this.data.attrs.always_show_mask) {
- var maskMessageOnPage = this._getSimpleMaskString(),
- widgetContainer = document.getElementById("rn_" + this.instanceID);
- if (maskMessageOnPage && widgetContainer) {
- var messageNode = document.createElement("div");
- messageNode.innerHTML = RightNow.Interface.getMessage("EXPECTED_INPUT_LBL") + ": " + maskMessageOnPage;
- YAHOO.util.Dom.addClass(messageNode, 'rn_Mask' + (YAHOO.util.Dom.hasClass(widgetContainer.lastChild, 'rn_HintText') ? ' rn_MaskBuffer' : ''));
- this._maskNodeOnPage = widgetContainer.appendChild(messageNode);
- }
- }
- },
- _createMaskArray: function (mask) {
- if (!mask) return;
- var maskArray = [];
- for (var i = 0, j = 0, size = mask.length / 2; i < size; i++) {
- maskArray[i] = mask.substring(j, j + 2);
- j += 2;
- }
- return maskArray;
- },
- _stripMaskFromFieldValue: function () {
- if (!this.data.js.mask || this._inputField.value === "") return this._inputField.value;
- var result = "";
- for (var i = 0; i < this._inputField.value.length; i++) {
- if (i < this.data.js.mask.length && this.data.js.mask[i].charAt(0) !== 'F') result += this._inputField.value.charAt(i);
- }
- return result;
- },
- _getSimpleMaskString: function () {
- if (!this.data.js.mask) return "";
- var maskString = "";
- for (var i = 0; i < this.data.js.mask.length; i++) {
- switch (this.data.js.mask[i].charAt(0)) {
- case "F":
- maskString += this.data.js.mask[i].charAt(1);
- break;
- case "U":
- switch (this.data.js.mask[i].charAt(1)) {
- case "#":
- maskString += "#";
- break;
- case "A":
- case "C":
- maskString += "@";
- break;
- case "L":
- maskString += "A";
- break;
- }
- break;
- case "L":
- switch (this.data.js.mask[i].charAt(1)) {
- case "#":
- maskString += "#";
- break;
- case "A":
- case "C":
- maskString += "@";
- break;
- case "L":
- maskString += "a";
- break;
- }
- break;
- case "M":
- switch (this.data.js.mask[i].charAt(1)) {
- case "#":
- maskString += "#";
- break;
- case "A":
- case "C":
- case "L":
- maskString += "@";
- break;
- }
- break;
- }
- }
- return maskString;
- },
- _compareInputToMask: function (submitting) {
- if (!this.data.js.mask) return true;
- var error = [];
- if (this._inputField.value.length > 0) {
- for (var i = 0, tempRegExVal; i < this._inputField.value.length; i++) {
- if (i < this.data.js.mask.length) {
- tempRegExVal = "";
- switch (this.data.js.mask[i].charAt(0)) {
- case 'F':
- if (this._inputField.value.charAt(i) !== this.data.js.mask[i].charAt(1)) error.push([i, this.data.js.mask[i]]);
- break;
- case 'U':
- switch (this.data.js.mask[i].charAt(1)) {
- case '#':
- tempRegExVal = /^[0-9]+$/;
- break;
- case 'A':
- tempRegExVal = /^[0-9A-Z]+$/;
- break;
- case 'L':
- tempRegExVal = /^[A-Z]+$/;
- break;
- case 'C':
- tempRegExVal = /^[^a-z]+$/;
- break;
- }
- break;
- case 'L':
- switch (this.data.js.mask[i].charAt(1)) {
- case '#':
- tempRegExVal = /^[0-9]+$/;
- break;
- case 'A':
- tempRegExVal = /^[0-9a-z]+$/;
- break;
- case 'L':
- tempRegExVal = /^[a-z]+$/;
- break;
- case 'C':
- tempRegExVal = /^[^A-Z]+$/;
- break;
- }
- break;
- case 'M':
- switch (this.data.js.mask[i].charAt(1)) {
- case '#':
- tempRegExVal = /^[0-9]+$/;
- break;
- case 'A':
- tempRegExVal = /^[0-9a-zA-Z]+$/;
- break;
- case 'L':
- tempRegExVal = /^[a-zA-Z]+$/;
- break;
- default:
- break;
- }
- break;
- default:
- break;
- }
- if ((tempRegExVal !== "") && !(tempRegExVal.test(this._inputField.value.charAt(i)))) error.push([i, this.data.js.mask[i]]);
- } else {
- error.push([i, "LEN"]);
- }
- }
- if ((!error.length) && (this._inputField.value.length < this.data.js.mask.length) && (!this.data.attrs.always_show_mask || submitting === true)) {
- for (var i = this._inputField.value.length; i < this.data.js.mask.length; i++)
- error.push([i, "MISS"]);
- }
- if (error.length > 0) {
- this._showMaskMessage(error);
- if (submitting === true) this._displayError(RightNow.Interface.getMessage("PCT_S_DIDNT_MATCH_EXPECTED_INPUT_LBL"));
- return false;
- }
- this._showMaskMessage(null);
- return true;
- }
- if (!this.data.attrs.always_show_mask && submitting !== true) this._showMaskMessage(error);
- return true;
- },
- _showMaskMessage: function (error) {
- if (error === null) {
- this._hideMaskMessage();
- } else {
- if (!this._showMaskMessage._maskMessages) {
- this._showMaskMessage._maskMessages = {
- "F": RightNow.Interface.getMessage('WAITING_FOR_CHARACTER_LBL'),
- "U#": RightNow.Interface.getMessage('PLEASE_TYPE_A_NUMBER_MSG'),
- "L#": RightNow.Interface.getMessage('PLEASE_TYPE_A_NUMBER_MSG'),
- "M#": RightNow.Interface.getMessage('PLEASE_TYPE_A_NUMBER_MSG'),
- "UA": RightNow.Interface.getMessage('PLEASE_ENTER_UPPERCASE_LETTER_MSG'),
- "UL": RightNow.Interface.getMessage('PLEASE_ENTER_AN_UPPERCASE_LETTER_MSG'),
- "UC": RightNow.Interface.getMessage('PLS_ENTER_UPPERCASE_LETTER_SPECIAL_MSG'),
- "LA": RightNow.Interface.getMessage('PLEASE_ENTER_LOWERCASE_LETTER_MSG'),
- "LL": RightNow.Interface.getMessage('PLEASE_ENTER_A_LOWERCASE_LETTER_MSG'),
- "LC": RightNow.Interface.getMessage('PLS_ENTER_LOWERCASE_LETTER_SPECIAL_MSG'),
- "MA": RightNow.Interface.getMessage('PLEASE_ENTER_A_LETTER_OR_A_NUMBER_MSG'),
- "ML": RightNow.Interface.getMessage('PLEASE_ENTER_A_LETTER_MSG'),
- "MC": RightNow.Interface.getMessage('PLEASE_ENTER_LETTER_SPECIAL_CHAR_MSG'),
- "LEN": RightNow.Interface.getMessage('THE_INPUT_IS_TOO_LONG_MSG'),
- "MISS": RightNow.Interface.getMessage('THE_INPUT_IS_TOO_SHORT_MSG')
- };
- }
- var message = "",
- sampleMaskString = this._getSimpleMaskString().split("");
- for (var i = 0, type; i < error.length; i++) {
- type = error[i][1];
- if (type.charAt(0) === "F") {
- message += "<b>" + RightNow.Interface.getMessage('CHARACTER_LBL') + " " + (error[i][0] + 1) + "</b> " + RightNow.Interface.getMessage('WAITING_FOR_CHARACTER_LBL') + type.charAt(1) + " ' <br/>";
- sampleMaskString[(error[i][0])] = "<span style='color:#F00;'>" + sampleMaskString[(error[i][0])] + "</span>";
- } else {
- if (type !== "MISS") {
- message += "<b>" + RightNow.Interface.getMessage('CHARACTER_LBL') + " " + (error[i][0] + 1) + "</b> " + this._showMaskMessage._maskMessages[type] + "<br/>";
- if (type !== "LEN") {
- sampleMaskString[(error[i][0])] = "<span style='color:#F00;'>" + sampleMaskString[(error[i][0])] + "</span>";
- } else {
- break;
- }
- }
- }
- }
- sampleMaskString = sampleMaskString.join("");
- this._setMaskMessage(RightNow.Interface.getMessage('EXPECTED_INPUT_LBL') + ": " + sampleMaskString + "<br/>" + message);
- this._showMask();
- }
- },
- _setMaskMessage: function (message) {
- ((this._maskNode.body) ? this._maskNode.body : this._maskNode).innerHTML = message;
- },
- _showMask: function () {
- if (this._maskNode.show) this._maskNode.show();
- else YAHOO.util.Dom.removeClass(this._maskNode, "rn_Hidden");
- },
- _hideMaskMessage: function () {
- if (this._maskNode.cfg && this._maskNode.cfg.getProperty("visible") !== false) this._maskNode.hide();
- else if (!this._maskNode.cfg) YAHOO.util.Dom.addClass(this._maskNode, "rn_Hidden");
- }
- };
- RightNow.Widget.FormSubmit = function (data, instanceID) {
- this.data = data;
- this.instanceID = instanceID;
- this._requestInProgress = false;
- this._formButton = document.getElementById("rn_" + this.instanceID + "_Button");
- this._formSubmitFlag = document.getElementById("rn_" + this.instanceID + "_Submission");
- this._challengeDivID = this.data.attrs.challenge_location;
- if (!this._formButton || !this._formSubmitFlag) return;
- this._statusMessage = document.getElementById("rn_" + this.instanceID + "_StatusMessage");
- this._parentForm = RightNow.UI.findParentForm("rn_" + this.instanceID);
- this._errorMessageDiv = document.getElementById(this.data.attrs.error_location);
- if (!this._errorMessageDiv) {
- var errorNode = document.createElement("div");
- errorNode.id = "rn_" + this.instanceID + "_ErrorLocation";
- this._errorMessageDiv = YAHOO.util.Dom.insertBefore(errorNode, this._formButton);
- }
- this._errorMessageDiv.tabIndex = -1;
- YAHOO.util.Dom.setAttribute(this._errorMessageDiv, "aria-live", "rude");
- var RightNowEvent = RightNow.Event;
- if (this.data.js.challengeProvider) {
- try {
- this._challengeProvider = eval(data.js.challengeProvider);
- } catch (ex) {
- throw "Failed while trying to parse a challenge provider. " + ex;
- }
- this._createChallengeDiv();
- this._challengeProvider.create(this._challengeDivID, RightNow.UI.AbuseDetection.options);
- RightNowEvent.subscribe("evt_formFieldValidateRequest", this._onValidateChallengeResponse, this);
- }
- if (("checked" in this._formSubmitFlag && this._formSubmitFlag.checked === true) || this._formSubmitFlag.value === "true") {
- this._formButton.disabled = true;
- return;
- }
- if (this._parentForm) {
- this._enableClickListener();
- RightNowEvent.subscribe("evt_formButtonSubmitResponse", this._formSubmitResponse, this);
- RightNowEvent.subscribe("evt_formValidatedResponse", this._onFormValidated, this);
- RightNowEvent.subscribe("evt_formFailValidationResponse", this._onFormValidationFail, this);
- RightNowEvent.subscribe("evt_fileUploadRequest", this._disableClickListener, this);
- RightNowEvent.subscribe("evt_fileUploadResponse", this._enableClickListener, this);
- RightNowEvent.subscribe("evt_submitFormRequest", this._onButtonClick, this);
- RightNowEvent.subscribe("evt_formTokenUpdate", function (type, args) {
- var newToken = args[0].data.newToken;
- if (newToken) this.data.js.f_tok = newToken;
- }, this);
- } else {
- RightNow.UI.addDevelopmentHeaderError(RightNow.Interface.getMessage('FORMSUBMIT_PLACED_FORM_UNIQUE_ID_MSG'));
- }
- this._enableFormExpirationWatch();
- };
- RightNow.Widget.FormSubmit.prototype = {
- _onButtonClick: function (type, args) {
- if (this._requestInProgress) return false;
- this._disableClickListener();
- this._statusMessage.innerHTML = "";
- YAHOO.util.Dom.addClass(this._errorMessageDiv, "rn_Hidden");
- this._errorMessageDiv.innerHTML = "";
- var eo = new RightNow.Event.EventObject();
- eo.w_id = this.instanceID;
- eo.data = {
- "form": this._parentForm,
- "error_location": this._errorMessageDiv.id,
- "f_tok": this.data.js.f_tok
- };
- if (this._challengeDivID) {
- eo.challengeHandler = RightNow.Event.createDelegate(this, this._challengeHandler);
- }
- if (YAHOO.env.ua.ie !== 0 && window.external && "AutoCompleteSaveForm" in window.external) window.external.AutoCompleteSaveForm(document.getElementById(this._parentForm));
- RightNow.Event.fire("evt_formButtonSubmitRequest", eo);
- },
- _onFormValidated: function () {
- if (RightNow.UI.Form.form === this._parentForm && RightNow.UI.Form.formFields.length > 0) {
- YAHOO.util.Dom.removeClass("rn_" + this.instanceID + "_LoadingIcon", "rn_Hidden");
- if (this._statusMessage) this._statusMessage.innerHTML = RightNow.Interface.getMessage('SUBMITTING_ELLIPSIS_MSG');
- }
- },
- _onFormValidationFail: function () {
- if (RightNow.UI.Form.form === this._parentForm) {
- YAHOO.util.Dom.addClass(this._errorMessageDiv, "rn_MessageBox");
- YAHOO.util.Dom.addClass(this._errorMessageDiv, "rn_ErrorMessage");
- YAHOO.util.Dom.removeClass(this._errorMessageDiv, "rn_Hidden");
- if (this._errorMessageDiv.tabIndex === 0) {
- window.scrollTo(0, this._errorMessageDiv.offsetTop - 20);
- YAHOO.lang.later(500, this, function () {
- this._errorMessageDiv.tabIndex = 0;
- this._errorMessageDiv.focus();
- this._errorMessageDiv.tabIndex = 1;
- });
- } else {
- var firstField = YAHOO.util.Dom.getElementBy(function (e) {
- return true;
- }, "A", this._errorMessageDiv);
- if (firstField && firstField.focus) firstField.focus();
- window.scrollTo(0, this._errorMessageDiv.offsetTop - 20);
- }
- this._enableClickListener();
- }
- },
- _formSubmitResponse: function (type, args) {
- if (RightNow.UI.Form.form === this._parentForm) {
- var result = args[0];
- if (!result) {
- if (this._statusMessage) {
- this._statusMessage.innerHTML = RightNow.Interface.getMessage('ERROR_REQUEST_ACTION_COMPLETED_MSG');
- }
- RightNow.UI.Dialog.messageDialog(RightNow.Interface.getMessage('ERROR_REQUEST_ACTION_COMPLETED_MSG'), {
- icon: "WARN"
- });
- } else if (result.sa) {
- if (result.newFormToken) {
- var formTokenEO = new RightNow.Event.EventObject();
- formTokenEO.data.newToken = result.newFormToken;
- RightNow.Event.fire("evt_formTokenUpdate", formTokenEO);
- }
- for (var i in result.sa) {
- if (typeof result.sa[i].add_flag !== "undefined" && result.sa[i].add_flag == false) {
- this._disableClickListener();
- document.getElementById("rn_" + this.instanceID).innerHTML = "";
- return;
- }
- }
- } else if (result.status === 1) {
- if ("checked" in this._formSubmitFlag) this._formSubmitFlag.checked = true;
- else this._formSubmitFlag.value = "true";
- this._navigateToUrl = function () {
- if (result.redirectOverride) {
- RightNow.Url.navigate(result.redirectOverride + result.sessionParm);
- } else if (this.data.attrs.on_success_url) {
- if (result.i_id) {
- RightNow.Url.navigate(this.data.attrs.on_success_url + "/i_id/" + result.i_id + result.sessionParm);
- } else if (result.refno) {
- RightNow.Url.navigate(this.data.attrs.on_success_url + '/refno/' + result.refno + result.sessionParm);
- } else {
- var sessionValue = result.sessionParm.substr(result.sessionParm.lastIndexOf("/") + 1);
- if (!sessionValue && this.data.js.redirectSession) sessionValue = this.data.js.redirectSession;
- RightNow.Url.navigate(RightNow.Url.addParameter(this.data.attrs.on_success_url, 'session', sessionValue));
- }
- } else {
- RightNow.Url.navigate(window.location + result.sessionParm);
- }
- };
- if (this.data.attrs.label_confirm_dialog !== '') {
- RightNow.UI.Dialog.messageDialog(this.data.attrs.label_confirm_dialog, {
- exitCallback: {
- fn: this._navigateToUrl,
- scope: this
- },
- width: '250px'
- });
- } else {
- this._navigateToUrl();
- }
- return;
- } else if (result.status == -1) {
- var errorUrl = (window.location.pathname.indexOf("/cx/facebook") === -1) ? "/app/error/error_id/5" : "/cx/facebook/error/error_id/5";
- RightNow.Url.navigate(errorUrl + result.sessionParm);
- } else {
- if (result.message) {
- this._errorMessageDiv.innerHTML += "<div><b>" + result.message + "</b></div>";
- this._errorMessageDiv.tabIndex = 0;
- this._onFormValidationFail();
- this._errorMessageDiv.tabIndex = -1;
- } else {
- RightNow.UI.Dialog.messageDialog(RightNow.Interface.getMessage('ERROR_PAGE_PLEASE_S_TRY_MSG'), {
- icon: "WARN"
- });
- }
- }
- this._clearLoadingIndicators();
- }
- },
- _reportChallengeError: function (errorMessage) {
- if (!errorMessage) {
- errorMessage = RightNow.Interface.getMessage("PLS_VERIFY_REQ_ENTERING_TEXT_IMG_MSG");
- }
- var errorLinkAnchorID = "rn_ChallengeErrorLink",
- errorLink = "<div><b><a id ='" + errorLinkAnchorID + "' href='javascript:void(0);'>" + errorMessage + "</a></b></div>";
- RightNow.UI.Form.errorCount++;
- if (RightNow.UI.Form.chatSubmit && RightNow.UI.Form.errorCount === 1) this._errorMessageDiv.innerHTML = "";
- this._errorMessageDiv.innerHTML += errorLink;
- document.getElementById(errorLinkAnchorID).onclick = RightNow.Event.createDelegate(this, function () {
- this._challengeProvider.focus();
- return false;
- });
- },
- _createChallengeDiv: function () {
- var challengeDiv = document.getElementById(this._challengeDivID);
- if (!challengeDiv) {
- challengeDiv = document.createElement("div");
- challengeDiv.id = this._challengeDivID;
- YAHOO.util.Dom.insertBefore(challengeDiv, this._formButton);
- }
- },
- _challengeHandler: function (abuseResponse, requestObject, isRetry) {
- this._createChallengeDiv();
- if (!this._challengeProvider) {
- this._challengeProvider = RightNow.UI.AbuseDetection.getChallengeProvider(abuseResponse);
- RightNow.Event.subscribe("evt_formFieldValidateRequest", this._onValidateChallengeResponse, this);
- }
- this._clearLoadingIndicators();
- this._challengeProvider.create(this._challengeDivID, RightNow.UI.AbuseDetection.options);
- this._reportChallengeError(RightNow.UI.AbuseDetection.getDialogCaption(abuseResponse));
- this._onFormValidationFail();
- },
- _onValidateChallengeResponse: function () {
- var eo = new RightNow.Event.EventObject();
- eo.data = {
- form: false
- };
- if (RightNow.UI.Form.form === this._parentForm) {
- var inputs = this._challengeProvider.getInputs(this._challengeDivID);
- if (inputs.abuse_challenge_response) {
- for (var key in inputs) {
- if (inputs.hasOwnProperty(key)) {
- RightNow.Ajax.addRequestData(key, inputs[key]);
- }
- }
- RightNow.Event.fire("evt_formFieldValidateResponse", eo);
- } else {
- this._reportChallengeError();
- RightNow.UI.Form.formError = true;
- }
- } else {
- RightNow.Event.fire("evt_formFieldValidateResponse", eo);
- }
- RightNow.Event.fire("evt_formFieldCountRequest");
- },
- _enableFormExpirationWatch: function () {
- if (this.data.js.formExpiration >= 300000) {
- var fiveMinutesBeforeExpiring = function () {
- YAHOO.lang.later(this.data.js.formExpiration, this, function () {
- RightNow.UI.Dialog.messageDialog(RightNow.Interface.getMessage("FORM_EXP_PLS_CONFIRM_WISH_CONTINUE_MSG"), {
- icon: "WARN",
- exitCallback: {
- fn: function () {
- RightNow.Ajax.makeRequest("/ci/ajaxRequest/getNewFormToken", {
- formToken: this.data.js.f_tok
- }, {
- successHandler: function (response) {
- var eventObject = new RightNow.Event.EventObject();
- eventObject.data = RightNow.JSON.parse(response.responseText);
- RightNow.Event.fire("evt_formTokenUpdate", eventObject);
- fiveMinutesBeforeExpiring.call(this);
- },
- scope: this
- });
- },
- scope: this
- }
- });
- });
- };
- fiveMinutesBeforeExpiring.call(this);
- }
- },
- _clearLoadingIndicators: function () {
- this._enableClickListener();
- YAHOO.util.Dom.addClass("rn_" + this.instanceID + "_LoadingIcon", "rn_Hidden");
- if (this._statusMessage) this._statusMessage.innerHTML = "";
- },
- _enableClickListener: function () {
- this._formButton.disabled = this._requestInProgress = false;
- YAHOO.util.Event.addListener(this._formButton, "click", this._onButtonClick, null, this);
- },
- _disableClickListener: function () {
- this._formButton.disabled = this._requestInProgress = true;
- YAHOO.util.Event.removeListener(this._formButton, "click", this._onButtonClick);
- }
- };
- RightNow.Widget.BootLoader = function (data, instanceID) {
- this.data = data;
- this.instanceID = instanceID;
- this._eo = new RightNow.Event.EventObject();
- YAHOO.util.Event.addListener($("#checkID"), "click", this._checkProduct, this);
- $('#unlockPhone').submit(function () {
- var conf1 = confirm('This will void your warranty. Are you sure?');
- if (conf1) {
- return true;
- } else {
- return false;
- }
- });
- };
- RightNow.Widget.BootLoader.prototype = {
- _checkProduct: function (e, args) {
- var phoneID = $('#phoneID').val();
- var phoneArray = phoneID.split('#');
- var phoneSN = phoneArray[0];
- var phoneHash = phoneArray[2];
- var phonePUID = phoneArray[3];
- var checkResults = bootLoaderCheck(phoneSN, phoneHash, phonePUID);
- if (phoneSN && phonePUID) {} else {
- if (!phoneSN) {
- alert('Serial Number not found in your identifier, please try again.');
- } else if (!phonePUID) {
- alert('PUID Not found in your identifier, please try again.');
- }
- $("#unlockPhone").attr("action", "/app/error/");
- }
- }
- };
- function fastbootConvert(phoneSN) {
- var chars = phoneSN.split("");
- if (chars[1] == 'A') {
- convertedSN = chars[0] + chars[3] + chars[2] + chars[5] + chars[4] + chars[7] + chars[6] + chars[9] + chars[8] + chars[11] + chars[10] + chars[13] + chars[12] + chars[15] + chars[14];
- } else if (phoneSN.substring(0, 2) == '99' || phoneSN.substring(0, 2) == '98' || phoneSN.substring(0, 2) == '97') {
- convertedSN = phoneSN.substring(0, phoneSN.length - 2);
- typeSN = 'MEID';
- } else {
- convertedSN = phoneSN;
- }
- return convertedSN;
- }
- function bootLoaderCheck(phoneSN, phoneHash, phonePUID) {
- $('#processingContainer').removeClass('noShow');
- $.ajax({
- type: "POST",
- url: "/cc/productRegistration/verifyPhone/" + phoneSN + "/" + phonePUID + '/' + phoneHash + '/',
- dataType: "json",
- success: function (data) {
- var eo = new RightNow.Event.EventObject();
- $('#processingContainer').addClass('noShow');
- },
- error: function (xhr) {
- console.dir(xhr);
- if (xhr.responseText == "Not qualified") {
- alert('Your device does not qualify for bootloader unlocking.');
- } else if (xhr.responseText == "Phone qualifies") {
- $("#unlockPhone").attr("action", "/cc/productRegistration/unlockPhone/" + phoneSN + "/" + phonePUID + '/' + phoneHash + '/');
- $('#submit').removeClass('noShow');
- } else {
- alert('Your input text was not recognized as a valid dataset. Please try again.');
- }
- $('#processingContainer').addClass('noShow');
- }
- });
- }
- RightNow.Widget.LogoutLink2 = function (data, instanceID) {
- this.data = data;
- this.instanceID = instanceID;
- if (document.getElementById("rn_" + this.instanceID)) {
- YAHOO.util.Event.addListener("rn_" + this.instanceID + "_LogoutLink", "click", this._onLogoutClick, null, this);
- RightNow.Event.subscribe("evt_logoutResponse", this._onLogoutCompleted, this);
- }
- };
- RightNow.Widget.LogoutLink2.prototype = {
- _onLogoutCompleted: function (type, arg) {
- var result = arg[0],
- Url = RightNow.Url,
- eventData = arg[1];
- if (result.success === 1 && !RightNow.UI.Form.logoutInProgress && eventData.w_id === this.instanceID) {
- RightNow.UI.Form.logoutInProgress = true;
- if (this.data.js && this.data.js.redirectLocation) {
- if (result.session) this.data.js.redirectLocation = RightNow.Url.addParameter(this.data.js.redirectLocation, 'session', RightNow.Text.getSubstringAfter(result.session, 'session/'));
- Url.navigate(this.data.js.redirectLocation, true);
- } else {
- if (result.socialLogout) Url.navigate(result.socialLogout, true);
- else if (this.data.attrs.redirect_url === '') Url.navigate(result.url, true);
- else Url.navigate(this.data.attrs.redirect_url + result.session, true);
- }
- }
- },
- _onLogoutClick: function () {
- var eo = new RightNow.Event.EventObject();
- eo.w_id = this.instanceID;
- eo.data.currentUrl = window.location.pathname;
- eo.data.redirectUrl = this.data.attrs.redirect_url;
- RightNow.Event.fire("evt_logoutRequest", eo);
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement