<?php
/* Ulyxex version 1.5.5.8 ***************/
/* code http://ulyxex.logz.org **********/
/* Andre Lozano http://andre-lozano.org */
class Html extends Htmlz {
	//~ to keep retro-compatibility with special scripts
	//~ because name "Html" as a class produce a warning in php7 ?
}
class XmlSitemap {
	public function urlset($val=null){
		$result = "<?xml version=\"1.0\" encoding=\"UTF-8\"?".">\n";
		$result .= "<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n";
		$result .= $val."\n</urlset>\n";
		return $result;
	}
	function tag($tag=null,$val=null){;
		if ($val) return "<".$tag.">".$val."</".$tag.">";
	}
	/* xml sitemap tags */
	public function url($val=null){
		return $this->tag("url",$val);
	}
	public function loc($val=null){
		return $this->tag("loc",$val);
	}
	public function lastmod($val=null){
		return $this->tag("lastmod",$val);
	}
	public function changefreq($val=null){
		return $this->tag("changefreq",$val);
	}
	public function priority($val=null){
		return $this->tag("priority",$val);
	}
}
class XmlRss {
	public function rss($val=null,$params=null){
		$result = "<?xml version=\"1.0\" encoding=\"UTF-8\"?".">\n";
		$result .= "<rss version=\"2.0\">\n<channel>\n";
		$result .= $val."\n</channel>\n</rss>\n";
		return $result;
	}
	function tag($tag=null,$val=null){
		if ($val) return "<".$tag.">".$val."</".$tag.">";
	}
	/* rss sitemap tags */
	public function item($val=null){
		return $this->tag("title",$val);
	}
	public function title($val=null){
		return $this->tag("title",$val);
	}
	public function link($val=null){
		return $this->tag("link",$val);
	}
	public function author($val=null){
		return $this->tag("lastmod",$val);
	}
	public function description($val=null){
		return $this->tag("description",$val);
	}
	public function pubdate($val=null){
		return $this->tag("pubdate",$val);
	}
}
class Htmlz {
	//~ public int $xhtml;
		
	public function extUploadAllowed() {
		$arr = array("7z","aac","ai","aif","aifc","aiff","arj","asf","asr","asx","au","avi","bin","bmp","cda","dcr","doc","dot","eps","flv","gif","gz","hqx","html","ico","jfif","jpe","jpeg","jpg","m4a","m4b","m4v","mid","mov","mp2","mp3","mp4","mpa","mpe","mpeg","mpg","odb","odc","odf","odg","odi","odm","odp","ods","odt","ogg","pdf","png","pps","ppt","ps","psd","ra","ram","rar","rm","rmi","rtf","sea","sit","sla","stc","std","sti","stw","swf","sxc","sxd","sxg","sxi","sxm","sxw","tar","tgz","tif","tiff","torrent","txt","vcf","wav","wcm","wdb","webm","webp","wks","wma","wmf","wmv","wps","wri","wrl","wrz","xaf","xbm","xla","xlc","xlm","xls","xlt","xlw","xml","xof","xpm","xsd","xsl","xwd","xspf","zip","pict");
		return $arr;
	}
	/* ulyxex specific functions */
	public function ulyxCredits($firstLine=true,$secondLine=true){
		$t = new Translate();
		$version =  defined('VERSION')?VERSION:"0.0.0";
		$firstLine = ($firstLine)?$this->p(
			$this->span($this->ahref($this->root_url("index.php?k=contact&amp;v=0"),$t->w("Contact website")),"class='contactsite'")
			." ".
			$this->span($this->ahref($this->root_url("login.php"),$t->w("Login")),"class='linklogin'")
			,"class='contact'"):"";
		$secondLine = ($secondLine)?$this->p($this->ahref("http://ulyxex.logz.org",$t->wr("Made with Ulyxex").$version),"class='credits'"):"";
		return $firstLine.$secondLine;
	}
	public function countQ(){
		return $this->p("queries = ".$_SESSION['countqueries']);
    }
    /* special change menu */
	public function selectOnChangeMenu($options=null,$name=null,$selected=null){
		if ($name){$name = " id=\"".$name."\" name=\"".$name."\"";}
		return "<!--\n--><select".$name." onchange='this.form.submit()' onmouseover='this.click()'><!--\n-->".$this->optionsChangeMenu($options,$selected)."<!--\n--></select><!--\n-->";
	}
	function optionsChangeMenu($options=null,$selected=null){
		$optionsList = array();
		foreach($options as $item=>$value){
			if ($value == $selected){
				//~ menu icon &#x2630
				if (mb_substr($item, 0, 6) == "&#8199") {
					$optionsList[] =  "<option value=\"".$value."\" selected=\"selected\">"."&#x2630;".$item."</option>";
				} else {
					$optionsList[] =  "<option value=\"".$value."\" selected=\"selected\">"."&#x2630;&nbsp;".$item."</option>";
				}
			} else {
				$optionsList[] =  "<option value=\"".$value."\">".$item."</option>"; 
			}
		}
		return implode("<!--\n-->",$optionsList);
	}
	/* html */
	public function html($val=null,$params=null){
		// ulyxex default use html version 5
		return $this->html5($val,$params);
		// return $this->html4($val,$params);
		
		// $this->xhtml = 1;
		// return $this->xhtml1($val,$params);
	}
	public function html5($val=null,$params=null){
		$params = $this->_sp($params);
		$result = "<!DOCTYPE HTML>\n";
		$result .= "<html".$params.">";
		$result .= $val."</html>";
		return $result;
	}
	public function html4($val=null,$params=null){
		$params = $this->_sp($params);
		$result = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
		$result .= "<html".$params.">";
		$result .= $val."</html>";
		return $result;
	}
	public function xhtml1($val=null,$params=null){
		$params = $this->_sp($params);
		$result = "<?xml version=\"1.0\" encoding=\"UTF-8\"?".">\n";
		$result .= "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/html51/DTD/html51-transitional.dtd\">\n";
		$result .= "<html xmlns=\"http://www.w3.org/1999/xhtml\"".$params.">";
		$result .= $val."</html>\n";
		return $result;
	}

	/* regular tags */
	function tag($tag=null,$val=null,$params=null,$s=true){
		$params = $this->_sp($params);
		($s)?$ln = $this->comment("\n"):$ln = "\n";
		if ($val) return "<".$tag.$params.">".$val."</".$tag.">".$ln;
	}
	public function head($val=null){
		return $this->tag("head",$val,null,null);
	}
	public function body($val=null,$params=null){
		$params = $this->_sp($params);
		return $this->tag("body",$val,$params,null);
	}
	public function bodydata($val=null,$params=null){
		$content = $this->div($val,"class='pagecontent'");
		$params = $this->_sp($params);
		return $this->body($content,"class='pagecontent'".$params,null);
	}
	public function bodyadmin($val=null,$params=null){
		$content = $this->div($val,"class='admincontent'");
		$params = $this->_sp($params);
		return $this->body($content,"class='admincontent'".$params,null);
	}
	public function title($val=null){
		return $this->tag("title",$val,null,null);
	}
	public function header($val=null,$params=null){
		return $this->tag("header",$val,$params);
	}
	public function article($val=null,$params=null){
		return $this->tag("article",$val,$params);
	}
	public function articles($val=null,$params=null){
		return $this->tag("articles",$val,$params);
	}
	public function aside($val=null,$params=null){
		return $this->tag("aside",$val,$params);
	}
	public function mark($val=null,$params=null){
		return $this->tag("mark",$val,$params);
	}
	public function nav($val=null,$params=null){
		return $this->tag("nav",$val,$params,null);
	}
	public function footer($val=null,$params=null){
		return $this->tag("footer",$val,$params);
	}
	public function h1($val=null,$params=null){
		return $this->tag("h1",$val,$params);
	}
	public function h2($val=null,$params=null){
		return $this->tag("h2",$val,$params);
	}
	public function h3($val=null,$params=null){
		return $this->tag("h3",$val,$params);
	}
	public function p($val=null,$params=null){
		return $this->tag("p",$val,$params);
	}
	public function b($val=null,$params=null){
		return $this->tag("strong",$val,$params,null);
	}
	public function pre($val=null,$params=null){
		return $this->tag("pre",$val,$params);
	}
	public function div($val=null,$params=null){
		return $this->tag("div",$val,$params,null);
	}
	public function span($val=null,$params=null){
		return $this->tag("span",$val,$params);
	}
	public function ol($val=null,$params=null){
		return $this->tag("ol",$val,$params);
	}
	public function ul($val=null,$params=null){
		return $this->tag("ul",$val,$params);
	}
	public function li($val=null,$params=null){
		return $this->tag("li",$val,$params);
	}
	public function table($val=null,$params=null){
		return $this->tag("table",$val,$params);
	}
	public function thead($val=null,$params=null){
		return $this->tag("thead",$val,$params);
	}
	public function tbody($val=null,$params=null){
		return $this->tag("tbody",$val,$params);
	}
	public function tfoot($val=null,$params=null){
		return $this->tag("tfoot",$val,$params);
	}
	public function th($val=null,$params=null){
		return $this->tag("th",$val,$params);
	}
	public function tr($val=null,$params=null){
		return $this->tag("tr",$val,$params);
	}
	public function td($val=null,$params=null){
		return $this->tag("td",$val,$params);
	}
	/* unique tags head */
	public function meta($action=null,$content=null,$type="http-equiv"){
		//~ if ($action) return "\n<meta ".$type."=\"".$action."\" content=\"".$content."\" />"; // xhtml
		if ($action) return "\n<meta ".$type."=\"".$action."\" content=\"".$content."\">";
	}
	public function canonical($val){
	//~ only for articles
		if (!defined('HTTPSVAL')) {
			define("HTTPSVAL",null);
		} 
		$http = HTTPSVAL ? "https://":"http://";
		//~ if ($val) return "\n<link rel=\"canonical\" href=\"".$http.$val."\" />"; // xhtml
		if ($val) return "\n<link rel=\"canonical\" href=\"".$http.$val."\">";
	}
	public function ico($val=null){
		//~ if ($val && file_exists($val)) return "<link rel=\"icon\" type=\"image/png\" href=\"".$val."\" />"; // xhtml
		if ($val && file_exists($val)) return "<link rel=\"icon\" type=\"image/png\" href=\"".$val."\">";
	}
	/* unique tags body */
	public function br($val=null){
		//~ return $val."<br />\n"; // xhtml
		return $val."<br><!--\n-->";
	}
	public function ahref($target=null,$val=null,$params=null){
		$params = $this->_sp($params);
		if ($val && $target) return "<a href=\"".$target."\"".$params.">".$val."</a>";
	}
	public function audio($val=null,$type=null,$params=null){
		$params = $this->_sp($params);
		$result = "<!--\n--><audio".$params.">";
		$result .= "<!--\n--><source src=\"".$val."\" type=\"".$type."\">";
		$result .= "<!--\n--></audio>";
		if ($val) return $result;
	}
	public function video($val=null,$type=null,$params=null){
		$params = $this->_sp($params);
		$result = "<!--\n--><video".$params.">";
		$result .= "<!--\n--><source src=\"".$val."\" type=\"".$type."\">";
		$result .= "<!--\n--></video>";
		if ($val) return $result;
	}
	public function img($val=null,$params=null){
		$params = $this->_sp($params);
		//~ if ($val) return "<img src=\"".$val."\"".$params." />"; // xhtml
		if ($val) return "<img src=\"".$val."\" alt=\"image\" ".$params." >";
	}
	/* special tag */
	public function tag_by_fileType($val=null,$type=null,$params=null) {
		$params = $this->_sp($params);
		$data = explode("/",$type);
		if ($data[0] == "audio") {
			return $this->audio($val,$type,"controls=\"controls\"".$params);
		} else if ($data[0] == "video") {
			return $this->video($val,$type,"controls=\"controls\"".$params);
		} else if ($data[0] == "image") {
			return $this->img($val,$params);
		} else {
			return $this->ahref($val,$val,$params);
		}
	}
	public function text2ascii($text=null) {
		$text = strip_tags($text);
		$text = trim($text);
		$text = $this->replace_accent($text);
		$text = preg_replace("/[^[:alnum:]\.]/","-",$text);
		$text = preg_replace("/-+/","-",$text);
		return $text;
	}
	public function error404(){
		$head = $this->title("404 Not Found");
		$body = $this->h1("Not Found").$this->p("The requested URL ".$_SERVER['PHP_SELF']." was not found on this server.");
		return $this->html($this->head($head).$this->body($body));
	}
	public function alertPage($content="") {
		$head = $this->title("Alert !");
		$body = $this->p("Alert !","style='color:red'");
		$body .= $this->h1($content,"style='color:red'");
		return $this->html($this->head($head).$this->body($body));
	}
	public function color($val="",$color="black") {
		if ($val) return "<span style=\"color:".$color."\">".$val."</span>";
	}
	public function comment($val=null){
		if ($val) return "<!--".$val."-->";
	}
	public function css($val=null,$external=null){
		$result = "";
		if ($val!=null && $external==null){
			$result = "\n<style type=\"text/css\">\n".$val."\n</style>";
		} elseif($val!=null && $external!=null && file_exists($val)){
			//~ $result = "\n<link href=\"".$val."\" rel=\"stylesheet\" type=\"text/css\" />"; // xhtml
			$result = "\n<link href=\"".$val."\" rel=\"stylesheet\" type=\"text/css\">";
		}
		if ($val) return $result;
	}
	public function jscript($val=null,$external=null){
		return $this->script($val=null,$external=null);
	}
	public function script($val=null,$external=null){
		$result = "";
		if ($val!=null && $external==null){
			$result = "\n<script type=\"text/javascript\">\n".$val."\n</script>";
		} elseif($val!=null && $external!=null && file_exists($val)){
			$result = "\n<script src=\"".$val."\" type=\"text/javascript\"></script>";
		}
		if ($val) return $result;
	}
	/* form tag */
	public function form($val="",$name=null,$method=null,$action=null,$enctype=null){
		$result = "";
		$result = "<!--\n--><form";
		if ($name != null) $result .= " id=\"".$name."\" name=\"".$name."\"";
		if ($method != null) $result .= " method=\"".$method."\"";
		if ($action != null) $result .= " action=\"".$action."\"";
		if ($enctype != null) $result .= " enctype=\"".$enctype."\"";
		$result .= ">";
		$result .= $val;
		$result .= "<!--\n--></form><!--\n-->";
		if ($val) return $result;
	}
	public function textarea($val=null,$name=null,$sizes=array(4,80),$params=null){
		$result = "<!--\n--><textarea ";
		if ($name != null) $result .= "id=\"".$name."\" name=\"".$name."\" ";
		$result .= "rows=\"".$sizes[0]."\" cols=\"".$sizes[1]."\" ";
		if ($params != null) $result .= $params;
		$result .= ">";
		$result .= $val;
		$result .= "</textarea><!--\n-->";
		return $result;
	}
	public function input($type=null,$name=null,$value=null,$params=null){
		$result = "<input ";
		if ($type != null) $result .= "type=\"".$type."\" ";
		if ($name != null) $result .= "id=\"".$name."\" name=\"".$name."\" ";
		if ($value != null) $result .= "value=\"".$value."\" ";
		if ($params != null) $result .= $params." ";
		//~ $result .= "/>"; // xhtml
		$result .= "><!--\n-->";
		if ($type) return $result;
	}
    public function select($options=null,$name=null,$selected=null,$params=null){
		if ($name){$name = " id=\"".$name."\" name=\"".$name."\"";}
		$params = $this->_sp($params);
		return "<select".$name.$params."><!--\n-->".$this->options($options,$selected)."<!--\n--></select><!--\n-->";
	}
	function options($options=null,$selected=null){
		$optionsList = array();
		foreach($options as $item=>$value){
			if ($value == $selected){
				$optionsList[] =  "<option value=\"".$value."\" selected=\"selected\">".$item."</option>"; 
			} else {
				$optionsList[] =  "<option value=\"".$value."\">".$item."</option>"; 
			}
		}
		return implode("<!--\n-->",$optionsList);
	}
	public function fieldset($val=null,$params=null){
		return $this->tag("fieldset",$val,$params);
	}
	public function label($val=null,$params=null){
		return $this->tag("label",$val,$params);
	}
	/* utilities */
	function _sp($val=null){
		if ($val) {
			return " ".$val;
		} else {
			return $val;
		}
	}
	public function crypt($word){
		if (function_exists('sha1')){ // Only in PHP 4.3.0+
			return sha1($word);
		} elseif (function_exists('mhash')){ // Only if Mhash library is loaded
			return bin2hex(mhash(MHASH_SHA1, $word));
		} else {
			return md5($word);
		}
	}
	//~ safety
	public function num($num){
		if ($num &&!preg_match("/^[0-9]+$/",$num)) exit("number entry incorrect !".$num);
		return $num;
	}
	public function word($word){
		if ($word && !preg_match("/^[A-Za-z0-9_\/\.\:]+$/",trim($word))) exit("word entry incorrect ! use only 'A-Z a-z 0-9 or _ / . :' chars");
		return $word;
	}
	public function safeCss($word){
		if ($word && !preg_match("/^[A-Za-z0-9_\.]+$/",trim($word))) exit("word entry incorrect ! use only 'A-Z a-z 0-9 or _ .' chars");
		return $word;
	}
	public function safe($val=null){
		$val = stripslashes($val);
		$dbLink = mysqli_connect(HOSTMYSQL,USERMYSQL,PASSMYSQL,BASEMYSQL) or die("Error ".mysqli_error($link)); 
		$result = mysqli_real_escape_string($dbLink,$val);
		mysqli_close($dbLink);
		return $result;
	}
	public function safeVal($val=null){
		if ($val != null) {
			$val = trim($val);
			$val = stripslashes($val);
			$val = htmlspecialchars($val);
			return $val;
		} else {
			return "";
		}
	}
	public function strWidthLeft($val=null,$size=128){
		if (mb_strlen($val) > $size){
			$result = mb_substr($val,0,$size);
			$words = array_filter(explode(" ",$result));
			// delete last word fragment
			if (count($words) > 1) array_pop($words);
			$result = implode(" ",$words)."...";
		} else {
			$result = $val;
		}
		return $result;
	}
	public function strWidth($val=null,$size=64){
		$stringLen = mb_strlen($val);
		if ( $stringLen > $size ){
			$e = floor(($size-2) / 2);
			$result = mb_substr($val,0,$e)."..".mb_substr($val,-$e);
		} else {
			$result = $val;
		}
		if (mb_strlen($result) < $size) $result = $result.str_repeat("&nbsp;",$size-mb_strlen($result));
		return $result;
	}
	public function url($val=null){
		return urlencode($val);
	}
	public function clean_short_url($val=null,$length=128){
		$val = html_entity_decode($val);
		$val = $this->uly_strip_tags($val);
		$val = $this->replace_accent($val);
		$val = preg_replace('/[^\w\s]/', '', $val);
		$val = preg_replace('/\s+/', ' ', $val);
		if (mb_strlen($val) > $length){
			$result = mb_substr($val,0,$length);
			$words = array_filter(explode(" ",$result));
			// delete last word fragment
			if (count($words) > 1) array_pop($words);
			$result = implode(" ",$words);
		} else {
			$result = $val;
		}
		return urlencode($result);
	}
	public function uly_htmlentities($val=null){
		if ($val === null) {// htmlentities don't accept null
			return "htmties";
		} else {
			return htmlentities($val,ENT_QUOTES,"UTF-8");
		}
	}
	public function uly_strip_tags($val=null){
		return strip_tags(trim($val));
	}
	public function f4d($val){
		return sprintf("%'-4d",$val);
	}
	public function echo_arr($arr=array()){
		echo "<pre>",print_r($arr,true),"</pre>";
	}
	public function root_url($val=null){
		if (!defined('HTTPSVAL')) {
			define("HTTPSVAL",null);
		} 
		$http = HTTPSVAL ? "https://":"http://";
		if (isset($_SERVER['REQUEST_URI'])) {
			$script = $_SERVER['REQUEST_URI'];
		} elseif (isset($_SERVER['SCRIPT_NAME'])) {
			$script = $_SERVER['SCRIPT_NAME'];
		} elseif (isset($_SERVER['PHP_SELF'])) {
			$script = $_SERVER['PHP_SELF'];
		} else {
			$script = null;
		}
		if ( preg_match("/\//",$script) ){
			$relativPath = array();
			$relativPath = explode("/",$script);
			array_pop($relativPath);
			$localDir = implode("/",$relativPath);
		} else {
			$localDir = "";
		}
		if (isset($_SERVER['HTTP_HOST'])){
			$result = $http.$_SERVER['HTTP_HOST'].$localDir."/"; 
		} elseif ( isset($_SERVER['SERVER_NAME']) ){
			$result = $http.$_SERVER['SERVER_NAME'].$localDir."/";
		} else {
			$result = $localDir."/";
		}
		if (!empty($val)) $result .= $val;
		return $result;
	}
	function replace_accent($val=null) {
		$val = mb_convert_encoding($val, "UTF-8", "auto");
		$a = array('À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'ß', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', 'ø', 'ù', 'ú', 'û', 'ü', 'ý', 'ÿ', 'Ā', 'ā', 'Ă', 'ă', 'Ą', 'ą', 'Ć', 'ć', 'Ĉ', 'ĉ', 'Ċ', 'ċ', 'Č', 'č', 'Ď', 'ď', 'Đ', 'đ', 'Ē', 'ē', 'Ĕ', 'ĕ', 'Ė', 'ė', 'Ę', 'ę', 'Ě', 'ě', 'Ĝ', 'ĝ', 'Ğ', 'ğ', 'Ġ', 'ġ', 'Ģ', 'ģ', 'Ĥ', 'ĥ', 'Ħ', 'ħ', 'Ĩ', 'ĩ', 'Ī', 'ī', 'Ĭ', 'ĭ', 'Į', 'į', 'İ', 'ı', 'IJ', 'ij', 'Ĵ', 'ĵ', 'Ķ', 'ķ', 'Ĺ', 'ĺ', 'Ļ', 'ļ', 'Ľ', 'ľ', 'Ŀ', 'ŀ', 'Ł', 'ł', 'Ń', 'ń', 'Ņ', 'ņ', 'Ň', 'ň', 'ʼn', 'Ō', 'ō', 'Ŏ', 'ŏ', 'Ő', 'ő', 'Œ', 'œ', 'Ŕ', 'ŕ', 'Ŗ', 'ŗ', 'Ř', 'ř', 'Ś', 'ś', 'Ŝ', 'ŝ', 'Ş', 'ş', 'Š', 'š', 'Ţ', 'ţ', 'Ť', 'ť', 'Ŧ', 'ŧ', 'Ũ', 'ũ', 'Ū', 'ū', 'Ŭ', 'ŭ', 'Ů', 'ů', 'Ű', 'ű', 'Ų', 'ų', 'Ŵ', 'ŵ', 'Ŷ', 'ŷ', 'Ÿ', 'Ź', 'ź', 'Ż', 'ż', 'Ž', 'ž', 'ſ', 'ƒ', 'Ơ', 'ơ', 'Ư', 'ư', 'Ǎ', 'ǎ', 'Ǐ', 'ǐ', 'Ǒ', 'ǒ', 'Ǔ', 'ǔ', 'Ǖ', 'ǖ', 'Ǘ', 'ǘ', 'Ǚ', 'ǚ', 'Ǜ', 'ǜ', 'Ǻ', 'ǻ', 'Ǽ', 'ǽ', 'Ǿ', 'ǿ');
		$a = mb_convert_encoding($a, "UTF-8", "auto");
		$b = array('A', 'A', 'A', 'A', 'A', 'A', 'AE', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I', 'D', 'N', 'O', 'O', 'O', 'O', 'O', 'O', 'U', 'U', 'U', 'U', 'Y', 's', 'a', 'a', 'a', 'a', 'a', 'a', 'ae', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'n', 'o', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'y', 'y', 'A', 'a', 'A', 'a', 'A', 'a', 'C', 'c', 'C', 'c', 'C', 'c', 'C', 'c', 'D', 'd', 'D', 'd', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'G', 'g', 'G', 'g', 'G', 'g', 'G', 'g', 'H', 'h', 'H', 'h', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', 'IJ', 'ij', 'J', 'j', 'K', 'k', 'L', 'l', 'L', 'l', 'L', 'l', 'L', 'l', 'l', 'l', 'N', 'n', 'N', 'n', 'N', 'n', 'n', 'O', 'o', 'O', 'o', 'O', 'o', 'OE', 'oe', 'R', 'r', 'R', 'r', 'R', 'r', 'S', 's', 'S', 's', 'S', 's', 'S', 's', 'T', 't', 'T', 't', 'T', 't', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'W', 'w', 'Y', 'y', 'Y', 'Z', 'z', 'Z', 'z', 'Z', 'z', 's', 'f', 'O', 'o', 'U', 'u', 'A', 'a', 'I', 'i', 'O', 'o', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'A', 'a', 'AE', 'ae', 'O', 'o');
		$b = mb_convert_encoding($b, "UTF-8", "auto");
		return str_replace($a, $b, $val);
	}
	public function get_ext($fileName=null){
		$data = explode(".",$fileName);
		$ext = array_pop($data);
		$ext = strtolower($ext);
		return $ext;
	}
	public function format_file_size($octets) {
		$resultat = $octets;
		for ($i=0; $i < 8 && $resultat >= 1024; $i++) {
			$resultat = $resultat / 1024;
		}
		if ($i > 0) {
			return preg_replace('/,00$/', '', number_format($resultat, 2, ',', '')) . ' ' . substr('KMGTPEZY',$i-1,1) . 'o';
		} else {
			return $resultat . ' o';
		}
	}
	public function sp($list){
		return implode(" ", $list);
	}
}
?>

page url