<?php

class HTML {

	public static function title($args)
	{
		$html = '<h2 class="title"><i class="uk-icon-'.$args['icon'].'"></i> '.$args['title'].'</h2>';
		echo $html;
	}

	public static function formOpen($args)
	{
		$class = empty($args['class']) ? '' : ' '.$args['class'];
		$id = empty($args['id']) ? '' : 'id="'.$args['id'].'"';

		$html = '<form class="uk-form'.$class.'" '.$id.' method="post" action="" autocomplete="off">';
		echo $html;
	}

	public static function formClose()
	{
		$html = '</form>';
		echo $html;
	}

	// label, name, value, tip
	public static function formInputText($args)
	{
		$id = 'js'.$args['name'];
		$type = isset($args['type']) ? $args['type'] : 'text';
		$class = empty($args['class']) ? '' : 'class="'.$args['class'].'"';
		$placeholder = empty($args['placeholder']) ? '' : 'placeholder="'.$args['placeholder'].'"';
		$disabled = empty($args['disabled']) ? '' : 'disabled';

		$html  = '<div class="uk-form-row">';

		if(!empty($args['label'])) {
			$html .= '<label for="'.$id.'" class="uk-form-label">'.$args['label'].'</label>';
		}

		$html .= '<div class="uk-form-controls">';

		$html .= '<input id="'.$id.'" name="'.$args['name'].'" type="'.$type.'" '.$class.' '.$placeholder.' autocomplete="off" '.$disabled.' value="'.$args['value'].'">';

		if(!empty($args['tip'])) {
			$html .= '<p class="uk-form-help-block">'.$args['tip'].'</p>';
		}

		$html .= '</div>';
		$html .= '</div>';

		echo $html;
	}

	public static function formInputPassword($args)
	{
		$args['type'] = 'password';
		self::formInputText($args);
	}

	public static function formTextarea($args)
	{
		$id = 'js'.$args['name'];
		$type = isset($args['type']) ? $args['type'] : 'text';
		$class = empty($args['class']) ? '' : 'class="'.$args['class'].'"';
		$placeholder = empty($args['placeholder']) ? '' : 'placeholder="'.$args['placeholder'].'"';
		$rows = empty($args['rows']) ? '' : 'rows="'.$args['rows'].'"';

		$html  = '<div class="uk-form-row">';

		if(!empty($args['label'])) {
			$html .= '<label for="'.$id.'" class="uk-form-label">'.$args['label'].'</label>';
		}

		$html .= '<div class="uk-form-controls">';

		$html .= '<textarea id="'.$id.'" name="'.$args['name'].'" '.$class.' '.$placeholder.' '.$rows.'>'.$args['value'].'</textarea>';

		if(!empty($args['tip'])) {
			$html .= '<p class="uk-form-help-block">'.$args['tip'].'</p>';
		}

		$html .= '</div>';
		$html .= '</div>';

		echo $html;
	}

	public static function formSelect($args)
	{
		$id = 'js'.$args['name'];
		$type = isset($args['type']) ? $args['type'] : 'text';
		$class = empty($args['class']) ? '' : 'class="'.$args['class'].'"';

		$html  = '<div class="uk-form-row">';
		$html .= '<label for="'.$id.'" class="uk-form-label">'.$args['label'].'</label>';
		$html .= '<div class="uk-form-controls">';
		$html .= '<select id="'.$id.'" name="'.$args['name'].'" '.$class.'>';
		foreach($args['options'] as $key=>$value) {
			$html .= '<option value="'.$key.'"'.( ($args['selected']==$key)?' selected="selected"':'').'>'.$value.'</option>';
		}
		$html .= '</select>';
		$html .= '<p class="uk-form-help-block">'.$args['tip'].'</p>';
		$html .= '</div>';
		$html .= '</div>';

		echo $html;
	}

	public static function formInputHidden($args)
	{
		$id = 'js'.$args['name'];

		$html  = '<input type="hidden" id="'.$id.'" name="'.$args['name'].'" value="'.$args['value'].'">';
		echo $html;
	}

	public static function legend($args)
	{
		$html = '<legend>'.$args['value'].'</legend>';
		echo $html;
	}

	public static function formButtonSubmit($args)
	{
		$html = '';
	}

	public static function uploader()
	{
		global $L;

		$html = '
		<div id="upload-drop" class="uk-placeholder uk-text-center">
		<i class="uk-icon-cloud-upload uk-icon-medium uk-text-muted uk-margin-small-right"></i>'.$L->g('Upload Image').'<br><a class="uk-form-file">'.$L->g('Drag and drop or click here').'<input id="upload-select" type="file"></a>
		</div>

		<div id="progressbar" class="uk-progress uk-hidden">
		<div class="uk-progress-bar" style="width: 0%;">0%</div>
		</div>
		';

		$html .= '<select id="jsimageList" class="uk-width-1-1" size="10">';
		$imagesList = Filesystem::listFiles(PATH_UPLOADS,'*','*',true);
		foreach($imagesList as $file) {
			$html .= '<option value="">'.basename($file).'</option>';
		}
		$html .= '</select>';

		$html .= '
		<div class="uk-form-row uk-margin-top">
		<button id="jsaddImage" class="uk-button uk-button-primary" type="button"><i class="uk-icon-angle-double-left"></i> '.$L->g('Insert Image').'</button>
		</div>
		';

		$html .= '
		<script>
		$(document).ready(function() {

			$("#jsaddImage").on("click", function() {
				var filename = $("#jsimageList option:selected").text();
				if(!filename.trim()) {
					return false;
				}
				var textareaValue = $("#jscontent").val();
				$("#jscontent").val(textareaValue + "<img src=\""+filename+"\" alt=\"\">" + "\n");
			});

			$(function()
			{
				var progressbar = $("#progressbar");
				var bar = progressbar.find(".uk-progress-bar");
				var settings =
				{
					type: "json",
					action: "'.HTML_PATH_ADMIN_ROOT.'ajax/uploader",
					allow : "*.(jpg|jpeg|gif|png)",

					loadstart: function() {
						bar.css("width", "0%").text("0%");
						progressbar.removeClass("uk-hidden");
					},

					progress: function(percent) {
						percent = Math.ceil(percent);
						bar.css("width", percent+"%").text(percent+"%");
					},

					allcomplete: function(response) {
						bar.css("width", "100%").text("100%");
						setTimeout(function() { progressbar.addClass("uk-hidden"); }, 250);
						$("#jsimageList").prepend("<option value=\'"+response.filename+"\' selected=\'selected\'>"+response.filename+"</option>");
					},

					notallowed: function(file, settings) {
						alert("'.$L->g('Supported image file types').' "+settings.allow);
					}
				};

				var select = UIkit.uploadSelect($("#upload-select"), settings);
				var drop = UIkit.uploadDrop($("#upload-drop"), settings);
			});

		});
		</script>';

		echo $html;
	}

	public static function profileUploader($username)
	{
		global $L;

		$html = '
		<div id="jsprogressBar" class="uk-progress uk-hidden">
		<div class="uk-progress-bar" style="width: 0%;">0%</div>
		</div>

		<div id="upload-drop" class="uk-placeholder uk-text-center">
		<i class="uk-icon-cloud-upload uk-margin-small-right"></i>'.$L->g('Upload Image').'<br><a class="uk-form-file">'.$L->g('Drag and drop or click here').'<input id="upload-select" type="file"></a>
		</div>
		';

		$html .= '
		<script>
		$(document).ready(function() {

			$(function()
			{
				var progressbar = $("#jsprogressBar");
				var bar = progressbar.find(".uk-progress-bar");
				var settings =
				{
					type: "json",
					action: "'.HTML_PATH_ADMIN_ROOT.'ajax/uploader",
					allow : "*.(jpg|jpeg|gif|png)",
					params: {"type":"profilePicture", "username":"'.$username.'"},

					loadstart: function() {
						bar.css("width", "0%").text("0%");
						progressbar.removeClass("uk-hidden");
					},

					progress: function(percent) {
						percent = Math.ceil(percent);
						bar.css("width", percent+"%").text(percent+"%");
					},

					allcomplete: function(response) {
						bar.css("width", "100%").text("100%");
						progressbar.addClass("uk-hidden");
						$("#jsprofilePicture").attr("src", "'.HTML_PATH_UPLOADS_PROFILES.$username.'.jpg?"+new Date().getTime());
					},

					notallowed: function(file, settings) {
						alert("'.$L->g('Supported image file types').' "+settings.allow);
					}
				};

				var select = UIkit.uploadSelect($("#upload-select"), settings);
				var drop = UIkit.uploadDrop($("#upload-drop"), settings);
			});

		});
		</script>';

		echo $html;
	}

}