String.prototype.replaceAll = function (find, replace) { var str = this; var regex = new RegExp(find, 'g'); str = str.replace(regex, replace); return str; }; String.prototype.removeAccents = function () { var r = this; r = r.replace(new RegExp(/[àáâãäå]/g), "a"); r = r.replace(new RegExp(/æ/g), "ae"); r = r.replace(new RegExp(/ç/g), "c"); r = r.replace(new RegExp(/[èéêë]/g), "e"); r = r.replace(new RegExp(/[ìíîï]/g), "i"); r = r.replace(new RegExp(/ñ/g), "n"); r = r.replace(new RegExp(/[òóôõö]/g), "o"); r = r.replace(new RegExp(/œ/g), "oe"); r = r.replace(new RegExp(/[ùúûü]/g), "u"); r = r.replace(new RegExp(/[ýÿ]/g), "y"); r = r.replace(new RegExp(/[ÀÁÂÃÄÅ]/g), "A"); r = r.replace(new RegExp(/Æ/g), "AE"); r = r.replace(new RegExp(/Ç/g), "C"); r = r.replace(new RegExp(/[ÈÉÊË]/g), "E"); r = r.replace(new RegExp(/[ÌÍÎÏ]/g), "I"); r = r.replace(new RegExp(/Ñ/g), "N"); r = r.replace(new RegExp(/[ÒÓÔÕÖ]/g), "O"); r = r.replace(new RegExp(/Œ/g), "OE"); r = r.replace(new RegExp(/[ÙÚÛÜ]/g), "U"); r = r.replace(new RegExp(/[ÝŸ]/g), "Y"); return r; }; String.prototype.reverse = function () { return this.split('').reverse().(''); }; String.prototype.removeLetters = function () { return this.replace(/[A-Za-z]/g, ''); }; String.prototype.removeNumbers = function () { return this.replace(/[0-9]/g, ''); }; String.prototype.removeSymbols = function () { return this.replace(/[^0-9A-Za-z]/g, ''); }; if (typeof String.prototype.endsWith !== 'function') { String.prototype.endsWith = function (suffix) { return this.indexOf(suffix, this.length - suffix.length) !== -1; }; } String.prototype.toRegex = function (flags) { var s = this.removeAccents() .replaceAll('\\.', '\\.') .replaceAll('\\[', '\\[') .replaceAll('\\]', '\\]') .replaceAll('\\(', '\\(') .replaceAll('\\)', '\\)') .replaceAll('\\+', '\\+') .replaceAll('\\?', '\\?') .replaceAll('\\*', '\\*') .replaceAll('\\<', '\\<') .replaceAll('\\>', '\\>') .replaceAll('\\|', '\\|') .replaceAll('a', '[aàáâãäå]') .replaceAll('c', '[cç]') .replaceAll('e', '[eèéêë]') .replaceAll('i', '[iìíîï]') .replaceAll('n', '[nñ]') .replaceAll('o', '[oòóôõö]') .replaceAll('u', '[uùúûü]') .replaceAll('y', '[yýÿ]') ; return new RegExp(s, flags); }; TCM = {}; TCM.RootPath = window['__TCMRootPath'] || '/'; if (window._tcmJSVariables) { TCM.RootPath = window._tcmJSVariables.RootPath; TCM.Globalization = window._tcmJSVariables.Globalization; TCM.Settings = window._tcmJSVariables.Settings; } else if (parent & parent._tcmJSVariables) { TCM.RootPath = parent._tcmJSVariables.RootPath; TCM.Globalization = parent._tcmJSVariables.Globalization; TCM.Settings = parent._tcmJSVariables.Settings; } (function (factory) { if (typeof define === 'function' & define.amd) { // AMD define(['jquery'], factory); } else if (typeof exports === 'object') { // CommonJS factory(require('jquery')); } else { // Browser globals factory(jQuery); } }(function ($) { var pluses = /\+/g; function encode(s) { return config.raw ? s : encodeURIComponent(s); } function decode(s) { return config.raw ? s : decodeURIComponent(s); } function stringifyCookieValue(value) { return encode(config.json ? JSON.stringify(value) : String(value)); } function parseCookieValue(s) { if (s.indexOf('"') === 0) { // This is a quoted cookie as according to RFC2068, unescape... s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\'); } try { // Replace server-side written pluses with spaces. // If we can't decode the cookie, ignore it, it's unusable. // If we can't parse the cookie, ignore it, it's unusable. s = decodeURIComponent(s.replace(pluses, ' ')); return config.json ? JSON.parse(s) : s; } catch (e) { // TODO? } } function read(s, converter) { var value = config.raw ? s : parseCookieValue(s); return $.isFunction(converter) ? converter(value) : value; } var config = $.tcmcookie = function (key, value, options) { // Write if (value !== undefined & !$.isFunction(value)) { options = $.extend({}, config.defaults, options); if (typeof options.expires === 'number') { var days = options.expires, t = options.expires = new Date(); t.setTime(+t + days * 864e+5); } return (document.cookie = [ encode(key), '=', stringifyCookieValue(value), options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not ed by IE options.path ? '; path=' + options.path : '', options.domain ? '; domain=' + options.domain : '', options.secure ? '; secure' : '' ].('')); } // Read var result = key ? undefined : {}; // To prevent the for loop in the first place assign an empty array // in case there are no cookies at all. Also prevents odd result when // calling $.tcmcookie(). var cookies = document.cookie ? document.cookie.split('; ') : []; for (var i = 0, l = cookies.length; i < l; i++) { var parts = cookies[i].split('='); var name = decode(parts.shift()); var cookie = parts.('='); if (key & key === name) { // If second argument (value) is a function it's a converter... result = read(cookie, value); break; } // Prevent storing a cookie that we couldn't decode. if (!key & (cookie = read(cookie)) !== undefined) { result[name] = cookie; } } return result; }; config.defaults = {}; $.tcmremovecookie = function (key, options) { if ($.tcmcookie(key) === undefined) { return false; } // Must not alter options, thus extending a fresh object... $.tcmcookie(key, '', $.extend({}, options, { expires: -1 })); return !$.tcmcookie(key); }; })); var tcmGoogleReCaptchaRenderExplicitCallback = function () { $('.g-recaptcha[data-grecaptcha-explicit=true]').each(function (index, el) { var $el = $(el); var id = grecaptcha.render(el, { 'sitekey': $el.attr('data-sitekey') , 'theme': $el.attr('data-theme') , 'size': $el.attr('data-size') , 'tabindex': $el.attr('data-tabindex') , 'callback': $el.attr('data-callback') , 'expired-callback': $el.attr('data-expired-callback') , 'error-callback': $el.attr('data-error-callback') }); $(this).attr('data-grecaptcha-id', id); }); }; TCM.GoogleReCaptcha = {}; TCM.GoogleReCaptcha.Clear = function (container) { try { if (window['grecaptcha']) { if (container) { var id = $(container).attr('data-grecaptcha-id'); grecaptcha.reset(id); } else { grecaptcha.reset(); } } } catch (err) { console.log(err); } }; TCM.__createRequestData = function (data, googleReCaptchaOptions) { var _defualt = {}; _defualt.__RequestVerificationToken = TCM.__TCMAntiForgeryToken; // $.tcmcookie('TCMAntiForgeryToken'); var _googleReCaptchaOptions = $.extend({ Enabled: false, Container: null }, googleReCaptchaOptions); if (_googleReCaptchaOptions.Enabled) { try { if (window['grecaptcha']) { if (_googleReCaptchaOptions.Container) { var id = $(_googleReCaptchaOptions.Container).attr('data-grecaptcha-id'); _defualt.googleReCaptchaValue = grecaptcha.getResponse(id); } else { _defualt.googleReCaptchaValue = grecaptcha.getResponse(); } } } catch (err) { console.log(err); } } return $.extend(_defualt, data || {}); }; TCM.__onCompleteRequest = function (httpRequest, textStatus, callback) { var aux = httpRequest.getResponseHeader('TCMAntiForgeryToken'); if (aux) TCM.__TCMAntiForgeryToken = aux; if ($.isFunction(callback)) callback(httpRequest, textStatus); }; TCM.__defaultAPICallbackError = function (jqXHR, textStatus, errorThrown, callback) { if (!$.isFunction(callback)) return; var rt = {}; try { if (jqXHR.responseJSON) rt = jqXHR.responseJSON; else rt = JSON.parse(jqXHR.responseText); if (rt.Status === undefined) rt.Status = false; if (!rt.Message) rt.Message = TCM.Globalization.Translates.AnUnexpectedErrorOccurred; } catch (err) { rt = {}; rt.Status = false; rt.Message = TCM.Globalization.Translates.AnUnexpectedErrorOccurred; } callback(rt); }; TCM. = {}; TCM..Message = {}; TCM..Message.Create = function () { var params = { FormName: '', Data: null, Callback: null, Files: null, Host: '', GoogleReCaptchaContainer: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.FormName = arguments[0]; params.Data = arguments[1]; params.Callback = arguments[2]; params.Files = arguments[3]; } } var filesJson = ''; if (params.Files) filesJson = JSON.stringify(params.Files); $.ajax({ url: (params.Host || TCM.RootPath) + 'api//' + params.FormName + '/message/create', type: 'POST', data: TCM.__createRequestData( { json: JSON.stringify(params.Data), filesJson: filesJson }, { Enabled: true, Container: params.GoogleReCaptchaContainer } ), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(params.Callback)) params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Content = {}; TCM.Content.Publiartial = {}; TCM.Content.Publiartial.Get = function () { var params = { PartialName: '', Data: {}, Callback: null, ErrorCallback: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.PartialName = arguments[0]; params.Data = arguments[1] || {}; params.Callback = arguments[2]; params.ErrorCallback = arguments[2]; } } $.ajax({ url: TCM.RootPath + 'api/content/public-partial/' + params.PartialName, type: 'GET', data: TCM.__createRequestData(params.Data), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (html) { if ($.isPlainObject(html)) { if ($.isFunction(params.ErrorCallback)) { params.ErrorCallback(html); } } else { if ($.isFunction(params.Callback)) { var items = $(html).toArray(); params.Callback(items); } } }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.ErrorCallback); } }); }; TCM.Content.Alert = {}; TCM.Content.Alert.Dismiss = function (id, callback) { var params = { ID: '', Callback: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.ID = arguments[0]; params.Callback = arguments[1]; } } $.ajax({ url: TCM.RootPath + 'api/content/dismiss-alert/' + params.ID, type: 'POST', data: TCM.__createRequestData(params.Data), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(params.Callback)) { params.Callback(rt); } }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.CRM = {}; TCM.CRM.CreateCustomer = function () { var params = { Data: {}, SubsetKeyName: '', Callback: null, GoogleReCaptchaContainer: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.Data = arguments[0]; params.SubsetKeyName = arguments[1]; params.Callback = arguments[2]; } } var url = TCM.RootPath + 'api/crm/create-customer'; if (params.SubsetKeyName) url += '/subset/' + params.SubsetKeyName; $.ajax({ url: url, type: 'POST', data: TCM.__createRequestData( { json: JSON.stringify(params.Data) }, { Enabled: true, Container: params.GoogleReCaptchaContainer } ), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { TCM.Security.UpdateAntiForgeryToken(function () { if ($.isFunction(params.Callback)) params.Callback(rt); }); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.CRM.CreateCustomerWithSocial = function () { var params = { Data: {}, SubsetKeyName: '', SocialProviderKeyName: '', Callback: null, GoogleReCaptchaContainer: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.Data = arguments[0]; params.SubsetKeyName = arguments[1]; params.SocialProviderKeyName = arguments[2]; params.Callback = arguments[3]; } } var url = TCM.RootPath + 'api/crm/create-customer'; if (params.SubsetKeyName) { url += '/subset/' + params.SubsetKeyName; url += '/social-/' + params.SocialProviderKeyName; } $.ajax({ url: url, type: 'POST', data: TCM.__createRequestData( { json: JSON.stringify(params.Data) }, { Enabled: true, Container: params.GoogleReCaptchaContainer } ), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { TCM.Security.UpdateAntiForgeryToken(function () { if ($.isFunction(params.Callback)) params.Callback(rt); }); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.CRM.UpdateCustomer = function () { var params = { Data: {}, CustomerID: 0, SubsetKeyName: '', Callback: null, GoogleReCaptchaContainer: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.Data = arguments[0]; params.CustomerID = arguments[1]; params.SubsetKeyName = arguments[2]; params.Callback = arguments[3]; } } var url = TCM.RootPath + 'api/crm/update-customer/' + params.CustomerID; if (params.SubsetKeyName) url += '/subset/' + params.SubsetKeyName; $.ajax({ url: url, type: 'POST', data: TCM.__createRequestData( { json: JSON.stringify(params.Data) }, { Enabled: true, Container: params.GoogleReCaptchaContainer } ), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { TCM.Security.UpdateAntiForgeryToken(function () { if ($.isFunction(params.Callback)) params.Callback(rt); }); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.CRM.GetCurrentCustomer = function () { var params = { Callback: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.Callback = arguments[0]; } } $.ajax({ url: TCM.RootPath + 'api/crm/customer', type: 'POST', data: TCM.__createRequestData({}), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(params.Callback)) params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.CRM.CreateCustomerAddress = function () { var params = { CustomerID: 0, Data: {}, Callback: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.CustomerID = arguments[0]; params.Data = arguments[1]; params.Callback = arguments[2]; } } var url = TCM.RootPath + 'api/crm/create-customer-address/' + params.CustomerID; $.ajax({ url: url, type: 'POST', data: TCM.__createRequestData( { json: JSON.stringify(params.Data) } ), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(params.Callback)) params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.CRM.UpdateCustomerAddress = function () { var params = { CustomerID: 0, Data: {}, CustomerAddressID: 0, Callback: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.CustomerID = arguments[0]; params.Data = arguments[1]; params.CustomerAddressID = arguments[2]; params.Callback = arguments[3]; } } var url = TCM.RootPath + 'api/crm/update-customer-address/' + params.CustomerID + '/' + params.CustomerAddressID; $.ajax({ url: url, type: 'POST', data: TCM.__createRequestData( { json: JSON.stringify(params.Data) } ), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(params.Callback)) params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.CRM.DeleteCustomerAddress = function () { var params = { CustomerID: 0, CustomerAddressID: 0, Callback: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.CustomerID = arguments[0]; params.CustomerAddressID = arguments[1]; params.Callback = arguments[2]; } } var url = TCM.RootPath + 'api/crm/delete-customer-address/' + params.CustomerID + '/' + params.CustomerAddressID; $.ajax({ url: url, type: 'POST', data: TCM.__createRequestData({}), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(params.Callback)) params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.CRM.CreateCustomerPhone = function () { var params = { CustomerID: 0, Data: {}, Callback: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.CustomerID = arguments[0]; params.Data = arguments[1]; params.Callback = arguments[2]; } } var url = TCM.RootPath + 'api/crm/create-customer-phone/' + params.CustomerID; $.ajax({ url: url, type: 'POST', data: TCM.__createRequestData( { json: JSON.stringify(params.Data) } ), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(params.Callback)) params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.CRM.UpdateCustomerPhone = function () { var params = { CustomerID: 0, Data: {}, CustomerPhoneID: 0, Callback: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.CustomerID = arguments[0]; params.Data = arguments[1]; params.CustomerPhoneID = arguments[2]; params.Callback = arguments[3]; } } var url = TCM.RootPath + 'api/crm/update-customer-phone/' + params.CustomerID + '/' + params.CustomerPhoneID; $.ajax({ url: url, type: 'POST', data: TCM.__createRequestData( { json: JSON.stringify(params.Data) } ), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(params.Callback)) params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.CRM.DeleteCustomerPhone = function () { var params = { CustomerID: 0, CustomerPhoneID: 0, Callback: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.CustomerID = arguments[0]; params.Data = arguments[1]; params.Callback = arguments[2]; } } var url = TCM.RootPath + 'api/crm/delete-customer-phone/' + params.CustomerID + '/' + params.CustomerPhoneID; $.ajax({ url: url, type: 'POST', data: TCM.__createRequestData({}), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(params.Callback)) params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Ecommerce = {}; TCM.Ecommerce.Basket = {}; TCM.Ecommerce.Basket.AddProducts = function (data, callback) { $.ajax({ url: TCM.RootPath + 'api/ecommerce/add-to-basket', type: 'POST', data: TCM.__createRequestData({ json: JSON.stringify(data) }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if (callback) callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, callback); } }); }; TCM.Ecommerce.Basket.RemoveProducts = function (data, callback) { $.each(data, function () { if (!this.Quantity) this.Quantity = 0; }); $.ajax({ url: TCM.RootPath + 'api/ecommerce/remove-from-basket', type: 'POST', data: TCM.__createRequestData({ json: JSON.stringify(data) }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if (callback) callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, callback); } }); }; TCM.Ecommerce.Basket.UpdateBasketQuantity = function (data, callback) { $.ajax({ url: TCM.RootPath + 'api/ecommerce/update-basket-quantity', type: 'POST', data: TCM.__createRequestData({ json: JSON.stringify(data) }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if (callback) callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, callback); } }); }; TCM.Ecommerce.Basket.Get = function (callback) { $.ajax({ url: TCM.RootPath + 'api/ecommerce/get-basket', type: 'GET', success: function (rt) { if (callback) callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, callback); } }); }; TCM.Ecommerce.Basket.CalculateFreight = function (country, zipCode, applyCheaper, callback) { var url = ''; var data = {}; data.ZipCode = zipCode; data.ApplyCheaper = applyCheaper ? 'true' : 'false'; if (/^[0-9]+$/.test(country)) { url = 'api/ecommerce/calculate-freight'; data.CountryID = country; } else { url = 'api/ecommerce/calculate-freight/' + country; } $.ajax({ url: TCM.RootPath + url, type: 'POST', data: TCM.__createRequestData(data), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if (callback) callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, callback); } }); }; TCM.Ecommerce.Basket.SetCurrentCustomer = function (callback) { $.ajax({ url: TCM.RootPath + 'api/ecommerce/set-current-customer-to-basket', type: 'POST', data: TCM.__createRequestData({}), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if (callback) callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, callback); } }); }; TCM.Ecommerce.Basket.SetUnedBuyer = function (data, callback) { $.ajax({ url: TCM.RootPath + 'api/ecommerce/set-uned-buyer-to-basket', type: 'POST', data: TCM.__createRequestData({ json: JSON.stringify(data) }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if (callback) callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, callback); } }); }; TCM.Ecommerce.Basket.RemoveBasketBuyer = function (callback) { $.ajax({ url: TCM.RootPath + 'api/ecommerce/remove-basket-buyer', type: 'POST', data: TCM.__createRequestData({}), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if (callback) callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, callback); } }); }; TCM.Ecommerce.Basket.GetAvailablePaymentTypes = function (callback) { $.ajax({ url: TCM.RootPath + 'api/ecommerce/get-available-payment-types-from-basket', type: 'POST', data: TCM.__createRequestData({}), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if (callback) callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, callback); } }); }; TCM.Ecommerce.Basket.SetDelivery = function (data, callback) { $.ajax({ url: TCM.RootPath + 'api/ecommerce/set-basket-delivery', type: 'POST', data: { json: JSON.stringify(data) }, success: function (rt) { if (callback) callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, callback); } }); }; TCM.Ecommerce.Basket.ClearDeliveries = function (callback) { $.ajax({ url: TCM.RootPath + 'api/ecommerce/clear-basket-deliveries', type: 'POST', data: { }, success: function (rt) { if (callback) callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, callback); } }); }; TCM.Ecommerce.Basket.SetPayment = function (data, callback) { $.ajax({ url: TCM.RootPath + 'api/ecommerce/set-basket-payment', type: 'POST', data: { json: JSON.stringify(data) }, success: function (rt) { if (callback) callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, callback); } }); }; TCM.Ecommerce.Basket.ClearPayments = function (callback) { $.ajax({ url: TCM.RootPath + 'api/ecommerce/clear-basket-payments', type: 'POST', data: { }, success: function (rt) { if (callback) callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, callback); } }); }; TCM.Ecommerce.Basket.ApplyDiscountCoupon = function (code, callback) { $.ajax({ url: TCM.RootPath + 'api/ecommerce/apply-discount-coupon', type: 'POST', data: { code: code }, success: function (rt) { if (callback) callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, callback); } }); }; TCM.Ecommerce.Basket.RemoveDiscountCoupon = function (callback) { $.ajax({ url: TCM.RootPath + 'api/ecommerce/remove-discount-coupon', type: 'POST', data: { }, success: function (rt) { if (callback) callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, callback); } }); }; TCM.Ecommerce.Basket.CreateOrder = function (callback) { var checkoutToken = $('#checkoutToken').val(); $.ajax({ url: TCM.RootPath + 'api/ecommerce/create-order-from-basket', type: 'POST', data: TCM.__createRequestData({ checkoutToken: checkoutToken }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if (callback) callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, callback); } }); }; TCM.Ecommerce.Subscription = {}; TCM.Ecommerce.Subscription.Create = function (data, callback) { $.ajax({ url: TCM.RootPath + 'api/ecommerce/create-subscription', type: 'POST', data: TCM.__createRequestData({ json: JSON.stringify(data) }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if (callback) callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, callback); } }); }; TCM.HumanResources = {}; // ================================================== // Resumes // ================================================== TCM.HumanResources.Resumes = {}; TCM.HumanResources.Resumes.GetCities = function (params) { var _params = { ProvinceID: null, ProvinceShortName: '', Callback: null }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/human-resources/resume/list-cities', type: 'POST', data: TCM.__createRequestData({ provinceID: params.ProvinceID, provinceShortName: params.ProvinceShortName }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(params.Callback)) params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Infrastructure = {}; TCM.Infrastructure.File = function () { var params = { HtmlFile: null, Callback: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.HtmlFile = arguments[0]; // htmlFile params.Callback = arguments[1]; // callback } } try { if (TCM.Settings) { var extension = (params.HtmlFile.name || '').split('.').reverse()[0].toLowerCase(); if (extension) extension = '.' + extension; // Valida extensões aceitas if (TCM.Settings.ExtensionsAccepted & TCM.Settings.ExtensionsAccepted.length > 0) { const aux = TCM.Settings.ExtensionsAccepted.filter(a => a === extension).length; if (!aux) { if ($.isFunction(params.Callback)) params.Callback({ Status: false, Message: TCM.Settings.Messages.InvalidFormat }); return; } } // Valida extensões não aceitas if (TCM.Settings.ExtensionsNotAccepted & TCM.Settings.ExtensionsNotAccepted.length > 0) { const aux = TCM.Settings.ExtensionsNotAccepted.filter(a => a === extension).length; if (aux) { if ($.isFunction(params.Callback)) params.Callback({ Status: false, Message: TCM.Settings.Messages.InvalidFormat }); return; } } // Valida tamanho do arquivo if (TCM.Settings.MaxSize & params.HtmlFile.size > TCM.Settings.MaxSize) { if ($.isFunction(params.Callback)) params.Callback({ Status: false, Message: TCM.Settings.Messages.TheFileMustBeAMaximumOf }); return; } } } catch (ex) { console.log(ex); } formData = new FormData(); formData.append('file', params.HtmlFile); $.ajax({ url: TCM.RootPath + 'api/infrastructure/-file', type: 'POST', data: formData, cache: false, contentType: false, processData: false, success: function (rt) { if ($.isFunction(params.Callback)) params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Infrastructure.MessageDispatcher = {}; TCM.Infrastructure.MessageDispatcher.Send = function () { var params = { MessageDispatcherName: '', TemplateName: '', Recipients: [], Fields: {}, Title: '', Callback: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.MessageDispatcherName = arguments[0]; // messageDispatcherName params.TemplateName = arguments[1]; // templateName params.Recipients = arguments[2]; // recipients params.Fields = arguments[3]; // fields params.Title = arguments[4]; // title params.Callback = arguments[5]; //callback } } $.ajax({ url: TCM.RootPath + 'api/infrastructure/message-dispatcher/' + params.MessageDispatcherName + '/send', type: 'POST', data: TCM.__createRequestData({ json: JSON.stringify({ Title: params.Title, Recipients: params.Recipients, Fields: params.Fields, Template: params.TemplateName }) }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(params.Callback)) params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Intranet = {}; // ============================================================ // POLL // ============================================================ TCM.Intranet.Poll = {}; TCM.Intranet.Poll.Answer = function (params) { var _params = { PollID: 0, PollOptionID: 0, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/poll/answer/' + _params.PollID + '/' + _params.PollOptionID, type: 'POST', data: TCM.__createRequestData({}), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; // ============================================================ // COMMUNITY // ============================================================ TCM.Intranet.Community = {}; TCM.Intranet.Community.CreateInvite = function (params) { var _params = { CommunityID: 0, ID: 0, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/community/invite/create', type: 'POST', data: TCM.__createRequestData({ CommunityID: _params.CommunityID, ID: _params.ID }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Community.SetAccepted = function (params) { var _params = { CommunityID: 0, ID: 0, Accepted: false, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/community/invite/set-accepted', type: 'POST', data: TCM.__createRequestData({ CommunityID: _params.CommunityID, ID: _params.ID, Accepted: _params.Accepted }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Community.Create = function (params) { var _params = { Type: '', Name: '', CategoryID: 0, Description: '', CoverPhoto: '', ContributorRoles: [], ReaderRoles: [], Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/community/create-' + _params.Type, type: 'POST', data: TCM.__createRequestData({ json: JSON.stringify({ Name: _params.Name, CategoryID: _params.CategoryID, Description: _params.Description, CoverPhoto: _params.CoverPhoto, ContributorRoles: _params.ContributorRoles, ReaderRoles: _params.ReaderRoles }) }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if (_params.Callback) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Community.Update = function (params) { var _params = { CommunityID: 0, Name: '', CategoryID: 0, Description: '', CoverPhoto: '', Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/community/update/' + _params.CommunityID, type: 'POST', data: TCM.__createRequestData({ json: JSON.stringify({ Name: _params.Name, CategoryID: _params.CategoryID, Description: _params.Description, CoverPhoto: _params.CoverPhoto }) }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Community.UpdateTimelineSettings = function (params) { var _params = { CommunityID: 0, CommentsEnabled: true, PostEnabled: true, CommentEnabled: true, PostTypes: [], CommentTypes: [], Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/community/update/' + _params.CommunityID + '/timeline-settings', type: 'POST', data: TCM.__createRequestData({ json: JSON.stringify({ CommentsEnabled: _params.CommentsEnabled, PostEnabled: _params.PostEnabled, CommentEnabled: _params.CommentEnabled, PostTypes: _params.PostTypes, CommentTypes: _params.CommentTypes }) }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Community. = function (params) { var _params = { CommunityID: 0, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/community/', type: 'POST', data: TCM.__createRequestData({ CommunityID: _params.CommunityID }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Community.RequestAccess = function (params) { var _params = { CommunityID: 0, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/community/request-access', type: 'POST', data: TCM.__createRequestData({ CommunityID: _params.CommunityID }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Community.AcceptInvite = function (params) { var _params = { CommunityID: 0, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/community/invite/accept', type: 'POST', data: TCM.__createRequestData({ CommunityID: _params.CommunityID }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Community.RejectInvite = function (params) { var _params = { CommunityID: 0, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/community/invite/reject', type: 'POST', data: TCM.__createRequestData({ CommunityID: _params.CommunityID }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Community.Leave = function (params) { var _params = { CommunityID: 0, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/community/leave', type: 'POST', data: TCM.__createRequestData({ CommunityID: _params.CommunityID }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Community.AddManager = function (params) { var _params = { CommunityID: 0, ID: 0, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/community/managers/add', type: 'POST', data: TCM.__createRequestData({ CommunityID: _params.CommunityID, ID: _params.ID }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Community.RemoveManager = function (params) { var _params = { CommunityID: 0, ID: 0, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/community/managers/remove', type: 'POST', data: TCM.__createRequestData({ CommunityID: _params.CommunityID, ID: _params.ID }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Community.RemoveMember = function (params) { var _params = { CommunityID: 0, ID: 0, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/community//remove', type: 'POST', data: TCM.__createRequestData({ CommunityID: _params.CommunityID, ID: _params.ID }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Community.Delete = function (params) { var _params = { CommunityID: 0, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/community/delete', type: 'POST', data: TCM.__createRequestData({ CommunityID: _params.CommunityID }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Community.AddRole = function (params) { var _params = { CommunityID: 0, RoleID: 0, MemberTypeID: 0, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/community/official/roles/add', type: 'POST', data: TCM.__createRequestData({ CommunityID: _params.CommunityID, RoleID: _params.RoleID, MemberTypeID: _params.MemberTypeID }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Community.RemoveRole = function (params) { var _params = { CommunityID: 0, RoleID: 0, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/community/official/roles/remove', type: 'POST', data: TCM.__createRequestData({ CommunityID: _params.CommunityID, RoleID: _params.RoleID }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Community.UpdateRoleMemberType = function (params) { var _params = { CommunityID: 0, RoleID: 0, MemberTypeID: 0, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/community/official/roles/member-type/update', type: 'POST', data: TCM.__createRequestData({ CommunityID: _params.CommunityID, RoleID: _params.RoleID, MemberTypeID: _params.MemberTypeID }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Community.GetsForMention = function (params) { var _params = { CommunityID: 0, Term: '', Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/community/mention/autocomplete/' + _params.CommunityID, type: 'POST', data: TCM.__createRequestData({ term: _param.Term }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Community.CreateInviteNotification = function (params) { var _params = { CommunityID: 0, s: [], Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/community/invite/create-notification', type: 'POST', data: $.param(TCM.__createRequestData({ communityID: _params.CommunityID, s: _params.s }), true), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; // ============================================================ // POST // ============================================================ TCM.Intranet.Post = {}; TCM.Intranet.Post.CreateDefault = function (params) { var _params = { TimelineID: 0, ProfileID: '', Content: {}, PublishDate: null, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/post/create-default', type: 'POST', data: TCM.__createRequestData({ json: JSON.stringify({ Content: _params.Content, TimelineID: _params.TimelineID, ProfileID: _params.ProfileID, PublishDate: TCM.Framework.FormatDateTime(_params.PublishDate, 'yyyy-MM-dd HH:mm') }) }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Post.UpdateDefault = function (params) { var _params = { TimelineID: 0, PostID: 0, Content: {}, PublishDate: null, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/post/update-default', type: 'POST', data: TCM.__createRequestData({ PostID: _params.PostID, json: JSON.stringify({ Content: _params.Content, TimelineID: _params.TimelineID, PublishDate: TCM.Framework.FormatDateTime(_params.PublishDate, 'yyyy-MM-dd HH:mm') }) }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Post.CreateAnnouncement = function (params) { var _params = { TimelineID: 0, ProfileID: '', Content: {}, PublishDate: null, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/post/create-announcement', type: 'POST', data: TCM.__createRequestData({ json: JSON.stringify({ Content: _params.Content, TimelineID: _params.TimelineID, ProfileID: _params.ProfileID, PublishDate: TCM.Framework.FormatDateTime(_params.PublishDate, 'yyyy-MM-dd HH:mm') }) }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if (_params.Callback) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Post.UpdateAnnouncement = function (params) { var _params = { TimelineID: 0, PostID: 0, Content: {}, PublishDate: null, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/post/update-announcement', type: 'POST', data: TCM.__createRequestData({ PostID: _params.PostID, json: JSON.stringify({ TimelineID: _params.TimelineID, Content: _params.Content, PublishDate: TCM.Framework.FormatDateTime(_params.PublishDate, 'yyyy-MM-dd HH:mm') }) }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Post.Set = function (params) { var _params = { TimelineID: 0, PostID: 0, Type: '', Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/post/set-', type: 'POST', data: TCM.__createRequestData({ TimelineID: _params.TimelineID, PostID: _params.PostID, Type: _params.Type }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Post.Remove = function (params) { var _params = { TimelineID: 0, PostID: 0, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/post/remove-', type: 'POST', data: TCM.__createRequestData({ TimelineID: _params.TimelineID, PostID: _params.PostID }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Post.Delete = function (params) { var _params = { TimelineID: 0, PostID: 0, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/post/delete', type: 'POST', data: TCM.__createRequestData({ TimelineID: _params.TimelineID, PostID: _params.PostID }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Post.Pin = function (params) { var _params = { TimelineID: 0, PostID: 0, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/post/pin', type: 'POST', data: TCM.__createRequestData({ TimelineID: _params.TimelineID, PostID: _params.PostID }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Post.Unpin = function (params) { var _params = { TimelineID: 0, PostID: 0, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/post/unpin', type: 'POST', data: TCM.__createRequestData({ TimelineID: _params.TimelineID, PostID: _params.PostID }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Post.Complaint = function (params) { var _params = { TimelineID: 0, PostID: 0, Description: '', Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/post/complaint/create', type: 'POST', data: TCM.__createRequestData({ TimelineID: _params.TimelineID, PostID: _params.PostID, Description: _params.Description }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; // ============================================================ // POST COMMENT // ============================================================ TCM.Intranet.Post.Comment = {}; TCM.Intranet.Post.Comment.Create = function (params) { var _params = { TimelineID: 0, PostID: 0, ParentID: null, ProfileID: 0, Content: { Body: '' }, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/post/comment/create', type: 'POST', data: TCM.__createRequestData({ json: JSON.stringify({ Content: _params.Content, TimelineID: _params.TimelineID, PostID: _params.PostID, ParentID: _params.ParentID, ProfileID: _params.ProfileID }) }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Post.Comment.Delete = function (params) { var _params = { TimelineID: 0, PostID: 0, CommentID: 0, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/post/comment/delete', type: 'POST', data: TCM.__createRequestData({ TimelineID: _params.TimelineID, PostID: _params.PostID, CommentID: _params.CommentID }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Post.Comment.Update = function (params) { var _params = { TimelineID: 0, PostID: 0, CommentID: 0, Content: { Body: '' }, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/post/comment/update', type: 'POST', data: TCM.__createRequestData({ json: JSON.stringify({ Content: _params.Content, TimelineID: _params.TimelineID, PostID: _params.PostID, CommentID: _params.CommentID }) }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Post.Comment.Complaint = function (params) { var _params = { TimelineID: 0, PostID: 0, CommentID: 0, Description: '', Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/post/comment/complaint/create', type: 'POST', data: TCM.__createRequestData({ TimelineID: _params.TimelineID, PostID: _params.PostID, PostCommentID: _params.CommentID, Description: _params.Description }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Post.Comment.Set = function (params) { var _params = { TimelineID: 0, PostID: 0, CommentID: 0, Type: '', Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/post/comment/set-', type: 'POST', data: TCM.__createRequestData({ TimelineID: _params.TimelineID, PostID: _params.PostID, CommentID: _params.CommentID, Type: _params.Type }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Post.Comment.Remove = function (params) { var _params = { TimelineID: 0, PostID: 0, CommentID: 0, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/post/comment/remove-', type: 'POST', data: TCM.__createRequestData({ TimelineID: _params.TimelineID, PostID: _params.PostID, CommentID: _params.CommentID }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; // ============================================================ // // ============================================================ TCM.Intranet. = {}; TCM.Intranet..Update = function (params) { var _params = { Picture: '', Biography: '', ShowBirthdate: false, UpdateProfile: false, UpdatePicture: false, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet//update', type: 'POST', data: TCM.__createRequestData({ json: JSON.stringify({ Biography: _params.Biography, Picture: _params.Picture, ShowBirthdate: _params.ShowBirthdate, UpdateProfile: _params.UpdateProfile, UpdatePicture: _params.UpdatePicture }) }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; // ============================================================ // FAVORITE LINKS // ============================================================ TCM.Intranet.FavoriteLinks = {}; TCM.Intranet.FavoriteLinks.Create = function (params) { var _params = { Name: '', Url: '', Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/favorite-link/create', type: 'POST', data: TCM.__createRequestData({ json: JSON.stringify({ Name: _params.Name, Url: _params.Url }) }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.FavoriteLinks.Update = function (params) { var _params = { ID: 0, Name: '', Url: '', Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/favorite-link/update', type: 'POST', data: TCM.__createRequestData({ json: JSON.stringify({ ID: _params.ID, Name: _params.Name, Url: _params.Url }) }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.FavoriteLinks.Delete = function (params) { var _params = { ID: 0, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/favorite-link/delete', type: 'POST', data: TCM.__createRequestData({ favoriteLinkID: _params.ID }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.FavoriteLinks.UpdateViewIndex = function (params) { var _params = { Items: [], Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/favorite-link/update-view-index', type: 'POST', data: TCM.__createRequestData({ favoriteLinksIDs: _params.Items }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.FavoriteLinks.GetFavoriteLinks = function (params) { var _params = { Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/favorite-link/', type: 'POST', success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; // ============================================================ // NOTIFICATION // ============================================================ TCM.Intranet.Notification = {}; TCM.Intranet.Notification.Get = function (params) { var _params = { IncludeAnnouncements: true, IncludeNotifications: true, PageIndex: 0, PageSize: 10, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/notification/list', type: 'POST', data: TCM.__createRequestData({ includeAnnouncements: _params.IncludeAnnouncements, includeNotifications: _params.IncludeNotifications, pageIndex: _params.PageIndex, pageSize: _params.PageSize }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Notification.SetNotificationsViewed = function (params) { var _params = { Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/notification/set-viewed/notifications', type: 'POST', data: TCM.__createRequestData({}), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Intranet.Notification.SetAnnouncementsViewed = function (params) { var _params = { Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/notification/set-viewed/announcements', type: 'POST', data: TCM.__createRequestData({}), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; // ============================================================ // CALENDAR // ============================================================ TCM.Intranet.Calendar = {}; TCM.Intranet.Calendar.Get = function (params) { var _params = { StartDate: undefined, EndDate: undefined, PageIndex: 0, PageSize: 10, Callback: undefined }; $.extend(_params, params); if (_params.StartDate) _params.StartDate = TCM.Framework.FormatDateTime(_params.StartDate, 'yyyy-MM-dd HH:mm:ss'); if (_params.EndDate) _params.EndDate = TCM.Framework.FormatDateTime(_params.EndDate, 'yyyy-MM-dd HH:mm:ss'); $.ajax({ url: TCM.RootPath + 'api/intranet/calendar/list', type: 'POST', data: TCM.__createRequestData({ startDate: _params.StartDate, endDate: _params.EndDate, pageIndex: _params.PageIndex, pageSize: _params.PageSize }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; // ============================================================ // THEME // ============================================================ TCM.Intranet.Theme = {}; TCM.Intranet.Theme.Set = function (params) { var _params = { ID: 0, Callback: undefined }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/intranet/theme', type: 'POST', data: TCM.__createRequestData({ themeID: _params.ID }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(_params.Callback)) _params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, _params.Callback); } }); }; TCM.Location = {}; TCM.Location.ZipCode = {}; TCM.Location.ZipCode.Get = function () { var params = { CountryName: '', Code: '', Callback: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.CountryName = arguments[0]; params.Code = arguments[1]; params.Callback = arguments[2]; } } $.ajax({ url: TCM.RootPath + 'api/location/' + params.CountryName + '/zipcode', type: 'POST', data: TCM.__createRequestData({ code: params.Code }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(params.Callback)) params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Location.ZipCode.Search = function (params) { var _params = { CountryName: '', ProvinceShortName: '', CityName: '', StreetContains: '', Callback: null }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/location/' + params.CountryName + '/zipcodes/search', type: 'POST', data: TCM.__createRequestData({ provinceShortName: params.ProvinceShortName, cityName: params.CityName, streetContains: params.StreetContains }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(params.Callback)) params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Location.Province = {}; TCM.Location.Province.List = function () { var params = { CountryName: '', Callback: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.CountryName = arguments[0]; params.Callback = arguments[1]; } } $.ajax({ url: TCM.RootPath + 'api/location/' + params.CountryName + '/provinces', type: 'POST', data: TCM.__createRequestData({}), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(params.Callback)) params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Location.City = {}; TCM.Location.City.Search = function () { var params = { CountryName: '', ProvinceID: '', ProvinceShortName: '', ProvinceName: '', CityName: '', Callback: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.CountryName = arguments[0]; var _data = arguments[1] || {}; params.ProvinceID = _data['provinceID'] || ''; params.ProvinceShortName = _data['provinceShortName'] || ''; params.ProvinceName = _data['provinceName'] || ''; params.CityName = _data['cityName'] || ''; params.Callback = arguments[2]; } } $.ajax({ url: TCM.RootPath + 'api/location/' + params.CountryName + '/cities/search', type: 'POST', data: TCM.__createRequestData({ provinceID: params.ProvinceID, provinceShortName: params.ProvinceShortName, provinceName: params.ProvinceName, cityName: params.CityName }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(params.Callback)) params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Office = {}; // ================================================== // Supplier // ================================================== TCM.Office.Supplier = {}; TCM.Office.Supplier.GetCategories = function (params) { var _params = { SupplierTypeID: null, Callback: null }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/office/supplier/list-categories', type: 'POST', data: TCM.__createRequestData({ supplierTypeID: params.SupplierTypeID }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(params.Callback)) params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Office.Supplier.GetCities = function (params) { var _params = { ProvinceID: null, ProvinceShortName: '', Callback: null }; $.extend(_params, params); $.ajax({ url: TCM.RootPath + 'api/office/supplier/list-cities', type: 'POST', data: TCM.__createRequestData({ provinceID: params.ProvinceID, provinceShortName: params.ProvinceShortName }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(params.Callback)) params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Security = {}; TCM.Security.UpdateAntiForgeryToken = function () { var params = { Callback: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.Callback = arguments[0]; } } $.ajax({ url: TCM.RootPath + 'api/security/update-anti-forgery-token', type: 'POST', success: function (rt) { if ($.isFunction(params.Callback)) params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Security.GetCurrent = function () { var params = { Callback: null, Host: '' }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.Callback = arguments[0]; } } $.ajax({ url: (params.Host || TCM.RootPath) + 'api/security/', type: 'POST', data: TCM.__createRequestData({}), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if (params.Callback) params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Security. = function () { var params = { SubsetKeyName: '', Email: '', : '', : '', Callback: null, Host: '', GoogleReCaptchaContainer: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.SubsetKeyName = arguments[0]; params.Email = arguments[1]; params. = arguments[2]; params. = arguments[3]; params.Callback = arguments[4]; } } $.ajax({ url: (params.Host || TCM.RootPath) + 'api/security/' + params.SubsetKeyName + '/', type: 'POST', data: TCM.__createRequestData( { Email: params.Email, : params., : params. }, { Enabled: true, Container: params.GoogleReCaptchaContainer } ), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if (rt.RequiresAcceptOfUse & rt.RedirectUrl) { TCM.UI.Loading.Start(); window.location = rt.RedirectUrl; } else { TCM.Security.UpdateAntiForgeryToken(function () { if (params.Callback) params.Callback(rt); }); } }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Security.Logoff = function () { var params = { SubsetKeyName: '', Callback: null, Host: '' }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.SubsetKeyName = arguments[0]; params.Callback = arguments[1]; } } $.ajax({ url: (params.Host || TCM.RootPath) + 'api/security/' + params.SubsetKeyName + '/logoff', type: 'POST', data: TCM.__createRequestData({}), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { TCM.Security.UpdateAntiForgeryToken(function () { if (params.Callback) params.Callback(rt); }); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Security.Create = function () { var params = { SubsetKeyName: '', Name: '', Email: '', : '', : '', Phone: '', MobilePhone: '', Street: '', StreetNumber: '', Complement: '', District: '', City: '', ProvinceShortName: '', ZipCode: '', Country: '', Custom: {}, Callback: null, Host: '', GoogleReCaptchaContainer: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.SubsetKeyName = arguments[0]; params.Name = arguments[1]; params.Email = arguments[2]; params. = arguments[3]; params. = arguments[4]; params.Callback = arguments[5]; } } $.ajax({ url: (params.Host || TCM.RootPath) + 'api/security/' + params.SubsetKeyName + '//create', type: 'POST', data: TCM.__createRequestData( { json: JSON.stringify({ Name: params.Name, Email: params.Email, : params., : params., Phone: params.Phone, MobilePhone: params.MobilePhone, Street: params.Street, StreetNumber: params.StreetNumber, Complement: params.Complement, District: params.District, City: params.City, ProvinceShortName: params.ProvinceShortName, ZipCode: params.ZipCode, Country: params.Country, Custom: params.Custom }) }, { Enabled: true, Container: params.GoogleReCaptchaContainer } ), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { TCM.Security.UpdateAntiForgeryToken(function () { if (params.Callback) params.Callback(rt); }); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Security.CreateWithSocial = function () { var params = { SubsetKeyName: '', Name: '', Email: '', : '', : '', Phone: '', MobilePhone: '', Street: '', StreetNumber: '', Complement: '', District: '', City: '', ProvinceShortName: '', ZipCode: '', Country: '', Custom: {}, SocialProviderKeyName: '', Callback: null, Host: '', GoogleReCaptchaContainer: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.SubsetKeyName = arguments[0]; params.Name = arguments[1]; params.Email = arguments[2]; params. = arguments[3]; params. = arguments[4]; params.SocialProviderKeyName = arguments[5]; params.Callback = arguments[6]; } } $.ajax({ url: (params.Host || TCM.RootPath) + 'api/security/' + params.SubsetKeyName + '//create/social-/' + params.SocialProviderKeyName, type: 'POST', data: TCM.__createRequestData( { json: JSON.stringify({ Name: params.Name, Email: params.Email, : params., : params., Phone: params.Phone, MobilePhone: params.MobilePhone, Street: params.Street, StreetNumber: params.StreetNumber, Complement: params.Complement, District: params.District, City: params.City, ProvinceShortName: params.ProvinceShortName, ZipCode: params.ZipCode, Country: params.Country, Custom: params.Custom }) }, { Enabled: true, Container: params.GoogleReCaptchaContainer } ), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { TCM.Security.UpdateAntiForgeryToken(function () { if (params.Callback) params.Callback(rt); }); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Security.Update = function () { var params = { SubsetKeyName: '', ID: '', Name: '', Email: '', : '', : '', Phone: '', MobilePhone: '', Street: '', StreetNumber: '', Complement: '', District: '', City: '', ProvinceShortName: '', ZipCode: '', Country: '', Custom: {}, Callback: null, Host: '', GoogleReCaptchaContainer: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.SubsetKeyName = arguments[0]; params.ID = arguments[1]; params.Name = arguments[2]; params.Email = arguments[3]; params. = arguments[4]; params. = arguments[5]; params.Callback = arguments[6]; } } $.ajax({ url: (params.Host || TCM.RootPath) + 'api/security/' + params.SubsetKeyName + '//update/' + params.ID, type: 'POST', data: TCM.__createRequestData( { json: JSON.stringify({ Name: params.Name, Email: params.Email, : params., : params., Phone: params.Phone, MobilePhone: params.MobilePhone, Street: params.Street, StreetNumber: params.StreetNumber, Complement: params.Complement, District: params.District, City: params.City, ProvinceShortName: params.ProvinceShortName, ZipCode: params.ZipCode, Country: params.Country, Custom: params.Custom }) }, { Enabled: true, Container: params.GoogleReCaptchaContainer } ), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { TCM.Security.UpdateAntiForgeryToken(function () { if (params.Callback) params.Callback(rt); }); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Security.Change = function () { var params = { SubsetKeyName: '', ID: '', Old: '', New: '', Callback: null, Host: '', GoogleReCaptchaContainer: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.SubsetKeyName = arguments[0]; params.ID = arguments[1]; params.Old = arguments[2]; params.New = arguments[3]; params.Callback = arguments[4]; } } $.ajax({ url: (params.Host || TCM.RootPath) + 'api/security/' + params.SubsetKeyName + '//change-/' + params.ID, type: 'POST', data: TCM.__createRequestData( { old: params.Old, new: params.New }, { Enabled: true, Container: params.GoogleReCaptchaContainer } ), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { TCM.Security.UpdateAntiForgeryToken(function () { if (params.Callback) params.Callback(rt); }); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Security.Recover = function () { var params = { SubsetKeyName: '', Email: '', : '', Callback: null, Host: '', GoogleReCaptchaContainer: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.SubsetKeyName = arguments[0]; params.Email = arguments[1]; params. = arguments[2]; params.Callback = arguments[3]; } } $.ajax({ url: (params.Host || TCM.RootPath) + 'api/security/' + params.SubsetKeyName + '//recover-', type: 'POST', data: TCM.__createRequestData( { email: params.Email, : params. }, { Enabled: true, Container: params.GoogleReCaptchaContainer } ), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { TCM.Security.UpdateAntiForgeryToken(function () { if (params.Callback) params.Callback(rt); }); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Security.CreateNew = function () { var params = { SubsetKeyName: '', Email: '', : '', Old: '', New: '', : false, Callback: null, Host: '', GoogleReCaptchaContainer: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.SubsetKeyName = arguments[0]; params.Email = arguments[1]; params. = arguments[2]; params.Old = arguments[3]; params.New = arguments[4]; params. = arguments[5]; params.Callback = arguments[6]; } } $.ajax({ url: (params.Host || TCM.RootPath) + 'api/security/' + params.SubsetKeyName + '//create-new-', type: 'POST', data: TCM.__createRequestData( { email: params.Email, : params., old: params.Old, new: params.New, : params. }, { Enabled: true, Container: params.GoogleReCaptchaContainer } ), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if (rt.RequiresAcceptOfUse & rt.RedirectUrl) { TCM.UI.Loading.Start(); window.location = rt.RedirectUrl; } else { TCM.Security.UpdateAntiForgeryToken(function () { if (params.Callback) params.Callback(rt); }); } }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Security.AcceptOfUse = function () { var params = { SubsetKeyName: '', PreSessionToken: '', OfUseID: '', Callback: null, Host: '', GoogleReCaptchaContainer: null }; $.extend(params, arguments[0]); $.ajax({ url: (params.Host || TCM.RootPath) + 'api/security/' + params.SubsetKeyName + '/accept--of-use', type: 'POST', data: TCM.__createRequestData( { preSessionToken: params.PreSessionToken, OfUseID: params.OfUseID }, { Enabled: true, Container: params.GoogleReCaptchaContainer } ), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { TCM.Security.UpdateAntiForgeryToken(function () { if (params.Callback) params.Callback(rt); }); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Social = {}; TCM.Social.AddPageLike = function () { var params = { PageID: 0, Callback: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.PageID = arguments[0]; params.Callback = arguments[1]; } } $.ajax({ url: TCM.RootPath + 'api/social/add-page-like/' + params.PageID, type: 'POST', data: TCM.__createRequestData({}), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(params.Callback)) params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Social.GetPageLikes = function () { var params = { PageID: 0, Callback: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.PageID = arguments[0]; params.Callback = arguments[1]; } } $.ajax({ url: TCM.RootPath + 'api/social/page-likes/' + params.PageID, type: 'POST', data: TCM.__createRequestData({}), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(params.Callback)) params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Social.CreatePageComment = function () { var params = { PageID: 0, Data: '', ParentID: null, Callback: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.PageID = arguments[0]; params.Data = arguments[1]; params.ParentID = arguments[2]; params.Callback = arguments[3]; } } var url = TCM.RootPath + 'api/social/create-comment'; if (params.ParentID) url += '/parent/' + params.ParentID; url += '/page/' + params.PageID; $.ajax({ url: url, type: 'POST', data: TCM.__createRequestData({ json: JSON.stringify(params.Data) }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(params.Callback)) params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Social.CreateComment = function (objectType, objectID, data, parentID, callback) { var params = { ObjectType: '', ObjectID: '', Data: '', ParentID: null, Callback: null }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.ObjectType = arguments[0]; params.ObjectID = arguments[1]; params.Data = arguments[2]; params.ParentID = arguments[3]; params.Callback = arguments[4]; } } var url = TCM.RootPath + 'api/social/create-comment'; if (params.ParentID) url += '/parent/' + params.ParentID; url += '/' + params.ObjectType + '/' + params.ObjectID; $.ajax({ url: url, type: 'POST', data: TCM.__createRequestData({ json: JSON.stringify(params.Data) }), complete: function (httpRequest, textStatus) { TCM.__onCompleteRequest(httpRequest, textStatus, null); }, success: function (rt) { if ($.isFunction(params.Callback)) params.Callback(rt); }, error: function (jqXHR, textStatus, errorThrown) { TCM.__defaultAPICallbackError(jqXHR, textStatus, errorThrown, params.Callback); } }); }; TCM.Framework = {}; TCM.Framework.Truncate = function (n) { try { if (Math.trunc) return Math.trunc(n); else return n > 0 ? Math.floor(n) : Math.ceil(n); } catch (error) { return parseInt(n); } }; TCM.Framework.Today = function () { var dt = new Date(); var s = (dt.getMonth() + 1) + '/' + dt.getDate() + '/' + dt.getFullYear(); return new Date(s); }; TCM.Framework.RoundDecimal = function (d, digits) { return Math.round((d * Math.pow(10, digits))) / Math.pow(10, digits); }; TCM.Framework.ParseDate = function (s, dateFormat) { s = $.trim(s) || ''; if (!s) return ''; if (!dateFormat) { dateFormat = TCM.Globalization.DateTimeFormat.ShortDatePattern.toLocaleLowerCase(); } while (dateFormat.indexOf('mm') >= 0) dateFormat = dateFormat.replace(new RegExp('mm', 'g'), 'm'); while (dateFormat.indexOf('dd') >= 0) dateFormat = dateFormat.replace(new RegExp('dd', 'g'), 'd'); while (dateFormat.indexOf('yy') >= 0) dateFormat = dateFormat.replace(new RegExp('yy', 'g'), 'y'); dateFormat = dateFormat.replace(new RegExp(' -\\.', 'g'), '/'); while (dateFormat.indexOf('//') >= 0) dateFormat = dateFormat.replace(new RegExp('\\/\\/', 'g'), '/'); var array = dateFormat.split('/'); if (array.length === 1) array = array[0].split('-'); var yearIndex = -1; var monthIndex = -1; var dayIndex = -1; var _regex = ''; _regex += '^'; for (var i = 0; i < array.length; i++) { if (i > 0) _regex += '[-\\/]'; if (array[i] === 'y') { _regex += '(\\d{4})'; yearIndex = i + 1; } else if (array[i] === 'm') { _regex += '(\\d{1,2})'; monthIndex = i + 1; } else if (array[i] === 'd') { _regex += '(\\d{1,2})'; dayIndex = i + 1; } } // time _regex += '( (\\d{1,2}):(\\d{1,2})(:(\\d{1,2}))?)?$'; var regex = new RegExp(_regex); if (!regex.test(s)) return ''; var data = regex.exec(s); var day = ('00' + data[dayIndex]).substr(-2); var month = ('00' + data[monthIndex]).substr(-2); var year = ('0000' + data[yearIndex]).substr(-4); if (parseInt(year) < 1900) return ''; if (parseInt(month) < 1 || parseInt(month) > 12) return ''; if (parseInt(day) < 1) return ''; if (parseInt(day) > 28) { if ([1, 3, 5, 7, 8, 10, 12].indexOf(parseInt(month)) >= 0 & parseInt(day) > 31) return ''; else if ([4, 6, 9, 11].indexOf(parseInt(month)) >= 0 & parseInt(day) > 30) return ''; else if (parseInt(month) === 2 & parseInt(day) > 28) { if (parseInt(day) === 29) { if ((parseInt(year) % 4) !== 0) return ''; } else return ''; } } var dt = month + '/' + day + '/' + year; if (data[5] & data[6]) { var hour = ('00' + data[5]).substr(-2); var minute = ('00' + data[6]).substr(-2); var second = '00'; if (data[8]) second = ('00' + data[8]).substr(-2); if (parseInt(hour) < 0 || parseInt(hour) > 23) return ''; if (parseInt(minute) < 0 || parseInt(minute) > 59) return ''; if (parseInt(second) < 0 || parseInt(second) > 59) return ''; dt += ' ' + hour + ':' + minute + ':' + second; } else dt += ' 00:00:00'; return new Date(dt); }; TCM.Framework.ParseJsonDate = function (s) { var results = /Date\(([^)]+)\)/.exec(s); if (results & results.length >= 2) return new Date(parseFloat(results[1])); return null; }; TCM.Framework.ParsePhone = function (s) { var array = /(^(\d{2})(9\d{8})$)|(^(\d{2})(\d{8})$)/.exec(s.replace(/[^0-9]/g, '')); var rt = { AreaCode: '', Phone: '', IsValid: false }; if (array & array.length === 7) { rt.AreaCode = array[2] || array[5]; rt.Phone = array[3] || array[6]; rt.IsValid = true; } return rt; } TCM.Framework.ParseDecimal = function (s) { var regex = new RegExp('^(\\d+|\\d{1,3}(' + (TCM.Globalization.NumberFormat.DigitGroupingSymbol === '.' ? '\\.' : TCM.Globalization.NumberFormat.DigitGroupingSymbol) + '\\d{3})+)(' + (TCM.Globalization.NumberFormat.DecimalSymbol === '.' ? '\\.' : TCM.Globalization.NumberFormat.DecimalSymbol) + '\\d+)?$'); if (!regex.test(s)) return NaN; return parseFloat(TCM.Framework.RemoveDigitGroupingSymbol(s).replace(TCM.Globalization.NumberFormat.DecimalSymbol, '.')); }; TCM.Framework.IsEmail = function (s) { return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(s); }; TCM.Framework.IsF = function (s) { if (s.length === 0) return true; var f = s.replace(/[^0-9]/gi, ''); if (f.length !== 11 || f === "00000000000" || f === "11111111111" || f === "22222222222" || f === "33333333333" || f === "44444444444" || f === "55555555555" || f === "66666666666" || f === "77777777777" || f === "88888888888" || f === "99999999999") return false; add = 0; for (i = 0; i < 9; i++) add += parseInt(f.charAt(i)) * (10 - i); rev = 11 - (add % 11); if (rev === 10 || rev === 11) rev = 0; if (rev !== parseInt(f.charAt(9))) return false; add = 0; for (i = 0; i < 10; i++) add += parseInt(f.charAt(i)) * (11 - i); rev = 11 - (add % 11); if (rev === 10 || rev === 11) rev = 0; if (rev !== parseInt(f.charAt(10))) return false; return true; }; TCM.Framework.IsCNPJ = function (s) { if (s.length === 0) return true; var aux = ('00000000000000' + s.replace(/[^0-9]/gi, '')).substr(-14); var ftmt = '6543298765432'; var digits = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; var sum = [0, 0]; var result = [0, 0]; var ok = [false, false]; var i = 0; for (i = 0; i < 14; i++) { digits[i] = parseInt(aux.substr(i, 1)); if (i <= 11) sum[0] += (digits[i] * parseInt(ftmt.substr(i + 1, 1))); if (i <= 12) sum[1] += (digits[i] * parseInt(ftmt.substr(i, 1))); } for (i = 0; i < 2; i++) { result[i] = (sum[i] % 11); if ((result[i] === 0) || (result[i] === 1)) ok[i] = (digits[12 + i] === 0); else ok[i] = (digits[12 + i] === (11 - result[i])); } return (ok[0] & ok[1]); }; TCM.Framework.FormatDecimal = function (d, minDecimals) { var s = ''; if (!isNaN(d)) s = d.toString(); return TCM.Framework.ApplyDigitGroupingSymbol(s.replace(TCM.Globalization.NumberFormat.DigitGroupingSymbol, TCM.Globalization.NumberFormat.DecimalSymbol), minDecimals); }; TCM.Framework.RemoveDigitGroupingSymbol = function (s) { return (s || '').replace(new RegExp(TCM.Globalization.NumberFormat.DigitGroupingSymbol === '.' ? '\\.' : TCM.Globalization.NumberFormat.DigitGroupingSymbol, 'g'), ''); }; TCM.Framework.ApplyDigitGroupingSymbol = function (s, minDecimals) { s = TCM.Framework.RemoveDigitGroupingSymbol(s || ''); if (!s) return s; var signal = ''; if (!/^[0-9]$/.test(s.substr(0, 1))) { signal = s.substr(0, 1); s = s.substr(1); } if (!minDecimals & minDecimals !== 0) minDecimals = 2; var pos = s.indexOf(TCM.Globalization.NumberFormat.DecimalSymbol); var s1 = s; var s2 = ''; if (pos >= 0) { s1 = s.substr(0, pos); s2 = s.substr(pos + 1); } while (s2.length < minDecimals) s2 += '0'; if (s1.length > 3) { var aux = ''; var g = 0; for (i = s1.length - 1; i >= 0; i--) { if (g === 3) { aux = TCM.Globalization.NumberFormat.DigitGroupingSymbol + aux; g = 0; } aux = s1.substr(i, 1) + aux; g++; } s1 = aux; } return signal + ((s2.length > 0) ? s1 + TCM.Globalization.NumberFormat.DecimalSymbol + s2 : s1); }; TCM.Framework.ParseVideoUrl = function (url) { var list = []; var i = 0; var array = []; var y_regex1 = /^(http:\/\/|https:\/\/|^\/\/)?youtu\.be\/([A-z0-9\-]+)$/i; var y_regex2 = /^(http:\/\/|https:\/\/|^\/\/)?www\.youtube\.com\/watch\?v=([A-z0-9-]+)/i; var v_regex1 = /^(http:\/\/|https:\/\/|^\/\/)?vimeo\.com(\/[A-z0-9-]+)*\/([0-9\-]+)$/i; var v_regex2 = /^(http:\/\/|https:\/\/|^\/\/)?player\.vimeo\.com\/video\/([0-9-]+)/i; list = []; list.push(y_regex1); list.push(y_regex2); for (i = 0; i < list.length; i++) { array = list[i].exec(url); if (array & array.length) return { ID: array[array.length - 1], Type: 'youtube' }; } list = []; list.push(v_regex1); list.push(v_regex2); for (i = 0; i < list.length; i++) { array = list[i].exec(url); if (array & array.length) return { ID: array[array.length - 1], Type: 'vimeo' }; } return { ID: '', Type: 'none' }; }; TCM.Framework.ApplyInputMask = function (container) { dateMask = TCM.Globalization.DateTimeFormat.ShortDatePattern.replace(new RegExp('[A-z]', 'g'), '0'); timeMask = TCM.Globalization.DateTimeFormat.ShortTimePattern.replace(new RegExp('[A-z]', 'g'), '0'); dateTimeMask = dateMask + ' ' + timeMask; $('input[data-type=datetime]', container).mask(dateTimeMask); $('input[data-type=date][type=text]', container).mask(dateMask); $('input[data-type=time]', container).mask(timeMask); $('input[data-type=shorttime]', container).mask('00:00'); $('input[data-type=phone]', container).mask('(00) 00000000Z', { translation: { 'Z': { pattern: /[0-9]/, optional: true } } }); $('input[data-type=brazilphone]', container).mask('(00) 00000000Z', { translation: { 'Z': { pattern: /[0-9]/, optional: true } } }); $('input[data-type=int]', container).mask('00000000'); $('input[data-type=long]', container).mask('0000000000000000'); $('input[data-type=f]', container).mask('000.000.000-00'); $('input[data-type=cnpj]', container).mask('00.000.000/0000-00'); $('input[data-type=zipcode]', container).mask('00000-000'); $('input[data-type=brazilzipcode]', container).mask('00000-000'); if ($.datepicker) { $('input[data-type=date][type=text]', container).datepicker({ dayNames: TCM.Globalization.DateTimeFormat.DayNames , dayNamesShort: TCM.Globalization.DateTimeFormat.AbbreviatedDayNames , monthNames: TCM.Globalization.DateTimeFormat.MonthNames , monthNamesShort: TCM.Globalization.DateTimeFormat.AbbreviatedMonthNames , dayNamesMin: TCM.Globalization.DateTimeFormat.ShortestDayNames , dateFormat: TCM.Globalization.DateTimeFormat.ShortDatePattern.toLowerCase().replace('yyyy', 'yy') , changeMonth: true , changeYear: true }); } $('input[type=date]', container).on('change', function () { // Caso não seja uma data válida, o componente retorna '', então é forçado '' para limpar o campo visualmente var $this = $(this); if (!$this.val()) { $this.val(''); $this.addClass('tcm-onchange-invalid-value'); setTimeout(function () { $this.removeClass('tcm-onchange-invalid-value'); }, 1000); } }); $('input[data-type]', container).attr('autocomplete', 'off'); }; TCM.Framework.FormatDateTime = function (date, format) { if (!date) return ''; var rt = format || (TCM.Globalization.DateTimeFormat.ShortDatePattern + ' ' + TCM.Globalization.DateTimeFormat.ShortTimePattern); var day = ('00' + date.getDate().toString()).substr(-2); var month = ('00' + (date.getMonth() + 1).toString()).substr(-2); var fullYear = ('0000' + date.getFullYear().toString()).substr(-4); var year = ('00' + date.getFullYear().toString()).substr(-2); var hour = ('00' + date.getHours().toString()).substr(-2); var minute = ('00' + date.getMinutes().toString()).substr(-2); var second = ('00' + date.getSeconds().toString()).substr(-2); rt = rt.replace('yyyy', fullYear); rt = rt.replace('yy', year); rt = rt.replace('MM', month); rt = rt.replace('dd', day); rt = rt.replace('HH', hour); rt = rt.replace('mm', minute); rt = rt.replace('ss', second); return rt; }; TCM.Framework.ToDateString = function (date) { return TCM.Framework.FormatDateTime(date, TCM.Globalization.DateTimeFormat.ShortDatePattern); }; TCM.Framework.ToTimeString = function (date) { return TCM.Framework.FormatDateTime(date, TCM.Globalization.DateTimeFormat.ShortTimePattern); }; TCM.Framework.IsCreditCard = function (value) { var digits = (value || '').removeLetters().removeSymbols().reverse(); if (!digits) return false; var sum = 0; for (var i = 0; i < digits.length; i++) { var n = parseInt(digits.substr(i, 1)); if (i % 2 === 0) sum += n; else { var aux = n * 2; if (aux > 9) aux -= 9; sum += aux; } } return sum % 10 === 0; }; // ================================================================================ // TCM.UI // ================================================================================ TCM.UI = {}; // ================================================================================ // TCM.UI.Loading // ================================================================================ TCM.UI.Loading = {}; TCM.UI.Loading._Count = 0; TCM.UI.Loading.Start = function () { if (TCM.UI.Loading._Count === 0) { var div1 = $('').addClass('tcm-api-loading'); var div2 = $('').addClass('tcm-api-loading-inner').appendTo(div1); if ($('body').is('.tcm-core-css-v2')) { $('').addClass('fas fa-circle-notch fa-spin').appendTo(div2); } div1.appendTo('body'); } TCM.UI.Loading._Count++; }; TCM.UI.Loading.Stop = function () { TCM.UI.Loading._Count--; if (TCM.UI.Loading._Count <= 0) { TCM.UI.Loading._Count = 0; $('.tcm-api-loading').remove(); } }; TCM.UI.Loading.StartBox = function (box, theme) { var fn = function (color) { var r, g, b, hsp; if (color.match(/^rgb/)) { color = color.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+(?:\.\d+)?))?\)$/); r = color[1]; g = color[2]; b = color[3]; } else { color = +("0x" + color.slice(1).replace( color.length < 5 & /./g, '$&$&')); r = color >> 16; g = color >> 8 & 255; b = color & 255; } hsp = Math.sqrt( 0.299 * (r * r) + 0.587 * (g * g) + 0.114 * (b * b) ); if (hsp > 127.5) return 'light'; else return 'dark'; }; $(box).each(function () { var $this = $(this); if ($this.hasClass('.tcm-api-loading-box')) return; var _theme = theme; if (_theme !== 'light' & _theme !== 'dark') _theme = fn($this.css("background-color")); $this.addClass('tcm-api-loading-box').addClass('tcm-api-loading-box-' + _theme); $('') .addClass('tcm-api-loading-box-curtain') .append($('').addClass('fas fa-spinner fa-pulse')) .appendTo($this); }); }; TCM.UI.Loading.StopBox = function (box) { $(box).find('.tcm-api-loading-box-curtain').remove(); $(box) .removeClass('tcm-api-loading-box-light') .removeClass('tcm-api-loading-box-dark') .removeClass('tcm-api-loading-box'); }; // ================================================================================ // TCM.UI.MessageBox // ================================================================================ TCM.UI.MessageBox = {}; TCM.UI.MessageBox.Buttons = {}; TCM.UI.MessageBox.Buttons.OK = { Text: TCM.Globalization.Translates.OK, CssClass: '' }; TCM.UI.MessageBox.Buttons.Yes = { Text: TCM.Globalization.Translates.Yes, CssClass: '' }; TCM.UI.MessageBox.Buttons.No = { Text: TCM.Globalization.Translates.No, CssClass: '' }; TCM.UI.MessageBox.Alert = function () { var params = { Message: '', IsHtml: false, Title: '', Callback: null, ButtonText: '', ButtonCssClass: '', CssClass: '', Version: $('body').is('.tcm-core-css-v2') ? 'v2' : 'v1', Small: false }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.Message = arguments[0]; if (typeof (params.Message) === 'string') { params.IsHtml = params.Message.substr(0, 1) === '<' & params.Message.substr(-1, 1) === '>'; } params.Title = arguments[1]; params.Callback = arguments[2]; } } var div1 = $('').addClass('tcm-api-messagebox').attr('data-tcm-api-messagebox-version', params.Version); if (params.CssClass) div1.addClass(params.CssClass); var fnClose = function () { div1.remove(); if (params.Callback & jQuery.isFunction(params.Callback)) params.Callback(); }; var div2 = $('').addClass('tcm-api-messagebox-alert').appendTo(div1); if (params.Small) div2.addClass('tcm-api-messagebox-small'); var closeButton = $('').attr('type', 'button').addClass('tcm-api-messagebox-close-button').click(function () { fnClose(); }).appendTo(div2); if (params.Version !== 'v1') { $('').addClass('fal fa-times').appendTo(closeButton); } if (params.Title) { $('').addClass('tcm-api-messagebox-title').text(params.Title).appendTo(div2); } var divBody = $('').addClass('tcm-api-messagebox-body').appendTo(div2); if (params.Message instanceof jQuery) { divBody.append(params.Message); } else { if (params.IsHtml) divBody.html(params.Message); else divBody.text(params.Message); } // buttons var divButtons = $('').addClass('tcm-api-messagebox-buttons').appendTo(div2); var btnOK = $('') .attr('type', 'button') .text(params.ButtonText || TCM.UI.MessageBox.Buttons.OK.Text) .addClass('tcm-api-messagebox-buttons-ok') .click(function () { fnClose(); }) .appendTo(divButtons); if (TCM.UI.MessageBox.Buttons.OK.CssClass) btnOK.addClass(TCM.UI.MessageBox.Buttons.OK.CssClass); if (params.ButtonCssClass) btnOK.addClass(params.ButtonCssClass); // Classe Padrão de botão if (params.Version !== 'v1') { divButtons.find('button').addClass('btn btn-primary'); } div1.appendTo('body'); }; TCM.UI.MessageBox.Confirm = function () { var params = { Message: '', IsHtml: false, Title: '', YesCallback: null, NoCallback: null, ButtonYesText: '', ButtonYesCssClass: '', ButtonNoText: '', ButtonNoCssClass: '', CssClass: '', Version: $('body').is('.tcm-core-css-v2') ? 'v2' : 'v1', Small: false }; if (arguments.length) { if ($.isPlainObject(arguments[0])) $.extend(params, arguments[0]); else { params.Message = arguments[0]; if (typeof (params.Message) === 'string') { params.IsHtml = params.Message.substr(0, 1) === '<' & params.Message.substr(-1, 1) === '>'; } params.Title = arguments[1]; params.YesCallback = arguments[2]; params.NoCallback = arguments[3]; } } var div1 = $('').addClass('tcm-api-messagebox').attr('data-tcm-api-messagebox-version', params.Version); if (params.CssClass) div1.addClass(params.CssClass); var fn = function (rt) { div1.remove(); if (rt) { if (params.YesCallback & jQuery.isFunction(params.YesCallback)) params.YesCallback(rt); } else { if (params.NoCallback & jQuery.isFunction(params.NoCallback)) params.NoCallback(rt); } }; var div2 = $('').addClass('tcm-api-messagebox-confirm').appendTo(div1); if (params.Small) div2.addClass('tcm-api-messagebox-small'); var closeButton = $('').attr('type', 'button').addClass('tcm-api-messagebox-close-button').click(function () { fn(false); }).appendTo(div2); if (params.Version !== 'v1') { $('').addClass('fal fa-times').appendTo(closeButton); } if (params.Title) { $('').addClass('tcm-api-messagebox-title').text(params.Title).appendTo(div2); } var divBody = $('').addClass('tcm-api-messagebox-body').appendTo(div2); if (params.Message instanceof jQuery) { divBody.append(params.Message); } else { if (params.IsHtml) divBody.html(params.Message); else divBody.text(params.Message); } var divButtons = $('').addClass('tcm-api-messagebox-buttons').appendTo(div2); // btn yes var btnYes = $('') .attr('type', 'button') .text(params.ButtonYesText || TCM.UI.MessageBox.Buttons.Yes.Text) .addClass('tcm-api-messagebox-buttons-yes') .click(function () { fn(true); }) .appendTo(divButtons); if (TCM.UI.MessageBox.Buttons.Yes.CssClass) btnYes.addClass(TCM.UI.MessageBox.Buttons.Yes.CssClass); if (params.ButtonYesCssClass) btnYes.addClass(params.ButtonYesCssClass); // btn no var btnNo = $('') .attr('type', 'button') .text(params.ButtonNoText || TCM.UI.MessageBox.Buttons.No.Text) .addClass('tcm-api-messagebox-buttons-no') .click(function () { fn(false); }) .appendTo(divButtons); if (TCM.UI.MessageBox.Buttons.No.CssClass) btnNo.addClass(TCM.UI.MessageBox.Buttons.No.CssClass); if (params.ButtonNoCssClass) btnNo.addClass(params.ButtonNoCssClass); // Classe Padrão de botão if (params.Version !== 'v1') { divButtons.find('button').addClass('btn btn-primary'); } div1.appendTo('body'); }; TCM.UI.MessageBox.ValidationSummary = function () { var params = { AlertParams: {}, Container: window.document, HeaderText: '', FooterText: '' }; if (arguments.length) $.extend(params, arguments[0]); var errors = $('.field-validation-error span', params.Container); if (errors.length <= 0) return; var div = $('').addClass('tcm-api-messagebox-validation-summary'); if (params.HeaderText) $('').addClass('tcm-api-messagebox-validation-summary-header-text').text(params.HeaderText).appendTo(div); var ul = $('').addClass('tcm-api-messagebox-validation-summary-list').appendTo(div); if (errors.length <= 1) ul.addClass('list-unstyled'); errors.each(function () { $('').addClass('tcm-api-messagebox-validation-summary-list-item').text($(this).text()).appendTo(ul); }); if (params.FooterText) $('').addClass('tcm-api-messagebox-validation-summary-footer-text').text(params.FooterText).appendTo(div); params.AlertParams.Message = div; TCM.UI.MessageBox.Alert(params.AlertParams); }; TCM.UI.MessageBox.Init = function (container) { var fn = function (form) { $(form).submit(function () { if (!$(this).valid()) { var params = { AlertParams: { Title: $(this).attr('data-tcm-validation-summary-title'), CssClass: $(this).attr('data-tcm-validation-summary-css-class') }, Container: this, HeaderText: $(this).attr('data-tcm-validation-summary-header-text'), FooterText: $(this).attr('data-tcm-validation-summary-footer-text') }; TCM.UI.MessageBox.ValidationSummary(params); return false; } }); }; var _container = $(container || window.document); if (_container.is('form')) { fn(_container); } else { $('form[data-tcm-validation-summary=true]', _container).each(function () { fn(this); }); } }; $(document).ready(function () { TCM.UI.MessageBox.Init(); }); // ================================================================================ // TCM.UI.Gmaps // ================================================================================ TCM.UI.Gmaps = {}; TCM.UI.Gmaps._Loaded = false; TCM.UI.Gmaps._Callbacks = []; TCM.UI.Gmaps.Add = function (callback) { if (TCM.UI.Gmaps._Loaded) callback(); else TCM.UI.Gmaps._Callbacks.push(callback); }; // ================================================================================ // Share // ================================================================================ TCM.UI.SocialSharePopup = {}; TCM.UI.SocialSharePopup.Init = function (container) { $('[data-toggle=tcmsocialshare],[data-toggle=tcm-social-share]', container || window.document).on('click', function (event) { event.preventDefault(); var url = $(this).attr('data-target') || this.href; var w = 626; var h = 436; var l = Math.floor((screen.width - w) / 2); var t = Math.floor((screen.height - h) / 2); window.open(this.href, 'tcmsharer', 'toolbar=0,status=0,width=' + w.toString() + ',height=' + h.toString() + ',top=' + t.toString() + ',left=' + l.toString()); }); }; $(document).ready(function () { TCM.UI.SocialSharePopup.Init(); }); // ================================================================================ // TCM.UI.ImageUtility // ================================================================================ TCM.UI.ImageUtility = {}; TCM.UI.ImageUtility.LoadAsync = function (options) { var _options = { Items: [], ItemCallback: undefined, Callback: undefined }; $.extend(_options, options); var _items = _options.Items.reverse(); var fn = function () { var current = _items.pop(); if (current === undefined) { if (_options.Callback & typeof (_options.Callback) === 'function') cont = _options.Callback(); return; } var setItem = function (item, status) { var cont = true; if (_options.ItemCallback & typeof (_options.ItemCallback) === 'function') cont = _options.ItemCallback(item, status); if (cont !== false) fn(); }; var img = new Image(); img.onload = function () { setItem(current, true); }; img.onerror = function () { setItem(current, false); }; img.src = current; }; fn(); }; // ================================================================================ // $.fn.tcmcarousel // ================================================================================ (function ($) { var methods = { init: function (options) { //var settings = $.extend({ // color: "#556b2f", // backgroundColor: "white" //}, options); this.each(function () { var $this = $(this); var data = $this.data('tcmcarousel'); if (!data) { $this.data('tcmcarousel', { obj: new _tcmcarousel(this) }); data = $this.data('tcmcarousel'); } }); return this; }, refresh: function () { this.each(function () { var $this = $(this); var data = $this.data('tcmcarousel'); data.obj.Refresh(); }); return this; }, next: function () { this.each(function () { var $this = $(this); var data = $this.data('tcmcarousel'); data.obj.Next(); }); return this; }, prev: function () { this.each(function () { var $this = $(this); var data = $this.data('tcmcarousel'); data.obj.Prev(); }); return this; }, moveto: function (index) { this.each(function () { var $this = $(this); var data = $this.data('tcmcarousel'); data.obj.MoveTo(index); }); return this; } }; $.fn.tcmcarousel = function (options) { if (methods[options]) { return methods[options].apply(this, Array.prototype.slice.call(arguments, 1)); } else if (typeof options === 'object' || !options) { return methods.init.apply(this, arguments); } else { $.error('Method ' + options + ' does not exist on jQuery.tcmcarousel'); } }; function _tcmcarousel(elm) { var _self = this; var $elm = $(elm); var _inner = $('.tcm-api-carousel-inner', elm); var _prevButton = $('.tcm-api-carousel-prev-button', elm); var _nextButton = $('.tcm-api-carousel-next-button', elm); var _items = $('.tcm-api-carousel-item', _inner); var _moving = false; function _Init() { _CalculateColumns(); _CalculateInnerWidth(); _items.eq(0).addClass('anchor'); _UpdateNavigateStatus(); _nextButton.on('click', function (event) { event.preventDefault(); if (_moving) return; var aux = parseInt($('.tcm-api-carousel-item.anchor', _inner).next('.tcm-api-carousel-item').attr('data-tcm-carousel-index')); _Move(aux); }); _prevButton.on('click', function (event) { event.preventDefault(); if (_moving) return; var aux = parseInt($('.tcm-api-carousel-item.anchor', _inner).prev('.tcm-api-carousel-item').attr('data-tcm-carousel-index')); _Move(aux); }); if ($.fn.swipe) { $elm.swipe({ swipeLeft: function () { _MoveNext(); }, swipeRight: function () { _MovePrev(); } }); } } function _CalculateColumns() { var columns = $elm.attr('data-tcm-carousel-columns'); if (columns) { columns = parseInt(columns); var sizes = ['xl', 'lg', 'md', 'sm', 'xs']; for (var i = 0; i < sizes.length; i++) { if ($elm.attr('data-tcm-carousel-' + sizes[i] + '-columns') & $elm.attr('data-tcm-carousel-' + sizes[i] + '-columns-width') && $(window).width() >= parseInt($elm.attr('data-tcm-carousel-' + sizes[i] + '-columns-width'))) { columns = parseInt($elm.attr('data-tcm-carousel-' + sizes[i] + '-columns')); break; } } var _w = $elm.width() - _inner.find('.tcm-api-carousel-before-item').width() - _inner.find('.tcm-api-carousel-after-item').width(); _items.width(TCM.Framework.Truncate(_w / columns)); return true; } else return false; } function _CalculateInnerWidth() { var width = 0; _items.each(function (iitem, item) { $(item).attr('data-tcm-carousel-index', iitem); var _left = width; $(item).attr('data-tcm-carousel-left', _left); width += $(item).width(); }); _inner.width(width + _inner.find('.tcm-api-carousel-before-item').width() + _inner.find('.tcm-api-carousel-after-item').width()); } function _UpdateNavigateStatus(_newLeft, _newIndex) { if ($elm.attr('data-tcm-carousel-select-all-items') === 'true') { var index = _newIndex; if (index === undefined) index = parseInt($('.tcm-api-carousel-item.anchor', _inner).attr('data-tcm-carousel-index')); if (index <= 0) _prevButton.hide(); else _prevButton.show(); if (index >= _items.length - 1) _nextButton.hide(); else _nextButton.show(); } else { var left = _newLeft; if (left === undefined) left = _inner.position().left; if (left >= 0) _prevButton.hide(); else _prevButton.show(); if (_inner.width() + left <= $(elm).width()) _nextButton.hide(); else _nextButton.show(); } } function _UpdateAnchor(_newIndex) { if ($elm.attr('data-tcm-carousel-select-all-items') === 'true') { var index = _newIndex; if (index === undefined) index = parseInt($('.tcm-api-carousel-item.anchor', _inner).attr('data-tcm-carousel-index')); $('.tcm-api-carousel-item.anchor', _inner).removeClass('anchor'); _items.eq(index).addClass('anchor'); } else { $('.tcm-api-carousel-item.anchor', _inner).removeClass('anchor'); for (i = 0; i < _items.length; i++) { if (parseFloat(_items.eq(i).attr('data-tcm-carousel-left')) >= Math.abs(_inner.position().left)) { _items.eq(i).addClass('anchor'); return true; } } } return false; } function _Move(index) { if (_moving) return; var duration = parseInt($elm.attr('data-tcm-carousel-animate-duration') || 500); var left = parseFloat(_items.eq(index).attr('data-tcm-carousel-left')); if (left <= 0) left = 0; if (left >= _inner.width() - $elm.width()) { if (_inner.width() - $elm.width() > 0) left = _inner.width() - $elm.width(); else left = 0; } _UpdateNavigateStatus(-left, index); if (_inner.position().left === -left) { _UpdateAnchor(index); $elm.triggerHandler('tcmcarousel:moved', [{ newIndex: index }]); } else { _moving = true; _inner.animate({ left: -left }, duration, function () { _UpdateAnchor(index); _moving = false; $elm.triggerHandler('tcmcarousel:moved', [{ newIndex: index }]); }); } } function _CanMovePrev() { if (_moving) return false; var idx = parseInt($('.tcm-api-carousel-item.anchor', _inner).attr('data-tcm-carousel-index')); if (idx <= 0) return false; return true; } function _CanMoveNext() { if (_moving) return false; var idx = parseInt($('.tcm-api-carousel-item.anchor', _inner).attr('data-tcm-carousel-index')); if ($elm.attr('data-tcm-carousel-select-all-items') === 'true') { if (idx >= $('.tcm-api-carousel-item', _inner).length - 1) return false; } else { // TODO: completar regra if (idx >= $('.tcm-api-carousel-item', _inner).length - 1) return false; } return true; } function _MovePrev() { if (!_CanMovePrev()) return false; var idx = parseInt($('.tcm-api-carousel-item.anchor', _inner).attr('data-tcm-carousel-index')); _Move(idx - 1); return true; } function _MoveNext() { if (!_CanMoveNext()) return false; var idx = parseInt($('.tcm-api-carousel-item.anchor', _inner).attr('data-tcm-carousel-index')); _Move(idx + 1); return true; } this.MoveTo = function (index) { _Move(index); }; this.Prev = function () { _MovePrev(); }; this.Next = function () { _MoveNext(); }; this.ResetPosition = function () { _inner.css('left', 0); $('.tcm-api-carousel-item.anchor', _inner).removeClass('anchor'); _items.eq(0).addClass('anchor'); _UpdateNavigateStatus(); }; this.Refresh = function () { var _cc = _CalculateColumns(); if (_cc) _CalculateInnerWidth(); var left = 0; if (_cc) { left = parseFloat($('.tcm-api-carousel-item.anchor', _inner).attr('data-tcm-carousel-left')); } else { left = Math.abs(_inner.position().left); } if (left <= 0) left = 0; if (left >= _inner.width() - $elm.width()) { if (_inner.width() - $elm.width() > 0) left = _inner.width() - $elm.width(); else left = 0; } _UpdateNavigateStatus(-left); _inner.css('left', -left); _UpdateAnchor(); }; _Init(); } }(jQuery)); $(document).ready(function () { $('.tcm-api-carousel').tcmcarousel(); var _resize = 0; $(window).resize(function () { if (_resize) clearTimeout(_resize); _resize = setTimeout(function () { $('.tcm-api-carousel').tcmcarousel('refresh'); }, 200); }); }); // ================================================================================ // TCM Same Height // ================================================================================ $(document).ready(function () { var fn = function () { $('[data-tcm-same-height]').each(function (icontainer, container) { if (!$(container).data('tcm-same-height')) return; var array = $(container).data('tcm-same-height').split(','); for (var i = 0; i < array.length; i++) { var h = 0; $('[data-tcm-same-height-item=' + array[i] + ']', container).css('height', 'auto'); $('[data-tcm-same-height-item=' + array[i] + ']', container).each(function (ielm, elm) { if ($(elm).height() > h) h = $(elm).height(); }); $('[data-tcm-same-height-item=' + array[i] + ']', container).height(h); } }); }; fn(); var imgCount = $('img[src]', '[data-tcm-same-height-item]').length; $('img[src]', '[data-tcm-same-height-item]').each(function () { var img = new Image(); img.onload = function () { imgCount = imgCount - 1; if (imgCount <= 0) { fn(); } }; img.src = this.src; }); var _resize = 0; $(window).resize(function () { if (_resize) clearTimeout(_resize); _resize = setTimeout(function () { fn(); }, 200); }); }); function tcmUIGmapsInitCallback() { var callback = TCM.UI.Gmaps._Callbacks.shift(); while (callback) { try { callback(); } catch (err) { //document.getElementById("demo").innerHTML = err.message; } callback = TCM.UI.Gmaps._Callbacks.shift(); } TCM.UI.Gmaps._Loaded = true; } // ==================================================================================================== // jQuery // ==================================================================================================== if (window['jQuery']) { $.ajaxSetup({ cache: false }); }; 5l5b2k