/*
 * WEBvivo class contains all mandatory framework methods 
 * and acts as a container class for aditional classes
 * 
 * 
 * Class methods
 * #############################################################################
 * 
 * PUBLIC WRAPPED CLASSES
 * -----------------------------------------------------------------------------
 * db() - PDO wrapper class compatible with ezSQL syntax
 * pdo() - PHP PDO class
 * user() - User management class
 * 
 * PUBLIC FUNCTIONS
 * -----------------------------------------------------------------------------
 * allLanguages() - Returns array with all framework enabled languages
 * antiReload() - Avoid to resent post or get on page reloads
 * arraySanitize() - Sanitize normal or multidimensional array values
 * base64url_decode() - Decode string in base64 URL format
 * base64url_encode() - Encode string in base64 URL format
 * base64URLDecode() - base64url_decode() alias
 * base64URLEncode() - base64url_encode() alias
 * bruteforceAttemp() - Write a new invalid login attemp to bruteforce table
 * bruteforceCheck() - Check bruteforce access
 * captureGetVars() - Set global vars captured and filtered from GET with a 
 *                    given size 
 * captureGlobalGet() - Capture and filter all $_GET vars with $key = value if 
 *                      $key is not previously defined.
 * captureGlobalPost() - Capture and filter all $_POST vars with $key = value if 
 *                       $key is not previously defined.
 * capturePostVars() - Set global vars captured and filtered from POST with a 
 *                     given size
 * chkEmpty() - Check if an array or multidimensiona array is empty
 * chkIndexBacktrace() - Detect if class is called from index or other page
 * chkLang($iso) - Check if supplied iso lang code is enabled
 * cleanString() - Remove any tags, links or multiline comments
 * countryNameByISO() - Return Country name of a given ISO3166-1_A2 code
 * decodeVars() - Get array with vars received from a base64 encoded string
 * detectBotByIP() - isBot method alias
 * detectBotByUserAgent() - Detect if the user_agent is from a bot.
 * download() - Download a file
 * dumpDecode() - Check response contents codified in json and base64-url
 * emailSend() - Simple email send function
 * encodeVars() - Encode the vars of a GET query string using base64url
 * extractQueryStr() - Extract all the vars and arrays from GET
 * fileCacheChk() - Check if current page must be cached
 * fileCacheRead() - Read cache file if exist and delete expired cache files
 * fileCacheWrite() - Write the $obcontent to file cache
 * filterRecursive() - Recursively filter array or object
 * filterUsername() - Filter the login form username POST field
 * formatDate() - Returns a formated date, depending on int used in $opt
 * getAllText() - Generate array with (key => text) with actual page text on 
 *                selected language
 * getAlternateHeader() - Generate alternate link header with all enabled 
 *                        languages
 * getBlock() - Get content block in selected language
 * getBreadcrumb() - Get breadcrumb to var with bootstrap styles
 * getBrowserLang() - Get browser higher score enabled language
 * getConfValue() - Get the value of a given cat + key
 * getCopyright() - Generate Copyright string in HTML comment format
 * getDate() - Get current date for configured default_time_zone
 * getDomainTLD() - Return the TLD of given domain
 * getFileExtension() - Return the file extension of given file
 * getMIMEType() - Get de MIME type of a given file extension
 * getMsg() - Create a system message or error from array
 * getMsgIterator() - Recursively show all messages of multidimensional arrays
 * getNavbarLang() - Generate a Bootstrap navbar lang changer item with all 
 *                   enabled languages
 * getQueryStr() - Create array with (name => value) data of URI query string
 * getQueryVars() - Convert from GET query to compresed var without base64 
 *                  encode
 * getRawBlock() - Get block text of given ID and language
 * getRawBlockName() - Get block name of given ID and language
 * getReferer() - Returns one array with 
 *                |http_referer|referer|uri_str|uri|domain|page|query|
 * getShiftDate() - get a shifted date/time by seconds, minutes, hours, days, 
 *                  weeks, months or years
 * getText() - Return text value for current language for given $key
 * getUriAlias() - Get actual alias page from URI
 * getUserInfo() - Get all user info and attributes for a given user id
 * getVersion() - Get framework version string
 * hostIPAuth() - Check if a IP or host IP is in the array toauthorize access
 * initClass() - Load classes using spl_autoload_register and conf array
 * ip2Country() - Get country code of a given IP using Maxmind
 * isBot() - Detect if a IP is from a bot.
 * isCountry() - Detect UE and LATAM countries
 * langName() -  Return language name for given ISO code
 * lcut() - Delete on the left of a string the part that matches literally with 
 *          another one.
 * logException() - Log exceptions.
 * login() - Try to login if credentials and login order was sent
 * loginByHash() - Try to login if a login HASH is detected
 * loginHash() - Generate a login HASH to identify a user from a URL GET
 * logout() - Disconect user session
 * microtime() - Calculate the time between the given microtime and actual time
 * move2SSL() - If not https, redirect domain to SSL and viceversa if switch 
 *              active
 * object2List() - Get a comma separated list from object to use as 
 *                 "WHERE $value IN ($list)"
 * pageBenchmark() - Measure the page loading speed and memory consumption
 * pageId2Alias() - Generate array with (page id => page alias) of all virtual 
 *                  pages
 * putConfValue() - Update a conf value
 * queryStr() - Used by getQueryStr() to capture all vars to an array
 * queryStrVar() - Used by getQueryStr() to return a single var instead all the 
 *                 query string
 * randPass() - Password generator
 * rcut() - Delete on the right of a string the part that matches literally with 
 *          another one.
 * readCookiesAgree() - Read cookies_agree cookie
 * redir() - Redirect to a given URI and type or redirect.
 * redirect301() - Redirect old pages to new ones using configuration array
 * reduceArray() - Reduce multidimensional array/object to simple array
 * removeAccents() - Remove accents from a text string
 * removeLangFromQueryString() - Remove lang and setlang vars from query string 
 *                               before generating the new query to avoid adding 
 *                               it again when changing language
 * rowOrder() - Change numeric order field to move up or down sql rows
 * setCookiesAgree() - Set de cookies_agree cookie
 * setVar() - Check if var is unset and set it as null, else return original value
 * showBlock() - Show content block in selected language
 * showBreadcrumb() - Show breadcrumb with bootstrap styles
 * showMsg() - Show the message created by createMsg
 * showText() - Show text value for current language for given $key
 * ssl() - Check if page is loaded using https protocol
 * ssl_decrypt() - Decrypt string using openssl_encrypt
 * ssl_encrypt() - Encrypt string  using openssl_encrypt
 * sslDecrypt() - ssl_decrypt() alias
 * sslEncrypt() - ssl_encrypt() alias
 * urlizer() - Convert string to use in URLs, page names and similar.
 * userGroupName() - Get user group name for current user
 * validateEncryptionHash() - Validate encryption hashes
 * vardump() - Enhanced var dump with prism styles for debugging purposes