// NOTE: [This JS must loaded as last item]


	// ===============================================================
	// Initialize Form
	// ===============================================================
	function FORM_LOAD()
	{
		// Initialize
		// _______________________________________________________________________	
		var DGV_ELEMENT_CHILD = null;
		var DGV_ELEMENT_CHILD_INDEX = 0;
		
		
		// Load DataGridVuew
		// _______________________________________________________________________	
		PRODUCT_BRANCH_DGV = DataGridView("PRODUCT_BRANCH_DGV");

		//PRODUCT_BRANCH_DGV.SETTING_ALLOW_USER_TO_ADD_ROWS = true;
		//PRODUCT_BRANCH_DGV.SETTING_EDITABLE = true;
		// PRODUCT_BRANCH_DGV.ON_CLICK
		// (			
		// 	function(COL_INDEX, ROW_INDEX)
		// 	{
		// 		// Delete Button
		// 		// ...........................................
		// 		/*if(PRODUCT_BRANCH_DGV.COLUMN.NAME(COL_INDEX) == "DELETE_CMD")
		// 		{
		// 			// Delete Unsaved Item
		// 			if
		// 			(
		// 				PRODUCT_BRANCH_DGV.COLUMN.IS_EXISTS("REC_POSRESERVE_ID") &&
		// 				JSVC_NUM.VAR_NVALL(PRODUCT_BRANCH_DGV.CELL.VALUE("REC_POSRESERVE_ID", ROW_INDEX)) <= 0
		// 			)
		// 			{
		// 				PRODUCT_BRANCH_DGV.ROW.REMOVE_AT(ROW_INDEX);
		// 			}
					
		// 			// Delete Saved Item
		// 			else
		// 			{
		// 				HTTP_DELETE
		// 				(
		// 					function(IS_SUCCESS)
		// 					{
		// 						console.log('Record Deleted.');
		// 					}, 
		// 					ROW_INDEX
		// 				);				
		// 			}
		// 		}*/			

		// 		// Void Button
		// 		// ...........................................
		// 		/*else if(PRODUCT_BRANCH_DGV.COLUMN.NAME(COL_INDEX) == "VOID_CMD")
		// 		{
		// 			// Delete Unsaved Item
		// 			if
		// 			(
		// 				PRODUCT_BRANCH_DGV.COLUMN.IS_EXISTS("REC_POSRESERVE_ID") &&
		// 				JSVC_NUM.VAR_NVALL(PRODUCT_BRANCH_DGV.CELL.VALUE("REC_POSRESERVE_ID", ROW_INDEX)) <= 0
		// 			)
		// 			{
		// 				PRODUCT_BRANCH_DGV.ROW.REMOVE_AT(ROW_INDEX);
		// 			}
					
		// 			// Void Saved Item
		// 			else
		// 			{

		// 			}
		// 		}*/	
				
		// 		// Link to Child Table
		// 		// ...........................................
				
		// 		// Sample Child Code
		// 		// if(PRODUCT_BRANCH_DGV.COLUMN.NAME(COL_INDEX) != "CHILD_CMD")
		// 		// {
		// 		// 	// Get Current Root path
		// 		// 	var CURRENT_ROOT_PATH = JSCUS_CACHE.ROOT_PATH + JSVC_STR.VAR_MID(JSVC_STR.VAR_DLEFT(JSCUS_CACHE.AUTH_REDIRECT_URL[JSCUS_CACHE.LOGIN_CLASS], JSCUS_CACHE.SERVER_URL.length), 1, 1);
			
		// 		// 	// Cache Primary Key
		// 		// 	JSVC_COOKIE.VAR_ADD
		// 		// 	(
		// 		// 		'PROPERTY_PARENT_ID', 
		// 		// 		PRODUCT_BRANCH_DGV.CELL.VALUE('REC_POSRESERVE_ID', ROW_INDEX), 
		// 		// 		5, 
		// 		// 		CURRENT_ROOT_PATH
		// 		// 	);
		// 		// 	JSVC_COOKIE.VAR_ADD
		// 		// 	(
		// 		// 		'PROPERTY_PARENT_DESCRIPTION', 
		// 		// 		PRODUCT_BRANCH_DGV.CELL.VALUE('REC_POSRESERVE_CODE', ROW_INDEX), 
		// 		// 		5, 
		// 		// 		CURRENT_ROOT_PATH
		// 		// 	);
		// 		// 	JSVC_COOKIE.VAR_ADD
		// 		// 	(
		// 		// 		'PROPERTY_PARENT_BRANCH', 
		// 		// 		PRODUCT_BRANCH_DGV.CELL.VALUE('REC_POSRESERVE_ACC_GROUP_ID_DESCRIPTION', ROW_INDEX), 
		// 		// 		5, 
		// 		// 		CURRENT_ROOT_PATH
		// 		// 	);
		// 		// 	JSVC_COOKIE.VAR_ADD
		// 		// 	(
		// 		// 		'PROPERTY_PARENT_RESERVE_DATE', 
		// 		// 		PRODUCT_BRANCH_DGV.CELL.VALUE('REC_POSRESERVE_DATE_RECORDED', ROW_INDEX), 
		// 		// 		5, 
		// 		// 		CURRENT_ROOT_PATH
		// 		// 	);
		// 		// 	JSVC_COOKIE.VAR_ADD
		// 		// 	(
		// 		// 		'PROPERTY_PARENT_STATUS', 
		// 		// 		PRODUCT_BRANCH_DGV.CELL.VALUE('REC_POSRESERVE_STATUS', ROW_INDEX), 
		// 		// 		5, 
		// 		// 		CURRENT_ROOT_PATH
		// 		// 	);
		// 		// 	JSVC_COOKIE.VAR_ADD
		// 		// 	(
		// 		// 		'PROPERTY_PARENT_CLIENT', 
		// 		// 		PRODUCT_BRANCH_DGV.CELL.VALUE('REC_CLIENT_NAME', ROW_INDEX), 
		// 		// 		5, 
		// 		// 		CURRENT_ROOT_PATH
		// 		// 	);
					
		// 		// 	// Open EditPage
		// 		// 	window.location = JSCUS_CACHE.SERVER_URL + '/p/record/pos_reserve_list.html';	
		// 		// 	return;
		// 		// }
				
						
	
		// 		// If dialog supported
		// 		// ...........................................
		// 		// if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("POS_RESERVE_MODAL") == true)
		// 		// {
		// 		// 	// Clear Modal
		// 		// 	if(JSVC_VAR.VAR_ISSET(INPUT_INSTANCE))
		// 		// 	{
		// 		// 		JSOC_WINDOW.VAR_INPUT_INSTANCE_RESTORE(INPUT_INSTANCE);
		// 		// 	}
						
		// 		// 	// Display Modal
		// 		// 	PROPERTY_REC_POSRESERVE_ID = PRODUCT_BRANCH_DGV.CELL.VALUE('REC_POSRESERVE_ID', ROW_INDEX);
		// 		// 	PROPERTY_REC_POSRESERVE_CODE = PRODUCT_BRANCH_DGV.CELL.VALUE('REC_POSRESERVE_CODE', ROW_INDEX);
		// 		// 	PROPERTY_EDIT_ROW_INDEX = ROW_INDEX;
					
		// 		// 	EDIT_HANDLER.REF_IS_MODIFIED = false;
		// 		// 	JSOC_DIALOG.VAR_MODAL("POS_RESERVE_MODAL", true);

		// 		// 	JSOC_ELEMENT.VAR_VALUE("REC_POSRESERVE_CODE_LBL", PROPERTY_REC_POSRESERVE_CODE);
		// 		// 	JSOC_ELEMENT.VAR_VALUE("REC_POSRESERVE_REC_CLIENT_LBL", ': ' + PRODUCT_BRANCH_DGV.CELL.VALUE('REC_CLIENT_NAME', ROW_INDEX));
		// 		// 	JSOC_ELEMENT.VAR_VALUE("REC_POSRESERVE_DATE_RECORDED_LBL", ': ' + PRODUCT_BRANCH_DGV.CELL.VALUE('REC_POSRESERVE_DATE_RECORDED', ROW_INDEX));
		// 		// 	JSOC_ELEMENT.VAR_VALUE("REC_POSRESERVE_STATUS_LBL", ': ' + PRODUCT_BRANCH_DGV.CELL.VALUE('REC_POSRESERVE_STATUS_DESCRIPTION', ROW_INDEX));
					
		// 		// 	HTTP_LOAD();
		// 		// 	return;
		// 		// }
				
		// 		// Open View / Edit Page
		// 		// ...........................................
		// 		// else if(PRODUCT_BRANCH_DGV.SETTING_EDITABLE == false)
		// 		// {
		// 		// 	// Get Current Root path
		// 		// 	var CURRENT_ROOT_PATH = JSCUS_CACHE.ROOT_PATH + JSVC_STR.VAR_MID(JSVC_STR.VAR_DLEFT(JSCUS_CACHE.AUTH_REDIRECT_URL[JSCUS_CACHE.LOGIN_CLASS], JSCUS_CACHE.SERVER_URL.length), 1, 1);

					
							
		// 		// 	// Cache Primary Key
		// 		// 	JSVC_COOKIE.VAR_ADD
		// 		// 	(
		// 		// 		'PROPERTY_PARENT_ID', 
		// 		// 		PRODUCT_BRANCH_DGV.CELL.VALUE('REC_POSRESERVE_ID', ROW_INDEX), 
		// 		// 		5, 
		// 		// 		CURRENT_ROOT_PATH
		// 		// 	);
		// 		// 	JSVC_COOKIE.VAR_ADD
		// 		// 	(
		// 		// 		'PROPERTY_PARENT_DESCRIPTION', 
		// 		// 		PRODUCT_BRANCH_DGV.CELL.VALUE('REC_POSRESERVE_CODE', ROW_INDEX), 
		// 		// 		5, 
		// 		// 		CURRENT_ROOT_PATH
		// 		// 	);
					
		// 		// 	// Open EditPage
		// 		// 	window.location = 'pos_reserve_info.html';				
		// 		// }

		// 	}
		// );   

		
		// Show Progress
		// _______________________________________________________________________	
		JSOC_DIALOG.VAR_LOADING_SPINNER(true);
		
		
		// Requires Authentication
		// _______________________________________________________________________	
		PAGE_AUTH_REQUIRES_LOGIN(HTTP_POPULATE_RESULT);

		
		
		// Foreign Key [Fixed]
		// _______________________________________________________________________	
		// if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("REC_POSRESERVE_ACC_GROUP_ID_CMB") == true)
		// {
		// 	// Set Default Item, if used in DataGridView
		// 	JSOC_CMB.VAR_ADD("REC_POSRESERVE_ACC_GROUP_ID_CMB", FLAG_BIGINT_NULL.toString(), "Select Branch");
		// 	// To use custom populate
		// 	// var GET_MAP_ARRAY = JSCUS_SQL._ACCOUNT._GROUP.CUS_PREPARE_MAPPED_ARRAY_FOR_GET();
		// 	// JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_', JSCUS_SQL._SYSTEM._STATUS.STATUS_ACTIVE);	
		// 	JSCUS_SQL._ACCOUNT._GROUP.CUS_GET_THEN_POPULATE_COMBOBOX
		// 	(
		// 		function()
		// 		{
		// 			// Set Default index
		// 			JSOC_CMB.VAR_SELECTED_INDEX("REC_POSRESERVE_ACC_GROUP_ID_CMB", 0);
					
		// 			// Clone to DGV Cell if ComboBox Exists
		// 			if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("PRODUCT_BRANCH_DGV_ROW_REC_POSRESERVE_ACC_GROUP_ID") == true)
		// 			{
		// 				DGV_ELEMENT_CHILD = JSOC_ELEMENT.VAR_SUB_ELEMENTS("PRODUCT_BRANCH_DGV_ROW_REC_POSRESERVE_ACC_GROUP_ID");
		// 				DGV_ELEMENT_CHILD_INDEX = 0;
		// 				while(DGV_ELEMENT_CHILD.length > DGV_ELEMENT_CHILD_INDEX)
		// 				{
		// 					if
		// 					(
		// 						DGV_ELEMENT_CHILD[DGV_ELEMENT_CHILD_INDEX].tagName == "SELECT" &&
		// 						JSVC_STR.VAR_IS_BLANK(DGV_ELEMENT_CHILD[DGV_ELEMENT_CHILD_INDEX].id.toString())
		// 					)
		// 					{
		// 						JSOC_ELEMENT.VAR_INNER_HTML
		// 						(
		// 							DGV_ELEMENT_CHILD[DGV_ELEMENT_CHILD_INDEX], 
		// 							JSOC_ELEMENT.VAR_INNER_HTML("REC_POSRESERVE_ACC_GROUP_ID_CMB")
		// 						);
		// 					}	
		// 					DGV_ELEMENT_CHILD_INDEX ++;
		// 				}
		// 			}
					
		// 			// Copy items to edit control
		// 			if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_POSRESERVE_ACC_GROUP_ID_CMB") == true)
		// 			{
		// 				JSOC_CMB.VAR_CLEAR("SEARCH_REC_POSRESERVE_ACC_GROUP_ID_CMB");
		// 				//JSOC_CMB.VAR_ADD("SEARCH_REC_POSRESERVE_ACC_GROUP_ID_CMB", FLAG_BIGINT_NULL.toString(),"Any Group");
		// 				JSOC_ELEMENT.VAR_INNER_HTML("SEARCH_REC_POSRESERVE_ACC_GROUP_ID_CMB", JSOC_ELEMENT.VAR_INNER_HTML("REC_POSRESERVE_ACC_GROUP_ID_CMB"), true);
		// 				JSOC_CMB.VAR_SELECTED_INDEX("SEARCH_REC_POSRESERVE_ACC_GROUP_ID_CMB", 0);
		// 				$('.BSSP_SEARCH_REC_POSRESERVE_ACC_GROUP_ID_CMB').selectpicker('refresh');
		// 			}				
					
		// 			// Update Modal Settings
		// 			if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("POS_RESERVE_MODAL") == true)
		// 			{
		// 				INPUT_INSTANCE = JSOC_WINDOW.VAR_INPUT_INSTANCE_CLONE("POS_RESERVE_MODAL");
		// 			}
					
		// 			// Forward populate complete event.
		// 			$('.BSSP_REC_POSRESERVE_ACC_GROUP_ID_CMB').selectpicker('refresh');
		// 			HTTP_POPULATE_RESULT();		
		// 		},
		// 		"REC_POSRESERVE_ACC_GROUP_ID_CMB",
		// 		true, 2
		// 		// , GET_MAP_ARRAY 
		// 	);
		// }
		// if
		// (
		// 	JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_POSRESERVE_ACC_GROUP_ID_CMB") == true &&
		// 	JSOC_ELEMENT.VAR_ELEMENT_EXISTS("REC_POSRESERVE_ACC_GROUP_ID_CMB") == false
		// )
		// {
		// 	JSOC_CMB.VAR_CLEAR("SEARCH_REC_POSRESERVE_ACC_GROUP_ID_CMB");
		// 	//JSOC_CMB.VAR_ADD("SEARCH_REC_POSRESERVE_ACC_GROUP_ID_CMB", FLAG_BIGINT_NULL.toString(),"Any Group");
		// 	// To use custom populate
		// 	// var GET_MAP_ARRAY = JSCUS_SQL._ACCOUNT._GROUP.CUS_PREPARE_MAPPED_ARRAY_FOR_GET();
		// 	// JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_', JSCUS_SQL._SYSTEM._STATUS.STATUS_ACTIVE);	
		// 	JSCUS_SQL._ACCOUNT._GROUP.CUS_GET_THEN_POPULATE_COMBOBOX
		// 	(
		// 		function()
		// 		{
		// 			// Set Default index
		// 			JSOC_CMB.VAR_SELECTED_INDEX("SEARCH_REC_POSRESERVE_ACC_GROUP_ID_CMB", 0);
					
		// 			// Forward populate complete event.		
		// 			$('.BSSP_SEARCH_REC_POSRESERVE_ACC_GROUP_ID_CMB').selectpicker('refresh');
		// 			HTTP_POPULATE_RESULT();
		// 		},		
		// 		"SEARCH_REC_POSRESERVE_ACC_GROUP_ID_CMB",
		// 		true, 2
		// 		// , GET_MAP_ARRAY 
		// 	);
		// }
		
		// Foreign Key [Fixed]
		// _______________________________________________________________________	
		// if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("REC_POSRESERVE_REC_CLIENT_ID_CMB") == true)
		// {
		// 	// Set Default Item, if used in DataGridView
		// 	JSOC_CMB.VAR_ADD("REC_POSRESERVE_REC_CLIENT_ID_CMB", FLAG_BIGINT_NULL.toString(), "-");
		// 	// To use custom populate
		// 	// var GET_MAP_ARRAY = JSCUS_SQL._RECORD._CLIENT.CUS_PREPARE_MAPPED_ARRAY_FOR_GET();
		// 	// JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_', JSCUS_SQL._SYSTEM._STATUS.STATUS_ACTIVE);	
		// 	JSCUS_SQL._RECORD._CLIENT.CUS_GET_THEN_POPULATE_COMBOBOX
		// 	(
		// 		function()
		// 		{
		// 			// Set Default index
		// 			JSOC_CMB.VAR_SELECTED_INDEX("REC_POSRESERVE_REC_CLIENT_ID_CMB", 0);
					
		// 			// Clone to DGV Cell if ComboBox Exists
		// 			if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("PRODUCT_BRANCH_DGV_ROW_REC_POSRESERVE_REC_CLIENT_ID") == true)
		// 			{
		// 				DGV_ELEMENT_CHILD = JSOC_ELEMENT.VAR_SUB_ELEMENTS("PRODUCT_BRANCH_DGV_ROW_REC_POSRESERVE_REC_CLIENT_ID");
		// 				DGV_ELEMENT_CHILD_INDEX = 0;
		// 				while(DGV_ELEMENT_CHILD.length > DGV_ELEMENT_CHILD_INDEX)
		// 				{
		// 					if
		// 					(
		// 						DGV_ELEMENT_CHILD[DGV_ELEMENT_CHILD_INDEX].tagName == "SELECT" &&
		// 						JSVC_STR.VAR_IS_BLANK(DGV_ELEMENT_CHILD[DGV_ELEMENT_CHILD_INDEX].id.toString())
		// 					)
		// 					{
		// 						JSOC_ELEMENT.VAR_INNER_HTML
		// 						(
		// 							DGV_ELEMENT_CHILD[DGV_ELEMENT_CHILD_INDEX], 
		// 							JSOC_ELEMENT.VAR_INNER_HTML("REC_POSRESERVE_REC_CLIENT_ID_CMB")
		// 						);
		// 					}	
		// 					DGV_ELEMENT_CHILD_INDEX ++;
		// 				}
		// 			}
					
		// 			// Copy items to edit control
		// 			if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_POSRESERVE_REC_CLIENT_ID_CMB") == true)
		// 			{
		// 				JSOC_CMB.VAR_CLEAR("SEARCH_REC_POSRESERVE_REC_CLIENT_ID_CMB");
		// 				JSOC_CMB.VAR_ADD("SEARCH_REC_POSRESERVE_REC_CLIENT_ID_CMB", FLAG_BIGINT_NULL.toString(),"Any Client");
		// 				JSOC_ELEMENT.VAR_INNER_HTML("SEARCH_REC_POSRESERVE_REC_CLIENT_ID_CMB", JSOC_ELEMENT.VAR_INNER_HTML("REC_POSRESERVE_REC_CLIENT_ID_CMB"), true);
		// 				JSOC_CMB.VAR_SELECTED_INDEX("SEARCH_REC_POSRESERVE_REC_CLIENT_ID_CMB", 0);
		// 				$('.BSSP_SEARCH_REC_POSRESERVE_REC_CLIENT_ID_CMB').selectpicker('refresh');
		// 			}				
					
		// 			// Update Modal Settings
		// 			if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("POS_RESERVE_MODAL") == true)
		// 			{
		// 				INPUT_INSTANCE = JSOC_WINDOW.VAR_INPUT_INSTANCE_CLONE("POS_RESERVE_MODAL");
		// 			}
					
		// 			// Forward populate complete event.
		// 			$('.BSSP_REC_POSRESERVE_REC_CLIENT_ID_CMB').selectpicker('refresh');
		// 			HTTP_POPULATE_RESULT();		
		// 		},
		// 		"REC_POSRESERVE_REC_CLIENT_ID_CMB",
		// 		true, 2
		// 		// , GET_MAP_ARRAY 
		// 	);
		// }
		// if
		// (
		// 	JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_POSRESERVE_REC_CLIENT_ID_CMB") == true &&
		// 	JSOC_ELEMENT.VAR_ELEMENT_EXISTS("REC_POSRESERVE_REC_CLIENT_ID_CMB") == false
		// )
		// {
		// 	JSOC_CMB.VAR_CLEAR("SEARCH_REC_POSRESERVE_REC_CLIENT_ID_CMB");
		// 	JSOC_CMB.VAR_ADD("SEARCH_REC_POSRESERVE_REC_CLIENT_ID_CMB", FLAG_BIGINT_NULL.toString(),"Any Client");
		// 	// To use custom populate
		// 	// var GET_MAP_ARRAY = JSCUS_SQL._RECORD._CLIENT.CUS_PREPARE_MAPPED_ARRAY_FOR_GET();
		// 	// JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_', JSCUS_SQL._SYSTEM._STATUS.STATUS_ACTIVE);	
		// 	JSCUS_SQL._RECORD._CLIENT.CUS_GET_THEN_POPULATE_COMBOBOX
		// 	(
		// 		function()
		// 		{
		// 			// Set Default index
		// 			JSOC_CMB.VAR_SELECTED_INDEX("SEARCH_REC_POSRESERVE_REC_CLIENT_ID_CMB", 0);
					
		// 			// Forward populate complete event.		
		// 			$('.BSSP_SEARCH_REC_POSRESERVE_REC_CLIENT_ID_CMB').selectpicker('refresh');
		// 			HTTP_POPULATE_RESULT();
		// 		},		
		// 		"SEARCH_REC_POSRESERVE_REC_CLIENT_ID_CMB",
		// 		true, 2
		// 		// , GET_MAP_ARRAY 
		// 	);
		// }
		
		// Foreign Key [Fixed]
		// _______________________________________________________________________	
		// if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("REC_POSRESERVE_ACC_ACCOUNT_ID_CMB") == true)
		// {
		// 	// Set Default Item, if used in DataGridView
		// 	JSOC_CMB.VAR_ADD("REC_POSRESERVE_ACC_ACCOUNT_ID_CMB", FLAG_BIGINT_NULL.toString(), "-");
		// 	// To use custom populate
		// 	// var GET_MAP_ARRAY = JSCUS_SQL._ACCOUNT._MEMBER.CUS_PREPARE_MAPPED_ARRAY_FOR_GET();
		// 	// JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_', JSCUS_SQL._SYSTEM._STATUS.STATUS_ACTIVE);	
		// 	JSCUS_SQL._ACCOUNT._MEMBER.CUS_GET_THEN_POPULATE_COMBOBOX
		// 	(
		// 		function()
		// 		{
		// 			// Set Default index
		// 			JSOC_CMB.VAR_SELECTED_INDEX("REC_POSRESERVE_ACC_ACCOUNT_ID_CMB", 0);
					
		// 			// Clone to DGV Cell if ComboBox Exists
		// 			if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("PRODUCT_BRANCH_DGV_ROW_REC_POSRESERVE_ACC_ACCOUNT_ID") == true)
		// 			{
		// 				DGV_ELEMENT_CHILD = JSOC_ELEMENT.VAR_SUB_ELEMENTS("PRODUCT_BRANCH_DGV_ROW_REC_POSRESERVE_ACC_ACCOUNT_ID");
		// 				DGV_ELEMENT_CHILD_INDEX = 0;
		// 				while(DGV_ELEMENT_CHILD.length > DGV_ELEMENT_CHILD_INDEX)
		// 				{
		// 					if
		// 					(
		// 						DGV_ELEMENT_CHILD[DGV_ELEMENT_CHILD_INDEX].tagName == "SELECT" &&
		// 						JSVC_STR.VAR_IS_BLANK(DGV_ELEMENT_CHILD[DGV_ELEMENT_CHILD_INDEX].id.toString())
		// 					)
		// 					{
		// 						JSOC_ELEMENT.VAR_INNER_HTML
		// 						(
		// 							DGV_ELEMENT_CHILD[DGV_ELEMENT_CHILD_INDEX], 
		// 							JSOC_ELEMENT.VAR_INNER_HTML("REC_POSRESERVE_ACC_ACCOUNT_ID_CMB")
		// 						);
		// 					}	
		// 					DGV_ELEMENT_CHILD_INDEX ++;
		// 				}
		// 			}
					
		// 			// Copy items to edit control
		// 			if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_POSRESERVE_ACC_ACCOUNT_ID_CMB") == true)
		// 			{
		// 				JSOC_CMB.VAR_CLEAR("SEARCH_REC_POSRESERVE_ACC_ACCOUNT_ID_CMB");
		// 				JSOC_CMB.VAR_ADD("SEARCH_REC_POSRESERVE_ACC_ACCOUNT_ID_CMB", FLAG_BIGINT_NULL.toString(),"Any Member");
		// 				JSOC_ELEMENT.VAR_INNER_HTML("SEARCH_REC_POSRESERVE_ACC_ACCOUNT_ID_CMB", JSOC_ELEMENT.VAR_INNER_HTML("REC_POSRESERVE_ACC_ACCOUNT_ID_CMB"), true);
		// 				JSOC_CMB.VAR_SELECTED_INDEX("SEARCH_REC_POSRESERVE_ACC_ACCOUNT_ID_CMB", 0);
		// 				$('.BSSP_SEARCH_REC_POSRESERVE_ACC_ACCOUNT_ID_CMB').selectpicker('refresh');
		// 			}				
					
		// 			// Update Modal Settings
		// 			if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("POS_RESERVE_MODAL") == true)
		// 			{
		// 				INPUT_INSTANCE = JSOC_WINDOW.VAR_INPUT_INSTANCE_CLONE("POS_RESERVE_MODAL");
		// 			}
					
		// 			// Forward populate complete event.
		// 			$('.BSSP_REC_POSRESERVE_ACC_ACCOUNT_ID_CMB').selectpicker('refresh');
		// 			HTTP_POPULATE_RESULT();		
		// 		},
		// 		"REC_POSRESERVE_ACC_ACCOUNT_ID_CMB",
		// 		true, 2
		// 		// , GET_MAP_ARRAY 
		// 	);
		// }
		// if
		// (
		// 	JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_POSRESERVE_ACC_ACCOUNT_ID_CMB") == true &&
		// 	JSOC_ELEMENT.VAR_ELEMENT_EXISTS("REC_POSRESERVE_ACC_ACCOUNT_ID_CMB") == false
		// )
		// {
		// 	JSOC_CMB.VAR_CLEAR("SEARCH_REC_POSRESERVE_ACC_ACCOUNT_ID_CMB");
		// 	JSOC_CMB.VAR_ADD("SEARCH_REC_POSRESERVE_ACC_ACCOUNT_ID_CMB", FLAG_BIGINT_NULL.toString(),"Any Member");
		// 	// To use custom populate
		// 	// var GET_MAP_ARRAY = JSCUS_SQL._ACCOUNT._MEMBER.CUS_PREPARE_MAPPED_ARRAY_FOR_GET();
		// 	// JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_', JSCUS_SQL._SYSTEM._STATUS.STATUS_ACTIVE);	
		// 	JSCUS_SQL._ACCOUNT._MEMBER.CUS_GET_THEN_POPULATE_COMBOBOX
		// 	(
		// 		function()
		// 		{
		// 			// Set Default index
		// 			JSOC_CMB.VAR_SELECTED_INDEX("SEARCH_REC_POSRESERVE_ACC_ACCOUNT_ID_CMB", 0);
					
		// 			// Forward populate complete event.		
		// 			$('.BSSP_SEARCH_REC_POSRESERVE_ACC_ACCOUNT_ID_CMB').selectpicker('refresh');
		// 			HTTP_POPULATE_RESULT();
		// 		},		
		// 		"SEARCH_REC_POSRESERVE_ACC_ACCOUNT_ID_CMB",
		// 		true, 2
		// 		// , GET_MAP_ARRAY 
		// 	);
		// }

		if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("STOCK_FLOW_CMB") == true)
		{
			// Set Default Item, if used in DataGridView
			JSOC_CMB.VAR_ADD("STOCK_FLOW_CMB", FLAG_BIGINT_NULL.toString(), "Select Stock Flow");
			// To use custom populate
			
			var GET_MAP_ARRAY = JSCUS_SQL._CATEGORY._STOCKFLOW.CUS_PREPARE_MAPPED_ARRAY_FOR_GET();
			// JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_', JSCUS_SQL._SYSTEM._STATUS.STATUS_ACTIVE);

			//JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_CAT_STOCKFLOW_IS_IN', 2);
			JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_CAT_STOCKFLOW_STATUS', 2);
			JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_ORDER_FIELD', 'CAT_STOCKFLOW_DESCRIPTION');
			JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_ORDER_TYPE', 'ASC');

			var RESPONSE_HANDLER =
				function(IS_SUCCESS, HTTP_RESPONSE)
				{
					// Disable Dialogs
					// ...........................................
					CUS_SEND_DIALOG_TRY_DISMISS();
					
					// Handle Error
					// ...........................................
					if(IS_SUCCESS === false)
					{
						METHOD_UNABLE_TO_SEND_REQUEST(CALLBACK_METHOD);	
						return;
					}
					
					// Catch JSON Error
					// ...........................................
					else if(JSRC_JSON.REF_IS_JSTRING(HTTP_RESPONSE) == false)
					{
						METHOD_SERVER_ISSUE(CALLBACK_METHOD, HTTP_RESPONSE);
						return;			
					}
						
					// Read Response
					// ...........................................
					else
					{
						// Load Response
						var JSON_OBJECT = JSRC_JSON.REF_CREATE(HTTP_RESPONSE);

						if(JSRC_JSON.REF_IS_SUCCESS(JSON_OBJECT) === false)
						{
							METHOD_REQUEST_FAILURE(CALLBACK_METHOD, JSON_OBJECT);
							return;
						}
						else
						{
							var INDEX = 1;
							var NOT_INCLUDED = [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 100];

							while(JSON_OBJECT.JSON_COUNT >= INDEX)
							{
								if(NOT_INCLUDED.includes(JSVC_NUM.VAR_NVALL(JSON_OBJECT.CAT_STOCKFLOW_ID[INDEX])) === false && JSVC_NUM.VAR_NVALL(JSON_OBJECT.CAT_STOCKFLOW_IS_IN[INDEX]) == 2)
								{
									JSOC_CMB.VAR_ADD("STOCK_FLOW_CMB", JSON_OBJECT.CAT_STOCKFLOW_ID[INDEX], JSON_OBJECT.CAT_STOCKFLOW_DESCRIPTION[INDEX]);
								}

								INDEX++;
							}

							$('#STOCK_FLOW_CMB').select2();
						}
					}
				};

			JSCUS_SQL._CATEGORY._STOCKFLOW.CUS_GET
			(
				GET_MAP_ARRAY,
				RESPONSE_HANDLER,
				true
			);
		}

		// Status		
		// _______________________________________________________________________	
		// if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_POSRESERVE_STATUS_CMB") == true)
		// {
		// 	JSOC_CMB.VAR_CLEAR("SEARCH_REC_POSRESERVE_STATUS_CMB");
		// 	JSOC_CMB.VAR_ADD("SEARCH_REC_POSRESERVE_STATUS_CMB", "0","Any Status");
		// 	JSOC_CMB.VAR_ADD("SEARCH_REC_POSRESERVE_STATUS_CMB", "1","Pending");
		// 	JSOC_CMB.VAR_ADD("SEARCH_REC_POSRESERVE_STATUS_CMB", "2","Approved");
		// 	JSOC_CMB.VAR_ADD("SEARCH_REC_POSRESERVE_STATUS_CMB", "3","Cancelled");
		// 	JSOC_CMB.VAR_ADD("SEARCH_REC_POSRESERVE_STATUS_CMB", "4","Completed");
		// 	JSOC_CMB.VAR_SELECTED_VALUE("SEARCH_REC_POSRESERVE_STATUS_CMB", "1");
		// }			
		
		// if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("REC_POSRESERVE_STATUS_CMB") == true)
		// {
		// 	JSOC_CMB.VAR_CLEAR("REC_POSRESERVE_STATUS_CMB");
		// 	JSOC_CMB.VAR_ADD("REC_POSRESERVE_STATUS_CMB", "1","Pending");
		// 	//JSOC_CMB.VAR_ADD("REC_POSRESERVE_STATUS_CMB", "2","Active");
		// 	// JSOC_CMB.VAR_ADD("REC_POSRESERVE_STATUS_CMB", "3","Closed");
		// 	// JSOC_CMB.VAR_ADD("REC_POSRESERVE_STATUS_CMB", "4","Completed");
		// 	JSOC_CMB.VAR_SELECTED_VALUE("REC_POSRESERVE_STATUS_CMB", "1");
		// }
		
		
		
		// Get Modal Instance (Add Modal Adjustment before this line)
		// _______________________________________________________________________	
		// if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("POS_RESERVE_MODAL") == true)
		// {
		// 	INPUT_INSTANCE = JSOC_WINDOW.VAR_INPUT_INSTANCE_CLONE("POS_RESERVE_MODAL");
		// }
		
		// Add Search Events for the SEARCH_DESCRIPTION_TXT - TextInput
		// _______________________________________________________________________		
		// if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_CMD"))
		// {
		// 	var SEARCH_CMD = JSOC_ELEMENT.VAR_GET("SEARCH_CMD");
		// 	SEARCH_CMD.onkeydown = 
		// 		function() 
		// 		{ 
		// 			return function(e) 
		// 			{
		// 				if
		// 				(
		// 					(
		// 						e.which == 13 || 
		// 						e.keyCode == 13 || 
		// 						e.key === "Enter"
		// 					) &&
		// 					JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_CMD")
		// 				)
		// 				{
		// 					HTTP_SEARCH();
		// 				}
		// 			};
		// 		}();;		
		// }
		
		
		// Load Parent Data (if Exists)
		// _______________________________________________________________________	
		HTTP_PARENT_LOAD();
		
		
		// Pre-Load Items (uncomment if no foreign key pre-fetch)
		// _______________________________________________________________________	
		/*if(CUS_SEND_REQUEST_HAS_QUEUE() == false)
		{
			HTTP_SEARCH();
		}*/
		
		// Disable Dialogs
		// _______________________________________________________________________	
		CUS_SEND_DIALOG_TRY_DISMISS();
	};
	
	
	// ===============================================================
	// Populate Foreign Keys
	// ===============================================================
	function HTTP_POPULATE_RESULT(IS_SUCCESS, HTTP_RESPONSE)
	{
		// Disable Dialogs
		CUS_SEND_DIALOG_TRY_DISMISS();
			
		// Handle Error
		if(IS_SUCCESS === false)
		{
			alert("Unable to populate lists.");
		}
		else
		{
			PRELOAD_POSDEVICE(function() {
				HTTP_STORAGE();
				HTTP_SEARCH();
			});	
		}
	};

	
	// ===============================================================
	// Request Search - PART.A
	// ===============================================================
	function HTTP_SEARCH(NEW_ITEM_ID, EDITED_ROW_INDEX)
	{
		// Optional Value
		// _______________________________________________________________________
		NEW_ITEM_ID = JSVC_VAR.VAR_OPTIONAL(NEW_ITEM_ID, -1);
		EDITED_ROW_INDEX = JSVC_VAR.VAR_OPTIONAL(EDITED_ROW_INDEX, -1);
		
		// Parameter Validate
		// _______________________________________________________________________
		JSVC_AV.VAR_VALIDATE_ARGUMENT_TYPE(NEW_ITEM_ID, 'NEW_ITEM_ID', 'NUMERIC');
		JSVC_AV.VAR_VALIDATE_ARGUMENT_TYPE(EDITED_ROW_INDEX, 'EDITED_ROW_INDEX', 'NUMERIC');
		
		
		// Actual Function
		// _______________________________________________________________________
		var GET_MAP_ARRAY = JSCUS_SQL._CATEGORY._PRODUCT_BRANCH.CUS_PREPARE_MAPPED_ARRAY_FOR_GET();

		JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_CAT_PRODBRANCH_ACC_GROUP_ID', JSCUS_SQL._RECORD._POSDEVICE._LOGIN.REC_POSDEVICE_ACC_GROUP_ID);

		JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_CAT_PRODBRANCH_CAT_PRICEMDL_ID', 1);
		JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_CAT_PRODBRANCH_STATUS', 2);
		JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_ORDER_FIELD', 'CAT_PRODUCT_DESCRIPTION');
		JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_ORDER_TYPE', 'ASC');
		
		JSOC_DIALOG.VAR_LOADING_SPINNER(true);

		JSCUS_SQL._CATEGORY._PRODUCT_BRANCH.CUS_GET
		(
			GET_MAP_ARRAY,
			HTTP_SEARCH_CALLBACK,
			true
		);
	};
	
	// ===============================================================
	// Request Search - PART.A
	// ===============================================================
	function HTTP_SEARCH_LOAD_MORE()
	{
		
		if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_LIMIT_CMB") == true)
		{
			JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_LIMIT', JSOC_CMB.VAR_SELECTED_VALUE("SEARCH_LIMIT_CMB"));		
		}	
		
		// REGULAR Search Mode
		// _______________________________________________________________________
		if(SELECTED_SEARCH_MODE == 0)
		{			
			JSCUS_SQL._RECORD._POS_RESERVE.CUS_GET_ALL
			(
				GET_MAP_ARRAY,
				HTTP_SEARCH_CALLBACK,
				true
			); 		
		}

		
		// LITE Search Mode
		// _______________________________________________________________________
		else if(SELECTED_SEARCH_MODE == 1)
		{			
			JSCUS_SQL._RECORD._POS_RESERVE.CUS_GET_LITE
			(
				GET_MAP_ARRAY,
				HTTP_SEARCH_CALLBACK,
				true
			); 		
		}

		
		// ALL Search Mode
		// _______________________________________________________________________
		else if(SELECTED_SEARCH_MODE == 2)
		{			
			JSCUS_SQL._RECORD._POS_RESERVE.CUS_GET_ALL
			(
				GET_MAP_ARRAY,
				HTTP_SEARCH_CALLBACK,
				true
			); 		
		}		
	}
	
	// ===============================================================
	// Request Search - PART.B
	// ===============================================================
	function HTTP_SEARCH_CALLBACK(IS_SUCCESS, RESPONSE_STRING)
	{
		// Disable Dialogs
		// _______________________________________________________________________
		CUS_SEND_DIALOG_TRY_DISMISS();
		
		// Validate
		// _______________________________________________________________________
		if(IS_SUCCESS === false)
		{
			console.error("CONNECTION ERROR: \n" + RESPONSE_STRING);
			return;
		}
		
		// Validate JSON Response
		// _______________________________________________________________________
		var JSON_OBJECT = JSRC_JSON.REF_CREATE(RESPONSE_STRING);
		if(JSRC_JSON.REF_IS_SUCCESS(JSON_OBJECT) === false)
		{
			console.error("REQUEST ERROR: \n" + RESPONSE_STRING);
			return;
		}
		
		// JSON Empty (Clears the DataGrodView)
		// _______________________________________________________________________
		if(JSRC_JSON.REF_READ(JSON_OBJECT, "JSON_COUNT") <= 0)
		{
			PRODUCT_BRANCH_DGV.ROW.CLEAR();
			JSOC_DIALOG.VAR_MESSAGE_BOX('No transactions found.', 'Information', 'OK', 'ERROR', function() {});
			return;
		}

		// Populate DGV
		// _______________________________________________________________________
		PRODUCT_BRANCH_DGV.POPULATE_FROM_QUERY
		(
			JSON_OBJECT, 
			'',
			false,
			false,
			1,
			[2, 1]
		);
		
		
		// For Applying CFormat
		// _______________________________________________________________________	=
		
		
		// Initialize
		// _______________________________________________________________________	
		var WEBTABLE_DATE = null;
		var ROW_INDEX = 0;

		while(PRODUCT_BRANCH_DGV.ROW.COUNT() > ROW_INDEX)
		{
			if(PRODUCT_BRANCH_DGV.CELL.VALUE('CAT_PRODBRANCH_CAT_PRODUCT_ID_DESCRIPTION', ROW_INDEX).includes(" (Free)") == true)
			{
				PRODUCT_BRANCH_DGV.ROW.ELEMENT(ROW_INDEX).classList.add('d-none');
			}

			ROW_INDEX ++;
		}
	
	
		// DateTime Format
		// _______________________________________________________________________	
	
	};
	
	// ===============================================================
	// Request Search - PART.C
	// ===============================================================
	function HTTP_SEARCH_LIMITED_ROWS_CALLBACK(IS_SUCCESS, RESPONSE_STRING, ROW_INDEX)
	{
		// Disable Dialogs
		// _______________________________________________________________________
		CUS_SEND_DIALOG_TRY_DISMISS();
		
		// Validate
		// _______________________________________________________________________
		if(IS_SUCCESS === false)
		{
			console.error("CONNECTION ERROR: \n" + RESPONSE_STRING);
			return;
		}
		
		// Validate JSON Response
		// _______________________________________________________________________
		var JSON_OBJECT = JSRC_JSON.REF_CREATE(RESPONSE_STRING);
		if(JSRC_JSON.REF_IS_SUCCESS(JSON_OBJECT) === false)
		{
			console.error("REQUEST ERROR: \n" + RESPONSE_STRING);
			return;
		}
		
		// JSON Empty (Clears the DataGrodView)
		// _______________________________________________________________________
		if(JSRC_JSON.REF_READ(JSON_OBJECT, "JSON_COUNT") <= 0)
		{
			PRODUCT_BRANCH_DGV.ROW.CLEAR();
			return;
		}

		// Validate Row Count
		// _______________________________________________________________________	
		if(PRODUCT_BRANCH_DGV.ROW.COUNT() <= 0)
		{
			console.error("DataGridView has no rows to fill.");
			return;
		}

		// Populate DGV
		// _______________________________________________________________________
		PRODUCT_BRANCH_DGV.POPULATE_FROM_QUERY
		(
				JSON_OBJECT, 
				'',
				false,
				false,
				1,
				[2, 1],
				ROW_INDEX
		);
		
				
		// For Applying CFormat
		// _______________________________________________________________________	
		
		
		// Initialize
		// _______________________________________________________________________	
		var WEBTABLE_DATE = null;
	
	
		// DateTime Format
		// _______________________________________________________________________	
	};

	function HTTP_STORAGE() 
	{
		// Get Storage ID
		var GET_MAP_ARRAY = JSCUS_SQL._CATEGORY._STORAGE.CUS_PREPARE_MAPPED_ARRAY_FOR_GET();

		JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_CAT_STORAGE_ACC_GROUP_ID', JSVC_NUM.VAR_NVALL(JSCUS_SQL._RECORD._POSDEVICE._LOGIN.REC_POSDEVICE_ACC_GROUP_ID));
		JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_CAT_STORAGE_IS_STORE', 2);
		JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_CAT_STORAGE_STATUS', 2);
		JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_ORDER_FIELD', 'CAT_STORAGE_ID');
		JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_ORDER_TYPE', 'DESC');
		JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_LIMIT', 1);

		var RESPONSE_HANDLER =
			function(IS_SUCCESS, HTTP_RESPONSE)
				{
					// Disable Dialogs
					// ...........................................
					CUS_SEND_DIALOG_TRY_DISMISS();
					
					// Handle Error
					// ...........................................
					if(IS_SUCCESS === false)
					{
						METHOD_UNABLE_TO_SEND_REQUEST(CALLBACK_METHOD);	
						return;
					}
					
					// Catch JSON Error
					// ...........................................
					else if(JSRC_JSON.REF_IS_JSTRING(HTTP_RESPONSE) == false)
					{
						METHOD_SERVER_ISSUE(CALLBACK_METHOD, HTTP_RESPONSE);
						return;			
					}
						
					// Read Response
					// ...........................................
					else
					{
						// Load Response
						var JSON_OBJECT = JSRC_JSON.REF_CREATE(HTTP_RESPONSE);

						if(JSRC_JSON.REF_IS_SUCCESS(JSON_OBJECT) === false)
						{
							METHOD_REQUEST_FAILURE(CALLBACK_METHOD, JSON_OBJECT);
							return;
						}
						else
						{
							PROPERTY_REC_STORAGE_ID = JSRC_JSON.REF_READ(JSON_OBJECT, "CAT_STORAGE_ID", 1);
						}
					}
				};

		JSCUS_SQL._CATEGORY._STORAGE.CUS_GET
		(
			GET_MAP_ARRAY,
			RESPONSE_HANDLER,
			true
		);
	};
				
	// ===============================================================
	// Begin Processing the Page
	// ===============================================================
	FORM_INITIALIZE();
	FORM_LOAD();