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/.trash/application.1/views/direct_leave_entry/form.php
<?php 
$logged_user_role     = $this->session->userdata('logged_user_role');
$logged_emp_code      = $this->session->userdata('logged_emp_code');
$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      = "";
$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 	  = "";
	$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;
		$upload_filesize = $setting->upload_file_size;	
		$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;
		}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){
					$date = date('d-m-Y',strtotime($input_value));
					if($date === "01-01-1970"){
						//$date = date("d-m-Y");
						$date = '';
					}
				}else{
					if($label_id === "request_date"){
						$date = date("d-m-Y");
					}
				}
				$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;
				$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];
				}
				$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[$prime_form_id] ,$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[$prime_form_id];
				$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;
				$upload_old  = "old_".$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>";
					}
					$file_ext_type  = explode(".", $value);
					$file_ext_type  = end($file_ext_type);
					$view_btn   = "<div onclick=view_upload_file('".$proof."','".$file_ext_type."');>$file_name<div>";
				}
				$row_send_data  .= "$upload_old:$('#$upload_old').val(),";
				
				$input_box .= "<div class='form-group'>
								$form_label 
								<input type='hidden' id='$label_id' name='$label_id' value='$value'>
								<input type='hidden' id='$upload_old' name='$upload_old' value='$value'>
								$form_upload
								<table style='width: 100%;' id='$tabel_id'>
									<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>";
			}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	 = base_url("upload_files/upload.php?send_from=$controller_name&send_for=$upload_id&extension=$extension");
				$document_load_script .= "$('#$upload_id').change(function() {
					var file_data = $('#$upload_id').prop('files')[0];
					var size = file_data.size;
						if(file_data){
							if(check_upload_size(size)){
								var form_data = new FormData();
								form_data.append('$upload_id', file_data);
								$.ajax({
									url: '$send_url',
									cache: false,
									contentType: false,
									processData: false,
									data: form_data,
									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('');
										}
									}
								});
							 }else{
								toastr.error('Please select file size below or equal to 2mb');
								$('#$upload_id').val('');
							}
						}else{
							toastr.error('Please select file to upload');
						}
				});\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 ==================*/
		}
	}
	if($form_view_type === 1){
		$view_content .= "<h4 class='block_head'>Direct HR Entry</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"));

//upload pdf file viewed popup
$upload_div 	= "<div class='modals' id='myModal' style='display:none;'>
					<div class='modals-dialogs'>
					    <div class='modals-content'>
					      <div class='modals-header'>
					        <h4 class='modals-title'>View PDF</h4>
					        <a class='close view_pdf_close' onclick='close_popup_div();'>&times</a>
					      </div>
					      <div class='modals-body' id='view_pdf'>
					      </div>
					      <div class='modals-footer'>
					        <a class='btn btn-danger' value='Close' id='popup_close' onclick='close_popup_div();'>Close</a>
					      </div>
					    </div>
					  </div>
					</div>";

/*echo "$form_open
		<fieldset id='FundBasicInfo' style='margin:0px;padding:8px;background-color:#f2f2f2;'>
			$prime_inupt
			$view_content
			$upload_div
		</fieldset>
	$form_close";*/

echo "$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){
	foreach ($role_based_condition as $key => $condition) {
		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();";
	}
}
?>
<script type="text/javascript">
$(document).ready(function(){
	<?php echo $user_read_only; ?>   
	var prime_id         = "#<?php echo $prime_id;?>";
	var form_id          = "#<?php echo $form_id;?>";
	var date_exist       = "<?php echo $date_exist;?>";
	var date_time_exist  = "<?php echo $date_time_exist;?>";
	// if(date_exist === "1"){
	// 	$(function () {
	// 		$(".datepicker").datetimepicker({
	// 			format: 'DD-MM-YYYY',
	// 			//debug: true
	// 		});
	// 		$(".datepicker_month").datetimepicker({
	// 			format: 'MM-YYYY',
	// 			//debug: true
	// 		});
	// 		$(".datepicker_year").datetimepicker({
	// 			format: 'YYYY',
	// 			//debug: true
	// 		});
	// 	});
	// }
	
	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();
	var view_id           = $(prime_id).val();
	// var salary_start_date =  "<?php echo $salary_start_date;?>";
	// var salary_end_date   =  "<?php echo $salary_end_date;?>";

	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_exist === "1"){
	// 	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');
	// 	if(!view_id){
	// 		$(function () {
	// 			$(".datepicker").datetimepicker({
	// 				format: 'DD-MM-YYYY',
	// 				minDate: moment(start_date),
	// 				maxDate: moment(end_date),
	// 				//debug: true
	// 			});
	// 		});
	// 	}else{
	// 		$(function () {
	// 			$(".datepicker").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"){
		$(function(){
			$('.select2').select2({
				placeholder: '---- Select ----',
				allowClear: true,
				dropdownParent: $('.modal-dialog')
			});
			$('.select2-tags').select2({
				tags: true,
				tokenSeparators: [',']
			});
		});
	}
	/*
	$('input').keypress(function(e){ 
		e = e || event;
		var s = String.fromCharCode(e.charCode);
		if(s.match(/[A-Z]/)){
			toastr.clear();
			toastr.error('Capital letters disabled');
			return false;
		}
	});
	*/
	//REQUEST DATE WILL BE DAFAULT SET AND READONLY	
	/*$('#request_date').datetimepicker({
		format     : 'YYYY-MM-DD',
        defaultDate: new Date(),  

	});*/
	//GET DATE OF JOINING WITH EMPLOYEE CODE
	// if(parseInt(logged_user_role) !== 1 && parseInt(logged_user_role) !== 2){
	// 	$('#employee_code').val(logged_emp_code);
	// 	$('#employee_code').attr('readonly','readonly');
	// 	var employee_code  = $('#employee_code').val();
	// 	get_employee_details(employee_code);
	// }

	$('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){
			//Encrypted
			let formData   = new FormData(form);
			// Convert FormData to JSON object
			let jsonData   = Object.fromEntries(formData.entries());
			var key        = '<?php echo $encKey; ?>';
			<?php echo $json_multi; ?>;
			var encData    = encrypt(key,jsonData);
			$("#submit").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
			$('#submit').attr('disabled','disabled');
			$.ajax({
				url         : $(form).attr('action'), 
				type        : 'POST',
				contentType : 'text/plain', 
				data        : encData,
				success: function (response){
					$('#submit').attr('disabled',false);
					$("#submit").html("Submit");
					if(response.success){
						toastr.success(response.message);
						$(prime_id).val(response.insert_id);
						$('.row_btn').show();
						$('.modal').modal('hide');
						// location.reload(true);
						//GLOBAL VARIABLES FROM MANAGE MODULE FOR DATATABLE EDIT VIEW AND CANCEL BUTTON VALIDATE
						emp_cancel_arr  = response.emp_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();
					}
				},
				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 employee details
	$('#employee_code').on('change', function() {
		var employee_code  = $('#employee_code').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);
		}
	});

	//EDITR SO CHOOSED REQUEST TYPE SHOW TO UPDATE FUNCTION
	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() {
		var employee_code   = $("#employee_code").val();
		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();
	var employee_code  = $('#employee_code').val();
	if(leave_type && employee_code && !view_id){
		get_leave_type_details(leave_type,employee_code);
	}	
	//proof(upload file) hide and show function for only leave request and only for sl leave type
	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();
		var employee_code  = $('#employee_code').val();
		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");
	});
	$('#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);
		}
	});
	$('#from_date_type,#to_date_type').on("change",function (e){
		var from  = $(this).attr('id');
		check_validation(from);
	});

	//DR CODE START FOR PERMISSION REQUEST
	$('#permission_date').on("dp.hide",function (e){
		var request_type      = $('#request_type').val();
		var employee_code     = $('#employee_code').val();
		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
	var mp_treat_time_log    = "<?php echo $mp_treat_time_log;?>";
	$('#shift_date').on("dp.hide",function (e){
		var employee_code    = $('#employee_code').val();
		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){
		var employee_code     = $('#employee_code').val();
		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());
		var employee_code = $('#employee_code').val();

		if(!shift_date){
			toastr.error('Shift Date should not be Empty!');
			$('#out_date').val('');
			return false;
		}else
		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);
					}
				}
			}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){
					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 && out_time !== "00:00"){
						time_diff_calculate(permission_date,in_time,out_time,shift_name,permission_type);
					}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();
	});

});
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,#leave_balance,#no_of_days,#rejected_reason,#shift_date,#day_type,#upload_file,#upload_upload_file,#business_file,#upload_business_file,#mp_reason,#device_code,#shift_change_type').parent().hide();
	//for readonly
	$('#first_level_approval,#second_level_approval,#request_date,#leave_balance,#no_of_days').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,#leave_balance,#no_of_days,#rejected_reason,#shift_date,#day_type,#upload_file,#upload_upload_file,#business_file,#upload_business_file,#mp_reason,#shift_change_type').addClass('ignore');
}

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;?>";
		//FOR TIME LOG BASED
		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');
	}
}
// 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);
}
function get_employee_details(employee_code,view_id){
	var send_url = '<?php echo site_url("$controller_name/get_employee_details"); ?>';
	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){
				$("#date_of_joining").val(rslt.date_of_joining);
				// $("#first_level_approval").val(rslt.first_level_approval);
				// $("#second_level_approval").val(rslt.second_level_approval);
				$("#component_value").val(rslt.component_value);
				$("#device_code").val(rslt.device_code);

				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 LEAVE EXPORT TABLE 
				select_date_validate(salary_start_date,salary_end_date,view_id);
				get_emp_request_details(employee_code);
			}else{
				toastr.error(rslt.message);
				$("#employee_code").val('');	
			}

			select_all();
		}
	});
}

//FOR DATE VALIDATION BASED ON LEAVE EXPORT TABLE 
function select_date_validate(salary_start_date,salary_end_date,view_id){
	// var start_date = moment(salary_start_date, 'DD-MM-YYYY').add(+1, 'days').format('YYYY-MM-DD');
	// var end_date   = moment(salary_end_date, 'DD-MM-YYYY').format('YYYY-MM-DD');
	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');
	if(!view_id){
		$(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),
				maxDate: moment(end_date),
				//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){
		var key     = '<?php echo $encKey; ?>';
		var encData = encrypt(key,{employee_code:employee_code,request_type:request_type});
		$.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){
	// $("#submit").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
	$('#submit').attr('disabled','disabled');
	var component_value  = $('#component_value').val();
	var employee_code    = $('#employee_code').val();
	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 check_from_date  = new Date(from_date);
	// var check_to_date    = new Date(to_date);
	var can_process      = true;
	if(from === "to_date" || from === "from_date_type" || from === "to_date_type"){
		if(from_date === ""){
			toastr.error("From Date Should Not Empty!!");
			$('#to_date').val('');
			return false;
		}else
		if(from_date_type === ""){
			toastr.error("From Date Type Should Not Empty!!");
			$('#to_date').val('');
			return false;
		}
	}
	if(from_date && to_date){
		if(check_from_date > check_to_date){
			toastr.error("To Date Should be Greater than From Date");
			$('#to_date').val('');
			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"){
				toastr.error("Please check your To date type...");
				$('#from_date_type').val('');
			}else
			if(from === "to_date_type"){
				toastr.error("Please check your From date type...");
				$('#to_date_type').val('');
			}
			return false;
		}		
	}
	if((from_date_type && to_date_type) && (check_from_date !== check_to_date)){
		if(parseInt(from_date_type) === 2){
			toastr.error("Please check your From date type...");
			$('#from_date_type').val('');
			return false;
		}else
		if(parseInt(to_date_type) === 3){
			toastr.error("Please check your To date type...");
			$('#to_date_type').val('');
			return false;
		}		
	}
	if((from === "from_date" || from === "to_date") && component_value){
		if(from === "from_date" && from_date_type){
			check_is_holiday(from,from_date,to_date,from_date_type,to_date_type,component_value,employee_code);
		}else
		if(from === "to_date" && to_date_type){
			check_is_holiday(from,from_date,to_date,from_date_type,to_date_type,component_value,employee_code);
		}
	}else
	if((from === "from_date_type" || from === "to_date_type") && component_value){
		if(from === "from_date_type" && from_date){
			check_is_holiday(from,from_date,to_date,from_date_type,to_date_type,component_value,employee_code);
		}else
		if(from === "to_date_type" && to_date){
			check_is_holiday(from,from_date,to_date,from_date_type,to_date_type,component_value,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,component_value,employee_code){
	var send_url = '<?php echo site_url("$controller_name/check_is_holiday"); ?>';
	var key     = '<?php echo $encKey; ?>';
	var encData = encrypt(key,{from:from,from_date:from_date,to_date:to_date,from_date_type:from_date_type,to_date_type:to_date_type,component_value:component_value,employee_code:employee_code});
	$.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"); ?>';
	var key      = '<?php echo $encKey; ?>';
	var encData  = encrypt(key,{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});
	$.ajax({
		type: "POST",
		url: send_url,
		data:encData,
		contentType:'text/plain',
		success: function(data) {
			var rslt = JSON.parse(data);
			if(rslt.success){
				// $('#from_date').val('');
				// $('#to_date').val('');
				// $('#from_date_type').val('');
				$('#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...");
							// $('#from_date').val('');
							// $('#to_date').val('');
							// $('#from_date_type').val('');
							$('#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){
			var key     = '<?php echo $encKey; ?>';
			var encData = encrypt(key,{employee_code:employee_code,leave_type:leave_type});
			$.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){
	var send_url = '<?php echo site_url("$controller_name/time_diff_calculate"); ?>';
	var key     = '<?php echo $encKey; ?>';
	var encData = encrypt(key,{permission_date:permission_date,in_time:in_time,out_time:out_time});
	$.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);
					}
					// 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 FROM PERMISSION ENTRY TABLE
function permission_request(permission_date,shift_name,in_time,out_time,total_time,permission_type){
	$('#submit').attr('disabled','disabled');
	var component_value  = $('#component_value').val();
	var employee_code    = $('#employee_code').val();
	var send_url = '<?php echo site_url("$controller_name/permission_request"); ?>';
	var key     = '<?php echo $encKey; ?>';
	var encData = encrypt(key,{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});
	//AJAX CALL
	$.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"); ?>';
	var key     = '<?php echo $encKey; ?>';
	var encData = encrypt(key,{employee_code:employee_code,shift_date:shift_date});
	$.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(permission_date&& employee_code){
		var key     = '<?php echo $encKey; ?>';
		var encData = encrypt(key,{employee_code:employee_code,shift_date:shift_date});
		$.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();
			}
		});
	}
}

//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){
		var key     = '<?php echo $encKey; ?>';
		var encData = encrypt(key,{employee_code:employee_code,shift_date:shift_date,current_shift:current_shift,change_shift:change_shift});
		$.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;?>";
	var key     = '<?php echo $encKey; ?>';
	var encData = encrypt(key,{employee_code:employee_code,shift_date:shift_date,mp_treat_time_log:mp_treat_time_log});
	$.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();
						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"); ?>';
	var key      = '<?php echo $encKey; ?>';
	var encData  = encrypt(key,{in_date:in_date,out_date:out_date,in_time:in_time,out_time:out_time,text:text});
	$.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>