HEX
Server: Apache
System: Linux v38079.2is.nl 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: democfellows (10015)
PHP: 8.1.34
Disabled: opcache_get_status
Upload Files
File: /var/www/vhosts/creativefellows.nl/jhtaxatie.creativefellows.nl/classes/HtmlElement.php
<?php

	class HtmlElement
	{
   
		protected $post_value = null;
		
	    
	    public function __construct(array $data,$role = 0)
		{
			$this->element = $data;
			$this->role	= $role;
	    }
		
		public function setPostValue($value)
		{
			$this->post_value = $value;
		}
		
	
		public function id()
		{
			return $this->element[0];
		}

		public function name(){
			return $this->element[1];
		}
		
		public function findings(){
			
		}
		
		public function value(){

			switch( $this->element[2] )
			{	
				default:	
					 
					$element = $this->post_value;
					$element .= '<input type="hidden" value="'. $this->post_value .'" name="'. $this->element[0] .'">';			
					
				break;
				
				case "select_smart_v2":
					
					$option = $this->element[5][$this->post_value];
							
					$element .= '<div class="row collapse">';
						$element .= '<div class="small-9 columns">';
							$element .= $option["label"];
						$element .= '</div>';
						$element .= '<div class="small-3 columns text-right">';
							$element .= number_format($option["price"],2,',','.');
						$element .= '</div>';
					$element .= '</div>';

					$element .= '<input type="hidden" value="'. $this->post_value .'" name="'. $this->element[0] .'">';			
					$element .= '<input type="hidden" value="'. $option["options"] .'" name="'. $this->element[0] .'_options">';
					
				break;
				
				case "checkbox_inline":
				case "checkbox_hidden":
				
					$element = implode(", ",$this->post_value);
					
					foreach($this->post_value as $value){
						$element .= '<input type="hidden" value="'. $value .'" name="'. $this->element[0] .'[]">';			
					}
					
				break;
				
			 	case "checkbox_v2_not_custom":
				case "checkbox_truck_version":

					$options = $this->element[5];
					
				//	d($this->post_value);
				//	die();
									
					foreach($this->element[5] as $i => $option){
												
						if(isset($this->post_value) && in_array($i,$this->post_value))
						{
							$element .= '<div class="row collapse">';
								$element .= '<div class="small-9 columns">';
									$element .= $option["label"];
								$element .= '</div>';
								$element .= '<div class="small-3 columns text-right">';
									$element .= number_format($option["value"],2,',','.');
								$element .= '</div>';
							$element .= '</div>';

							$element .= '<input type="hidden" value="'. $i .'" name="'. $this->element[0] .'[]">';			
							
						}
											
					}
			
				break;
		
				case "select":
					
					$element = $this->element[5][$this->post_value];
					$element .= '<input type="hidden" value="'. $this->post_value .'" name="'. $this->element[0] .'">';		
					
				break;
				
				case "checkbox_v2":
					
					$options = $this->element[5];
					//d($this->post_value);
					
					foreach($this->element[5] as $i => $option){
						
					//die();
						if(isset($this->post_value) && in_array($i,$this->post_value) || $option["custom"] == true)
						{
							$element .= '<div class="row collapse">';
								$element .= '<div class="small-9 columns">';
									$element .= $option["label"];
								$element .= '</div>';
								$element .= '<div class="small-3 columns text-right">';
									$element .= number_format($option["value"],2,',','.');
								$element .= '</div>';
							$element .= '</div>';

							if($option["custom"] == false)
							{
								$element .= '<input type="hidden" value="'. $i .'" name="'. $this->element[0] .'[]">';			
							}
							else{
								$element .= '<input type="hidden" value="'. $option["label"] .'" name="'. $this->element[0] .'_custom[]">';			
								$element .= '<input type="hidden" value="'. $option["value"] .'" name="'. $this->element[0] .'_custom_price[]">';			
							}
						
						}
												
					}
					
				break;
				
				case "enquiry_sum_price":
				
					$star_prices = $this->element[5]["truck_total"];
					$sum_options = $this->element[5]["options_price"];
					
					$element .= '<div class="row collapse">';
						$element .= '<div class="small-12 medium-4 columns"><strong style="font-size:0.875rem;">Sterren</strong></div>';
						$element .= '<div class="small-6 medium-4 columns text-left"><strong style="font-size:0.875rem;">Truckprijs</strong></div>';
						$element .= '<div class="small-6 medium-4 columns text-right"><strong style="font-size:0.875rem;">Incl. opties</strong></div>';
					$element .= '</div>';
					
					foreach($star_prices["stars"] as $i => $star)
					{	
											
						$truck_star_price = $star_prices["custom_price"][$i]["excl"];
						
						
						
						$element .= '<div class="row collapse">';
							$element .= '<div class="small-4 columns">';
								$element .= $star["label"];
							$element .= '</div>';
							$element .= '<div class="small-4 columns text-left">';
								$element .= number_format($star["value"],2,',','.');
							$element .= '</div>';
							$element .= '<div class="small-4 columns text-right">';
								$element .= number_format($star["value"] + $sum_options["value"],2,',','.');
							$element .= '</div>';
						$element .= '</div>';
						
						$element .= '<input type="hidden" value="'. ($truck_star_price == 0 ? 0 : number_format(floatval($truck_star_price),2,'.','')) .'" name="truck_price_custom_excl_'. $i .'">';
						
					}
					
				break;
				
				case "enquiry_sum_price_anton":
				
				
					$truck_version 	= $this->element[5]["truck_version"];
					$sum_options 	= $this->element[5]["options_price"];
					
					//d($this->element[5]);
					
					$element .= '<div class="row collapse">';
						$element .= '<div class="small-5 columns"><strong style="font-size:0.875rem;">Uitvoering</strong></div>';
						$element .= '<div class="small-3 columns text-left"><strong style="font-size:0.875rem;">Truckprijs</strong></div>';
						$element .= '<div class="small-4 columns text-right"><strong style="font-size:0.875rem;">Incl. opties</strong></div>';
					$element .= '</div>';
					
		
						
						$element .= '<div class="row collapse">';
							$element .= '<div class="small-5 columns">';
								$element .= $truck_version["label"];
							$element .= '</div>';
							$element .= '<div class="small-3 columns">';
								$element .= number_format($truck_version["price"],2,',','.');
							$element .= '</div>';
							$element .= '<div class="small-4 columns text-right">';
								$element .= number_format($truck_version["price"] + $sum_options["value"],2,',','.');
							$element .= '</div>';
						$element .= '</div>';
						
					//	$element .= '<input type="hidden" value="'. ($truck_star_price == 0 ? 0 : number_format(floatval($truck_star_price),2,'.','')) .'" name="truck_price_custom_excl_'. $i .'">';
						
						//}
					
				break;
				
				case "slider_single":
					$element = ($this->post_value / 10) . "%";
					$element .= '<input type="hidden" value="'. ($this->post_value / 1000) .'" name="'. $this->element[0] .'">';		
				break;

				
			}
			
			return $element;
		
		}
		
		public function modifyFieldType($new_type)
		{
			$this->element[2] = $new_type;
		}
		
		public function modifyFieldValue($value)
		{
			$this->element[5] = $value;
		}
		
		public function getInputElement($value = "")
		{	

			$value 		= $value == "" ? $this->element[5] : $value;
			$required 	= $this->element[7] !== null && $this->element[7] == false ? "" : " required"; 
			$match_id	= $this->element[8] !== null ? ' data-equalto="'. $this->element[8] .'"' : ""; 
			
			$custom_validator	= "";
			
			if($this->element[9] !== null)
			{
				if($this->element[9][1] == "current") $custom_validator = ' data-validator="'. $this->element[9][0] .'" data-not-equal-to="'. $this->element[9][1] .'"';
				else $custom_validator = ' data-validator="'. $this->element[9][0] .'" data-elements="'. $this->element[9][1] .'"';
			} 
			

			switch( $this->element[2] )
			{			 
				 case "input":	
				 case "textarea":

					 $element .= '<label for="'. $this->element[0] .'" class="input-name">';
	 					$element .= $this->element[1];
	 					$element .= '<div class="input-element">';
	 						
							if($this->element[2] == "input") $element .= '<input type="text" value="'. $value .'" id="'. $this->element[0] .'" name="'. $this->element[0] .'" onkeyup="this.setAttribute(\'value\', this.value);" class="'. $this->element[6] .'" placeholder=""'.$required.''.$custom_validator.'>';
							else $element .= '<textarea id="'. $this->element[0] .'" name="'. $this->element[0] .'" class="'. $this->element[6] .' '. ($value != "" ? "has-value" : "") .'" rows="3" placeholder=""'.$required.'>'. $value .'</textarea>';
							
							$element .= '<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>'; 
	 						$element .= '<span class="placeholder">'. $this->element[3] .'</span>';
	 					$element .= '</div>';
	 				$element .= '</label>';
					
				 break;
				 
				 case "input_custom_error":	
				 	
					//d($value);
					
					 $element .= '<label for="'. $this->element[0] .'" class="input-name">';
	 					$element .= $this->element[1];
	 					$element .= '<div class="input-element">';
	 						
							$element .= '<input type="text" value="'. $value .'" id="'. $this->element[0] .'" name="'. $this->element[0] .'" onkeyup="this.setAttribute(\'value\', this.value);" class="'. $this->element[6] .'" placeholder="" autocomplete="off"'.$required.''.$custom_validator.'>';
							
							$element .= '<span class="form-error">'. $this->element[9][1] .'</span>'; 
	 						$element .= '<span class="placeholder">'. $this->element[3] .'</span>';
	 					$element .= '</div>';
	 				$element .= '</label>';
					
				 break;
				 
				 case "functions":
					 $element .= '<label for="'. $this->element[0] .'" class="input-name">';
	 					$element .= $this->element[1];
	 					$element .= '<div class="input-element">';
 						
							$element .= '<input type="hidden" value="'. $value .'" id="'. $this->element[0] .'_ids" name="'. $this->element[0] .'">';
							$element .= '<input type="text" value="'. $value .'" id="'. $this->element[0] .'" name="'. $this->element[0] .'_labels" class="'. $this->element[6] .'" placeholder=""'.$required.''.$custom_validator.'>';
						
							$element .= '<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>'; 
	 						$element .= '<span class="placeholder">'. $this->element[3] .'</span>';
	 					$element .= '</div>';
	 				$element .= '</label>';
					
					
				 break;
				 
				 
				 case "input_duplicate":
				 	
					$element .= '<div class="image-uploads">';
						
						if($value){
							
							foreach(explode(", ",$value) as $i => $sticker)
							{
								$element .= '<div class="image-file-input'. ($i == 0 ? " first-item" : "") .'">';
			 				
									$element .= '<label class="input-name">';
					 					$element .= $this->element[1];
					 					$element .= '<div class="input-element input-element__sticker">';
										$element .= '<input type="text" value="'. $sticker .'" id="'. $this->element[0] .'" name="'. $this->element[0] .'[]" onkeyup="this.setAttribute(\'value\', this.value);" class="'. $this->element[6] .'" placeholder=""'.$required.''.$custom_validator.'>
														<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>
									 					<span class="placeholder">'. $this->element[3] .'</span>';
					 					$element .= '</div>';
					 				$element .= '</label>';	
							
									$element .= '<span class="delete-field"><i class="fa fa-minus-circle" aria-hidden="true"></i></span>';
									$element .= '<button class="button secondary duplicate-input-field" data-append-to=".image-uploads" type="button">Extra stickernummer</button>';
						
								$element .= '</div>';
							}
			
						}
						else{
							
							$element .= '<div class="image-file-input first-item">';
			 				
								$element .= '<label class="input-name">';
				 					$element .= $this->element[1];
				 					$element .= '<div class="input-element input-element__sticker">';
									$element .= '<input type="text" value="'. $value .'" id="'. $this->element[0] .'" name="'. $this->element[0] .'[]" onkeyup="this.setAttribute(\'value\', this.value);" class="'. $this->element[6] .'" placeholder=""'.$required.''.$custom_validator.'>
													<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>
								 					<span class="placeholder">'. $this->element[3] .'</span>';
				 					$element .= '</div>';
				 				$element .= '</label>';	
							
								$element .= '<span class="delete-field"><i class="fa fa-minus-circle" aria-hidden="true"></i></span>';
								$element .= '<button class="button secondary duplicate-input-field" data-append-to=".image-uploads" type="button">Extra stickernummer</button>';
						
							$element .= '</div>';
								
						}
						

					
					$element .= '</div>';	
					
				 break;
				 				 
				 case "calendar":
					 $element .= '<label for="'. $this->element[0] .'" class="input-name">';
	 					$element .= $this->element[1];
	 					$element .= '<div class="input-element">';
 						
							$element .= '<input type="text" value="'. strftime("%d-%m-%Y",strtotime($value)) .'" id="'. $this->element[0] .'" name="'. $this->element[0] .'" onkeyup="this.setAttribute(\'value\', this.value);" class="calendar" placeholder=""'.$required.''.$custom_validator.'>';
						
							$element .= '<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>'; 
	 						$element .= '<span class="placeholder">'. $this->element[3] .'</span>';
	 					$element .= '</div>';
 					$element .= '</label>';
				 break;
				 
				 
				 case "slider_single":	
				 	

					 // calc start value
					$start_value = $value == "" ? 0 : ($value - 1) * 1000;
					
					$element .= '<div class="checkbox-custom">';
						$element .= '<input type="checkbox" value="1" id="'. $this->element[0] .'"><label class="input-name checkbox-custom" for="'. $this->element[0] .'">'. $this->element[1] .'</label>';
						
						$element .= '<div class="slider" data-slider data-start="'. $this->element[10][0] .'" data-initial-start="'. $start_value .'" data-end="'. $this->element[10][1] .'" data-changed-delay="0">';
							$element .= '<span class="slider-handle" data-slider-handle role="slider" tabindex="1"><span class="slider-value slider-value__percentage">'. ($start_value / 10).'</span></span>';
							$element .= '<span class="slider-fill" data-slider-fill></span>';
							$element .= '<input type="hidden" value="0" name="'. $this->element[0] .'">';
						$element .= '</div>';
						
					$element .= '</div>';
					 
				 break;
				 
				 case "slider":	
				 	
					$element .= '<label for="'. $this->element[0] .'" class="input-name">';
 						$element .= $this->element[1];
					$element .= '</label>';
						
					$element .= '<div class="slider" data-slider data-initial-start="25" data-initial-end="75">';
						$element .= '<span class="slider-handle" data-slider-handle role="slider" tabindex="1"></span>';
						$element .= '<span class="slider-fill" data-slider-fill></span>';
						$element .= '<span class="slider-handle" data-slider-handle role="slider" tabindex="1"></span>';
						$element .= '<input type="number" value="0" name="'. $this->element[0] .'_min">';
						$element .= '<input type="number" value="0" name="'. $this->element[0] .'_max">';
					$element .= '</div>';
					  
				 break;
				 
				 case "radio_image":	
							 
 					$element .= '<label class="input-name">'. $this->element[1] .'</label>';
									
						$element .= '<div class="radio-images">';
						foreach($this->element[5] as $option => $val)
						{	
							$checked 	= $option == $value ? " checked" : "";
							$elementId 	= $this->element[0].$option;
						
							$element .= '<span class="item"><input type="radio" name="'. $this->element[0] .'" value="'. $option .'" id="'. $elementId .'"'.$checked.'><label for="'. $elementId .'">'. $val .'</label></span>';
						
						}
						$element .= '<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>'; 
					$element .= '</div>';
				 break;
				 
				 
				 case "hidden":	
	 			 case "hidden_with_edit":			 						
					
					if( is_array($value) ) $value = $value[0];
					$element .= '<input type="hidden" value="'. $value .'" id="'. $this->element[0] .'" name="'. $this->element[0] .'" placeholder="" required>';
					
				 break;
				 
				 case "password":	
				 	
					
	 				$element .= '<label class="input-name">';
	 					$element .= $this->element[1];
	 					$element .= '<div class="input-element">';
	 						$element .= '<input type="password" value="" name="'. $this->element[0] .'" id="'. $this->element[0] .'" onkeyup="this.setAttribute(\'value\', this.value);" placeholder="" autocomplete="off"'. $required . $match_id .''.$custom_validator.'>'; 
	 						$element .= '<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>'; 
	 						$element .= '<span class="placeholder">'. $this->element[3] .'</span>';
	 					$element .= '</div>';
	 				$element .= '</label>';
					
				 break;
				 
				 case "select":	
				 case "select_not_required":	
				 	
				 
				 	$required 			= $this->element[2] == "select" && $this->element[2] != true ? " required" : "";
				 	$disabled 			= isset($this->element["disabled"]) && $this->element["disabled"] === true ? " disabled" : "";
					
					$disabled_elements 	= [];
					
					if($this->element[9] && $this->element[9][0] == "disable_checks"){
						
						$custom_validator 	= [];
						$groups = explode("||",$this->element[9][1]); 
						
						foreach($groups as $group){
							$items = explode(":",$group);
							
							$disabled_elements[$items[0]] = $items[1];
							
							$custom_validator[] = $items[1];
							
						}
						
						$custom_validator = ' data-disable-checks="'. implode(",",$custom_validator) .'"';						
						
					}
					
					
	 				$element .= '<label class="input-name">';
	 					$element .= $this->element[1];
						
						$element .= '<select id="'. $this->element[0] .'" name="'. $this->element[0] .'"'. $required . $disabled . $custom_validator .'>';
						foreach($this->element[5] as $option => $val)
						{
							$selected = $value == $option || $option == $this->element["value"] ? " selected" : "";
							$data = "";
							if(!empty($disabled_elements)){
								$data = isset($disabled_elements[$option]) ? 'data-elements="'. $disabled_elements[$option] .'"' : 'data-elements=""';
							}
							$element .= '<option value="'. $option .'"'. $selected .' '. $data .'>'. $val .'</option>';
						}
						$element .= '</select>';
						$element .= '<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>'; 
						
							
					$element .= '</label>';
					
				 break;
				 
				 
				 case "select_smart":	
				 
				 	$element .= '<label class="input-name">'. $this->element[1] .'</label>';
				
						$element .= '<div class="smart-select" id="'. $this->element[0] .'">';
						
						foreach($this->element[5] as $option => $val){
							
								
							$values 	= !is_array($this->element[6]) ? explode(", ",$this->element[6]) : $this->element[6];
							
							$checked 	= in_array($option,$values) ? " checked" : "";
							$elementId 	= $this->element[0].$option;
							
							$element .= '<div class="item" data-show-options="'. $this->element[6][$option][0] .'" data-hide-options="'. $this->element[6][$option][1] .'">
											<input type="radio" name="'. $this->element[0] .'" value="'. $option .'" id="'. $elementId .'"'.$checked.'><label for="'. $elementId .'">'. $val .'</label>
										</div>';							
						}
					
						$element .= '<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>'; 
					$element .= '</div>';
				
				 break; 
				 
				 case "select_smart_v2":	
				 
				 	$element .= '<label class="input-name">'. $this->element[1] .'</label>';
				
						$element .= '<div class="smart-select" id="'. $this->element[0] .'">';
						

						foreach($this->element[5] as $count => $option){
																			
							$checked 	= $option["checked"] ? " checked" : "";
							$elementId 	= $this->element[0].$count;
							
							$element .= '<div class="item" data-show-options="'. $this->element[6][$option][0] .'" data-hide-options="'. $this->element[6][$option][1] .'">
											<input type="radio" name="'. $this->element[0] .'" value="'. $option["version_id"] .'" id="'. $elementId .'"'.$checked.' data-version-change data-price="'. $option["price"] .'"  data-fork-adjuster="'. $option["fork_adjuster"] .'"><label for="'. $elementId .'">'. $option["label"] .'</label>
										</div>';
							$element .= '<input type="text" value="'. $option["options"] .'" name="'. $this->element[0] .'_options'. $option["version_id"] .'">';
																	
						}
					
						$element .= '<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>'; 
					$element .= '</div>';
				
				 break; 
				
				
				 case "select_smart_multiple":
					
									 	
				 	$element .= '<label class="input-name">'. $this->element[1] .'</label>';
					
						$element .= '<div class="smart-select" id="'. $this->element[0] .'">';
												$tips = [];
						foreach($this->element[5] as $option => $val)
						{	

							
							$checked 	= !is_array($value) && in_array($option,explode(",",$value)) ? " checked" : "";
							$elementId 	= $this->element[0].$option;
							
							$element .= '<div class="item" data-show-options="'. $this->element[6][$option][0] .'" data-hide-options="'. $this->element[6][$option][1] .'">
											<input type="checkbox" name="'. $this->element[0] .'[]" value="'. $option .'" id="'. $elementId .'"'.$checked.'>
											<label for="'. $elementId .'"  data-toggle2="tip'.$option.'">
											'. $val .'
											</label>
											
										</div>';	//'.  ($this->element[6][$option] != "" ? '<span data-tooltip class="top" data-click-open="false" title="'. $this->element[6][$option] .'"><i class="fa fa-info-circle"></i></span>' : "") .'						
							
							if(isset($this->element[6][$option]) && $this->element[6][$option] != "")
							{
								$tips["tip".$option] = [
									"tip" => $this->element[6][$option],
									"checked" => in_array($option,explode(", ",$value)) ? true : false
								];
								
							}
						}
						
						foreach($tips as $i=> $tip)
						{
							$hide = "";//$tip["checked"] == false ? " hide" : "";
							$element .= '<div class="callout success'. $hide .'" id="'. $i .'" data-toggler=".hide"><strong>'. $tip["tip"] .'</strong></div>';
						}
						
						$element .= '<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>'; 
					$element .= '</div>';

				 break;
				 
				
				 
					 
				 case "checkbox":	
							 
 					$element .= '<div class="row">';

						$element .= '<div class="small-12 columns">';
							$element .= '<label class="input-name">'. $this->element[1] .'</label>';
						$element .= '</div>';
						
						if(!is_array($value)) $value = explode(", ",$value);
						
						//echo "name=".$this->element[1];
						foreach($this->element[5] as $option => $val)
						{	
							$checked 	= in_array($option,$value) ? " checked" : "";
							$elementId 	= $this->element[0].$option;
					
							$element .= '<div class="small-12 medium-4 columns"><label for="'. $elementId .'"><input type="checkbox" name="'. $this->element[0] .'[]" value="'. $option .'" id="'. $elementId .'"'. $checked .'>'. $val .'</label></div>';
					
						}
						$element .= '<span class="form-error">'. $this->element[1] .' is een verplicht veld.</span>';
						
					$element .= '</div><br />'; 
					
				 break;
				 
				 case "checkbox_inline":	
				 case "checkbox_hidden":
						
					if($this->element[2] == "checkbox_hidden")	$element .=  '<div class="hide">';	 					
					$element .= '<label class="input-name">'. $this->element[1] .'</label>';
				
					foreach($this->element[5] as $i => $option)
					{	
						$elementId 	= $this->element[0].$option["label"];
						$checked 	= $option["checked"] ? " checked" : "";
						$tabindex 	= ($this->element[2] == "checkbox_hidden") ? 'tabindex="-1"' : "";
						
						$element .= '<div class="choice-row choice-row__inline choice-'.$this->element[0].'">
										<span class="float-left">
											<input type="checkbox" name="'. $this->element[0] .'[]" data-factor="'. $option["value"] .'" value="'. $option["label"] .'" id="'. $elementId .'"'.$checked.' '. $tabindex .'><label for="'. $elementId .'">'. $option["label"] .'</label>
										</span>
									</div>';
			
					}
					
					if($this->element[2] == "checkbox_hidden")	$element .=  '</div>';	 
					
				 break;
				 
				 
				 case "checkbox_truck_version":
				 
					$element .= '<div class="data-truck-version-options"><label class="input-name">'. $this->element[1] .'</label>';
						
					foreach($this->element[5] as $i => $option)
					{	

						$element_id 		= $this->element[0].$option["label"].$option["version_id"];

						$element .= '<div class="choice-row" data-choice-row>';
							$element .= '<span class="float-left">';
							
								$element .= '<input type="checkbox" name="'. $this->element[0] .'[]" value="'.$i .'" data-price="'. $option["value"] .'" id="'. $element_id .'" data-version="'.$option["version_id"].'">';
								$element .= '<label for="'. $element_id .'">' . $option["label"] .'</label>';
							
							$element .= '</span>';
							$element .= '<span class="option-price float-right">'. $option["value"] .'</span>';
						$element .= '</div>';
									
					}
				$element .= '</div>';
	
				 break;
				 
				 case "checkbox_v2":
  				 case "checkbox_v2_not_custom":
				 
						$element .= '<label class="input-name">'. $this->element[1] .'</label>';
								
								//d($this->element[5]);		
						foreach($this->element[5] as $i => $option)
						{	

							$checked 		= isset($option["checked"]) && $option["checked"] === true ? " checked" : "";
							$elementId 		= $this->element[0].$option["label"];
							$element_name 	=  isset($option["custom"]) && $option["custom"] == true ?  : $this->element[0];

							if(isset($option["custom"]) && $option["custom"] == true){
							
								$element .= '<div class="choice-row" data-choice-row>
												<span class="float-left">
													<input type="checkbox" name="custom_options[]" value="'. $option["label"] .'" data-price="'. $option["value"] .'" id="'. $elementId .'"'. $checked .'>
													<label for="'. $elementId .'">'. $option["label"] .'</label>
													<input type="hidden" name="custom_options_price[]" value="'. $option["value"] .'">
												</span>
												<span class="option-price float-right">'. $option["value"] .'</span>
											</div>';	
							}
							else{
								//d($option);
								
								$element .= '<div class="choice-row" data-choice-row>';
									$element .= '<span class="float-left">';
										
										$element .= '<input type="checkbox" name="'. $element_name .'[]" value="'. $i .'" data-price="'. $option["value"] .'" id="'. $elementId .'"'. $checked .'>';
										$element .= '<label for="'. $elementId .'">';
											$element .= $option["label"];
											if($option["tooltip"]) $element .= ' <span data-tooltip title="'. $option["tooltip"] .'"><i class="fa fa-info-circle"></i></span>';
										$element .= '</label>';
										
									$element .= '</span>';
									$element .= '<span class="option-price float-right">'. $option["value"] .'</span>';
								$element .= '</div>';
											
											

							}
				
						}
						
				
						if( $this->element[2] == "checkbox_v2") $element .= '<div class="choice-row choice-row__custom" choice-row-custom>
										<button type="button" class="button primary" data-custom-option>+</button>

										<div class="input-element">
											<input type="text" class="custom-option-description" value="" name="custom_option_desc[]" class="" placeholder="Korte omschrijving optie">
										</div>
										
										<div class="input-element input-element__price">
											<input type="text" class="custom-option-price" value="" name="custom_option_price[]" class="text-right" placeholder="0,00">
										</div>

									</div>';
									
					
				 break;
				 
				
				 
				 case "enquiry_sum_price";
				 case "enquiry_sum_price_anton";
				 	

					$star_prices = $this->element[5]["truck_total"];
					$sum_options = $this->element[5]["options_price"];
			
					
				 	$element .= '<div class="enquiry-sum">';
										
					foreach($this->element[5] as $key => $option)
					{
						if($key == "truck_version") continue;
						
						$element .= '<div class="sum-row '. $option["class"] .'">';

							
							if(!$option["stars"])
							{
								$element .= '<span class="float-left">';
									$element .= '<span class="sum-label">'. $option["label"] .'</span>';
								$element .= '</span>';
								
								$element .= '<span class="sum-price float-right" data-'. $key .'>';
									$element .= number_format($option["value"],2,',','.');
								$element .= '</span>';								
							}
							elseif( $this->element[2] == "enquiry_sum_price")
							{
								
								$element .= '<div class="truck-pricing">';
									if($option["stars"]){
										
										// header
										$element .= '<div class="sum-stars-row sum-stars-row__labels">';
											$element .= '<div class="sum-star-label"><strong>Sterren</strong></div>';
											$element .= '<div class="sum-star-org-price"><strong>Truckprijs</strong></div>';
											$element .= '<div class="sum-price"><strong>Incl. opties</strong></div>';
										$element .= '</div>';
								
										foreach($option["stars"] as $i => $star)
										{	
											
											$truck_star_price = $star_prices["custom_price"][$i];
											$input_value_excl = isset($star_prices["custom_price"][$i]) && !empty($star_prices["custom_price"][$i]) ? number_format($star["value"],2,',','') : 0;
											$input_value_incl = isset($star_prices["custom_price"][$i]) && !empty($star_prices["custom_price"][$i]) ? number_format($star["value"] + $sum_options["value"],2,',','') : 0;
											
																							
											$element .= '<div class="sum-stars-row" data-stars="'. $i .'">';
															
												// star labek								
												$element .= '<div class="sum-star-label">';
												$element .= $star["label"];
												$element .= '</div>';
												
												// truck price
												$element .= '<div class="sum-star-org-price">';
													$element .= '<div class="price-element">' . number_format($star["value"],2,',','.'). '</div>';													
													$element .= '<div class="input-element hide">';
														$element .= '<input type="text" class="custom-option-description" value="'.$input_value_excl.'" data-value="'. number_format($star["value"],2,',','') .'" name="truck_price_custom_excl_'. $i .'" data-calculate="0" autocomplete="off">';
													$element .= '</div>';																
												$element .= '</div>';
												
												// truck price with options
												$element .= '<div class="star-price sum-price">';																									
													
													$element .= '<div class="price-element text-right">' . number_format($star["value"] + $sum_options["value"],2,',','.'). '</div>';													
													$element .= '<div class="input-element hide">';
														$element .= '<input type="text" class="custom-option-description" value="'.$input_value_incl.'" data-value="'. number_format($star["value"] + $sum_options["value"],2,',','') .'" name="truck_price_custom_incl_'. $i .'" data-calculate="1" autocomplete="off">';
													$element .= '</div>';	
																									
												$element .= '</div>';
												
												if( in_array($this->role,[2,3,14]))
												{
													$element .= '<div class="star-edit">';
														$element .= '<button type="button" class="button primary" data-custom-starprice><i class="fa fa-pencil"></i></button>';
													$element .= '</div>';													
												}
												
												
											$element .= '</div>';
										}
									}
								$element .= '</div>';			
							}

						$element .= '</div>';
					}				
								
					$element .= '</div>';
					
					/**/
				 
				 break;
				 
				 
				 
				 case "upload":	
				 	
				 	$org_image_input = "";
					
					$element .= '<div class="image-uploads">';
					
						// field has value
						if($value){
						
							foreach($value as $i => $img)
							{
								$element .= '<div class="image-file-input'. ($i == 0 ? " first-item" : "") .'">';
				 				
									$element .= '<label class="input-name">';
					 					$element .= $this->element[1];
					 					$element .= '<div class="input-element">';
					 						$element .= '<div class="file-upload"><input type="file" placeholder="" value="" name="'. $this->element[0] .'[]"></div>';
					 						$element .= '<span class="placeholder" data-label="'. $this->element[3] .'">'. $this->element[3] .'</span>';
											$element .= '<input type="hidden" value="'. $img["img_id"] .'" name="'. $this->element[0] .'_org[]">';
					 					$element .= '</div>';
					 				$element .= '</label>';	
						
									$element .= '<span class="delete-field"><i class="fa fa-minus-circle" aria-hidden="true"></i></span>';
									$element .= '<button class="button secondary duplicate-image-upload" data-append-to=".image-uploads" type="button">Extra foto</button>';
						
								$element .= '</div>';	
								
								$org_image_input .= '<input type="hidden" value="'. $img["img_id"] .'" name="'. $this->element[0] .'_check[]">';
							}
							
							
						}
						else
						{
							$element .= '<div class="image-file-input first-item">';
				 				$element .= '<label class="input-name">';
				 					$element .= $this->element[1];
				 					$element .= '<div class="input-element">';
				 						$element .= '<div class="file-upload"><input type="file" placeholder="" value="'. $value .'" name="'. $this->element[0] .'[]"></div>';
				 						$element .= '<span class="placeholder" data-label="'. $this->element[3] .'">'. $this->element[3] .'</span>';
										$element .= '<input type="hidden" value="'. $value .'" name="'. $this->element[0] .'_org">';
				 					$element .= '</div>';
				 				$element .= '</label>';	
						
								$element .= '<span class="delete-field"><i class="fa fa-minus-circle" aria-hidden="true"></i></span>';
								$element .= '<button class="button secondary duplicate-image-upload" data-append-to=".image-uploads" type="button">Extra foto</button>';
						
							$element .= '</div>';	
						}	
						
					$element .= '</div>';	
					
					// include the original images input
					$element .= $org_image_input;//'<input type="hidden" value="'. $img["img_id"] .'" name="'. $this->element[0] .'_org[]">';
					
					
							
				 break;
				 
				 case "upload2":	
				 	
				 	$org_image_input = "";
					
					$element .= '<div class="image-uploads">';
					
						// field has value
						if($value){
						
							foreach($value as $i => $img)
							{	
								
								
								$element .= '<div class="image-file-input'. ($i == 0 ? " first-item" : "") .'">';
				 				
									$element .= '<label class="input-name">';
					 					$element .= $this->element[1];
					 					$element .= '<div class="input-element">';
					 						$element .= '<div class="file-upload"><input type="file" placeholder="" value="" name="'. $this->element[0] .'[]"></div>';
					 						$element .= '<span class="placeholder" data-label="'. $this->element[3] .'">'. $img->getOrgName() .'</span>';
											$element .= '<input type="hidden" value="'. $img->getFileId() .'" name="'. $this->element[0] .'_org[]">';
					 					$element .= '</div>';
					 				$element .= '</label>';	
						
									$element .= '<span class="delete-field"><i class="fa fa-minus-circle" aria-hidden="true"></i></span>';
									$element .= '<button class="button secondary duplicate-image-upload" data-append-to=".image-uploads" type="button">Extra foto</button>';
						
								$element .= '</div>';	
								
								$org_image_input .= '<input type="hidden" value="'. $img->getFileId() .'" name="'. $this->element[0] .'_check[]">';
							}
							
							
						}
						else
						{
							$element .= '<div class="image-file-input first-item">';
				 				
								$element .= '<label class="input-name">';
				 					$element .= $this->element[1];
				 					$element .= '<div class="input-element">';
				 						$element .= '<div class="file-upload"><input type="file" placeholder="" value="'. $value .'" name="'. $this->element[0] .'[]"></div>';
				 						$element .= '<span class="placeholder" data-label="'. $this->element[3] .'">'. $this->element[3] .'</span>';
										$element .= '<input type="hidden" value="'. $value .'" name="'. $this->element[0] .'_org">';
				 					$element .= '</div>';
				 				$element .= '</label>';	
						
								$element .= '<span class="delete-field"><i class="fa fa-minus-circle" aria-hidden="true"></i></span>';
								$element .= '<button class="button secondary duplicate-image-upload" data-append-to=".image-uploads" type="button">Extra foto</button>';
						
							$element .= '</div>';	
						}	
						
					$element .= '</div>';	
					
					// include the original images input
					$element .= $org_image_input;//'<input type="hidden" value="'. $img["img_id"] .'" name="'. $this->element[0] .'_org[]">';
					
					
							
				 break;
				 
				 
				 
				 case "switch":
					 
					 $input_checked = $value == 1 ? " checked" : "";
					 
					 $element = '<label class="input-name">';
					 $element .= $this->element[1];
					 $element .= '</label>';
					
					 $element .= '<div class="switch small">';				 
						$element .= '<input class="switch-input" id="'. $this->element[0] .'" type="checkbox" name="'. $this->element[0] .'" value="1"'.$input_checked.'>';
						$element .= '<label class="switch-paddle" for="'. $this->element[0] .'">';							
							$element .= '<span class="switch-active" aria-hidden="true">Ja</span>';
							$element .= '<span class="switch-inactive" aria-hidden="true">Nee</span>';
						$element .= '</label>';
					$element .=' </div>';
					
				 break;
				 
				 
				 case "multi":
				 
				
					$element .= '<legend>'. $this->element[1] . '</legend>';
					
					// get inspection form version
					$form_version = $this->element[6];
					
					
					foreach($this->element[5] as $name => $label)
					{	
						$tagname = strtolower($label) == "overig" ? "label" : "div";
						
						$option_checked = is_array($value) ? $value[$name] : "";
						
						$element .= '<'.$tagname.' class="input-name multiple-choice" id="'. preg_replace("/ /","-",$this->element[0]) ."_". $this->versionName($name,$form_version) .'">';
		 					$element .= '<span class="text-label">'. $label  .'</span>';
								
							if(strtolower($label) == "overig")
							{
								$element .= '<div class="input-element input-element__full-width">';
									$element .= '<input type="text" value="'. $value[$name."_title"] .'" name="'. $this->versionName($name,$form_version) .'_title" id="'. $this->versionName($name,$form_version) .'" onkeyup="this.setAttribute(\'value\', this.value);"><span class="placeholder">Overige informatie</span>';
								$element .= '</div>';
							}
							
							$element .= '<div class="input-element">';
								
									$element .= '<span class="item">
													<input type="radio" name="'. $this->versionName($name,$form_version) .'" '. $this->optionIsChecked(1,$option_checked) .' value="1" id="'. $this->versionName($name,$form_version) . '.1">
													<label for="'. $this->versionName($name,$form_version) . '.1">Goed</label>
												</span>';
									$element .= '<span class="item">
													<input type="radio" name="'. $this->versionName($name,$form_version) .'" '. $this->optionIsChecked(2,$option_checked) .' value="2" id="'. $this->versionName($name,$form_version) . '.2">
													<label for="'. $this->versionName($name,$form_version) . '.2">Matig</label>
												</span>';
									$element .= '<span class="item">
													<input type="radio" name="'. $this->versionName($name,$form_version) .'" '. $this->optionIsChecked(3,$option_checked) .' value="3" id="'. $this->versionName($name,$form_version) . '.3">
													<label for="'. $this->versionName($name,$form_version) . '.3">Slecht</label>
												</span>';
									$element .= '<span class="item">
													<input type="radio" name="'. $this->versionName($name,$form_version) .'" '. (!is_array($value) || $option_checked == 0 ? "checked" : "") .' value="0" id="'. $this->versionName($name,$form_version) . '.0">
													<label for="'. $this->versionName($name,$form_version) . '.0">N.v.t.</label>
												</span>';		
												
								$element .= '</div>';					
									
						
							
							
		 				$element .= '</'.$tagname.'>';
						
						
						
					}
						 
				 break;
				 
			}
			
			$column_width = !isset($this->element[4]) ? "small-12" : $this->element[4];
				
			return '<div class="'. $column_width .' columns">'. $element .'</div>';
			
		}
		
		private function versionName($name,$form_version){
			return $name."_".$form_version;
		}
		
		private function optionIsChecked($item,$saved)
		{
			return $item == $saved ? "checked" : "";
		}
		
		public function formVersionId(){
			return $this->element[6];
		}
		
		public function setDisabled(){
			return $this->element["disabled"]= true;
		}

		/*
	    public function __get( $key )
		{
	           return $this->values[ $key ];
	    }*/
	
	}