var CONST = { DIALOG_TIMEOUT: 2000 }; (function () { var method; var noopFun = function () { }; var methods = [ 'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error', 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', 'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd', 'timeStamp', 'trace', 'warn' ]; var methodLength = methods.length; /*判断console方法是否支持,不支持执行空 */ var console = (window.console = window.console || {}); while (methodLength--) { method = methods[methodLength]; if (!console[method]) { console[method] = noopFun; } } /*forEach function support */ if (!Array.prototype.forEach) { Array.prototype.forEach = function (fun) { var len = this.length; if (typeof fun !== 'function') { throw new TypeError(); } var thisp = arguments[1]; for (var i = 0; i < len; i++) { if (i in this) { fun.call(thisp, this[i], i, this); } } }; } /*every function support */ if (!Array.prototype.every) { Array.prototype.every = function (callback) { var len = this.length; if (typeof callback != "function") { throw new TypeError(); } var thisArg = arguments[1]; for (var i = 0; i < len; i++) { if (i in this && !callback.call(thisArg, this[i], i, this)) { return false; } } return true; } } }()); function utilGetRequest() { var url = location.search; var obj = new Object(); if (url.indexOf("?") != -1) { var str = url.substr(1); var strs = str.split("&"); for (var i = 0; i < strs.length; i++) { obj[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]); } } return obj; } $.fn.secureAppend = function (template, data) { this.append(handleTemplate(template, data)); }; $.fn.securePrepend = function (template, data) { this.prepend(handleTemplate(template, data)); }; $.fn.secureBefore = function (template, data) { this.before(handleTemplate(template, data)); }; $.fn.secureAfter = function (template, data) { this.after(handleTemplate(template, data)); }; $.fn.secureHtml = function (template, data) { this.html(handleTemplate(template, data)); }; $.fn.val = function (data) { if (data || data === '') { var objArr = $.makeArray(this); if (objArr) { $.each(objArr, function (i) { if (objArr[i]) { objArr[i].value = data; } }); } return this; } else { if (this.hasClass('select_on_normal') || this.hasClass('select_on_spanner') || this.hasClass('statistic_select_statistics')) { if (this.attr('type') === 'text' && this.get(0)) { return this.get(0).value; } return this.attr('value'); } else { if (this.get(0)) { if (typeof this.get(0).value === 'undefined') { return this.attr('value'); } return this.get(0).value; } if (this.attr('value')) { return this.attr('value'); } } } }; $.fn.size = function (data) { return this.length; }; $.fn.ajaxSubmit = function (option) { var options = $.extend(true, { url: this.attr('action'), success: $.ajaxSettings.success, type: 'post', iframeSrc: 'about:blank' }, option); var data = []; $.each(this.find('[name]'), function (i, el) { if (el.files && el.type === 'file') { var files = el.files; if (files.length) { for (var j = 0; j < files.length; j++) { data.push({ name: el.name, value: files[j], type: el.type }); } } else { data.push({ name: el.name, value: '', type: el.type }); } } else { data.push({ name: el.name, value: $(el).val(), type: el.type }); } }) var formdata = new FormData(); for (var i = 0; i < data.length; i++) { formdata.append(data[i].name, data[i].value); } var s = $.extend(true, {}, $.ajaxSettings, options, { contentType: false, processData: false, cache: false, type: 'post' }); s.data = null; s.beforeSend = function (xhr, o) { if (options.formData) { o.data = options.formData; } else { o.data = formdata; } }; $.ajax(s); }; var alertinterval = 0; function utilStartAlertDialog(notice, confirmcallback, confirmstr) { $('#confirm_light').empty(); var confirmsting = (typeof confirmstr === 'undefined') ? '确认' : confirmstr; var confirmhtml = '
' + '
' + '
' + '
' + '
' + '
' + ' ' + '
' + '
' + '
'; $('#confirm_light').secureHtml(confirmhtml); $('#confirm_notice').text(notice); $('#confirm_sure').text(confirmsting); $(document).on('click', '#confirm_sure', function () { utilStopAlertDialog(); if (confirmcallback) { confirmcallback(); } }); $('#confirm_light').show(); $('#submit_fade').show(); var heightest = $(document).height(); alertinterval = setTimeout(function () { $('#submit_fade').css('height', heightest + 'px'); }, 50); } function utilStopAlertDialog() { clearTimeout(alertinterval); $('#confirm_light').hide(); $('#submit_fade').hide(); } var submitinterval = 0; function utilStartConfirmDialog(notice, confirmcallback, canclecallback, confirmstr, canclestr) { $('#confirm_light').empty(); var canclestring = (typeof canclestr === 'undefined') ? '取消' : canclestr; var confirmsting = (typeof confirmstr === 'undefined') ? '确认' : confirmstr; var confirmhtml = '
' + '
' + '
' + '
' + '
' + '
' + ' ' + ' ' + '
' + '
' + '
'; $('#confirm_light').secureHtml(confirmhtml); $('#confirm_notice').text(notice); $('#confirm_cancel').text(canclestring); $('#confirm_confirm').text(confirmsting); $(document).off('click', '#confirm_cancel'); $(document).on('click', '#confirm_cancel', function () { utilStopConfirmDialog(); if (canclecallback) { canclecallback(); } }); $(document).off('click', '#confirm_confirm'); $(document).on('click', '#confirm_confirm', function () { utilStopConfirmDialog(); if (confirmcallback) { confirmcallback(); } }); $('#confirm_light').show(); $('#submit_fade').show(); var heightest = $(document).height(); submitinterval = setTimeout(function () { $('#submit_fade').css('height', heightest + 'px'); }, 50); } function utilStopConfirmDialog() { clearTimeout(submitinterval); $('#confirm_light').hide(); $('#submit_fade').hide(); } function utilStartSubmitDialog(noticeEX, btnId) { var notice = '正在请求中...'; if (typeof noticeEX !== 'undefined') { notice = noticeEX; } var templateData = { notice: notice, btnId: btnId }; $('#submit_light').empty(); var submithtml; submithtml = '
' + '
' + '
{{notice}}
'; if (btnId) { submithtml += ''; } submithtml += '
'; $('#submit_light').secureHtml(submithtml, templateData); $('#submit_light').show(); $('#submit_fade').show(); var heightest = $(document).height(); submitinterval = setTimeout(function () { $('#submit_fade').css('height', heightest + 'px'); }, 50); } function utilStopSubmitDialog() { clearTimeout(submitinterval); $('#submit_light').hide(); $('#submit_fade').hide(); } function utilStartCommonDialog(noticeEX) { $('#submit_light').empty(); var templateData = { noticeEX: noticeEX }; var submithtml = '
' + '
{{noticeEX}}
' + '
'; $('#submit_light').secureHtml(submithtml, templateData); $('#submit_light').show(); $('#submit_fade').show(); var heightest = $(document).height(); submitinterval = setTimeout(function () { $('#submit_fade').css('height', heightest + 'px'); }, 50); } function utilStopCommonDialog() { utilStopSubmitDialog(); } function utilShowToast(info, showTime) { if (typeof info === 'undefined' || info === '') { return; } if (typeof showTime === 'undefined' || showTime === '') { var showTimes = 1000; } else { var showTimes = showTime; } $('#toast_info').text(info); $('#toast_location').show(); setTimeout(function () { var toastwidth = $('#toast_location').width(); $('#toast_location').css('margin-left', '-' + (toastwidth / 2) + 'px'); }, 10); setTimeout(function () { $('#toast_location').hide(); }, showTimes); } var GLOBAL = { HOME_PAGE_URL: 'page.html#home' }; function gotoPageWithoutHistory(url) { var curHref = window.location.href; var curSearch = window.location.search; window.location.replace(url); } function _recursiveXml2Object($xml) { if ($xml.children().size() > 0) { var _obj = {}; $xml.children().each(function () { var _childObj = ($(this).children().size() > 0) ? _recursiveXml2Object($(this)) : $(this).text(); if ($(this).siblings().size() > 0 && $(this).siblings().get(0).tagName === this.tagName) { if (!_obj[this.tagName]) { _obj[this.tagName] = []; } _obj[this.tagName].push(_childObj); } else { _obj[this.tagName] = _childObj; } }); return _obj; } return $xml.text(); } var beforeselectid = ''; function SelectItem(obj) { var normalselect = { select_top: 'select_top', select_medium: 'select_medium', select_bottom: 'select_bottom', select_medium_selected: 'select_medium_selected', height: 40, width: 328 }; var shortselect = { select_top: 'spanner_top', select_medium: 'spanner_medium', select_bottom: 'spanner_bottom', select_medium_selected: 'spanner_medium_selected', height: 32, width: 90 }; var SHOW_MAX_ITEM_COUNT = 5; var selectid = $(obj).attr('id'); if ($('#' + selectid).hasClass('disabled')) { return; } var selectitemsid = selectid + '_list'; if (beforeselectid !== selectitemsid) { if (beforeselectid && beforeselectid !== '') { $('#' + beforeselectid).hide(); } beforeselectid = selectitemsid; } var classes = normalselect; if ($('#' + selectitemsid + ' .' + shortselect.select_medium).length !== 0) { classes = shortselect; } $('#' + selectitemsid + ' .' + classes.select_medium).removeClass(classes.select_medium_selected); var selectitemsLength = $('#' + selectitemsid + ' .' + classes.select_medium).length; if ($('#' + selectitemsid + ' .' + classes.select_top).length === 0) { var showitemcount = selectitemsLength < SHOW_MAX_ITEM_COUNT ? selectitemsLength : SHOW_MAX_ITEM_COUNT; var height = showitemcount * classes.height - 1; var tophtml = '
'; var bottomhtml = '
'; var items = $('#' + selectitemsid).html(); items = '
' + items + '
'; $('#' + selectitemsid).secureHtml(tophtml + items + bottomhtml); $('#' + selectitemsid + '_items :last-child').css('height', classes.height - 1 + 'px'); } $('#' + selectitemsid).toggle(); if (selectitemsLength > SHOW_MAX_ITEM_COUNT) { RVC.Scroll.initScroll('#' + selectitemsid + '_items'); } var container; var content; var contentHeight; if (classes = normalselect) { for (var i = 0; i < selectitemsLength; i++) { container = $($('#' + selectitemsid + ' .' + classes.select_medium)[i]).find("div"); content = $($('#' + selectitemsid + ' .' + classes.select_medium)[i]).find("span"); if (content.length === 1) { container = container[0]; content = content[0]; $(container).css('width', '285px'); $(content).css('font-size', '14px'); $($('#' + selectitemsid + ' .' + classes.select_medium)[i]).css('line-height', '40px'); contentHeight = $(content).innerHeight(); if (contentHeight > 39) { $(content).css('font-size', '13px'); contentHeight = $(content).innerHeight(); } if (contentHeight > 39) { $(content).css('font-size', '12px'); contentHeight = $(content).innerHeight(); } if (contentHeight > 39) { $($('#' + selectitemsid + ' .' + classes.select_medium)[i]).css('line-height', '20px') } } } } } function xml2object($xml) { var obj = {}; if ($xml.find('response').size() > 0) { var _response = _recursiveXml2Object($xml.find('response')); obj.type = 'response'; obj.response = _response; } else if ($xml.find('error').size() > 0) { var _code = $xml.find('code').text(); var _message = $xml.find('message').text(); obj.type = 'error'; obj.error = { code: _code, message: _message }; } else if ($xml.find('config').size() > 0) { var _config = _recursiveXml2Object($xml.find('config')); obj.type = 'config'; obj.config = _config; } else { obj.type = 'unknown'; } return obj; } function Switch(obj, callback) { var classlist = $(obj).attr('class'); if (classlist.indexOf('switch_on') >= 0) { $(obj).addClass('switch_off').removeClass('switch_on'); } else { $(obj).addClass('switch_on').removeClass('switch_off'); } if (callback) { callback(); } } function checkbox(obj, callback) { var classlist = $(obj).attr('class'); if (classlist.indexOf('check_on') >= 0) { $(obj).addClass('check_off').removeClass('check_on'); } else { $(obj).addClass('check_on').removeClass('check_off'); } if (callback) { callback(); } } function radio(obj, callback) { if ($(obj).hasClass('radio_btn_on') || $(obj).hasClass('radio_btn_on_disabled') || $(obj).hasClass('radio_btn_off_disabled')) { return; } var namevalue = $(obj).attr('name'); $('div[name=' + namevalue + ']').addClass('radio_btn_off'); $('div[name=' + namevalue + ']').removeClass('radio_btn_on'); $(obj).removeClass('radio_btn_off'); $(obj).addClass('radio_btn_on'); if (callback) { callback(); } } function getPassword(id) { if (!$('#' + id + '_close').is(':visible')) { return $('#' + id + '_text').val(); } return $('#' + id).val(); } function ShowPassword(obj) { var classlist = $(obj).attr('class'); var forAttr = $(obj).attr('forpass'); var open_id = '#' + forAttr + '_open'; var close_id = '#' + forAttr + '_close'; if (classlist.indexOf('ic_eye_open') >= 0) { $('#' + forAttr + '_open').hide(); $('#' + forAttr + '_close').show(); $('#' + forAttr).val($('#' + forAttr + '_text').val()); if (!isSupportPlaceholder() && (typeof ($(open_id + ' ' + 'input').attr('placeholder')) !== 'undefined')) { var input_open_id = $(open_id + ' ' + 'input').attr('id'); var input_close_id = $(close_id + ' ' + 'input').attr('id'); if ($('#' + input_open_id).val() == '') { $('#' + input_close_id).hide(); $('#' + input_close_id + '1').show(); } else { $('#' + input_close_id + '1').hide(); $('#' + input_close_id).show(); } } } else { $('#' + forAttr + '_open').show(); $('#' + forAttr + '_close').hide(); $('#' + forAttr + '_text').val($('#' + forAttr).val()); if (!isSupportPlaceholder() && (typeof ($(close_id + ' ' + 'input').attr('placeholder')) !== 'undefined')) { var input_open_id = $(open_id + ' ' + 'input').attr('id'); var input_close_id = $(close_id + ' ' + 'input').attr('id'); if ($('#' + input_close_id).val() == '') { $('#' + input_open_id).hide(); $('#' + input_open_id + '1').show(); } else { $('#' + input_open_id + '1').hide(); $('#' + input_open_id).show(); } } $('#preLoadEyeImg').remove(); } } function unbindEyeEvent(selestor) { if (!selestor) { return; } var selClose = '#' + selestor + ' .ic_eye_close'; var selOpen = '#' + selestor + ' .ic_eye_open'; var selAll = selClose + ',' + selOpen; $(selAll).removeAttr('onclick'); $(selAll).off(); } function preLoadEyeImg() { var eyeImg = '
\
\
'; $('body').prepend(eyeImg); } function bindEyeEvent(selestor, callbackFun) { var selAll = '.ic_eye_close,.ic_eye_open'; var selClose = '.ic_eye_close'; var selOpen = '.ic_eye_open'; if (selestor) { selClose = '#' + selestor + ' .ic_eye_close'; selOpen = '#' + selestor + ' .ic_eye_open'; selAll = selClose + ',' + selOpen; } $(selAll).off(); $(selAll).removeAttr('onclick'); $(selClose).off('mousedown touchstart'); $(selClose).on('mousedown touchstart', function () { ShowPassword(this); if (selestor && callbackFun) { callbackFun(this); } }); $(selClose).off('touchend touchcancel touchmove'); $(selClose).on('touchend touchcancel touchmove', function () { var obj = this; var classlist = $(obj).attr('class'); var forAttr = $(obj).attr('forpass'); $('#' + forAttr + '_open').hide(); $('#' + forAttr + '_close').show(); $('#' + forAttr).val($('#' + forAttr + '_text').val()); if (selestor && callbackFun) { callbackFun(this); } }); $(selOpen).off('mouseup mouseleave'); $(selOpen).on('mouseup mouseleave', function () { ShowPassword(this); if (selestor && callbackFun) { callbackFun(this); } }); } function initSelectWidth(id) { $('#' + id).css('width', '300px'); $('#' + id).addClass('padding_right_42'); $("div[id^='" + id + "_list_item_']").addClass('ussd_text_long'); $("div[id^='" + id + "_list_item_']").css('width', '286px'); $("div[id^='" + id + "_list_item_']").addClass('padding_right_42'); for (var i = 0; i < $("div[id^='" + id + "_list_item_']").length; i++) { $("div[id^='" + id + "_list_item_']").eq(i).attr('title', $("div[id^='" + id + "_list_item_']").eq(i).text()); } $(document).on('mouseover', '#' + id, function () { var selectText = $('#' + id).text(); $('#' + id).prop('title', selectText); }); } function resetTableHeight(itemClass, n) { var itemEle = $('.' + itemClass).eq(n).children(); var mostHeight = 40; for (var i = 0; i < itemEle.length; i++) { var itemHeight = itemEle.children().eq(i).height(); if (itemHeight > mostHeight) { mostHeight = itemHeight; } } for (var i = 0; i < itemEle.length; i++) { itemEle.children().eq(i).parent().height(mostHeight + 'px'); itemEle.children().eq(i).parent().addClass('table_content_line_item'); } $('.' + itemClass).eq(n).height((mostHeight + 10) + 'px'); $('.' + itemClass).eq(n).addClass('table_content_line'); } function clearAllErrorMsg() { $('.error_message').remove(); var classVal = ''; $(':text').each(function (index, element) { classVal = $(element).attr('class'); if (classVal && classVal.indexOf('input_error') >= 0) { $(element).addClass('input_normal').removeClass('input_error'); } if (classVal && classVal.indexOf('input_long_error') >= 0) { $(element).addClass('input_long').removeClass('input_long_error'); } }); $(':password').each(function (index, element) { classVal = $(element).attr('class'); if (classVal && classVal.indexOf('input_error') >= 0) { $(element).removeClass('input_error').addClass('input_normal'); } if (classVal && classVal.indexOf('input_long_error') >= 0) { $(element).removeClass('input_long_error').addClass('input_long'); } }); $('div').each(function (index, element) { classVal = $(element).attr('class'); if (classVal && classVal.indexOf('input_error') >= 0) { $(element).removeClass('input_error').addClass('input_normal'); } if (classVal && classVal.indexOf('input_long_error') >= 0) { $(element).removeClass('input_long_error').addClass('input_long'); } }); } function showInputBorder(obj) { var curElement = $(obj); if (curElement && curElement.parent()) { if (curElement.parent().hasClass('input_normal')) { curElement.parent().addClass('input_normal_selected').removeClass('input_normal'); } if (curElement.parent().hasClass('input_long')) { curElement.parent().addClass('input_long_selected').removeClass('input_long'); } } } function hideInputBorder(obj) { var curElement = $(obj); if (curElement && curElement.parent()) { if (curElement.parent().hasClass('input_normal_selected')) { curElement.parent().addClass('input_normal').removeClass('input_normal_selected'); } if (curElement.parent().hasClass('input_long_selected')) { curElement.parent().addClass('input_long').removeClass('input_long_selected'); } } } function showShortInputBorder(obj) { var curElement = $(obj); if (curElement && curElement.parent()) { curElement.parent().addClass('short_input_selected').removeClass('short_input'); } } function hideShortInputBorder(obj) { var curElement = $(obj); if (curElement && curElement.parent()) { curElement.parent().addClass('short_input').removeClass('short_input_selected'); } } function toggleHelpInfo(obj) { var curElement = $(obj); if (curElement && curElement.hasClass('page_help')) { curElement.next().toggle(); } } function showErrorMsg(divid, errormsgid, para) { var msgcontent = ''; var errorLabel = ''; var msgid = (divid + errormsgid).replace('.', ''); try { msgcontent = publicLang[errormsgid]; } catch (e) { return; } if (para) { msgcontent = msgcontent.replace('%d', para); msgcontent = msgcontent.replace('%s', para); } errorLabel += '
'; if ($('#' + divid).find('.control-label-win').length !== 0) { errorLabel += '
 
'; errorLabel += '
'; } else { errorLabel += '
 
'; errorLabel += '
'; } errorLabel += '
' + msgcontent + '
'; errorLabel += '
'; errorLabel += '
'; var classVal = ''; classVal = $('#' + divid).find('input').attr('class'); if (classVal && classVal.indexOf('input_normal') >= 0) { $('#' + divid).find('input').each(function (index, element) { classVal = $(element).attr('class'); if (classVal && classVal.indexOf('input_normal') >= 0) { $(element).addClass('input_error').removeClass('input_normal'); } if (classVal && classVal.indexOf('input_long') >= 0) { $(element).addClass('input_long_error').removeClass('input_long'); } }); } else { $('#' + divid).find('div').each(function (index, element) { classVal = $(element).attr('class'); if (classVal && classVal.indexOf('input_normal') >= 0) { $(element).addClass('input_error').removeClass('input_normal'); } if (classVal && classVal.indexOf('input_long') >= 0) { $(element).addClass('input_long_error').removeClass('input_long'); } if (classVal && classVal.indexOf('input_normal_selected') >= 0) { $(element).addClass('input_error').removeClass('input_normal_selected'); } if (classVal && classVal.indexOf('input_long_selected') >= 0) { $(element).addClass('input_long_error').removeClass('input_long_selected'); } }); } $('#' + divid).secureAppend(errorLabel); } function showRangeErrorMsg(divid, errormsgid, para1, para2) { var msgcontent = ''; var errorLabel = ''; var msgid = (divid + errormsgid).replace('.', ''); try { msgcontent = publicLang[errormsgid]; } catch (e) { return; } if (para1 && para2) { msgcontent = msgcontent.replace('%d1', para1); msgcontent = msgcontent.replace('%d2', para2); } errorLabel += '
'; if ($('#' + divid).find('.control-label-win').length !== 0) { errorLabel += '
 
'; errorLabel += '
'; } else { errorLabel += '
 
'; errorLabel += '
'; } errorLabel += '
' + msgcontent + '
'; errorLabel += '
'; errorLabel += '
'; var classVal = ''; classVal = $('#' + divid).find('input').attr('class'); if (classVal && classVal.indexOf('input_normal') >= 0) { $('#' + divid).find('input').each(function (index, element) { classVal = $(element).attr('class'); if (classVal && classVal.indexOf('input_normal') >= 0) { $(element).addClass('input_error').removeClass('input_normal'); } if (classVal && classVal.indexOf('input_long') >= 0) { $(element).addClass('input_long_error').removeClass('input_long'); } }); } else { $('#' + divid).find('div').each(function (index, element) { classVal = $(element).attr('class'); if (classVal && classVal.indexOf('input_normal') >= 0) { $(element).addClass('input_error').removeClass('input_normal'); } if (classVal && classVal.indexOf('input_long') >= 0) { $(element).addClass('input_long_error').removeClass('input_long'); } if (classVal && classVal.indexOf('input_normal_selected') >= 0) { $(element).addClass('input_error').removeClass('input_normal_selected'); } if (classVal && classVal.indexOf('input_long_selected') >= 0) { $(element).addClass('input_long_error').removeClass('input_long_selected'); } }); } $('#' + divid).secureAppend(errorLabel); } function showOffloadErrorMsg(divid, errormsgid, para1, para2, para3, para4) { var msgcontent = ''; var errorLabel = ''; var msgid = (divid + errormsgid).replace('.', ''); try { msgcontent = publicLang[errormsgid]; } catch (e) { return; } if (para1 && para2 && para3 && para4) { msgcontent = msgcontent.replace('%1$d', para1); msgcontent = msgcontent.replace('%2$d', para2); msgcontent = msgcontent.replace('%3$d', para3); msgcontent = msgcontent.replace('%4$d', para4); } errorLabel += '
'; if ($('#' + divid).find('.control-label-win').length !== 0) { errorLabel += '
 
'; errorLabel += '
'; } else { errorLabel += '
 
'; errorLabel += '
'; } errorLabel += '
' + msgcontent + '
'; errorLabel += '
'; errorLabel += '
'; var classVal = ''; classVal = $('#' + divid).find('input').attr('class'); if (classVal && classVal.indexOf('input_normal') >= 0) { $('#' + divid).find('input').each(function (index, element) { classVal = $(element).attr('class'); if (classVal && classVal.indexOf('input_normal') >= 0) { $(element).addClass('input_error').removeClass('input_normal'); } if (classVal && classVal.indexOf('input_long') >= 0) { $(element).addClass('input_long_error').removeClass('input_long'); } }); } else { $('#' + divid).find('div').each(function (index, element) { classVal = $(element).attr('class'); if (classVal && classVal.indexOf('input_normal') >= 0) { $(element).addClass('input_error').removeClass('input_normal'); } if (classVal && classVal.indexOf('input_long') >= 0) { $(element).addClass('input_long_error').removeClass('input_long'); } if (classVal && classVal.indexOf('input_normal_selected') >= 0) { $(element).addClass('input_error').removeClass('input_normal_selected'); } if (classVal && classVal.indexOf('input_long_selected') >= 0) { $(element).addClass('input_long_error').removeClass('input_long_selected'); } }); } $('#' + divid).secureAppend(errorLabel); } var DEBUG_INFO = false; function debugInfo() { if (DEBUG_INFO) { for (var i = 0; i < arguments.length; i++) { console.log(arguments[i]); } } } function checkUrl(source) { var lowCaseStr = source.toLowerCase(); var strRegex = '^((https|http|ftp|rtsp|mms)?://)' + '?(([0-9a-z_!~*\'().&=+$%-]+: )?[0-9a-z_!~*\'().&=+$%-]+@)?' + '(([0-9]{1,3}\.){3}[0-9]{1,3}' + '|' + '([0-9a-z_!~*\'()-]+\.)*' + '([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\.' + '[a-z]{2,6})' + '(:[0-9]{1,4})?' + '((/?)|' + '(/[0-9a-z_!~*\'().;?:@&=+$,%#-]+)+/?)$'; var regex = new RegExp(strRegex); return regex.test(lowCaseStr); } function escapeURL(source) { var outstr = ''; var index; var copystr = source + ''; if (!checkUrl(source)) { outstr = '/'; } else { copystr = copystr.toLowerCase(); if (copystr.indexOf('javascript') !== -1 || copystr.indexOf('script') !== -1) { return '/'; } for (index = 0; index < source.length; index++) { if (source.charAt(index) === '&' || source.charAt(index) === '<' || source.charAt(index) === '>' || source.charAt(index) === '"' || source.charAt(index) === '\'' || source.charAt(index) === '(' || source.charAt(index) === ')') { outstr += '%'; outstr += source.charCodeAt(index).toString(16); } else { outstr += source.charAt(index); } } } return outstr; } function getQueryStringByName(item) { var svalue = location.search.match(new RegExp('[\?\&]' + item + '=([^\&]*)(\&?)', 'i')); return svalue ? svalue[1] : svalue; } var AJAX_TIMEOUT = 30000; var RVC_TIMEOUT = 10000; const stepGlobalOptions = { doneBtnText: '完成', // Text on the final button closeBtnText: '关闭', // Text on the close button for this step nextBtnText: '下一步', // Next button text for this step prevBtnText: '上一步', // Previous button text for this step showButtons: true, // Do not show control buttons in footer allowClose: false, // Whether the click on overlay should close or not //stageBackground: '#000000', opacity: 0.5, }; var RVC = {}; var gRequestVerificationToken = []; var gDeviceTitle = ''; var EMUI = {}; $(function () { function cloneObject(inObj) { var newObj = (inObj instanceof Array) ? [] : {}; for (var i in inObj) { if (inObj[i] && typeof inObj[i] === 'object' || typeof inObj[i] === Object) { newObj[i] = cloneObject(inObj[i]); } else { newObj[i] = inObj[i]; } } return newObj; } function compareObject(inObj1, inObj2) { if (inObj1 === inObj2) { return true; } var obj1length = 0; for (var i in inObj1) { if (i) { obj1length++; } } var obj2length = 0; for (i in inObj2) { if (i) { obj2length++; } } if (obj1length !== obj2length) { return false; } var result = true; for (i in inObj1) { if (inObj1[i] && typeof inObj1[i] === 'object' || typeof inObj1[i] === Object) { result = result && compareObject(inObj1[i], inObj2[i]); } else { result = result && (inObj1[i] === inObj2[i]); } } return result; } RVC.Object = {}; RVC.Object.extend = function (source) { var temp = cloneObject(this); temp._super = this; for (var property in source) { if (property) { temp[property] = source[property]; } } return temp; }; RVC.popWinController = RVC.Object.extend({ content: [], isautoUpgChecked: false, closeAll: function () { var contentLength = this.content.length; for (var i = 0; i < contentLength; i++) { this.content[i]['isClose'] = true; } $('#emui_content_pop_win').hide(); }, closePopItem: function (moduleName) { var contentLength = this.content.length; for (var i = 0; i < contentLength; i++) { if (this.content[i]['moduleName'] === moduleName) { this.content[i]['isClose'] = true; } } this.showPop(); showPopWin(); }, addPopItem: function (moduleName, scribInfoId, contentItem) { if (typeof contentItem === 'undefined' && contentItem === '') { return; } var isNeedShowAgain = false; var scribInfo = ''; if (typeof scribInfoId !== 'undefined') { scribInfo = scribInfoId; } var isExist = false; var contentLen = this.content.length; for (var i = 0; i < contentLen; i++) { if (this.content[i]['moduleName'] === moduleName) { if (contentItem !== this.content[i]['contentinfo']) { this.content[i]['scribInfoId'] = scribInfo; this.content[i]['contentinfo'] = contentItem; this.content[i]['isClose'] = false; isNeedShowAgain = true; } isExist = true; break; } } if (!isExist) { var conItem = {}; conItem.moduleName = moduleName; conItem.scribInfoId = scribInfo; conItem.contentinfo = contentItem; conItem.isClose = false; isNeedShowAgain = true; this.content.push(conItem); } if (isNeedShowAgain) { this.showPop(); showPopWin(); } }, toggleMessage: function (index) { var arrowId = 'arrow_content_message_pop_' + index; var messageId = 'body_content_message_pop_' + index; for (var i = 0; i < this.content.length; i++) { var contentItem = this.content[i]; if (contentItem['isClose'] === false && i !== index) { $('#body_content_message_pop_' + i).hide(); $('#arrow_content_message_pop_' + i).removeClass('menu_arrow_open').addClass('menu_arrow_close'); } } if ($('#' + arrowId).hasClass('menu_arrow_close')) { $('#' + arrowId).removeClass('menu_arrow_close').addClass('menu_arrow_open'); } else { $('#' + arrowId).removeClass('menu_arrow_open').addClass('menu_arrow_close'); } $('#' + messageId).toggle(); showPopWin(); }, showPop: function () { var self = this; var contentLen = this.content.length; if (contentLen === 0) { $('#pop_win_content_area').empty(); $('#emui_content_pop_win').hide(); return; } var showContent = []; var i = 0; var openIndex = ''; var curHash = window.location.hash.substr(1); for (i = 0; i < this.content.length; i++) { var contentItem = this.content[i]; if (contentItem['isClose'] === false && contentItem['moduleName'].toLowerCase().indexOf(curHash) < 0) { showContent.push(contentItem); } } contentLen = showContent.length; if (contentLen > 1) { for (i = 0; i < contentLen; i++) { var arrowId = 'arrow_content_message_pop_' + i; if ($('#' + arrowId).hasClass('menu_arrow_open')) { openIndex = i; break; } } } $('#pop_win_content_area').empty(); $('#emui_pop_win_title').empty(); if (contentLen === 0) { $('#pop_win_content_area').empty(); $('#emui_content_pop_win').hide(); return; } else if (contentLen === 1) { $('#pop_win_content_area').empty(); $('#emui_pop_win_title').empty(); $('#emui_pop_win_title').attr('lang-id', showContent[0]['scribInfoId']); langStr('emui_pop_win_title', showContent[0]['scribInfoId']); $('#pop_win_content_area').html(showContent[0]['contentinfo']); } else { var bacicHtml = []; $('#emui_pop_win_title').attr('lang-id', 'device.new.message'); langStr('emui_pop_win_title', 'device.new.message'); for (i = 0; i < contentLen; i++) { var classTop = 'border_top message_item_split'; if (i === 0) { classTop = ''; } var htmlItem = '
' + '
' + '
' + publicLang[showContent[i]['scribInfoId']] + '
' + '
' + '
' + showContent[i]['contentinfo'] + '
'; bacicHtml.push(htmlItem); } bacicHtml = '
' + bacicHtml.join('') + '
'; $('#pop_win_content_area').html(bacicHtml); } $(showContent).each(function (i, value) { if (value.moduleName === 'upgrade' && GLOBAL.modules.china_region_enable === '1') { self.autoUpgStatus(); } }); $('#emui_content_pop_win').show(); if (openIndex !== '') { this.toggleMessage(openIndex); } }, autoUpgStatus: function () { if (!this.isautoUpgChecked) { EMUI.indexAutoUpgradeController.load(null, false); this.isautoUpgChecked = true; } if (EMUI.indexAutoUpgradeController.isOpenAutoUpg === 1) { $('#index_autoUpg').show(); $('#index_autoUpg_check').attr('class', 'check_on'); } else if (EMUI.indexAutoUpgradeController.isOpenAutoUpg === 0) { $('#index_autoUpg').show(); $('#index_autoUpg_check').attr('class', 'check_off'); } else { $('#index_autoUpg').hide(); } } }); RVC.Scroll = RVC.Object.extend({ i: 0, cancelSelectListEvent: false, boxH: {}, textH: {}, intervalResizeObj: {}, isHiddenOld: {}, mouseData: { startY: 0, curTop: 0, startBoolear: false, startSelector: '' }, touchData: { startY: 0, curTop: 0, startBoolear: false, startSelector: '' }, isStartMouseWheel: false, initScroll: function (selectorS) { var self = this; $.each($(selectorS), function (index, selector) { var $selector = $(selector); var i = self.i; if ($selector.find('.scroll_text').length > 0) { return; } self.$selector = $selector; self.initBoxHtml($selector, i); self.resize($selector); self.resizeTop($('#scroll_bar_' + i), 0); self.intervalResizeObj[i] = setInterval(function () { self.intervalResize($selector, i); }, 50); self.bindEvent(i); self.i++; }); }, callbacks: {}, callback: function (selectorS, callbackFun) { var self = this; $.each($(selectorS), function (index, selector) { var i = $(selector).attr('scrollID'); self.callbacks[i] = callbackFun; }) }, initBoxHtml: function ($selector, i) { var self = this; $selector.css('position', 'relative'); $selector.css('overflow', 'visible'); $selector.attr('scrollID', i); $selector.wrapInner('
\
\
'); $selector.append(''); }, intervalResize: function ($selector, i) { var self = this; if ($('#scroll_text_' + i).length === 0 && self.intervalResizeObj[i]) { clearInterval(self.intervalResizeObj[i]); self.intervalResizeObj[i] = null; } else { var isUpdated = self.resize($selector); if (isUpdated === 'updated') { var curTop = $('#scroll_bar_' + i)[0].offsetTop; self.resizeTop($('#scroll_bar_' + i), curTop); } } }, resize: function ($selector) { var self = this; if (typeof $selector === 'string') { $.each($($selector), function (index, selector) { self.resize($(selector)); }); return; } var i = $selector.attr('scrollID'); var $scrollRight = $('#scroll_right_' + i); var $scrollLeft = $('#scroll_left_' + i); var $scrollBar = $('#scroll_bar_' + i); var maxHeight = parseInt($selector.css('max-height').slice(0, -2)); var height = parseInt($selector.css('height').slice(0, -2)); var currentBoxHeight = (maxHeight > height) ? maxHeight : height; var currentTextH = $selector.find('.scroll_text').height(); var currentHidden = ($selector.is(':hidden')) ? true : false; var firstInit = ($scrollBar.height() > 0) ? false : true; if (currentHidden) { self.isHiddenOld[i] = true; return; } else { if (self.isHiddenOld[i] && !firstInit) { self.resizeTop($('#scroll_bar_' + i), 0); } self.isHiddenOld[i] = false; } if (self.boxH[i] === currentBoxHeight && self.textH[i] === currentTextH) { return; } self.boxH[i] = currentBoxHeight; self.textH[i] = currentTextH; if (currentTextH > currentBoxHeight) { $scrollRight.css('display', 'block'); } else { self.resizeTop($('#scroll_bar_' + i), 0); $scrollRight.css('display', 'none'); return; } var rateH = currentTextH / currentBoxHeight; var scrollBarH = currentBoxHeight / rateH; $scrollLeft.css('max-height', currentBoxHeight + 'px'); $scrollRight.css('height', currentBoxHeight + 'px'); $scrollBar.css('height', scrollBarH + 'px'); return 'updated'; }, setTop: function (selectorS, top) { var self = this; $.each($(selectorS), function (index, selector) { var i = $(selector).attr('scrollID'); var $scrollBar = $('#scroll_bar_' + i); self.resize($(selector)); self.resizeTop($scrollBar, top); }) }, setDomTop: function (selectorS, domTop) { var self = this; $.each($(selectorS), function (index, selector) { var i = $(selector).attr('scrollID'); var $scrollBar = $('#scroll_bar_' + i); self.resize($(selector)); self.resizeDomTop($scrollBar, domTop); }) }, setBottom: function (selectorS, bottom) { var self = this; $.each($(selectorS), function (index, selector) { var i = $(selector).attr('scrollID'); var $scrollRight = $('#scroll_right_' + i); var $scrollBar = $('#scroll_bar_' + i); var realHeight = $scrollRight.height(); var bottomHeight = realHeight - (bottom || 0); self.resize($(selector)); self.resizeTop($scrollBar, bottomHeight); }) }, resizeDomTop: function ($selectorBar, domTop) { var self = this; var barId = $selectorBar.attr('id'); var id = barId; var i = id.slice('scroll_bar_'.length); var boxH = self.boxH[i]; var textH = self.textH[i]; var barH = $selectorBar.height(); var rateH = (textH - boxH) / (boxH - barH); var barTop = (domTop / rateH); self.resizeTop($selectorBar, barTop); }, resizeTop: function ($selectorBar, barTop, isAllowCallback) { var self = this; if ($selectorBar.is(':hidden')) { return; } var barId = $selectorBar.attr('id'); var id = barId; var i = id.slice('scroll_bar_'.length); var boxH = self.boxH[i]; var textH = self.textH[i]; var barH = $selectorBar.height(); if (barTop < 0) { barTop = 0; } else if (barTop > (boxH - barH)) { barTop = boxH - barH; } var rateH = (textH - boxH) / (boxH - barH); var textTop = -(barTop * rateH); if ($('#scroll_left_' + i).scrollTop() !== 0) { $('#scroll_left_' + i).scrollTop(0); } $selectorBar.css('top', barTop + 'px'); $('#scroll_text_' + i).css('top', textTop + 'px'); if (isAllowCallback && self.callbacks[i]) { self.callbacks[i](); } }, bindEvent: function (i) { var self = this; var $targetDom = $('[scrollID=' + i + ']'); var isStartClick = false; $targetDom.on('mousedown click', '#scroll_right_' + i, function (e) { if ($('#' + e.target.id).is(':hidden')) { return; } e.preventDefault(); e.stopPropagation(); if ($('#' + e.target.id).hasClass('scroll_bar')) { return; } if (e.type === 'mousedown') { isStartClick = true; } if (e.type === 'click' && isStartClick) { isStartClick = false; var id = e.currentTarget.id; var i = id.slice('scroll_right_'.length); self.resizeTop($('#scroll_bar_' + i), e.pageY - $('#' + id).offset().top, 'allowCallback'); } }); $targetDom.on(((document.onmousewheel !== undefined) ? "mousewheel" : "DOMMouseScroll"), '#scroll_text_' + i, function (e) { var id = e.currentTarget.id; var i = id.slice('scroll_text_'.length); var $selectorBar = $('#scroll_bar_' + i); if ($selectorBar.is(':hidden')) { return; } var curTop = $selectorBar[0].offsetTop; var wheel = e.originalEvent.wheelDelta || -e.originalEvent.detail; var delta = Math.max(-1, Math.min(1, wheel)); var action = (delta < 0) ? 'down' : 'up'; var setTopData; var needUpPropagation = false; if (action === 'up' && curTop > 0) { e.preventDefault(); e.stopPropagation(); setTopData = curTop - 20; } else if (action === 'down' && $('#scroll_right_' + i).height() - $selectorBar.height() - curTop > 1) { e.preventDefault(); e.stopPropagation(); setTopData = curTop + 20; } else { needUpPropagation = true; } if (needUpPropagation) { return; } if (self.isStartMouseWheel) { return; } self.isStartMouseWheel = true; setTimeout(function () { self.isStartMouseWheel = false; }, 100); if (setTopData !== undefined) { self.resizeTop($selectorBar, setTopData, 'allowCallback'); } }); $targetDom.on('focusin', '#scroll_text_' + i, function (e) { var tagName = e.target.tagName || ''; if (tagName.toLowerCase() !== 'input') { return; } var id = e.currentTarget.id; var i = id.slice('scroll_text_'.length); var $selectorBar = $('#scroll_bar_' + i); if ($selectorBar.is(':hidden')) { return; } e.preventDefault(); e.stopPropagation(); var boxTop = $('#' + id)[0].offsetTop; var dulHeight = $(document.activeElement).offset().top - $('#' + id).offset().top; var domHeight = $(document.activeElement).outerHeight(); var overTop = boxTop + dulHeight + domHeight - $('#scroll_left_' + i).height(); if (overTop >= 0) { self.resizeDomTop($selectorBar, dulHeight, 'allowCallback'); } }); $targetDom.on('touchstart', '#scroll_text_' + i + ',#scroll_bar_' + i, function (e) { var id = e.currentTarget.id; var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; var i; e.stopPropagation(); if (id.indexOf('scroll_text') > -1) { i = id.slice('scroll_text_'.length); } else if (id.indexOf('scroll_bar') > -1) { i = id.slice('scroll_bar_'.length); } else { return; } self.touchData = { startBoolear: true, startY: touch.pageY, curTop: $('#scroll_bar_' + i)[0].offsetTop, startSelector: 'scroll_bar_' + i } }); $targetDom.on('touchmove', '#scroll_text_' + i + ',#scroll_bar_' + i + ',#scroll_right_' + i, function (e) { if (!self.touchData.startSelector || !self.touchData.startBoolear || !$('#' + self.touchData.startSelector).length) { return; } var id = self.touchData.startSelector; var i = id.slice('scroll_bar_'.length); var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; var dulTop; if ((e.currentTarget.id).indexOf('scroll_text') > -1) { dulTop = self.touchData.startY - touch.pageY; } else if ((e.currentTarget.id).indexOf('scroll_bar') > -1) { dulTop = touch.pageY - self.touchData.startY; } var barTop = dulTop + self.touchData.curTop; self.resizeTop($('#' + id), barTop); e.preventDefault(); e.stopPropagation(); }); $targetDom.on('touchend', '#scroll_text_' + i + ',#scroll_bar_' + i, function (e) { if (!self.touchData.startSelector || !$('#' + self.touchData.startSelector).length) { return; } var id = self.touchData.startSelector; var barTop = $('#' + id)[0].offsetTop; self.touchData.startBoolear = false; self.resizeTop($('#' + id), barTop, 'allowCallback'); }); $targetDom.on('mousedown', '#scroll_bar_' + i, function (e) { var id = e.currentTarget.id; var i = id.slice('scroll_bar_'.length); self.mouseData = { startBoolear: true, startY: e.pageY, curTop: $('#' + id)[0].offsetTop, startSelector: id } }); $(document).off('mousemove mouseup'); $(document).on('mousemove', function (e) { if (!self.mouseData.startSelector || !self.mouseData.startBoolear || !$('#' + self.mouseData.startSelector).length) { return; } window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty(); var id = self.mouseData.startSelector; var barTop = (e.pageY - self.mouseData.startY) + self.mouseData.curTop; self.resizeTop($('#' + id), barTop); }); $(document).on('mouseup', function (e) { if (!self.mouseData.startSelector || !self.mouseData.startBoolear || !$('#' + self.mouseData.startSelector).length) { return; } self.cancelSelectListEvent = true; var id = self.mouseData.startSelector; var barTop = $('#' + id)[0].offsetTop; self.mouseData.startBoolear = false; self.resizeTop($('#' + id), barTop, 'allowCallback'); }); }, unbindEvent: function () { $('.scroll_text,.scroll_right,.scroll_bar').off(); }, destroy: function (selectorS) { var self = this; $.each($(selectorS), function (index, selector) { $selector.removeAttr('scrollID'); var $scrollText = $(selector).find('.scroll_text'); if ($scrollText.length === 0) { return; } var id = $scrollText.attr('id'); var index = id.slice('scroll_text_'.length); if (self.intervalResizeObj[index]) { clearInterval(self.intervalResizeObj[index]); self.intervalResizeObj[index] = null; } ($(selector).find('.scroll_left')).replaceWith($scrollText.contents()); ($(selector).find('.scroll_right')).remove(); }); }, adapterleftLabelStyle: function (para) { var tag; var selectorTag; if (window.location.href.indexOf('/ManagerDesktop/page.html') >= 0) { tag = '#' + window.location.hash.substr(1) + '_page'; } else { tag = 'body'; } selectorTag = tag + ' .control-label:visible'; if (para) { var otherTag = tag + ' .' + para + ' .control-label-win:visible'; selectorTag = selectorTag + ',' + otherTag; } $(selectorTag).each(function (index, element) { if ($(element).height() > 25) { $(element).css('margin-top', '0px') } else { $(element).css('margin-top', '8px') } }); } }); RVC.EntityController = RVC.Object.extend({ entityName:'', className: '', methodID:{}, methodSignature:{}, sigResponseUUID : '{e12a3dc0-3a0b-47c4-a8c3-75190a42ae68}', init: function() { var self = this; var ses = new Session(); ses.entity = self.entityName; ses.class = self.className; WebSocketBase.startSession(ses, () => { debugInfo("start session callback!"); }); }, cloneObject: function (obj) { return cloneObject(obj); }, compareObject: function (obj1, obj2) { return compareObject(obj1, obj2); }, webSocketInvoke: function(req, callback) { WebSocketBase.sendMsg(req, (data) => { var jsondata = JSON.parse(data); if(typeof callback === 'function') { try { callback(jsondata); } catch(err) {} } }); }, webSocketInvokeEx: function(req, methodSig, callback) { req.entity = this.entityName; req.class = this.className; req.methodID = methodSig.id; req.signature = methodSig.sig; if(typeof req.timeout == 'undefined') { req.timeout = 20000; } this.webSocketInvoke(req, callback); }, commCallback : function(ret, skipSucc) { if(typeof skipSucc == 'undefined' && "undefined" !== typeof ret.errorCode && ret.errorCode === 0) { utilStartCommonDialog("操作成功!"); setTimeout(function () { utilStopCommonDialog(); }, 1000); return; } if("undefined" !== typeof ret.errorCode) { if('undefined' != typeof ret.userCode) { utilStartAlertDialog("操作失败! ErrorCode: " + ErrorCodeStringfy(ret.errorCode) + " | UserCode: " + ret.userCode); } else { utilStartAlertDialog("操作失败! ErrorCode: " + ErrorCodeStringfy(ret.errorCode)); } } else { utilStartAlertDialog("操作失败! 响应数据无法解析"); } }, commErrorCallback: function(ret) { this.commCallback(ret, 1); } }); }); function test() { //utilShowToast("操作成功!", 5000); } $(function () { WebSocketBase.socket.onerror = function () { utilStartAlertDialog('终端链接失败', function() { utilStopCommonDialog(); }); }; RVC.DeviceControlEntityCtrl = RVC.EntityController.extend({ entityName: 'DeviceControl', className: 'DeviceControlService', methodID: { QueryHardwareInfo: 4, ReadCenterConfigStr: 5, ReadConfigValue: 6, TestConnectivity: 7 }, methodSignature: { QueryHardwareInfo: 1706767096, ReadCenterConfigStr: -673154017, ReadConfigValue: 730234720, TestConnectivity : -42627632 }, QueryHardwareInfo: function (req, callback) { req.entity = this.entityName; req.class = this.className; req.methodID = this.methodID.QueryHardwareInfo; req.signature = this.methodSignature.QueryHardwareInfo; this.webSocketInvoke(req, callback); }, ReadConfigValue: function (req, callback) { req.entity = this.entityName; req.class = this.className; req.methodID = this.methodID.ReadConfigValue; req.signature = this.methodSignature.ReadConfigValue; this.webSocketInvoke(req, callback); }, ReadCenterConfigStr: function (req, callback) { this.webSocketInvokeEx(req, ({id:this.methodID.ReadCenterConfigStr, sig:this.methodSignature.ReadCenterConfigStr}), callback); }, TestConnectivity: function (req, callback) { this.webSocketInvokeEx(req, ({id:this.methodID.TestConnectivity, sig:this.methodSignature.TestConnectivity}), callback); } }); RVC.HealthmanagerEntityCtrl = RVC.EntityController.extend({ entityName: 'HealthManager', className: 'HealthManagerService', methodID: { ControlTerminalLife: 7, DeployTerminal : 8 }, methodSignature: { ControlTerminalLife: 397251033, DeployTerminal : -1435088905 }, ControlTerminalLife: function (req, callback) { req.entity = this.entityName; req.class = this.className; req.methodID = this.methodID.ControlTerminalLife; req.signature = this.methodSignature.ControlTerminalLife; this.webSocketInvoke(req, callback); }, DeployTerminal: function (req, callback) { this.webSocketInvokeEx(req, ({id:this.methodID.DeployTerminal, sig:this.methodSignature.DeployTerminal}), callback); }, ControlTerminalLifeNo: function(cmdValue) { let req = new Request(); req.timeout = 60000; req.cmdType = cmdValue; req.reason = 0; req.reserved1 = 0; req.reserved2 = 0; req.reserved3 = ''; req.reserved4 = ''; utilStartSubmitDialog(); this.ControlTerminalLife(req, function(ret) { utilStopSubmitDialog(); if (ret.errorCode === 0) { utilStartCommonDialog("操作成功!"); setTimeout(function () { utilStopCommonDialog(); }, 2000); } else { utilStartAlertDialog("操作失败:" + ErrorCodeStringfy(ret.errorCode)); } }); }, RestartApp: function() { utilStartConfirmDialog("确认要重启可视柜台应用程序?", function() { RVC.HealthmanagerEntityCtrl.ControlTerminalLifeNo(1); }); }, QuitApp: function() { utilStartConfirmDialog("确认要退出可视柜台应用程序?", function() { RVC.HealthmanagerEntityCtrl.ControlTerminalLifeNo(2); }); }, UPSOffPC: function() { utilStartConfirmDialog("确认通过UPS关闭计算机?(点击确认并操作成功后请在5分钟内拔离插座电源线以彻底关闭计算机,否则机器将会重启!)", function() { RVC.HealthmanagerEntityCtrl.ControlTerminalLifeNo(6); }); }, PowerOffPC: function() { utilStartConfirmDialog("确认要关闭计算机?", function() { RVC.HealthmanagerEntityCtrl.ControlTerminalLifeNo(5); }); }, RestartPC: function() { utilStartConfirmDialog("确认要重启计算机?", function() { RVC.HealthmanagerEntityCtrl.ControlTerminalLifeNo(4); }); } }); RVC.DeviceControlEntityCtrl.init(); RVC.HealthmanagerEntityCtrl.init(); }); function quitThisPage() { open(location, '_self').close(); } function passwordRule1Check(pwd) { var hasnum = 0; var haslow = 0; var hasup = 0; var hasspe = 0; if (!!pwd.match(/[0-9]/)) { hasnum = 1; } if (!!pwd.match(/[a-z]/)) { haslow = 1; } if (!!pwd.match(/[A-Z]/)) { hasup = 1; } if (!!pwd.match(/\W/) || !!pwd.match(/[_]/)) { hasspe = 1; } if (((hasnum + haslow + hasup) < 3) || hasspe) { return false; } return true; } function passwordRule2Check(pwd) { var hasnum = 0; var haslow = 0; var hasup = 0; var hasspe = 0; if (!!pwd.match(/[0-9]/)) { hasnum = 1; } if (!!pwd.match(/[a-z]/)) { haslow = 1; } if (!!pwd.match(/[A-Z]/)) { hasup = 1; } if (!!pwd.match(/\W/) || !!pwd.match(/[_]/)) { hasspe = 1; } if ((hasnum + haslow + hasup + hasspe) < 3) { return false; } return true; } function passwordRule3Check(pwd) { var hasnum = 0; var haslow = 0; var hasup = 0; var hasspe = 0; if (!!pwd.match(/[0-9]/)) { hasnum = 1; } if (!!pwd.match(/[a-z]/)) { haslow = 1; } if (!!pwd.match(/[A-Z]/)) { hasup = 1; } if (!!pwd.match(/\W/) || !!pwd.match(/[_]/)) { hasspe = 1; } if ((hasnum + haslow + hasup + hasspe) < 2) { return false; } return true; } function hasSpaceOrTabAtHead(str) { if (str.indexOf(' ') === 0 || str.indexOf('\t') === 0) { return true; } return false; } window.xss = function (xmlStr) { if ($.type(xmlStr) === 'number') { return xmlStr; } if ($.type(xmlStr) !== 'string') { return ''; } return xmlStr.replace(/(\&|\'|\"|\>|\<|\/|\(|\))/g, function Rep($0, $1) { return { '&': '&', "'": ''', '"': '"', '<': '<', '>': '>', '/': '/', '(': '(', ')': ')' }[$1]; }); }; window.xssDecode = function (xmlStr) { return xmlStr.replace(/(<|>|&|'|"|/|(|))/g, function ($0, $1) { return { '<': '<', '>': '>', '&': '&', ''': "'", '"': '\"', '/': '/', '(': '(', ')': ')' }[$1]; }); }; window.privacyXss = function (xssStr, splitStr) { if ($.type(xssStr) !== 'string' || $.type(splitStr) !== 'string') { return ''; } var xssArr = xssStr.split(splitStr); for (var i = 0; i < xssArr.length; i++) { xssArr[i] = xss(xssArr[i]); } return xssArr.join(splitStr); }; function isButtonEnable(buttonId) { var $button = $('#' + buttonId); if ($button) { return !($button.hasClass('btn_disabled')); } return false; } function resolveXMLEntityReference(str) { if (typeof str !== 'undefined' && str !== null && str !== '') { return str.replace(/(\'|\&|\"|\>|\<|\/|\(|\))/g, function Rep($0, $1) { return { "'": ''', '&': '&', '"': '"', '<': '<', '>': '>', '/': '/', '(': '(', ')': ')' }[$1]; }); } return ''; } function xssResolveHtmlReturnChar(xmlStr) { if (typeof xmlStr !== 'undefined' && xmlStr !== null && xmlStr !== '') { return xmlStr.replace(/(\'|\"|\/|\(|\))/g, function Rep($0, $1) { return { "'": ''', '"': '"', '/': '/', '(': '(', ')': ')' }[$1]; }); } return ''; } function isPlusInteger(value) { if (/^\d+$/.test(value) && parseInt(value, 10) >= 0) { return true; } return false; } function showSelectedValue(selectid, selectval) { var selectlist = selectid + '_list'; var selectClass = ' .select_medium'; if ($('#' + selectlist).children().hasClass('spanner_medium')) { selectClass = ' .spanner_medium'; } var selectitems = $('#' + selectlist + selectClass); var selectLength = selectitems.length; var selectparent = $('#' + selectid); for (var loop = 0; loop < selectLength; loop++) { var selectitem = $(selectitems[loop]); var selectvalue = selectitem.attr('option') || selectitem.find('span').attr('option'); var description = selectitem.text() || selectitem.find('span').text(); var selectlangid = selectitem.attr('lang-id') || selectitem.find('span').attr('lang-id') || ''; if (selectval === selectvalue) { if (selectparent[0].localName !== 'input' && selectparent[0].localName !== 'textarea') { selectparent.attr('value', selectval); } else { selectparent.val(selecthtml); } selectparent.text(description); selectparent.attr('lang-id', selectlangid); break; } } } function handleTemplate(template, data) { var processed = template.replace(/{{.+?}}/g, function (match) { var cmd = match.substr(2, match.length - 4); if (cmd.substr(0, 2) === 't ') { return getTransation(cmd.substr(2)); } var evalValue = data; cmd.split('.').forEach(function (key) { if (!evalValue) { return; } evalValue = evalValue[key]; }); if (typeof evalValue === 'number') { return evalValue; } return xss(evalValue); }); return processed; } function isValidIpAddress(address, flag) { var addrParts = address.split('.'); if (addrParts.length !== 4) { return false; } for (var i = 0; i < 4; i++) { if (isNaN(addrParts[i])) { return false; } if (addrParts[i] === '') { return false; } if (addrParts[i].indexOf(' ') !== -1) { return false; } if ((addrParts[i].indexOf('0') === 0) && (addrParts[i].length !== 1)) { return false; } } if (typeof flag === 'undefined') { if ((addrParts[0] <= 0 || addrParts[0] === '127' || addrParts[0] > 223) || (addrParts[1] < 0 || addrParts[1] > 255) || (addrParts[2] < 0 || addrParts[2] > 255) || (addrParts[3] <= 0 || addrParts[3] >= 255)) { return false; } } else if ((addrParts[0] <= 0 || addrParts[0] === '127' || addrParts[0] > 223) || (addrParts[1] < 0 || addrParts[1] > 255) || (addrParts[2] < 0 || addrParts[2] > 255) || (addrParts[3] < 0 || addrParts[3] > 255)) { return false; } return true; } function spaceToNbsp(str) { return str.replace(/ /g, ' '); } function nbspToSpace(str) { return str.replace(/(\ )/g, function ($0, $1) { return { ' ': ' ' }[$1]; } ); } function utilGetTimeString(timeVal) { var timeString = ''; var tmpVal; if (!timeVal) { return ''; } var timeInt = parseInt(timeVal, 10); tmpVal = parseInt(timeInt / (60 * 60 * 24), 10); if (tmpVal > 0) { timeString += tmpVal; timeString += ''; } timeInt %= 60 * 60 * 24; tmpVal = parseInt(timeInt / (60 * 60), 10); if (tmpVal > 0) { timeString += tmpVal; timeString += '小时'; } timeInt %= 60 * 60; tmpVal = parseInt(timeInt / (60), 10); if (tmpVal > 0) { timeString += tmpVal; timeString += '分钟'; } timeInt %= 60; tmpVal = parseInt(timeInt, 10); if (tmpVal > 0) { timeString += tmpVal; timeString += ''; } return timeString; } function getCurrentTime(time) { var finalTime = ''; var times = parseInt(time, 10); var day = parseInt((times / 86400), 10); if (day > 0) { finalTime = day; } times = times - day * 86400; if (finalTime !== '') { finalTime += ' '; } var hours = parseInt((times / 3600), 10); if (hours > 9) { finalTime += hours + ':'; } else if (hours >= 0) { finalTime += '0' + hours + ':'; } times = times - hours * 3600; var minutes = parseInt(times / 60, 10); if (minutes > 9) { finalTime += minutes + ':'; } else if (minutes > 0) { finalTime += '0' + minutes + ':'; } else if (minutes === 0) { finalTime += '00' + ':'; } times = times - minutes * 60; if (times > 9) { finalTime += times; } else if (times > 0) { finalTime += '0' + times; } else if (times === 0) { finalTime += '00'; } return finalTime; } function resizeWindow() { var winheight = $(window).height(); if ($('#page_footer').hasClass('footer-location')) { winheight = $(window).height() - $('#page_footer').height(); } var docHeight = $('body').height(); if (winheight > docHeight) { if ($('#page_footer').hasClass('footer-location')) { return; } $('#page_footer').addClass('footer-location'); } else { $('#page_footer').removeClass('footer-location'); } } var documentInterval = null; function globalIntervalProc() { if (documentInterval !== null) { return; } documentInterval = setInterval(function () { if (GLOBAL.modules.cradle_enabled === '1') { EMUI.globalCradleStatusController.load(); } if (window.location.href.indexOf('fileshare') !== -1 || window.location.href.indexOf('fileUpload') !== -1) { } else { EMUI.globalStatusController.load(); } EMUI.headerStautsController.load(); if (GLOBAL.modules.statistic_enabled === '1') { EMUI.pubMonthStatisticsStartDateController.load(); if (EMUI.pubStatisticFeatureController.isDailyLimitEnable) { EMUI.pubDailyStatisticsStartDateController.load(); } } if (typeof GLOBAL.modules !== 'undefined' && typeof GLOBAL.modules.cbs_enabled !== 'undefined' && GLOBAL.modules.cbs_enabled === '1') { if (window.location.hash !== '#cbssettings') { EMUI.CBSNewListController.load(); } } }, 6000); } function stopBubble() { window.location.href = '#onekey'; event.stopPropagation(); } $(document).ready(function () { setInterval(function () { resizeWindow(); }, 100); $('body').click(function (e) { var target = $(e.target); var targetPartentID = $(e.target).parent().attr('id'); var targetID = target.attr('id'); var tagetFLag = ''; if (target && target.attr('class')) { var classlist = target.attr('class'); if (classlist.indexOf('select_') < 0 && classlist.indexOf('_dragger') < 0) { $('.select_list').hide(); } } else { $('.select_list').hide(); } if (typeof targetID === 'undefined' || targetID.indexOf('statistics_select_') < 0) { $('[class^=statistics_select_]').hide(); } if (targetID) { tagetFLag = targetID; } else if (targetPartentID) { tagetFLag = targetPartentID; } else { tagetFLag = false; } if (tagetFLag) { if (tagetFLag.indexOf('_list_item_') > 0) { var selectval = $('#' + tagetFLag).attr('option'); var parentselectid = tagetFLag.substr(0, tagetFLag.indexOf('_list_item_')); var selecthtml = $('#' + tagetFLag).text(); $('#' + parentselectid + '_list > div').removeClass('select_top_selected select_bottom_selected select_medium_selected'); if ($('#' + tagetFLag).hasClass('spanner_top')) { $('#' + tagetFLag).addClass('spanner_top_selected'); } else if ($('#' + tagetFLag).hasClass('spanner_medium')) { $('#' + tagetFLag).addClass('spanner_medium_selected'); } else if ($('#' + tagetFLag).hasClass('spanner_bottom')) { $('#' + tagetFLag).addClass('spanner_bottom_selected'); } else if ($('#' + tagetFLag).hasClass('select_top')) { $('#' + tagetFLag).addClass('select_top_selected'); } else if ($('#' + tagetFLag).hasClass('select_medium')) { $('#' + tagetFLag).addClass('select_medium_selected'); } else if ($('#' + tagetFLag).hasClass('select_bottom')) { $('#' + tagetFLag).addClass('select_bottom_selected'); } if ($('#' + parentselectid)[0].localName !== 'input' && $('#' + parentselectid)[0].localName !== 'textarea') { $('#' + parentselectid).attr('value', selectval); } else { $('#' + parentselectid).val(selecthtml); } $('#' + parentselectid).removeAttr('lang-id'); $('#' + parentselectid).attr('lang-id', $('#' + tagetFLag).attr('lang-id')); $('#' + parentselectid).text(selecthtml); $('.select_list').hide(); } } }); }); window.onload = function () { var imgDom = $(".header div.logo img")[0]; imgDom && $(".header").height(imgDom.height); }; function showPopWin() { var pop_top = $('.adv_pop_win_top').height(); var pop_middle = $('.adv_pop_win_middle').height(); var pop_bottom = $('.adv_pop_win_bottom').height(); if (!pop_top && !pop_bottom) { return; } var popInterval = setInterval(function () { pop_middle = $('.adv_pop_win_middle').height(); if (pop_middle > 0) { clearInterval(popInterval); var pop_height = pop_top + pop_middle + pop_bottom; var winh = $(window).height(); var userDevice = navigator.userAgent; var pop_offset = winh - pop_height; $('#emui_content_pop_win').css('top', pop_offset); } }, 200) } var VALIDATION = {}; VALIDATION.isValidDomainName = function (value) { var flag = ''; if (!VALIDATION.isValidAscIICharset(value) || !VALIDATION.isValidDomainNameChar(value)) { flag = false; } else if ((value.indexOf('.') === -1 && value !== '') || (value.indexOf('.') !== -1 && value.length === 1)) { flag = false; } else if (/\.$/.exec(value) || /^\./.exec(value) || /-$/.exec(value) || /^-/.exec(value)) { flag = false; } else { flag = true; } return flag; }; VALIDATION.isValidDomainNameChar = function (val) { if (val === '') { return false; } for (var j = 0; j < val.length; j++) { var c = val.charAt(j); if (c >= 'a' && c <= 'z') { continue; } else if (c >= 'A' && c <= 'Z') { continue; } else if (c >= '0' && c <= '9') { continue; } else if (c === '-' || c === '.') { continue; } else { return false; } } return true; }; VALIDATION.isVailDomainLen = function (val) { if (val === '') { return false; } var valArr = val.split('.'); for (var i = 0; i < valArr.length; i++) { if (valArr[i].length > 63) { return false; } } return true; } VALIDATION.isValidAscIICharset = function (str) { for (var i = 0; i < str.length; i++) { if (!(str.charCodeAt(i) >= 33 && str.charCodeAt(i) <= 126)) { return false; } } return true; }; VALIDATION.isSameSubnetAddrs = function (ip1, ip2, mask) { var addrParts1 = ip1.split('.'); var addrParts2 = ip2.split('.'); var maskParts = mask.split('.'); for (var i = 0; i < 4; i++) { if (((Number(addrParts1[i])) & (Number(maskParts[i]))) !== ((Number(addrParts2[i])) & (Number(maskParts[i])))) { return false; } } return true; }; VALIDATION.isValidNetworkSegment = function isValidNetworkSegment(netSeg, mask) { var addrParts = netSeg.split('.'); var maskParts = mask.split('.'); for (var i = 0; i < 4; i++) { if (Number(addrParts[i]) !== ((Number(addrParts[i])) & (Number(maskParts[i])))) { return false; } } return true; }; VALIDATION.isSameNetSegment = function isSameNetSegment(ipmax, ipmin, maskmax, maskmin) { var addrPartsmax = ipmax.split('.'); var addrPartsmin = ipmin.split('.'); var maskPartsmax = maskmax.split('.'); var maskPartsmin = maskmin.split('.'); var maskParts = null; for (var i = 0; i < 4; i++) { if (Number(maskPartsmax[i]) > Number(maskPartsmin[i])) { return false; } maskParts = Number(maskPartsmax[i]) & Number(maskPartsmin[i]); if ((Number(addrPartsmax[i]) & maskParts) !== (Number(addrPartsmin[i]) & maskParts)) { return false; } } return true; }; VALIDATION.isBroadcastOrNetworkAddress = function (ipAddress, netmask) { var ip; var mask; var netaddr; var broadaddr; function inetAton(a) { var n; n = a.split(/\./); if (n.length !== 4) { return 0; } return ((n[0] << 24) | (n[1] << 16) | (n[2] << 8) | n[3]); } ip = inetAton(ipAddress); mask = inetAton(netmask); netaddr = ip & mask; broadaddr = netaddr | ~mask; if (netaddr === ip || ip === broadaddr) { return false; } return true; }; function portPartsParse(_port) { var portArr = []; _port = $.trim(_port); if (_port.indexOf('-') === -1) { portArr = [_port, _port]; } else { _port = _port.split('-'); portArr = [$.trim(_port[0]), $.trim(_port[1])]; } return portArr; } VALIDATION.isValidMacAddress = function (mac) { var macAddress = $.trim(mac); macAddress = macAddress.toLowerCase(); var c = 0; var i = 0; var j = 0; if (macAddress === 'ff:ff:ff:ff:ff:ff' || macAddress === '00:00:00:00:00:00') { return false; } var addrParts = macAddress.split(':'); if (addrParts.length !== 6) { return false; } for (i = 0; i < 6; i++) { if (addrParts[i].length !== 2) { return false; } for (j = 0; j < addrParts[i].length; j++) { c = addrParts[i].charAt(j); if ((c >= '0' && c <= '9') || (c >= 'a' && c <= 'f')) { continue; } else { return false; } } } c = parseInt(addrParts[0].charAt(1), 16); if (c % 2) { return false; } return true; }; VALIDATION.isValidIpAddressCommon = function (address) { var addrParts = address.split('.'); if (addrParts.length !== 4) { return false; } for (var i = 0; i < 4; i++) { if (isNaN(addrParts[i]) === true) { return false; } if (addrParts[i] === '') { return false; } if (addrParts[i].indexOf(' ') !== -1) { return false; } if ((addrParts[i].indexOf('0') === 0) && (addrParts[i].length !== 1)) { return false; } } if ((addrParts[0] < 0 || addrParts[0] > 255) || (addrParts[1] < 0 || addrParts[1] > 255) || (addrParts[2] < 0 || addrParts[2] > 255) || (addrParts[3] < 0 || addrParts[3] > 255)) { return false; } return true; }; VALIDATION.isValidIpAddress = function (address) { var addrParts = address.split('.'); if (addrParts.length !== 4) { return false; } for (var i = 0; i < 4; i++) { if (isNaN(addrParts[i])) { return false; } if (addrParts[i] === '') { return false; } if (addrParts[i].indexOf(' ') !== -1) { return false; } if ((addrParts[i].indexOf('0') === 0) && (addrParts[i].length !== 1)) { return false; } } if ((addrParts[0] <= 0 || addrParts[0] === '127' || addrParts[0] > 223) || (addrParts[1] < 0 || addrParts[1] > 255) || (addrParts[2] < 0 || addrParts[2] > 255) || (addrParts[3] <= 0 || addrParts[3] >= 255)) { return false; } return true; }; VALIDATION.isValidStaticIpAddress = function (address) { var addrParts = address.split('.'); if (addrParts.length !== 4) { return false; } for (var i = 0; i < 4; i++) { if (isNaN(addrParts[i])) { return false; } if (addrParts[i] === '') { return false; } if (addrParts[i].indexOf(' ') !== -1) { return false; } if ((addrParts[i].indexOf('0') === 0) && (addrParts[i].length !== 1)) { return false; } } if ((addrParts[0] <= 0 || addrParts[0] === '127' || addrParts[0] > 223) || (addrParts[1] < 0 || addrParts[1] > 255) || (addrParts[2] < 0 || addrParts[2] > 255) || (addrParts[3] < 0 || addrParts[3] > 255)) { return false; } return true; }; VALIDATION.portJoin = function portJoin(startPort, endPort) { var _port; var startPt = $.trim(startPort); var endPt = $.trim(endPort); if (startPt === '' || endPt === '' || startPt === endPt) { _port = startPort; } else { _port = startPort + '-' + endPort; } return _port; }; VALIDATION.isVaildSpecialPort = function isVaildSpecialPort(port, showTarget) { var portParts = $.trim(port); var c = ''; var i = 0; if (portParts === '') { showErrorMsg(showTarget, 'firewall_hint_port_empty'); return false; } if ((portParts.indexOf('0') === 0) && (portParts.length !== 1)) { showErrorMsg(showTarget, 'firewall_hint_port_empty'); return false; } for (i = 0; i < portParts.length; i++) { c = portParts.toLowerCase().charAt(i); if ((c >= '0') && (c <= '9')) { continue; } else { showErrorMsg(showTarget, 'firewall_hint_port_empty'); return false; } } if ((portParts < MACRO_MIN_PORT_RANGE) || (portParts > MACRO_MAX_PORT_RANGE)) { showErrorMsg(showTarget, 'firewall_hint_port_number_valid_char'); return false; } return true; }; VALIDATION.isVaildPortForIPFilter = function isVaildPortForIPFilter(port, showTarget) { var portParts = $.trim(port); if (portParts === '') { showErrorMsg(showTarget, 'firewall_hint_port_empty'); return false; } if (port < MACRO_MIN_PORT_RANGE || port > MACRO_MAX_PORT_RANGE) { showErrorMsg(showTarget, 'firewall_hint_port_number_valid_char'); return false; } var splitPort = portPartsParse(port); var i = 0; for (i = 0; i < splitPort.length; i++) { if (isNaN(splitPort[i])) { showErrorMsg(showTarget, 'firewall_hint_port_empty'); return false; } } portParts = $.trim(port); if (portParts.indexOf('-') === -1) { if (!VALIDATION.isVaildSpecialPort(portParts, showTarget)) { return false; } } else { portParts = port.split('-'); if (portParts.length === 2) { for (i = 0; i < 2; i++) { if (isNaN(portParts[i]) === true) { showErrorMsg(showTarget, 'firewall_hint_port_empty'); return false; } if (portParts[i] === '') { showErrorMsg(showTarget, 'firewall_hint_port_empty'); return false; } if (!VALIDATION.isVaildSpecialPort(portParts[i], showTarget)) { return false; } } if (parseInt(portParts[0], 10) > parseInt(portParts[1], 10)) { showErrorMsg(showTarget, 'firewall_hint_start_greater_end_port'); return false; } } else { showErrorMsg(showTarget, 'firewall_hint_port_empty'); return false; } } return true; }; VALIDATION.checkTr069InputUserNameChar = function checkInputChar(str) { var i; var charI; var numCharI; if (str === '') { return false; } for (i = 0; i < str.length; i++) { charI = str.charAt(i); numCharI = charI.charCodeAt(); if ((numCharI > MACRO_SUPPORT_CHAR_MAX) || (numCharI < MACRO_SUPPORT_CHAR_MIN)) { return false; } else if (MACRO_NOT_SUPPORT_CHAR_QUOTATION_MARK === numCharI || MACRO_NOT_SUPPORT_CHAR_39 === numCharI) { return false; } } return true; }; VALIDATION.checkChar = function checkChar(str, unsupportChar) { var i; var charI; var numCharI; if (str === '') { return false; } if (!$.isArray(unsupportChar)) { return false; } for (i = 0; i < str.length; i++) { charI = str.charAt(i); numCharI = charI.charCodeAt(); if ((numCharI > MACRO_SUPPORT_CHAR_MAX) || (numCharI < MACRO_SUPPORT_CHAR_MIN)) { return false; } else { for (var j = 0; j < unsupportChar.length; j++) { if (unsupportChar[j] === charI) { return false; } } } } return true; }; VALIDATION.isGlobalIpv6Address = function isGlobalIpv6Address(strAddress) { var tempAddress = getFullIpv6Address(strAddress); if ((tempAddress === '') || (tempAddress === '0000:0000:0000:0000:0000:0000:0000:0000') || (tempAddress === '0000:0000:0000:0000:0000:0000:0000:0001') || (tempAddress.substring(0, 2) === 'ff')) { return false; } return true; }; function getFullIpv6Address(strVAddress) { var j = 0; var m = 0; var asciiStr; var strLength; var str; var startAddress = []; var endAddress = []; var finalAddress = ''; var finalAddressArray = []; var lowerAddress; lowerAddress = strVAddress.toLowerCase(); var addrParts = lowerAddress.split('::'); if (addrParts.length === 2) { if (addrParts[0] !== '') { startAddress = parseIpv6Array(addrParts[0]); if (startAddress.length === 0) { return ''; } } if (addrParts[1] !== '') { endAddress = parseIpv6Array(addrParts[1]); if (endAddress.length === 0) { return ''; } for (var i = 0; i < endAddress.length; i++) { strLength = endAddress[i].toString().length; str = endAddress[i].toString(); if (strLength > 4) { return ''; } for (m = 0; m < strLength; m++) { asciiStr = str.charCodeAt(m); if (!((asciiStr >= 48 && asciiStr <= 57) || (asciiStr >= 97 && asciiStr <= 102))) { return ''; } } } } if (startAddress.length + endAddress.length >= 8) { return ''; } } else if (addrParts.length === 1) { startAddress = parseIpv6Array(addrParts[0]); if (startAddress.length !== 8) { return ''; } } else { return ''; } for (i = 0; i < startAddress.length; i++) { strLength = startAddress[i].toString().length; str = startAddress[i].toString(); if (strLength > 4) { return ''; } for (m = 0; m < strLength; m++) { asciiStr = str.charCodeAt(m); if (!((asciiStr >= 48 && asciiStr <= 57) || (asciiStr >= 97 && asciiStr <= 102))) { return ''; } } finalAddress += startAddress[i]; if (i !== 7) { finalAddress += ':'; } } for (; i < 8 - endAddress.length; i++) { finalAddress += '0000'; if (i !== 7) { finalAddress += ':'; } } for (; i < 8; i++) { finalAddress += endAddress[i - (8 - endAddress.length)]; if (i !== 7) { finalAddress += ':'; } } finalAddressArray = finalAddress.split(':'); for (j = 0; j < 8; j++) { var onePart = finalAddressArray[j]; if (onePart.length !== 4) { switch (onePart.length) { case 1: finalAddressArray[j] = '000' + finalAddressArray[j]; break; case 2: finalAddressArray[j] = '00' + finalAddressArray[j]; break; case 3: finalAddressArray[j] = '0' + finalAddressArray[j]; break; default: break; } } } return finalAddressArray.join(':'); function parseIpv6Array(strParseAddress) { return strParseAddress.split(':'); } } VALIDATION.isDigital = function isDigital(str) { return !(str.match(/^[0-9]+$/) === null); }; VALIDATION.isIPv6 = function isIPv6(strIP) { var ipv6AddrParts = strIP.split(':'); if (ipv6AddrParts.length <= 1) { return false; } var lastParts = ipv6AddrParts[ipv6AddrParts.length - 1]; if (lastParts.indexOf('/') !== -1) { var ipv6LastPart = lastParts.split('/'); if (ipv6LastPart.length !== 2) { return false; } if (ipv6LastPart[0] !== '') { for (var j = 0; j < 2; j++) { if (isNaN(ipv6LastPart[j]) === true) { return false; } if (ipv6LastPart[j] === '') { return false; } } if (parseInt(ipv6LastPart[0], 16) > parseInt(ipv6LastPart[1], 16)) { return false; } if (parseInt(ipv6LastPart[1], 10) > 128 || parseInt(ipv6LastPart[1], 10) < 0) { return false; } strIP = ''; for (var i = 0; i < ipv6AddrParts.length - 1; i++) { strIP += ipv6AddrParts[i] + ':'; } strIP += '0001'; } else { if (parseInt(ipv6LastPart[1], 10) > 128 || parseInt(ipv6LastPart[1], 10) < 0) { return false; } if (ipv6LastPart[1] === '') { return false; } if (isNaN(ipv6LastPart[1]) === true) { return false; } strIP = ''; for (i = 0; i < ipv6AddrParts.length - 1; i++) { strIP += ipv6AddrParts[i] + ':'; } } } var strlen = strIP.length - 2; if (strlen >= 0 && strIP.lastIndexOf('::') === strlen) { strIP = strIP + '0000'; } return strIP.match(/:/g).length <= 7 && (/::/.test(strIP) ? /^([\da-f]{1,4}(:|::)){1,6}[\da-f]{1,4}$/i.test(strIP) : /^([\da-f]{1,4}:){7}[\da-f]{1,4}$/i.test(strIP)); }; VALIDATION.obverseMask = function (ip, mask) { var obverseMaskAndIp = ''; var obvMask = ''; var ipAddr = ip.split('.'); var subMask = mask.split('.'); for (var i = 0; i < 4; i++) { obverseMaskAndIp += (255 - Number(subMask[i])) & Number(ipAddr[i]); obverseMaskAndIp = obverseMaskAndIp + '.'; obvMask += 255 - (Number(subMask[i])); obvMask = obvMask + '.'; } obverseMaskAndIp = obverseMaskAndIp.substring(0, obverseMaskAndIp.length - 1); obvMask = obvMask.substring(0, obvMask.length - 1); if (obverseMaskAndIp === '0.0.0.0' || obverseMaskAndIp === obvMask) { return false; } return true; }; VALIDATION.isValidMask = function (mask) { var i = 0; var num = 0; var zeroBitPos = 0; var oneBitPos = 0; var zeroBitExisted = false; if (mask === '0.0.0.0') { return false; } if (mask === '255.255.255.255' || mask === '255.255.255.254') { return false; } var maskParts = mask.split('.'); if (maskParts.length !== 4) { return false; } for (i = 0; i < 4; i++) { if (isNaN(maskParts[i]) === true) { return false; } if (maskParts[i] === '') { return false; } if (maskParts[i].indexOf(' ') !== -1) { return false; } if ((maskParts[i].indexOf('0') === 0) && (maskParts[i].length !== 1)) { return false; } num = parseInt(maskParts[i], 10); if (num < 0 || num > 255) { return false; } if (zeroBitExisted === true && num !== 0) { return false; } zeroBitPos = getLeftMostZeroBitPos(num); oneBitPos = getRightMostOneBitPos(num); if (zeroBitPos < oneBitPos) { return false; } if (zeroBitPos < 8) { zeroBitExisted = true; } } function getLeftMostZeroBitPos(iputnum) { var j = 0; var numArr = [128, 64, 32, 16, 8, 4, 2, 1]; for (j = 0; j < numArr.length; j++) { if ((iputnum & numArr[j]) === 0) { return j; } } return numArr.length; } function getRightMostOneBitPos(iputnum) { var j = 0; var numArr = [1, 2, 4, 8, 16, 32, 64, 128]; for (j = 0; j < numArr.length; j++) { if (((iputnum & numArr[j]) >> j) === 1) { return (numArr.length - j - 1); } } return -1; } return true; }; function IsDigital(str) { return !(str.match(/^[0-9]+$/) === null); } function check_port(port) { if (!IsDigital(port)) { return false; } if (port < 1 || port > 65535) { return false; } return true; } function is_ValidUrl(url) { var result = url.match('^[https:\/]*([^\/]*)'); if (result[1]) { var domain = result[1].match('^([A-Za-z0-9-_]+\.){1,}([A-Za-z]+)$'); try { return domain[0]; } catch (e) { } ; } return false; } function reSetLineHeightForTable(pageName, lineNum, maxLineHeight) { var someLine = $('.' + pageName + '_item'); if (maxLineHeight > 96) { someLine.eq(lineNum).children().removeClass('ip_filter_tb'); someLine.eq(lineNum).children().removeClass('ip_filter_tb_max'); someLine.eq(lineNum).children().addClass('special_app_tb_max'); someLine.eq(lineNum).css('height', '240px'); } else if (maxLineHeight > 50) { someLine.eq(lineNum).children().removeClass('ip_filter_tb'); someLine.eq(lineNum).children().addClass('ip_filter_tb_max'); someLine.eq(lineNum).css('height', '96px'); } else { } } function showTipInBridgeMode(disableAreaId) { var BridgeModeSwitch = EMUI.ObjController.extend({ objName: 'security/bridgemode' }); var voipPageArr = ['serverbasic', 'sipbasic', 'speeddial', 'voiceprofile', 'advancecodec', 'voiceadvanced']; var tr069PageArr = ['tr069settings', 'tr069profile', 'tr111settings']; var videoPageArr = ['video']; var currentHash = window.location.hash.substring(1); BridgeModeSwitch.load(null, false); $('.bridgemode_tip_info').length !== 0 && $('.bridgemode_tip_info').remove(); if (BridgeModeSwitch.content && BridgeModeSwitch.content.response && BridgeModeSwitch.content.response.bridgemode === '1') { GLOBAL.isBridgeModeOpen = true; if ((($.inArray(currentHash, voipPageArr) > -1) && BridgeModeSwitch.content.response.voiceshareinternet === '0') || (($.inArray(currentHash, tr069PageArr) > -1) && BridgeModeSwitch.content.response.cwmpshareinternet === '0') || (($.inArray(currentHash, videoPageArr) > -1) && BridgeModeSwitch.content.response.iptvshareinternet === '0')) { $('#' + disableAreaId).show(); return false; } var bridgeModeTip = '
' + '
' + '
' + '
'; $('#' + disableAreaId).hide(); $('#' + disableAreaId).secureAfter(bridgeModeTip, null); EMUI.LanguageController.registerLanguageEx('bridgemode_common_tip', 'IDS_system_bridge_mode_warning', '%l', 'menu.bridgemode', '#bridgemode'); EMUI.LanguageController.transLangEx(); return true; } $('#' + disableAreaId).show(); GLOBAL.isBridgeModeOpen = false; return false; } function showTipInClat(pageName) { if (GLOBAL.modules.lan_ipmodeswitch_enabled === '1') { EMUI.clatSwitchController.load(null, false); var clatArr = ['lanipfilter', 'virtualserver', 'specialapplication', 'dmzsettings', 'sipalgsettings', 'upnp', 'pcp', 'bridgemode', 'vpnsettings', 'nat', 'remotehttpsaccess', 'ddns']; var currentHash = window.location.hash.substring(1); var clat_notice_lang_id = ''; var clatTip = '' + '
' + '
'; $('.bridgemode_tip_info').length !== 0 && $('.bridgemode_tip_info').remove(); if (GLOBAL.ipmode === '1') { if ((($.inArray(currentHash, clatArr) > -1) && GLOBAL.ipmode !== '1')) { $('#' + pageName).show(); return false; } if (currentHash === 'firewallswitch' && GLOBAL.config.menu_v2.advanceset.security.lanipfilter === 'lanipfilter') { $('#' + pageName).show(); $('#' + pageName).secureBefore(clatTip, null); clat_notice_lang_id = 'iptype_clat_on_related_firwallswitch_page_message'; } else if (currentHash === 'firewallswitch' && GLOBAL.config.menu_v2.advanceset.security.lanipfilter === undefined) { $('#' + pageName).show(); } else { $('#' + pageName).hide(); $('#' + pageName).secureAfter(clatTip, null); clat_notice_lang_id = 'iptype_clat_on_related_page_message'; } if (currentHash === 'acl') { $('#' + pageName).show(); $('#' + pageName).secureBefore(clatTip, null); clat_notice_lang_id = 'iptype_acl_clat_notice_message'; } EMUI.LanguageController.registerLanguageEx('clat_common_tip', clat_notice_lang_id, '%l', 'menu.iptype', '#iptype'); EMUI.LanguageController.transLangEx(); return true; } if (GLOBAL.ipmode === '2') { if (currentHash === 'vpnsettings' || currentHash === 'staticdns' || currentHash === 'acl') { $('#' + pageName).show(); $('#' + pageName).secureBefore(clatTip, null); EMUI.LanguageController.registerLanguageEx('clat_common_tip', 'iptype_double_stack_ipv4_notice_message', '%l', 'menu.iptype', '#iptype'); EMUI.LanguageController.transLangEx(); return true; } } $('#' + pageName).show(); return false; } } function isHexString(str) { var constNum = { CHARCODE_A: 65, CHARCODE_F: 70, CHARCODE_a: 97, CHARCODE_f: 102, CHARCODE_0: 48, CHARCODE_9: 57 } for (var i = 0; i < str.length; i++) { var c = str.charCodeAt(i); if (!((c >= constNum.CHARCODE_0 && c <= constNum.CHARCODE_9) || (c >= constNum.CHARCODE_A && c <= constNum.CHARCODE_F) || (c >= constNum.CHARCODE_a && c <= constNum.CHARCODE_f) )) { return false; } } return true; } function addSelectItem(id, value) { if ($('#' + id).length === 0) { return; } var fatherid = id; if ($('#' + fatherid + '_items').length !== 0) { fatherid = fatherid + '_items'; } var index = $('#' + fatherid).children().length + 1; var itemid = id + '_item_' + index; var templateData = { itemid: itemid, option: value.option, langid: value.langid, text: value.text }; var itemhtml = '
{{text}}
'; $('#' + fatherid).secureAppend(itemhtml, templateData); } function clearSelectItme(id) { $('#' + id).empty(); } Date.prototype.Format = function (format) { var o = { 'M+': this.getMonth() + 1, 'd+': this.getDate(), 'H+': this.getHours(), 'm+': this.getMinutes(), 's+': this.getSeconds() }; var k; if (/(y+)/.test(format)) { format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length)); } for (k in o) { if (new RegExp('(' + k + ')').test(format)) { format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)); } } return format; } function addSelectedBorder(obj) { var curElement = $(obj); var curClassArray = curElement.parent().attr('class').split(' '); var curClass = ''; for (var i = 0; i < curClassArray.length; i++) { if (curClassArray[i].indexOf('input') !== -1 && curClassArray[i].indexOf('_selected') === -1) { curClass = curClassArray[i]; } }; if (curClass) { curElement.parent().removeClass(curClass).addClass(curClass + '_selected'); } } function hideSelectedBorder(obj) { var curElement = $(obj); var curClassArray = curElement.parent().attr('class').split(' '); var curClass = ''; for (var i = 0; i < curClassArray.length; i++) { if (curClassArray[i].indexOf('input') !== -1) { curClass = curClassArray[i]; } }; if (curClass) { curElement.parent().removeClass(curClass).addClass(curClass.substr(0, curClass.indexOf('_selected'))); } } function checkServerAddress(url) { var index = ''; let rgExp = /^((https|http):\/\/)[a-zA-Z0-9\.\-\[\]\:]+[\:\/]?/; if (!rgExp.test(url)) { return false; } url = url.replace(/((https|http):\/\/)/, ''); if (/\//.test(url)) { index = url.indexOf('/'); var path = url.substring(index + 1); url = url.substring(0, index); for (var i = 0; i < path.length; i++) { if (!(path.charCodeAt(i) >= 32 && path.charCodeAt(i) <= 126)) { return false; } } } var sumColon = 0; for (var i = 0; i < url.length; i++) { if (/\:/.test(url[i])) { sumColon++; } } if (sumColon > 1) { var ipv6 = url; index = url.indexOf(']'); if (index !== -1) { var port = url.substring(index + 2); ipv6 = url.substring(1, index - 1); if (!checkPort(port)) { return false; } } if (!checkIpv6(ipv6)) { return false; } } else { var ipv4Domain = url; if (sumColon === 1) { index = url.indexOf(':'); var port = url.substring(index + 1); if (!checkPort(port)) { return false; } ipv4Domain = url.substring(0, index); } if (/^[0-9]+[0-9\.]+[0-9]+$/.test(ipv4Domain)) { if (!checkIpv4(ipv4Domain)) { return false; } } else { if (!checkDomainName(ipv4Domain)) { return false; } } } function checkPort(port) { if (!(0 < port && port <= 65535) || /^0\d+/.test(port)) { return false; } return true; } function checkIpv6(ip) { return VALIDATION.isIPv6(ip) } return true; } function checkIpv4(ip) { if (/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(ip)) { return VALIDATION.isValidStaticIpAddress(ip); } return false; } function solvePlaceholderSupport() { if (!isSupportPlaceholder()) { $('input[placeholder]').each(function () { var pwdField = $(this); var pwdVal = pwdField.attr('placeholder'); var pwdClass = pwdField.attr('class'); var pwLangid = pwdField.attr('lang-id'); var pwdId = pwdField.attr('id'); if (typeof pwdVal !== 'undefined') { pwdField.after(''); var pwdPlaceholder = $('#' + pwdId + '1'); pwdPlaceholder.addClass(pwdClass); pwdPlaceholder.attr('value', pwdVal); pwdPlaceholder.attr('lang-id', pwLangid); if (pwdField.val() == '') { pwdPlaceholder.show(); pwdField.hide(); } else { pwdPlaceholder.hide(); pwdField.show(); } pwdPlaceholder.focus(function () { pwdPlaceholder.hide(); pwdField.show(); pwdField.focus(); }); pwdField.blur(function () { if (pwdField.val() == '') { pwdPlaceholder.show(); pwdField.hide(); } }); } }); } } function isSupportPlaceholder() { var input = document.createElement('input'); return 'placeholder' in input; } function checkDomainName(urlDomain) { if (/^[a-zA-Z0-9].*[a-zA-Z0-9]$/.test(urlDomain)) { for (var i = 0; i < urlDomain.length; i++) { if (!(/[a-zA-Z0-9\.\/\-]/.test(urlDomain[i]))) { return false; } } if ((urlDomain.indexOf('.') === -1 && urlDomain !== '') || (urlDomain.indexOf('..') !== -1)) { return false; } return true; } return false; } var language_cultures = {}; language_cultures["zh_cn"] = { numberFormat: '.', timeFormat: 'yyyy/M/d H:mm:ss' }; language_cultures["zh_hk"] = { numberFormat: '.', timeFormat: 'd/M/yyyy H:mm:ss' }; language_cultures["zh_tw"] = { numberFormat: '.', timeFormat: 'yyyy/M/d HH:mm:ss' }; function formatNumberAndTime(value, culture) { culture = culture.replace(/-/, '_'); if (value instanceof Date) { value = formatDate(value, culture); } else if (typeof value === "number") { value = formatNumber(value, culture); } return value; } function formatDate(value, culture) { var ret = [], format = language_cultures[culture].timeFormat; var tokenRegExp = /\/|dd|d|MM|M|yyyy|hh|h|HH|H|mm|ss/g; for (; ;) { var index = tokenRegExp.lastIndex, array = tokenRegExp.exec(format); if (!array) { break; } var preMatch = format.slice(index, array ? array.index : format.length); ret.push(preMatch); var current = array[0], clength = current.length; switch (current) { case "d": case "dd": var days = value.getDate(); ret.push( padZeros(days, clength) ); break; case "M": case "MM": var months = value.getMonth() + 1; ret.push( padZeros(months, clength) ); break; case "yyyy": var years = value.getFullYear(); ret.push( padZeros(years, clength) ); break; case "h": case "hh": var hours = value.getHours() % 12; if (hours === 0) hours = 12; ret.push( padZeros(hours, clength) ); break; case "H": case "HH": ret.push( padZeros(value.getHours(), clength) ); break; case "mm": ret.push( padZeros(value.getMinutes(), clength) ); break; case "ss": ret.push( padZeros(value.getSeconds(), clength) ); break; case "/": ret.push("/"); break; default: break; } } return ret.join(""); } function formatNumber(value, culture) { var ret = "", numberString = value + "", format = language_cultures[culture].numberFormat; if (format == '.') { ret = numberString; } else { ret = numberString.replace('.', format); } return ret; } function padZeros(num, c) { var zeros = ["0", "00", "000"]; var r, s = num + ""; if (c > 1 && s.length < c) { r = (zeros[c - 2] + s); return r.substr(r.length - c, c); } else { r = s; } return r; } function formatFloat(src, pos) { return Math.round(src * Math.pow(10, pos)) / Math.pow(10, pos); } function createSubFolderTree(objId) { if ($('#' + objId).hasClass('lastExpandable')) { $('#' + objId).addClass('collapsable'); $('#' + objId).removeClass('expandable'); $('#' + objId).addClass('lastCollapsable'); $('#' + objId).removeClass('lastExpandable'); $('#' + objId).children('div').addClass('collapsable-hitarea'); $('#' + objId).children('div').removeClass('expandable-hitarea'); $('#' + objId).addClass('loaded_sublist'); } else { $('#' + objId).addClass('collapsable'); $('#' + objId).removeClass('expandable'); $('#' + objId).children('div').addClass('collapsable-hitarea'); $('#' + objId).children('div').removeClass('expandable-hitarea'); $('#' + objId).addClass('loaded_sublist'); } } function showSubFolderTree(objId) { if ($('#' + objId).hasClass('lastExpandable')) { $('#' + objId).addClass('collapsable'); $('#' + objId).removeClass('expandable'); $('#' + objId).addClass('lastCollapsable'); $('#' + objId).removeClass('lastExpandable'); $('#' + objId).children('div').addClass('collapsable-hitarea'); $('#' + objId).children('div').removeClass('expandable-hitarea'); $('#' + objId).children('ul').css({ 'display': 'block' }); } else { $('#' + objId).addClass('collapsable'); $('#' + objId).removeClass('expandable'); $('#' + objId).children('div').addClass('collapsable-hitarea'); $('#' + objId).children('div').removeClass('expandable-hitarea'); $('#' + objId).children('ul').css({ 'display': 'block' }); } } function hideSubFolderTree(objId) { if ($('#' + objId).hasClass('lastCollapsable')) { $('#' + objId).addClass('expandable'); $('#' + objId).removeClass('collapsable'); $('#' + objId).addClass('lastExpandable'); $('#' + objId).removeClass('lastCollapsable'); $('#' + objId).children('div').addClass('expandable-hitarea'); $('#' + objId).children('div').removeClass('collapsable-hitarea'); $('#' + objId).children('ul').css({ 'display': 'none' }); } else { $('#' + objId).addClass('expandable'); $('#' + objId).removeClass('collapsable'); $('#' + objId).children('div').addClass('expandable-hitarea'); $('#' + objId).children('div').removeClass('collapsable-hitarea'); $('#' + objId).children('ul').css({ 'display': 'none' }); } } var singleComplexRule = { rules: function (count) { var self = this; var setName = self.lang2rule(); var str = self[setName](count); return str; }, lang2rule: function () { var self = this; var x = '1'; return 'set' + x; }, set1: function (count) { return 'other'; }, set2: function (count) { if (count === 1) { return 'one'; } else { return 'other'; } }, set2_1: function (count) { if (count === 0 || count === 1) { return 'one'; } else { return 'other'; } }, set2_2: function (count) { if (count % 10 === 1 && count !== 11) { return 'one'; } else { return 'other'; } }, set3: function (count) { if (Math.floor(count / 10) === 1) { return 'other'; } else if (count % 10 === 1) { return 'one'; } else if (count % 10 >= 2 || count % 10 <= 4) { return 'few'; } else { return 'other'; } }, set3_1: function (count) { if (count === 0) { return 'zero'; } else if (count % 10 === 1 && count !== 11) { return 'one'; } else { return 'other'; } }, set3_2: function (count) { if (count === 1) { return 'one'; } else if (count === 0 || count % 100 >= 1 || count % 100 <= 19) { return 'few'; } else { return 'other'; } }, set3_3: function (count) { if (count % 10 === 0 || Math.floor(count / 10) === 1) { return 'other'; } else if (count % 10 === 1) { return 'one'; } else { return 'few'; } }, set3_4: function (count) { if (count === 1) { return 'one'; } else if ((count % 10 >= 2 || count % 10 <= 4) && Math.floor(count / 10) !== 1) { return 'few'; } else { return 'many'; } }, set3_5: function (count) { if (count % 10 === 1 && count !== 11) { return 'one'; } else if ((count % 10 >= 2 || count % 10 <= 4) && Math.floor(count / 10) !== 1) { return 'other'; } else { return 'many'; } }, set3_6: function (count) { if (count % 10 === 1 && Math.floor(count / 10) !== 1) { return 'one'; } else if ((count % 10 >= 2 || count % 10 <= 4) && Math.floor(count / 10) !== 1) { return 'few'; } else { return 'many'; } }, set4: function (count) { if (count === 1) { return 'one'; } else if (count >= 2 || count <= 4) { return 'few'; } else { return 'other'; } }, set4_1: function (count) { if (count === 1) { return 'one'; } else if (count === 2) { return 'two'; } else if (count % 10 === 0 && count !== 0 && count !== 10) { return 'many'; } else { return 'other'; } }, set4_2: function (count) { if (count === 1) { return 'one'; } else if (count === 0 || count % 100 >= 2 || count % 100 <= 10) { return 'few'; } else if (count % 100 >= 11 || count % 100 <= 19) { return 'many'; } else { return 'other'; } }, set4_3: function (count) { if (count % 100 === 1) { return 'one'; } else if (count % 100 === 2) { return 'two'; } else if (count % 100 === 3 || count % 100 === 4) { return 'few'; } else { return 'other'; } }, set6: function (count) { if (count === 0) { return 'zero'; } else if (count === 1) { return 'one'; } else if (count === 2) { return 'two'; } else if (count % 100 >= 3 || count % 100 <= 10) { return 'few'; } else if (count % 100 >= 11 || count % 100 <= 99) { return 'many'; } else { return 'other'; } } }