CKEDITOR.dialog.add('nvfontawesome', function(editor)
{
	icon 		= null;
	var html 	= "";
	var icons 	= [
"fa-500px fab",
"fa-accessible-icon fab",
"fa-accusoft fab",
"fa-address-book far",
"fa-address-book fas",
"fa-address-card far",
"fa-address-card fas",
"fa-adjust fas",
"fa-adn fab",
"fa-adversal fab",
"fa-affiliatetheme fab",
"fa-algolia fab",
"fa-align-center fas",
"fa-align-justify fas",
"fa-align-left fas",
"fa-align-right fas",
"fa-allergies fas",
"fa-amazon fab",
"fa-amazon-pay fab",
"fa-ambulance fas",
"fa-american-sign-language-interpreting fas",
"fa-amilia fab",
"fa-anchor fas",
"fa-android fab",
"fa-angellist fab",
"fa-angle-double-down fas",
"fa-angle-double-left fas",
"fa-angle-double-right fas",
"fa-angle-double-up fas",
"fa-angle-down fas",
"fa-angle-left fas",
"fa-angle-right fas",
"fa-angle-up fas",
"fa-angrycreative fab",
"fa-angular fab",
"fa-app-store fab",
"fa-app-store-ios fab",
"fa-apper fab",
"fa-apple fab",
"fa-apple-pay fab",
"fa-archive fas",
"fa-arrow-alt-circle-down far",
"fa-arrow-alt-circle-down fas",
"fa-arrow-alt-circle-left far",
"fa-arrow-alt-circle-left fas",
"fa-arrow-alt-circle-right far",
"fa-arrow-alt-circle-right fas",
"fa-arrow-alt-circle-up far",
"fa-arrow-alt-circle-up fas",
"fa-arrow-circle-down fas",
"fa-arrow-circle-left fas",
"fa-arrow-circle-right fas",
"fa-arrow-circle-up fas",
"fa-arrow-down fas",
"fa-arrow-left fas",
"fa-arrow-right fas",
"fa-arrow-up fas",
"fa-arrows-alt fas",
"fa-arrows-alt-h fas",
"fa-arrows-alt-v fas",
"fa-assistive-listening-systems fas",
"fa-asterisk fas",
"fa-asymmetrik fab",
"fa-at fas",
"fa-audible fab",
"fa-audio-description fas",
"fa-autoprefixer fab",
"fa-avianex fab",
"fa-aviato fab",
"fa-aws fab",
"fa-backward fas",
"fa-balance-scale fas",
"fa-ban fas",
"fa-band-aid fas",
"fa-bandcamp fab",
"fa-barcode fas",
"fa-bars fas",
"fa-baseball-ball fas",
"fa-basketball-ball fas",
"fa-bath fas",
"fa-battery-empty fas",
"fa-battery-full fas",
"fa-battery-half fas",
"fa-battery-quarter fas",
"fa-battery-three-quarters fas",
"fa-bed fas",
"fa-beer fas",
"fa-behance fab",
"fa-behance-square fab",
"fa-bell far",
"fa-bell fas",
"fa-bell-slash far",
"fa-bell-slash fas",
"fa-bicycle fas",
"fa-bimobject fab",
"fa-binoculars fas",
"fa-birthday-cake fas",
"fa-bitbucket fab",
"fa-bitcoin fab",
"fa-bity fab",
"fa-black-tie fab",
"fa-blackberry fab",
"fa-blind fas",
"fa-blogger fab",
"fa-blogger-b fab",
"fa-bluetooth fab",
"fa-bluetooth-b fab",
"fa-bold fas",
"fa-bolt fas",
"fa-bomb fas",
"fa-book fas",
"fa-bookmark far",
"fa-bookmark fas",
"fa-bowling-ball fas",
"fa-box fas",
"fa-box-open fas",
"fa-boxes fas",
"fa-braille fas",
"fa-briefcase fas",
"fa-briefcase-medical fas",
"fa-btc fab",
"fa-bug fas",
"fa-building far",
"fa-building fas",
"fa-bullhorn fas",
"fa-bullseye fas",
"fa-burn fas",
"fa-buromobelexperte fab",
"fa-bus fas",
"fa-buysellads fab",
"fa-calculator fas",
"fa-calendar far",
"fa-calendar fas",
"fa-calendar-alt far",
"fa-calendar-alt fas",
"fa-calendar-check far",
"fa-calendar-check fas",
"fa-calendar-minus far",
"fa-calendar-minus fas",
"fa-calendar-plus far",
"fa-calendar-plus fas",
"fa-calendar-times far",
"fa-calendar-times fas",
"fa-camera fas",
"fa-camera-retro fas",
"fa-capsules fas",
"fa-car fas",
"fa-caret-down fas",
"fa-caret-left fas",
"fa-caret-right fas",
"fa-caret-square-down far",
"fa-caret-square-down fas",
"fa-caret-square-left far",
"fa-caret-square-left fas",
"fa-caret-square-right far",
"fa-caret-square-right fas",
"fa-caret-square-up far",
"fa-caret-square-up fas",
"fa-caret-up fas",
"fa-cart-arrow-down fas",
"fa-cart-plus fas",
"fa-cc-amazon-pay fab",
"fa-cc-amex fab",
"fa-cc-apple-pay fab",
"fa-cc-diners-club fab",
"fa-cc-discover fab",
"fa-cc-jcb fab",
"fa-cc-mastercard fab",
"fa-cc-paypal fab",
"fa-cc-stripe fab",
"fa-cc-visa fab",
"fa-centercode fab",
"fa-certificate fas",
"fa-chart-area fas",
"fa-chart-bar far",
"fa-chart-bar fas",
"fa-chart-line fas",
"fa-chart-pie fas",
"fa-check fas",
"fa-check-circle far",
"fa-check-circle fas",
"fa-check-square far",
"fa-check-square fas",
"fa-chess fas",
"fa-chess-bishop fas",
"fa-chess-board fas",
"fa-chess-king fas",
"fa-chess-knight fas",
"fa-chess-pawn fas",
"fa-chess-queen fas",
"fa-chess-rook fas",
"fa-chevron-circle-down fas",
"fa-chevron-circle-left fas",
"fa-chevron-circle-right fas",
"fa-chevron-circle-up fas",
"fa-chevron-down fas",
"fa-chevron-left fas",
"fa-chevron-right fas",
"fa-chevron-up fas",
"fa-child fas",
"fa-chrome fab",
"fa-circle far",
"fa-circle fas",
"fa-circle-notch fas",
"fa-clipboard far",
"fa-clipboard fas",
"fa-clipboard-check fas",
"fa-clipboard-list fas",
"fa-clock far",
"fa-clock fas",
"fa-clone far",
"fa-clone fas",
"fa-closed-captioning far",
"fa-closed-captioning fas",
"fa-cloud fas",
"fa-cloud-download-alt-alt fas",
"fa-cloud-upload-alt fas",
"fa-cloudscale fab",
"fa-cloudsmith fab",
"fa-cloudversify fab",
"fa-code fas",
"fa-code-branch fas",
"fa-codepen fab",
"fa-codiepie fab",
"fa-coffee fas",
"fa-cog fas",
"fa-cogs fas",
"fa-columns fas",
"fa-comment far",
"fa-comment fas",
"fa-comment-alt far",
"fa-comment-alt fas",
"fa-comment-dots fas",
"fa-comment-slash fas",
"fa-comments far",
"fa-comments fas",
"fa-compass far",
"fa-compass fas",
"fa-compress fas",
"fa-connectdevelop fab",
"fa-contao fab",
"fa-copy far",
"fa-copy fas",
"fa-copyright far",
"fa-copyright fas",
"fa-couch fas",
"fa-cpanel fab",
"fa-creative-commons fab",
"fa-credit-card far",
"fa-credit-card fas",
"fa-crop fas",
"fa-crosshairs fas",
"fa-css3 fab",
"fa-css3-alt fab",
"fa-cube fas",
"fa-cubes fas",
"fa-cut fas",
"fa-cuttlefish fab",
"fa-d-and-d fab",
"fa-dashcube fab",
"fa-database fas",
"fa-deaf fas",
"fa-delicious fab",
"fa-deploydog fab",
"fa-deskpro fab",
"fa-desktop fas",
"fa-deviantart fab",
"fa-diagnoses fas",
"fa-digg fab",
"fa-digital-ocean fab",
"fa-discord fab",
"fa-discourse fab",
"fa-dna fas",
"fa-dochub fab",
"fa-docker fab",
"fa-dollar-sign fas",
"fa-dolly fas",
"fa-dolly-flatbed fas",
"fa-donate fas",
"fa-dot-circle far",
"fa-dot-circle fas",
"fa-dove fas",
"fa-cloud-download-alt fas",
"fa-draft2digital fab",
"fa-dribbble fab",
"fa-dribbble-square fab",
"fa-dropbox fab",
"fa-drupal fab",
"fa-dyalog fab",
"fa-earlybirds fab",
"fa-edge fab",
"fa-edit far",
"fa-edit fas",
"fa-eject fas",
"fa-elementor fab",
"fa-ellipsis-h fas",
"fa-ellipsis-v fas",
"fa-ember fab",
"fa-empire fab",
"fa-envelope far",
"fa-envelope fas",
"fa-envelope-open far",
"fa-envelope-open fas",
"fa-envelope-square fas",
"fa-envira fab",
"fa-eraser fas",
"fa-erlang fab",
"fa-ethereum fab",
"fa-etsy fab",
"fa-euro-sign fas",
"fa-exchange-alt fas",
"fa-exclamation fas",
"fa-exclamation-circle fas",
"fa-exclamation-triangle fas",
"fa-expand fas",
"fa-expand-arrows-alt fas",
"fa-expeditedssl fab",
"fa-external-link-alt fas",
"fa-external-link-square-alt fas",
"fa-eye fas",
"fa-eye-dropper fas",
"fa-eye-slash far",
"fa-eye-slash fas",
"fa-facebook fab",
"fa-facebook-f fab",
"fa-facebook-messenger fab",
"fa-facebook-square fab",
"fa-fast-backward fas",
"fa-fast-forward fas",
"fa-fax fas",
"fa-female fas",
"fa-fighter-jet fas",
"fa-file far",
"fa-file fas",
"fa-file-alt far",
"fa-file-alt fas",
"fa-file-archive far",
"fa-file-archive fas",
"fa-file-audio far",
"fa-file-audio fas",
"fa-file-code far",
"fa-file-code fas",
"fa-file-excel far",
"fa-file-excel fas",
"fa-file-image far",
"fa-file-image fas",
"fa-file-medical fas",
"fa-file-medical-alt fas",
"fa-file-pdf far",
"fa-file-pdf fas",
"fa-file-powerpoint far",
"fa-file-powerpoint fas",
"fa-file-video far",
"fa-file-video fas",
"fa-file-word far",
"fa-file-word fas",
"fa-film fas",
"fa-filter fas",
"fa-fire fas",
"fa-fire-extinguisher fas",
"fa-firefox fab",
"fa-first-aid fas",
"fa-first-order fab",
"fa-firstdraft fab",
"fa-flag far",
"fa-flag fas",
"fa-flag-checkered fas",
"fa-flask fas",
"fa-flickr fab",
"fa-flipboard fab",
"fa-fly fab",
"fa-folder far",
"fa-folder fas",
"fa-folder-open far",
"fa-folder-open fas",
"fa-font fas",
"fa-font-awesome fab",
"fa-font-awesome-alt fab",
"fa-font-awesome-flag fab",
"fa-fonticons fab",
"fa-fonticons-fi fab",
"fa-football-ball fas",
"fa-fort-awesome fab",
"fa-fort-awesome-alt fab",
"fa-forumbee fab",
"fa-forward fas",
"fa-foursquare fab",
"fa-free-code-camp fab",
"fa-freebsd fab",
"fa-frown far",
"fa-frown fas",
"fa-futbol far",
"fa-futbol fas",
"fa-gamepad fas",
"fa-gavel fas",
"fa-gem far",
"fa-gem fas",
"fa-genderless fas",
"fa-get-pocket fab",
"fa-gg fab",
"fa-gg-circle fab",
"fa-gift fas",
"fa-git fab",
"fa-git-square fab",
"fa-github fab",
"fa-github-alt fab",
"fa-github-square fab",
"fa-gitkraken fab",
"fa-gitlab fab",
"fa-gitter fab",
"fa-glass-martini fas",
"fa-glide fab",
"fa-glide-g fab",
"fa-globe fas",
"fa-gofore fab",
"fa-golf-ball fas",
"fa-goodreads fab",
"fa-goodreads-g fab",
"fa-google fab",
"fa-google-drive fab",
"fa-google-play fab",
"fa-google-plus fab",
"fa-google-plus-g fab",
"fa-google-plus-square fab",
"fa-google-wallet fab",
"fa-graduation-cap fas",
"fa-gratipay fab",
"fa-grav fab",
"fa-gripfire fab",
"fa-grunt fab",
"fa-gulp fab",
"fa-h-square fas",
"fa-hacker-news fab",
"fa-hacker-news-square fab",
"fa-hand-holding fas",
"fa-hand-holding-heart fas",
"fa-hand-holding-usd fas",
"fa-hand-lizard far",
"fa-hand-lizard fas",
"fa-hand-paper far",
"fa-hand-paper fas",
"fa-hand-peace far",
"fa-hand-peace fas",
"fa-hand-point-down far",
"fa-hand-point-down fas",
"fa-hand-point-left far",
"fa-hand-point-left fas",
"fa-hand-point-right far",
"fa-hand-point-right fas",
"fa-hand-point-up far",
"fa-hand-point-up fas",
"fa-hand-pointer far",
"fa-hand-pointer fas",
"fa-hand-rock far",
"fa-hand-rock fas",
"fa-hand-scissors far",
"fa-hand-scissors fas",
"fa-hand-spock far",
"fa-hand-spock fas",
"fa-hands fas",
"fa-hands-helping fas",
"fa-handshake far",
"fa-handshake fas",
"fa-hashtag fas",
"fa-hdd far",
"fa-hdd fas",
"fa-heading fas",
"fa-headphones fas",
"fa-heart far",
"fa-heart fas",
"fa-heartbeat fas",
"fa-hips fab",
"fa-hire-a-helper fab",
"fa-history fas",
"fa-hockey-puck fas",
"fa-home fas",
"fa-hooli fab",
"fa-hospital far",
"fa-hospital fas",
"fa-hospital-alt fas",
"fa-hospital-symbol fas",
"fa-hotjar fab",
"fa-hourglass far",
"fa-hourglass fas",
"fa-hourglass-end fas",
"fa-hourglass-half fas",
"fa-hourglass-start fas",
"fa-houzz fab",
"fa-html5 fab",
"fa-hubspot fab",
"fa-i-cursor fas",
"fa-id-badge far",
"fa-id-badge fas",
"fa-id-card far",
"fa-id-card fas",
"fa-id-card-alt fas",
"fa-image far",
"fa-image fas",
"fa-images far",
"fa-images fas",
"fa-imdb fab",
"fa-inbox fas",
"fa-indent fas",
"fa-industry fas",
"fa-info fas",
"fa-info-circle fas",
"fa-instagram fab",
"fa-internet-explorer fab",
"fa-ioxhost fab",
"fa-italic fas",
"fa-itunes fab",
"fa-itunes-note fab",
"fa-jenkins fab",
"fa-joget fab",
"fa-joomla fab",
"fa-js fab",
"fa-js-square fab",
"fa-jsfiddle fab",
"fa-key fas",
"fa-keyboard far",
"fa-keyboard fas",
"fa-keycdn fab",
"fa-kickstarter fab",
"fa-kickstarter-k fab",
"fa-korvue fab",
"fa-language fas",
"fa-laptop fas",
"fa-laravel fab",
"fa-lastfm fab",
"fa-lastfm-square fab",
"fa-leaf fas",
"fa-leanpub fab",
"fa-lemon far",
"fa-lemon fas",
"fa-less fab",
"fa-level-down-alt fas",
"fa-level-up-alt fas",
"fa-life-ring far",
"fa-life-ring fas",
"fa-lightbulb far",
"fa-lightbulb fas",
"fa-line fab",
"fa-link fas",
"fa-linkedin fab",
"fa-linkedin-in fab",
"fa-linode fab",
"fa-linux fab",
"fa-lira-sign fas",
"fa-list fas",
"fa-list-alt far",
"fa-list-alt fas",
"fa-list-ol fas",
"fa-list-ul fas",
"fa-location-arrow fas",
"fa-lock fas",
"fa-lock-open fas",
"fa-long-arrow-alt-down fas",
"fa-long-arrow-alt-left fas",
"fa-long-arrow-alt-right fas",
"fa-long-arrow-alt-up fas",
"fa-low-vision fas",
"fa-lyft fab",
"fa-magento fab",
"fa-magic fas",
"fa-magnet fas",
"fa-male fas",
"fa-map far",
"fa-map fas",
"fa-map-marker fas",
"fa-map-marker-alt fas",
"fa-map-pin fas",
"fa-map-signs fas",
"fa-mars fas",
"fa-mars-double fas",
"fa-mars-stroke fas",
"fa-mars-stroke-h fas",
"fa-mars-stroke-v fas",
"fa-maxcdn fab",
"fa-medapps fab",
"fa-medium fab",
"fa-medium-m fab",
"fa-medkit fas",
"fa-medrt fab",
"fa-meetup fab",
"fa-meh far",
"fa-meh fas",
"fa-mercury fas",
"fa-microchip fas",
"fa-microphone fas",
"fa-microphone-slash fas",
"fa-microsoft fab",
"fa-minus fas",
"fa-minus-circle fas",
"fa-minus-square far",
"fa-minus-square fas",
"fa-mix fab",
"fa-mixcloud fab",
"fa-mizuni fab",
"fa-mobile fas",
"fa-mobile-alt fas",
"fa-modx fab",
"fa-monero fab",
"fa-money-bill-alt far",
"fa-money-bill-alt fas",
"fa-moon far",
"fa-moon fas",
"fa-motorcycle fas",
"fa-mouse-pointer fas",
"fa-music fas",
"fa-napster fab",
"fa-neuter fas",
"fa-newspaper far",
"fa-newspaper fas",
"fa-nintendo-switch fab",
"fa-node fab",
"fa-node-js fab",
"fa-notes-medical fas",
"fa-npm fab",
"fa-ns8 fab",
"fa-nutritionix fab",
"fa-object-group far",
"fa-object-group fas",
"fa-object-ungroup far",
"fa-object-ungroup fas",
"fa-odnoklassniki fab",
"fa-odnoklassniki-square fab",
"fa-opencart fab",
"fa-openid fab",
"fa-opera fab",
"fa-optin-monster fab",
"fa-osi fab",
"fa-outdent fas",
"fa-page4 fab",
"fa-pagelines fab",
"fa-paint-brush fas",
"fa-palfed fab",
"fa-pallet fas",
"fa-paper-plane far",
"fa-paper-plane fas",
"fa-paperclip fas",
"fa-parachute-box fas",
"fa-paragraph fas",
"fa-paste fas",
"fa-patreon fab",
"fa-pause fas",
"fa-pause-circle far",
"fa-pause-circle fas",
"fa-paw fas",
"fa-paypal fab",
"fa-pen-square fas",
"fa-pencil-alt fas",
"fa-people-carry fas",
"fa-percent fas",
"fa-periscope fab",
"fa-phabricator fab",
"fa-phoenix-framework fab",
"fa-phone fas",
"fa-phone-slash fas",
"fa-phone-square fas",
"fa-phone-volume fas",
"fa-php fab",
"fa-pied-piper fab",
"fa-pied-piper-alt fab",
"fa-pied-piper-pp fab",
"fa-piggy-bank fas",
"fa-pills fas",
"fa-pinterest fab",
"fa-pinterest-p fab",
"fa-pinterest-square fab",
"fa-plane fas",
"fa-play fas",
"fa-play-circle far",
"fa-play-circle fas",
"fa-playstation fab",
"fa-plug fas",
"fa-plus fas",
"fa-plus-circle fas",
"fa-plus-square far",
"fa-plus-square fas",
"fa-podcast fas",
"fa-poo fas",
"fa-pound-sign fas",
"fa-power-off fas",
"fa-prescription-bottle fas",
"fa-prescription-bottle-alt fas",
"fa-print fas",
"fa-procedures fas",
"fa-product-hunt fab",
"fa-pushed fab",
"fa-puzzle-piece fas",
"fa-python fab",
"fa-qq fab",
"fa-qrcode fas",
"fa-question fas",
"fa-question-circle far",
"fa-question-circle fas",
"fa-quidditch fas",
"fa-quinscape fab",
"fa-quora fab",
"fa-quote-left fas",
"fa-quote-right fas",
"fa-random fas",
"fa-ravelry fab",
"fa-react fab",
"fa-readme fab",
"fa-rebel fab",
"fa-recycle fas",
"fa-red-river fab",
"fa-reddit fab",
"fa-reddit-alien fab",
"fa-reddit-square fab",
"fa-redo fas",
"fa-redo-alt fas",
"fa-registered far",
"fa-registered fas",
"fa-rendact fab",
"fa-renren fab",
"fa-reply fas",
"fa-reply-all fas",
"fa-replyd fab",
"fa-resolving fab",
"fa-retweet fas",
"fa-ribbon fas",
"fa-road fas",
"fa-rocket fas",
"fa-rocketchat fab",
"fa-rockrms fab",
"fa-rss fas",
"fa-rss-square fas",
"fa-ruble-sign fas",
"fa-rupee-sign fas",
"fa-safari fab",
"fa-sass fab",
"fa-save far",
"fa-save fas",
"fa-schlix fab",
"fa-scribd fab",
"fa-search fas",
"fa-search-minus fas",
"fa-search-plus fas",
"fa-searchengin fab",
"fa-seedling fas",
"fa-sellcast fab",
"fa-sellsy fab",
"fa-server fas",
"fa-servicestack fab",
"fa-share fas",
"fa-share-alt fas",
"fa-share-alt-square fas",
"fa-share-square far",
"fa-share-square fas",
"fa-shekel-sign fas",
"fa-shield-alt fas",
"fa-ship fas",
"fa-shipping-fast fas",
"fa-shirtsinbulk fab",
"fa-shopping-bag fas",
"fa-shopping-basket fas",
"fa-shopping-cart fas",
"fa-shower fas",
"fa-sign fas",
"fa-sign-in-alt fas",
"fa-sign-language fas",
"fa-sign-out-alt fas",
"fa-signal fas",
"fa-simplybuilt fab",
"fa-sistrix fab",
"fa-sitemap fas",
"fa-skyatlas fab",
"fa-skype fab",
"fa-slack fab",
"fa-slack-hash fab",
"fa-sliders-h fas",
"fa-slideshare fab",
"fa-smile far",
"fa-smile fas",
"fa-smoking fas",
"fa-snapchat fab",
"fa-snapchat-ghost fab",
"fa-snapchat-square fab",
"fa-snowflake far",
"fa-snowflake fas",
"fa-sort fas",
"fa-sort-alpha-down fas",
"fa-sort-alpha-up fas",
"fa-sort-amount-down fas",
"fa-sort-amount-up fas",
"fa-sort-down fas",
"fa-sort-numeric-down fas",
"fa-sort-numeric-up fas",
"fa-sort-up fas",
"fa-soundcloud fab",
"fa-space-shuttle fas",
"fa-speakap fab",
"fa-spinner fas",
"fa-spotify fab",
"fa-square far",
"fa-square fas",
"fa-square-full fas",
"fa-stack-exchange fab",
"fa-stack-overflow fab",
"fa-star far",
"fa-star fas",
"fa-star-half far",
"fa-star-half fas",
"fa-staylinked fab",
"fa-steam fab",
"fa-steam-square fab",
"fa-steam-symbol fab",
"fa-step-backward fas",
"fa-step-forward fas",
"fa-stethoscope fas",
"fa-sticker-mule fab",
"fa-sticky-note far",
"fa-sticky-note fas",
"fa-stop fas",
"fa-stop-circle far",
"fa-stop-circle fas",
"fa-stopwatch fas",
"fa-strava fab",
"fa-street-view fas",
"fa-strikethrough fas",
"fa-stripe fab",
"fa-stripe-s fab",
"fa-studiovinari fab",
"fa-stumbleupon fab",
"fa-stumbleupon-circle fab",
"fa-subscript fas",
"fa-subway fas",
"fa-suitcase fas",
"fa-sun far",
"fa-sun fas",
"fa-superpowers fab",
"fa-superscript fas",
"fa-supple fab",
"fa-sync fas",
"fa-sync-alt fas",
"fa-syringe fas",
"fa-table fas",
"fa-table-tennis fas",
"fa-tablet fas",
"fa-tablet-alt fas",
"fa-tablets fas",
"fa-tachometer-alt fas",
"fa-tag fas",
"fa-tags fas",
"fa-tape fas",
"fa-tasks fas",
"fa-taxi fas",
"fa-telegram fab",
"fa-telegram-plane fab",
"fa-tencent-weibo fab",
"fa-terminal fas",
"fa-text-height fas",
"fa-text-width fas",
"fa-th fas",
"fa-th-large fas",
"fa-th-list fas",
"fa-themeisle fab",
"fa-thermometer fas",
"fa-thermometer-empty fas",
"fa-thermometer-full fas",
"fa-thermometer-half fas",
"fa-thermometer-quarter fas",
"fa-thermometer-three-quarters fas",
"fa-thumbs-down far",
"fa-thumbs-down fas",
"fa-thumbs-up far",
"fa-thumbs-up fas",
"fa-thumbtack fas",
"fa-ticket-alt fas",
"fa-times fas",
"fa-times-circle far",
"fa-times-circle fas",
"fa-tint fas",
"fa-toggle-off fas",
"fa-toggle-on fas",
"fa-trademark fas",
"fa-train fas",
"fa-transgender fas",
"fa-transgender-alt fas",
"fa-trash fas",
"fa-trash-alt far",
"fa-trash-alt fas",
"fa-tree fas",
"fa-trello fab",
"fa-tripadvisor fab",
"fa-trophy fas",
"fa-truck fas",
"fa-truck-loading fas",
"fa-truck-moving fas",
"fa-tty fas",
"fa-tumblr fab",
"fa-tumblr-square fab",
"fa-tv fas",
"fa-twitch fab",
"fa-twitter fab",
"fa-twitter-square fab",
"fa-typo3 fab",
"fa-uber fab",
"fa-uikit fab",
"fa-umbrella fas",
"fa-underline fas",
"fa-undo fas",
"fa-undo-alt fas",
"fa-uniregistry fab",
"fa-universal-access fas",
"fa-university fas",
"fa-unlink fas",
"fa-unlock fas",
"fa-unlock-alt fas",
"fa-untappd fab",
"fa-upload fas",
"fa-usb fab",
"fa-user far",
"fa-user fas",
"fa-user-circle far",
"fa-user-circle fas",
"fa-user-md fas",
"fa-user-plus fas",
"fa-user-secret fas",
"fa-user-times fas",
"fa-users fas",
"fa-ussunnah fab",
"fa-utensil-spoon fas",
"fa-utensils fas",
"fa-vaadin fab",
"fa-venus fas",
"fa-venus-double fas",
"fa-venus-mars fas",
"fa-viacoin fab",
"fa-viadeo fab",
"fa-viadeo-square fab",
"fa-vial fas",
"fa-vials fas",
"fa-viber fab",
"fa-video fas",
"fa-video-slash fas",
"fa-vimeo fab",
"fa-vimeo-square fab",
"fa-vimeo-v fab",
"fa-vine fab",
"fa-vk fab",
"fa-vnv fab",
"fa-volleyball-ball fas",
"fa-volume-down fas",
"fa-volume-off fas",
"fa-volume-up fas",
"fa-vuejs fab",
"fa-warehouse fas",
"fa-weibo fab",
"fa-weight fas",
"fa-weixin fab",
"fa-whatsapp fab",
"fa-whatsapp-square fab",
"fa-wheelchair fas",
"fa-whmcs fab",
"fa-wifi fas",
"fa-wikipedia-w fab",
"fa-window-close far",
"fa-window-close fas",
"fa-window-maximize far",
"fa-window-maximize fas",
"fa-window-minimize far",
"fa-window-minimize fas",
"fa-window-restore far",
"fa-window-restore fas",
"fa-windows fab",
"fa-wine-glass fas",
"fa-won-sign fas",
"fa-wordpress fab",
"fa-wordpress-simple fab",
"fa-wpbeginner fab",
"fa-wpexplorer fab",
"fa-wpforms fab",
"fa-wrench fas",
"fa-x-ray fas",
"fa-xbox fab",
"fa-xing fab",
"fa-xing-square fab",
"fa-y-combinator fab",
"fa-yahoo fab",
"fa-yandex fab",
"fa-yandex-international fab",
"fa-yelp fab",
"fa-yen-sign fas",
"fa-yoast fab",
"fa-youtube fab",
"fa-youtube-square fab"
		];

	for(i in icons)
	{
		var css_selector = "." + icons[i].replace(" ", ".");
		html += '<a class="fa-fw fa-1x ' + icons[i] + '" href="" title="' + icons[i] + '" onclick="icon=\'' + icons[i] + '\'; jQuery(\'.icon-list .far, .icon-list .fas, .icon-list .fab, .icon-list .fal\').removeClass(\'selected\'); jQuery(\'.icon-list ' + css_selector + '\').addClass(\'selected\'); return false;"></a>';
	}

	html = '<div class="icon-list">' + html + '</div>';

	return {
		title: 'Insert Font Awesome Icon (v5.0.9 FREE)',
		resizable: CKEDITOR.DIALOG_RESIZE_NONE,
        width: jQuery(window).width() * 0.9,
        minWidth: 600,
        height: jQuery(window).height() * 0.9,
        maxHeight: jQuery(window).height() * 0.9,
		contents:
		[
	        {
	            id: 'tab-info',
	            label: '',
	            title: '',
	            elements:
	            [
	            	{
	            		type: 'hbox',
						padding: 5,
						children:
						[
			            	{
								type: 'text',
								id: 'search',
								label: 'Search:',
								style: 'width: 150px;',
								onKeyUp: function(api)
								{
									var q = this.getValue();

									if(q == "")
									{
										jQuery(".icon-list .far, .icon-list .fas, .icon-list .fab, .icon-list .fal").removeClass("hidden");
									}
									else if(q != "")
									{
										jQuery(".icon-list .far, .icon-list .fas, .icon-list .fab, .icon-list .fal").addClass("hidden");
										jQuery(".icon-list .far[class*=" + q + "], .icon-list .fas[class*=" + q + "], .icon-list .fab[class*=" + q + "], .icon-list .fal[class*=" + q + "]").removeClass("hidden");
									}
								}
							},
							{
							    type: 'checkbox',
							    id: 'fixedwidth',
							    default: 'checked',
							    label: 'Fixed Width',
							    onClick: function()
							    {
							    	if(this.getValue() == true)
							    	{
							    		jQuery(".icon-list .far, .icon-list .fas, .icon-list .fab, .icon-list .fal").addClass("fa-fw");
							    	}
							    	else
							    	{
							    		jQuery(".icon-list .far, .icon-list .fas, .icon-list .fab, .icon-list .fal").removeClass("fa-fw");
							    	}
							    },
								setup: function(element)
								{
									if(element.hasClass("fa-fw"))
				                    {
				                    	this.setValue(1);
				                    }
				                    else
				                   	{
				                    	this.setValue(0);
				                    }

				                	if(this.getValue() == true)
							    	{
							    		jQuery(".icon-list .far, .icon-list .fas, .icon-list .fab, .icon-list .fal").addClass("fa-fw");
							    	}
							    	else
							    	{
							    		jQuery(".icon-list .far, .icon-list .fas, .icon-list .fab, .icon-list .fal").removeClass("fa-fw");
							    	}
							    }
							},
							{
							    type: 'checkbox',
							    id: 'spin',
							    label: 'Spin',
							    onClick: function()
							    {
							    	if(this.getValue() == true)
							    	{
							    		jQuery(".icon-list .far, .icon-list .fas, .icon-list .fab, .icon-list .fal").addClass("fa-spin");
							    	}
							    	else
							    	{
							    		jQuery(".icon-list .far, .icon-list .fas, .icon-list .fab, .icon-list .fal").removeClass("fa-spin");
							    	}
							    },
								setup: function(element)
								{
									if(element.hasClass("fa-spin"))
				                    {
				                    	this.setValue(1);
				                    }
				                    else
				                   	{
				                    	this.setValue(0);
				                    }

				                	if(this.getValue() == true)
							    	{
							    		jQuery(".icon-list .far, .icon-list .fas, .icon-list .fab, .icon-list .fal").addClass("fa-spin");
							    	}
							    	else
							    	{
							    		jQuery(".icon-list .far, .icon-list .fas, .icon-list .fab, .icon-list .fal").removeClass("fa-spin");
							    	}
							    }
							},
							{
							    type: 'checkbox',
							    id: 'border',
							    label: 'Border',
							    onClick: function()
							    {
							    	if(this.getValue() == true)
							    	{
							    		jQuery(".icon-list .far, .icon-list .fas, .icon-list .fab, .icon-list .fal").addClass("fa-border");
							    	}
							    	else
							    	{
							    		jQuery(".icon-list .far, .icon-list .fas, .icon-list .fab, .icon-list .fal").removeClass("fa-border");
							    	}
							    },
								setup: function(element)
								{
									if(element.hasClass("fa-border"))
				                    {
				                    	this.setValue(1);
				                    }
				                    else
				                   	{
				                    	this.setValue(0);
				                    }

				                	if(this.getValue() == true)
							    	{
							    		jQuery(".icon-list .far, .icon-list .fas, .icon-list .fab, .icon-list .fal").addClass("fa-border");
							    	}
							    	else
							    	{
							    		jQuery(".icon-list .far, .icon-list .fas, .icon-list .fab, .icon-list .fal").removeClass("fa-border");
							    	}
							    }
							},
						]
					},
					{
						type: 'hbox',
						padding: 5,
						children:
						[
							{
								type: 'select',
								id: 'rotation',
								style: 'width: 100px;',
								label: 'Rotation:',
								items: [["normal"], ["rotate-90"], ["rotate-180"], ["rotate-270"], ["flip-horizontal"], ["flip-vertical"]],
								onChange: function(api)
								{
									jQuery(".icon-list .far, .icon-list .fas, .icon-list .fab, .icon-list .fal").removeClass("fa-rotate-90").removeClass("fa-rotate-180").removeClass("fa-rotate-270").removeClass("fa-flip-horizontal").removeClass("fa-flip-vertical");

									if(this.getValue() != "normal")
									{
										jQuery(".icon-list .far, .icon-list .fas, .icon-list .fab, .icon-list .fal").addClass("fa-" + this.getValue());
									}
								},
								setup: function(element)
								{
									if(element.hasClass("fa-rotate-90"))
				                    {
				                    	this.setValue("rotate-90");
				                    }
				                    else if(element.hasClass("fa-rotate-180"))
				                    {
				                    	this.setValue("rotate-180");
				                    }
				                    else if(element.hasClass("fa-rotate-270"))
				                    {
				                    	this.setValue("rotate-270");
				                    }
				                    else if(element.hasClass("fa-flip-horizontal"))
				                    {
				                    	this.setValue("flip-horizontal");
				                    }
				                    else if(element.hasClass("fa-flip-vertical"))
				                    {
				                    	this.setValue("flip-vertical");
				                    }
				                    else
				                    {
				                    	this.setValue("normal");
				                    }

				                	jQuery(".icon-list .far, .icon-list .fas, .icon-list .fab, .icon-list .fal").removeClass("fa-rotate-90").removeClass("fa-rotate-180").removeClass("fa-rotate-270").removeClass("fa-flip-horizontal").removeClass("fa-flip-vertical");

									if(this.getValue() != "normal")
									{
										jQuery(".icon-list .far, .icon-list .fas, .icon-list .fab, .icon-list .fal").addClass("fa-" + this.getValue());
									}
								}
							},
							{
								type: 'select',
								id: 'font_size',
								style: 'width: 100px;',
								label: 'Font Size:',
								items: [["1x"], ["lg"], ["2x"], ["3x"], ["4x"], ["5x"]],
								onChange: function(api)
								{
									jQuery(".icon-list .far, .icon-list .fas, .icon-list .fab, .icon-list .fal").removeClass("fa-1x").removeClass("fa-lg").removeClass("fa-2x").removeClass("fa-3x").removeClass("fa-4x").removeClass("fa-5x").addClass("fa-" + this.getValue());
								},
								setup: function(element)
								{
									if(element.hasClass("fa-1x"))
				                    {
				                    	this.setValue("1x");
				                    }
				                    else if(element.hasClass("fa-lg"))
				                    {
				                    	this.setValue("lg");
				                    }
				                    else if(element.hasClass("fa-2x"))
				                    {
				                    	this.setValue("2x");
				                    }
				                    else if(element.hasClass("fa-3x"))
				                    {
				                    	this.setValue("3x");
				                    }
				                    else if(element.hasClass("fa-4x"))
				                    {
				                    	this.setValue("4x");
				                    }
				                    else if(element.hasClass("fa-5x"))
				                    {
				                    	this.setValue("5x");
				                    }
				                    else
				                    {
				                    	this.setValue("1x");
				                    }
				                	jQuery(".icon-list .far, .icon-list .fas, .icon-list .fab, .icon-list .fal").removeClass("fa-1x").removeClass("fa-lg").removeClass("fa-2x").removeClass("fa-3x").removeClass("fa-4x").removeClass("fa-5x").addClass("fa-" + this.getValue());
								}
							},
							{
								type: 'text',
								id: 'colour',
								label: 'Override Template Colour:',
								style: 'width: 150px;',
								onKeyUp: function(api)
								{
									jQuery(".icon-list .far, .icon-list .fas, .icon-list .fab, .icon-list .fal").css({color: this.getValue()});
								},
								setup: function(element)
								{
									this.setValue(element.getStyle("color"));
				                	jQuery(".icon-list .far, .icon-list .fas, .icon-list .fab, .icon-list .fal").css({color: this.getValue()});
								}
							}
						]
					},
					{
						type: 'vbox',
						padding: 5,
						children:
						[
							{
			                    type: 'html',
			                    html: html,
								setup: function(element)
								{
									// Check each icon in our list to see if this element has it.
									// If it does, click it which triggers its selection.
									for(i=0; i<icons.length; i++)
									{
										if(element.hasClass(icons[i]))
										{
											var css_selector = "." + icons[i].replace(" ", ".");
											jQuery(css_selector).click();
										}
									}
								}
			                }
			            ]
			        }
	            ]
	        }
        ],
        onShow: function()
        {
            var selection = editor.getSelection();
            var element = selection.getStartElement();

            if(element != null && (element.getName() == 'em' || element.getName() == 'i'))
            {
            	element = element.getAscendant({ em:1, i:1}, true);
            	this.inertMode = false;
            }
            else
            {
                element = editor.document.createElement('em');
                this.insertMode = true;
            }

            this.element = element;
            this.setupContent( this.element );
        },
		onOk: function()
		{
			if(icon == null)
			{
				error("No Icon Selected", "You need to select an icon.", true, null);
				return false;
			}

			var font_size 	= this.getValueOf('tab-info', 'font_size');
			var rotation 	= this.getValueOf('tab-info', 'rotation');
			var fixedwidth 	= this.getValueOf('tab-info', 'fixedwidth');
			var spin 		= this.getValueOf('tab-info', 'spin');
			var border 		= this.getValueOf('tab-info', 'border');
			var colour 		= this.getValueOf('tab-info', 'colour');
			var classname 	= icon;
			var styles 		= "";

			if(font_size != "" && font_size != "1x")
			{
				classname += " fa-" + font_size;
			}
			if(rotation != "" && rotation != "normal")
			{
				classname += " fa-" + rotation;
			}
			if(fixedwidth == true)
			{
				classname += " fa-fw";
			}
			if(spin == true)
			{
				classname += " fa-spin";
			}
			if(border == true)
			{
				classname += " fa-border";
			}
			if(colour != "")
			{
				styles = 'color: ' + colour;
			}

			var fa = this.element;
            fa.setAttribute("class", classname);
            fa.setAttribute("aria-hidden", "true");

            if(styles)
            {
            	fa.setAttribute("style", styles);
            }
            this.commitContent(fa);

            if(this.insertMode)
            {
               	editor.insertElement(fa);
            }
		}
	};
});
