zioinfo-mail/workspace/zioinfo-esn/restapi_lgit/target/ROOT/js/common.js
DESKTOP-TKLFCPR\ython 371f77e7ab
Some checks failed
GUARDiA CI / Python Lint & Import Test (push) Has been cancelled
GUARDiA CI / Validate Install Scripts (push) Has been cancelled
GUARDiA CI / PR Validation Summary (push) Has been cancelled
fix(enhance-v4): APK QR 버그 수정 + 웹메일 라우터 수정
2026-06-02 20:23:55 +09:00

706 lines
26 KiB
JavaScript

// jquery validator
jQuery.validator.setDefaults({
onfocusout: false
, onkeyup: false
, onclick: false
, showErrors: function(errorMap, errorList) {
if (errorList && errorList[0]) {
//alert(errorList[0].message);
alertify.error(errorList[0].message);
$('#'+ errorList[0].element.id).focus();
//alertify.alert('Error', errorList[0].message);
}
}
});
function HidePopupTagWindow(){
tag_set_rejoin.hide();
tag_stock_display.hide();
tag_set_attribute.hide();
tag_reserved_image.hide();
tag_matching_barcode.hide();
tag_set_nfc.hide();
tag_get_gateway_list.hide();
tag_display_page.hide();
}
function HidePopupGatewayWindow(){
gateway_window.hide();
}
function HidePopupUserWindow(){
user_window.hide();
user_passwd_window.hide();
}
function fnGetDateTime() {
var d = new Date();
return ''+ d.getFullYear() + d.getMonth() + d.getDate() + d.getHours() + d.getMinutes() + d.getSeconds() + d.getMilliseconds();
}
function fnGetCookie( cookieName ) {
var search = cookieName + "=";
var cookie = document.cookie;
if( cookie.length > 0 ) {
startIndex = cookie.indexOf( cookieName );
if( startIndex != -1 ) {
startIndex += cookieName.length;
endIndex = cookie.indexOf( ";", startIndex );
if( endIndex == -1) endIndex = cookie.length;
return unescape( cookie.substring( startIndex + 1, endIndex ) );
} else {
return false;
}
} else {
return false;
}
}
function fnSetCookie( cookieName, cookieValue ) {
var days = 365;
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
document.cookie = cookieName + "=" + escape( cookieValue ) + ";" + expires + "; path=/;";
}
//browser detect
var browser = (function() {
var s = navigator.userAgent.toLowerCase();
var match = /(webkit)[ \/](\w.]+)/.exec(s) ||
/(opera)(?:.*version)?[ \/](\w.]+)/.exec(s) ||
/(msie) ([\w.]+)/.exec(s) ||
/(mozilla)(?:.*? rv:([\w.]+))?/.exec(s) ||
[];
return { name: match[1] || "", version: match[2] || "0" };
}());
(function($) {
$.fn.emptySelect = function(n) {
return this.each(function() {
if(n == 'undefined' || n == undefined) n = 1;
if(this.tagName == 'SELECT') {
this.options.length = n;
}
});
}
$.fn.loadSelect = function(json, sIdName, sValueName, iDepth) {
return this.emptySelect(iDepth).each(function() {
if(this.tagName == 'SELECT') {
var selectElement = this;
$.each(json, function(i, item) {
var sId = item[sIdName];
var sValue = item[sValueName];
var option = new Option(sValue, sId);
if(browser.name == 'msie') {
selectElement.add(option);
} else {
selectElement.add(option, null);
}
});
}
});
}
$.fn.loadCategoryTotal = function(json, sIdName, sValueName, iDepth) {
return this.emptySelect(iDepth).each(function() {
if(this.tagName == 'SELECT') {
var selectElement = this;
var totaloption = new Option(locale.full_view, '');
if(browser.name == 'msie') {
selectElement.add(totaloption);
} else {
selectElement.add(totaloption, null);
}
var values = [];
var cnt = 0;
$.each(json, function(i, item) {
var sValue = item[sValueName];
if(sValue != '') {
values[cnt] = sValue;
cnt++;
}
});
var uniqueValues = [];
$.each(values, function(i, el){
if($.inArray(el, uniqueValues) === -1) uniqueValues.push(el);
});
uniqueValues.sort(function(a, b) {
return a<b ?-1 : a>b ? 1:0;
});
$.each(uniqueValues, function(i, item) {
var option = new Option(uniqueValues[i], uniqueValues[i]);
if(browser.name == 'msie') {
selectElement.add(option);
} else {
selectElement.add(option, null);
}
});
}
});
}
$.fn.loadSelectTotal = function(json, sIdName, sValueName, iDepth) {
return this.emptySelect(iDepth).each(function() {
if(this.tagName == 'SELECT') {
var selectElement = this;
var totaloption = new Option(locale.full_view, '');
if(browser.name == 'msie') {
selectElement.add(totaloption);
} else {
selectElement.add(totaloption, null);
}
$.each(json, function(i, item) {
var sId = item[sIdName];
var sValue = item[sValueName];
var option = new Option(sValue, sId);
if(browser.name == 'msie') {
selectElement.add(option);
} else {
selectElement.add(option, null);
}
});
}
});
}
})(jQuery);
function fnExportToExcelFull(col_list, row_list, excel_name, type) {
var htmls = "";
var SaveFileName = excel_name + "." + type;
var rows = row_list;
var cols = col_list.listColumn();
htmls += '<table border="1">';
htmls += '<tr>';
for(var j = 0; j < cols.length; j ++) {
htmls += ' <th>'+ cols[j].element.innerText +'</th>';
}
htmls += '</tr>';
for(var i = 0; i < rows.length; i ++) {
htmls += '<tr>';
switch (excel_name) {
case locale.excel_productlist_fname :
for(var j=0; j<rows[i].length; j++) {
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i][j] +'</td>';
}
break;
case locale.excel_taglist_fname :
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].no +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].device_id +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].type +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].version +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].state +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].battery_level +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].rf_version +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].current_download_page +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].image_state +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].currernt_control +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].fwupdate_state +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].gateway_name +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].template_name +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].imageUpdated_time +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].mcode +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].mname +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].mimage_page1 +'</td>';
break;
case locale.excel_product_taglist_fname :
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].no +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].filter_field_value +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].category1 +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].category2 +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].category3 +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].mcode +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].mname +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].custrom +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].device_id +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].state +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].type +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].mimage_page1 +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].battery_level +'</td>';
break;
case locale.excel_alarm_his_list_fname :
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].time +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].type +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].device_id +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].state +'</td>';
break;
case locale.excel_tag_his_list_fname :
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].start_time +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].time +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].device_id +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].type +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].gateway +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].page_number +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].control_code +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].result +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].comment +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].index +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].retry +'</td>';
break;
case locale.excel_product_his_list_fname :
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].time +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].key +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].work +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].comment +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].pos_file +'</td>';
break;
case locale.excel_pos_his_list_fname :
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].time +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].pos_file +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].result +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].comment +'</td>';
break;
case locale.menu_pos_tag_status :
if(rows[i].pre_trans_id != rows[i].trans_id) {
htmls += ' <td rowspan="' + rows[i].row_cnt + '" style="mso-number-format: \'@\';">'+ rows[i].trans_id +'</td>';
}
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].page_number +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].modified_count +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].target_tag +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].in_progress +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].at_gateway +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].success +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].error +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].cancelled +'</td>';
break;
case locale.excel_matching_his_list_fname :
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].time +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].mcode +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].mname +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].device_id +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].contents +'</td>';
htmls += ' <td style="mso-number-format: \'@\';">'+ rows[i].user_id +'</td>';
break;
}
htmls += '</tr> \n';
}
htmls += '</table>';
var link = document.createElement("a");
var blob = new Blob(['\ufeff' + htmls], { encoding:"UTF-8", type: 'text/csv;charset=UTF-8;' });
if (navigator.msSaveBlob) {
navigator.msSaveBlob(blob, SaveFileName);
} else {
if (link.download !== undefined) {
var url = URL.createObjectURL(blob);
link.setAttribute("href", url);
link.setAttribute("download", SaveFileName);
link.style.visibility = 'hidden';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
}
}
function fnExportToExcel(table_name, excel_name) {
var htmls = "";
var uri = 'data:application/vnd.ms-excel;base64,';
var template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>';
var template = '';
var base64 = function(s) {
return window.btoa(unescape(encodeURIComponent(s)))
};
var format = function(s, c) {
return s.replace(/{(\w+)}/g, function(m, p) {
return c[p];
})
};
var rows = table_name.listData();
var cols = table_name.listColumn();
htmls += '<table border="1">';
htmls += '<tr>';
for(var j = 0; j < cols.length; j ++) {
htmls += ' <th>'+ cols[j].element.innerText +'</th>';
}
htmls += '</tr>';
for(var i = 0; i < rows.length; i ++) {
htmls += '<tr>';
for(var j = 0; j < cols.length; j ++) {
htmls += ' <td style="text">&#8203;'+ cols[j].list[i].innerText +'</td>';
}
htmls += '</tr>';
}
htmls += '</table>';
var ctx = {
worksheet : 'Worksheet',
table : htmls
}
var link = document.createElement("a");
var SaveFileName = excel_name + ".xls";
var ua = window.navigator.userAgent;
var msie = ua.indexOf("MSIE ");
if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) // If Internet Explorer
{
var oWin = window.open("about:blank",'_blank', 'toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no,left=10000, top=10000, width=0, height=0, visible=none', '');
//var oWin = window.open("about:blank", "_blank");
//oWin.document.write(cssText);
oWin.document.write(htmls);
oWin.document.close();
// success = true, false
var success = oWin.document.execCommand('SaveAs', false, SaveFileName);
oWin.close();
}
else
{
link.download = SaveFileName;
link.href = uri + base64(format(template, ctx));
link.click();
}
// 스타일 변경 수동 적용 가능
/*var cssText = '<style type="text/css">';
cssText += '.aaaa {font-size:11px; color:#333333; border:2px solid black; padding:10px 5px 8px 5px; background-color:#F3F5E0;}';
cssText += '</style>';
*/
/*
// **********************
// 방법 2
// 방법 2
if (document.all.excelExportFrame == null) // 프레임이 없으면 만들자~!
{
var excelFrame = document.createElement("iframe");
excelFrame.id = "excelExportFrame";
excelFrame.name = "excelExportFrame";
excelFrame.position = "absolute";
excelFrame.style.zIndex = -1;
excelFrame.style.visibility = "hidden";
excelFrame.style.top = "-10px";
excelFrame.style.left = "-10px";
excelFrame.style.height = "0px";
excelFrame.style.width = "0px";
document.body.appendChild(excelFrame); // 아이프레임을 현재 문서에 쑤셔넣고..
}
var frmTarget = document.all.excelExportFrame.contentWindow.document; // 해당 아이프레임의 문서에 접근
if (!SaveFileName) {
SaveFileName = 'test.xls';
}
frmTarget.open("text/html", "replace");
frmTarget.write(htmls);
frmTarget.close();
frmTarget.charset="UTF-8"; // 자 코드셋을 원하는걸로 맞추시고..
//frmTarget.charset = "euc-kr";
//frmTarget.focus();
*/
/*
var htmls = "";
var uri = 'data:application/vnd.ms-excel;base64,';
var template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>';
var base64 = function(s) {
return window.btoa(unescape(encodeURIComponent(s)))
};
var format = function(s, c) {
return s.replace(/{(\w+)}/g, function(m, p) {
return c[p];
})
};
var rows = table_name.listData();
var cols = table_name.listColumn();
htmls += '<table border="1">';
htmls += '<tr>';
for(var j = 0; j < cols.length; j ++) {
htmls += ' <th>'+ cols[j].element.innerText +'</th>';
}
htmls += '</tr>';
for(var i = 0; i < rows.length; i ++) {
htmls += '<tr>';
for(var j = 0; j < cols.length; j ++) {
htmls += ' <td style="text">&#8203;'+ cols[j].list[i].innerText +'</td>';
}
htmls += '</tr>';
}
htmls += '</table>';
var ctx = {
worksheet : 'Worksheet',
table : htmls
}
var link = document.createElement("a");
link.download = excel_name +".xls";
link.href = uri + base64(format(template, ctx));
link.click();
/*var ua = window.navigator.userAgent;
var msie = ua.indexOf("MSIE ");
if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) // If Internet Explorer
{
link.download = excel_name +".xls";
link.href = uri + base64(format(template, ctx));
link.click();
}
else
{
link.download = excel_name +".xls";
link.href = uri + base64(format(template, ctx));
link.click();
*/
}
function fnGetCurrentDate() {
var d = new Date()
, year = d.getFullYear()
, month = '0'+ (d.getMonth() + 1)
, day = '0'+ d.getDate();
month = month.substring(month.length - 2, month.length);
day = day.substring(day.length - 2, day.length);
return year +'-'+ month +'-'+ day +'_00:00:00';
}
function fnGetCurrentDateTime() {
var d = new Date()
, year = d.getFullYear()
, month = '0'+ (d.getMonth() + 1)
, day = '0'+ d.getDate()
, hour = '0'+ d.getHours()
, minute = '0'+ d.getMinutes()
, second = '0'+ d.getSeconds();
month = month.substring(month.length - 2, month.length);
day = day.substring(day.length - 2, day.length);
hour = hour.substring(hour.length - 2, hour.length);
minute = minute.substring(minute.length - 2, minute.length);
second = second.substring(second.length - 2, second.length);
return year +'-'+ month +'-'+ day +'_'+ hour +':'+ minute +':'+ second;
}
function fnGetNextDate() {
var today = new Date();
var d = new Date(today.getTime() + (24 * 60 * 60 * 1000))
, year = d.getFullYear()
, month = '0'+ (d.getMonth() + 1)
, day = '0'+ d.getDate();
month = month.substring(month.length - 2, month.length);
day = day.substring(day.length - 2, day.length);
return year +'-'+ month +'-'+ day +'_00:00:00';
}
function fnGetNextDayDateTime() {
var today = new Date();
var d = new Date(today.getTime() + (24 * 60 * 60 * 1000))
, year = d.getFullYear()
, month = '0'+ (d.getMonth() + 1)
, day = '0'+ d.getDate()
, hour = '0'+ d.getHours()
, minute = '0'+ d.getMinutes()
, second = '0'+ d.getSeconds();
month = month.substring(month.length - 2, month.length);
day = day.substring(day.length - 2, day.length);
hour = hour.substring(hour.length - 2, hour.length);
minute = minute.substring(minute.length - 2, minute.length);
second = second.substring(second.length - 2, second.length);
return year +'-'+ month +'-'+ day +'_'+ hour +':'+ minute +':'+ second;
}
function fnCheckIP(strIP) {
var expUrl = /^(?!0)(23[0-3]|2[0-3][0-3]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
return expUrl.test(strIP);
}
function fnCheckHex(strHex) {
var expHex = /^([0-9A-Fa-f]{10})$/;
return expHex.test(strHex);
}
function fnCheckSSIDKor(strSSID) {
//alert(strSSID);
var expStr = /[ㄱ-ㅎ|ㅏ-ㅣ|가-힝]/;
return expStr.test(strSSID);
}
function fnCheckSSID(strSSID) {
//CvtStringSSID = strSSID.replace('[','');
//CvtStringSSID = CvtStringSSID.replace(']','');
//var expStr = /(([a-zA-Z0-9]|[!,@,#,$,%,^,&,*,?,_,~])|([!,@,#,$,%,^,&,*,?,_,~]|[a-zA-Z0-9]))$/;
//var expStr = /^[a-zA-Z\d!@.()#$%<>&|/^*_ +{}.,?~-]{1,}$/;
var expStr = /[`=\'"]/;
return expStr.test(strSSID);
}
function fnCheckPWD(strPWD) {
//CvtStringPwd = strPWD.replace('[','');
//CvtStringPwd = CvtStringPwd.replace(']','');
//var expStr = /^[a-zA-Z\d!@.()#$%<>&|/^*_ +{}.,?~-]{1,}$/;
var expStr = /[`=\'"]/;
return expStr.test(strPWD);
}
function fnCheckUserPWD(strPWD) {
var chkCnt = 0;
var isRst = false;
var expStr = /^.*(?=^.{10,}$)(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&+=]).*$/;
var expStr1 = /^.*(?=.*\d).*$/; // 숫자
var expStr2 = /^.*(?=.*[a-z]).*$/; // 소문자
var expStr3 = /^.*(?=.*[A-Z]).*$/; // 대문자
var expStr4 = /^.*(?=.*[!@#$%^&+=]).*$/; // 특수기호
var expStr5 = /^.*(?=.*[|]).*$/; // 특수기호
if(expStr1.test(strPWD)) chkCnt++;
if(expStr2.test(strPWD)) chkCnt++;
if(expStr3.test(strPWD)) chkCnt++;
if(expStr4.test(strPWD)) chkCnt++;
if(chkCnt > 1) isRst = true;
if(expStr5.test(strPWD)) isRst = false;
return isRst;
}
function fnCheckSystemApiPWD(strPWD) {
var chkCnt = 0;
var isRst = false;
var expStr = /^.*(?=^.{10,}$)(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&+=]).*$/;
var expStr1 = /^.*(?=.*\d).*$/; // 숫자
var expStr2 = /^.*(?=.*[a-z]).*$/; // 소문자
var expStr3 = /^.*(?=.*[A-Z]).*$/; // 대문자
var expStr4 = /^.*(?=.*[!@#$%^&+=]).*$/; // 특수기호
if(expStr1.test(strPWD)) chkCnt++;
if(expStr2.test(strPWD)) chkCnt++;
if(expStr3.test(strPWD)) chkCnt++;
if(expStr4.test(strPWD)) chkCnt++;
if(chkCnt == 4) isRst = true;
return isRst;
}
function fnCheckBase64(strString){
var expStr = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;
return expStr.test(strString);
}
function fnGetCategory1(page) {
$.ajax({
url: '/restapi/merchandise/query_category1'
, type: 'POST'
, data: {
}, success : function(json) {
if(page == "products") {
product_category_loading.hide();
}else if(page == "tag") {
tag_category_loading.hide();
}else if(page == "pnt") {
pnt_category_loading.hide();
}
if(json.result.toLowerCase() == "invalid_token") {
document.location.replace('./index.html');
}else if(json.result.toLowerCase() == "success") {
if(page == "products") {
$('#search_category1').loadCategoryTotal(json.data, 'category1','category1', 0);
}else if(page == "tag") {
$('#tag_search_category1').loadCategoryTotal(json.data, 'category1','category1', 0);
}else if(page == "pnt") {
$('#pnt_search_category1').loadCategoryTotal(json.data, 'category1','category1', 0);
}
}
}, error:function(request,status,err){
if (request.status == 0) {
alertify.error(locale.server_not_run);
} else {
// alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+err);
alert(locale.service_error + "(" + request.status + ")");
}
}
});
}
function fnGetCategory2(page, cate1) {
$.ajax({
url: '/restapi/merchandise/query_category'
, type: 'POST'
, data: {
'category1': cate1
}, success : function(json) {
if(page == "products") {
product_category_loading.hide();
}else if(page == "tag") {
tag_category_loading.hide();
}else if(page == "pnt") {
pnt_category_loading.hide();
}
if(json.result.toLowerCase() == "invalid_token") {
document.location.replace('./index.html');
}else if(json.result.toLowerCase() == "success") {
if(page == "products") {
$('#search_category2').loadCategoryTotal(json.data, 'category2','category2', 0);
}else if(page == "tag") {
$('#tag_search_category2').loadCategoryTotal(json.data, 'category2','category2', 0);
}else if(page == "pnt") {
$('#pnt_search_category2').loadCategoryTotal(json.data, 'category2','category2', 0);
}
}
}, error:function(request,status,err){
if (request.status == 0) {
alertify.error(locale.server_not_run);
} else {
// alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+err);
alert(locale.service_error + "(" + request.status + ")");
}
}
});
}
function fnGetCategory3(page, cate1, cate2) {
$.ajax({
url: '/restapi/merchandise/query_category'
, type: 'POST'
, data: {
'category1': cate1
,'category2': cate2
}, success : function(json) {
if(page == "products") {
product_category_loading.hide();
}else if(page == "tag") {
tag_category_loading.hide();
}else if(page == "pnt") {
pnt_category_loading.hide();
}
if(json.result.toLowerCase() == "invalid_token") {
document.location.replace('./index.html');
}else if(json.result.toLowerCase() == "success") {
if(page == "products") {
$('#search_category3').loadCategoryTotal(json.data, 'category3','category3', 0);
}else if(page == "tag") {
$('#tag_search_category3').loadCategoryTotal(json.data, 'category3','category3', 0);
}else if(page == "pnt") {
$('#pnt_search_category3').loadCategoryTotal(json.data, 'category3','category3', 0);
}
}
}, error:function(request,status,err){
if (request.status == 0) {
alertify.error(locale.server_not_run);
} else {
// alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+err);
alert(locale.service_error + "(" + request.status + ")");
}
}
});
}
String.prototype.replaceAll = function(org, dest) {
return this.split(org).join(dest);
}