<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@page contentType="text/html; charset=UTF-8"%>
<%@page import="com.csc.library.entry.HelpEntry,com.csc.library.system.*,com.csc.library.session.*,com.csc.library.utilities.*,com.csc.library.report.*"%>
<%@page import="java.rmi.*,java.util.*"%>
<jsp:useBean id="AS000" class="com.csc.library.system.Task" scope="page" />
<%
AS000.setChannel(request, response);
HelpEntry screen = (HelpEntry) AS000.process("HelpEntry", "MFORMULAHELP");
screen.process();

CheckNull chkNull = CheckNull.getInstance();
String fixCon = chkNull.chkNullString(request.getParameter("__fixCon"));
String goPage = chkNull.chkNullString(request.getParameter("__goPage"),"1");
String conSearch = chkNull.chkNullString(request.getParameter("__conSearch"));
String searchBy = chkNull.chkNullString(request.getParameter("__searchBy"));
String listOrder = chkNull.chkNullString(request.getParameter("__listOrder"));
String valueSearch = chkNull.chkNullString(request.getParameter("__valueSearch"));

String filter = fixCon;
if(!valueSearch.equals("")){
	if(conSearch.equalsIgnoreCase("like")){
		filter = chkStr(filter) + searchBy + " " +  conSearch + " '%" + valueSearch + "%'";
	} else {
		filter = chkStr(filter) + searchBy + " " +  conSearch + " '" + valueSearch + "'";
	}
}

DbTable tab = new InitialTable(screen.getUProfile()).getDbTable("mformula");
tab.setColumn("*");
tab.setFilter(filter);
tab.setOrderBy(listOrder);
tab.refresh();

String[] systemthai = new ReportUDF().getSystemCode("SPECIAL_FORMULA","THA");
String[] systemeng = new ReportUDF().getSystemCode("SPECIAL_FORMULA","ENG");
String searchTarget = "";
if(searchBy.indexOf("formulaid") != -1){
	searchTarget = "formulaid";
} else if(searchBy.indexOf("tdesc") != -1){
	searchTarget = "tdesc";
} else if(searchBy.indexOf("edesc") != -1){
	searchTarget = "edesc";
}


DbRecord rec = null;
for (int i=0; i<systemthai.length; i++){
	rec = tab.getNewRecord();
	rec.set("companyid", screen.getUProfile().get("companyid"));
	rec.set("formulaid", systemthai[i].split(",")[0]);
	rec.set("tdesc", systemthai[i].split(",")[1]);
	rec.set("edesc", systemeng[i].split(",")[1]);

	if (searchTarget.equalsIgnoreCase("formulaid")) {
		if (isChkCondition(systemthai[i].split(",")[0], valueSearch)) tab.putNewRecord(rec);
	} else if (searchTarget.equalsIgnoreCase("tdesc")) {
		if (isChkCondition(systemthai[i].split(",")[1], valueSearch)) tab.putNewRecord(rec);
	} else if (searchTarget.equalsIgnoreCase("edesc")) {
		if (isChkCondition(systemeng[i].split(",")[1], valueSearch)) tab.putNewRecord(rec);
	} else {
		tab.putNewRecord(rec);
	}
}

int maxrec = 20;
int thispage = Integer.valueOf(goPage);
int maxpage = (tab.recCount() / maxrec);
maxpage += tab.recCount() % maxrec != 0 ? 1 : 0;
int record = (maxrec * thispage) - (maxrec - 1);
int column = 0;
tab.goRec(record,false);

/*out.println("goPage ==> " + goPage);
out.println("maxpage ==> " + maxpage);
out.println("tab.recCount() ==> " + tab.recCount());
out.println("filter ==> " + filter);
out.println("getAllKey ==> " + tab.getAllKey());*/

%>
<html>
	<head>
		<title><%=screen.getInquiry().getCurrentDbRecord().getDescription()%></title>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
		<link href="../CSS/TISCO.css" rel="stylesheet" type="text/css"/>
		<script language="JavaScript" src="../JS/SCREEN.js"></script>
		<script language="javascript">setLang('<%=screen.getUProfile().get("lang")%>');</script>
		<script language="JavaScript" type="text/JavaScript">

		function back(unit){
			with(window.opener.document.cscform){
				locateId.value =unit;
			}
			window.close();
		}

		// Overwrite Function
		function backPage_Return(valueList){
			var tmp = new Array(50);
			var tmp1 = new Array(50);
			var inputName="";
			var inputValue="";
			with(document.cscform){

				with(window.opener.document.cscform){
					tmp=valueList.split(",");
					for (var i=0; i < tmp.length; i++) {
						tmp1=tmp[i].split("#");
						for (var j=0; j < tmp1.length; j++) {
							inputName=tmp1[j++];
							inputValue=tmp1[j];
							for(var z=0;z<elements.length;z++){
								if(elements[z].name == inputName){
									if (__oldvalue.value==""){
										elements[z].value = inputValue;
									}else elements[z].value = __oldvalue.value+","+inputValue;
								}
							}
						}
					}
				}
				window.close();
			}
		}
		</script>
	</head>
	<%
	String helpReturn="";
	if(request.getParameter("__helpReturn")!=null){
		helpReturn=request.getParameter("__helpReturn");
	}
	String fieldSearch="";
	if(request.getParameter("__fieldSearch")!=null){
		fieldSearch=request.getParameter("__fieldSearch");
	}
	%>
	<body leftmargin="0" topmargin="0">
		<form name="cscform" method="post" action="PRU_FORMULAHELP.jsp">

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

			<%=screen.InitialVariable()%>

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

			<input type="hidden" name="__cmd" value=""/>
			<input type="hidden" name="__help" value=""/>
			<input type="hidden" name="__goPage" value=""/>
			<input type="hidden" name="__language" value="<%=screen.getUProfile().get("lang")%>"/>
			<input type="hidden" name="__orderBy" value="<%=request.getParameter("__orderBy")%>"/>
			<input type="hidden" name="__helpReturn" value="<%=helpReturn%>"/>
			<input type="hidden" name="__fieldSearch" value="<%=fieldSearch%>"/>
			<input type="hidden" name="__helpName" value="<%=request.getParameter("__helpName")%>"/>
			<input type="hidden" name="__pageCall" value="<%=request.getParameter("__screen")%>"/>
			<input type="hidden" name="__fixCon" value="<%=fixCon%>"/>
			<input type="hidden" name="__oldvalue" value="<%=request.getParameter("__oldvalue")%>"/>

			<br><table height="" align="center" cellpadding="0" cellspacing="0" class="large">
				<tr bgcolor="#3366CC">
					<td height="20" class="header"><%=screen.getInquiry().getCurrentDbRecord().getDescription()%>&nbsp;</td>
				</tr>
				<tr bgcolor="#3366CC">
					<td>
						<table class="maxsize" border="1" cellspacing="1" cellpadding="1">
							<tr>
								<td>
									<table class="maxsize" align="center" cellpadding="0" cellspacing="0">
										<tr>
											<td colspan="4" class="blankspace"></td>
										</tr>
										<tr>
											<td width="15%" align="right">
												<script language="javascript">swapLang('Order By');</script>&nbsp;
											</td>
											<td>
												<%=screen.getTagOrder()%>
											</td>
											<td width="20%" align="right">
												<script language="javascript">swapLang('Search By');</script>&nbsp;
											</td>
											<td>
												<%=screen.getTagSearchBy()%>
											</td>
										</tr>
										<tr>
											<td align="right">
												<script language="javascript">swapLang('Condition');</script>&nbsp;
											</td>
											<td>
												<%=screen.getTagConSearch()%>
											</td>
											<td align="right">
												<script language="javascript">swapLang('Key Value');</script>&nbsp;
											</td>
											<td>
												<%=screen.getTagValueSearch()%>
												<a href="javascript:searchH();"><img src="../IMAGES/BUTTON/MAIN/SEARCH20.gif" width="20" height="20" border="0" align="middle"></a>
											</td>
										</tr>
										<tr>
											<td colspan="4" class="blankspace"></td>
										</tr>
										<tr>
											<td colspan="2">
												&nbsp;&nbsp;&nbsp;<script language="javascript">swapLang('Found Data');</script>&nbsp;&nbsp;<%=tab.recCount()%>
											</td>
											<td colspan="2" align="right">
												<%
												int cenPage = 3;
												int istartpage = thispage > cenPage ? thispage - cenPage : 1;
												int iendpage = istartpage + 6 > maxpage ? maxpage : istartpage + 6;

												if(istartpage == 1){
													out.println("&lt;&lt;&nbsp;");
												} else {
													out.println("<a href=\"javascript:goPage(\'1\');\">&lt;&lt;</a>&nbsp;");
												}

												for (int ipage=istartpage; ipage<=iendpage; ipage++){
													if(thispage == ipage){
														out.println(ipage+"&nbsp;");
													} else {
														out.println("<a href=\"javascript:goPage(\'"+ipage+"\');\">"+ipage+"</a>&nbsp;");
													}
												}

												if(thispage == maxpage){
													out.println("&gt;&gt;");
												} else {
													out.println("<a href=\"javascript:goPage(\'"+maxpage+"\');\">&gt;&gt;</a>");
												}
												%>
											</td>
										</tr>
									</table>
								</td>
							</tr>
						</table>
					</td>
				</tr>
			</table>
			<br><table height="" align="center" cellpadding="0" cellspacing="0" class="large">
				<tr>
					<td class="normal">
						<div align="center" class="helpshow">
							<table class="large" width="0%" border="0%" cellspacing="0" cellpadding="0" align="center" id="MyTable" name="MyTable" cols="3">
								<tbody>
									<tr>
										<td class="HELPHEAD"><b><%=tab.getCurrentRecordManager().getField("formulaid").getDescription()%></b></td>
										<td class="HELPHEAD"><b><%=tab.getCurrentRecordManager().getField("tdesc").getDescription()%></b></td>
										<td class="HELPHEAD"><b><%=tab.getCurrentRecordManager().getField("edesc").getDescription()%></b></td>
									</tr>
									<%
									do{
										column++;
										%>
										<tr>
											<td class="forborder"><div align="LEFT">&nbsp;<a href="javascript:backPage_Return('<%=getReturn(tab,helpReturn)%>');"><%=tab.getString("formulaid")%></a>&nbsp;</div></td>
											<td class="forborder"><div align="LEFT">&nbsp;<%=tab.getString("tdesc")%>&nbsp;</div></td>
											<td class="forborder"><div align="LEFT">&nbsp;<%=tab.getString("edesc")%>&nbsp;</div></td>
										</tr>
										<%
										tab.next();
									}
									while(!tab.eof() && column < maxrec);
									%>
								</tbody>
							</table>
						</div>
					</td>
				</tr>
			</table>
			<div align="center"></div>
		</form>
	</body>
</html>
<%!
private String getReturn(DbTable tab, String helpReturn) throws Exception{
	String retValue = "", tmp1 = "", tmp3 = "",vdesc="",tableName="";
	for (StringTokenizer token = new StringTokenizer(helpReturn, ","); token.hasMoreTokens();) {
		tmp1 = token.nextToken();
		if (tmp1.indexOf("@") != -1) {
			tableName = tmp1.substring(0, tmp1.indexOf("@"));
			if (tmp1.indexOf("$") != -1) {
				tmp3 = tmp1.substring(tmp1.indexOf("@") + 1, tmp1.indexOf("$"));
			} else
			tmp3 = tmp1.substring(tmp1.indexOf("@") + 1, tmp1.length());
		} else if (tmp1.indexOf(":") > -1) {
			tableName="mformula";
			tmp3 = tmp1.substring(tmp1.indexOf(":") + 1, tmp1.length());
			tmp1 = tmp1.substring(0, tmp1.indexOf(":")).trim();
			if(tmp3.indexOf(".")>-1){
				tableName=tmp3.substring(0,tmp3.indexOf("."));
				tmp3=tmp3.substring(tmp3.indexOf(".")+1,tmp3.length());
			}
		}
		retValue = retValue + tmp1 + "#" + tab.getString(tmp3);
		if (token.hasMoreTokens())
		retValue += ";";
	}
	return retValue;
}

private boolean isChkCondition(String value, String valueSearch){
	if(value.indexOf(valueSearch) != -1){
		return true;
	} else {
		return false;
	}
}

private String chkStr(String filter){
	if(!filter.equals("")){
		filter += " AND ";
	}
	return filter;
}
%>