// 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
		// _______________________________________________________________________	
		STOCK_CARD_DGV = DataGridView("STOCK_CARD_DGV");
		//STOCK_CARD_DGV.SETTING_ALLOW_USER_TO_ADD_ROWS = true;
		//STOCK_CARD_DGV.SETTING_EDITABLE = true;
		// STOCK_CARD_DGV.ON_CLICK
		// (			
		// 	function(COL_INDEX, ROW_INDEX)
		// 	{
		// 		// Delete Button
		// 		// ...........................................
		// 		if(STOCK_CARD_DGV.COLUMN.NAME(COL_INDEX) == "DELETE_CMD")
		// 		{
		// 			// Delete Unsaved Item
		// 			if
		// 			(
		// 				STOCK_CARD_DGV.COLUMN.IS_EXISTS("REC_STOCKCARD_ID") &&
		// 				JSVC_NUM.VAR_NVALL(STOCK_CARD_DGV.CELL.VALUE("REC_STOCKCARD_ID", ROW_INDEX)) <= 0
		// 			)
		// 			{
		// 				STOCK_CARD_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(STOCK_CARD_DGV.COLUMN.NAME(COL_INDEX) == "VOID_CMD")
		// 		{
		// 			// Delete Unsaved Item
		// 			if
		// 			(
		// 				STOCK_CARD_DGV.COLUMN.IS_EXISTS("REC_STOCKCARD_ID") &&
		// 				JSVC_NUM.VAR_NVALL(STOCK_CARD_DGV.CELL.VALUE("REC_STOCKCARD_ID", ROW_INDEX)) <= 0
		// 			)
		// 			{
		// 				STOCK_CARD_DGV.ROW.REMOVE_AT(ROW_INDEX);
		// 			}
					
		// 			// Void Saved Item
		// 			else
		// 			{

		// 			}
		// 		}	
				
		// 		// Link to Child Table
		// 		// ...........................................
				
		// 		// Sample Child Code
		// 		else if(STOCK_CARD_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', 
		// 				STOCK_CARD_DGV.CELL.VALUE('REC_STOCKCARD_ID', ROW_INDEX), 
		// 				5, 
		// 				CURRENT_ROOT_PATH
		// 			);
		// 			JSVC_COOKIE.VAR_ADD
		// 			(
		// 				'PROPERTY_PARENT_DESCRIPTION', 
		// 				STOCK_CARD_DGV.CELL.VALUE('REC_STOCKCARD_ID', ROW_INDEX), 
		// 				5, 
		// 				CURRENT_ROOT_PATH
		// 			);
					
		// 			// Open EditPage
		// 			window.location = JSCUS_CACHE.SERVER_URL + '/p/record/stock_card.html';	
		// 			return;
		// 		}
				
						
	
		// 		// If dialog supported
		// 		// ...........................................
		// 		else if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("STOCK_CARD_MODAL") == true)
		// 		{
		// 			// Clear Modal
		// 			if(JSVC_VAR.VAR_ISSET(INPUT_INSTANCE))
		// 			{
		// 				JSOC_WINDOW.VAR_INPUT_INSTANCE_RESTORE(INPUT_INSTANCE);
		// 			}
						
		// 			// Display Modal
		// 			PROPERTY_REC_STOCKCARD_ID = STOCK_CARD_DGV.CELL.VALUE('REC_STOCKCARD_ID', ROW_INDEX);
		// 			PROPERTY_EDIT_ROW_INDEX = ROW_INDEX;
					
		// 			EDIT_HANDLER.REF_IS_MODIFIED = false;
		// 			JSOC_DIALOG.VAR_MODAL("STOCK_CARD_MODAL", true);
		// 			HTTP_LOAD();
		// 			return;
		// 		}
				
		// 		// Open View / Edit Page
		// 		// ...........................................
		// 		else if(STOCK_CARD_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', 
		// 				STOCK_CARD_DGV.CELL.VALUE('REC_STOCKCARD_ID', ROW_INDEX), 
		// 				5, 
		// 				CURRENT_ROOT_PATH
		// 			);
		// 			JSVC_COOKIE.VAR_ADD
		// 			(
		// 				'PROPERTY_PARENT_DESCRIPTION', 
		// 				STOCK_CARD_DGV.CELL.VALUE('REC_STOCKCARD_ID', ROW_INDEX), 
		// 				5, 
		// 				CURRENT_ROOT_PATH
		// 			);
					
		// 			// Open EditPage
		// 			window.location = 'stock_card_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_STOCKCARD_ACC_GROUP_ID_CMB") == true)
		{
			// Set Default Item, if used in DataGridView
			JSOC_CMB.VAR_ADD("REC_STOCKCARD_ACC_GROUP_ID_CMB", FLAG_BIGINT_NULL.toString(), "-");
			// 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_STOCKCARD_ACC_GROUP_ID_CMB", 0);
					
					// Clone to DGV Cell if ComboBox Exists
					if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("STOCK_CARD_DGV_ROW_REC_STOCKCARD_ACC_GROUP_ID") == true)
					{
						DGV_ELEMENT_CHILD = JSOC_ELEMENT.VAR_SUB_ELEMENTS("STOCK_CARD_DGV_ROW_REC_STOCKCARD_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_STOCKCARD_ACC_GROUP_ID_CMB")
								);
							}	
							DGV_ELEMENT_CHILD_INDEX ++;
						}
					}
					
					// Copy items to edit control
					if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_ACC_GROUP_ID_CMB") == true)
					{
						JSOC_CMB.VAR_CLEAR("SEARCH_REC_STOCKCARD_ACC_GROUP_ID_CMB");
						JSOC_CMB.VAR_ADD("SEARCH_REC_STOCKCARD_ACC_GROUP_ID_CMB", FLAG_BIGINT_NULL.toString(),"Any Branch");
						JSOC_ELEMENT.VAR_INNER_HTML("SEARCH_REC_STOCKCARD_ACC_GROUP_ID_CMB", JSOC_ELEMENT.VAR_INNER_HTML("REC_STOCKCARD_ACC_GROUP_ID_CMB"), true);
						JSOC_CMB.VAR_SELECTED_INDEX("SEARCH_REC_STOCKCARD_ACC_GROUP_ID_CMB", 0);
						$('.BSSP_SEARCH_REC_STOCKCARD_ACC_GROUP_ID_CMB').selectpicker('refresh');
					}				
					
					// Update Modal Settings
					if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("STOCK_CARD_MODAL") == true)
					{
						INPUT_INSTANCE = JSOC_WINDOW.VAR_INPUT_INSTANCE_CLONE("STOCK_CARD_MODAL");
					}
					
					// Forward populate complete event.
					$('.BSSP_REC_STOCKCARD_ACC_GROUP_ID_CMB').selectpicker('refresh');
					HTTP_POPULATE_RESULT();		
				},
				"REC_STOCKCARD_ACC_GROUP_ID_CMB",
				true, 2
				// , GET_MAP_ARRAY 
			);
		}
		if
		(
			JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_ACC_GROUP_ID_CMB") == true &&
			JSOC_ELEMENT.VAR_ELEMENT_EXISTS("REC_STOCKCARD_ACC_GROUP_ID_CMB") == false
		)
		{
			JSOC_CMB.VAR_CLEAR("SEARCH_REC_STOCKCARD_ACC_GROUP_ID_CMB");
			JSOC_CMB.VAR_ADD("SEARCH_REC_STOCKCARD_ACC_GROUP_ID_CMB", FLAG_BIGINT_NULL.toString(),"Any 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("SEARCH_REC_STOCKCARD_ACC_GROUP_ID_CMB", 0);
					
					// Forward populate complete event.		
					$('.BSSP_SEARCH_REC_STOCKCARD_ACC_GROUP_ID_CMB').selectpicker('refresh');
					HTTP_POPULATE_RESULT();
				},		
				"SEARCH_REC_STOCKCARD_ACC_GROUP_ID_CMB",
				true, 2
				// , GET_MAP_ARRAY 
			);
		}
		
		// Foreign Key [Fixed]
		// _______________________________________________________________________	
		// if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("REC_STOCKCARD_CAT_PRODUCT_ID_CMB") == true)
		// {
		// 	// Set Default Item, if used in DataGridView
		// 	JSOC_CMB.VAR_ADD("REC_STOCKCARD_CAT_PRODUCT_ID_CMB", FLAG_BIGINT_NULL.toString(), "-");
		// 	// To use custom populate
		// 	// var GET_MAP_ARRAY = JSCUS_SQL._CATEGORY._PRODUCT.CUS_PREPARE_MAPPED_ARRAY_FOR_GET();
		// 	// JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_', JSCUS_SQL._SYSTEM._STATUS.STATUS_ACTIVE);	
		// 	JSCUS_SQL._CATEGORY._PRODUCT.CUS_GET_THEN_POPULATE_COMBOBOX
		// 	(
		// 		function()
		// 		{
		// 			// Set Default index
		// 			JSOC_CMB.VAR_SELECTED_INDEX("REC_STOCKCARD_CAT_PRODUCT_ID_CMB", 0);
					
		// 			// Clone to DGV Cell if ComboBox Exists
		// 			if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("STOCK_CARD_DGV_ROW_REC_STOCKCARD_CAT_PRODUCT_ID") == true)
		// 			{
		// 				DGV_ELEMENT_CHILD = JSOC_ELEMENT.VAR_SUB_ELEMENTS("STOCK_CARD_DGV_ROW_REC_STOCKCARD_CAT_PRODUCT_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_STOCKCARD_CAT_PRODUCT_ID_CMB")
		// 						);
		// 					}	
		// 					DGV_ELEMENT_CHILD_INDEX ++;
		// 				}
		// 			}
					
		// 			// Copy items to edit control
		// 			if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB") == true)
		// 			{
		// 				JSOC_CMB.VAR_CLEAR("SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB");
		// 				JSOC_CMB.VAR_ADD("SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB", FLAG_BIGINT_NULL.toString(),"Any Product");
		// 				JSOC_ELEMENT.VAR_INNER_HTML("SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB", JSOC_ELEMENT.VAR_INNER_HTML("REC_STOCKCARD_CAT_PRODUCT_ID_CMB"), true);
		// 				JSOC_CMB.VAR_SELECTED_INDEX("SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB", 0);
		// 				$('.BSSP_SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB').selectpicker('refresh');
		// 			}				
					
		// 			// Update Modal Settings
		// 			if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("STOCK_CARD_MODAL") == true)
		// 			{
		// 				INPUT_INSTANCE = JSOC_WINDOW.VAR_INPUT_INSTANCE_CLONE("STOCK_CARD_MODAL");
		// 			}
					
		// 			// Forward populate complete event.
		// 			$('.BSSP_REC_STOCKCARD_CAT_PRODUCT_ID_CMB').selectpicker('refresh');
		// 			HTTP_POPULATE_RESULT();		
		// 		},
		// 		"REC_STOCKCARD_CAT_PRODUCT_ID_CMB",
		// 		true, 2
		// 		// , GET_MAP_ARRAY 
		// 	);
		// }
		// if
		// (
		// 	JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB") == true &&
		// 	JSOC_ELEMENT.VAR_ELEMENT_EXISTS("REC_STOCKCARD_CAT_PRODUCT_ID_CMB") == false
		// )
		// {
		// 	JSOC_CMB.VAR_CLEAR("SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB");
		// 	JSOC_CMB.VAR_ADD("SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB", FLAG_BIGINT_NULL.toString(),"Any Product");
		// 	// To use custom populate
		// 	// var GET_MAP_ARRAY = JSCUS_SQL._CATEGORY._PRODUCT.CUS_PREPARE_MAPPED_ARRAY_FOR_GET();
		// 	// JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_', JSCUS_SQL._SYSTEM._STATUS.STATUS_ACTIVE);	
		// 	JSCUS_SQL._CATEGORY._PRODUCT.CUS_GET_THEN_POPULATE_COMBOBOX
		// 	(
		// 		function()
		// 		{
		// 			// Set Default index
		// 			JSOC_CMB.VAR_SELECTED_INDEX("SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB", 0);
					
		// 			// Forward populate complete event.		
		// 			$('.BSSP_SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB').selectpicker('refresh');
		// 			HTTP_POPULATE_RESULT();
		// 		},		
		// 		"SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB",
		// 		true, 2
		// 		// , GET_MAP_ARRAY 
		// 	);
		// }
		
		// Foreign Key [Fixed]
		// _______________________________________________________________________	
		if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB") == true)
		{
			// Set Default Item, if used in DataGridView
			JSOC_CMB.VAR_ADD("REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB", FLAG_BIGINT_NULL.toString(), "-");
			// 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);	
			JSCUS_SQL._CATEGORY._STOCKFLOW.CUS_GET_THEN_POPULATE_COMBOBOX
			(
				function(IS_SUCCESS, STOCKFLOW_JSON)
				{
					// Copy JSON
					if(IS_SUCCESS == true)
					{
						JSON_STOCKFLOW = JSRC_JSON.REF_CREATE(STOCKFLOW_JSON);
					}
					
					// Set Default index
					JSOC_CMB.VAR_SELECTED_INDEX("REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB", 0);
					
					// Clone to DGV Cell if ComboBox Exists
					if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("STOCK_CARD_DGV_ROW_REC_STOCKCARD_CAT_STOCKFLOW_ID") == true)
					{
						DGV_ELEMENT_CHILD = JSOC_ELEMENT.VAR_SUB_ELEMENTS("STOCK_CARD_DGV_ROW_REC_STOCKCARD_CAT_STOCKFLOW_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_STOCKCARD_CAT_STOCKFLOW_ID_CMB")
								);
							}	
							DGV_ELEMENT_CHILD_INDEX ++;
						}
					}
					
					// Copy items to edit control
					if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB") == true)
					{
						JSOC_CMB.VAR_CLEAR("SEARCH_REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB");
						JSOC_CMB.VAR_ADD("SEARCH_REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB", FLAG_BIGINT_NULL.toString(),"Any Stockflow");
						JSOC_ELEMENT.VAR_INNER_HTML("SEARCH_REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB", JSOC_ELEMENT.VAR_INNER_HTML("REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB"), true);
						JSOC_CMB.VAR_SELECTED_INDEX("SEARCH_REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB", 0);
						$('.BSSP_SEARCH_REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB').selectpicker('refresh');
					}				
					
					// Update Modal Settings
					if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("STOCK_CARD_MODAL") == true)
					{
						INPUT_INSTANCE = JSOC_WINDOW.VAR_INPUT_INSTANCE_CLONE("STOCK_CARD_MODAL");
					}
					
					// Forward populate complete event.
					$('.BSSP_REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB').selectpicker('refresh');
					HTTP_POPULATE_RESULT();		
				},
				"REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB",
				true, 2
				// , GET_MAP_ARRAY 
			);
		}


		if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB2") == true)
		{
			// Set Default Item, if used in DataGridView
			JSOC_CMB.VAR_ADD("REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB2", FLAG_BIGINT_NULL.toString(), "-");
			// 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);	
			JSCUS_SQL._CATEGORY._STOCKFLOW.CUS_GET_THEN_POPULATE_COMBOBOX
			(
				function(IS_SUCCESS, STOCKFLOW_JSON)
				{
					// Copy JSON
					if(IS_SUCCESS == true)
					{
						JSON_STOCKFLOW = JSRC_JSON.REF_CREATE(STOCKFLOW_JSON);
					}
					
					// Set Default index
					JSOC_CMB.VAR_SELECTED_INDEX("REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB2", 0);
					
					// Clone to DGV Cell if ComboBox Exists
					if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("STOCK_CARD_DGV_ROW_REC_STOCKCARD_CAT_STOCKFLOW_ID") == true)
					{
						DGV_ELEMENT_CHILD = JSOC_ELEMENT.VAR_SUB_ELEMENTS("STOCK_CARD_DGV_ROW_REC_STOCKCARD_CAT_STOCKFLOW_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_STOCKCARD_CAT_STOCKFLOW_ID_CMB2")
								);
							}	
							DGV_ELEMENT_CHILD_INDEX ++;
						}
					}
					
					// Update Modal Settings
					if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("STOCK_CARD_MODAL") == true)
					{
						INPUT_INSTANCE = JSOC_WINDOW.VAR_INPUT_INSTANCE_CLONE("STOCK_CARD_MODAL");
					}
					
					// Forward populate complete event.
					$('.BSSP_REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB2').selectpicker('refresh');
					HTTP_POPULATE_RESULT();		
				},
				"REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB2",
				true, 2
				// , GET_MAP_ARRAY 
			);
		}




		if
		(
			JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB") == true &&
			JSOC_ELEMENT.VAR_ELEMENT_EXISTS("REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB") == false
		)
		{
			JSOC_CMB.VAR_CLEAR("SEARCH_REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB");
			JSOC_CMB.VAR_ADD("SEARCH_REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB", FLAG_BIGINT_NULL.toString(),"Any Stockflow");
			// 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);	
			JSCUS_SQL._CATEGORY._STOCKFLOW.CUS_GET_THEN_POPULATE_COMBOBOX
			(
				function()
				{
					// Set Default index
					JSOC_CMB.VAR_SELECTED_INDEX("SEARCH_REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB", 0);
					
					// Forward populate complete event.		
					$('.BSSP_SEARCH_REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB').selectpicker('refresh');
					HTTP_POPULATE_RESULT();
				},		
				"SEARCH_REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB",
				true, 2
				// , GET_MAP_ARRAY 
			);
		}
		
		// Foreign Key [Fixed]
		// _______________________________________________________________________	
		// if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("REC_STOCKCARD_CAT_STORAGE_ID_CMB") == true)
		// {
		// 	// Set Default Item, if used in DataGridView
		// 	JSOC_CMB.VAR_ADD("REC_STOCKCARD_CAT_STORAGE_ID_CMB", FLAG_BIGINT_NULL.toString(), "-");
		// 	// To use custom populate
		// 	// var GET_MAP_ARRAY = JSCUS_SQL._CATEGORY._STORAGE.CUS_PREPARE_MAPPED_ARRAY_FOR_GET();
		// 	// JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_', JSCUS_SQL._SYSTEM._STATUS.STATUS_ACTIVE);	
		// 	JSCUS_SQL._CATEGORY._STORAGE.CUS_GET_THEN_POPULATE_COMBOBOX
		// 	(
		// 		function()
		// 		{
		// 			// Set Default index
		// 			JSOC_CMB.VAR_SELECTED_INDEX("REC_STOCKCARD_CAT_STORAGE_ID_CMB", 0);
					
		// 			// Clone to DGV Cell if ComboBox Exists
		// 			if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("STOCK_CARD_DGV_ROW_REC_STOCKCARD_CAT_STORAGE_ID") == true)
		// 			{
		// 				DGV_ELEMENT_CHILD = JSOC_ELEMENT.VAR_SUB_ELEMENTS("STOCK_CARD_DGV_ROW_REC_STOCKCARD_CAT_STORAGE_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_STOCKCARD_CAT_STORAGE_ID_CMB")
		// 						);
		// 					}	
		// 					DGV_ELEMENT_CHILD_INDEX ++;
		// 				}
		// 			}
					
		// 			// Copy items to edit control
		// 			if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_CAT_STORAGE_ID_CMB") == true)
		// 			{
		// 				JSOC_CMB.VAR_CLEAR("SEARCH_REC_STOCKCARD_CAT_STORAGE_ID_CMB");
		// 				JSOC_CMB.VAR_ADD("SEARCH_REC_STOCKCARD_CAT_STORAGE_ID_CMB", FLAG_BIGINT_NULL.toString(),"Any Storage");
		// 				JSOC_ELEMENT.VAR_INNER_HTML("SEARCH_REC_STOCKCARD_CAT_STORAGE_ID_CMB", JSOC_ELEMENT.VAR_INNER_HTML("REC_STOCKCARD_CAT_STORAGE_ID_CMB"), true);
		// 				JSOC_CMB.VAR_SELECTED_INDEX("SEARCH_REC_STOCKCARD_CAT_STORAGE_ID_CMB", 0);
		// 				$('.BSSP_SEARCH_REC_STOCKCARD_CAT_STORAGE_ID_CMB').selectpicker('refresh');
		// 			}				
					
		// 			// Update Modal Settings
		// 			if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("STOCK_CARD_MODAL") == true)
		// 			{
		// 				INPUT_INSTANCE = JSOC_WINDOW.VAR_INPUT_INSTANCE_CLONE("STOCK_CARD_MODAL");
		// 			}
					
		// 			// Forward populate complete event.
		// 			$('.BSSP_REC_STOCKCARD_CAT_STORAGE_ID_CMB').selectpicker('refresh');
		// 			HTTP_POPULATE_RESULT();		
		// 		},
		// 		"REC_STOCKCARD_CAT_STORAGE_ID_CMB",
		// 		true, 2
		// 		// , GET_MAP_ARRAY 
		// 	);
		// }
		// if
		// (
		// 	JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_CAT_STORAGE_ID_CMB") == true &&
		// 	JSOC_ELEMENT.VAR_ELEMENT_EXISTS("REC_STOCKCARD_CAT_STORAGE_ID_CMB") == false
		// )
		// {
		// 	JSOC_CMB.VAR_CLEAR("SEARCH_REC_STOCKCARD_CAT_STORAGE_ID_CMB");
		// 	JSOC_CMB.VAR_ADD("SEARCH_REC_STOCKCARD_CAT_STORAGE_ID_CMB", FLAG_BIGINT_NULL.toString(),"Any Storage");
		// 	// To use custom populate
		// 	// var GET_MAP_ARRAY = JSCUS_SQL._CATEGORY._STORAGE.CUS_PREPARE_MAPPED_ARRAY_FOR_GET();
		// 	// JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_', JSCUS_SQL._SYSTEM._STATUS.STATUS_ACTIVE);	
		// 	JSCUS_SQL._CATEGORY._STORAGE.CUS_GET_THEN_POPULATE_COMBOBOX
		// 	(
		// 		function()
		// 		{
		// 			// Set Default index
		// 			JSOC_CMB.VAR_SELECTED_INDEX("SEARCH_REC_STOCKCARD_CAT_STORAGE_ID_CMB", 0);
					
		// 			// Forward populate complete event.		
		// 			$('.BSSP_SEARCH_REC_STOCKCARD_CAT_STORAGE_ID_CMB').selectpicker('refresh');
		// 			HTTP_POPULATE_RESULT();
		// 		},		
		// 		"SEARCH_REC_STOCKCARD_CAT_STORAGE_ID_CMB",
		// 		true, 2
		// 		// , GET_MAP_ARRAY 
		// 	);
		// }
		
		if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_CAT_STORAGE_ID_CMB") == true)
		{
			JSOC_CMB.VAR_CLEAR("SEARCH_REC_STOCKCARD_CAT_STORAGE_ID_CMB");
			JSOC_CMB.VAR_ADD("SEARCH_REC_STOCKCARD_CAT_STORAGE_ID_CMB", FLAG_BIGINT_NULL.toString(),"Any Storage");
		}

		if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB") == true)
		{
			JSOC_CMB.VAR_CLEAR("SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB");
			JSOC_CMB.VAR_ADD("SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB", FLAG_BIGINT_NULL.toString(),"Any Product");
		}
		
		// Foreign Key [Fixed]
		// _______________________________________________________________________	
		if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("REC_STOCKCARD_ACC_ACCOUNT_ID_CMB") == true)
		{
			// Set Default Item, if used in DataGridView
			JSOC_CMB.VAR_ADD("REC_STOCKCARD_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_STOCKCARD_ACC_ACCOUNT_ID_CMB", 0);
					
					// Clone to DGV Cell if ComboBox Exists
					if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("STOCK_CARD_DGV_ROW_REC_STOCKCARD_ACC_ACCOUNT_ID") == true)
					{
						DGV_ELEMENT_CHILD = JSOC_ELEMENT.VAR_SUB_ELEMENTS("STOCK_CARD_DGV_ROW_REC_STOCKCARD_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_STOCKCARD_ACC_ACCOUNT_ID_CMB")
								);
							}	
							DGV_ELEMENT_CHILD_INDEX ++;
						}
					}
					
					// Copy items to edit control
					if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_ACC_ACCOUNT_ID_CMB") == true)
					{
						JSOC_CMB.VAR_CLEAR("SEARCH_REC_STOCKCARD_ACC_ACCOUNT_ID_CMB");
						JSOC_CMB.VAR_ADD("SEARCH_REC_STOCKCARD_ACC_ACCOUNT_ID_CMB", FLAG_BIGINT_NULL.toString(),"Any Member");
						JSOC_ELEMENT.VAR_INNER_HTML("SEARCH_REC_STOCKCARD_ACC_ACCOUNT_ID_CMB", JSOC_ELEMENT.VAR_INNER_HTML("REC_STOCKCARD_ACC_ACCOUNT_ID_CMB"), true);
						JSOC_CMB.VAR_SELECTED_INDEX("SEARCH_REC_STOCKCARD_ACC_ACCOUNT_ID_CMB", 0);
						$('.BSSP_SEARCH_REC_STOCKCARD_ACC_ACCOUNT_ID_CMB').selectpicker('refresh');
					}				
					
					// Update Modal Settings
					if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("STOCK_CARD_MODAL") == true)
					{
						INPUT_INSTANCE = JSOC_WINDOW.VAR_INPUT_INSTANCE_CLONE("STOCK_CARD_MODAL");
					}
					
					// Forward populate complete event.
					$('.BSSP_REC_STOCKCARD_ACC_ACCOUNT_ID_CMB').selectpicker('refresh');
					HTTP_POPULATE_RESULT();		
				},
				"REC_STOCKCARD_ACC_ACCOUNT_ID_CMB",
				true, 2
				// , GET_MAP_ARRAY 
			);
		}
		if
		(
			JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_ACC_ACCOUNT_ID_CMB") == true &&
			JSOC_ELEMENT.VAR_ELEMENT_EXISTS("REC_STOCKCARD_ACC_ACCOUNT_ID_CMB") == false
		)
		{
			JSOC_CMB.VAR_CLEAR("SEARCH_REC_STOCKCARD_ACC_ACCOUNT_ID_CMB");
			JSOC_CMB.VAR_ADD("SEARCH_REC_STOCKCARD_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_STOCKCARD_ACC_ACCOUNT_ID_CMB", 0);
					
					// Forward populate complete event.		
					$('.BSSP_SEARCH_REC_STOCKCARD_ACC_ACCOUNT_ID_CMB').selectpicker('refresh');
					HTTP_POPULATE_RESULT();
				},		
				"SEARCH_REC_STOCKCARD_ACC_ACCOUNT_ID_CMB",
				true, 2
				// , GET_MAP_ARRAY 
			);
		}
		
		// Status		
		// _______________________________________________________________________	
		if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_STATUS_CMB") == true)
		{
			JSOC_CMB.VAR_CLEAR("SEARCH_REC_STOCKCARD_STATUS_CMB");
			JSOC_CMB.VAR_ADD("SEARCH_REC_STOCKCARD_STATUS_CMB", "0","Any Status");
			JSOC_CMB.VAR_ADD("SEARCH_REC_STOCKCARD_STATUS_CMB", "1","Inactive");
			JSOC_CMB.VAR_ADD("SEARCH_REC_STOCKCARD_STATUS_CMB", "2","Active");
			// JSOC_CMB.VAR_ADD("SEARCH_REC_STOCKCARD_STATUS_CMB", "3","Closed");
			// JSOC_CMB.VAR_ADD("SEARCH_REC_STOCKCARD_STATUS_CMB", "4","Completed");
			JSOC_CMB.VAR_SELECTED_VALUE("SEARCH_REC_STOCKCARD_STATUS_CMB", "2");
		}			
		
		if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("REC_STOCKCARD_STATUS_CMB") == true)
		{
			JSOC_CMB.VAR_CLEAR("REC_STOCKCARD_STATUS_CMB");
			JSOC_CMB.VAR_ADD("REC_STOCKCARD_STATUS_CMB", "1","Inactive");
			JSOC_CMB.VAR_ADD("REC_STOCKCARD_STATUS_CMB", "2","Active");
			// JSOC_CMB.VAR_ADD("REC_STOCKCARD_STATUS_CMB", "3","Closed");
			// JSOC_CMB.VAR_ADD("REC_STOCKCARD_STATUS_CMB", "4","Completed");
			JSOC_CMB.VAR_SELECTED_VALUE("REC_STOCKCARD_STATUS_CMB", "2");
		}
		
		
		
		// Get Modal Instance (Add Modal Adjustment before this line)
		// _______________________________________________________________________	
		if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("STOCK_CARD_MODAL") == true)
		{
			INPUT_INSTANCE = JSOC_WINDOW.VAR_INPUT_INSTANCE_CLONE("STOCK_CARD_MODAL");
		}
		
		// Add Search Events for the SEARCH_DESCRIPTION_TXT - TextInput
		// _______________________________________________________________________		
		if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_ID_TXT"))
		{
			var SEARCH_REC_STOCKCARD_ID_TXT = JSOC_ELEMENT.VAR_GET("SEARCH_REC_STOCKCARD_ID_TXT");
			SEARCH_REC_STOCKCARD_ID_TXT.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
		{
			// Disable Dialogs
			if(CUS_SEND_REQUEST_HAS_QUEUE() == false)
			{
				//HTTP_SEARCH();
			}
		}
	}

	
	// ===============================================================
	// Request Search - PART.A
	// ===============================================================
	function HTTP_SEARCH(NEW_ITEM_ID, EDITED_ROW_INDEX)
	{
		//CHECKING
		if
		(
			JSVC_VAR.VAR_ISSET(SEARCH_REC_STOCKCARD_ACC_GROUP_ID_CMB) &&
			JSOC_CMB.VAR_SELECTED_INDEX(SEARCH_REC_STOCKCARD_ACC_GROUP_ID_CMB) < 0 ||
			JSVC_NUM.VAR_NVALL(JSOC_CMB.VAR_SELECTED_VALUE(SEARCH_REC_STOCKCARD_ACC_GROUP_ID_CMB)) < 0
		)
		{
			JSOC_DIALOG.VAR_MESSAGE_BOX
			(
				'You must select branch.', 
				'Information',
				'OK', 'WARNING',
				function(MESSAGE_RESPONSE)
				{
					SEARCH_REC_STOCKCARD_ACC_GROUP_ID_CMB.style.borderColor = JSCUS_CACHE.SITE_ON_ERROR_BORDER_COLOR;
					SEARCH_REC_STOCKCARD_ACC_GROUP_ID_CMB.focus();
				}
			);	
			return;
		}

/*
		if
		(
			JSVC_VAR.VAR_ISSET(SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB) &&
			JSOC_CMB.VAR_SELECTED_INDEX(SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB) < 0 ||
			JSVC_NUM.VAR_NVALL(JSOC_CMB.VAR_SELECTED_VALUE(SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB)) < 0
		)
		{
			JSOC_DIALOG.VAR_MESSAGE_BOX
			(
				'You must select product.', 
				'Information',
				'OK', 'WARNING',
				function(MESSAGE_RESPONSE)
				{
					SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB.style.borderColor = JSCUS_CACHE.SITE_ON_ERROR_BORDER_COLOR;
					SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB.focus();
				}
			);	
			return;
		}
*/

		// 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
		GET_MAP_ARRAY = JSCUS_SQL._RECORD._STOCK_CARD.CUS_PREPARE_MAPPED_ARRAY_FOR_GET();	
		//  if(JSVC_VAR.VAR_ISSET("PROPERTY_PARENT_ID"))
		// {
		//	JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_PARENT_ID', PROPERTY_PARENT_ID);
		// }  // Parent ID Sample
		
		if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_ACC_GROUP_ID_CMB") == true)
		{
			JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_REC_STOCKCARD_ACC_GROUP_ID', JSVC_NUM.VAR_NVAL(JSOC_CMB.VAR_SELECTED_VALUE("SEARCH_REC_STOCKCARD_ACC_GROUP_ID_CMB")));
		}
		
		if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB") == true)
		{
			JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_REC_STOCKCARD_CAT_PRODUCT_ID', JSVC_NUM.VAR_NVAL(JSOC_CMB.VAR_SELECTED_VALUE("SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB")));
		}
		
		if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB") == true)
		{
			JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_REC_STOCKCARD_CAT_STOCKFLOW_ID', JSVC_NUM.VAR_NVAL(JSOC_CMB.VAR_SELECTED_VALUE("SEARCH_REC_STOCKCARD_CAT_STOCKFLOW_ID_CMB")));
		}
		
		if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_CAT_STORAGE_ID_CMB") == true)
		{
			JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_REC_STOCKCARD_CAT_STORAGE_ID', JSVC_NUM.VAR_NVAL(JSOC_CMB.VAR_SELECTED_VALUE("SEARCH_REC_STOCKCARD_CAT_STORAGE_ID_CMB")));
		}
		
		if
		(
			JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_QUANTITY_FROM_TXT") == true &&
			JSOC_STYLE.VAR_IS_VISIBLE('SEARCH_REC_STOCKCARD_QUANTITY_FROM_TXT') == true
		)
		{
			JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_REC_STOCKCARD_QUANTITY_FROM', JSVC_NUM.VAR_NVAL(JSOC_ELEMENT.VAR_VALUE("SEARCH_REC_STOCKCARD_QUANTITY_FROM_TXT")));
		}
		if
		(
			JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_QUANTITY_TO_TXT") == true &&
			JSOC_STYLE.VAR_IS_VISIBLE('SEARCH_REC_STOCKCARD_QUANTITY_TO_TXT') == true
		)
		{
			JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_REC_STOCKCARD_QUANTITY_TO', JSVC_NUM.VAR_NVAL(JSOC_ELEMENT.VAR_VALUE("SEARCH_REC_STOCKCARD_QUANTITY_TO_TXT")));
		}			
		
		if
		(
			JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_REMARKS_TXT") == true &&
			JSVC_STR.VAR_IS_BLANK( JSOC_ELEMENT.VAR_VALUE("SEARCH_REC_STOCKCARD_REMARKS_TXT")) == false
		)
		{
			JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_REC_STOCKCARD_REMARKS', JSOC_ELEMENT.VAR_VALUE("SEARCH_REC_STOCKCARD_REMARKS_TXT"));
		}
		
		if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_ACC_ACCOUNT_ID_CMB") == true)
		{
			JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_REC_STOCKCARD_ACC_ACCOUNT_ID', JSVC_NUM.VAR_NVAL(JSOC_CMB.VAR_SELECTED_VALUE("SEARCH_REC_STOCKCARD_ACC_ACCOUNT_ID_CMB")));
		}
		
		if
		(
			JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_DATE_TRANSACTION_FROM_DTP") == true &&
			JSOC_STYLE.VAR_IS_VISIBLE('SEARCH_REC_STOCKCARD_DATE_TRANSACTION_FROM_DTP') == true &&
			JSVC_STR.VAR_IS_BLANK(JSOC_ELEMENT.VAR_VALUE("SEARCH_REC_STOCKCARD_DATE_TRANSACTION_FROM_DTP")) == false
		)
		{
			JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_REC_STOCKCARD_DATE_TRANSACTION_FROM', JSVC_DATE.VAR_FORMAT(JSOC_ELEMENT.VAR_VALUE("SEARCH_REC_STOCKCARD_DATE_TRANSACTION_FROM_DTP"), "YYYY-MM-DD") + " 00:00:00.000000");
		}
		if
		(
			JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_DATE_TRANSACTION_TO_DTP") == true &&
			JSOC_STYLE.VAR_IS_VISIBLE('SEARCH_REC_STOCKCARD_DATE_TRANSACTION_TO_DTP') == true &&
			JSVC_STR.VAR_IS_BLANK(JSOC_ELEMENT.VAR_VALUE("SEARCH_REC_STOCKCARD_DATE_TRANSACTION_TO_DTP")) == false
		)
		{
			JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_REC_STOCKCARD_DATE_TRANSACTION_TO', JSVC_DATE.VAR_FORMAT(JSOC_ELEMENT.VAR_VALUE("SEARCH_REC_STOCKCARD_DATE_TRANSACTION_TO_DTP"), "YYYY-MM-DD") + " 23:59:59.999999");
		}
		
		if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_STATUS_CMB") == true)
		{
			JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_REC_STOCKCARD_STATUS', JSVC_NUM.VAR_NVAL(JSOC_CMB.VAR_SELECTED_VALUE("SEARCH_REC_STOCKCARD_STATUS_CMB")));
		}
		
		if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_ORDER_BY_CMB") == true)
		{
			var SELECTED_VAL = JSOC_CMB.VAR_SELECTED_VALUE("SEARCH_ORDER_BY_CMB");
			if(JSVC_STR.VAR_CONTAINS_RIGHT(SELECTED_VAL, '_ASC'))
			{
				JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_ORDER_FIELD', JSVC_STR.VAR_DRIGHT(SELECTED_VAL, 4));
				JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_ORDER_TYPE', 'ASC');		
			}
			else
			{
				JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_ORDER_FIELD', SELECTED_VAL);
				JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_ORDER_TYPE', 'DESC');
			}
		}	
		else
		{
			JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_ORDER_FIELD', 'REC_STOCKCARD_DATE_TRANSACTION');
			JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_ORDER_TYPE', 'DESC');
		}
		
		JSOC_DIALOG.VAR_LOADING_SPINNER(true);
		
		if(NEW_ITEM_ID < 0)
		{
			JSCUS_SQL._RECORD._STOCK_CARD.CUS_GET
			(
				GET_MAP_ARRAY,
				HTTP_SEARCH_CALLBACK,
				true
			); 		
		}
		else
		{		
			GET_MAP_ARRAY = JSCUS_SQL._RECORD._STOCK_CARD.CUS_PREPARE_MAPPED_ARRAY_FOR_GET();	
			JSVC_MAP_ARRAY.VAR_SET(GET_MAP_ARRAY, 'PARAM_REC_STOCKCARD_ID', NEW_ITEM_ID);
			
			JSCUS_SQL._RECORD._STOCK_CARD.CUS_GET
			(
				GET_MAP_ARRAY,
				function(IS_SUCCESS, RESPONSE_STRING)
				{
					// Update Existing Row
					if(EDITED_ROW_INDEX >= 0)
					{
						HTTP_SEARCH_LIMITED_ROWS_CALLBACK(IS_SUCCESS, RESPONSE_STRING, EDITED_ROW_INDEX);
					}
					
					// Add new item
					else
					{
						HTTP_SEARCH_LIMITED_ROWS_CALLBACK(IS_SUCCESS, RESPONSE_STRING, 0);
					}
				},
				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)
		{
			JSOC_ELEMENT.VAR_VALUE("QUANTITY_SUM_LBL", "0.00");
			STOCK_CARD_DGV.ROW.CLEAR();
			return;
		}

		// Populate DGV
		// _______________________________________________________________________
		STOCK_CARD_DGV.POPULATE_FROM_QUERY
		(
				JSON_OBJECT, 
				'',
				false,
				false,
				1,
				[2, 1]
		);
		
		// For Applying CFormat
		// _______________________________________________________________________	
		STOCK_CARD_DGV.COLUMN.CFORMAT("REC_STOCKCARD_QUANTITY");

		var JSON_COUNT = JSRC_JSON.REF_READ(JSON_OBJECT, "JSON_COUNT");
		var COUNTER = 1;
		var QTY = 0;
		while(COUNTER < JSON_COUNT)
		{
			if(JSVC_NUM.VAR_NVAL(JSRC_JSON.REF_READ(JSON_OBJECT, "CAT_STOCKFLOW_IS_IN", COUNTER)) == 2)
				QTY =  QTY + JSVC_NUM.VAR_NVAL(JSRC_JSON.REF_READ(JSON_OBJECT, "REC_STOCKCARD_QUANTITY", COUNTER));
			else
				QTY =  QTY - JSVC_NUM.VAR_NVAL(JSRC_JSON.REF_READ(JSON_OBJECT, "REC_STOCKCARD_QUANTITY", COUNTER));
			COUNTER++;
		}
		
		JSOC_ELEMENT.VAR_VALUE("QUANTITY_SUM_LBL", JSVC_NUM.VAR_CFORMAT(QTY));
		
		// Initialize
		// _______________________________________________________________________	
		var WEBTABLE_DATE = null;
		var ROW_INDEX = 0;
	
		// DateTime Format
		// _______________________________________________________________________	
		if(STOCK_CARD_DGV.COLUMN.IS_EXISTS("REC_STOCKCARD_DATE_TRANSACTION"))
		{
			WEBTABLE_DATE = null;
			ROW_INDEX = 0;
			while(STOCK_CARD_DGV.ROW.COUNT() > ROW_INDEX)
			{
				// Read Current Value
				// ...........................................
				 WEBTABLE_DATE = JSVC_DATE.VAR_TO_DATE
					 (
							STOCK_CARD_DGV.CELL.VALUE
							(
									"REC_STOCKCARD_DATE_TRANSACTION", 
									ROW_INDEX
							)
					 );
				
				// Apply CFormat, and DateFormat
				// ...........................................
				if(JSVC_VAR.VAR_ISSET(WEBTABLE_DATE))
				{
					STOCK_CARD_DGV.CELL.VALUE
					(
							"REC_STOCKCARD_DATE_TRANSACTION", ROW_INDEX, 
							JSVC_DATE.VAR_FORMAT(WEBTABLE_DATE, "MMM DD, YYYY hh:mm TT")
					);				
				}			
				
				// Color Coding (Uncomment to use)
				// ...........................................	
				//STOCK_CARD_DGV.CELL.ELEMENT("COLUMN_NAME", ROW_INDEX).style.color = "#1cc88a"; // Safe
				//STOCK_CARD_DGV.CELL.ELEMENT("COLUMN_NAME", ROW_INDEX).style.color = "#5a5c69"; // Neutral
				//STOCK_CARD_DGV.CELL.ELEMENT("COLUMN_NAME", ROW_INDEX).style.color = "#f6c23e"; // Caution
				//STOCK_CARD_DGV.CELL.ELEMENT("COLUMN_NAME", ROW_INDEX).style.color = "#e74a3b"; // Warning
				
				// To next loop
				// ...........................................	
				ROW_INDEX ++;
			}			
		}
	}
	
	
	// ===============================================================
	// 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)
		{
			STOCK_CARD_DGV.ROW.CLEAR();
			return;
		}

		// Validate Row Count
		// _______________________________________________________________________	
		if(STOCK_CARD_DGV.ROW.COUNT() <= 0)
		{
			console.error("DataGridView has no rows to fill.");
			return;
		}
		JSVC_AV.VAR_VALIDATE_RANGE(ROW_INDEX, "ROW_INDEX", 0, STOCK_CARD_DGV.ROW.COUNT() - 1);
		
		// Populate DGV
		// _______________________________________________________________________
		STOCK_CARD_DGV.POPULATE_FROM_QUERY
		(
				JSON_OBJECT, 
				'',
				false,
				false,
				1,
				[2, 1],
				ROW_INDEX
		);
		
		
		// For Applying CFormat
		// _______________________________________________________________________	
		STOCK_CARD_DGV.COLUMN.CFORMAT("REC_STOCKCARD_QUANTITY");
		
		
		// Initialize
		// _______________________________________________________________________	
		var WEBTABLE_DATE = null;
	
	
		// DateTime Format
		// _______________________________________________________________________	
		if(STOCK_CARD_DGV.COLUMN.IS_EXISTS("REC_STOCKCARD_DATE_TRANSACTION"))
		{
			WEBTABLE_DATE = null;
			// Read Current Value
			// ...........................................
			 WEBTABLE_DATE = JSVC_DATE.VAR_TO_DATE
				 (
						STOCK_CARD_DGV.CELL.VALUE
						(
								"REC_STOCKCARD_DATE_TRANSACTION", 
								ROW_INDEX
						)
				 );
			
			// Apply CFormat, and DateFormat
			// ...........................................
			if(JSVC_VAR.VAR_ISSET(WEBTABLE_DATE))
			{
				STOCK_CARD_DGV.CELL.VALUE
				(
						"REC_STOCKCARD_DATE_TRANSACTION", ROW_INDEX, 
						JSVC_DATE.VAR_FORMAT(WEBTABLE_DATE, "MMM DD, YYYY hh:mm TT")
				);				
			}			
			
			// Color Coding (Uncomment to use)
			// ...........................................	
			//STOCK_CARD_DGV.CELL.ELEMENT("COLUMN_NAME", ROW_INDEX).style.color = "#1cc88a"; // Safe
			//STOCK_CARD_DGV.CELL.ELEMENT("COLUMN_NAME", ROW_INDEX).style.color = "#5a5c69"; // Neutral
			//STOCK_CARD_DGV.CELL.ELEMENT("COLUMN_NAME", ROW_INDEX).style.color = "#f6c23e"; // Caution
			//STOCK_CARD_DGV.CELL.ELEMENT("COLUMN_NAME", ROW_INDEX).style.color = "#e74a3b"; // Warning
		}

	}
	
	function LOAD_SPECIFIC_STORAGELOCATION()
	{
		if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_CAT_STORAGE_ID_CMB") == true)
		{
			JSOC_CMB.VAR_CLEAR("SEARCH_REC_STOCKCARD_CAT_STORAGE_ID_CMB");
			JSOC_CMB.VAR_ADD("SEARCH_REC_STOCKCARD_CAT_STORAGE_ID_CMB", FLAG_BIGINT_NULL.toString(),"Any Storage");
			if (JSVC_NUM.VAR_NVAL(JSOC_CMB.VAR_SELECTED_VALUE("SEARCH_REC_STOCKCARD_ACC_GROUP_ID_CMB")) > 0)
			{
				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_NVAL(JSOC_CMB.VAR_SELECTED_VALUE("SEARCH_REC_STOCKCARD_ACC_GROUP_ID_CMB")));


				JSCUS_SQL._CATEGORY._STORAGE.CUS_GET_THEN_POPULATE_COMBOBOX
				(
					function(){ },
					"SEARCH_REC_STOCKCARD_CAT_STORAGE_ID_CMB",
					true,
					2,
					GET_MAP_ARRAY 
				);
			}
		}
	}

	function LOAD_BRANCH_PRODUCT()
	{
		if(JSOC_ELEMENT.VAR_ELEMENT_EXISTS("SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB") == true)
		{
			JSOC_CMB.VAR_CLEAR("SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB");
			JSOC_CMB.VAR_ADD("SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB", FLAG_BIGINT_NULL.toString(),"Any Product");
			if (JSVC_NUM.VAR_NVAL(JSOC_CMB.VAR_SELECTED_VALUE("SEARCH_REC_STOCKCARD_ACC_GROUP_ID_CMB")) > 0)
			{
				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', JSVC_NUM.VAR_NVAL(JSOC_CMB.VAR_SELECTED_VALUE("SEARCH_REC_STOCKCARD_ACC_GROUP_ID_CMB")));

				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');

				JSCUS_SQL._CATEGORY._PRODUCT_BRANCH.CUS_GET
				(
					GET_MAP_ARRAY,
					function(IS_SUCCESS, RESPONSE_STRING)
					{
						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)
						{
							return;
						}

						JSOC_CMB.VAR_ADD_FROM_JSON
						(
							'SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB',
							JSON_OBJECT,
							'CAT_PRODUCT_ID', 
							'CAT_PRODUCT_DESCRIPTION', 
							true,
							false
						)

						$('#SEARCH_REC_STOCKCARD_CAT_PRODUCT_ID_CMB').select2();
					},
					true
				); 
			}
		}
	}
				
	// ===============================================================
	// Begin Processing the Page
	// ===============================================================
	FORM_INITIALIZE();
	FORM_LOAD();