#!/bin/sh

. ./ajax_common

paui_vpath=""
query_string=""
page_args="?v=`date +%s`"

for obj in `echo "${QUERY_STRING}" | tr "&" " "`
do
	key=`echo ${obj} | cut -d"=" -f1`
	val=`echo ${obj} | cut -d"=" -f2`
	
	val="`${URLENCODE} -d ${val}`"
	val=`${FLOWEYE} iconv utf8togb2312 "${val}"`

	export CGI_${key}="${val}"

	query_string="${query_string}\"${key}\":\"${val}\","
done

if [ "${CGI_saaskey}" != "" ]; then
	paui_vpath="${CGI_saaspath}/VPATH_${CGI_saaskey}"
	page_args="${page_args}&saaskey=${CGI_saaskey}&saaspath=${CGI_saaspath}"
fi

pop_tilte=${CGI_pop_title}
page_path="/html/${CGI_pop_route}.html"
js_head="layui.use(function(){var \$ = layui.\$, util = layui.util,laytpl = layui.laytpl;"

if [ "${CGI_popup_from_ntm}" = "1" ]; then
	page_path="/html/App/ntm/${CGI_pop_route}.html"
	js_head="layui.use('ntmlog', function(){var \$ = layui.\$, util = layui.util,laytpl = layui.laytpl,ntmlog=layui.ntmlog;"
fi


printf "Content-type: text/html; charset=GB2312\r\n"
printf "Cache-Control: no-cache\r\n"
printf "\r\n"

awk '{gsub("\\t", "", $0); printf $0}' << EOF
<!DOCTYPE html>
<html>
<head>
<meta charset="gb2312">
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="expires" content="0" />
<title>${pop_tilte}</title>
<link rel="icon" type="image/png" href="${paui_vpath}/favicon.ico">
<link rel="stylesheet" href="${paui_vpath}/cgi-bin/common/page_loader${page_args}&file=laycss">
<link rel="stylesheet" href="${paui_vpath}/cgi-bin/common/page_loader${page_args}&file=paicon">
<link rel="stylesheet" href="${paui_vpath}/cgi-bin/common/page_loader${page_args}&file=pacss">
<script>
function getCookie(name)
{
	var ck = document.cookie.split(";");
	for (i = 0; i < ck.length; i++) {
		if (ck[i].indexOf(name+"=") != -1) {
			return ck[i].split("=")[1];
		}
	}
	return "";
};
var g_lang = getCookie("palang");
g_lang = ( g_lang != "ch" && g_lang != "en" ) ? "ch" : g_lang;
window.LAYUI_GLOBAL = {
	i18n: {
	locale: g_lang == "ch" ? 'zh-CN' : "en",
		messages: {
			'en': {
				code: {
					copy: 'Copy Code',
					copied: 'Copied',
					copyError: 'Copy Failed',
					maximize: 'Maximize',
					restore: 'Restore',
					preview: 'Preview in New Window'
				},
				colorpicker: {
					clear: 'Clear',
					confirm: 'Confirm'
				},
				dropdown: {
					noData: 'No Data Available'
				},
				flow: {
					loadMore: 'Load More',
					noMore: 'No More Data'
				},
				form: {
					select: {
						noData: 'No Data Available',
						noMatch: 'No Matching Data',
						placeholder: 'Please Select'
					},
					validateMessages: {
						required: 'This field is required',
						phone: 'Invalid phone number format',
						email: 'Invalid email format',
						url: 'Invalid URL format',
						number: 'Only numbers are allowed',
						date: 'Invalid date format',
						identity: 'Invalid ID card format'
					},
					verifyErrorPromptTitle: 'Prompt'
				},
				laydate: {
					months: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
					weeks: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
					time: ['Hour', 'Minute', 'Second'],
					literal: {
						year: 'Year'
					},
					selectDate: 'Select Date',
					selectTime: 'Select Time',
					startTime: 'Start Time',
					endTime: 'End Time',
					tools: {
						confirm: 'Confirm',
						clear: 'Clear',
						now: 'Now',
						reset: 'Reset'
					},
					rangeOrderPrompt: 'End time cannot be earlier than start time\nPlease reselect',
					invalidDatePrompt: 'Not within valid date or time range\n',
					formatErrorPrompt: 'Invalid date format\nMust follow:\n{format}\n',
					autoResetPrompt: 'Auto reset completed',
					preview: 'Currently Selected Result'
				},
				layer: {
					confirm: 'Confirm',
					cancel: 'Cancel',
					defaultTitle: 'Information',
					prompt: {
						InputLengthPrompt: 'Maximum {length} characters allowed'
					},
					photos: {
						noData: 'No Images',
						tools: {
							rotate: 'Rotate',
							scaleX: 'Flip Horizontal',
							zoomIn: 'Zoom In',
							zoomOut: 'Zoom Out',
							reset: 'Reset',
							close: 'Close'
						},
						viewPicture: 'View Original Image',
						urlError: {
							prompt: 'Current image URL is abnormal,\nContinue to view next image?',
							confirm: 'Next',
							cancel: 'Cancel'
						}
					}
				},
				laypage: {
					prev: 'Previous',
					next: 'Next',
					first: 'First',
					last: 'Last',
					total: 'Total {total} items',
					pagesize: 'items/page',
					goto: 'Go to',
					page: 'Page',
					confirm: 'Confirm'
				},
				table: {
					sort: {
						asc: 'Ascending',
						desc: 'Descending'
					},
					noData: 'No Data Available',
					tools: {
						filter: {
							title: 'Filter Columns'
						},
						export: {
							title: 'Export',
							noDataPrompt: 'No data in current table',
							compatPrompt: 'Export feature does not support IE, please use Chrome or other modern browsers',
							csvText: 'Export CSV File'
						},
						print: {
							title: 'Print',
							noDataPrompt: 'No data in current table'
						}
					},
					dataFormatError: 'Returned data does not meet specifications, correct success status code should be: "{statusName}": {statusCode}',
					xhrError: 'Request exception, error message: {msg}'
				},
				transfer: {
					noData: 'No Data Available',
					noMatch: 'No Matching Data',
					title: ['List One', 'List Two'],
					searchPlaceholder: 'Keyword Search'
				},
				tree: {
					defaultNodeName: 'Untitled',
					noData: 'No Data Available',
					deleteNodePrompt: 'Confirm to delete "{name}" node?'
				},
				upload: {
					fileType: {
						file: 'File',
						image: 'Image',
						video: 'Video',
						audio: 'Audio'
					},
					validateMessages: {
						fileExtensionError: 'Selected {fileType} contains unsupported formats',
						filesOverLengthLimit: 'Maximum {length} files allowed for simultaneous upload',
						currentFilesLength: 'Currently selected: {length} files',
						fileOverSizeLimit: 'File size cannot exceed {size}'
					},
					chooseText: '{length} files'
				},
				util: {
					timeAgo: {
						days: '{days} days ago',
						hours: '{hours} hours ago',
						minutes: '{minutes} minutes ago',
						future: 'Future',
						justNow: 'Just Now'
					},
					toDateString: {
						meridiem: function(hours, minutes) {
							var hm = hours * 100 + minutes;
							if (hm < 500) {
								return 'Early Morning';
							} else if (hm < 800) {
								return 'Morning';
							} else if (hm < 1200) {
								return 'AM';
							} else if (hm < 1300) {
								return 'Noon';
							} else if (hm < 1900) {
								return 'PM';
							}
							return 'Evening';
						}
					}
				}
			},
			'zh-CN': {
				code: {
					copy: 'ƴ',
					copied: 'Ѹ',
					copyError: 'ʧ',
					maximize: 'ʾ',
					restore: 'ԭʾ',
					preview: '´Ԥ'
				},
				colorpicker: {
					clear: '',
					confirm: 'ȷ'
				},
				dropdown: {
					noData: ''
				},
				flow: {
					loadMore: 'ظ',
					noMore: 'ûи'
				},
				form: {
					select: {
						noData: '',
						noMatch: 'ƥ',
						placeholder: 'ѡ'
					},
					validateMessages: {
						required: 'Ϊ',
						phone: 'ֻŸʽȷ',
						email: 'ʽȷ',
						url: 'Ӹʽȷ',
						number: 'ֻд',
						date: 'ڸʽȷ',
						identity: '֤Ÿʽȷ'
					},
					verifyErrorPromptTitle: 'ʾ'
				},
				laydate: {
					months: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
					weeks: ['', 'һ', '', '', '', '', ''],
					time: ['ʱ', '', ''],
					literal: {
						year: ''
					},
					selectDate: 'ѡ',
					selectTime: 'ѡʱ',
					startTime: 'ʼʱ',
					endTime: 'ʱ',
					tools: {
						confirm: 'ȷ',
						clear: '',
						now: '',
						reset: ''
					},
					rangeOrderPrompt: 'ʱ䲻ڿʼʱ\nѡ',
					invalidDatePrompt: 'Чڻʱ䷶Χ\n',
					formatErrorPrompt: 'ڸʽϷ\nѭ\n{format}\n',
					autoResetPrompt: 'Զ',
					preview: 'ǰѡеĽ'
				},
				layer: {
					confirm: 'ȷ',
					cancel: 'ȡ',
					defaultTitle: 'Ϣ',
					prompt: {
						InputLengthPrompt: ' {length} ַ'
					},
					photos: {
						noData: 'ûͼƬ',
						tools: {
							rotate: 'ת',
							scaleX: 'ˮƽ任',
							zoomIn: 'Ŵ',
							zoomOut: 'С',
							reset: 'ԭ',
							close: 'ر'
						},
						viewPicture: '鿴ԭͼ',
						urlError: {
							prompt: 'ǰͼƬַ쳣\nǷ鿴һţ',
							confirm: 'һ',
							cancel: ''
						}
					}
				},
				laypage: {
					prev: 'һҳ',
					next: 'һҳ',
					first: 'ҳ',
					last: 'βҳ',
					total: ' {total} ',
					pagesize: '/ҳ',
					goto: '',
					page: 'ҳ',
					confirm: 'ȷ'
				},
				table: {
					sort: {
						asc: '',
						desc: ''
					},
					noData: '',
					tools: {
						filter: {
							title: 'ɸѡ'
						},
						export: {
							title: '',
							noDataPrompt: 'ǰ',
							compatPrompt: '֧ܲ IE Chrome ȸ߼',
							csvText: ' CSV ļ'
						},
						print: {
							title: 'ӡ',
							noDataPrompt: 'ǰ'
						}
					},
					dataFormatError: 'صݲϹ淶ȷĳɹ״̬ӦΪ"{statusName}": {statusCode}',
					xhrError: '쳣ʾ{msg}'
				},
				transfer: {
					noData: '',
					noMatch: 'ƥ',
					title: ['бһ', 'б'],
					searchPlaceholder: 'ؼ'
				},
				tree: {
					defaultNodeName: 'δ',
					noData: '',
					deleteNodePrompt: 'ȷɾ"{name}"ڵ'
				},
				upload: {
					fileType: {
						file: 'ļ',
						image: 'ͼƬ',
						video: 'Ƶ',
						audio: 'Ƶ'
					},
					validateMessages: {
						fileExtensionError: 'ѡ{fileType}аֵ֧ĸʽ',
						filesOverLengthLimit: 'ͬʱֻϴ: {length} ļ',
						currentFilesLength: 'ǰѾѡ: {length} ļ',
						fileOverSizeLimit: 'ļСܳ {size}'
					},
					chooseText: '{length} ļ'
				},
				util: {
					timeAgo: {
						days: '{days} ǰ',
						hours: '{hours} Сʱǰ',
						minutes: '{minutes} ǰ',
						future: 'δ',
						justNow: 'ո'
					},
					toDateString: {
						meridiem: function(hours, minutes) {
							var hm = hours * 100 + minutes;
							if (hm < 500) {
								return '賿';
							} else if (hm < 800) {
								return '';
							} else if (hm < 1200) {
								return '';
							} else if (hm < 1300) {
								return '';
							} else if (hm < 1900) {
								return '';
							}
							return '';
						}
					}
				}
			},
		}
	}
};
</script>
<script src="${paui_vpath}/cgi-bin/common/page_loader${page_args}&file=layjs"></script>
<script src="${paui_vpath}/html/assert/panabit.js${page_args}"></script>
<script src="${paui_vpath}/html/assert/extent/sortable.js${page_args}"></script>
<script src="${paui_vpath}/html/assert/extent/xm-select.js${page_args}"></script>
<script src="${paui_vpath}/html/assert/extent/echarts.min.js${page_args}"></script>
<script src="${paui_vpath}/img/highcharts.js${page_args}"></script>
<script src="${paui_vpath}/img/global_timezone.js${page_args}"></script>
<script src="${paui_vpath}/img/crypto.js${page_args}"></script>
</head>

<body>
	<div id="app-page-body" class="paui-bg-black" paui-app-event="btnevt_close_laytips">
		<div class="layui-anim layui-anim-rotate layui-anim-loop" style="margin-top: 100px; text-align: center; ">
			<i class="pa-icon pa-loading" style="font-size:36px; color:#666666"></i>
		</div>
	</div>
</body>

<script>
g_sys_env.ntm = "${NTM}";
g_sys_env.key = "`${FLOWEYE} key getcookie2`";
g_sys_env.paui_vpath = "${paui_vpath}";
paui_db = new Paui_db(g_sys_env.key);


if(g_sys_env.ntm == 1){
	layui.extend({
		ntmlog: '/html/App/ntm/assert/new_ntm'
	}).use('ntmlog');
}

${js_head}
	var event_center = {
		paui_btn_more: function(obj){
			\$(obj).find("dl").show();
			\$(obj).off('mouseleave');
			\$(obj).on('mouseleave', function(){
				\$(this).find("dl").hide();
			});
		},

		btnevt_close: function(obj){
			layer.closeAll('tips');
		}
	};

	var get_html = function(){
		\$.when(
			pa_get_html('/html/common/layout_tpl.html'),
			pa_get_html('${page_path}')
		).done(function(tpls, ctx){
			\$("#app-page-body")
			.html(laytpl(tpls[0]).render({}))
			.append(laytpl(ctx[0]).render({${query_string}}));
		});
	};

	layui_config();

	if(location.pathname.indexOf("VPATH") > 0){
		g_sys_env.saaskey = getQueryStr("saaskey");
		g_sys_env.saaspath = getQueryStr("saaspath");
		g_sys_env.paui_vpath = g_sys_env.saaspath + "/VPATH_" + g_sys_env.saaskey;
		g_sys_env.static_url_args = "?saaskey=" + g_sys_env.saaskey + "&saaspath=" + g_sys_env.saaspath;
	} else {
		g_sys_env.paui_vpath = "";
		g_sys_env.saaskey = "";
		g_sys_env.saaspath = "";
		g_sys_env.static_url_args = "";
	}

	\$.ajaxSetup({
		headers: {
			"Auth-Token": sessionStorage.getItem("token") || ''
		}
	});

	pa_ajax({
		url: '/cgi-bin/system/ajax_sys_info',
		data: {'action':'load_sys_release'},
		success: function(json){
			g_sys_env = $.extend({}, g_sys_env, json.data);
			get_html();
			paui_app_event_bind();
			paui_change_theme('init');
		}
	});

	\$(document).keydown(function(e){
		if(e.which === 27)
			window.close();
	});

});
</script>
</html>

EOF
