<%@page contentType="text/html; charset=UTF-8"%>
<%@page import="com.csc.library.entry.HelpEntry,com.csc.library.system.*,com.csc.library.utilities.*"%>
<%@page import="com.csc.library.entry.*,com.csc.library.database.*,com.csc.library.session.*,com.csc.library.report.ReportUDF"  %>
<jsp:useBean id="PRU168_DETAIL" class="com.csc.library.system.Task" scope="page"/>
<%
PRU168_DETAIL.setChannel(request,response);
UIManager screen = (UIManager) PRU168_DETAIL.process("SingleEntry","PRU168");

CheckNull chk = new CheckNull();
ReportUDF reportUDF = new ReportUDF();

screen.getRecord().referLangOn();

String sqnumber = chk.chkNullString(request.getParameter("__sqnumber"),"");
String cmd = request.getParameter("__cmd");
if(cmd == null && !sqnumber.equals("")){
	screen.getRecord().set("SQNUMBER",sqnumber);
	screen.getRecord().search();
} else {
	screen.getRecord().set("SQNUMBER",Integer.valueOf(screen.getDataLabel("SQNUMBER")) + 1);
}

String flag = screen.getDataLabel("flag");
if(flag.equalsIgnoreCase("")){
	flag = "M";
}
%>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
		<link href="../CSS/TISCO.css" rel="stylesheet" type="text/css"/>
		<link href="../CSS/bootstrap.css" rel="stylesheet"  type="text/css">
		<link href="../CSS/bootstrap_csc_backend.css" rel="stylesheet"  type="text/css">
		<script type="text/javascript" src="../JS/jquery-2.1.3.min.js"></script>
		<script type='text/javascript' src="../JS/bootstrap.js"></script>
		<script type='text/javascript' src='../JS/SCREEN.js'></script>
		<script src="../JS/jquery-1.11.2.js" type="text/javascript"></script>
		<script src="../JS/jquery-ui-1.11.4.js" type="text/javascript"></script>

		<link href="../JS/tagEditor/css/pure-min.css" rel="stylesheet" type="text/css"/>
		<link href="../JS/tagEditor/css/jquery.tagit.css" rel="stylesheet" type="text/css"/>
		<link href="../JS/tagEditor/css/tagit.ui-zendesk.css" rel="stylesheet" type="text/css"/>
		<script src="../JS/tagEditor/js/tag-it.js" type="text/javascript"></script>

		<script type='text/javascript' src='/hr/dwr/interface/SearchDWR.js'></script>
		<script type='text/javascript' src='/hr/dwr/engine.js'></script>
		<script type='text/javascript' src='/hr/dwr/util.js'></script>

		<script language='javascript'>setLang('<%=screen.getUProfile().get("lang")%>');</script>
		<script language="javascript">
		function GoUpdate(){ GoSave(); }
		function GoDelete(){ edelete(); }
		function GoSearch(){ search(); }

		function goHelp(helpName,inputName){
			var helpReturn;
			var fixCon;
			var page;
			if(inputName=="__njvsq" )
			helpReturn="__njvsq:sqcode,__sqname:sqname";
			else if (inputName=="__temp_formula" ){
				helpReturn="__temp_formula:formulaid";
				page = "PRU_FORMULAHELP.jsp";
			}
			linkHelp_Return(helpName,helpReturn,fixCon,page);
		}

		function linkHelp_Return(help,input, fixCon, page){
			with(document.cscform){
				var filter = fixCon || __fixCon.value;
				var targetpage = page || "PRU084.jsp";
				var param=targetpage+"?__helpName="+help+"&__helpReturn="+input+"&__pageCall="+__screen.value+"&__fixCon="+filter+"&__oldvalue=&__checkVerify=off";
				win = window.open(param,"Help","left=150,top=150,width=800,height=600,toolbar=no,status=yes,scrollbars=yes,resizable=yes");
				if(window.focus){win.focus();}
			}
		}

		function postReturn(){ // how to use it,, An Override in your Page.
			with( document.cscform ){
				__temp_formula.focus();
			}
		}

		function searchSqname(){
			var condition ="";
			searchDescEmp(document.cscform.__njvsq, 'mjvsequencenumber.sqname:__sqname', condition);
		}

		function searchDescEmp(id, desc, condition){
			var splitDesc="",getField="",setField="";
			splitDesc = desc.split(",");
			for(var i = 0; i < splitDesc.length; i++){
				if(splitDesc[i].indexOf("@") > -1 && splitDesc[i].indexOf(":") == -1){
					if(splitDesc[i].indexOf("$") > -1) {
						var newDesc = splitDesc[i].substring(0,splitDesc[i].indexOf("$"));
						getField += newDesc.replace(/@/g,".");
					}else{
						getField += splitDesc[i].replace(/@/g,".");
					}
					setField += splitDesc[i];
				}else{
					getField += splitDesc[i].substring(0,splitDesc[i].indexOf(":"));
					setField += splitDesc[i].substring(splitDesc[i].indexOf(":")+1,splitDesc[i].length);
				}
				if(i+1 == splitDesc.length){
					break;
				}else{
					getField+=",";
					setField+=",";
				}
			}
			SearchDWR.searchDBXMLAll(new Array("MJVSEQUENCENUMBERHELP", getField, "mjvsequencenumber:sqcode = '"+id.value+"' "+condition, "false", "langOn"), function(data){
				setField = setField.split(",");
				if(data.length > 0){
					for(i=0;i<setField.length;i++){
						DWRUtil.setValue(setField[i],data[0][i]);
					}
				}else{
					for(i=0;i<setField.length;i++){
						DWRUtil.setValue(setField[i],"");
					}
				}
			});
		}

		function GoSave(){
			with(document.cscform){
				var check=true;
				var lang = '<%=screen.getUProfile().get("lang")%>';
				if(__njvsq.value == "") {
					check=false;
					var label = '<%=screen.getLabel("NJVSQ")%>';
					label = label.replace("<label>","");
					label = label.replace("</label>","");
					if(lang === 'tha'){
						alert("กรุณากรอกข้อมูล "+label);
					} else {
						alert("Please input "+label);
					}
					__njvsq.focus;
				}
				if(check===true && chkFormula()){
					saveRecord();
				}
			}
		}

		function back(){
			window.opener.document.cscform.submit();
			window.self.close();
		}
		</script>
		<script>
		$(function(){
			searchSqname();

			$('#formulatags').tagit({
				placeholderText :   " Formula here ",
				allowDuplicates :   true,
				singleField     :   true,
				singleFieldNode :   $('input[name="__formula"]')
			});
			setSorttags();

			$('#inputtags').keydown(function(event){
				event.preventDefault();
			});

			$('input[name="__temp_formula"]').keydown(function(event){
				var that = $(this);
				if (event.which === $.ui.keyCode.ENTER && that.val() !== '') {
					createFormula(that.val());
				} else {
					event.preventDefault();
				}
			});

			$('input[name="__temp_value"]').keydown(function(event){
				var that = $(this);
				if (event.which === $.ui.keyCode.ENTER && that.val() !== '') {
					var value = "VALUE#"+that.val();
					createFormula(value);
				} else if ((event.shiftKey || (event.keyCode < 48 || event.keyCode > 57)) && (event.keyCode < 96 || event.keyCode > 105) && (event.which !== $.ui.keyCode.BACKSPACE)) {
					alert("Please input number (0-9) ONLY!!");
					event.preventDefault();
				}
			});

			var cmd = '<%=request.getParameter("__cmd")%>';
			if(cmd === 'save'){
				window.opener.document.cscform.submit();
			}
		});

		function addFormula(){
			var temp_formula = $('input[name="__temp_formula"]').val();
			if (temp_formula !== ""){
				createFormula(temp_formula);
			}
		}

		function addValue(){
			var temp_value = $('input[name="__temp_value"]').val();
			if (temp_value !== ""){
				temp_value = "VALUE#"+temp_value;
				createFormula(temp_value);
			}
		}

		function createFormula(value){
			$('#formulatags').tagit('createTag', value);
			setSorttags();
		}

		function setFormulaData(){
			var formula = "";
			$('.tagit-label').each(function(){
				if(formula !== ""){
					formula += ",";
				}
				formula += $(this).html();
			});
			$('input[name="__formula"]').val(formula);
			console.log("Formula ==> "+formula);
		}

		function chkFormula(){
			setFormulaData();
			var check = true;
			var operator = ['+','-','*','/','(',')'];
			var formula = $('input[name="__formula"]').val();
			if(formula !== ""){
				var array = formula.split(",");
				var formuladata = "";
				var chkformula = "";
				for(var i=0; i<array.length; i++){
					if ($.inArray( array[i], operator ) !== -1){
						if(array[i] === "("){
							chkformula = "";
							formuladata += array[i];
						} else if(array[i] === ")"){
							chkformula = "1";
							formuladata += array[i];
						} else if(chkformula === "1"){
							chkformula = "";
							formuladata += array[i];
						} else {
							alert("Error!! '"+array[i]+"' operator don't set first\nPlease check formula.");
							return false;
						}
					} else {
						if(chkformula === ""){
							chkformula = "1";
							formuladata += "1";
						} else {
							alert("Error!! '"+array[i]+"' don't have operator\nPlease check formula.");
							return false;
						}
					}
				}
				console.log("formuladata ==> "+formuladata);
				try {
					var value = eval(formuladata);
					console.log("value ==> "+value);
				} catch (e) {
					check = false;
					formuladata = formuladata.replace(/1/g, 'F');
					alert('Error Formula ( F = Formula )\nFormula ==> "'+formuladata+'"');
				}
			}
			return check;
		}

		function setSorttags(){
			$( "#formulatags" ).sortable({
				placeholder: "boxshadow ui-corner-all"
			});
			$( "#formulatags" ).disableSelection();
		}
		</script>
		<style>
		#formulatags { background-color: white; width: 85%; }
		.boxshadow { border: 1px dotted black; border-radius: 5px; padding: .8em 1.8em; }
		.plus-tags { background-color: #9999ff !important; }
		.minus-tags { background-color: #ff9999 !important; }
		.multi-tags { background-color: #ff99ff !important; }
		.divide-tags { background-color: #ffff66 !important; }
		.bracket-tags { background-color: #ccffcc !important; }
		.input-hidden { display: none; }
		.disable-select { background: #ebebe4; }

		.pure-button { margin: 2px 0; text-decoration: none !important; border-color: #cccccc; padding: .3em 1em; }
		.button-lg { margin: 5px 0; padding: .65em 1.6em; font-size: 105%; }
		.button-sm { font-size: 85%; }
		</style>
	</head>
	<body leftmargin="0" topmargin="0"  onLoad="MM_preloadImages('IMAGES/BUTTON/SWAP/SEARCH_SWAP20.gif')">
		<div id="toolTipLayer" style="position:absolute; visibility: hidden"></div>
		<script language="javascript">initToolTips();</script>
		<script language="JavaScript" src="../JS/HOTKEY.js"></script>

		<form name="cscform" method="post">


			<!----------BEGIN CSC INITIAL ZONE ------------------------>

			<%=screen.InitialVariable()%>

			<!----------END CSC INITIAL ZONE -------------------------->

			<input type="hidden" name="__cmd" value=""/>
			<input type="hidden" name="__confirm" value=""/>
			<input type="hidden" name="__sysisedit" value=""/>
			<input type="hidden" name="__screen" value="PRU168_DETAIL"/>
			<input type="hidden" name="__notNull" value="<%=screen.getRequire()%>"/>
			<input type="hidden" name="__companyid" value="<%=screen.getUProfile().get("companyid")%>"/>
			<input type="hidden" name="__cmdchild" value=""/>
			<input type="hidden" name="__help" value=""/>
			<input type="hidden" name="__fixCon" value=""/>
			<input type="hidden" name="__user" value="<%=screen.getUProfile().getUserId()%>"/>
			<input type="hidden" name="__referPage" value=""/>
			<input type="hidden" name="__formula" value="<%=screen.getDataLabel("formula")%>"/>
			<input type="hidden" name="__flag" value="<%=flag%>"/>

			<div align="center"><br>
				<table>
					<tr>
						<td class="header" colspan="2" >
							PRU168_DETAIL, <script language="javascript">swapLang('Payroll Journal Voucher Template Detail');</script>&nbsp;
						</td>
					</tr>
					<tr>
						<td>
							<div align="center">
								<center>
									<table cellpadding="0"  cellspacing="0">
										<tr>
											<td colspan="2"  class="blankspace"></td>
										</tr>
										<tr>
											<td class="columnlabel"><%=screen.getLabel("SQNUMBER")%>&nbsp;*&nbsp;</td>
											<td  class="columnobject1"><input name="__sqnumber" type="text" readonly="true" value="<%=chk.chkNullString(request.getParameter("__sqnumber"),screen.getDataLabel("SQNUMBER"))%>" size="5"></td>
										</tr>

										<tr>
											<td class="columnlabel"><%=screen.getLabel("NJVSQ")%>&nbsp;*&nbsp;</td>
											<td  class="columnobject1"><%=screen.getInput("NJVSQ")%>
											<input name="__sqname" type="text" disabled value="" size="40"></td>
										</tr>
										<tr>
											<td class="columnlabel"><%=screen.getLabel("FLAG")%>&nbsp;</td>
											<td class="columndata">&nbsp;<%=reportUDF.getSystemCode("JVFLAGTEMPLATE", screen.getUProfile().get("lang"), flag)%></td>
										</tr>
										<tr>
											<td class="columnlabel"><%=screen.getLabel("ACCTCODE")%>&nbsp;</td>
											<td  class="columnobject1"><%=screen.getInput("ACCTCODE")%></td>
										</tr>
										<tr>
											<td class="columnlabel"><%=screen.getLabel("ACCTNAME")%>&nbsp;</td>
											<td  class="columnobject1"><%=screen.getInput("ACCTNAME")%></td>
										</tr>
										<tr>
											<td class="columnlabel"><%=screen.getLabel("ACCTTYPE")%>&nbsp;</td>
											<td class="columnobject1"><%=screen.getInput("ACCTTYPE")%></td>
										</tr>
										<tr>
											<td class="columnlabel"><%=screen.getLabel("FORMULA")%>&nbsp;<br>Value&nbsp;</td>
											<td class="columnobject1">
												<input name="__temp_formula" type="text" size="15" value=""/>
												<a onmouseover="MM_swapImage('__temp_formula_image','','../IMAGES/BUTTON/SWAP/SEARCH_SWAP20.gif',1)" onmouseout="MM_swapImgRestore()" href="javascript:goHelp('MFORMULAHELP','__temp_formula');"><img name="__temp_formula_image" width="20" height="20" align="absmiddle" alt="SEARCH" src="../IMAGES/BUTTON/MAIN/SEARCH20.gif" border="0"></a>
												<span onclick="addFormula();" class="ed_on pure-button button-sm">Add Formula</span><<< Press Enter or Click Add formula.
												<input name="__temp_value" type="text" size="15" value="">&nbsp;&nbsp;<span onclick="addValue();" class="ed_on pure-button button-sm">Add Value</span><<< Press Enter or Click Add Value.<br>
												<span onclick="$('#formulatags').tagit('createTag', '+');setSorttags();return false;" class="ed_on pure-button button-sm plus-tags">+</span>
												<span onclick="$('#formulatags').tagit('createTag', '-');setSorttags();return false;" class="ed_on pure-button button-sm minus-tags">-</span>
												<span onclick="$('#formulatags').tagit('createTag', '*');setSorttags();return false;" class="ed_on pure-button button-sm multi-tags">*</span>
												<span onclick="$('#formulatags').tagit('createTag', '/');setSorttags();return false;" class="ed_on pure-button button-sm divide-tags">/</span>
												<span onclick="$('#formulatags').tagit('createTag', '(');setSorttags();return false;" class="ed_on pure-button button-sm bracket-tags">(</span>
												<span onclick="$('#formulatags').tagit('createTag', ')');setSorttags();return false;" class="ed_on pure-button button-sm bracket-tags">)</span>
												&nbsp;&nbsp;<span onclick="$('#formulatags').tagit('removeAll');return false;" class="ed_on pure-button button-sm">Clear tags</span>
												<ul id="formulatags"></ul>
											</td>
										</tr>
										<tr>
											<td colspan="2" class="blankspace"></td>
										</tr>
										<tr>
											<td class="columnlabel"><%=screen.getLabel("ANALSOURCE")%>&nbsp;</td>
											<td  class="columnobject1"><%=screen.getInput("ANALSOURCE")%></td>
										</tr>
										<tr>
											<td class="columnlabel"><%=screen.getLabel("ANALTYPE")%>&nbsp;</td>
											<td  class="columnobject1"><%=screen.getInput("ANALTYPE")%></td>
										</tr>
										<tr>
											<td class="columnlabel"><%=screen.getLabel("ANAL_T0")%>&nbsp;</td>
											<td  class="columnobject1"><%=screen.getInput("ANAL_T0")%></td>
										</tr>
										<tr>
											<td class="columnlabel"><%=screen.getLabel("ANAL_T1")%>&nbsp;</td>
											<td  class="columnobject1"><%=screen.getInput("ANAL_T1")%></td>
										</tr>
										<tr>
											<td class="columnlabel"><%=screen.getLabel("ANAL_T2")%>&nbsp;</td>
											<td  class="columnobject1"><%=screen.getInput("ANAL_T2")%></td>
										</tr>
										<tr>
											<td class="columnlabel"><%=screen.getLabel("ANAL_T3")%>&nbsp;</td>
											<td  class="columnobject1"><%=screen.getInput("ANAL_T3")%></td>
										</tr>
										<tr>
											<td class="columnlabel"><%=screen.getLabel("ANAL_T4")%>&nbsp;</td>
											<td  class="columnobject1"><%=screen.getInput("ANAL_T4")%></td>
										</tr>
										<tr>
											<td class="columnlabel"><%=screen.getLabel("ANAL_T5")%>&nbsp;</td>
											<td  class="columnobject1"><%=screen.getInput("ANAL_T5")%></td>
										</tr>
										<tr>
											<td class="columnlabel"><%=screen.getLabel("ANAL_T6")%>&nbsp;</td>
											<td  class="columnobject1"><%=screen.getInput("ANAL_T6")%></td>
										</tr>
										<tr>
											<td class="columnlabel"><%=screen.getLabel("ANAL_T7")%>&nbsp;</td>
											<td  class="columnobject1"><%=screen.getInput("ANAL_T7")%></td>
										</tr>
										<tr>
											<td class="columnlabel"><%=screen.getLabel("ANAL_T8")%>&nbsp;</td>
											<td  class="columnobject1"><%=screen.getInput("ANAL_T8")%></td>
										</tr>
										<tr>
											<td class="columnlabel"><%=screen.getLabel("ANAL_T9")%>&nbsp;</td>
											<td  class="columnobject1"><%=screen.getInput("ANAL_T9")%></td>
										</tr>
										<%screen.getRecord().referLangOff();%>
										<tr>
											<td colspan="2"  class="blankspace"></td>
										</tr>

										<tr>
											<td  class="buttonline" colspan="7"><div align="center">
												<button type="button" class="btn btn-primary width100" swlang code="SW013175" onClick="GoSave();">SAVE</button>&nbsp;
												<button type="button" class="btn btn-primary width100" swlang code="SW013174" onClick="back();">BACK</button>
											</div>
											</td>
										</tr>
										<tr>
											<td colspan="2"  class="blankspace"></td>
										</tr>
									</table>
								</center>
							</div>
						</td>
					</tr>
					<tr>
						<td class="bottom" ></td>
					</tr>
				</table>
			</div>
		</form>
	</body>
</html>