MOON
Server: Apache
System: Linux nserver.cafsindia.com 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: cafsindia (1002)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: /home/cafsindia/hrms_allyindian_com/application_bk/views/request/form.php
<?php
$logged_user_role     = $this->session->userdata('logged_user_role');
$logged_emp_code      = $this->session->userdata('logged_emp_code');
$db_name              = $this->config->item("db_name");
$prime_id             = "prime_".$controller_name."_id";
$form_id              = $controller_name."_form";
$count                = 0;
$date_exist           = false;
$date_time_exist      = false;
$drop_exist           = false;
$view_count           = 0;
$view_content         = "";
$document_load_script = "";
$validation_rule      = "";
$approval_show        = "";
$multi_pick           = array();
foreach($view_info as $view){
	$prime_form_view_id   = (int)$view->prime_form_view_id;
	$prime_view_module_id = $view->prime_view_module_id;
	$form_view_type       = (int)$view->form_view_type;
	$form_view_type_mode  = (int)$view->form_view_type_mode;
	$form_view_label_name = $view->form_view_label_name;
	$form_view_heading    = ucwords($view->form_view_heading);
	$input_box    		  = "";
	$row_check_input 	  = "";
	$previous_pick_value  = "";
	$row_prime_id 		  = "prime_".$controller_name."_".$form_view_label_name."_id";
	$row_send_data        = "view_id:'$prime_form_view_id',module_id:'$prime_view_module_id',row_label_name:'$form_view_label_name',row_prime_id:$('#$row_prime_id').val(),prime_id:$('#$prime_id').val(),";
	$row_clear_data       = "$('#$row_prime_id').val(0);\n";
	foreach($form_info as $setting){
		$prime_form_id   = (int)$setting->prime_form_id;
		$field_type      = $setting->field_type;
		$label_id        = $setting->label_name;
		$label_name      = ucwords($setting->view_name);
		$mandatory_field = $setting->mandatory_field;
		$input_for       = (int)$setting->input_for;
		$field_isdefault = (int)$setting->field_isdefault;
		$default_value   =  $setting->default_value;
		$file_type       = $setting->file_type;	
		$extension       = $setting->upload_extension;	
		$pick_table      = $setting->pick_table;
		$pick_list       = $setting->pick_list;
		$input_view_type = (int)$setting->input_view_type;
		$input_for       = (int)$setting->input_for;
		$field_length    = $setting->field_length;
		$text_type       = (int)$setting->text_type;
		$date_type       = (int)$setting->date_type;
		$edit_read       = (int)$setting->edit_read;
		$depen_pick_list = (int)$setting->dependent_pick_list;
		$depen_pick_input= $setting->dependent_pick_input;
		$table_column1   = $setting->table_column1;
		$table_column2   = $setting->table_column2;
		$prime_module_id = $setting->prime_module_id;

		$read = '';
		if(((int)$edit_read === 1) && ((int)$form_view->$prime_id)){
			//if($setting->$label_id){
				$read = 'readonly';
			//}
		}
			
		$required = "";
		if((int)$mandatory_field === 1){
			$required = "required";
		}
		if($form_view->$label_id){
			$input_value = $form_view->$label_id;
			if($label_id === "leave_approve_type"){
				if($input_value === "1" || $input_value === "2"){
					$approval_show .= "$('#first_approval_leave_status,#second_approval_leave_status,#first_approval_cancel_status,#second_approval_cancel_status').parent().show();"." "."$('#first_approval_leave_status,#second_approval_leave_status,#first_approval_cancel_status,#second_approval_cancel_status').removeClass('ignore');";
				}else
				if($input_value === "3"){
					$approval_show .= "$('#first_approval_leave_status,#first_approval_cancel_status').parent().show();"." "."$('#second_approval_leave_status,#second_approval_cancel_status').parent().hide();"." "."$('#first_approval_leave_status,#first_approval_cancel_status').removeClass('ignore');"." "."$('#second_approval_leave_status,#second_approval_cancel_status').addClass('ignore');";
				}else{
					$approval_show .= "$('#second_approval_leave_status,#second_approval_cancel_status').parent().show();"." "."$('#first_approval_leave_status,#first_approval_cancel_status').parent().hide();"." "."$('#second_approval_leave_status,#second_approval_cancel_status').removeClass('ignore');"." "."$('#first_approval_leave_status,#first_approval_cancel_status').addClass('ignore');";
				}
			}
		}else{
			$input_value = $default_value;
		}
		if($prime_form_view_id === $input_for){
			/*=================== FORM INPUT PROCESS - START ===================*/
			$form_label = form_label($label_name, $label_id, array('class' => "control-label $required"));	
			$valid_class = "alpha";
			if(((int)$field_type === 3) ||((int)$field_type === 11)){
				$valid_class = "number";
			}
			if((int)$field_type === 2){
				$valid_class = "decimal_no";
			}						
			//TEXT BOX
			if((int)$field_type === 1){
				if($text_type === 1){
					$valid_class = "alpha_text";
				}else
				if($text_type === 2){
					$valid_class = "alpha";
				}else
				if($text_type === 3){
					$valid_class = "number";
				}
				$input_value = str_replace('^',"'",$input_value);
				$form_input = form_input(array("name"=>$label_id, "id"=>$label_id,"value"=>$input_value,"placeholder"=>$label_name, $read=>true,"class"=>"form-control input-sm $valid_class"));
				$input_box .= "<div class='form-group'>$form_label $form_input</div>";
			}else
			//DECIMALS
			if((int)$field_type === 2){
				$form_input = form_input(array("name"=>$label_id, "id"=>$label_id,"value"=>$input_value,"placeholder"=>$label_name, $read=>true, "class"=>"form-control input-sm $valid_class"));
				$input_box .= "<div class='form-group'>$form_label $form_input</div>";
			}else
			//INTEGER
			if((int)$field_type === 3){
				$form_input = form_input(array("name"=>$label_id, "id"=>$label_id,"value"=>$input_value,"placeholder"=>$label_name, $read=>true, "class"=>"form-control input-sm $valid_class"));
				$input_box .= "<div class='form-group'>$form_label $form_input</div>";
			}else
			//DATE
			if((int)$field_type === 4){
				$date_exist = true;
				$date = "";
				if($input_value){
					if((int)$date_type === 1){
						$date = date('d-m-Y',strtotime($input_value));
						if($date === "01-01-1970" || $date ==="30-11--0001"){
							$date = "";
						}
					}else{
						$date = $input_value;
					}
				}else{
					if($label_id === "request_date" || $label_id === "entry_date"){
						$date = date("d-m-Y");
					}
				}
				if((int)$date_type === 1){
					$datepicker = "datepicker";
				}else
				if((int)$date_type === 2){
					$datepicker = "datepicker_month";
				}else
				if((int)$date_type === 3){
					$datepicker = "datepicker_year";
				}
				$form_input =  form_input(array("name"=>$label_id, "id"=>$label_id,"value"=>$date,"placeholder"=>$label_name, $read=>true, "class"=>"form-control input-sm $datepicker"));
				$input_box .= "<div class='form-group'>$form_label $form_input</div>";
			}else
			//PICKLIST
			if((int)$field_type === 5){
				$drop_exist = true;
				$first_approval_emp_code  = $form_view->first_level_approval;
				$second_approval_emp_code = $form_view->second_level_approval;
				$drop_down_array = array("name" => $label_id,"id" => $label_id,"class" =>'form-control input-sm select2');
				if($read){
					$drop_down_array['readonly'] = 'readonly';
				}
				$tbl_data = $all_pick[$label_id]['array_list'];
				if($label_id === "component_value"){
					$tbl_data = $all_pick[$components]['array_list'];
				}
				if($label_id === "first_approval_leave_status" || $label_id === "first_approval_cancel_status"){
					if($first_approval_emp_code !== $logged_emp_code){
						$drop_down_array['readonly'] = 'readonly';
					}
				}
				if($label_id === "second_approval_leave_status" || $label_id === "second_approval_cancel_status"){
					if($second_approval_emp_code !== $logged_emp_code){
						$drop_down_array['readonly'] = 'readonly';
					}
				}
				if($label_id === "first_level_approval"){
					if($first_approval_emp_code !== $logged_emp_code){
						// $drop_down_array['readonly'] = 'readonly';
						$drop_down_array = "";
						$tbl_data        = "";
						$input_value     = "";
						$form_label      = "";
						$form_dropdown   = "";
					}else{
						// $drop_down_array['readonly'] = 'readonly';
						$form_dropdown =  form_dropdown($drop_down_array, $tbl_data,$input_value);
						$input_box .= "<div class='form-group'>$form_label $form_dropdown</div>";
					}
				}else
				if($label_id === "second_level_approval"){
					if($second_approval_emp_code !== $logged_emp_code){
						// $drop_down_array['readonly'] = 'readonly';
						$drop_down_array = "";
						$tbl_data        = "";
						$input_value     = "";
						$form_label      = "";
						$form_dropdown   = "";
					}else{
						// $drop_down_array['readonly'] = 'readonly';
						$form_dropdown =  form_dropdown($drop_down_array, $tbl_data,$input_value);
						$input_box .= "<div class='form-group'>$form_label $form_dropdown</div>";
					}
				}else{
					$form_dropdown =  form_dropdown($drop_down_array, $tbl_data,$input_value);
					$input_box .= "<div class='form-group'>$form_label $form_dropdown</div>";			
				}
					
			}else
			//CHECKBOX
			if((int)$field_type === 6){
				$checkbox_array = array("name" => $label_id,"id" => $label_id, "value"=> 1, "checked" => ($input_value) ? 1 : 0);
				if($read){
					$checkbox_array['disabled'] = 'true';
				}
				$form_checkbox = form_checkbox($checkbox_array);
				$input_box .= "<div class='form-group'> <label class='checkbox-inline'> $form_checkbox $form_label </label></div>";
			}else
			//MULTI PICKLIST
			if((int)$field_type === 7){
				$drop_exist = true;
				$multi_name   = $label_id."[]";
				$multi_pick[$label_id] = $multi_name;
				$multi_select = explode(',',$input_value);
				$drop_down_array = array("name" => $multi_name,"multiple id" => $label_id,"class" =>'form-control input-sm select2');
				if($read){
					$drop_down_array['readonly'] = 'readonly';
				}
				$form_dropdown = form_dropdown($drop_down_array,$all_pick[$label_id]['array_list'] ,$multi_select);
				$input_box .= "<div class='form-group'> $form_label $form_dropdown</div>";
			}else
			//TEXT AREA
			if((int)$field_type === 8){
				$value = str_replace('^',"'",$input_value);
				$input_box .= "<div class='form-group'> $form_label <textarea name='$label_id' id='$label_id' class='form-control' rows='4' placeholder='$label_name' $read = true>$value</textarea></div>";
			}else
			//AUTOCOMPLETE
			if((int)$field_type === 9){
				$hidden_id    = $label_id."_hidden_".$prime_form_id;
				$hidden_value = $all_pick[$label_id]['array_list'][$input_value];
				if($depen_pick_list === 1){
					$hidden_value = $auto_pick[$label_id][$input_value];
				}
				$autocomplete_array = array("name"=>$hidden_id, "id"=>$hidden_id,"value"=>$hidden_value,"placeholder"=>"Search ".$label_name, "class"=>"form-control input-sm");
				if($read){
					$autocomplete_array['readonly'] = 'readonly';
				}
				$form_input   = form_input($autocomplete_array);
				$hidden_input = form_input( array("name"=>$label_id, "id"=>$label_id,"value"=>$input_value,"type"=>"hidden"));
				$input_box   .= "<div class='form-group'>$form_label $hidden_input $form_input</div>";
			}else
			//FILE UPLOAD
			if((int)$field_type === 10){
				$value       = $input_value;
				$upload_id   = "upload_".$label_id;
				$tabel_id   = "table_".$label_id;
				$proof       = base_url("$value");
				$form_upload = form_upload(array('name' => $upload_id,'id' => $upload_id,'class' => 'form-control input-sm','value' => $input_value,'accept' => $file_type ));
				
				$remove_btn = "";
				$view_btn = "";
				if($value){
					$file_name = explode("/",$value);
					$file_name = $file_name[2];
					if((int)$mandatory_field !== 1){
						$remove_btn = "<a onclick=remove_file('$prime_id','$field_isdefault','$label_id'); style='color: red; cursor: pointer;'><i class='fa fa-times' aria-hidden='true'></i></a>";
					}
					$view_btn   = "<a href='$proof' target='_blank' style='cursor: pointer;'>$file_name</a>";
				}
				
				$input_box .= "<div class='form-group'>
								$form_label 
								<input type='hidden' id='$label_id' name='$label_id' value='$value'>
								$form_upload
								<table style='width: 100%;' id='$tabel_id'>
									<tr>
										<td colspan='2'><div class='progress_bar' id='div_$label_id' style='display:none;'><div class='process_percent' id='process_$label_id'>10%</div></div></td></tr>
									<tr>
										<td>$remove_btn</td>
										<td style='text-overflow: ellipsis; overflow: hidden; white-space: nowrap; max-width: 100px;'>$view_btn</td>
									</tr>
								</table>
							 </div>";
			}else
			//MOBILE NUMBER
			if((int)$field_type === 11){
				$form_input = form_input(array("name"=>$label_id, "id"=>$label_id,"value"=>$input_value,"placeholder"=>$label_name,$read=>true,"class"=>"form-control input-sm $valid_class"));
				$input_box .= "<div class='form-group'>$form_label $form_input</div>";

				// $postvalue[$label_id]= $input_value;
				// $json_data  = json_encode($postvalue);
			}else
			//EMAIL
			if((int)$field_type === 12){
				$form_input = form_input(array("name"=>$label_id, "id"=>$label_id,"value"=>$input_value,"placeholder"=>$label_name,$read=>true, "class"=>"form-control input-sm $valid_class"));
				$input_box .= "<div class='form-group'>$form_label $form_input</div>";
			}else
			//DATE & TIME
			if((int)$field_type === 13){
				$date_time_exist = true;
				$date = "";
				if($input_value){
					$date = date('d-m-Y H:i:s',strtotime($input_value));
					if(strpos($date, '01-01-1970') !== false) {
						$date = date("d-m-Y H:i:s");
					}
				}
				$form_input =  form_input(array("name"=>$label_id, "id"=>$label_id,"value"=>$date,"placeholder"=>$label_name,$read=>true, "class"=>"form-control input-sm datepicker_time"));
				$input_box .= "<div class='form-group'>$form_label $form_input</div>";
			}else
			//READ ONLY
			if((int)$field_type === 14){
				$read = '';
				if((int)$form_view->$label_id > 0){
					$read = 'readonly';
				}
				$form_input = form_input(array("name"=>$label_id, "id"=>$label_id,"value"=>$input_value,"placeholder"=>$label_name, $read => 'true',"class"=>"form-control input-sm $valid_class"));
				$input_box .= "<div class='form-group'>$form_label $form_input</div>";
			}else
			// TIME ONLY
			if((int)$field_type === 15){
				if($input_value){
					$time = $input_value;
				}else{
					$time = "00:00";
				}
				$form_input =  form_input(array("name"=>$label_id, "id"=>$label_id,"value"=>$time,"placeholder"=>$label_name, $read=>true, "class"=>"form-control input-sm only_time"));
				$input_box .= "<div class='form-group'>$form_label $form_input</div>";
			}
			/*=================== FORM INPUT PROCESS - END ===================*/
			
			/*================ FORM VALIDATION SCRIPT - START ================*/
			$len = "";
			if($field_length){
				$len = "maxlength: $field_length,";
			}
			$required = "";
			if((int)$mandatory_field === 1){
				$required = "required: true,";
			}
			if(($input_view_type === 1) || ($input_view_type === 2)){				
				if((int)$field_type === 1){ //TEXT
					$validation_rule .= "$label_id:{ $required $len },";
				}else					
				if((int)$field_type === 2){ //DECIMALS
					$validation_rule .=  "$label_id:{ $required number: true, $len },";
				}else					
				if((int)$field_type === 3){ //INTEGER
					$validation_rule .=  "$label_id:{ $required number: true, $len },";
				}else					
				if((int)$field_type === 4){ //DATE
					$validation_rule .=  "$label_id:{ $required $len },";
				}else					
				if((int)$field_type === 5){ //PICKLIST
					$validation_rule .=  "$label_id:{ $required $len },";
				}else					
				if((int)$field_type === 6){ //CHECKBOX
					$validation_rule .=  "$label_id:{ $required $len },";
				}else					
				if((int)$field_type === 7){ //MULTI PICKLIST
					$multi_name = $label_id."[]";
					$validation_rule .= '"'.$multi_name.'":"required",'."\n";
				}else					
				if((int)$field_type === 8){ //SUMMARY BOX
					$validation_rule .=  "$label_id:{ $required $len },";
				}else					
				if((int)$field_type === 9){ //AUTO COMPLETE BOX
					$hidden_id    = $label_id."_hidden_".$prime_form_id;
					$validation_rule .= "$hidden_id:{ $required $len },";
				}else					
				if((int)$field_type === 10){ //FILE UPLOAD BOX
					$validation_rule .=  "$label_id:{ $required $len },";
				}else					
				if((int)$field_type === 11){ //MOBILE NUMBER
					$validation_rule .=  "$label_id:{ $required number: true, minlength:$field_length, maxlength:$field_length },";
				}else					
				if((int)$field_type === 12){ //EMAIL
					$validation_rule .=  "$label_id:{ $required email: true, $len },";
				}else					
				if((int)$field_type === 13){ //DATE & TIME
					$validation_rule .=  "$label_id:{ $required $len },";
				}else					
				if((int)$field_type === 14){ //READ ONLY
					$validation_rule .=  "$label_id:{ $required $len },";
				}else
				if((int)$field_type === 15){ //DATE
					$validation_rule .=  "$label_id:{ $required $len },";
				}
			}
			/*================= FORM VALIDATION SCRIPT - END =================*/
			
			/*================= DOCUMENT LOAD SCRIPT - START =================*/
			//ON-LOAD SCRIPT MULTI SELECT REMOVE EMPTY
			if((int)$field_type === 5){
				$get_depend 		   = json_encode($get_depend_prime_id);
				if (in_array($label_id, $depend_label_id ?? [])) {
					$change_label_id   = $label_id;
				}
				if($depen_pick_list === 1){
					$new_span              =  $label_id.'_span';
					$dep_url               = site_url("$controller_name/dependent_data_set");
					
					//DR CODE FOR EDIT BUTTON CLICK AFTER DEPENDENT DROPDOWN FETCH(UPDATE)
					$document_load_script .= "var depen_select_val  = $('#$depen_pick_input').val();
					if(depen_select_val){
						$.ajax({
							url: '$dep_url',
							type: 'post',
							data: {prime_module_id:'$prime_module_id',depen_select:depen_select_val,depen_pick_input:'$depen_pick_input',table_column1:'$table_column1',table_column2:'$table_column2',label_id:'$label_id',pick_table:'$pick_table',pick_list:'$pick_list',pick_display_val:'$pick_display_val'},
							beforeSend: function () {
								$('#$label_id').next('span').attr('id', '$new_span');
								$('#$new_span').html('<span style=\"color:#CC3366\";><i class=\"fa fa-spinner fa-spin fa-2x fa-fw\"></i><br/>Loading...</span>');  
							},
							success: function(result_data){
								$('#$new_span').empty();
								$('.select2').select2({
									placeholder: '---- Select ----',
									allowClear: true,
									//dropdownParent: $('.modal-dialog')
								});
								var select_data = $('#$label_id').val();
								$('#$label_id').html(result_data);
								$('#$label_id').val(select_data);
							}
						});
					}\n";
					//DR CODE FOR DEPENDENT ON CHANGE CONDITION
					$document_load_script .= "$('#$depen_pick_input').change(function(e) {
						var depen_select_val  = $('#$depen_pick_input').val();
						$.ajax({
							url: '$dep_url',
							type: 'post',
							data: {prime_module_id:'$prime_module_id',depen_select:depen_select_val,depen_pick_input:'$depen_pick_input',table_column1:'$table_column1',table_column2:'$table_column2',label_id:'$label_id',pick_table:'$pick_table',pick_list:'$pick_list',pick_display_val:'$pick_display_val'},
							beforeSend: function () {
								$('#$label_id').next('span').attr('id', '$new_span');
								$('#$new_span').html('<span style=\"color:#CC3366\";><i class=\"fa fa-spinner fa-spin fa-2x fa-fw\"></i><br/>Loading...</span>');  
							},
							success: function(result_data){
								// $('#$new_span').empty();
								$('.select2').select2({
									placeholder: '---- Select ----',
									allowClear: true,
									//dropdownParent: $('.modal-dialog')
								});
								var get_depend 	 	= JSON.parse('$get_depend');
								$.each(get_depend, function(key, value) {
									var label_id 	= '$label_id';
									var depand_val 	= value['dependent_pick_input'];
									var depand_prime= value['prime_form_id'];
									if((depand_val) && ('$depen_pick_input' !== key)){
										var depand_prime_id = key+'_hidden_'+depand_prime;
										var depen_key_val	= '';
										if('$depen_pick_input' === depand_val){
											$('#'+key).val('');
											$('#'+depand_prime_id).val('');
											var depen_key_val	= key;
										}

										$.each(get_depend, function(keys, values) {
											var depand_vals = values['dependent_pick_input'];
											if((depen_key_val === depand_vals) && depen_key_val !== ''){
												var depand_labels = get_depend[keys]['prime_form_id'];
												var depand_keys   = keys+'_hidden_'+depand_labels;
												$('#'+depand_keys).val('');
												$('#'+keys).val('');
											}
										});
										// select_option();
									}
								});
								$('#$label_id').val('');
								$('#$label_id').html(result_data);
								$(function(){
									setTimeout(function() {
										$('.select2').select2({
											placeholder: '---- Select ----',
											allowClear: true,
											dropdownParent: $('.modal-dialog')
										});
										$('.select2-tags').select2({
											tags: true,
											tokenSeparators: [',']
										});
									}, 0);
								});
							}
						});
					});\n";
					if($change_label_id){
						$document_load_script .= "$('#$change_label_id').change(function(e) {
							var get_depend 	 	= JSON.parse('$get_depend');
									$.each(get_depend, function(key, value) {
										var label_id 	= '$label_id';
										var depand_val 	= value['dependent_pick_input'];
										var depand_prime= value['prime_form_id'];
										if((depand_val) && ('$label_id' !== key)){
											var depand_prime_id = key+'_hidden_'+depand_prime;
											var depen_key_val	= '';
											if('$label_id' === depand_val){
												$('#'+key).val('');
												$('#'+depand_prime_id).val('');
												var depen_key_val	= key;
											}

											$.each(get_depend, function(keys, values) {
												var depand_vals = values['dependent_pick_input'];
												if((depen_key_val === depand_vals) && depen_key_val !== ''){
													var depand_labels = get_depend[keys]['prime_form_id'];
													var depand_keys   = keys+'_hidden_'+depand_labels;
													$('#'+depand_keys).val('');
													$('#'+keys).val('');
												}
											});
											// select_option();
											$(function(){
												setTimeout(function() {
													$('.select2').select2({
														placeholder: '---- Select ----',
														allowClear: true,
														dropdownParent: $('.modal-dialog')
													});
													$('.select2-tags').select2({
														tags: true,
														tokenSeparators: [',']
													});
												}, 0);
											});
										}
									});
						});\n";
					}
				}else
				if($depen_pick_list === 2){
					$depen_pick_inputs = '#'.$label_id;
					$document_load_script .= "$(document).on('change', '$depen_pick_inputs',function(){
						var get_depend 	 	= JSON.parse('$get_depend');
						$.each(get_depend, function(key, value) {
							var label_id 	= '$label_id';
							var depand_val 	= value['dependent_pick_input'];
							var depand_prime= value['prime_form_id'];
							if((depand_val) && ('$depen_pick_input' !== key)){
								var depand_prime_id = key+'_hidden_'+depand_prime;
								var depen_key_val	= '';
								if('$label_id' === depand_val){
									$('#'+key).val('');
									$('#'+depand_prime_id).val('');
									var depen_key_val	= key;
								}

								$.each(get_depend, function(keys, values) {
									var depand_vals = values['dependent_pick_input'];
									if((depen_key_val === depand_vals) && depen_key_val !== ''){
										var depand_labels = get_depend[keys]['prime_form_id'];
										var depand_keys   = keys+'_hidden_'+depand_labels;
										$('#'+depand_keys).val('');
										$('#'+keys).val('');
									}
								});
								// select_option();

								$(function(){
									setTimeout(function() {
										$('.select2').select2({
											placeholder: '---- Select ----',
											allowClear: true,
											dropdownParent: $('.modal-dialog')
										});
										$('.select2-tags').select2({
											tags: true,
											tokenSeparators: [',']
										});
									}, 0);
								});
							}
						});
					});\n";
					if($change_label_id){
						$document_load_script .= "$('#$change_label_id').change(function(e) {
							var get_depend 	 	= JSON.parse('$get_depend');
									$.each(get_depend, function(key, value) {
										var label_id 	= '$label_id';
										var depand_val 	= value['dependent_pick_input'];
										var depand_prime= value['prime_form_id'];
										if((depand_val) && ('$label_id' !== key)){
											var depand_prime_id = key+'_hidden_'+depand_prime;
											var depen_key_val	= '';
											if('$label_id' === depand_val){
												$('#'+key).val('');
												$('#'+depand_prime_id).val('');
												var depen_key_val	= key;
											}

											$.each(get_depend, function(keys, values) {
												var depand_vals = values['dependent_pick_input'];
												if((depen_key_val === depand_vals) && depen_key_val !== ''){
													var depand_labels = get_depend[keys]['prime_form_id'];
													var depand_keys   = keys+'_hidden_'+depand_labels;
													$('#'+depand_keys).val('');
													$('#'+keys).val('');
												}
											});
											// select_option();
											$(function(){
												setTimeout(function() {
													$('.select2').select2({
														placeholder: '---- Select ----',
														allowClear: true,
														dropdownParent: $('.modal-dialog')
													});
													$('.select2-tags').select2({
														tags: true,
														tokenSeparators: [',']
													});
												}, 0);
											});
										}
									});
						});\n";
					}
				}
			}
			//ON-LOAD SCRIPT MULTI SELECT REMOVE EMPTY
			if((int)$field_type === 7){
				if(!$form_view->$label_id){
					$document_load_script .= "$('#$label_id option:selected').removeAttr('selected');\n";
				}
			}
			//ON-LOAD SCRIPT FOR SINGLE AUTOCOMPLET BOX
			if((int)$field_type === 9){
				$hidden_id = $label_id."_hidden_".$prime_form_id;
				$auto_id  = "#$label_id";
				$hidden_id 		= $label_id."_hidden_".$prime_form_id;
				$auto_id  		= "#$label_id";
				$auto_url 		= site_url("$controller_name/suggest");
				$document_load_script .= "$('#$hidden_id').autocomplete({
					minChars:2,
					autoFocus: true,
					delay:10,
					appendTo: '.modal-content',
					source: function (request, response) {
						var key       = '$encKey'; 
						var encData   = encrypt(key,{term:request.term,prime_form_id:'$prime_form_id'});
						$.ajax({
							url : '$auto_url',
							type: 'POST',
							data: encData,
							success: function (data) {
								var rslt = JSON.parse(data);
								response($.map(rslt, function (el) {
									if(el.value === '0'){
										$('#$hidden_id').val('');
									}else{
										return {
											value: el.value,
											label: el.label,
											display_name:el.display_name
										};
									}
								}));
							}
						});
					},
					select: function(e, ui) {
						e.preventDefault();
						$('$auto_id').val(ui.item.value);
						$('#$hidden_id').val(ui.item.display_name);
					},
					change: function(event, ui) {
				        if (ui.item === null || ui.item === '' || ui.item === 'null') {
				            $('$auto_id').val('');
							$('#$hidden_id').val('');
				        }
				    }
				});\n";
			}
			//ON-LOAD SCRIPT FILE UPLOAD INPUT BOX
			if((int)$field_type === 10){
				$upload_id   = "upload_".$label_id;
				$check_size  = 2;
				$send_url	 = site_url("$controller_name/upload_files");
				$document_load_script .= "$('#$upload_id').change(function() {
					var file_data         = $('#$upload_id').prop('files')[0];
					var fileName          = file_data.name;
					var size              = file_data.size;
					var type              = file_data.type;
					var key               = '$encKey';
					// Ensure a file was selected
					if (!file_data) {
						toastr.error('No file selected..');
						return;
					}
					const reader      = new FileReader();
					reader.onload     = function(e) {
						const str     = e.target.result.split(',')[1]; // Get Base64 without MIME prefix
						var encData   = encrypt(key,{file_data:str,send_from:'$controller_name',label_id:'$label_id',fileName:fileName,type:type,size:size,send_for:'upload'});
						$.ajax({
							url: '$send_url',
							cache: false,
							contentType: 'text/plain',
							processData: false,
							data: encData,
							beforeSend: function(){
								$('#div_$label_id').show();
								$('#submit').html('<i class=\"fa fa-spinner fa-spin\"></i> Processing...');
								$('#submit').attr('disabled','disabled');
								progress_bar('$label_id');
							},
							type: 'post',
							success: function(result_data){
								var rslt = JSON.parse(result_data);
								if(rslt['success']){
									$('#$label_id').val(rslt['path']);
								}else{
									toastr.error(rslt['msg']);
									$('#$upload_id').val('');
								}
							}
						});
					};
					reader.onerror = function(error) {
						console.error('Error reading file:', error);
					};
					reader.readAsDataURL(file_data); // Read the file as Data URL (Base64)
				});\n";
			}
			//ON-LOAD SCRIPT FOR ROW SET AUTO SAVE PRIMARY FORM			
			if(((int)$input_view_type === 3) && ((int)$form_view->$prime_id === 0) && ((int)$view_count === 0)){
				$view_count++;
				$change_event = "focusout";
				$auto_save_id = $label_id;
				if(((int)$field_type === 4)|| ((int)$field_type === 13)){
					$change_event = "blur"; 
					$auto_save_id = $label_id;					
				}else
				if(((int)$field_type === 5)|| ((int)$field_type === 7)){
					$change_event = "change"; 
					$auto_save_id = $label_id;
				}else
				if((int)$field_type === 9){
					$hidden_id = $label_id."_hidden_".$prime_form_id;
					$auto_save_id = $hidden_id;
				}				
				$document_load_script .= "$('#$auto_save_id').bind('$change_event', function(e) {
							e.preventDefault();
							if($(form_id).valid()){
								$(form_id).submit();
							}else{
								$('#$auto_save_id').val('');
								toastr.clear();
								toastr.error('Please fill all required in previous tab');
								$('.row_btn').hide();
							}
						});\n";
			}
			//ON-LOAD SCRIPT FOR ROW SET AUTO SAVE
			if((int)$input_view_type === 3){
				if((int)$mandatory_field === 1){
					$check_input_id = $label_id;
					if((int)$field_type === 9){
						$hidden_id = $label_id."_hidden_".$prime_form_id;
						$check_input_id = $label_id;
					}
					$row_check_input .= "#$check_input_id,";
				}
				$row_send_data  .= "$label_id:$('#$label_id').val(),";
				
				if((int)$field_type === 6){
					$row_clear_data .= "$('#$label_id').prop('checked', false);\n";
				}else
				if((int)$field_type === 7){
					$row_clear_data .= "$('#$label_id option:selected').removeAttr('selected');\n";
				}else{
					$row_clear_data .= "$('#$label_id').val('');\n";
				}
				
				
			}
			/*================== DOCUMENT LOAD SCRIPT - END ==================*/
		}
	}
	// echo ("$emp_code :::$doj:::$department :::$department::$first_level_approval:::$hr_approval:::$approve_type"); die;
	// $input_box .="<input type ='hidden' name='previous_pick_value' id='previous_pick_value' value='$json_data'>";
	if($form_view_type === 1){
		$view_content .= "<h4 class='block_head'>$form_view_heading</h4>
			<div id='$form_view_label_name' class='block_content pd8'>
				$input_box
			</div>";
	}else
	if($form_view_type === 2){
		$count++;
		$tab_active = "";
		$content_active = "";
		if((int)$count === 1){
			$tab_active = "active"; 
			$content_active = "in active"; 
			$view_content .= "<div class='block_content'>
								<ul class='nav nav-tabs' data-tabs='tabs'>
									@TABLI
								</ul>
								<div class='tab-content' style='padding:8px;'>
									@TABCONTENT
								</div>
							</div>";
		}
		$tab_li .= "<li role='presentation' class='$tab_active'>
						<a data-toggle='tab' href='#$form_view_label_name'>$form_view_heading</a>
					</li>";
		$tab_content .= "<div class='tab-pane fade $content_active' id='$form_view_label_name' >
							<h4 class='tab_head'>$form_view_heading</h4>
							$input_box
						</div>";
						
	}else
	if($form_view_type === 3){
		$div_id        = $row_view_list[$prime_form_view_id]['div_id'];
		$table_id      = $row_view_list[$prime_form_view_id]['table_id'];
		$row_set_view  = $row_view_list[$prime_form_view_id]['row_set_view'];
		$style = "";
		if((int)$form_view->$prime_id === 0){
			$style = "style='display:none;'";
		}
		$submit_btn_id   = "row_save_$prime_form_view_id";
		$cancel_btn_id   = "row_cancel_$prime_form_view_id";
		$row_prime_inupt = form_input( array("name"=>$row_prime_id, "id"=>$row_prime_id,"value"=>0,"type"=>"hidden"));
		$final_div = "";
		if($input_box){
			$final_div = "$row_prime_inupt
							$input_box
							<div class='form-group'>
								<a class='btn btn-primary btn-sm row_btn' id='$submit_btn_id' $style>Add/Update</a>
								<a class='btn btn-danger btn-sm row_btn' id='$cancel_btn_id' $style>Cancel</a>
							</div>
							<div id='$div_id' class='row_set_div'>
								$row_set_view
							</div>";
		}
		if($form_view_type_mode === 1){
			$view_content .= "<h4 class='block_head'>$form_view_heading</h4>
						<div class='block_content pd8'>
							$final_div
						</div>";
		}else
		if($form_view_type_mode === 2){
			$tab_active = "active"; 
			$content_active = "in active";
			if((int)$count >= 1){
				$tab_active = "";
				$content_active = "";
			}
			$tab_li .= "<li role='presentation' class='$tab_active' id='li_$form_view_label_name'>
							<a data-toggle='tab' href='#$form_view_label_name'>$form_view_heading</a>
						</li>";
			$tab_content .= "<div class='tab-pane fade $content_active' id='$form_view_label_name' >
								<h4 class='tab_head'>$form_view_heading</h4>
								$final_div
							</div>";
		}
		
		$send_url        = site_url("$this->control_name/rowset_save");
		$row_check_input = rtrim($row_check_input,',');
		$row_clear_data  = rtrim($row_clear_data,',');
		$row_send_data   = "{".rtrim($row_send_data,',')."}";
		
		if($row_check_input){
			$row_check_input = "var isValid = true;
								$('$row_check_input').each(function() {
								  if ($(this).val() === '') {
									isValid = false;
									toastr.error('Please fill all required field');
									$(this).addClass('error');
								  }else{
									 $(this).removeClass('error');
								  }
								});
								var key       = '$encKey'; 
								var encData   = encrypt(key,$row_send_data);
								if(isValid){
									$.ajax({
										type: 'POST',
										url: '$send_url',
										data:encData,
										success: function(data) {
											var rslt = JSON.parse(data);
											if(rslt.success){
												toastr.success(rslt.message);
											}else{
												toastr.error(rslt.message);
											}
											$('#'+rslt.row_set_data.div_id).html(rslt.row_set_data.row_set_view);
											$row_clear_data
											$(function(){
												$('.select2').select2({
													placeholder: '---- Select ----',
													allowClear: true,
													dropdownParent: $('.modal-dialog')
												});
												$('.select2-tags').select2({
													tags: true,
													tokenSeparators: [',']
												});
											});	
											$('#'+rslt.row_set_data.table_id).DataTable();
										}
									});
								}";
		}else{
			$row_check_input = "var key       = '$encKey'; 
								var encData   = encrypt(key,$row_send_data);
								$.ajax({
									type: 'POST',
									url: '$send_url',
									data:encData,
									success: function(data) {
										var rslt = JSON.parse(data);
										toastr.success(rslt.message);
										$('#'+rslt.row_set_data.div_id).html(rslt.row_set_data.row_set_view);
										$row_clear_data
										$(function(){
											$('.select2').select2({
												placeholder: '---- Select ----',
												allowClear: true,
												dropdownParent: $('.modal-dialog')
											});
											$('.select2-tags').select2({
												tags: true,
												tokenSeparators: [',']
											});
										});
										$('#'+rslt.row_set_data.table_id).DataTable();
									}
								});";
		}
		
		$document_load_script .= "$('#$submit_btn_id').click(function(){
									$row_check_input
									
								});\n
								$('#$cancel_btn_id').click(function(){
									$row_clear_data
									$(function(){
										$('.select2').select2({
											placeholder: '---- Select ----',
											allowClear: true,
											dropdownParent: $('.modal-dialog')
										});
										$('.select2-tags').select2({
											tags: true,
											tokenSeparators: [',']
										});
									});
								});\n
								$('#$table_id').DataTable();\n";
	}
}
$view_content  = str_replace("@TABLI",$tab_li,$view_content);
$view_content  = str_replace("@TABCONTENT",$tab_content,$view_content);
$form_open     = form_open("$controller_name/save/" .$primeId,array("id"=>$form_id,"class"=>"form-inline"));
$form_close    = form_close();
$prime_inupt   = form_input( array("name"=>$prime_id, "id"=>$prime_id,"value"=>$primeId,"type"=>"hidden"));
// echo "BSK".$emp_list_data; die;
// echo $empdata; die;
echo "<table id='ttt' style='width:100%' class='table table-hover'>
<thead>
  <tr style='color: #FFFFFF;'>
	<th style='text-align:center;'>Employee Code</th>
	<th style='text-align:center;'>Component Value</th>
	<th style='text-align:center;'>Date Of Joining</th>
	<th style='text-align:center;'>Department</th>
	<th style='text-align:center;'>Leave Approve Type</th>
	<th style='text-align:center;'>First Level Approval</th>
	<th style='text-align:center;'>HR Approval</th>
  </tr></thead><tbody id='emp_body'>
  $empdata
  </tbody>
  </table>  $form_open
		<fieldset id='FundBasicInfo' style='margin:0px;padding:8px;background-color:#f2f2f2;'>
		<div id='flip' style='color: red;font-weight: bold;cursor:pointer;'>Click to View Leave Balance</div>
		<div id='flip_1' style='color: red;font-weight: bold;cursor:pointer;'>Click to View Permission Request</div>
		<div id='panel'>
		<table id='view_table' style='width:100%' class='table table-hover'>
		<thead>
		  <tr style='color: #FFFFFF;'>
		    <th style='text-align:center;'>Employee ID</th>
		    <th style='text-align:center;'>Employee Name</th>
		    <th style='text-align:center;'>Leave Type</th>
		    <th style='text-align:center;'>Opening</th>
		    <th style='text-align:center;'>Credit</th>
		    <th style='text-align:center;'>Debit</th>
		    <th style='text-align:center;'>Used</th>
		    <th style='text-align:center;'>Encash</th>
		    <th style='text-align:center;'>Pending</th>
		    <th style='text-align:center;'>Balance</th>
		  </tr></thead><tbody id='leave_body'>
		  $leave_details
		  </tbody>
		  </table></div>
		  <div id='panel_1'>
		  <table id='view_table' style='width:100%' class='table table-hover'>
		  <thead>
		  <tr style='color: #FFFFFF;'>
		    <th style='text-align:center;'>Employee ID</th>
		    <th style='text-align:center;'>Employee Name</th>
		    <th style='text-align:center;'>Permission Date</th>
		    <th style='text-align:center;'>In Time</th>
		    <th style='text-align:center;'>Out Time</th>
		    <th style='text-align:center;'>Total Time</th>
		    <th style='text-align:center;'>Permission Type</th>
		    <th style='text-align:center;'>Shift Name</th>
		    <th style='text-align:center;'>Leave Status</th>
		   </tr></thead><tbody id='permission_body'>
		  $permission_details
		  </tbody>
		  </table></div>	
			$prime_inupt
			
			$view_content
		</fieldset>
	$form_close"; 
//User Role Based Condition BSK
$user_read_only = "";

if($role_based_condition){
	//print_r($role_based_condition); die;
	foreach ($role_based_condition as $key => $condition) {
		//echo "BSK  $key <br/>";
		if($key === "readonly"){
			if($condition !== ""){
				$condition = str_replace(",", ",#", $condition);
				$user_read_only = "$('#".$condition."').attr('readonly','readonly');";
			}
		}
	}
}
//Multipick inputs append to json form data
if($multi_pick){
	$json_multi = "";
	foreach ($multi_pick as $key => $val) {
		$json_multi .= " jsonData['$val'] = $('#".$key."').val();";
	}
}
?>
<?php 
	$app_mode = $this->config->item('environment');
	if($app_mode === 'PRODUCTION'){	
	  $url=$this->config->item('unauthurl'); 
?>
<script>
!function() {
	function detectDevTool(allow) {
		if(isNaN(+allow)) allow = 100;
		var start = +new Date();
		debugger;
		var end = +new Date();
		if(isNaN(start) || isNaN(end) || end - start > allow) {	
			var url = '<?php echo $url; ?>';
			window.location.href = url;								
		}							
  }
  if(window.attachEvent) {
		if (document.readyState === "complete" || document.readyState === "interactive") {
			detectDevTool();
		  window.attachEvent('onresize', detectDevTool);
		  window.attachEvent('onmousemove', detectDevTool);
		  window.attachEvent('onfocus', detectDevTool);
		  window.attachEvent('onblur', detectDevTool);
		} else {
			setTimeout(argument.callee, 0);
		}
  } else {
		window.addEventListener('load', detectDevTool);
		window.addEventListener('resize', detectDevTool);
		window.addEventListener('mousemove', detectDevTool);
		window.addEventListener('focus', detectDevTool);
		window.addEventListener('blur', detectDevTool);
  }
}();
</script>
<?php } ?>	
<script type="text/javascript">
$(document).ready(function(){
	// VIEW INFO PROCESS QUERY ERROR THROWING
	var module_sts    = <?php echo json_encode($module_sts); ?>;
	if(!module_sts){
		toastr.warning('View Info Query Process Error...!');
		return false;
	}
	// PAGE INFO PROCESS QUERY ERROR THROWING
	var prime_id          = "#<?php echo $prime_id;?>";
	var form_id           = "#<?php echo $form_id;?>";
	var db_name           = "<?php echo $db_name;?>";
	var date_exist        = "<?php echo $date_exist;?>";
	var date_time_exist   = "<?php echo $date_time_exist;?>";
	var logged_user_role  = "<?php echo $logged_user_role;?>";
	var logged_emp_code   = "<?php echo $logged_emp_code;?>";



	<?php echo $user_read_only; ?>
	//IF DOCUMENT LOAD TO SET DEFAULT HIDE AND SHOW SOME FIELDS
	default_hide();
	//HIDE AND SHOW TO BE BASED ON EMPLOYEE LEAVE APPROVE TYPE  
	<?php echo $approval_show; ?>
	/*if(parseInt(logged_user_role) !== 1){
		$('#employee_code').parent().hide();
	}*/
	var view_id = $(prime_id).val();
	//For date restriction based on payroll process
	var salary_start_date =  "<?php echo $salary_start_date;?>";
	var salary_end_date   =  "<?php echo $salary_end_date;?>";
	var date_of_joining   =  "<?php echo $date_of_joining;?>";
	select_date_validate(salary_start_date,salary_end_date,view_id,date_of_joining);
	
	if(!view_id){
		$('#cancellation_request').parent().hide();
		$('#cancellation_request').addClass('ignore');
		if(parseInt(logged_user_role) !== 1){
			$('#employee_code').val(logged_emp_code);
		}
		$('#leave_status').parent().hide();
		var first_approval_sts   = $('#first_approval_leave_status').val();
		var second_approval_sts  = $('#second_approval_leave_status').val();
		var leave_approval_sts   = $('#leave_status').val();
		if(first_approval_sts === '0' || first_approval_sts === ''){
			$('#first_approval_leave_status').val(1);
		}
		if(second_approval_sts === '0' || second_approval_sts === ''){
			$('#second_approval_leave_status').val(1);
		}
		if(leave_approval_sts === '0' || leave_approval_sts === ''){
			$('#leave_status').val(1);
		}
	}else{
		var cancel_request   = parseInt($('#cancellation_request').val());
		if(cancel_request === 1){
			$('#cancellation_request').attr("readonly","readonly");
		}
	}
	var request_type  = $('#request_type').val();
	if(view_id && (request_type === "1")){
		$('#no_of_days').parent().show();
	}

	$("#date_of_joining").datetimepicker({
		format: 'DD-MM-YYYY',
		//debug: true
	});

	$('.only_time').datetimepicker({
        format: 'HH:mm',
    });
	if(date_time_exist === "1"){
		$(function () {
			$(".datepicker_time").datetimepicker({
				format: 'DD-MM-YYYY HH:mm:ss',
				//debug: true
			});
		});
	}

	var drop_exist = "<?php echo $drop_exist;?>";
	if(drop_exist === "1"){
		select_all();
	}

	$('textarea').on('keyup keypress', function(e) {
		if(e.keyCode === 13) {    
			e.stopPropagation();
		}else
		if(e.shiftKey){
			e.stopPropagation();
		}
	});
	$(".number").bind('keyup', function(e) {
		this.value = this.value.replace(/[^0-9]/g,'');
	});
	$(".decimal_no").bind('keyup', function(e) {
		this.value = this.value.replace(/[^0-9_.]/g,'');
	});
	$('.alpha').bind('keypress', function (event) {
		var regex = new RegExp("^[a-zA-Z0-9\-_.@\/\\s]+$");
		var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
		if (!regex.test(key)) {
		   event.preventDefault();
		   return false;
		}
	});
	$(".alpha_text").keypress(function(event){
	     var inputValue = event.charCode;
	     if(!(inputValue >= 65 && inputValue <= 122) && (inputValue != 32 && inputValue != 0)){
	         event.preventDefault();
	     }
	});
	$.validator.setDefaults({ignore:[]});	
	$.validator.addMethod("alphanumeric", function(value, element) {
		return this.optional(element) || /^[a-z0-9\-\s]+$/i.test(value);
	}, "Allow only letters, numbers, or dashes.");
	
	$(form_id).submit(function(event){ event.preventDefault(); }).validate({
		ignore: ".ignore",
        invalidHandler: function(e, validator){
        	if(validator.errorList.length)
            $('.nav-tabs a[href="#' + $(validator.errorList[0].element).closest(".tab-pane").attr('id') + '"]').tab('show');
        },
		rules:{
			<?php echo $validation_rule; ?>
		},
		submitHandler: function (form){
			var send_url   = '<?php echo site_url("$controller_name/save");?>'
			$("#submit").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
			$('#submit').attr('disabled','disabled');
			//Encrypted
			let formData   = new FormData(form);
			// Convert FormData to JSON object
			let jsonData   = Object.fromEntries(formData.entries());
			var key        = '<?php echo $encKey; ?>';
			var encData    = encrypt(key,jsonData);
			$.ajax({
				url         : send_url, 
				type        : 'POST',
				contentType : 'text/plain', 
				data        : encData,
				success: function (response){
					$('#submit').attr('disabled',false);
					$("#submit").html("Submit");
					if(response.success){
						$(prime_id).val(response.insert_id);
						toastr.success(response.message);
						$('.row_btn').show();
						$('.modal').modal('hide');
						//GLOBAL VARIABLES FROM MANAGE MODULE FOR DATATABLE EDIT VIEW AND CANCEL BUTTON VALIDATE
						emp_cancel_arr  = response.emp_cancel_arr;
						leave_status    = response.leave_status_arr;
						leave_cancel    = response.leave_cancel_arr;
						//DATATABLE CALLING
						$('#table').DataTable().ajax.reload();
					}else{
						toastr.error(response.message);
						// $('#day_type').val('');
						// $('#shift_name').val('');
						// $('#in_time,#out_time,#total_time').val('00:00');
						// select_all();
					}
					// ERROR MESSAGE GV->START
				},
				error: function (xhr, status, error) {
					toastr.error("An error occurred during the request.");
					$('#submit').attr('disabled', false);
					$("#submit").html("Submit");
					// GV -> END
				},
				dataType: 'json'
			});
		}
	});
	/* LOAD SCRIPT AND CONDITION LOAD */
	<?php
		echo "$document_load_script";
		foreach($condition_list as $list){
			echo $list;
		}
	?>
	/* LOAD SCRIPT AND CONDITION LOAD */

	//GET DATE OF JOINING WITH EMPLOYEE CODE
	if(db_name === 'tcl_hrms' || db_name === 'tcl_dev'){ // Added only for TCL
		var employee_code    = $('#employee_code').val();
		var view_id          = $(prime_id).val();
		get_employee_details(employee_code,view_id);

		$('#employee_code').on('change', function() {
			var employee_code  = $('#employee_code').val();
			var view_id        = $(prime_id).val();
			$('#from_date,#to_date,#shift_date,#permission_date,#in_date,#out_date,#leave_type').val('');
			if(employee_code){
				get_employee_details(employee_code,view_id);
			}
		});
	}	

	var request_type  = $('#request_type').val();
	if(request_type){
		request_type_event(request_type);
	}
	//ON CHNAGE REQUEST TYPE TO CHANGES A HIDE AND SHOW FIELDS
	$('#request_type').on('change', function() {
		$('#from_date,#from_date_type,#to_date,#to_date_type').val("");
		if(db_name === 'tcl_hrms' || db_name === 'tcl_dev'){ // Added only for TCL
			var employee_code  = $('#employee_code').val();
		}else{
			var employee_code  = '<?php echo $logged_emp_code; ?>';
		}		
			var request_type   = $('#request_type').val();
		// var component_value = $('#component_value').val();
		request_type_event(request_type);
		get_emp_request_details(employee_code);
		if(request_type === "1"){
			$("#flip").show();
			$("#flip_1").hide();
		}else
		if(request_type === "4"){
			$("#flip_1").show();
			$("#flip").hide();
		}else
		if(request_type === "7"){			
			$("#flip").hide();
			$("#flip_1").hide();
		}
	});
	
	$("#flip").click(function(){
	 	// $("#panel").show();
	    $("#panel").slideToggle("slow");
	    // $("#panel_1").hide();
	});
	 //View Permission Details
	$("#flip_1").click(function(){
	 	// $("#panel_1").show();
	    $("#panel_1").slideToggle("slow");
	    // $("#panel").hide();
	});

	var leave_type     = $('#leave_type').val();
	if(db_name === 'tcl_hrms' || db_name === 'tcl_dev'){ // Added only for TCL
		var employee_code    = $('#employee_code').val();
	}else{
		var employee_code    = '<?php echo $logged_emp_code; ?>';
	}
	
	if(leave_type && employee_code && !view_id){
		get_leave_type_details(leave_type,employee_code);
	}	
	var no_of_days     = parseInt($('#no_of_days').val());
	if(!view_id){
		upload_file_hide_show(leave_type,no_of_days);
	}
	//ON CHNAGE LEAVE NAME TO SHOW A THAT EMPLOYEE LEAVE BALANCE
	$('#leave_type').on('change', function() {
		var leave_type     = $('#leave_type').val();
		if(db_name === 'tcl_hrms' || db_name === 'tcl_dev'){ // Added only for TCL
			var employee_code    = $('#employee_code').val();
		}else{
			var employee_code    = '<?php echo $logged_emp_code; ?>';
		}
		var no_of_days     = parseInt($('#no_of_days').val());

		//proof(upload file) hide and show function for only leave request and only for sl leave type
		upload_file_hide_show(leave_type,no_of_days);

		get_leave_type_details(leave_type,employee_code);
		check_validation("from_date",db_name);
	});
	$('#from_date,#to_date').on("dp.hide",function (e) {
		var request_type  = $('#request_type').val();
		if(!request_type){
			toastr.error('Request Type should not be Empty!');
		}else{
			var from  = $(this).attr('id');
			check_validation(from,db_name);
		}
	});
	$('#from_date_type,#to_date_type').on("change",function (e){
		var from  = $(this).attr('id');
		check_validation(from,db_name);
	});
	
	//DR CODE START FOR PERMISSION REQUEST
	$('#permission_date').on("dp.hide",function (e){
		var request_type      = $('#request_type').val();
		if(db_name === 'tcl_hrms' || db_name === 'tcl_dev'){ // Added only for TCL
			var employee_code    = $('#employee_code').val();
		}else{
			var employee_code    = '<?php echo $logged_emp_code; ?>';
		}
		var permission_date   = $('#permission_date').val();
		var from              = $(this).attr('id');
		$('#in_time').val('00:00');
		$('#out_time').val('00:00');
		$('#total_time').val('00:00');

		// $('#permission_type').val('');
		var view_id           = $(prime_id).val();
		// get_shift_name(permission_date,employee_code,view_id,from);
		get_emp_shift_punch_time(request_type,employee_code,permission_date,in_date,out_date,day_type,view_id,from,get_manual_punch_shift,get_shift_name);
	});
	
	//DR CODE START FOR SHIFT CHANGE AND MANUAL PUNCH REQUEST
	//MP TREAT AS TIME LOG BASED
	var mp_treat_time_log    = "<?php echo $mp_treat_time_log;?>";
	$('#shift_date').on("dp.hide",function (e){
		if(db_name === 'tcl_hrms' || db_name === 'tcl_dev'){ // Added only for TCL
			var employee_code    = $('#employee_code').val();
		}else{
			var employee_code    = '<?php echo $logged_emp_code; ?>';
		}
		var request_type     = parseInt($('#request_type').val());
		var shift_date       = $('#shift_date').val();
		var in_date          = $('#in_date').val();
		var out_date         = $('#out_date').val();
		var view_id          = $(prime_id).val();
		var from             = $(this).attr('id');
		//FOR MANUAL PUNCH 
		if(request_type === 7){
			if(!shift_date){
				toastr.error('Shift Date should not be Empty!');
				$('#in_date').val('');
				$('#out_date').val('');
				return false;
			}else{
				// get_manual_punch_shift(employee_code,shift_date,in_date,out_date,day_type,from); 
				//CALLBACK FUNCTION
				get_emp_shift_punch_time(request_type,employee_code,shift_date,in_date,out_date,day_type,view_id,from,get_manual_punch_shift,get_shift_name);
				select_all();
			}
		}else{//FOR SHIFT CHANGE
			get_shift_name(shift_date,employee_code,view_id,from);
		}
	});

	//function for only reber time office 
	$('#change_shift').on("change",function (e){
		if(db_name === 'tcl_hrms' || db_name === 'tcl_dev'){ // Added only for TCL
			var employee_code    = $('#employee_code').val();
		}else{
			var employee_code    = '<?php echo $logged_emp_code; ?>';
		}
		var shift_date        = $('#shift_date').val();
		var current_shift     = $('#current_shift').val();
		var change_shift      = $('#change_shift').val();
		var shift_change_type = $('#shift_change_type').val();
		var view_id           = $(prime_id).val();
		// var from             = $(this).attr('id');
		if(!shift_date){
			toastr.error("Shift Date Should not Empty!");
			return false;
		}else
		if(current_shift === change_shift){
			$('#change_shift').val('');
			toastr.error("Don't Choose Same Shift Name? Please Check it.!");
		}
		//function for only reber time office 
		else{
			change_shift_validate(employee_code,shift_date,current_shift,change_shift,shift_change_type);
		}
		select_all();
	});

	//FOR MANUAL PUNCH REQUEST
	$('#day_type').on("change",function (e){
		var text          = $(this).attr('id');
		var shift_date    = $('#shift_date').val();
		var in_date       = $('#in_date').val();
		var out_date      = $('#out_date').val();
		var day_type      = parseInt($('#day_type').val());
		if(db_name === 'tcl_hrms' || db_name === 'tcl_dev'){ // Added only for TCL
			var employee_code    = $('#employee_code').val();
		}else{
			var employee_code    = '<?php echo $logged_emp_code; ?>';
		}

		if(!in_date){
			toastr.error('In Date should not be Empty!');
			$('#out_date').val('');
			return false;
		}else
		if(!out_date){
			toastr.error('Out Date should not be Empty!');
			return false;
		}else{
			get_manual_punch_shift(employee_code,shift_date,in_date,out_date,day_type,text); 
			select_all();
		}
	});
	
	// DR CODE FOR MANUAL PUNCH TYPE 
	$('#in_date,#out_date').on("dp.hide",function (e){
		var from          = $(this).attr('id');
		var shift_date    = $('#shift_date').val();
		if(from === "in_date"){
			if(!shift_date){
				toastr.error('Shift Date should not be Empty!');
				$('#in_date').val('');
			}else{
				shift_date      = moment(shift_date, 'DD-MM-YYYY').format('YYYY-MM-DD');
				var in_date     = moment($('#in_date').val(), 'DD-MM-YYYY').format('YYYY-MM-DD');
				var diff_time   = (new Date(in_date)).getTime() - (new Date(shift_date)).getTime();
				var diff_date   = parseInt(diff_time / (1000 * 3600 * 24));

				if(diff_date > 1 || diff_date < -1){
					toastr.error('Shift Date and In Date should be Choose Maximum 1 Day Difference!');
					$('#in_date').val('');
				}
			}
			$('#out_date').val('');
		}else
		if(from === "out_date"){
			shift_date     = moment(shift_date, 'DD-MM-YYYY').format('YYYY-MM-DD');
			var in_date    = moment($('#in_date').val(), 'DD-MM-YYYY').format('YYYY-MM-DD');
			var out_date   = moment($('#out_date').val(), 'DD-MM-YYYY').format('YYYY-MM-DD');
			var diff_time  = (new Date(out_date)).getTime() - (new Date(shift_date)).getTime();
			var diff_date  = parseInt(diff_time / (1000 * 3600 * 24));
			if(!in_date){
				toastr.error('In Date should not be Empty!');
				$('#out_date').val('');
				
				return false;
			}else
			if(in_date > out_date){
				toastr.error('Out Date Should be Greater Than In Date!');
				$('#out_date').val('');
				return false;
			}else
			if(diff_date > 1){
				toastr.error('Shift Date and Out Date should be Choose Maximum 1 Day Difference!');
				$('#out_date').val('');
			}
		}
		$('#day_type').val('');
		// $('#shift_name').val('');
		$('#in_time').val('00:00');
		$('#out_time').val('00:00');
		$('#total_time').val('00:00');
		select_all();
	});
	
	$('#in_time,#out_time').on("dp.hide",function (e){
		// $("#submit").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
		// $('#submit').attr('disabled','disabled');
		var from            = $(this).attr('id');
		var request_type    = $('#request_type').val();
		var permission_date = $('#permission_date').val();
		var permission_type = $('#permission_type').val();
		var shift_name      = $('#shift_name').val();
		var shift_date      = $('#shift_date').val();
		var in_time         = $('#in_time').val();
		var out_time        = $('#out_time').val();
		var in_date         = $('#in_date').val();
		var out_date        = $('#out_date').val();
		var day_type        = parseInt($('#day_type').val());
		var total_time      = "";
		// $('#shift_name').val('');
		// $('#permission_type').val('');
		if(from === "in_time"){
			// $('#out_time').val('00:00');
			// $('#total_time').val("00:00");
			if(request_type === "4" || request_type === "5"){
				if(permission_date === ""){
					toastr.error('Permission Date should not be Empty!');
					$('#in_time').val('00:00');
					return false;
				}else
				if(permission_type === ""){
					toastr.error('Permission Type should not be Empty!');
					$('#in_time').val('00:00');
					return false;	
				}else{
					if(permission_date && in_time && out_time && out_time !== "00:00"){
						time_diff_calculate(permission_date,in_time,out_time,shift_name,permission_type,db_name);
					}
				}
			}else{
				if(in_date === ""){
					toastr.error('In Date should not be Empty!');
					$('#in_time').val('00:00');
					return false;
				}else{
					if(in_date && out_date && in_time && out_time && out_time !== "00:00"){
						diff_date_time_cal(in_date,out_date,in_time,out_time);
					}
				}
			}
		}else
		if(from === "out_time"){
			if(request_type === "4" || request_type === "5"){
				if(permission_date === ""){
					toastr.error('Permission Date should not be Empty!');
					$('#in_time').val('00:00');
					$('#out_time').val("00:00");
					return false;
				}else
				if(permission_type === ""){
					toastr.error('Permission Type should not be Empty!');
					$('#in_time').val('00:00');
					$('#out_time').val("00:00");
					return false;	
				}else
				if(in_time >= out_time){ 
					toastr.error('Out Time Should be Greater Than In Time!');
					$('#out_time').val("00:00");
					$('#total_time').val("00:00");
					return false;
				}	
			}else{
				if(in_date === ""){
					toastr.error('In Date should not be Empty!');
					$('#out_date').val('');
					$('#in_time').val('00:00');
					$('#out_time').val("00:00");
					return false;
				}else
				if(out_date === ""){
					toastr.error('Out Date should not be Empty!');
					$('#out_date').val('');
					$('#out_time').val("00:00");
				}else
				if(in_date === out_date){
					if(in_time >= out_time){ 
						toastr.error('Out Time Should be Greater Than In Time!');
						$('#out_time').val("00:00");
						$('#total_time').val("00:00");
						return false;
					}
				}
			}
			if(in_time === "00:00" || in_time === ""){
				toastr.error('Intime should not be Empty!');
				$('#out_time').val("00:00");
				return false;
			}else
			if((in_time != "00:00" && out_time != "00:00") || (in_time != "" && out_time != "")){ 
				if(request_type === "4" || request_type === "5"){
					if(permission_date && in_time && out_time){
						time_diff_calculate(permission_date,in_time,out_time,shift_name,permission_type,db_name);
					}else{
						toastr.error('Please Choose Out Date?');
					}
				}else{
					if(in_date && out_date && in_time && out_time){
						diff_date_time_cal(in_date,out_date,in_time,out_time);
					}else{
						toastr.error('Please Choose Out Date?');
					}
				}
			}else{
				toastr.error('To Choose Valid Out Time?');
				return false;
			}
		}	
		select_all();
	});


	if($('#leave_status').val() === "3"){
		$('#rejected_reason').parent().show();
		$('#rejected_reason').removeClass('ignore');
	}else{
		$('#rejected_reason').parent().hide();
		$('#rejected_reason').addClass('ignore');
	}
	//DR leave cancellation function
	//$('#cancellation_request').parent().hide();
	$('#cancellation_reason').parent().hide();
	$('#cancellation_reason').addClass('ignore');

	if($('#leave_status').val() === "2" || $('#cancellation_request').val() === "1"){
		$('#cancellation_request').parent().show();
		$('#employee_code').attr('readonly','readonly');
		var first_cancel_status   = $('#first_approval_cancel_status').val();
		var second_cancel_status  = $('#second_approval_cancel_status').val();
		if(first_cancel_status === '0' || first_cancel_status === ''){
			$('#first_approval_cancel_status').val(1);
		}
		if(second_cancel_status === '0' || second_cancel_status === ''){
			$('#second_approval_cancel_status').val(1);
		}
	}else{
		//$('#cancellation_request').parent().hide();
	}
	$('#cancellation_request').on('change', function() {
		if($('#cancellation_request').val() === "1" || $('#leave_status').val() === "2"){
			$('#cancellation_reason').parent().show();
			$('#cancellation_reason').removeClass('ignore');
    	 	$('#leave_status').val(1);
			$('#submit').attr('disabled',false);
		}else{
			$('#leave_status').val(2);
			$('#cancellation_reason').parent().hide();
			$('#cancellation_reason').addClass('ignore');
			$('#cancellation_reason').val('');
			$('#submit').attr('disabled','disabled');
		}
		select_all();
	});
	//DR LEAVE CANCELLATION REQUEST HIDE AND SHOW
	if($('#cancellation_request').val() === "1" && ($('#leave_approve_type').val() === "1" || $('#leave_approve_type').val() === "2")){
		$('#first_approval_cancel_status,#second_approval_cancel_status').parent().show();
		$('#first_approval_cancel_status,#second_approval_cancel_status').removeClass('ignore');
	}else
	if($('#cancellation_request').val() === "1" && $('#leave_approve_type').val() === "3"){
		$('#first_approval_cancel_status').parent().show();
		$('#first_approval_cancel_status').removeClass('ignore');
		$('#second_approval_cancel_status').parent().hide();
		$('#second_approval_cancel_status').addClass('ignore');
	}else
	if($('#cancellation_request').val() === "1" && $('#leave_approve_type').val() === "4"){
		$('#second_approval_cancel_status').parent().show();
		$('#second_approval_cancel_status').removeClass('ignore');
		$('#first_approval_cancel_status').parent().hide();
		$('#first_approval_cancel_status').addClass('ignore');
	}else{
		$('#first_approval_cancel_status,#second_approval_cancel_status').parent().hide();
		$('#first_approval_cancel_status,#second_approval_cancel_status').addClass('ignore');
	}
	select_all();
	
});	

// FILE UPLOAD REMOVE
function remove_file(prime_id,is_defult,input_name){
	var prime_id_val = $("#"+prime_id).val();
	var send_url     = '<?php echo site_url("$controller_name/remove_file"); ?>';
	var key          = '<?php echo $encKey; ?>';
	var encData      = encrypt(key,{prime_id:prime_id,prime_id_val:prime_id_val,is_defult:is_defult,input_name:input_name});
	$.ajax({
		type: "POST",
		url: send_url,
		data:encData,
		contentType:'text/plain',
		success: function(data) {
			var rslt = JSON.parse(data);
			$("#"+input_name).val("");
			$("#table_"+input_name).attr("style", "display:none");
		}
	});
}

//PROGRESS STATUS FILE UPLOAD
function progress_bar(id) {
    i = 0;
	var elem  = document.getElementById("process_"+id+"");
	var width = 0;
	var internal    = setInterval(frame, 10);
	function frame() {
		if (width >= 100) {
			clearInterval(internal);
			i = 0;
			$('#div_'+id+'').hide();
			$('#submit').attr('disabled',false);
			$('#submit').html('Submit');
		} else {
			width++;
			elem.style.width = width + "%";
			elem.innerHTML = width  + "%";
		}
	}
}
//CHECK FILE SIZE FOR UPLOAD
function check_upload_size(size){
	size = (size / 1024 / 1024).toFixed(2);
	if(parseInt(size) <= 2){
		return true;
	}else{
		return false;
	}
}

function row_set_edit(row_id,table_name,view_id){
	if((row_id !== "") && (table_name !== "")){
		var send_url = '<?php echo site_url("$controller_name/row_set_edit"); ?>'; 
		var key        = '<?php echo $encKey; ?>';
		var encData    = encrypt(key,{row_id:row_id,table_name:table_name,view_id:view_id});
		$.ajax({			
			type: "POST",
			url: send_url,
			data:encData,
			contentType:'text/plain',
			success: function(data) {
				var rslt = JSON.parse(data);
				$.each( rslt.row_result, function(key,value){
					if(value.field_type === "6"){
						$('#'+key).prop('checked', false);
						if(value.input_value === "1"){
							$('#'+key).prop('checked', true);
						}
					}else
					if((value.field_type === "5") || (value.field_type === "7")){
						var selectedOptions = value.input_value.split(",");
						for(var i in selectedOptions) {
							var optionVal = selectedOptions[i];
							$("#"+key).find("option[value='"+optionVal+"']").prop("selected", "selected");
						}
						$(function(){
							$('.select2').select2({
								placeholder: '---- Select ----',
								allowClear: true,
								dropdownParent: $('.modal-dialog')
							});
							$('.select2-tags').select2({
								tags: true,
								tokenSeparators: [',']
							});
						});
					}else{
						$('#'+key).val(value.input_value);
					}					
				});
			}
		});
	}
}
function row_set_remove(row_id,table_name,view_id,prime_id){
	if((row_id !== "") && (table_name !== "")){
		if (confirm('Are you sure want to delete this record?')) {
			var send_url = '<?php echo site_url("$controller_name/row_set_remove"); ?>'; 
			var key      = '<?php echo $encKey; ?>';
			var encData  = encrypt(key,{row_id:row_id,table_name:table_name,view_id:view_id,prime_id});
			$.ajax({
				type: "POST",
				url: send_url,
				data:encData,
				contentType:'text/plain',
				success: function(data) {
					var rslt = JSON.parse(data);
					toastr.success(rslt.msg);
					$('#'+rslt.row_set_data.div_id).html(rslt.row_set_data.row_set_view);
					$('#'+rslt.row_set_data.table_id).DataTable();
				}
			});
		}		
	}
}

function select_all(){
	setTimeout(function(){ 
		$(function(){
			$('.select2').select2({
				placeholder: '---- Select ----',
				allowClear: true,
				dropdownParent: $('.modal-dialog'),
				maximumInputLength : 15
			});
			$('.select2-tags').select2({
				tags: true,
				allowClear: true,
				tokenSeparators: [',']

			});
		});
	}, 500);
}

//DOCUMENT LOAD DEFAULT TO SET HIDE AND SHOW SOME FIELDS
function default_hide(){
	//for hide
	$('#leave_type,#from_date,#from_date_type,#to_date,#to_date_type,#vacation_address,#contact_no,#leaving_station,#permission_date,#permission_type,#entry_date,#in_date,#out_date,#in_time,#out_time,#total_time,#shift_name,#current_shift,#change_shift,#reason,#first_approval_leave_status,#second_approval_leave_status,#leave_balance,#no_of_days,#rejected_reason,#first_approval_cancel_status,#second_approval_cancel_status,#shift_date,#day_type,#upload_file,#upload_upload_file,#business_file,#upload_business_file,#mp_reason,#device_code,#shift_change_type,#request_date').parent().hide();
	//for readonly
	$('#first_level_approval,#second_level_approval,#request_date,#leave_balance,#no_of_days,#first_approval_cancel_status,#second_approval_cancel_status').attr('readonly','readonly');
	//for remove mandatory 
	$('#leave_type,#from_date,#from_date_type,#to_date,#to_date_type,#vacation_address,#contact_no,#leaving_station,#permission_date,#permission_type,#entry_date,#in_date,#out_date,#in_time,#out_time,#total_time,#shift_name,#current_shift,#change_shift,#reason,#first_approval_leave_status,#second_approval_leave_status,#leave_balance,#no_of_days,#rejected_reason,#first_approval_cancel_status,#second_approval_cancel_status,#shift_date,#day_type,#upload_file,#upload_upload_file,#business_file,#upload_business_file,#mp_reason,#shift_change_type').addClass('ignore');
}
//HIDE AND SHOW A REQUEST TYPE ON ONCHANGE EVENT
function request_type_event(request_type){
	if(parseInt(request_type) === 1 || parseInt(request_type) === 2){
		//for hide and show add
		$('#leave_type,#from_date,#from_date_type,#to_date,#to_date_type,#vacation_address,#contact_no,#leaving_station,#leave_balance,#no_of_days,#reason').parent().show();
		$('#entry_date,#in_date,#out_date,#in_time,#out_time,#total_time,#shift_date,#current_shift,#change_shift,#permission_date,#permission_type,#shift_name,#day_type,#upload_file,#upload_upload_file,#business_file,#upload_business_file,#mp_reason,#shift_change_type').parent().hide();
		//for mandatory add and remove
		$('#leave_type,#from_date,#from_date_type,#to_date,#to_date_type,#vacation_address,#contact_no,#leaving_station,#leave_balance,#no_of_days,#reason').removeClass('ignore');
		$('#entry_date,#in_date,#out_date,#in_time,#out_time,#total_time,#shift_date,#current_shift,#change_shift,#permission_date,#permission_type,#shift_name,#day_type,#upload_file,#upload_upload_file,#business_file,#upload_business_file,#mp_reason,#shift_change_type').addClass('ignore');

		//FOR EMPTY A HIDE FIELD VALUE
		$('#entry_date,#in_date,#out_date,#in_time,#out_time,#total_time,#shift_date,#current_shift,#change_shift,#permission_date,#permission_type,#shift_name,#day_type,#upload_file,#upload_upload_file,#business_file,#upload_business_file,#mp_reason,#shift_change_type').val('');
		select_all();
		//FOR CHANGE A REQUEST TYPE NAME
		$('.block_head').text('Leave Request');
	}else
	if(parseInt(request_type) === 3 || parseInt(request_type) === 8){
		//for hide and show add
		$('#from_date,#from_date_type,#to_date,#to_date_type,#vacation_address,#contact_no,#leaving_station,#reason').parent().show();
		$('#leave_type,#leave_balance,#no_of_days,#upload_file,#upload_upload_file,#entry_date,#in_date,#out_date,#in_time,#out_time,#total_time,#shift_date,#current_shift,#change_shift,#permission_date,#permission_type,#shift_name,#day_type,#business_file,#upload_business_file,#mp_reason,#shift_change_type').parent().hide();
		//for mandatory add and remove
		$('#from_date,#from_date_type,#to_date,#to_date_type,#vacation_address,#contact_no,#leaving_station,#reason').removeClass('ignore');
		$('#leave_type,#leave_balance,#no_of_days,#upload_file,#upload_upload_file,#entry_date,#in_date,#out_date,#in_time,#out_time,#total_time,#shift_date,#current_shift,#change_shift,#permission_date,#permission_type,#shift_name,#day_type,#business_file,#upload_business_file,#mp_reason,#shift_change_type').addClass('ignore');

		//FOR EMPTY A HIDE FIELD VALUE
		$('#leave_type,#leave_balance,#no_of_days,#upload_file,#upload_upload_file,#entry_date,#in_date,#out_date,#in_time,#out_time,#total_time,#shift_date,#current_shift,#change_shift,#permission_date,#permission_type,#shift_name,#day_type,#business_file,#upload_business_file,#mp_reason,#shift_change_type').val('');

		//show and hide a business trip files
		if(parseInt(request_type) === 8){
			$('#business_file,#upload_business_file').parent().show();
			$('#business_file,#upload_business_file').removeClass('ignore');
		}
		select_all();

		//FOR CHANGE A REQUEST TYPE NAME
		$('.block_head').text('On Duty Request');
	}else 
	if(parseInt(request_type) === 4 || parseInt(request_type) === 5){
		//for hide and show add
		$('#leave_type,#from_date,#from_date_type,#to_date,#to_date_type,#vacation_address,#contact_no,#leaving_station,#entry_date,#in_date,#out_date,#leave_balance,#no_of_days,#upload_file,#upload_upload_file,#shift_date,#current_shift,#change_shift,#day_type,#business_file,#upload_business_file,#mp_reason,#shift_change_type').parent().hide();
		$('#in_time,#out_time,#total_time,#reason,#permission_date,#permission_type,#shift_name').parent().show();
		//for mandatory add and remove
		$('#leave_type,#from_date,#from_date_type,#to_date,#to_date_type,#vacation_address,#contact_no,#leaving_station,#entry_date,#in_date,#out_date,#leave_balance,#no_of_days,#upload_file,#upload_upload_file,#shift_date,#current_shift,#change_shift,#day_type,#business_file,#upload_business_file,#mp_reason,#shift_change_type').addClass('ignore');	
		$('#in_time,#out_time,#total_time,#reason,#permission_date,#permission_type,#shift_name').removeClass('ignore');
		//FOR EMPTY A HIDE FIELD VALUE
		$('#leave_type,#from_date,#from_date_type,#to_date,#to_date_type,#vacation_address,#contact_no,#leaving_station,#entry_date,#in_date,#out_date,#leave_balance,#no_of_days,#upload_file,#upload_upload_file,#shift_date,#current_shift,#change_shift,#day_type,#business_file,#upload_business_file,#mp_reason,#shift_change_type').val('');

		select_all();

		//FOR CHANGE A REQUEST TYPE NAME
		$('.block_head').text('Permission Request');
	}else
	if(parseInt(request_type) === 6){
		//for hide and show add
		$('#leave_type,#from_date,#from_date_type,#to_date,#to_date_type,#vacation_address,#contact_no,#leaving_station,#entry_date,#in_date,#out_date,#in_time,#out_time,#total_time,#permission_date,#permission_type,#leave_balance,#no_of_days,#upload_file,#upload_upload_file,#shift_name,#day_type,#business_file,#upload_business_file,#mp_reason').parent().hide();
		$('#shift_date,#current_shift,#change_shift,#reason,#shift_change_type').parent().show();
		//for mandatory add and remove
		$('#leave_type,#from_date,#from_date_type,#to_date,#to_date_type,#vacation_address,#contact_no,#leaving_station,#entry_date,#in_date,#out_date,#in_time,#out_time,#total_time,#permission_date,#permission_type,#leave_balance,#no_of_days,#upload_file,#upload_upload_file,#shift_name,#day_type,#business_file,#upload_business_file,#mp_reason').addClass('ignore');
		$('#shift_date,#current_shift,#change_shift,#reason,#shift_change_type').removeClass('ignore');

		//FOR EMPTY A HIDE FIELD VALUE
		$('#leave_type,#from_date,#from_date_type,#to_date,#to_date_type,#vacation_address,#contact_no,#leaving_station,#entry_date,#in_date,#out_date,#in_time,#out_time,#total_time,#permission_date,#permission_type,#leave_balance,#no_of_days,#upload_file,#upload_upload_file,#shift_name,#day_type,#business_file,#upload_business_file,#mp_reason').parent().val('');
		select_all();

		//FOR CHANGE A REQUEST TYPE NAME
		$('.block_head').text('Shift Change Request');
	}else
	if(parseInt(request_type) === 7){
		//for hide and show add
		$('#leave_type,#from_date,#from_date_type,#to_date,#to_date_type,#vacation_address,#contact_no,#leaving_station,#permission_date,#permission_type,#leave_balance,#no_of_days,#upload_file,#upload_upload_file,#business_file,#upload_business_file,#current_shift,#change_shift,#entry_date,#shift_change_type').parent().hide();
		$('#in_time,#out_time,#shift_name,#total_time,#shift_date,#in_date,#out_date,#day_type,#mp_reason,#reason').parent().show();
		//for mandatory add and remove
		$('#leave_type,#from_date,#from_date_type,#to_date,#to_date_type,#vacation_address,#contact_no,#leaving_station,#permission_date,#permission_type,#leave_balance,#no_of_days,#upload_file,#upload_upload_file,#business_file,#upload_business_file,#current_shift,#change_shift,#entry_date,#shift_change_type').addClass('ignore');
		$('#in_time,#out_time,#shift_name,#total_time,#shift_date,#in_date,#out_date,#day_type,#mp_reason,#reason').removeClass('ignore');
		//FOR EMPTY A HIDE FIELD VALUE
		$('#leave_type,#from_date,#from_date_type,#to_date,#to_date_type,#vacation_address,#contact_no,#leaving_station,#permission_date,#permission_type,#leave_balance,#no_of_days,#upload_file,#upload_upload_file,#business_file,#upload_business_file,#current_shift,#change_shift,#shift_change_type').val('');

		//mp treated as time log based or time entry based
		var mp_treat_time_log    = "<?php echo $mp_treat_time_log;?>";
		if(mp_treat_time_log === "1"){
			$('#day_type').parent().hide();
			$('#day_type').val('');
			$('#day_type').addClass('ignore');
		}
		select_all();

		//FOR CHANGE A REQUEST TYPE NAME
		$('.block_head').text('Manual Punch Request');
	}
}

//GET EMPLOYEE DETAILS 
function get_employee_details(employee_code,view_id){
	var send_url    = '<?php echo site_url("$controller_name/get_employee_details"); ?>';
	if(employee_code){
		//Encryption
		var key     = '<?php echo $encKey; ?>';
		var data    = {emp_code:employee_code};
		var encData = encrypt(key,data);
		$.ajax({
			type: "POST",
			url: send_url,
			data:encData,				
			contentType: 'text/plain',
			success: function(data) {
				var rslt = JSON.parse(data);
				if(rslt.success){
					$("#component_value").val(rslt.component_value);
					$("#device_code").val(rslt.device_code);
					$("#date_of_joining").val(rslt.date_of_joining);
					$("#department").val(rslt.department);	
					$("#leave_approve_type").val(rslt.approve_type);		
					$("#first_level_approval").val(rslt.first_level_approval);
					$("#second_level_approval").val(rslt.second_level_approval);
					$('#first_level_approval,#second_level_approval').parent().show();
					$('#first_level_approval,#second_level_approval').removeClass('ignore');
					var salary_start_date  = rslt.salary_start_date;
					var salary_end_date    = rslt.salary_end_date;
					var fin_start_date     = rslt.fin_start_date;
					var fin_end_date       = rslt.fin_end_date;
					//FOR DATE VALIDATION BASED ON SALARY START DATE AND COMPANY INFORMATION DATE INPUT
					var date_of_joining    =  moment(rslt.date_of_joining, "DD-MM-YYYY").format("YYYY-MM-DD");
					select_date_validate(salary_start_date,salary_end_date,view_id,date_of_joining);
					get_emp_request_details(employee_code);
				}else{
					toastr.error(rslt.message);
					$('.modal').modal("toggle");
				}
				select_all();
			}
		});
	}	
}

//DR CODE START
//FOR DATE VALIDATION BASED ON LEAVE EXPORT TABLE 
function select_date_validate(salary_start_date,salary_end_date,view_id,date_of_joining){
	var user_role        = "<?php echo $logged_user_role;?>";
	var start_date       = "";
	var end_date         = "";
	
	var start_date       = moment(salary_start_date, 'DD-MM-YYYY').format('YYYY-MM-DD');
	var end_date         = moment(salary_end_date, 'DD-MM-YYYY').format('YYYY-MM-DD');

	// var start_date = moment(new Date(), "DD-MM-YYYY").add(-31, 'days').format('YYYY-MM-DD');
	// var end_date   = moment(new Date(), "DD-MM-YYYY").add(+31, 'days').format('YYYY-MM-DD');
	// var end_date     = moment().year(moment().year()).endOf('year').format('YYYY-MM-DD');
	//GET MAX DATE AND USER RIGH BASED(MULTI PICKLIST) FROM COMPANY INFORMATION
	var max_allow_date   = parseInt(<?php echo $max_allow_date;?>);
	var max_date_based   = "<?php echo $max_date_based;?>";
	max_date_based       = max_date_based.split(',');

	//MAX DATE AND USER RIGH BASED(MULTI PICKLIST FROM COMPANY INFORMATION) DATE VALIDATION
	if(max_allow_date > 0 && ($.inArray(user_role, max_date_based) !== -1)){
		var max_allow_date    = moment(new Date(), "DD-MM-YYYY").add("-"+max_allow_date, "days").format("YYYY-MM-DD");
		if(max_allow_date > start_date){
			start_date   = max_allow_date;
		}
	}

	//DATE OF JOINING BASED DATE VALIDATION
	if(date_of_joining){
		if(date_of_joining > start_date){
			start_date   = date_of_joining;
		}
	}
	//FOR ADD(INSERT PROCESS)
	if(parseInt(view_id) === -1 || parseInt(view_id) === 0){
		$(function () {
			//FOR MIN AND MAX DATE SET IN BEFORE ALREADY ADDED DATETIMEPICKER REMOVE IT 
			var date_inputs = $('.datepicker').not('#date_of_joining,#request_date,#approve_date');
			$(date_inputs).each(function() {
				var date_input_id    = $(this).attr('id');
				$('#'+date_input_id).val('');
				$('#'+date_input_id).datetimepicker();
				$('#'+date_input_id).datetimepicker('destroy');
			});

			//MIN AND MAX DATE SET
			$(".datepicker").datetimepicker({
				format: 'DD-MM-YYYY',
				minDate: moment(start_date, "YYYY-MM-DD"), // Specify the input format explicitly
				maxDate: moment(end_date, "YYYY-MM-DD"), // Specify the input format explicitly
				//debug: true
			});
		});
	}else{
		$(function () {
			$(".datepicker").datetimepicker({
				format: 'DD-MM-YYYY',
				//debug: true
			});
		});
	}	
}

//view a employee request details by latha
function get_emp_request_details(employee_code){
	var request_type 	= parseInt($("#request_type").val());
	var send_url = '<?php echo site_url("$controller_name/get_emp_details"); ?>';
	if(employee_code && request_type){
		//Encryption
		var key     = '<?php echo $encKey; ?>';
		var data    = {employee_code:employee_code,request_type:request_type};
		var encData = encrypt(key,data);
		$.ajax({
			type: "POST",
			url: send_url,
			data:encData,				
			contentType: 'text/plain',
			success: function(data) {
				var rslt          	= JSON.parse(data);
				var request_data 	= rslt.request_details;
				if(request_type === 1){
					$("#leave_body").html(request_data);
				}else
				if(request_type === 4){
					$("#permission_body").html(request_data);
				}
				
			}
		});
	}
	
}

function check_validation(from,db_name){
	// $("#submit").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
	// $('#submit').attr('disabled','disabled');
	var component_value  = '<?php echo $component_value; ?>';
	if(db_name === 'tcl_hrms' || db_name === 'tcl_dev'){ // Added only for TCL
		var employee_code    = $('#employee_code').val();
	}else{
		var employee_code    = '<?php echo $logged_emp_code; ?>';
	}
	var request_type     = $('#request_type').val();
	var leave_type       = $('#leave_type').val();
	var from_date        = $('#from_date').val();
	var to_date          = $('#to_date').val();
	var from_date_type   = $('#from_date_type').val();
	var to_date_type     = $('#to_date_type').val();	
	var check_from_date  = moment(from_date, 'DD-MM-YYYY').format('YYYY-MM-DD');	
	var check_to_date    = moment(to_date, 'DD-MM-YYYY').format('YYYY-MM-DD');	

	var can_process      = true;
	if(from === "from_date"){
		$('#from_date_type').val('');
		from_date_type = "";
	}
	if(from === "to_date" || from === "from_date_type" || from === "to_date_type"){
		if(from === "to_date"){
			$('#to_date_type').val('');
			to_date_type = "";
		}
		if(from_date === ""){
			$('#to_date').val('');
			to_date = "";
			toastr.error("From Date Should Not Empty!!");
			return false;
		}else
		if(from_date_type === ""){
			$('#to_date').val('');
			to_date = "";
			toastr.error("From Date Type Should Not Empty!!");
			return false;
		}
	}
	if(from_date && to_date){
		if(check_from_date > check_to_date){
			$('#to_date').val('');
			$('#to_date_type').val('');
			toastr.error("To Date Should be Greater than From Date");
			return false;
		}
	}
	if(check_from_date === check_to_date){
		if((from_date_type && to_date_type) && (from_date_type !== to_date_type)){
			if(from === "from_date_type"){
				$('#from_date_type').val('');
				toastr.error("Please check your From date type...");
			}else
			if(from === "to_date_type"){
				$('#to_date_type').val('');
				toastr.error("Please check your To date type...");
			}
			return false;
		}		
	}
	if((from_date_type && to_date_type) && (check_from_date !== check_to_date)){
		if(parseInt(from_date_type) === 2){
			$('#from_date_type').val('');
			toastr.error("Please check your From date type...");
			return false;
		}else
		if(parseInt(to_date_type) === 3){
			$('#to_date_type').val('');
			toastr.error("Please check your To date type...");
			return false;
		}		
	}
	select_all();
	if((from === "from_date" || from === "to_date")){
		if(from === "from_date" && from_date_type){
			check_is_holiday(from,from_date,to_date,from_date_type,to_date_type,employee_code);
		}else
		if(from === "to_date" && to_date_type){
			check_is_holiday(from,from_date,to_date,from_date_type,to_date_type,employee_code);
		}
	}else
	if((from === "from_date_type" || from === "to_date_type")){
		if(from === "from_date_type" && from_date){
			check_is_holiday(from,from_date,to_date,from_date_type,to_date_type,employee_code);
		}else
		if(from === "to_date_type" && to_date){
			check_is_holiday(from,from_date,to_date,from_date_type,to_date_type,employee_code);
		}
		
	}
	if(employee_code && from_date && to_date && from_date_type && to_date_type){
		view_leave_status(employee_code,component_value,request_type,leave_type,from_date,to_date,from_date_type,to_date_type);
	}
}
function check_is_holiday(from,from_date,to_date,from_date_type,to_date_type,employee_code){
	var send_url = '<?php echo site_url("$controller_name/check_is_holiday"); ?>';
	//Encryption
	var key      = '<?php echo $encKey; ?>';
	var data     = {from:from,from_date:from_date,to_date:to_date,from_date_type:from_date_type,to_date_type:to_date_type,employee_code:employee_code};
	var encData  = encrypt(key,data);
	$.ajax({
		type: "POST",
		url: send_url,
		data:encData,				
		contentType: 'text/plain',
		success: function(data) {
			var rslt = JSON.parse(data);
			if(rslt.success){
				if(rslt.from === "weekoff"){
					if(rslt.weekoff_type === "2"){
						$('#'+from+'_type').val('3');
						$('#'+from+'_type').attr('readonly','readonly');
						//check_validation(from);
					}else
					if(rslt.weekoff_date === "3"){
						$('#'+from+'_type').val('2');
						$('#'+from+'_type').attr('readonly','readonly');
						//check_validation(from);
					}else{
						toastr.error(rslt.message);
						$('#'+from).val('');
						$('#'+from+'_type').val('');
					}
				}else{
					toastr.error(rslt.message);						
					$('#'+from).val('');
					$('#'+from+'_type').val('');
				}				
			}else{
				$('#'+from+'_type').val('');
				$('#'+from+'_type').removeAttr('readonly','readonly');					
			}
			select_all();
		}
	});
}

function view_leave_status(employee_code,component_value,request_type,leave_type,from_date,to_date,from_date_type,to_date_type){
	var leave_balance    = $('#leave_balance').val();
	var send_url         = '<?php echo site_url("$controller_name/view_leave_status"); ?>';
	//Encryption
 	var key              = '<?php echo $encKey; ?>';
	var data             = {employee_code:employee_code,component_value:component_value,request_type:request_type,leave_type:leave_type,from_date:from_date,to_date:to_date,from_date_type:from_date_type,to_date_type:to_date_type,leave_balance:leave_balance};
	var encData          = encrypt(key,data);
	$.ajax({
		type: "POST",
		url: send_url,
		data:encData,				
		contentType: 'text/plain',
		success: function(data) {
			var rslt = JSON.parse(data);
			if(rslt.success){
				$('#to_date_type').val('');		
				$('#no_of_days').parent().hide();					
				$('#no_of_days').addClass('ignore');
				$('#no_of_days').val('');	
				toastr.error(rslt.message);		
			}else{
				if(parseInt(request_type) === 1){ 
					if(leave_balance){
						if(parseFloat(rslt.leave_count) > parseFloat(leave_balance)){
							toastr.error("No of Leave Days Should Not Exceeded the Leave Balance...");
							$('#to_date_type').val('');
							$('#no_of_days').parent().hide();					
							$('#no_of_days').addClass('ignore');
							$('#no_of_days').val('');			
						}else{
							$('#no_of_days').parent().show();					
							$('#no_of_days').removeClass('ignore');
							$('#no_of_days').val(rslt.leave_count);
							upload_file_hide_show(leave_type,rslt.leave_count);
							$('#submit').attr('disabled',false);
							// $("#submit").html("Submit");
						}
					}else{
						$('#no_of_days').parent().show();					
						$('#no_of_days').removeClass('ignore');
						$('#no_of_days').val(rslt.leave_count);	
						upload_file_hide_show(leave_type,rslt.leave_count);
						$('#submit').attr('disabled',false);
						// $("#submit").html("Submit");
					}
				}else{
					$('#submit').attr('disabled',false);
					// $("#submit").html("Submit");
				}							
			}
			select_all();
		}
	});
}

function get_leave_type_details(leave_type,employee_code){
	if(employee_code === ""){
		toastr.error("Please Choose Employee code");
		$('#leave_type').val('');
	}else
	if(!leave_type){
		toastr.error("Choose To Leave Type");
	}else{
		var send_url    = '<?php echo site_url("$controller_name/leave_balance_count"); ?>';
		if(leave_type){
			//Encryption
			var key     = '<?php echo $encKey; ?>';
			var data    = {employee_code:employee_code,leave_type:leave_type};
			var encData = encrypt(key,data);
			$.ajax({
				type: "POST",
				url: send_url,
				data:encData,				
				contentType: 'text/plain',
				success: function(data) {
					var rslt = JSON.parse(data);
					if(rslt.success){
						// var leave_opening = rslt.leave_opening;
						if(rslt.leave_opening === "2"){
							$('#leave_balance').parent().hide();					
							$('#leave_balance').addClass('ignore');
							$('#leave_balance').val('');
						}else
						if(parseFloat(rslt.leave_balance) > 0){
								$('#leave_balance').parent().show();					
								$('#leave_balance').removeClass('ignore');
								$('#leave_balance').val(rslt.leave_balance);
						}else{
								toastr.error("Leave balance Not Available for this leave type.!");
								$('#leave_balance').parent().hide();					
								$('#leave_balance').addClass('ignore');
								$('#leave_type').val('');
						}
					}
					select_all();
				}
			});
		}	
	}
}

function upload_file_hide_show(leave_type,no_of_days){
	if(leave_type === "4" && no_of_days > 2){
		$('#upload_file').parent().show();
		$('#upload_file,#upload_upload_file').removeClass("ignore");
	}else{
		$('#upload_file').parent().hide();
		$('#upload_file,#upload_upload_file').addClass("ignore");
		$('#upload_file,#upload_upload_file').val('');
	}	
	select_all();
}

//PERMISSION IN AND OUT DATE TIME DIFFERENCE CALCULATE
function time_diff_calculate(permission_date,in_time,out_time,shift_name,permission_type,db_name){
	var send_url     = '<?php echo site_url("$controller_name/time_diff_calculate"); ?>';
	//Encryption
	var key          = '<?php echo $encKey; ?>';
	var data         = {permission_date:permission_date,in_time:in_time,out_time:out_time};
	var encData      = encrypt(key,data);
	$.ajax({
		type: "POST",
		url: send_url,
		data:encData,				
		contentType: 'text/plain',
		success: function(data) {
			var rslt = JSON.parse(data);
			if(rslt.success){
				if(rslt.total_time !== "00:00:00"){
					var total_time = rslt.total_time;
					$('#total_time').val(total_time);
					$('#submit').attr('disabled',false);
					if(permission_type === "1"){
						permission_request(permission_date,shift_name,in_time,out_time,total_time,permission_type,db_name);
					}
					// select_all();
				}else{
					toastr.error('Choose Valid In Time And Out Time?');
					$('#in_time').val("00:00");
					$('#out_time').val("00:00");
					$('#total_time').val("00:00");
					return false;
				}
			}else{
				toastr.error('Choose Valid In Time And Out Time?');
				$('#in_time').val("00:00");
				$('#out_time').val("00:00");
				$('#total_time').val("00:00");
				return false;
			}
			
		}
	});
}

//CHECK A PERMISSION REQUEST VALIDATION FORM PERMISSION ENTRY TABLE
function permission_request(permission_date,shift_name,in_time,out_time,total_time,permission_type,db_name){
	// $('#submit').attr('disabled','disabled');
	var component_value      = '<?php echo $component_value; ?>';
	//var employee_code    = '<?php echo $logged_emp_code; ?>';
	if(db_name === 'tcl_hrms' || db_name === 'tcl_dev'){ // Added only for TCL
		var employee_code    = $('#employee_code').val();
	}else{
		var employee_code    = '<?php echo $logged_emp_code; ?>';
	}
	var send_url             = '<?php echo site_url("$controller_name/permission_request"); ?>';
	//AJAX CALL
	//Encryption
	var key                  = '<?php echo $encKey; ?>';
	var data                 = {component_value:component_value,employee_code:employee_code,permission_date:permission_date,shift_name:shift_name,in_time:in_time,out_time:out_time,total_time:total_time,permission_type:permission_type};
	var encData              = encrypt(key,data);
	$.ajax({
		type: "POST",
		url: send_url,
		data:encData,				
		contentType: 'text/plain',
		success: function(data) {
			var rslt = JSON.parse(data);
			if(!rslt.success){
				// $('#permission_date').val('');
				// $('#shift_name').val('');
				// $('#permission_type').val('');
				// $('#in_time').val("00:00");
				$('#out_time,#total_time').val("00:00");
				toastr.error(rslt.message);
				// return false;
			}else{
				$('#submit').attr('disabled',false);
				// $("#submit").html("Submit");
				return true;
			}
			select_all();
		}
	});
}

//GET EMPLOYEE PUNCH IN AND OUT TIME FROM TIME ENTRY TABLE
// function get_emp_shift_punch_time(request_type,employee_code,shift_date,in_date,out_date,day_type,from,get_manual_punch_shift)
function get_emp_shift_punch_time(request_type,employee_code,shift_date,in_date,out_date,day_type,view_id,from,get_manual_punch_shift,get_shift_name){
	// $('#submit').attr('disabled','disabled');
	var send_url                = '<?php echo site_url("$controller_name/emp_shift_punch_time"); ?>';
	//Encryption
	var key                     = '<?php echo $encKey; ?>';
	var data                    = {employee_code:employee_code,shift_date:shift_date};
	var encData                 = encrypt(key,data);
	$.ajax({
		type: "POST",
		url: send_url,
		data:encData,				
		contentType: 'text/plain',
		success: function(data) {
			var rslt = JSON.parse(data);
			if(rslt.success){
				var shift_name  = rslt.shift_name;
				var punch_in    = rslt.punch_in;
				var punch_out   = rslt.punch_out;
				var message     = "<span style = 'font-size:18px !important;'> Please Confirm the Punch Details : </span>";
				var content     = "<p><b>Shift Name :</b> "+ shift_name + "</p></br><p><b>Punch In :</b> "+ punch_in + "</p></br><p><b>Punch Out :</b> "+ punch_out + "</p></br>";
			}else{
				var message     = "<span style = 'font-size:18px !important;'> Punches are not available in this shift date ("+shift_date+") </span>";
				var content     = "";
				if(shift_name){
					var content  = "<p><bold>Shift Name :</bold> "+ shift_name + "</p></br><p><bold></br>";
				}
			}
			// select_all();
			//CONFIRMATION ALERT
			$.confirm({
				title: message,
				content: content,
				type: 'red',
				typeAnimated: true,
				buttons: {
					Confirm: function(){
						//ONLY FOR MANUAL PUNCH
						if(parseInt(request_type) === 4){
							get_shift_name(shift_date,employee_code,view_id,from);
						}
						if(parseInt(request_type) === 7){
							get_manual_punch_shift(employee_code,shift_date,in_date,out_date,day_type,from);
						}
					},
					// No: function() {
					// },
					// close: function(){
					// }
				}
			});
		}
	});
}

//DR CODE START FOR PERMISSION REQUEST
function get_shift_name(shift_date,employee_code,view_id,from){
	// $("#submit").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
	// $('#submit').attr('disabled','disabled');
	var send_url    = '<?php echo site_url("$controller_name/get_shift_name"); ?>';
	if(shift_date && employee_code){
		//Encryption
		var key     = '<?php echo $encKey; ?>';
		var data    = {employee_code:employee_code,shift_date:shift_date};
		var encData = encrypt(key,data);
		$.ajax({
			type: "POST",
			url: send_url,
			data:encData,				
			contentType: 'text/plain',
			success: function(data) {
				var rslt = JSON.parse(data);
				if(rslt.success){
					var shift_name = rslt.shift_name;
					if(from === "permission_date"){
						$('#shift_name').val(shift_name);
					}else
					if(from === "shift_date"){
						$('#current_shift').val(shift_name);
					}
					// if(shift_name){
					// 	// shift_in_out_time(shift_name,view_id);
					// }
					$('#submit').attr('disabled',false);
					// $("#submit").html("Submit");
				}else{
					$('#permission_date,#shift_date,#current_shift').val('');
					toastr.error(rslt.message);
				}
				select_all();
			}
		});
	}
}

//function for only reber time office 
//DR CODE START FOR SHIFT CHANGE REQUEST
function change_shift_validate(employee_code,shift_date,current_shift,change_shift,shift_change_type){
	var send_url = '<?php echo site_url("$controller_name/change_shift_validate"); ?>';
	if(shift_date && employee_code){
		//Encryption
		var key     = '<?php echo $encKey; ?>';
		var data    = {employee_code:employee_code,shift_date:shift_date,current_shift:current_shift,change_shift:change_shift};
		var encData = encrypt(key,data);
		$.ajax({
			type: "POST",
			url: send_url,
			data:encData,				
			contentType: 'text/plain',
			success: function(data) {
				var rslt = JSON.parse(data);
				if(!rslt.success){
					toastr.error(rslt.message);
					$('#change_shift').val('');
				}
				select_all();
			}
		});
	}
}

//DR CODE START FOR MANUAL PUNCH REQUEST
function get_manual_punch_shift(employee_code,shift_date,in_date,out_date,day_type,text){
	// $("#submit").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
	// $('#submit').attr('disabled','disabled');
	var send_url           = '<?php echo site_url("$controller_name/manual_punch_shift"); ?>';
	var mp_treat_time_log  = "<?php echo $mp_treat_time_log;?>";
	//Encryption
	var key                = '<?php echo $encKey; ?>';
	var data               = {employee_code:employee_code,shift_date:shift_date,mp_treat_time_log:mp_treat_time_log};
	var encData            = encrypt(key,data);
	$.ajax({
		type: "POST",
		url: send_url,
		data:encData,				
		contentType: 'text/plain',
		success: function(data) {
			var rslt = JSON.parse(data);
			if(rslt.success){
				var shift_rslt_arr   = rslt.shift_result;
				var shift_name       = shift_rslt_arr[0].shift_name;
				var from_time        = shift_rslt_arr[0].from_time;
				var to_time          = shift_rslt_arr[0].to_time;
				var first_half       = shift_rslt_arr[0].first_half;
				var second_half      = shift_rslt_arr[0].second_half;
				var shift_status     = parseInt(shift_rslt_arr[0].shift_status);
				var next_date        = moment(shift_date, 'DD-MM-YYYY').add(+1, 'days').format('YYYY-MM-DD');
				$('#shift_name').val(shift_name);
				if(text === "shift_date"){
					$('#in_date').val(shift_date);
					$('#out_date').val(shift_date);
					if(shift_status === 2){
						$('#out_date').val(next_date);
					}else
					if(shift_status === 3){
						$('#in_date').val(next_date);
						$('#out_date').val(next_date);
					}
					//ONLY FOR TIME LOG BASED MP REQUEST
					if(mp_treat_time_log === "1"){
						$('#in_date').val(rslt.min_date);
						$('#out_date').val(rslt.max_date);
						if(rslt.min_time){
							$('#in_time').val(rslt.min_time);
						}
						/*else{	
							$('#in_time').val(from_time);
						}*/
						if(rslt.max_time){
							$('#out_time').val(rslt.max_time);
						}
						/*else{	
							$('#out_time').val(to_time);
						}*/
						var in_date       = $('#in_date').val();
						var out_date      = $('#out_date').val();
						var in_time       = $('#in_time').val();
						var out_time      = $('#out_time').val();
						if(in_date && out_date){
							diff_date_time_cal(in_date,out_date,in_time,out_time,text);
						}						
					}
				}else{
					//MP NOT TREAT AS TIME LOG BASED
					if(mp_treat_time_log === "2"){
						// $('#shift_name').val(shift_name);
						if(day_type === 1){
							$('#in_time').val(from_time);
							$('#out_time').val(to_time);
						}else
						if(day_type === 2){
							$('#in_time').val(from_time);
							$('#out_time').val(first_half);
						}else{
							$('#in_time').val(second_half);
							$('#out_time').val(to_time);
						}
						var in_time       = $('#in_time').val();
						var out_time      = $('#out_time').val();
						diff_date_time_cal(in_date,out_date,in_time,out_time,text);
					}
				}
			}else{
				toastr.error(rslt.message);
				if(text === "shift_date"){
					$('#shift_date,#shift_name').val('');
				}else{
					$('#day_type').val('');
				}
				// $('#out_date').val('');
			}
			select_all();
		}
	});
}

function diff_date_time_cal(in_date,out_date,in_time,out_time,text){
	var send_url = '<?php echo site_url("$controller_name/diff_date_time_cal"); ?>';
	//Encryption
	var key      = '<?php echo $encKey; ?>';
	var data     = {in_date:in_date,out_date:out_date,in_time:in_time,out_time:out_time,text:text};
	var encData  = encrypt(key,data);
	$.ajax({
		type: "POST",
		url: send_url,
		data:encData,				
		contentType: 'text/plain',
		success: function(data) {
			var rslt = JSON.parse(data);
			if(rslt.success){
				if(rslt.total_time !== "00:00:00"){
					var total_time = rslt.total_time;
					$('#total_time').val(total_time);
					// select_all();
					$('#submit').attr('disabled',false);
					// $("#submit").html("Submit");
				}else{
					toastr.error('Choose Valid In Time And Out Time?');
					$('#in_time').val("00:00");
					$('#out_time').val("00:00");
					$('#total_time').val("00:00");
					$('#day_type').val('');
					// $('#shift_name').val('');
					return false;
				}
			}else{
				toastr.error('Choose Valid In Date or In Time And Out Date or Out Time?');
				$('#in_time').val("00:00");
				$('#out_time').val("00:00");
				$('#total_time').val("00:00");
				$('#day_type').val('');
				// $('#shift_name').val('');
				return false;
			}
			
		}
	});
}

</script>
<style> 
#panel, #flip, #flip_1 {
  text-align: center;
}

#flip, #flip_1, #panel, #panel_1 {
  display: none;
}
</style>