PK œqhYî¶J‚ßFßF)nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/ $#$#$#

Dir : /home/trave494/myvideomania.com/wp-content/plugins/insert-post-ads/controls/
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64
IP: 209.182.202.254
Choose File :

Url:
Dir : //home/trave494/myvideomania.com/wp-content/plugins/insert-post-ads/controls/controls.php

<?php 
class smartlogix {
	private $type;
	private $plainHTML;
	private $useParagraph;
	private $helpText;
	private $id;
	private $name;
	private $value;
	private $label;
	private $className;
	private $style;
	private $required;
	private $options;
	
	private $optionName;
	private $optionIdentifier;
	private $values;
	
	private $pages;
	private $posts;
	private $categories;
		
	public $HTML;
	public $JS;
	
	function __construct($args = null) {
		$this->HTML = '';
		$this->JS = '';
		
		$this->type = 'text';
		$this->plainHTML = false;
		$this->useParagraph = true;
		$this->helpText = '';
		$this->id = '';
		$this->name = '';
		$this->value = '';
		$this->label = '';
		$this->className = 'input widefat';
		$this->style = '';
		$this->required = '';
		$this->options = null;
		
		$this->optionName = '';
		$this->optionIdentifier = '';
		$this->values = '';			
		
		if(isset($args) && is_array($args)) {
			if(isset($args['type']) && ($args['type'] != '')) {
				$this->type = $args['type'];
			}
			if(isset($args['plainHTML']) && ($args['plainHTML'] != '')) {
				$this->plainHTML = $args['plainHTML'];
			}
			if(isset($args['useParagraph']) && ($args['useParagraph'] != '')) {
				$this->useParagraph = $args['useParagraph'];
			}
			if(isset($args['helpText']) && ($args['helpText'] != '')) {
				$this->helpText = $args['helpText'];
			}
			if(isset($args['id']) && ($args['id'] != '')) {
				$this->id = $args['id'];
			}
			if(isset($args['name']) && ($args['name'] != '')) {
				$this->name = $args['name'];
			}
			if(isset($args['value']) && ($args['value'] != '')) {
				$this->value = $args['value'];
			}
			if(isset($args['label']) && ($args['label'] != '')) {
				$this->label = $args['label'];
			}
			if(isset($args['className']) && ($args['className'] != '')) {
				$this->className = $args['className'];
			}
			if(isset($args['style']) && ($args['style'] != '')) {
				$this->style = $args['style'];
			}
			if(isset($args['required']) && ($args['required'] != '')) {
				$this->required = $args['required'];
			}
			if(isset($args['options']) && is_array($args['options'])) {
				$this->options = $args['options'];
			}
			
			if(isset($args['optionIdentifier']) && ($args['optionIdentifier'] != '')) {
				$this->optionIdentifier = $args['optionIdentifier'];
			}
			if(isset($args['optionName']) && ($args['optionName'] != '')) {
				$this->optionName = $args['optionName'];				
			}
			if(isset($args['values']) && ($args['values'] != '')) {
				$this->values = $args['values'];				
			}
			
			if(isset($args['optionIdentifier']) && ($args['optionIdentifier'] != '') && isset($args['optionName']) && ($args['optionName'] != '')) {
				$this->id = str_replace(array('[', ']'), array('_', ''), $args['optionIdentifier']).'_'.$args['optionName'];
				$this->name = $args['optionIdentifier'].'['.$args['optionName'].']';
			} elseif(isset($this->optionIdentifier) && ($this->optionIdentifier != '') && isset($args['optionName']) && ($args['optionName'] != '')) {
				$this->id = str_replace(array('[', ']'), array('_', ''), $this->optionIdentifier).'_'.$args['optionName'];
				$this->name = $this->optionIdentifier.'['.$args['optionName'].']';
			} elseif(isset($args['optionIdentifier']) && ($args['optionIdentifier'] != '') && isset($this->optionName) && ($this->optionName != '')) {
				$this->id = str_replace(array('[', ']'), array('_', ''), $args['optionIdentifier']).'_'.$this->optionName;
				$this->name = $args['optionIdentifier'].'['.$this->optionName.']';
			} elseif(isset($this->optionIdentifier) && ($this->optionIdentifier != '') && isset($this->optionName) && ($this->optionName != '')) {
				$this->id = str_replace(array('[', ']'), array('_', ''), $this->optionIdentifier).'_'.$this->optionName;
				$this->name = $this->optionIdentifier.'['.$this->optionName.']';
			}
			
			if(isset($args['values']) && is_array($args['values'])) {
				if(isset($args['optionName']) && ($args['optionName'] != '')) {
					$this->value = $args['values'][$args['optionName']];
				} elseif(isset($this->optionName) && ($this->optionName != '')) {
					$this->value = $args['values'][$this->optionName];
				}
			} elseif(isset($this->values) && is_array($this->values)) {
				if(isset($args['optionName']) && ($args['optionName'] != '')) {
					$this->value = $this->values[$args['optionName']];
				} elseif(isset($this->optionName) && ($this->optionName != '')) {
					$this->value = $this->values[$this->optionName];
				}
			}
		}
	}
	
	private function sync_args($args) {
		$syncedArgs = array();
		if(is_array($args)) {
			$syncedArgs = $args;
		}
				
		if(isset($args['type']) && ($args['type'] != '')) {
			$syncedArgs['type'] = $args['type'];
		} else {
			$syncedArgs['type'] = $this->type;
		}
		
		if(isset($args['plainHTML']) && ($args['plainHTML'] != '')) {
			$syncedArgs['plainHTML'] = $args['plainHTML'];
		} else {
			$syncedArgs['plainHTML'] = $this->plainHTML;
		}
		
		if(isset($args['useParagraph']) && ($args['useParagraph'] != '')) {
			$syncedArgs['useParagraph'] = $args['useParagraph'];
		} else {
			$syncedArgs['useParagraph'] = $this->useParagraph;
		}
		
		if(isset($args['helpText']) && ($args['helpText'] != '')) {
			$syncedArgs['helpText'] = $args['helpText'];
		} else {
			$syncedArgs['helpText'] = $this->helpText;
		}
		
		if(isset($args['id']) && ($args['id'] != '')) {
			$syncedArgs['id'] = $args['id'];
		} else {
			$syncedArgs['id'] = $this->id;
		}
		
		if(isset($args['name']) && ($args['name'] != '')) {
			$syncedArgs['name'] = $args['name'];
		} else {
			$syncedArgs['name'] = $this->name;
		}
		
		if(isset($args['value']) && ($args['value'] != '')) {
			$syncedArgs['value'] = $args['value'];
		} else {
			$syncedArgs['value'] = $this->value;
		}
		
		if(isset($args['label']) && ($args['label'] != '')) {
			$syncedArgs['label'] = $args['label'];
		} else {
			$syncedArgs['label'] = $this->label;
		}
		
		if(isset($args['className']) && ($args['className'] != '')) {
			$syncedArgs['className'] = $args['className'];
		} else {
			$syncedArgs['className'] = $this->className;
		}
		
		if(isset($args['style']) && ($args['style'] != '')) {
			$syncedArgs['style'] = $args['style'];
		} else {
			$syncedArgs['style'] = $this->style;
		}
		
		if(isset($args['required']) && ($args['required'] != '')) {
			$syncedArgs['required'] = $args['required'];
		} else {
			$syncedArgs['required'] = $this->required;
		}
		
		if(isset($args['options']) && is_array($args['options'])) {
			$syncedArgs['options'] = $args['options'];
		} else {
			$syncedArgs['options'] = $this->options;
		}
		
			
		if(isset($args['optionIdentifier']) && ($args['optionIdentifier'] != '') && isset($args['optionName']) && ($args['optionName'] != '')) {
			$syncedArgs['id'] = str_replace(array('[', ']'), array('_', ''), $args['optionIdentifier']).'_'.$args['optionName'];
			$syncedArgs['name'] = $args['optionIdentifier'].'['.$args['optionName'].']';
		} elseif(isset($this->optionIdentifier) && ($this->optionIdentifier != '') && isset($args['optionName']) && ($args['optionName'] != '')) {
			$syncedArgs['id'] = str_replace(array('[', ']'), array('_', ''), $this->optionIdentifier).'_'.$args['optionName'];
			$syncedArgs['name'] = $this->optionIdentifier.'['.$args['optionName'].']';
		} elseif(isset($args['optionIdentifier']) && ($args['optionIdentifier'] != '') && isset($this->optionName) && ($this->optionName != '')) {
			$syncedArgs['id'] = str_replace(array('[', ']'), array('_', ''), $args['optionIdentifier']).'_'.$this->optionName;
			$syncedArgs['name'] = $args['optionIdentifier'].'['.$this->optionName.']';
		} elseif(isset($this->optionIdentifier) && ($this->optionIdentifier != '') && isset($this->optionName) && ($this->optionName != '')) {
			$syncedArgs['id'] = str_replace(array('[', ']'), array('_', ''), $this->optionIdentifier).'_'.$this->optionName;
			$syncedArgs['name'] = $this->optionIdentifier.'['.$this->optionName.']';
		}
		
		if(isset($args['values']) && is_array($args['values'])) {
			if(isset($args['optionName']) && ($args['optionName'] != '')) {
				$syncedArgs['value'] = $args['values'][$args['optionName']];
			} elseif(isset($this->optionName) && ($this->optionName != '')) {
				$syncedArgs['value'] = $args['values'][$this->optionName];
			}
		} elseif(isset($this->values) && is_array($this->values)) {
			if(isset($args['optionName']) && ($args['optionName'] != '')) {
				$syncedArgs['value'] = $this->values[$args['optionName']];
			} elseif(isset($this->optionName) && ($this->optionName != '')) {
				$syncedArgs['value'] = $this->values[$this->optionName];
			}
		}
				
		return $syncedArgs;
	}
	
	public function add_control($args = null) {
		$control = $this->get_control($args, true);
		$this->HTML .= $control['HTML'];
		$this->JS .= $control['JS'];
	}
	
	public function get_control($args = null, $ignorePlainHTML = false) {
		$HTML = '';
		$JS = '';
		$args = $this->sync_args($args);
		
		switch($args['type']) {
			case 'hidden':
				$HTML .= '<input type="hidden" '.(($args['id'] != '')?'id="'.$args['id'].'"':'').' '.(($args['name'] != '')?'name="'.$args['name'].'"':'').' '.(($args['value'] != '')?'value="'.$args['value'].'"':'').' '.(($args['className'] != '')?'class="'.$args['className'].'"':'').' '.(($args['style'] != '')?'style="'.$args['style'].'"':'').' />';
				break;
			case 'text':
				if($args['useParagraph']) { $HTML .= '<p>'; }
				if($args['label'] != '') { $HTML .= '<label '.(($args['name'] != '')?'for="'.$args['name'].'"':'').'>'.$args['label'].'</label><br />'; }
				$HTML .= '<input type="text" '.(($args['id'] != '')?'id="'.$args['id'].'"':'').' '.(($args['name'] != '')?'name="'.$args['name'].'"':'').' '.(($args['value'] != '')?'value="'.$args['value'].'"':'').' '.(($args['className'] != '')?'class="'.$args['className'].'"':'').' '.(($args['style'] != '')?'style="'.$args['style'].'"':'').' '.(($args['required'])?'required':'').' />';
				if($args['helpText'] != '') { $HTML .= '<small>'.$args['helpText'].'</small>'; }
				if($args['useParagraph']) { $HTML .= '</p>'; }
				break;
			case 'password':
				if($args['useParagraph']) { $HTML .= '<p>'; }
				if($args['label'] != '') { $HTML .= '<label '.(($args['name'] != '')?'for="'.$args['name'].'"':'').'>'.$args['label'].'</label><br />'; }
				$HTML .= '<input type="password" '.(($args['id'] != '')?'id="'.$args['id'].'"':'').' '.(($args['name'] != '')?'name="'.$args['name'].'"':'').' '.(($args['value'] != '')?'value="'.$args['value'].'"':'').' '.(($args['className'] != '')?'class="'.$args['className'].'"':'').' '.(($args['style'] != '')?'style="'.$args['style'].'"':'').' '.(($args['required'])?'required':'').' />';
				if($args['helpText'] != '') { $HTML .= '<small>'.$args['helpText'].'</small>'; }
				if($args['useParagraph']) { $HTML .= '</p>'; }
				break;
			case 'textarea':
				if($args['useParagraph']) { $HTML .= '<p>'; }
				if($args['label'] != '') { $HTML .= '<label '.(($args['name'] != '')?'for="'.$args['name'].'"':'').'>'.$args['label'].'</label><br />'; }
				$HTML .= '<textarea '.(($args['id'] != '')?'id="'.$args['id'].'"':'').' '.(($args['name'] != '')?'name="'.$args['name'].'"':'').' '.(($args['className'] != '')?'class="'.$args['className'].'"':'').' '.(($args['style'] != '')?'style="'.$args['style'].'"':'').' '.(($args['required'])?'required':'').'>'.stripslashes((($args['value'] != '')?$args['value']:'')).'</textarea>';
				if($args['helpText'] != '') { $HTML .= '<small>'.$args['helpText'].'</small>'; }
				if($args['useParagraph']) { $HTML .= '</p>'; }
				break;
			case 'checkbox':
				if($args['useParagraph']) { $HTML .= '<p>'; }
				if(isset($args['value']) && (filter_var($args['value'], FILTER_VALIDATE_BOOLEAN))) {
					$HTML .= '<input type="checkbox" '.(($args['id'] != '')?'id="'.$args['id'].'"':'').' '.(($args['name'] != '')?'name="'.$args['name'].'"':'').' value="1" '.checked(true, true, false).' '.(($args['className'] != '')?'class="'.$args['className'].'"':'').' '.(($args['style'] != '')?'style="'.$args['style'].'"':'').' '.(($args['required'])?'required':'').' />';					
				} else {
					$HTML .= '<input type="checkbox" '.(($args['id'] != '')?'id="'.$args['id'].'"':'').' '.(($args['name'] != '')?'name="'.$args['name'].'"':'').' value="1" '.(($args['className'] != '')?'class="'.$args['className'].'"':'').' '.(($args['style'] != '')?'style="'.$args['style'].'"':'').' '.(($args['required'])?'required':'').' />';
				}
				if($args['label'] != '') { $HTML .= '&nbsp;<label '.(($args['name'] != '')?'for="'.$args['name'].'"':'').'>'.$args['label'].'</label>'; }
				if($args['helpText'] != '') { $HTML .= '<small>'.$args['helpText'].'</small>'; }
				if($args['useParagraph']) { $HTML .= '</p>'; }
				break;
			case 'radio':
				if($args['useParagraph']) { $HTML .= '<p>'; }	
				if(isset($args['value']) && (filter_var($args['value'], FILTER_VALIDATE_BOOLEAN))) {
					$HTML .= '<input type="radio" '.(($args['id'] != '')?'id="'.$args['id'].'"':'').' '.(($args['name'] != '')?'name="'.$args['name'].'"':'').' value="1" '.checked(true, true, false).' '.(($args['className'] != '')?'class="'.$args['className'].'"':'').' '.(($args['style'] != '')?'style="'.$args['style'].'"':'').' '.(($args['required'])?'required':'').' />';
				} else {
					$HTML .= '<input type="radio" '.(($args['id'] != '')?'id="'.$args['id'].'"':'').' '.(($args['name'] != '')?'name="'.$args['name'].'"':'').' value="1" '.(($args['className'] != '')?'class="'.$args['className'].'"':'').' '.(($args['style'] != '')?'style="'.$args['style'].'"':'').' '.(($args['required'])?'required':'').' />';
				}
				if($args['label'] != '') { $HTML .= '&nbsp;<label '.(($args['name'] != '')?'for="'.$args['name'].'"':'').'>'.$args['label'].'</label>'; }
				if($args['helpText'] != '') { $HTML .= '<small>'.$args['helpText'].'</small>'; }
				if($args['useParagraph']) { $HTML .= '</p>'; }
				break;
			case 'select':
				if($args['useParagraph']) { $HTML .= '<p>'; }
				if($args['label'] != '') { $HTML .= '<label '.(($args['name'] != '')?'for="'.$args['name'].'"':'').'>'.$args['label'].'</label><br />'; }
				$HTML .= '<select '.(($args['id'] != '')?'id="'.$args['id'].'"':'').' '.(($args['name'] != '')?'name="'.$args['name'].'"':'').' '.(($args['value'] != '')?'value="'.$args['value'].'"':'').' '.(($args['className'] != '')?'class="'.$args['className'].'"':'').' '.(($args['style'] != '')?'style="'.$args['style'].'"':'').' '.(($args['required'])?'required':'').'>';
				if(is_array($args['options'])) {
					foreach($args['options'] as $option) {
						$metadata = '';
						if(isset($option['metadata']) && is_array($option['metadata'])) {
							foreach($option['metadata'] as $key => $value) {
								$metadata .= 'data-'.$key.'="'.$value.'"';
							}
						}
						$HTML .= '<option '.$metadata.''.(($option['value'] != '')?'value="'.$option['value'].'"':'').' '.selected((($args['value'] != '')?$args['value']:''), (($option['value'] != '')?$option['value']:''), false).'>'.(($option['text'] != '')?$option['text']:'').'</option>';
					}
				}
				$HTML .= '</select>';
				if($args['helpText'] != '') { $HTML .= '<small>'.$args['helpText'].'</small>'; }
				if($args['useParagraph']) { $HTML .= '</p>'; }
				break;
			case 'choosen-multiselect':
				if($args['useParagraph']) { $HTML .= '<p>'; }
				if($args['label'] != '') { $HTML .= '<label '.(($args['name'] != '')?'for="'.$args['name'].'"':'').'>'.$args['label'].'</label><br />'; }
				$HTML .= '<select data-placeholder="'.(($args['label'] != '')?$args['label']:'Select Your Options').'" multiple '.(($args['id'] != '')?'id="'.$args['id'].'"':'').' '.(($args['name'] != '')?'name="'.$args['name'].'"':'').' '.(($args['value'] != '')?'value="'.$args['value'].'"':'').' '.(($args['className'] != '')?'class="'.$args['className'].'"':'').' '.(($args['style'] != '')?'style="'.$args['style'].'"':'').' '.(($args['required'])?'required':'').'>';
				if(is_array($args['options'])) {
					foreach($args['options'] as $option) {
						if(in_array((($option['value'] != '')?$option['value']:''), ((is_array($args['value']))?$args['value']:array()))) {
							$HTML .= '<option '.(($option['value'] != '')?'value="'.$option['value'].'"':'').' '.selected(1, 1, false).'>'.(($option['text'] != '')?$option['text']:'').'</option>';
						} else {
							$HTML .= '<option '.(($option['value'] != '')?'value="'.$option['value'].'"':'').'>'.(($option['text'] != '')?$option['text']:'').'</option>';
						}
					}
				}
				$HTML .= '</select>';
				if($args['helpText'] != '') { $HTML .= '<small>'.$args['helpText'].'</small>'; }
				if($args['useParagraph']) { $HTML .= '</p>'; }
				$JS .= 'jQuery("#'.(($args['id'] != '')?$args['id']:'').'").chosen({ width: "100%" }).on("change", function(evt, params) { jQuery("#'.(($args['id'] != '')?$args['id']:'').'_chosen .search-field input").click(); }).trigger("chosen:open");';
				break;
			case 'radio-group':
				if($args['useParagraph']) { $HTML .= '<p>'; }
				if($args['label'] != '') { $HTML .= '<label '.(($args['name'] != '')?'for="'.$args['name'].'"':'').'>'.$args['label'].'</label><br />'; }
				if(is_array($args['options'])) {
					$index = 1;
					foreach($args['options'] as $option) {
						$HTML .= '<input type="radio" '.(($args['id'] != '')?'id="'.$args['id'].'_'.$index.'"':'').' '.(($args['name'] != '')?'name="'.$args['name'].'"':'').' '.(($option['value'] != '')?'value="'.$option['value'].'"':'').' '.checked(((isset($args['value']))?$args['value']:''), ((isset($option['value']))?$option['value']:''), false).' '.(($args['className'] != '')?'class="'.$args['className'].'"':'').' '.(($args['style'] != '')?'style="'.$args['style'].'"':'').' />';
						if($option['text'] != '') { $HTML .= '&nbsp;<label '.(($args['name'] != '')?'for="'.$args['name'].'"':'').'>'.(($option['text'] != '')?$option['text']:'').'</label><br />'; }
						$index++;
					}
				}
				if($args['helpText'] != '') { $HTML .= '<small>'.$args['helpText'].'</small>'; }
				if($args['useParagraph']) { $HTML .= '</p>'; }
				break;
			case 'ipCheckbox':
				if($args['useParagraph']) { $HTML .= '<p>'; }	
				if(isset($args['value']) && (filter_var($args['value'], FILTER_VALIDATE_BOOLEAN))) {	
					$HTML .= '<input type="checkbox" '.(($args['id'] != '')?'id="'.$args['id'].'"':'').' '.(($args['name'] != '')?'name="'.$args['name'].'"':'').' value="true" '.checked(true, true, false).' '.(($args['className'] != '')?'class="ipCheckbox '.$args['className'].'"':'class="ipCheckbox"').' '.(($args['style'] != '')?'style="'.$args['style'].'"':'').' '.(($args['required'])?'required':'').' />';				
				} else {
					$HTML .= '<input type="checkbox" '.(($args['id'] != '')?'id="'.$args['id'].'"':'').' '.(($args['name'] != '')?'name="'.$args['name'].'"':'').' value="true" '.(($args['className'] != '')?'class="ipCheckbox '.$args['className'].'"':'class="ipCheckbox"').' '.(($args['style'] != '')?'style="'.$args['style'].'"':'').' '.(($args['required'])?'required':'').' />';
				}
				if($args['label'] != '') { $HTML .= '&nbsp;<label '.(($args['name'] != '')?'for="'.$args['name'].'"':'').'>'.$args['label'].'</label>'; }
				if($args['helpText'] != '') { $HTML .= '<small>'.$args['helpText'].'</small>'; }
				if($args['useParagraph']) { $HTML .= '</p>'; }
				$JS .= 'jQuery("#'.(($args['id'] != '')?$args['id']:'').'").ipCheckbox();';
				break;
			case 'minicolors':
				if($args['useParagraph']) { $HTML .= '<p>'; }
				if($args['label'] != '') { $HTML .= '<label '.(($args['name'] != '')?'for="'.$args['name'].'"':'').'>'.$args['label'].'</label><br />'; }
				$HTML .= '<input type="text" '.(($args['id'] != '')?'id="'.$args['id'].'"':'').' '.(($args['name'] != '')?'name="'.$args['name'].'"':'').' '.(($args['value'] != '')?'value="'.$args['value'].'"':'').' '.(($args['className'] != '')?'class="'.$args['className'].'"':'').' '.(($args['style'] != '')?'style="'.$args['style'].'"':'').' '.(($args['required'])?'required':'').' />';
				if($args['helpText'] != '') { $HTML .= '<small>'.$args['helpText'].'</small>'; }
				if($args['useParagraph']) { $HTML .= '</p>'; }
				$JS .= 'jQuery("#'.(($args['id'] != '')?$args['id']:'').'").minicolors();';
				break;
			case 'textarea-wysiwyg':
				if($args['useParagraph']) { $HTML .= '<p>'; }
				if($args['label'] != '') { $HTML .= '<label '.(($args['name'] != '')?'for="'.$args['name'].'"':'').'>'.$args['label'].'</label><br />'; }
				$HTML .= '<textarea '.(($args['id'] != '')?'id="'.$args['id'].'"':'').' '.(($args['name'] != '')?'name="'.$args['name'].'"':'').' '.(($args['className'] != '')?'class="'.$args['className'].'"':'').' '.(($args['style'] != '')?'style="'.$args['style'].'"':'').' '.(($args['required'])?'required':'').'>'.stripslashes((($args['value'] != '')?$args['value']:'')).'</textarea>';
				if($args['helpText'] != '') { $HTML .= '<small>'.$args['helpText'].'</small>'; }
				if($args['useParagraph']) { $HTML .= '</p>'; }
				$JS .= 'jQuery("#'.(($args['id'] != '')?$args['id']:'').'").jqte();';
				break;
			case 'checkbox-button':
				if($args['useParagraph']) { $HTML .= '<p>'; }	
				if(isset($args['value']) && (filter_var($args['value'], FILTER_VALIDATE_BOOLEAN))) {
					$HTML .= '<input type="checkbox" '.(($args['id'] != '')?'id="'.$args['id'].'"':'').' '.(($args['name'] != '')?'name="'.$args['name'].'"':'').' value="true" '.checked(true, true, false).' '.(($args['className'] != '')?'class="'.$args['className'].'"':'').' '.(($args['style'] != '')?'style="'.$args['style'].'"':'').' '.(($args['required'])?'required':'').' />';
				} else {
					$HTML .= '<input type="checkbox" '.(($args['id'] != '')?'id="'.$args['id'].'"':'').' '.(($args['name'] != '')?'name="'.$args['name'].'"':'').' value="true" '.(($args['className'] != '')?'class="'.$args['className'].'"':'').' '.(($args['style'] != '')?'style="'.$args['style'].'"':'').' '.(($args['required'])?'required':'').' />';
				}
				if($args['label'] != '') { $HTML .= '<label for="'.(($args['id'] != '')?$args['id']:'').'">'.$args['label'].'</label>'; }
				if($args['helpText'] != '') { $HTML .= '<small>'.$args['helpText'].'</small>'; }
				if($args['useParagraph']) { $HTML .= '</p>'; }
				$JS .= 'jQuery("#'.(($args['id'] != '')?$args['id']:'').'").button({ create:  function(event, ui) { jQuery(this).button("option", "label", (jQuery(this).is(":checked")?"'.(($args['checkedLabel'] != '')?$args['checkedLabel']:'').'":"'.(($args['uncheckedLabel'] != '')?$args['uncheckedLabel']:'').'")) }}).change(function () { jQuery(this).button("option", "label", (jQuery(this).is(":checked")?"'.(($args['checkedLabel'] != '')?$args['checkedLabel']:'').'":"'.(($args['uncheckedLabel'] != '')?$args['uncheckedLabel']:'').'")); });';
				break;
			case 'pages-select':
				$this->load_data('pages');
				if($args['useParagraph']) { $HTML .= '<p>'; }
				if($args['label'] != '') { $HTML .= '<label '.(($args['name'] != '')?'for="'.$args['name'].'"':'').'>'.$args['label'].'</label><br />'; }
				$HTML .= '<select '.(($args['id'] != '')?'id="'.$args['id'].'"':'').' '.(($args['name'] != '')?'name="'.$args['name'].'"':'').' '.(($args['value'] != '')?'value="'.$args['value'].'"':'').' '.(($args['className'] != '')?'class="'.$args['className'].'"':'').' '.(($args['style'] != '')?'style="'.$args['style'].'"':'').' '.(($args['required'])?'required':'').'>';
				if(is_array($this->pages)) {
					foreach($this->pages as $option) {
						$HTML .= '<option '.(($option['value'] != '')?'value="'.$option['value'].'"':'').' '.selected((($args['value'] != '')?$args['value']:''), (($option['value'] != '')?$option['value']:''), false).'>'.(($option['text'] != '')?$option['text']:'').'</option>';
					}
				}
				$HTML .= '</select>';
				if($args['helpText'] != '') { $HTML .= '<small>'.$args['helpText'].'</small>'; }
				if($args['useParagraph']) { $HTML .= '</p>'; }
				break;
			case 'pages-chosen-multiselect':
				$this->load_data('pages');
				if($args['useParagraph']) { $HTML .= '<p>'; }
				if($args['label'] != '') { $HTML .= '<label '.(($args['name'] != '')?'for="'.$args['name'].'"':'').'>'.$args['label'].'</label><br />'; }
				$HTML .= '<select multiple data-placeholder="'.(($args['label'] != '')?$args['label']:'Select Your Options').'" '.(($args['id'] != '')?'id="'.$args['id'].'"':'').' '.(($args['name'] != '')?'name="'.$args['name'].'"':'').' '.(($args['value'] != '')?'value="'.$args['value'].'"':'').' '.(($args['className'] != '')?'class="'.$args['className'].'"':'').' '.(($args['style'] != '')?'style="'.$args['style'].'"':'').' '.(($args['required'])?'required':'').'>';
				if(is_array($this->pages)) {
					foreach($this->pages as $option) {
						if(in_array((($option['value'] != '')?$option['value']:''), ((is_array($args['value']))?$args['value']:array()))) {
							$HTML .= '<option '.(($option['value'] != '')?'value="'.$option['value'].'"':'').' '.selected(1, 1, false).'>'.(($option['text'] != '')?$option['text']:'').'</option>';
						} else {
							$HTML .= '<option '.(($option['value'] != '')?'value="'.$option['value'].'"':'').'>'.(($option['text'] != '')?$option['text']:'').'</option>';
						}
					}
				}
				$HTML .= '</select>';
				if($args['helpText'] != '') { $HTML .= '<small>'.$args['helpText'].'</small>'; }
				if($args['useParagraph']) { $HTML .= '</p>'; }
				$JS .= 'jQuery("#'.(($args['id'] != '')?$args['id']:'').'").chosen({ width: "100%" }).on("change", function(evt, params) { jQuery("#'.(($args['id'] != '')?$args['id']:'').'_chosen .search-field input").click(); }).trigger("chosen:open");';
				break;
			case 'posts-select':
				$this->load_data('posts');
				if($args['useParagraph']) { $HTML .= '<p>'; }
				if($args['label'] != '') { $HTML .= '<label '.(($args['name'] != '')?'for="'.$args['name'].'"':'').'>'.$args['label'].'</label><br />'; }
				$HTML .= '<select '.(($args['id'] != '')?'id="'.$args['id'].'"':'').' '.(($args['name'] != '')?'name="'.$args['name'].'"':'').' '.(($args['value'] != '')?'value="'.$args['value'].'"':'').' '.(($args['className'] != '')?'class="'.$args['className'].'"':'').' '.(($args['style'] != '')?'style="'.$args['style'].'"':'').' '.(($args['required'])?'required':'').'>';
				if(is_array($this->posts)) {
					foreach($this->posts as $option) {
						$HTML .= '<option '.(($option['value'] != '')?'value="'.$option['value'].'"':'').' '.selected((($args['value'] != '')?$args['value']:''), (($option['value'] != '')?$option['value']:''), false).'>'.(($option['text'] != '')?$option['text']:'').'</option>';
					}
				}
				$HTML .= '</select>';
				if($args['helpText'] != '') { $HTML .= '<small>'.$args['helpText'].'</small>'; }
				if($args['useParagraph']) { $HTML .= '</p>'; }
				break;
			case 'posts-chosen-multiselect':
				$this->load_data('posts');
				if($args['useParagraph']) { $HTML .= '<p>'; }
				if($args['label'] != '') { $HTML .= '<label '.(($args['name'] != '')?'for="'.$args['name'].'"':'').'>'.$args['label'].'</label><br />'; }
				$HTML .= '<select multiple data-placeholder="'.(($args['label'] != '')?$args['label']:'Select Your Options').'" '.(($args['id'] != '')?'id="'.$args['id'].'"':'').' '.(($args['name'] != '')?'name="'.$args['name'].'"':'').' '.(($args['value'] != '')?'value="'.$args['value'].'"':'').' '.(($args['className'] != '')?'class="'.$args['className'].'"':'').' '.(($args['style'] != '')?'style="'.$args['style'].'"':'').' '.(($args['required'])?'required':'').'>';
				if(is_array($this->posts)) {
					foreach($this->posts as $option) {
						if(in_array((($option['value'] != '')?$option['value']:''), ((is_array($args['value']))?$args['value']:array()))) {
							$HTML .= '<option '.(($option['value'] != '')?'value="'.$option['value'].'"':'').' '.selected(1, 1, false).'>'.(($option['text'] != '')?$option['text']:'').'</option>';
						} else {
							$HTML .= '<option '.(($option['value'] != '')?'value="'.$option['value'].'"':'').'>'.(($option['text'] != '')?$option['text']:'').'</option>';
						}
					}
				}
				$HTML .= '</select>';
				if($args['helpText'] != '') { $HTML .= '<small>'.$args['helpText'].'</small>'; }
				if($args['useParagraph']) { $HTML .= '</p>'; }
				$JS .= 'jQuery("#'.(($args['id'] != '')?$args['id']:'').'").chosen({ width: "100%" }).on("change", function(evt, params) { jQuery("#'.(($args['id'] != '')?$args['id']:'').'_chosen .search-field input").click(); }).trigger("chosen:open");';
				break;
			case 'categories-select':
				$this->load_data('categories');
				if($args['useParagraph']) { $HTML .= '<p>'; }
				if($args['label'] != '') { $HTML .= '<label '.(($args['name'] != '')?'for="'.$args['name'].'"':'').'>'.$args['label'].'</label><br />'; }
				$HTML .= '<select '.(($args['id'] != '')?'id="'.$args['id'].'"':'').' '.(($args['name'] != '')?'name="'.$args['name'].'"':'').' '.(($args['value'] != '')?'value="'.$args['value'].'"':'').' '.(($args['className'] != '')?'class="'.$args['className'].'"':'').' '.(($args['style'] != '')?'style="'.$args['style'].'"':'').' '.(($args['required'])?'required':'').'>';
				if(is_array($this->categories)) {
					foreach($this->categories as $option) {
						$HTML .= '<option '.(($option['value'] != '')?'value="'.$option['value'].'"':'').' '.selected((($args['value'] != '')?$args['value']:''), (($option['value'] != '')?$option['value']:''), false).'>'.(($option['text'] != '')?$option['text']:'').'</option>';
					}
				}
				$HTML .= '</select>';
				if($args['helpText'] != '') { $HTML .= '<small>'.$args['helpText'].'</small>'; }
				if($args['useParagraph']) { $HTML .= '</p>'; }
				break;
			case 'categories-chosen-multiselect':
				$this->load_data('categories');
				if($args['useParagraph']) { $HTML .= '<p>'; }
				if($args['label'] != '') { $HTML .= '<label '.(($args['name'] != '')?'for="'.$args['name'].'"':'').'>'.$args['label'].'</label><br />'; }
				$HTML .= '<select multiple data-placeholder="'.(($args['label'] != '')?$args['label']:'Select Your Options').'" '.(($args['id'] != '')?'id="'.$args['id'].'"':'').' '.(($args['name'] != '')?'name="'.$args['name'].'"':'').' '.(($args['value'] != '')?'value="'.$args['value'].'"':'').' '.(($args['className'] != '')?'class="'.$args['className'].'"':'').' '.(($args['style'] != '')?'style="'.$args['style'].'"':'').' '.(($args['required'])?'required':'').'>';
				if(is_array($this->categories)) {
					foreach($this->categories as $option) {
						if(in_array((($option['value'] != '')?$option['value']:''), ((is_array($args['value']))?$args['value']:array()))) {
							$HTML .= '<option '.(($option['value'] != '')?'value="'.$option['value'].'"':'').' '.selected(1, 1, false).'>'.(($option['text'] != '')?$option['text']:'').'</option>';
						} else {
							$HTML .= '<option '.(($option['value'] != '')?'value="'.$option['value'].'"':'').'>'.(($option['text'] != '')?$option['text']:'').'</option>';
						}
					}
				}
				$HTML .= '</select>';
				if($args['helpText'] != '') { $HTML .= '<small>'.$args['helpText'].'</small>'; }
				if($args['useParagraph']) { $HTML .= '</p>'; }
				$JS .= 'jQuery("#'.(($args['id'] != '')?$args['id']:'').'").chosen({ width: "100%" }).on("change", function(evt, params) { jQuery("#'.(($args['id'] != '')?$args['id']:'').'_chosen .search-field input").click(); }).trigger("chosen:open");';
				break;
		}
		
		if($args['plainHTML'] && !$ignorePlainHTML) {
			return $HTML;
		} else {
			return array(
				'HTML' => $HTML,
				'JS' => $JS
			);
		}
	}
	
	private function load_data($type) {
		switch($type) {
			case 'pages':
				if(!is_array($this->pages)) {
					$pages = get_pages('numberposts=100');
					if(isset($pages) && is_array($pages)) {
						$this->pages = array();
						foreach($pages as $page) {
							$this->pages[] = array('text' => (($page->post_title != '')?$page->post_title:'Untitled Page ('.$page->ID.')'), 'value' => $page->ID);
						}
					}
				}
				break;
			case 'posts':
				if(!is_array($this->posts)) {
					$posts = get_posts('numberposts=100');
					if(isset($posts) && is_array($posts)) {
						$this->posts = array();
						foreach($posts as $post) {
							$this->posts[] = array('text' => $post->post_title, 'value' => $post->ID);
						}
					}
				}
				break;
			case 'categories':
				if(!is_array($this->categories)) {
					$categories = get_categories('number=200&hide_empty=0');
					if(isset($categories) && is_array($categories)) {
						$this->categories = array();
						foreach($categories as $category) {
							$this->categories[] = array('text' => $category->name, 'value' => $category->term_id);
						}
					}
				}
				break;
		}
	}
	
	public function create_section($sectionTitle = '', $includeBlock = true) {
		$wrapperHTML = '<div class="smartlogixSectionWrapper">';
			if($sectionTitle != '') {
				$wrapperHTML .= '<label class="smartlogixSectionTitle">'.$sectionTitle.'</label>';
			}
			if($includeBlock) {
				$wrapperHTML .= $this->create_block();
			}
			$wrapperHTML .= $this->HTML;			
		$wrapperHTML .= '</div>';
		$this->HTML = $wrapperHTML;
	}
	
	public function create_block() {
		$this->HTML = '<div class="smartlogixSectionInner">'.$this->HTML.'</div>';
	}
	
	public function set_HTML($HTML) {
		$this->HTML = $HTML;
	}
	
	public function clear_controls($clearHTML = true, $clearJS = false) {
		if($clearHTML) {
			$this->HTML = '';
		}
		if($clearJS) {
			$this->JS = '';
		}
	}
	
	public static function enqueue_assets($path, $version = '1') {
		wp_register_style('smartlogix-controls-css', $path.'/assets/css/controls.css', array(), $version);
		wp_enqueue_style('smartlogix-controls-css');
		wp_register_script('smartlogix-controls-js', $path.'/assets/js/controls.js', array(), $version);
		wp_enqueue_script('smartlogix-controls-js');
	}
}
?>