name : view.html.php
<?php
/*
 * @package		Joomla.Framework
 * @copyright	Copyright (C) Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 * @component Phoca Component
 * @copyright Copyright (C) Jan Pavelka www.phoca.cz
 * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License version 2 or later;
 */



defined( '_JEXEC' ) or die();
use Joomla\CMS\MVC\View\HtmlView;
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Object\CMSObject;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\Filesystem\File;
use Joomla\CMS\Client\ClientHelper;
use Joomla\CMS\Session\Session;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Uri\Uri;
jimport( 'joomla.html.pane' );
jimport( 'joomla.client.helper' );
jimport( 'joomla.application.component.view' );
phocagalleryimport('phocagallery.file.fileupload');
phocagalleryimport( 'phocagallery.file.fileuploadmultiple' );
phocagalleryimport( 'phocagallery.file.fileuploadsingle' );
phocagalleryimport( 'phocagallery.file.fileuploadjava' );
phocagalleryimport('phocagallery.rate.ratecategory');
phocagalleryimport('phocagallery.rate.rateimage');
phocagalleryimport('phocagallery.comment.comment');
phocagalleryimport('phocagallery.comment.commentcategory');
phocagalleryimport('phocagallery.comment.commentimage');
phocagalleryimport('phocagallery.picasa.picasa');
phocagalleryimport( 'phocagallery.facebook.fbsystem');

class PhocaGalleryViewCategory extends HtmlView
{
	public 		$t;
	protected 	$params;

	function display($tpl = null) {

		$app = Factory::getApplication();
		// Don't load all the framework if nonsense
		$id          = $app->input->get('id', 0, 'int');
		$this->tagId = $app->input->get('tagid', 0, 'int');


		if ($id < 1 && $this->tagId < 1) {

			throw new Exception(Text::_("COM_PHOCAGALLERY_CATEGORY_IS_UNPUBLISHED"), 404);

			exit;
		}

		$document     = Factory::getDocument();
		$uri          = Uri::getInstance();
		$menus        = $app->getMenu();
		$menu         = $menus->getActive();
		$this->params = $app->getParams();


		$this->t['display_feed'] = $this->params->get('display_feed', 1);


		$this->t['user']   = Factory::getUser();
		$this->t['action'] = $uri->toString();
		$this->t['path']   = PhocaGalleryPath::getPath();
		$limitStart        = $app->input->get('limitstart', 0, 'int');

		$this->t['tab']       = $app->input->get('tab', 0, 'int');
		$this->t['pl']        = 'index.php?option=com_users&view=login&return=' . base64_encode($uri->toString());
		$this->t['icon_path'] = 'media/com_phocagallery/images/';
		$this->t['plcat']     = 'index.php?option=com_phocagallery&view=category';
		$this->itemId         = $app->input->get('Itemid', 0, 'int');
		$this->t['itemid']    = $this->itemId;
		$neededAccessLevels   = PhocaGalleryAccess::getNeededAccessLevels();
		$access               = PhocaGalleryAccess::isAccess($this->t['user']->getAuthorisedViewLevels(), $neededAccessLevels);

		// CSS
		PhocaGalleryRenderFront::renderAllCSS();
		PhocaGalleryRenderFront::renderMainJs();

		// LIBRARY
		$library 							= PhocaGalleryLibrary::getLibrary();
		$libraries['pg-group-shadowbox']	= $library->getLibrary('pg-group-shadowbox');
		$libraries['pg-group-highslide']	= $library->getLibrary('pg-group-highslide');
		$libraries['pg-group-jak']			= $library->getLibrary('pg-group-jak');
		$libraries['pg-group-photoswipe']	= $library->getLibrary('pg-group-photoswipe');


		// PARAMS
		$this->t['image_categories_size_cv'] = $this->params->get( 'image_categories_size_cv', 1 );
		$this->t['display_cat_name_title'] 	= $this->params->get( 'display_cat_name_title', 1 );
		$this->t['display_categories_cv'] 	= $this->params->get( 'display_categories_cv', 0 );
		$this->t['display_categories_sub'] 	= $this->params->get( 'display_categories_sub', 0 );
		$this->t['switch_image']				= $this->params->get( 'switch_image', 0 );
		$this->t['switch_height'] 			= $this->params->get( 'switch_height', 480 );
		$this->t['switch_width'] 			= $this->params->get( 'switch_width', 640);
		$this->t['switch_fixed_size'] 		= $this->params->get( 'switch_fixed_size', 0);
		$this->t['show_page_heading'] 		= $this->params->get( 'show_page_heading', 1 );
		$this->t['phocagallery_width']		= $this->params->get( 'phocagallery_width', '');
		$this->t['phocagallery_center']		= $this->params->get( 'phocagallery_center', 0);
		$this->t['imagewidth']				= $this->params->get( 'medium_image_width', 256 );
		$this->t['imageheight'] 				= $this->params->get( 'medium_image_height', 192 );
		$this->t['medium_image_width']				= $this->params->get( 'medium_image_width', 256 );
		$this->t['medium_image_height'] 				= $this->params->get( 'medium_image_height', 192 );
		$this->t['picasa_correct_width_m']	= (int)$this->params->get( 'medium_image_width', 256 );
		$this->t['picasa_correct_height_m']	= (int)$this->params->get( 'medium_image_height', 192 );
		$this->t['picasa_correct_width_s']	= (int)$this->params->get( 'small_image_width', 128 );
		$this->t['picasa_correct_height_s']	= (int)$this->params->get( 'small_image_height', 96 );
		$this->t['picasa_correct_width_l']	= (int)$this->params->get( 'large_image_width', 640 );
		$this->t['picasa_correct_height_l']	= (int)$this->params->get( 'large_image_height', 480 );
		$this->t['category_box_space'] 		= $this->params->get( 'category_box_space', 0 );
		$this->t['detail_window']			= $this->params->get( 'detail_window', 14 );
		$this->t['display_name']				= $this->params->get( 'display_name', 1);
		$this->t['display_rating']			= $this->params->get( 'display_rating', 0 );
		$this->t['display_rating_img']		= $this->params->get( 'display_rating_img', 0 );
		$this->t['display_comment']			= $this->params->get( 'display_comment', 0 );
		$this->t['display_comment_img']		= $this->params->get( 'display_comment_img', 0 );
		$this->t['display_subcategory']		= $this->params->get( 'display_subcategory', 1 );
		$this->t['display_icon_detail'] 		= $this->params->get( 'display_icon_detail', 1 );
		$this->t['display_icon_download'] 	= $this->params->get( 'display_icon_download', 2 );
		$this->t['display_icon_pc']			= $this->params->get( 'display_icon_pc', 0 );
		$this->t['display_icon_vm']			= $this->params->get( 'display_icon_vm', 0 );
		$this->t['display_img_desc_box']		= $this->params->get( 'display_img_desc_box', 0 );
		//$this->t['diff_thumb_height']		= $this->params->get( 'diff_thumb_height', 0 );
		$this->t['overlib_attributes']		= $this->params->get( 'overlib_attributes', "BELOW, RIGHT, CSSCLASS, TEXTFONTCLASS, 'fontPhocaClass', FGCLASS, 'fgPhocaClass', BGCLASS, 'bgPhocaClass', CAPTIONFONTCLASS,'capfontPhocaClass', CLOSEFONTCLASS, 'capfontclosePhocaClass'");
		$this->t['responsive']				= $this->params->get( 'responsive', 0 );
		$this->t['bootstrap_icons']			= $this->params->get( 'bootstrap_icons', 0 );
		$this->t['equal_heights']			= $this->params->get( 'equal_heights', 0 );
		$this->t['photoswipe_display_caption']= $this->params->get( 'photoswipe_display_caption', 1 );
		$this->t['masonry_center']			= $this->params->get( 'masonry_center', 0 );
		$this->t['display_masonry']			= $this->params->get( 'display_masonry', 0 );
		$this->t['map_type']				= $this->params->get( 'map_type', 2 );

		$this->t['display_new']   			= $this->params->get('display_new', 0);
        $this->t['display_hot']    			= $this->params->get('display_hot', 0);



		// Switch image JS
		$this->t['basic_image']	= '';
		if ($this->t['switch_image'] == 1) {
			$this->t['wait_image']	= $this->t['path']->image_rel_front_full . 'icon-switch.gif';
			$this->t['basic_image']	= $this->t['path']->image_rel_front_full . 'phoca_thumb_l_no_image.png';
			$document->addCustomTag(PhocaGalleryRenderFront::switchImage($this->t['wait_image']));
			$basic_imageSelected = 0; // we have not selected the basic image yet
		}






		$display_cat_name_breadcrumbs 			= $this->params->get( 'display_cat_name_breadcrumbs', 1 );


		$this->t['popup_width'] 							= $this->params->get( 'front_modal_box_width', 680 );
		$this->t['popup_height']							= $this->params->get( 'front_modal_box_height', 560 );


		$this->t['max_upload_char']			= $this->params->get( 'max_upload_char', 1000 );
		$this->t['max_comment_char']			= $this->params->get( 'max_comment_char', 1000 );
		$this->t['max_create_cat_char']			= $this->params->get( 'max_create_cat_char', 1000 );
		//$this->t['commentwidth']				= $this->params->get( 'comment_width', 500 );

		$this->t['displaycategorygeotagging']= $this->params->get( 'display_category_geotagging', 0 );
		$this->t['displaycategorystatistics']= $this->params->get( 'display_category_statistics', 0 );
		// Used for Highslide JS (only image)
		$this->t['displaydescriptiondetail']	= $this->params->get( 'display_description_detail', 0 );
		$this->t['display_title_description']= $this->params->get( 'display_title_description', 0 );

		//$this->t['charlengthname'] 			= $this->params->get( 'char_length_name', 15);
		//$this->t['char_cat_length_name'] 	= $this->params->get( 'char_cat_length_name', 9);
		$this->t['display_icon_geo']			= $this->params->get( 'display_icon_geotagging', 0 );// Check the category
		$this->t['display_icon_geoimage']	= $this->params->get( 'display_icon_geotagging', 0 );// Check the image
		$this->t['display_camera_info']		= $this->params->get( 'display_camera_info', 0 );



		// PARAMS - Upload
		$this->t['multipleuploadchunk']		= $this->params->get( 'multiple_upload_chunk', 0 );
		$this->t['displaytitleupload']		= $this->params->get( 'display_title_upload', 0 );
		$this->t['displaydescupload'] 		= $this->params->get( 'display_description_upload', 0 );
		$this->t['enablejava'] 				= $this->params->get( 'enable_java', -1 );
		$this->t['enablemultiple'] 			= $this->params->get( 'enable_multiple', 0 );
		$this->t['multipleuploadmethod'] 	= $this->params->get( 'multiple_upload_method', 4 );
		$this->t['multipleresizewidth'] 		= $this->params->get( 'multiple_resize_width', -1 );
		$this->t['multipleresizeheight'] 	= $this->params->get( 'multiple_resize_height', -1 );
		$this->t['javaboxwidth'] 			= $this->params->get( 'java_box_width', 480 );
		$this->t['javaboxheight'] 			= $this->params->get( 'java_box_height', 480 );
		$this->t['large_image_width']		= $this->params->get( 'large_image_width', 640 );
		$this->t['large_image_height']		= $this->params->get( 'large_image_height', 640 );
		$this->t['uploadmaxsize'] 			= $this->params->get( 'upload_maxsize', 3145728 );
		$this->t['uploadmaxsizeread'] 		= PhocaGalleryFile::getFileSizeReadable($this->t['uploadmaxsize']);
		$this->t['uploadmaxreswidth'] 		= $this->params->get( 'upload_maxres_width', 3072 );
		$this->t['uploadmaxresheight'] 		= $this->params->get( 'upload_maxres_height', 2304 );

		$display_description_detail 			= $this->params->get( 'display_description_detail', 0 );
		$description_detail_height 				= $this->params->get( 'description_detail_height', 16 );

		$detail_buttons 						= $this->params->get( 'detail_buttons', 1 );
		//$modal_box_overlay_color 				= $this->params->get( 'modal_box_overlay_color', '#000000' );
		$modal_box_overlay_opacity 				= $this->params->get( 'modal_box_overlay_opacity', 0.3 );
		//$modal_box_border_color 				= $this->params->get( 'modal_box_border_color', '#6b6b6b' );
		//$modal_box_border_width 				= $this->params->get( 'modal_box_border_width', '2' );
		$this->t['enablecooliris']			= $this->params->get( 'enable_cooliris', 0 );
		$highslide_class						= $this->params->get( 'highslide_class', 'rounded-white');
		$highslide_opacity						= $this->params->get( 'highslide_opacity', 0);
		$highslide_outline_type					= $this->params->get( 'highslide_outline_type', 'rounded-white');
		$highslide_fullimg						= $this->params->get( 'highslide_fullimg', 0);
		$highslide_slideshow					= $this->params->get( 'highslide_slideshow', 1);
		$highslide_close_button					= $this->params->get( 'highslide_close_button', 0);
		$this->t['jakslideshowdelay']		= $this->params->get( 'jak_slideshow_delay', 5);
		$this->t['jakorientation']			= $this->params->get( 'jak_orientation', 'none');
		$this->t['jakdescription']			= $this->params->get( 'jak_description', 1);
		$this->t['jakdescriptionheight']		= $this->params->get( 'jak_description_height', 0);
		$this->t['categoryimageordering']	= $this->params->get( 'category_image_ordering', 10 );
		$this->t['externalcommentsystem'] 	= $this->params->get( 'external_comment_system', 0 );



		$display_subcat_page_cv					= $this->params->get( 'display_subcat_page_cv', 0 );
		$this->t['display_back_button_cv'] 				= $this->params->get( 'display_back_button_cv', 1 );
		$this->t['display_categories_back_button_cv'] 		= $this->params->get( 'display_categories_back_button_cv', 1 );


		$medium_image_width_cv 					= (int)$this->params->get( 'medium_image_width', 256 ) + 18;
		$medium_image_height_cv 				= (int)$this->params->get( 'medium_image_height', 192 ) + 18;
		$small_image_width_cv 					= (int)$this->params->get( 'small_image_width', 128 ) + 18;
		$small_image_height_cv 					= (int)$this->params->get( 'small_image_height', 96 ) + 18;
		$this->t['imagetypecv']				= $this->t['image_categories_size_cv'];
		$this->t['overlibimagerate']			= (int)$this->params->get( 'overlib_image_rate', '' );

		$this->t['gallerymetakey'] 			= $this->params->get( 'gallery_metakey', '' );
		$this->t['gallerymetadesc'] 			= $this->params->get( 'gallery_metadesc', '' );
		$this->t['altvalue']		 			= $this->params->get( 'alt_value', 1 );
		$paramsFb = []; //PhocaGalleryFbSystem::getCommentsParams($this->params->get( 'fb_comment_user_id', ''));// Facebook
		$this->t['fb_comment_app_id']		= isset($paramsFb['fb_comment_app_id']) ? $paramsFb['fb_comment_app_id'] : '';
		$this->t['fb_comment_width']			= isset($paramsFb['fb_comment_width']) ? $paramsFb['fb_comment_width'] : 550;
		$this->t['fb_comment_lang'] 			= isset($paramsFb['fb_comment_lang']) ? $paramsFb['fb_comment_lang'] : 'en_US';
		$this->t['fb_comment_count'] 		= isset($paramsFb['fb_comment_count']) ? $paramsFb['fb_comment_count'] : '';
		$this->t['enable_direct_subcat']   = $this->params->get( 'enable_direct_subcat', 0 );
		$this->t['display_comment_nopup']	= $this->params->get( 'display_comment_nopup', 0);
		$this->t['boxplus_theme']			= $this->params->get( 'boxplus_theme', 'lightsquare');
		$this->t['boxplus_bautocenter']		= (int)$this->params->get( 'boxplus_bautocenter', 1);
		$this->t['boxplus_autofit']			= (int)$this->params->get( 'boxplus_autofit', 1);
		$this->t['boxplus_slideshow']		= (int)$this->params->get( 'boxplus_slideshow', 0);
		$this->t['boxplus_loop']				= (int)$this->params->get( 'boxplus_loop', 0);
		$this->t['boxplus_captions']			= $this->params->get( 'boxplus_captions', 'bottom');
		$this->t['boxplus_thumbs']			= $this->params->get( 'boxplus_thumbs', 'inside');
		$this->t['boxplus_duration']			= (int)$this->params->get( 'boxplus_duration', 250);
		$this->t['boxplus_transition']		= $this->params->get( 'boxplus_transition', 'linear');
		$this->t['boxplus_contextmenu']		= (int)$this->params->get( 'boxplus_contextmenu', 1);
		$this->t['enablecustomcss']			= $this->params->get( 'enable_custom_css', 0);
		$this->t['customcss']				= $this->params->get( 'custom_css', '');
		$this->t['display_tags_links'] 		= $this->params->get( 'display_tags_links', 0 );
		$this->t['displaying_tags_true'] 	= 0;//No tag found, if yes, the box will be resized
		$this->t['ytbupload'] 				= $this->params->get( 'youtube_upload', 0 );
		$this->t['ytb_display'] 				= $this->params->get( 'ytb_display', 0 );
		$this->t['enable_multibox']			= $this->params->get( 'enable_multibox', 0);
		$this->t['multibox_height']			= (int)$this->params->get( 'multibox_height', 560 );
		$this->t['multibox_width']			= (int)$this->params->get( 'multibox_width', 980 );
		$this->t['disable_mootools_modal']	= $this->params->get( 'disable_mootools_modal', 0 );



		// CSS
		/*switch($this->t['image_categories_size']) {
			// medium
			case 1:
				$this->t['picasa_correct_width']		= (int)$this->params->get( 'medium_image_width', 256 );
				$this->t['picasa_correct_height']	= (int)$this->params->get( 'medium_image_height', 192 );
				$this->t['imagewidth']				= (int)$this->params->get( 'medium_image_width', 256 );
				$this->t['imageheight']				= (int)$this->params->get( 'medium_image_height', 192 );
				$this->t['class_suffix']				= 'medium';
			break;

			// small
			case 0:
			default:
				$this->t['picasa_correct_width']		= (int)$this->params->get( 'small_image_width', 128 );
				$this->t['picasa_correct_height']	= (int)$this->params->get( 'small_image_height', 96 );
				$this->t['imagewidth']				= (int)$this->params->get( 'small_image_width', 128 );
				$this->t['imageheight'] 				= (int)$this->params->get( 'small_image_height', 96 );
				$this->t['class_suffix']				= 'small';
			break;
		}*/

		// CSS Specific
		/*$s = '.pg-cv {'."\n";
		if ($this->t['phocagallerywidth'] != '') {
			$s .= '   margin: auto;'."\n";
			$s .= '   width: '.$this->t['phocagallerywidth'].'px;'."\n";
		}
		$s .= '}'."\n";

		$s .= '.pg-cv-box {'."\n";
		$s .= '   height: '.$this->t['boxsize']['height'].'px;'."\n";
		$s .= '   width: '.$this->t['boxsize']['width'].'px;"'."\n";
		$s .= '}'."\n";

		$s .= '.pg-cv-box-img {'."\n";
		$s .= '   height: '.$this->t['imageheight'].'px;'."\n";
		$s .= '   width: '.$this->t['imagewidth'].'px;"'."\n";
		$s .= '}'."\n";

		$document->addCustomTag('<style type="text/css">'.$s.'</style>');*/


		// Correct Height
		// Description detail height
		if ($display_description_detail == 1) {
			$popup_height	= $this->t['popup_height']+ $description_detail_height;
		}
		// Detail buttons in detail view
		if ($detail_buttons != 1) {
			$popup_height	= $this->t['popup_height']- 45;
		}
		if ($this->t['display_rating_img'] == 1) {
			$popup_height	= $this->t['popup_height']+ 35;
		}


		// Youtube video without padding, margin
		if ($this->t['detail_window'] != 7 && $this->t['ytb_display'] == 1) {
			$document->addCustomTag( "<style type=\"text/css\"> \n"
			." #boxplus .boxplus-dialog .boxplus-controlsclose {
				top: -15px !important;
				right: -15px !important;
				margin:0px 0 0 0 !important;
			} \n"
			." </style> \n");

			$this->t['popup_width'] = PhocaGallerySettings::getAdvancedSettings('youtubewidth');
			$popup_height= PhocaGallerySettings::getAdvancedSettings('youtubeheight');
		}

		// Multibox
		if ($this->t['enable_multibox']	== 1) {
			$this->t['popup_width'] 							= $this->t['multibox_width'];
			$this->t['popup_height']							= $this->t['multibox_height'];
		}
		if ($this->t['detail_window'] == 4) {
			$this->t['popup_height']= $this->t['popup_height']+ 12;
		}

		// Comment Image JS
		if ((int)$this->t['display_comment_img'] == 2 || (int)$this->t['display_comment_img'] == 3) {
			PhocaGalleryCommentImage::renderCommentImageJS();
		}
		// Rate Image JS
		if ((int)$this->t['display_rating_img'] == 2) {
			PhocaGalleryRateImage::renderRateImgJS();
		}

		// =======================================================
		// DIFFERENT METHODS OF DISPLAYING THE DETAIL VIEW
		// =======================================================
		// MODAL - will be displayed in case e.g. highslide or shadowbox too, because in there are more links

		//if ($this->t['disable_mootools_modal'] != 1) {
		//	JHtml::_('behavior.modal', 'a.pg-modal-button');
		//}

		$btn = new PhocaGalleryRenderDetailWindow();
		/*$btn->popupWidth 			= $this->t['popup_width'];
		$btn->popupHeight 			= $popup_height;
		$btn->mbOverlayOpacity		= $modal_box_overlay_opacity;
		$btn->sbSlideshowDelay		= $this->params->get( 'sb_slideshow_delay', 5 );
		$btn->sbSettings			= $this->params->get( 'sb_settings', "overlayColor: '#000',overlayOpacity:0.5,resizeDuration:0.35,displayCounter:true,displayNav:true" );
		$btn->hsSlideshow			= $highslide_slideshow;
		$btn->hsClass				= $highslide_class;
		$btn->hsOutlineType			= $highslide_outline_type;
		$btn->hsOpacity				= $highslide_opacity;
		$btn->hsCloseButton			= $highslide_close_button;
		$btn->hsFullImg				= $highslide_fullimg;
		$btn->jakDescHeight			= $this->t['jakdescriptionheight'];
		$btn->jakDescWidth			= '';
		$btn->jakOrientation		= $this->t['jakorientation'];
		$btn->jakSlideshowDelay		= $this->t['jakslideshowdelay'];
		$btn->bpTheme 				= $this->t['boxplus_theme'];
		$btn->bpBautocenter 		= (int)$this->t['boxplus_bautocenter'];
		$btn->bpAutofit 			= (int)$this->t['boxplus_autofit'];
		$btn->bpSlideshow 			= (int)$this->t['boxplus_slideshow'];
		$btn->bpLoop 				= (int)$this->t['boxplus_loop'];
		$btn->bpCaptions 			= $this->t['boxplus_captions'];
		$btn->bpThumbs 				= $this->t['boxplus_thumbs'];
		$btn->bpDuration 			= (int)$this->t['boxplus_duration'];
		$btn->bpTransition 			= $this->t['boxplus_transition'];
		$btn->bpContextmenu 		= (int)$this->t['boxplus_contextmenu'];*/

		$btn->setButtons($this->t['detail_window'], $libraries, $library);


		$this->t ['highslideonclick']	= '';// for using with highslide
		if (isset($this->button->highslideonclick)) {
			$this->t ['highslideonclick'] = $this->button->highslideonclick;// TO DO
		}
		$this->t ['highslideonclick2']	= '';
		if (isset($this->button->highslideonclick2)) {
			$this->t ['highslideonclick2'] = $this->button->highslideonclick2;// TO DO
		}


		$folderButton = new CMSObject();
		$folderButton->set('name', 'image');
		$folderButton->set('options', "");
		// End open window parameters
		// ==================================================================

		// Information about current category
		$this->category			= $this->get('category');


		// Cooliris (Piclens)
		$this->t['start_cooliris'] 	= 0;
		if ($this->t['enablecooliris'] == 1) {
			$this->t['start_cooliris'] = $this->params->get( 'start_cooliris', 0 );
			// CSS - PicLens START
			$document->addCustomTag(PhocaGalleryRenderFront::renderPicLens($this->category->id));
		}

		// PARAMS - Pagination and subcategories on other sites
		// Subcategories will be displayed only on first page if pagination will be used
		$display_subcat_page = $this->params->get( 'display_subcat_page', 0 );
		// On the first site subcategories will be displayed always
		$get['start']	= $app->input->get( 'limitstart', '', 'string' );
		if ($display_subcat_page == 2) {
			$display_subcat_page = 0;// Nowhere
		} else if ($display_subcat_page == 0 && $get['start'] > 0) {
			$display_subcat_page = 0;//in case: second page and param=0
		} else {
			$display_subcat_page = 1;//in case:first page or param==1
		}
		// Categories View in Category View
		if ($display_subcat_page_cv == 2) {
			$display_subcat_page_cv = 0;// Nowhere
		} else if ($display_subcat_page_cv == 0 && $get['start'] > 0) {
			$display_subcat_page_cv = 0;//in case: second page and param=0
		} else {
			$display_subcat_page_cv = 1;//in case:first page or param==1
		}


		// PARAMS - Display Back Buttons
		$display_back_button 			= $this->params->get( 'display_back_button', 1 );
		$display_categories_back_button = $this->params->get( 'display_categories_back_button', 1 );
		// PARAMS - Access Category - display category (subcategory folder or backbutton  to not accessible cat
		$display_access_category 		= $this->params->get( 'display_access_category', 1 );

		// MASONRY
		$wa                         = $app->getDocument()->getWebAssetManager();
		if ($this->t['display_masonry'] == 1){
			$wa->registerAndUseStyle('com_phocagallery.masonry', 'media/com_phocagallery/css/misc/phocagallery-masonry.css');
			// Disable some parameters
			$display_back_button = 0;
			$display_subcat_page = 0;
		}

		// Set page title per category
		if ($this->t['display_cat_name_title'] == 1 && isset($this->category->title)) {
			$document->setTitle($this->params->get( 'page_title') . ' - '. $this->category->title);
		} else {
			$document->setTitle( $this->params->get( 'page_title' ));
		}

		// Breadcrumb display:
		// 0 - only menu link
		// 1 - menu link - category name
		// 2 - only category name
		$this->_addBreadCrumbs( isset($menu->query['id']) ? $menu->query['id'] : 0, $display_cat_name_breadcrumbs);




		// Define image tag attributes
	/*	if (!empty ($this->category->image)) {
			$attribs['align'] = '"'.$this->category->image_position.'"';
			$attribs['hspace'] = '"6"';
			$this->t['image'] = HTMLHelper::_('image', 'images/stories/'.$this->category->image,'', $attribs);
		}*/


		// Overlib
		$enable_overlib = $this->params->get( 'enable_overlib', 0 );
		if ((int)$enable_overlib > 0) {
			$document->addScript(Uri::base(true).'/media/com_phocagallery/js/overlib/overlib_mini.js');
		}

		// MODEL
		$model		= $this->getModel();

		// Trash
		$this->t['trash']					= 0;
		$this->t['publish_unpublish']		= 0;
		$this->t['approved_not_approved']	= 0;// only to see the info
		// USER RIGHT - DELETE - - - - - - - - - - -
		// 2, 2 means that user access will be ignored in function getUserRight for display Delete button
		$rightDisplayDelete = 0;// default is to null (all users cannot upload)
		if (!empty($this->category)) {
			$rightDisplayDelete = PhocaGalleryAccess::getUserRight('deleteuserid', $this->category->deleteuserid, 2, $this->t['user']->getAuthorisedViewLevels(), $this->t['user']->get('id', 0), 0);
		}
		if ($rightDisplayDelete == 1) {
			$this->t['trash']				= 1;
			$this->t['publish_unpublish']	= 1;
			$this->t['approved_not_approved']= 1;// only to see the info
		}
		// - - - - - - - - - - - - - - - - - - - - -
		// Upload
		$this->t['displayupload']	= 0;
		// USER RIGHT - UPLOAD - - - - - - - - - - -
		// 2, 2 means that user access will be ignored in function getUserRight for display Delete button
		$rightDisplayUpload = 0;// default is to null (all users cannot upload)
		if (!empty($this->category)) {
			$rightDisplayUpload = PhocaGalleryAccess::getUserRight('uploaduserid', $this->category->uploaduserid, 2, $this->t['user']->getAuthorisedViewLevels(), $this->t['user']->get('id', 0), 0);
		}

		if ($rightDisplayUpload == 1) {
			$this->t['displayupload']	= 1;
			$document->addCustomTag(PhocaGalleryRenderFront::renderOnUploadCategoryJS());
			$document->addCustomTag(PhocaGalleryRenderFront::renderDescriptionUploadJS((int)$this->t['max_upload_char']));
		}

		$this->t['displaycreatecat']	= 0;
		if (($rightDisplayUpload == 1) && ($this->t['enable_direct_subcat'] == 1))
		{
			$this->t['displaycreatecat']	= 1;
			$document->addCustomTag(PhocaGalleryRenderFront::renderOnUploadCategoryJS());
			$document->addCustomTag(PhocaGalleryRenderFront::renderDescriptionCreateSubCatJS((int)$this->t['max_create_cat_char']));
		}

		// - - - - - - - - - - - - - - - - - - - - -

		// USER RIGHT - ACCESS - - - - - - - - - - -
		$rightDisplay = 1;//default is set to 1 (all users can see the category)

		if (!empty($this->category)) {
			$rightDisplay = PhocaGalleryAccess::getUserRight('accessuserid', $this->category->accessuserid, 0, $this->t['user']->getAuthorisedViewLevels(), $this->t['user']->get('id', 0), $display_access_category);
		}
		if ($rightDisplay == 0) {

			$app->enqueueMessage(Text::_('COM_PHOCAGALLERY_NOT_AUTHORISED_ACTION'), 'error');
			$app->redirect(Route::_($this->t['pl'], false));
			exit;
		}
		// - - - - - - - - - - - - - - - - - - - - -

		// 1. GEOTAGGING CATEGORY
		$this->map['longitude'] 	= '';// will be used for 1. default_geotagging to not display pane and 2. to remove pane (line cca 1554)
		$this->map['latitude'] 		= '';

		if (isset($this->category->latitude) && $this->category->latitude != '' && $this->category->latitude != 0
			&& isset($this->category->longitude) && $this->category->longitude != '' && $this->category->longitude != 0 ) {

			$this->map['longitude']	= $this->category->longitude;
			$this->map['latitude']	= $this->category->latitude;
			$this->map['zoom']		= $this->category->zoom;
			$this->map['geotitle'] 	= $this->category->geotitle;
			$this->map['description'] = $this->category->description;
			if ($this->map['geotitle'] == '') {
				$this->map['geotitle']	= $this->category->title;
			}
		} else {
			$this->t['display_icon_geo'] = 0;
		}


		$this->t['categoryimageordering']	= $this->params->get( 'category_image_ordering', 10 );
		//$this->t['categoryimageorderingcv']	= 10;//$this->params->get( 'category_image_ordering_cv', 10 );
		// Image next to Category in Categories View in Category View is ordered by Random as default
		phocagalleryimport('phocagallery.ordering.ordering');
		$this->categoryImageOrdering = PhocaGalleryOrdering::getOrderingString($this->t['categoryimageordering']);
		//$this->categoryImageOrderingCV = PhocaGalleryOrdering::getOrderingString($this->t['categoryimageorderingcv']);





		// = = = = = = = = = = = = = = = = = = = =
		// BOXES
		// = = = = = = = = = = = = = = = = = = = =

		// Information because of height of box (if they are used not by all images)
		$this->t['display_icon_extlink1_box'] 	= 0;
		$this->t['display_icon_extlink2_box'] 	= 0;
		$this->t['display_icon_vmbox'] 			= 0;
		$this->t['display_icon_pcbox'] 			= 0;
		$this->t['display_icon_geo_box'] 		= 0;

        $iS 	= 0;
		$iCV 	= 0;
		$this->items		= array();// Category View
		$this->itemscv		= array();// Category List (Categories View) in Category View


		// ----------------------------------------
		// PARENT FOLDERS(I) or Back Button STANDARD
		// ----------------------------------------
		/*
		// Set Back Button to CATEGORIES VIEW
		$this->itemsLink	= $menu->getItems('link', 'index.php?option=com_phocagallery&view=categories');

		$itemId	= 0;
		if(isset($this->itemsLink[0])) {
			$itemId = $this->itemsLink[0]->id;
		}
		$backLink = 'index.php?option=com_phocagallery&view=categories&Itemid='.$itemId;*/

		$posItemid		= $posItemidNull = $backLinkItemId = false;
		$backLink 		= PhocaGalleryRoute::getCategoriesRoute();
		$posItemidNull 	= strpos($backLink, "Itemid=0");
		$posItemid 		= strpos($backLink, "Itemid=");
		if ($posItemidNull === false && $posItemid) {
			$backLinkItemId = 1;
		}


		$parentCategory = $this->get('parentcategory');

		if ($display_back_button == 1) {
			if (!empty($parentCategory)) {

				$this->items[$iS] = $parentCategory;
				// USER RIGHT - ACCESS - - - - - - - - - - -
				// Should be the link to parentcategory displayed
				$rightDisplay = PhocaGalleryAccess::getUserRight('accessuserid', $this->items[$iS]->accessuserid, $this->items[$iS]->access, $this->t['user']->getAuthorisedViewLevels(), $this->t['user']->get('id', 0), $display_access_category);

				// Display Key Icon (in case we want to display unaccessable categories in list view)
				$rightDisplayKey  = 1;
				if ($display_access_category == 1) {
					// we simulate that we want not to display unaccessable categories
					// so we get rightDisplayKey = 0 then the key will be displayed
					if (!empty($parentCategory)) {
						$rightDisplayKey = PhocaGalleryAccess::getUserRight ('accessuserid', $this->items[$iS]->accessuserid, $this->items[$iS]->access, $this->t['user']->getAuthorisedViewLevels(), $this->t['user']->get('id', 0), 0);
					}
				}
				// - - - - - - - - - - - - - - - - - - - - -

				$this->items[$iS]->rightdisplaykey				= $rightDisplayKey;
				if ($rightDisplay > 0) {
					$this->items[$iS]->cls						= 'pg-box-parentfolder';
					$this->items[$iS]->iconcls					= 'icon-up';
					$this->items[$iS]->slug			 			= $this->items[$iS]->id . ':' . $this->items[$iS]->alias;
					$this->items[$iS]->item_type				= "parentfolder";
					$this->items[$iS]->linkthumbnailpath 		= false;
					$this->items[$iS]->extm						= false;
					$this->items[$iS]->exts						= false;
					$this->items[$iS]->numlinks 				= 0;// We are in category view
					$this->items[$iS]->link 					= Route::_('index.php?option=com_phocagallery&view=category&id='. $this->items[$iS]->slug.'&Itemid='. $this->itemId  );
					$this->items[$iS]->button 					= &$folderButton;
					$this->items[$iS]->button->methodname 		= '';
					$this->items[$iS]->display_icon_detail 		= 0;
					$this->items[$iS]->display_icon_download 	= 0;
					$this->items[$iS]->display_name 			= 0;
					$this->items[$iS]->display_icon_vm 			= '';
					$this->items[$iS]->display_icon_pc 			= '';
					$this->items[$iS]->start_cooliris 			= 0;
					$this->items[$iS]->trash					= 0;
					$this->items[$iS]->publish_unpublish		= 0;
					$this->items[$iS]->approved_not_approved	= 0;
					$this->items[$iS]->enable_cooliris			= 0;
					$this->items[$iS]->overlib					= 0;
					$this->items[$iS]->display_icon_geo			= 0;
					$this->items[$iS]->display_icon_commentimg	= 0;
					$this->items[$iS]->type						= 0;
					$this->items[$iS]->camera_info				= 0;
					$this->items[$iS]->display_icon_extlink1	= 0;
					$this->items[$iS]->display_icon_extlink2	= 0;
					$this->items[$iS]->description				= '';
					$this->items[$iS]->altvalue					= Text::_('COM_PHOCAGALLERY_BACK');
					$iS++;
				} else {
					// There is no right to see the data but the object exists (because it was loaded from database
					// Destroy it
					unset($this->items[$iS]);
				}
			} else { // Back button to categories list if it exists
				if ($backLinkItemId != 0 && $display_categories_back_button == 1) {
					$this->items[$iS] 							= new CMSObject();
					$this->items[$iS]->cls						= 'pg-box-backbtn';
					$this->items[$iS]->iconcls					= 'icon-up';
					$this->items[$iS]->link 					= Route::_($backLink);
					$this->items[$iS]->title					= Text::_('COM_PHOCAGALLERY_CATEGORY_LIST');
					$this->items[$iS]->item_type 				= "categorieslist";
					$this->items[$iS]->linkthumbnailpath 		= false;
					$this->items[$iS]->extm						= false;
					$this->items[$iS]->exts						= false;
					$this->items[$iS]->numlinks 				= 0;// We are in category view
					$this->items[$iS]->button 					= &$folderButton;
					$this->items[$iS]->button->methodname 		= '';
					$this->items[$iS]->display_icon_detail 		= 0;
					$this->items[$iS]->display_icon_download	= 0;
					$this->items[$iS]->display_name 			= 0;
					$this->items[$iS]->display_icon_vm 			= '';
					$this->items[$iS]->display_icon_pc 			= '';
					$this->items[$iS]->start_cooliris 			= 0;
					$this->items[$iS]->trash					= 0;
					$this->items[$iS]->publish_unpublish		= 0;
					$this->items[$iS]->approved_not_approved	= 0;
					$this->items[$iS]->enable_cooliris			= 0;
					$this->items[$iS]->overlib					= 0;
					$this->items[$iS]->display_icon_geo			= 0;
					$this->items[$iS]->display_icon_commentimg	= 0;
					$this->items[$iS]->type						= 0;
					$this->items[$iS]->camera_info				= 0;
					$this->items[$iS]->display_icon_extlink1	= 0;
					$this->items[$iS]->display_icon_extlink2	= 0;
					$this->items[$iS]->description			= '';
					$this->items[$iS]->altvalue				= Text::_('COM_PHOCAGALLERY_BACK');
					$iS++;
				}
			}
		}


		// ----------------------------------------
		// PARENT FOLDERS(II) or Back Button CATEGORIES VIEW IN CATEGORY VIEW
		// ----------------------------------------
		if ($this->t['display_back_button_cv'] == 1 && $this->t['display_categories_cv'] == 1) {
			if (!empty($parentCategory)) {

				$this->itemscv[$iCV] = clone $parentCategory;
				// USER RIGHT - ACCESS - - - - - - - - - - -
				// Should be the link to parentcategory displayed
				$rightDisplay = PhocaGalleryAccess::getUserRight('accessuserid', $this->itemscv[$iCV]->accessuserid, $this->itemscv[$iCV]->access, $this->t['user']->getAuthorisedViewLevels(), $this->t['user']->get('id', 0), $display_access_category);

				// Display Key Icon (in case we want to display unaccessable categories in list view)
				$rightDisplayKey  = 1;
				if ($display_access_category == 1) {
					// we simulate that we want not to display unaccessable categories
					// so we get rightDisplayKey = 0 then the key will be displayed
					if (!empty($parentCategory)) {
						$rightDisplayKey = PhocaGalleryAccess::getUserRight ('accessuserid', $this->itemscv[$iCV]->accessuserid, $this->itemscv[$iCV]->access, $this->t['user']->getAuthorisedViewLevels(), $this->t['user']->get('id', 0), 0);
					}
				}
				// - - - - - - - - - - - - - - - - - - - - -

				$this->itemscv[$iCV]->rightdisplaykey				= $rightDisplayKey;
				if ($rightDisplay > 0) {
					$this->itemscv[$iCV]->cls					= 'pg-box-parentfolder-cv';
					$this->itemscv[$iCV]->iconcls				= 'icon-up';
					$this->itemscv[$iCV]->slug 					= $this->itemscv[$iCV]->id.':'.$this->itemscv[$iCV]->alias;
					$this->itemscv[$iCV]->item_type 			= "parentfoldercv";
					$this->itemscv[$iCV]->linkthumbnailpath	= false;
					$this->itemscv[$iCV]->extm				= false;
					$this->itemscv[$iCV]->exts				= false;
					$this->itemscv[$iCV]->numlinks 			= 0;// We are in category view
					$this->itemscv[$iCV]->link 				= Route::_('index.php?option=com_phocagallery&view=category&id='. $this->itemscv[$iCV]->slug.'&Itemid='. $this->itemId  );
					$this->itemscv[$iCV]->type				= 3;
					$this->itemscv[$iCV]->altvalue			= Text::_('COM_PHOCAGALLERY_BACK');
					$iCV++;
				} else {
					// There is no right to see the data but the object exists (because it was loaded from database
					// Destroy it
					unset($this->itemscv[$iCV]);
				}
			} else { // Back button to categories list if it exists
				if ($backLinkItemId != 0 && $this->t['display_categories_back_button_cv'] == 1) {
					$this->itemscv[$iCV] 						= new CMSObject();
					$this->itemscv[$iCV]->cls					= 'pg-cvcsv-back';
					$this->itemscv[$iCV]->iconcls				= 'icon-up';
					$this->itemscv[$iCV]->link 				= $backLink;
					$this->itemscv[$iCV]->title				= Text::_('COM_PHOCAGALLERY_CATEGORY_LIST');
					$this->itemscv[$iCV]->item_type 			= "categorieslistcv";
					$this->itemscv[$iCV]->linkthumbnailpath	= false;
					$this->itemscv[$iCV]->extm				= false;
					$this->itemscv[$iCV]->exts				= false;
					$this->itemscv[$iCV]->numlinks = 0;// We are in category view
					$this->itemscv[$iCV]->link 				= Route::_( $this->itemscv[$iCV]->link );
					$this->itemscv[$iCV]->type				= 3;
					$this->itemscv[$iCV]->altvalue			= htmlspecialchars(Text::_('COM_PHOCAGALLERY_CATEGORY_LIST'));
					$iCV++;
				}
			}
		}


		// ----------------------------------------
		// SUB FOLDERS(1) STANDARD
		// ----------------------------------------
		// Display subcategories on every page
		if ($display_subcat_page == 1 && $this->t['display_categories_sub'] == 1) {

			$subCategory = $this->get('subcategory');
			$totalSubCat = count($subCategory);

			if ((int)$this->tagId > 0) {$subCategory = array();}// No subcategories for tag searching

			if (!empty($subCategory)) {
				$this->items[$iS] = &$subCategory;


				for($iSub = 0; $iSub < $totalSubCat; $iSub++) {

					$this->items[$iS] = &$subCategory[$iSub];
					// USER RIGHT - ACCESS - - - - - - - - - -
					$rightDisplay = PhocaGalleryAccess::getUserRight('accessuserid', $this->items[$iS]->accessuserid, $this->items[$iS]->access, $this->t['user']->getAuthorisedViewLevels(), $this->t['user']->get('id', 0), $display_access_category);

					// Display Key Icon (in case we want to display unaccessable categories in list view)
					$rightDisplayKey  = 1;
					if ($display_access_category == 1) {
						// we simulate that we want not to display unaccessable categories
						// so we get rightDisplayKey = 0 then the key will be displayed
						if (!empty($this->items[$iS])) {
							$rightDisplayKey = PhocaGalleryAccess::getUserRight('accessuserid', $this->items[$iS]->accessuserid, $this->items[$iS]->access, $this->t['user']->getAuthorisedViewLevels(), $this->t['user']->get('id', 0), 0);
						}
					}
					// - - - - - - - - - - - - - - - - - - - -


					$this->items[$iS]->rightdisplaykey				= $rightDisplayKey;

					if ($rightDisplay > 0) {
						$this->items[$iS]->cls						= 'pg-box-subfolder';
						$this->items[$iS]->iconcls					= 'category';
						$this->items[$iS]->slug 					= $this->items[$iS]->id.':'.$this->items[$iS]->alias;
						$this->items[$iS]->item_type 				= "subfolder";

						$numlinks 	= $model->getCountItem($this->items[$iS]->id);//Should be get from main subcategories query
						if (isset($numlinks[0]) && $numlinks[0] > 0) {
							$this->items[$iS]->numlinks = (int)$numlinks[0];
						} else {
							$this->items[$iS]->numlinks = 0;
						}
						$extImage = PhocaGalleryImage::isExtImage($this->items[$iS]->extid);


						if (isset($this->items[$iS]->image_id) && $this->items[$iS]->image_id > 0) {
							// User has selected image in category edit
							$selectedImg = PhocaGalleryImageFront::setFileNameByImageId((int)$this->items[$iS]->image_id);

							if (isset($selectedImg->filename) && ($selectedImg->filename != '' && $selectedImg->filename != '-')) {
								$fileThumbnail	= PhocaGalleryImageFront::displayCategoryImageOrFolder($selectedImg->filename, 'medium', $rightDisplayKey);

								$this->items[$iS]->filename = $selectedImg->filename;
								$this->items[$iS]->linkthumbnailpath   = $fileThumbnail->rel;
							} else if (isset($selectedImg->exts) && isset($selectedImg->extm) && $selectedImg->exts != '' && $selectedImg->extm != '') {

								$fileThumbnail		= PhocaGalleryImageFront::displayCategoryExtImgOrFolder($selectedImg->exts, $selectedImg->extm, 'medium', $rightDisplayKey);


								$this->items[$iS]->linkthumbnailpath	= $fileThumbnail->linkthumbnailpath;
								$this->items[$iS]->extw				= $selectedImg->extw;
								$this->items[$iS]->exth				= $selectedImg->exth;
								$this->items[$iS]->extpic			= $fileThumbnail->extpic;
							}

						} else if ($extImage) {
							$imagePic		= new stdClass();
							if ($this->t['categoryimageordering'] != 10) {
								$imagePic		= PhocaGalleryImageFront::getRandomImageRecursive($this->items[$iS]->id, $this->categoryImageOrdering, 1);
								$fileThumbnail	= PhocaGalleryImageFront::displayCategoryExtImgOrFolder($imagePic->exts, $imagePic->extm, 'medium', $rightDisplayKey, 'display_category_icon_image');

							} else {
								$fileThumbnail	= PhocaGalleryImageFront::displayCategoryExtImgOrFolder($this->items[$iS]->exts,$this->items[$iS]->extm, 'medium', $rightDisplayKey, 'display_category_icon_image');


								$imagePic->extw = $this->items[$iS]->extw;
								$imagePic->exth = $this->items[$iS]->exth;
							}
							// in case category is locked or no extm exists

							$this->items[$iS]->linkthumbnailpath	= $fileThumbnail->linkthumbnailpath;
							$this->items[$iS]->extm	= $fileThumbnail->extm;
							$this->items[$iS]->exts	= $fileThumbnail->exts;

							$this->items[$iS]->exthswitch = $this->items[$iS]->extwswitch = 0;
							if ($imagePic->extw != '') {
								$extw 				= explode(',',$imagePic->extw);
								$this->items[$iS]->extw		= $extw[1];
								$this->items[$iS]->extwswitch	= $extw[0];
							}
							if ($imagePic->exth != '') {
								$exth 				= explode(',',$imagePic->exth);
								$this->items[$iS]->exth	= $exth[1];
								$this->items[$iS]->exthswitch	= $exth[0];
							}
							$this->items[$iS]->extpic		= $fileThumbnail->extpic;
						} else {

							if ($this->t['categoryimageordering'] != 10) {
								$randomImage 	= PhocaGalleryImageFront::getRandomImageRecursive($this->items[$iS]->id, $this->categoryImageOrdering);
								$fileThumbnail 	= PhocaGalleryImageFront::displayCategoryImageOrFolder($randomImage, 'medium', $rightDisplayKey, 'display_category_icon_image');


							} else {
								$fileThumbnail 	= PhocaGalleryImageFront::displayCategoryImageOrFolder($this->items[$iS]->filename, 'medium', $rightDisplayKey, 'display_category_icon_image');

							}


							$this->items[$iS]->linkthumbnailpath  	= $fileThumbnail->rel;
						}


						$this->items[$iS]->link 					= Route::_('index.php?option=com_phocagallery&view=category&id='. $this->items[$iS]->slug.'&Itemid='. $this->itemId  );
						$this->items[$iS]->button 				= &$folderButton;
						$this->items[$iS]->button->methodname 	= '';
						$this->items[$iS]->display_icon_detail 		= 0;
						$this->items[$iS]->display_icon_download 	= 0;
						$this->items[$iS]->display_name 			= $this->t['display_name'];
						$this->items[$iS]->display_icon_vm 			= '';
						$this->items[$iS]->display_icon_pc 			= '';
						$this->items[$iS]->start_cooliris 			= 0;
						$this->items[$iS]->trash					= 0;
						$this->items[$iS]->publish_unpublish		= 0;
						$this->items[$iS]->approved_not_approved	= 0;
						$this->items[$iS]->enable_cooliris			= 0;
						$this->items[$iS]->overlib					= 0;
						$this->items[$iS]->display_icon_geo			= 0;
						$this->items[$iS]->type						= 1;
						$this->items[$iS]->camera_info				= 0;
						$this->items[$iS]->display_icon_extlink1	= 0;
						$this->items[$iS]->display_icon_extlink2	= 0;
						$this->items[$iS]->description				= '';
						$this->items[$iS]->display_icon_commentimg	= 0;
						$this->items[$iS]->altvalue					= htmlspecialchars($this->items[$iS]->title);
						$iS++;
					} else {
						// There is no right to see the data but the object exists (because it was loaded from database
						// Destroy it
						unset($this->items[$iS]);
					}
				}
			}
		}

		// ----------------------------------------
		// SUB FOLDERS(II) or Back Button CATEGORIES VIEW IN CATEGORY VIEW
		// ----------------------------------------
		//display subcategories on every page
		if ($display_subcat_page_cv == 1 && $this->t['display_categories_cv'] == 1) {
			$subCategory = $this->get('subcategory');
			$totalSubCat = count($subCategory);

			if ((int)$this->tagId > 0) {$subCategory = array();}// No subcategories for tag searching

			if (!empty($subCategory)) {
				$this->itemscv[$iCV] = $subCategory;


				for($iSub = 0; $iSub < $totalSubCat; $iSub++) {

					$this->itemscv[$iCV] = $subCategory[$iSub];
					// USER RIGHT - ACCESS - - - - - - - - - -
					$rightDisplay = PhocaGalleryAccess::getUserRight('accessuserid', $this->itemscv[$iCV]->accessuserid, $this->itemscv[$iCV]->access, $this->t['user']->getAuthorisedViewLevels(), $this->t['user']->get('id', 0), $display_access_category);

					// Display Key Icon (in case we want to display unaccessable categories in list view)
					$rightDisplayKey  = 1;
					if ($display_access_category == 1) {
						// we simulate that we want not to display unaccessable categories
						// so we get rightDisplayKey = 0 then the key will be displayed
						if (!empty($this->itemscv[$iCV])) {
							$rightDisplayKey = PhocaGalleryAccess::getUserRight('accessuserid', $this->itemscv[$iCV]->accessuserid, $this->itemscv[$iCV]->access, $this->t['user']->getAuthorisedViewLevels(), $this->t['user']->get('id', 0), 0);
						}
					}
					// - - - - - - - - - - - - - - - - - - - -

					if ($rightDisplay > 0) {

						$this->itemscv[$iCV]->cls					= 'pg-cvcsv-name';
						$this->itemscv[$iCV]->iconcls				= 'category';
						$this->itemscv[$iCV]->slug 				= $this->itemscv[$iCV]->id.':'.$this->itemscv[$iCV]->alias;
						$this->itemscv[$iCV]->item_type 			= "subfoldercv";
						$this->itemscv[$iCV]->link 				= Route::_('index.php?option=com_phocagallery&view=category&id='. $this->itemscv[$iCV]->slug.'&Itemid='. $this->itemId  );
						$this->itemscv[$iCV]->type				= 4;


						$numlinks = $model->getCountItem($this->itemscv[$iCV]->id);//Should be get from main subcategories query
						if (isset($numlinks[0]) && $numlinks[0] > 0) {
							$this->itemscv[$iCV]->numlinks = (int)$numlinks[0];
						} else {
							$this->itemscv[$iCV]->numlinks = 0;
						}

						$extImage = PhocaGalleryImage::isExtImage($this->itemscv[$iCV]->extid);
						if ($extImage) {
							/*$imagePic		= new stdClass();
							if ($this->t['categoryimageordering'] != 10) {
								$imagePic= PhocaGalleryImageFront::getRandomImageRecursive($this->itemscv[$iCV]->id, $this->categoryImageOrderingCV, 1);
								$fileThumbnail	= PhocaGalleryImageFront::displayCategoryExtImgOrFolder($imagePic->exts, $imagePic->extm, 'medium', $rightDisplayKey, 'display_category_icon_image');
							} else {
								$fileThumbnail	= PhocaGalleryImageFront::displayCategoryExtImgOrFolder($this->itemscv[$iCV]->exts,$this->itemscv[$iCV]->extm, 'medium', $rightDisplayKey, 'display_category_icon_image');
								$imagePic->extw = $this->itemscv[$iCV]->extw;
								$imagePic->exth = $this->itemscv[$iCV]->exth;
							}

							// in case category is locked or no extm exists
							$this->itemscv[$iCV]->linkthumbnailpath	= $fileThumbnail->linkthumbnailpath;
							$this->itemscv[$iCV]->extm	= $fileThumbnail->extm;
							$this->itemscv[$iCV]->exts	= $fileThumbnail->exts;

							$this->itemscv[$iCV]->exthswitch = $this->items[$iCV]->extwswitch = 0;
							if ($imagePic->extw != '') {
								$extw 						= explode(',',$imagePic->extw);
								$this->itemscv[$iCV]->extw		= $extw[1];
								$this->itemscv[$iCV]->extwswitch	= $extw[0];
							}
							if ($imagePic->exth != '') {
								$exth 				= explode(',',$imagePic->exth);
								$this->itemscv[$iCV]->exth		= $exth[1];
								$this->itemscv[$iCV]->exthswitch	= $exth[0];
							}*/
							$this->itemscv[$iCV]->extpic	= '';
						} else {
							/*if ($this->t['categoryimageordering'] != 10) {
								$randomImage 	= PhocaGalleryImageFront::getRandomImageRecursive($this->itemscv[$iCV]->id, $this->categoryImageOrderingCV);
								$fileThumbnail 	= PhocaGalleryImageFront::displayCategoryImageOrFolder($randomImage, 'medium', $rightDisplayKey, 'display_category_icon_image_cv');
							} else {
								$fileThumbnail 	= PhocaGalleryImageFront::displayCategoryImageOrFolder($this->itemscv[$iCV]->filename, 'medium', $rightDisplayKey, 'display_category_icon_image_cv');
							}*/
							$this->itemscv[$iCV]->linkthumbnailpath		= '';
							$this->itemscv[$iCV]->altvalue				= htmlspecialchars($this->itemscv[$iCV]->title);

						}
						$iCV++;
					} else {
						// There is no right to see the data but the object exists (because it was loaded from database
						// Destroy it
						unset($this->itemscv[$iCV]);
					}
				}
			}
		}



		// ----------------------------------------
		// IMAGES
		// ----------------------------------------
		// If user has rights to delete or publish or unpublish, unbublished items should be displayed
		if ($rightDisplayDelete == 1) {
			$images	= $model->getData(1, $this->tagId);
			$this->t['pagination']	= $model->getPagination(1, $this->tagId);
		} else {
			$images	= $model->getData(0, $this->tagId);

			$this->t['pagination']	= $model->getPagination(0, $this->tagId);
		}

		$this->t['ordering']	= $model->getOrdering();

		$totalImg = count($images);

		if ($limitStart > 0 ) {
			$this->t['limitstarturl'] = '&limitstart='.$limitStart;
		} else {
			$this->t['limitstarturl'] = '';
		}

		$this->t['jakdatajs'] = array();
		$this->t['display_icon_commentimg_box'] = 0;
		for($iM = 0; $iM < $totalImg; $iM++) {


			$this->items[$iS]            = $images[$iM];
			$this->items[$iS]->cls       = 'pg-box-image';
			$this->items[$iS]->iconcls   = 'image';
			$this->items[$iS]->slug      = $this->items[$iS]->id . ':' . $this->items[$iS]->alias;
			$this->items[$iS]->item_type = "image";
			$this->items[$iS]->linknr    = '';//Def

			$this->items[$iS]->datasize = '';//Def

			$extImage = PhocaGalleryImage::isExtImage($this->items[$iS]->extid);

			// Get file thumbnail or No Image
			$this->items[$iS]->exthswitch = $this->items[$iS]->extwswitch = 0;

			// Mansory
			$iFormat  = 'medium';
			$iFormatD = 'large';

			if ($this->items[$iS]->extm != '') {

				$dataSizeW = $this->t['large_image_width'];
				$dataSizeH = $this->t['large_image_height'];
				if ($this->items[$iS]->extw != '') {
					$extw                         = explode(',', $this->items[$iS]->extw);
					$this->items[$iS]->extw       = $extw[1];
					$this->items[$iS]->extwswitch = $extw[0];
					$dataSizeW                    = $extw[0];
				}
				if ($this->items[$iS]->exth != '') {
					$exth                         = explode(',', $this->items[$iS]->exth);
					$this->items[$iS]->exth       = $exth[1];
					$this->items[$iS]->exthswitch = $exth[0];
					$dataSizeH                    = $exth[0];
				}
				// Photoswipe needs data-size parameter
				if ($this->t['detail_window'] == 14) {
					$this->items[$iS]->datasize = 'data-size="' . (int)$dataSizeW . 'x' . (int)$dataSizeH . '"';
				}
				$this->items[$iS]->extpic            = 1;
				$this->items[$iS]->linkthumbnailpath = '';
			} else {

				$dataSizeW = $this->t['large_image_width'];
				$dataSizeH = $this->t['large_image_height'];
				// Different Thumbnail Height
				// Masonry
				/*if ($this->t['diff_thumb_height'] > 0) {
					//if ($this->items[$iS]->format	== 2) {
					if (isset($this->items[$iS]->format) && $this->items[$iS]->format == 2) {
						// Portrait
						$iFormat  = 'medium1';// format of thumbnail displayed
						$iFormatD = 'large1'; // format of thumbnail in detail view
						//$iFormat = 'medium';// by portraits in everycase (medium1 = medium * x2(height))

						//$dataSizeW = $this->t['large_image_width'];
						//$dataSizeH = $this->t['large_image_height'];
					} else {

						// By landscape - landscape
						/*$m2 = mt_rand(0,1);
						if ($m2 == 1) {
							$iFormat = 'medium1';
						}*//*
						// Landscape
						$iFormat = 'medium';
						//$dataSizeW = $this->t['large_image_width'];
						//$dataSizeH = $this->t['large_image_height'];
					}
				}*/

				if ($this->t['detail_window'] == 14) {
					$this->items[$iS]->datasize = 'data-size="' . (int)$dataSizeW . 'x' . (int)$dataSizeH . '"';
				}

				if ($this->t['display_masonry'] == 1) {
					$this->items[$iS]->linkthumbnailpath = PhocaGalleryImageFront::displayCategoryImageOrNoImage($this->items[$iS]->filename, $iFormatD);
				} else {
					$this->items[$iS]->linkthumbnailpath = PhocaGalleryImageFront::displayCategoryImageOrNoImage($this->items[$iS]->filename, $iFormat);
				}

			}

			if (isset($parentCategory->params)) {
				$this->items[$iS]->parentcategoryparams = $parentCategory->params;
			}

			// SWITCH IMAGE - Add the first Image as basic image
		/*	if ($this->t['switch_image'] == 1) {
				if ($basic_imageSelected == 0) {
					if ((int)$this->t['switch_width'] > 0 && (int)$this->t['switch_height'] > 0 && $this->t['switch_fixed_size'] == 1) {
						$wHArray  = array('id' => 'PhocaGalleryobjectPicture', 'border' => '0', 'width' => $this->t['switch_width'], 'height' => $this->t['switch_height']);
						$wHString = ' id="PhocaGalleryobjectPicture"  border="0" width="' . $this->t['switch_width'] . '" height="' . $this->t['switch_height'] . '"';
					} else {
						$wHArray  = array('id' => 'PhocaGalleryobjectPicture', 'border' => '0');
						$wHString = ' id="PhocaGalleryobjectPicture"  border="0"';
					}

					if (isset($this->items[$iS]->extpic) && $this->items[$iS]->extpic != '') {
						$this->t['basic_image'] = HTMLHelper::_('image', $this->items[$iS]->extl, '', $wHArray);
					} else {
						$this->t['basic_image'] = HTMLHelper::_('image', str_replace('phoca_thumb_m_', 'phoca_thumb_l_', $this->items[$iS]->linkthumbnailpath), '', $wHString);

					}
					$basic_imageSelected = 1;
				}
			}*/


			// link to large thumbnail can be in Masonry effect link to large1 thumbnail (portrait)
			$thumbLink = PhocaGalleryFileThumbnail::getThumbnailName($this->items[$iS]->filename, $iFormatD);

			// Photoswipe needs data-size parameter
			if ($this->t['detail_window'] == 14) {
				if (File::exists($thumbLink->abs)) {
					$thumbSize = @getimagesize($thumbLink->abs);
					if (isset($thumbSize[0]) && isset($thumbSize[1])) {
						$this->items[$iS]->datasize = 'data-size="' . (int)$thumbSize[0] . 'x' . (int)$thumbSize[1] . '"';
					}
				}
			}




			/*if ($extImage) {
				$imgLink     = $this->items[$iS]->extl;
				$imgLinkOrig = $this->items[$iS]->exto;
			}*/




			PhocaGalleryImageFront::assignValues($this->items[$iS], $this->t);


			// Trash icon
			if ($this->t['trash'] == 1) {
				$this->items[$iS]->trash	= 1;
			} else {
				$this->items[$iS]->trash	= 0;
			}

			// Publish Unpublish icon
			if ($this->t['publish_unpublish'] == 1) {
				$this->items[$iS]->publish_unpublish	= 1;
			} else {
				$this->items[$iS]->publish_unpublish	= 0;
			}

			// Publish Unpublish icon
			if ($this->t['approved_not_approved'] == 1) {
				$this->items[$iS]->approved_not_approved	= 1;
			} else {
				$this->items[$iS]->approved_not_approved	= 0;
			}

			// PICLENS
			if($this->t['enablecooliris']) {
				$this->items[$iS]->enable_cooliris	= 1;
			} else {
				$this->items[$iS]->enable_cooliris	= 0;
			}

			// 2. GEOTAGGING IMAGE
			// We have checked the category so if geotagging is enabled
			// and there is no geotagging data for category, then $this->t['display_icon_geo'] = 0;
			// so we need to check it for the image too, we need to set the $this->t['display_icon_geoimage'] for image only
			// we are in loop now
			$this->t['display_icon_geoimagetmp'] = 0;
			if ($this->t['display_icon_geoimage'] == 1) {

				$this->t['display_icon_geoimagetmp'] = 1;
				if (isset($this->items[$iS]->latitude) && $this->items[$iS]->latitude != '' && $this->items[$iS]->latitude != 0
					&& isset($this->items[$iS]->longitude) && $this->items[$iS]->longitude != '' && $this->items[$iS]->longitude != 0 ) {
				} else {
					$this->t['display_icon_geoimagetmp'] = 0;
				}
			}

			// GEOTAGGING
			if($this->t['display_icon_geo'] == 1 || $this->t['display_icon_geoimagetmp'] == 1) {
				$this->items[$iS]->display_icon_geo		= 1;
				$this->t['display_icon_geo_box']	= 1;// because of height of box
			} else {
				$this->items[$iS]->display_icon_geo	= 0;
			}

			// Set it back because of loop
			$this->t['display_icon_geoimagetmp'] = 0;

			// CAMERA INFO
			if($this->t['display_camera_info'] == 1) {
				$this->items[$iS]->camera_info			= 1;
			} else {
				$this->items[$iS]->camera_info			= 0;
			}

			// EXT LINK
			$this->items[$iS]->display_icon_extlink1	= 0;
			if (isset($this->items[$iS]->extlink1)) {
				$this->items[$iS]->extlink1	= explode("|", $this->items[$iS]->extlink1, 4);

				if (isset($this->items[$iS]->extlink1[0]) && $this->items[$iS]->extlink1[0] != '' && isset($this->items[$iS]->extlink1[1])) {
					$this->items[$iS]->display_icon_extlink1		= 1;
					$this->t['display_icon_extlink1_box'] = 1;// because of height of box
					if (!isset($this->items[$iS]->extlink1[2])) {
						$this->items[$iS]->extlink1[2] = '_self';
					}
					if (!isset($this->items[$iS]->extlink1[3]) || $this->items[$iS]->extlink1[3] == 1) {
						//$this->items[$iS]->extlink1[4] = JHtml::_('image', 'media/com_phocagallery/images/icon-extlink1.png', JText::_($this->items[$iS]->extlink1[1]));
						//$this->items[$iS]->extlink1[4] = PhocaGalleryRenderFront::renderIcon('extlink1', 'media/com_phocagallery/images/icon-extlink1.png', JText::_($this->items[$iS]->extlink1[1]));
						$this->items[$iS]->extlink1[4] = '<svg class="ph-si ph-si-ext-link1"><use xlink:href="#ph-si-ext-link"></use></svg>';
						$this->items[$iS]->extlink1[5] = '';
					} else {
						$this->items[$iS]->extlink1[4] = $this->items[$iS]->extlink1[1];
						$this->items[$iS]->extlink1[5] = 'style="text-decoration:underline"';
					}
				} else {
					$this->items[$iS]->display_icon_extlink1		= 0;
				}
			}

			$this->items[$iS]->display_icon_extlink2		= 0;
			if (isset($this->items[$iS]->extlink2)) {
				$this->items[$iS]->extlink2	= explode("|", $this->items[$iS]->extlink2, 4);
				if (isset($this->items[$iS]->extlink2[0]) && $this->items[$iS]->extlink2[0] != '' && isset($this->items[$iS]->extlink2[1])) {
					$this->items[$iS]->display_icon_extlink2		= 1;
					$this->t['display_icon_extlink2_box'] = 1;// because of height of box
					if (!isset($this->items[$iS]->extlink2[2])) {
						$this->items[$iS]->extlink2[2] = '_self';
					}
					if (!isset($this->items[$iS]->extlink2[3]) || $this->items[$iS]->extlink2[3] == 1) {
						//$this->items[$iS]->extlink2[4] = JHtml::_('image', 'media/com_phocagallery/images/icon-extlink2.png', JText::_($this->items[$iS]->extlink2[1]));
						//$this->items[$iS]->extlink2[4] = PhocaGalleryRenderFront::renderIcon('extlink2', 'media/com_phocagallery/images/icon-extlink2.png', JText::_($this->items[$iS]->extlink2[1]));
						$this->items[$iS]->extlink2[4] = '<svg class="ph-si ph-si-ext-link2"><use xlink:href="#ph-si-ext-link"></use></svg>';
						$this->items[$iS]->extlink2[5] = '';
					}else {
						$this->items[$iS]->extlink2[4] = $this->items[$iS]->extlink2[1];
						$this->items[$iS]->extlink2[5] = 'style="text-decoration:underline"';
					}
				} else {
					$this->items[$iS]->display_icon_extlink2		= 0;
				}
			}


			// OVERLIB
			if (!empty($this->items[$iS]->description)) {
				$divPadding = 'ph-ovrl1';
			} else {
				$divPadding = 'ph-ovrl2';
			}

			// Resize image in overlib by rate
			$wHOutput = array();
			if (isset($this->items[$iS]->extpic) && $this->items[$iS]->extpic != '') {
				if ((int)$this->t['overlibimagerate'] > 0) {
					$imgSize	= @getimagesize($this->items[$iS]->extl);
					$wHOutput	= PhocaGalleryImage::getTransformImageArray($imgSize, $this->t['overlibimagerate']);
				}

				$oImg		= HtmlHelper::_( 'image', $this->items[$iS]->extl, '' /*htmlspecialchars( addslashes($this->items[$iS]->title)) */, $wHOutput );
			} else {

				$thumbL 	= str_replace ('phoca_thumb_m1_','phoca_thumb_m_',$this->items[$iS]->linkthumbnailpath);
				$thumbL 	= str_replace ('phoca_thumb_m2_','phoca_thumb_m_',$thumbL);
				$thumbL 	= str_replace ('phoca_thumb_m3_','phoca_thumb_m_',$thumbL);
				$thumbL 	= str_replace ('phoca_thumb_m_','phoca_thumb_l_',$thumbL);

				if ((int)$this->t['overlibimagerate'] > 0) {
					$imgSize	= @getimagesize($thumbL);
					$wHOutput	= PhocaGalleryImage::getTransformImageArray($imgSize, $this->t['overlibimagerate']);
				}
				$thumbLI 	= str_replace ('phoca_thumb_m1_','phoca_thumb_m_',$this->items[$iS]->linkthumbnailpath);
				$thumbLI 	= str_replace ('phoca_thumb_m2_','phoca_thumb_m_',$thumbLI);
				$thumbLI 	= str_replace ('phoca_thumb_m3_','phoca_thumb_m_',$thumbLI);
				$oImg		= HtmlHelper::_( 'image', $thumbL, '' /*$this->items[$iS]->title*/, $wHOutput );
			}

			/*switch ($enable_overlib) {

				case 1:
				case 4:
					$uBy = '';//Uploaded by ...
					if ($enable_overlib == 4 && isset($this->items[$iS]->usernameno) && $this->items[$iS]->usernameno != '') {
						$uBy = '<div>' . Text::_('COM_PHOCAGALLERY_UPLOADED_BY') . ' <strong>'.$this->items[$iS]->usernameno.'</strong></div>';
					}
					$this->items[$iS]->overlib			= 1;
					$this->items[$iS]->overlib_value 	= "\n\n" ."onmouseover=\"return overlib('".htmlspecialchars( addslashes('<div class="pg-overlib"><center>' . $oImg . "</center></div>" . $uBy ))."', CAPTION, '". htmlspecialchars( addslashes($this->items[$iS]->title))."' ,".htmlspecialchars($this->t['overlib_attributes']).");\""." onmouseout=\"return nd();\"" . "\n";
				break;

				case 2:
				case 5:
					$uBy = '';//Uploaded by ...
					if ($enable_overlib == 5 && isset($this->items[$iS]->usernameno) && $this->items[$iS]->usernameno != '') {
						$uBy = '<div>' . Text::_('COM_PHOCAGALLERY_UPLOADED_BY') . ' <strong>'.$this->items[$iS]->usernameno.'</strong></div>';
					}
					$this->items[$iS]->overlib			= 2;

					$this->items[$iS]->description = str_replace('"', '\'', $this->items[$iS]->description);

					if (strip_tags($this->items[$iS]->description) == $this->items[$iS]->description) {
					   $this->items[$iS]->description      = str_replace("\n", '<br />', $this->items[$iS]->description);
					}

					//$this->items[$iS]->description		= str_replace("\n", '<br />', $this->items[$iS]->description);
					$sA = array(utf8_encode(chr(11)), utf8_encode(chr(160)));
					$eA	= array("\t", "\n", "\r", "\0");
					$this->items[$iS]->description = str_replace($sA, ' ', $this->items[$iS]->description);
					$this->items[$iS]->description = str_replace($eA, '', $this->items[$iS]->description);

					$this->items[$iS]->overlib_value 		= " onmouseover=\"return overlib('".htmlspecialchars( addslashes('<div class="pg-overlib"><div class="'.$divPadding.'">'.$this->items[$iS]->description.'</div></div>'. $uBy))."', CAPTION, '". htmlspecialchars( addslashes($this->items[$iS]->title))."', ".htmlspecialchars($this->t['overlib_attributes']).");\""
				. " onmouseout=\"return nd();\" ";
				break;

				case 3:
				case 6:
					$uBy = '';//Uploaded by ...
					if ($enable_overlib == 6 && isset($this->items[$iS]->usernameno) && $this->items[$iS]->usernameno != '') {
						$uBy = '<div>' . Text::_('COM_PHOCAGALLERY_UPLOADED_BY') . ' <strong>'.$this->items[$iS]->usernameno.'</strong></div>';
					}
					$this->items[$iS]->overlib			= 3;

					$this->items[$iS]->description = str_replace('"', '\'', $this->items[$iS]->description);
					$this->items[$iS]->description		= str_replace("\n", '<br />', $this->items[$iS]->description);
					$sA = array(utf8_encode(chr(11)), utf8_encode(chr(160)));
					$eA	= array("\t", "\n", "\r", "\0");
					$this->items[$iS]->description = str_replace($sA, ' ', $this->items[$iS]->description);
					$this->items[$iS]->description = str_replace($eA, '', $this->items[$iS]->description);

					$this->items[$iS]->overlib_value 		= " onmouseover=\"return overlib('".PhocaGalleryText::strTrimAll(htmlspecialchars( addslashes( '<div class="pg-overlib"><div style="text-align:center"><center>' . $oImg . '</center></div><div class="'.$divPadding.'">' . $this->items[$iS]->description . '</div></div>' . $uBy)))."', CAPTION, '". htmlspecialchars( addslashes($this->items[$iS]->title))."', ".htmlspecialchars($this->t['overlib_attributes']).");\""
					. " onmouseout=\"return nd();\" ";
				break;

				default:
					$this->items[$iS]->overlib			= 0;
					$this->items[$iS]->overlib_value	= '';
				break;
			}*/

			// Phoca Cart link
			if ($this->t['display_icon_pc'] == 1) {

				phocagalleryimport('phocagallery.phocacart.phocacart');
				$pcLink	= PhocaGalleryPhocaCart::getPcLink($this->items[$iS]->pcproductid, $errorMsg);

				if (!$pcLink) {
					$this->items[$iS]->display_icon_pc	= '';
				} else {
					$this->items[$iS]->display_icon_pc	= 1;
					$this->items[$iS]->pclink			= $pcLink;
					$this->t['display_icon_pcbox']	= 1;// because of height of box
				}

			} else {
				$this->items[$iS]->display_icon_pc = '';
			}
			// End PC Link

			// VirtueMart link
			if ($this->t['display_icon_vm'] == 1) {

				phocagalleryimport('phocagallery.virtuemart.virtuemart');
				$vmLink	= PhocaGalleryVirtueMart::getVmLink($this->items[$iS]->vmproductid, $errorMsg);

				if (!$vmLink) {
					$this->items[$iS]->display_icon_vm	= '';
				} else {
					$this->items[$iS]->display_icon_vm	= 1;
					$this->items[$iS]->vmlink			= $vmLink;
					$this->t['display_icon_vmbox']	= 1;// because of height of box
				}

			} else {
				$this->items[$iS]->display_icon_vm = '';
			}
			// End VM Link

			// V O T E S - IMAGES
			if ((int)$this->t['display_rating_img'] == 1) {
				$this->items[$iS]->votescountimg		= 0;
				$this->items[$iS]->votesaverageimg	= 0;
				$this->items[$iS]->voteswidthimg		= 0;
				$votesStatistics	= PhocaGalleryRateImage::getVotesStatistics((int)$this->items[$iS]->id);
				if (!empty($votesStatistics->count)) {
					$this->items[$iS]->votescountimg = $votesStatistics->count;
				}
				if (!empty($votesStatistics->average)) {
					$this->items[$iS]->votesaverageimg = $votesStatistics->average;
					if ($this->items[$iS]->votesaverageimg > 0) {
						$this->items[$iS]->votesaverageimg 	= round(((float)$this->items[$iS]->votesaverageimg / 0.5)) * 0.5;
						$this->items[$iS]->voteswidthimg		= 16 * $this->items[$iS]->votesaverageimg;
					} else {
						$this->items[$iS]->votesaverageimg = (int)0;// not float displaying
					}

				}
			}


			$this->items[$iS]->display_icon_commentimg	= 0;
			// C O M M E N T S - IMAGES
			if ((int)$this->t['display_comment_img'] == 1 || (int)$this->t['display_comment_img'] == 3) {
				$this->items[$iS]->display_icon_commentimg	= 1;
				$this->t['display_icon_commentimg_box']	= 1;// because of height of box

			}

			// COMMENTS IMAGES, masonry
			if ((int)$this->t['display_comment_img'] == 2 || (int)$this->t['display_comment_img'] == 3) {
				//PhocaGalleryCommentImage::renderCommentImageJS();
				$this->items[$iS]->allready_commented = 0;
				$this->items[$iS]->allready_commented = PhocaGalleryCommentImage::checkUserComment( (int)$this->items[$iS]->id, (int)$this->t['user']->id );
				$this->items[$iS]->comment_items	  = PhocaGalleryCommentImage::displayComment( $this->items[$iS]->id );

			}



			// Overlib class
		/*	if ($this->items[$iS]->overlib == 0) {
				$this->items[$iS]->ooverlibclass = array('class' => 'pg-image img img-responsive', 'itemprop' => "thumbnail");
			} else {
				$this->items[$iS]->ooverlibclass = array('class' => 'pimo pg-image img img-responsive img-responsive2', 'itemprop' => "thumbnail");
			}*/

			// Tags
			$this->items[$iS]->otags = '';
			if ($this->t['display_tags_links'] == 1 || $this->t['display_tags_links'] == 3) {
				$this->items[$iS]->otags = PhocaGalleryTag::displayTags($this->items[$iS]->id);
				if ($this->items[$iS]->otags != '') {
					$this->t['displaying_tags_true'] = 1;
				}
			}


			$iS++;
		}


		// END IMAGES


		// Upload Form - - - - - - - - - - - - -
		// Set FTP form
		$ftp = !ClientHelper::hasCredentials('ftp');

		// PARAMS - Upload size
		$this->t['uploadmaxsize'] = $this->params->get( 'upload_maxsize', 3000000 );


		$this->session = Factory::getSession();

		//$this->assignRef('uploadmaxsize', $upload_maxsize);
		// END Upload Form - - - - - - - - - - - -


		// V O T E S - CATEGORY
		// Only registered (VOTES + COMMENTS)
		$this->t['not_registered'] 	= true;
		$this->t['name']		= '';
		if ($access > 0) {
			$this->t['not_registered'] 	= false;
			$this->t['name']				= $this->t['user']->name;
		}

		// VOTES Statistics
		if ((int)$this->t['display_rating'] == 1 && (int)$id > 0) {
			$this->t['votescount']		= 0;
			$this->t['votesaverage'] 	= 0;
			$this->t['voteswidth']		= 0;
			$votesStatistics	= PhocaGalleryRateCategory::getVotesStatistics((int)$id);

			if (!empty($votesStatistics->count)) {
				$this->t['votescount'] = $votesStatistics->count;
			}
			if (!empty($votesStatistics->average)) {
				$this->t['votesaverage'] = $votesStatistics->average;
				if ($this->t['votesaverage'] > 0) {
					$this->t['votesaverage'] 	= round(((float)$this->t['votesaverage'] / 0.5)) * 0.5;
					$this->t['voteswidth']		= 22 * $this->t['votesaverage'];
				} else {
					$this->t['votesaverage'] = (int)0;// not float displaying
				}

			}
			if ((int)$this->t['votescount'] > 1) {
				$this->t['votestext'] = 'COM_PHOCAGALLERY_VOTES';
			} else {
				$this->t['votestext'] = 'COM_PHOCAGALLERY_VOTE';
			}

			// Already rated?
			$this->t['alreay_rated']	= PhocaGalleryRateCategory::checkUserVote( (int)$id, (int)$this->t['user']->id );
		}



		// COMMENTS
		if ((int)$this->t['display_comment'] == 1 && (int)$id > 0) {
			//$document->addScript(JUri::base(true).'/media/com_phocagallery/js/comments.js');
			//$document->addCustomTag(PhocaGalleryRenderFront::renderCommentJS((int)$this->t['max_comment_char']));

			$this->t['already_commented'] 	= PhocaGalleryCommentCategory::checkUserComment( (int)$id, (int)$this->t['user']->id );
			$commentItem				= PhocaGalleryCommentCategory::displaycomment( (int)$id );

			$this->t['commentitem']		= $commentItem;
		}



		// - - - - - - - - - - - - - - - -
		// TABS
		// - - - - - - - - - - - - - - - -
		$this->t['displaytabs']	= 0;
		$this->t['currenttab']	= 0;

		if ((int)$id > 0) {
			$displayTabs	= 0;

			// R A T I N G
			if ((int)$this->t['display_rating'] == 0) {
				$currentTab['rating'] = -1;
			} else {
				$currentTab['rating'] = $displayTabs;
				$displayTabs++;
			}

			// C O M M E N T S
			if ((int)$this->t['display_comment'] == 0) {
				$currentTab['comment'] = -1;
			} else {
				$currentTab['comment'] = $displayTabs;
				$displayTabs++;
			}

			// S T A T I S T I C S
			if ((int)$this->t['displaycategorystatistics'] == 0) {
				$currentTab['statistics'] = -1;
			} else {
				$currentTab['statistics'] = $displayTabs;
				$displayTabs++;


				$this->t['displaymaincatstat']			= $this->params->get( 'display_main_cat_stat', 1 );
				$this->t['displaylastaddedcatstat']	= $this->params->get( 'display_lastadded_cat_stat', 1 );
				$this->t['displaymostviewedcatstat']	= $this->params->get( 'display_mostviewed_cat_stat', 1 );
				$this->t['countlastaddedcatstat']		= $this->params->get( 'count_lastadded_cat_stat', 3 );
				$this->t['countmostviewedcatstat']		= $this->params->get( 'count_mostviewed_cat_stat', 3 );


				if ($this->t['displaymaincatstat'] == 1) {
					$numberImgP		= $model->getCountImages($id, 1);
					$this->t['numberimgpub'] 	= $numberImgP->countimg;
					$numberImgU		= $model->getCountImages($id, 0);
					$this->t['numberimgunpub'] = $numberImgU->countimg;
					$this->categoryViewed	= $model->getHits($id);
					$this->t['categoryviewed'] = $this->categoryViewed->catviewed;
				}

				// M O S T   V I E W E D   I M A G E S
				//$this->t['mostviewedimg'] = array();
				if ($this->t['displaymostviewedcatstat'] == 1) {
					$mostViewedImages	= $model->getStatisticsImages($id, 'hits', 'DESC', $this->t['countmostviewedcatstat']);
					for($i = 0; $i <  count($mostViewedImages); $i++) {
						$itemMVI 		=& $mostViewedImages[$i];
						$itemMVI->button 				= &$this->button;
						$itemMVI->button2 				= &$this->button2;
						$itemMVI->buttonother 			= &$this->buttonother;
						$itemMVI->display_icon_detail 	= $this->t['display_icon_detail'];
						$itemMVI->display_name 			= $this->t['display_name'];
						$itemMVI->type		 			= 2;

						$altValue	= PhocaGalleryRenderFront::getAltValue($this->t['altvalue'], $itemMVI->title, $itemMVI->description, $itemMVI->metadesc);
						$itemMVI->altvalue				= $altValue;



						if ($extImage) {
							$imgLink     = $itemMVI->extl;
							$imgLinkOrig = $itemMVI->exto;
						}




						$dataSizeW = $this->t['large_image_width'];
						$dataSizeH = $this->t['large_image_height'];


						PhocaGalleryImageFront::assignValues($itemMVI, $this->t);

						//$this->t['mostviewedimg'][] = $itemMVI;
						if ($itemMVI->extw != '') {
							$extw 				= explode(',',$itemMVI->extw);
							$itemMVI->extw		= $extw[1];
							$dataSizeW 			= $extw[0];
						}
						if ($itemMVI->exth != '') {
							$exth 				= explode(',',$itemMVI->exth);
							$itemMVI->exth	= $exth[1];
							$dataSizeH 		= $exth[0];
						}

						$itemMVI->datasize = '';


						// Photoswipe needs data-size parameter
						if ( $this->t['detail_window'] == 14) {
							if ($itemMVI->extw != '' && $itemMVI->exth != '') {
								$itemMVI->datasize 		= 'data-size="'.(int)$dataSizeW.'x'.(int)$dataSizeH. '"';
							} else {
								if (File::exists($thumbLink->abs)) {
									$thumbSize	= @getimagesize($thumbLink->abs);
									if (isset($thumbSize[0]) && isset($thumbSize[1])) {
										$itemMVI->datasize 		= 'data-size="'.(int)$thumbSize[0].'x'.(int)$thumbSize[1]. '"';
									}
								}
							}
						}
					}
					$this->t['mostviewedimg'] = $mostViewedImages;
				}

				// L A S T   A D D E D   I M A G E S
				//$this->t['lastaddedimg'] = array();
				if ($this->t['displaylastaddedcatstat'] == 1) {
					$lastAddedImages	= $model->getStatisticsImages($id, 'date', 'DESC', $this->t['countlastaddedcatstat']);
					for($i = 0; $i <  count($lastAddedImages); $i++) {
						$itemLAI 		=& $lastAddedImages[$i];
						$itemLAI->link 	= Route::_('index.php?option=com_phocagallery&view=detail&catid='.$this->category->slug.'&id='. $itemLAI->slug.'&tmpl=component'.'&Itemid='. $this->itemId  );
						$itemLAI->button 				= &$this->button;
						$itemLAI->button2 				= &$this->button2;
						$itemLAI->buttonother 			= &$this->buttonother;
						$itemLAI->display_icon_detail 	= $this->t['display_icon_detail'];
						$itemLAI->display_name 			= $this->t['display_name'];
						$itemLAI->type		 			= 2;

						$altValue	= PhocaGalleryRenderFront::getAltValue($this->t['altvalue'], $itemLAI->title, $itemLAI->description, $itemLAI->metadesc);
					/*	$itemLAI->altvalue				= $altValue;

						$thumbLink	= PhocaGalleryFileThumbnail::getThumbnailName($itemLAI->filename, 'large');
						$siteLink 	= Route::_('index.php?option=com_phocagallery&view=detail&catid='.$this->category->slug.'&id='. $itemLAI->slug.'&tmpl=component'.'&Itemid='. $this->itemId  );
						$imgLink	= JUri::base(true) . '/'.$thumbLink->rel;*/

						$dataSizeW = $this->t['large_image_width'];
						$dataSizeH = $this->t['large_image_height'];

						PhocaGalleryImageFront::assignValues($itemLAI, $this->t);

					/*	switch ($this->t['detail_window']) {
							case 2:
							case 3:
							case 8:
							case 14:
							$itemLAI->link 		= $imgLink;
							break;
							default:
							$itemLAI->link 		= $siteLink;
							break;
						}*/
						//$this->t['lastaddedimg'][] = $itemLAI;

						if ($itemLAI->extw != '') {
							$extw 				= explode(',',$itemLAI->extw);
							$itemLAI->extw		= $extw[1];
							$dataSizeW = $extw[0];
						}
						if ($itemLAI->exth != '') {
							$exth 				= explode(',',$itemLAI->exth);
							$itemLAI->exth	= $exth[1];
							$dataSizeH = $exth[0];
						}

						$itemLAI->datasize = '';


						// Photoswipe needs data-size parameter
						if ( $this->t['detail_window'] == 14) {
							if ($itemLAI->extw != '' && $itemLAI->exth != '') {
								$itemLAI->datasize 		= 'data-size="'.(int)$dataSizeW.'x'.(int)$dataSizeH. '"';
							} else {
								if (File::exists($thumbLink->abs)) {
									$thumbSize	= @getimagesize($thumbLink->abs);
									if (isset($thumbSize[0]) && isset($thumbSize[1])) {
										$itemLAI->datasize 		= 'data-size="'.(int)$thumbSize[0].'x'.(int)$thumbSize[1]. '"';
									}
								}
							}
						}
					}

					$this->t['lastaddedimg'] = $lastAddedImages;
				}
			}

			// G E O T A G G I N G
			if ((int)$this->t['displaycategorygeotagging'] == 0) {
				$currentTab['geotagging'] = -1;
			} else if ( $this->map['longitude'] == '') {
				$currentTab['geotagging'] = -1;
			} else if ( $this->map['latitude'] == '') {
				$currentTab['geotagging'] = -1;
			} else {
				$currentTab['geotagging'] = $displayTabs;
				$displayTabs++;

				$this->t['googlemapsapikey'] 			= $this->params->get( 'google_maps_api_key', '' );
				$this->t['categorymapwidth'] 			= $this->params->get( 'category_map_width', '' );
				$this->t['categorymapheight'] 			= $this->params->get( 'category_map_height', 400 );

			}


			if ((int)$this->t['displaycreatecat'] == 0) {
				$currentTab['createsubcategory'] = -1;
			}else {
				$currentTab['createsubcategory'] = $displayTabs;
				$displayTabs++;
			}


			// = = = = = = = = = =
			// U P L O A D
			// = = = = = = = = = =
			$this->t['ftp'] 		= !ClientHelper::hasCredentials('ftp');


			// SEF problem
			$isThereQM = false;
			$isThereQM = preg_match("/\?/i", $this->t['action']);

			if ($isThereQM) {
				$amp = '&'; // will be protected by htmlspecialchars
			} else {
				$amp = '?';
			}
			$isThereTab = false;
			$isThereTab = preg_match("/tab=/i", $this->t['action']);



			if ((int)$this->t['displayupload'] == 0) {
				$currentTab['upload'] = -1;
			}else {
				$currentTab['upload'] = $displayTabs;
				$displayTabs++;
			}


			if ((int)$this->t['ytbupload'] == 0 || (int)$this->t['displayupload'] == 0) {
				$currentTab['ytbupload'] = -1;
			}else {
				$currentTab['ytbupload'] = $displayTabs;
				$displayTabs++;
			}

			if ((int)$this->t['enablemultiple'] < 1 || (int)$this->t['displayupload'] == 0) {
				$currentTab['multipleupload'] = -1;
			}else {
				$currentTab['multipleupload'] = $displayTabs;
				$displayTabs++;
			}

			if ((int)$this->t['enablejava'] < 1 || (int)$this->t['displayupload'] == 0) {
				$currentTab['javaupload'] = -1;
			}else {
				$currentTab['javaupload'] = $displayTabs;
				$displayTabs++;
			}

			$this->t['displaytabs']	= $displayTabs;
			$this->t['currenttab']	= $currentTab;


			// - - - - - - - - - - -
			// Upload
			// - - - - - - - - - - -
			if ((int)$this->t['displayupload'] == 1) {
				$sU							= new PhocaGalleryFileUploadSingle();
				$sU->returnUrl				= Route::_($this->t['action'] . $amp .'task=upload&'. $this->session->getName().'='.$this->session->getId() .'&'. Session::getFormToken().'=1&viewback=category&tab='.$this->t['currenttab']['upload']);
				$sU->tab					= $this->t['currenttab']['upload'];
				$this->t['su_output']	= $sU->getSingleUploadHTML(1);
				$this->t['su_url']		= Route::_($this->t['action'] . $amp .'task=upload&'. $this->session->getName().'='.$this->session->getId() .'&'. Session::getFormToken().'=1&viewback=category&tab='.$this->t['currenttab']['upload']);

			}

			// - - - - - - - - - - -
			// Youtube Upload (single upload form can be used)
			// - - - - - - - - - - -


			if ((int)$this->t['ytbupload'] == 1 && $this->t['displayupload'] == 1 ) {
				$sYU						= new PhocaGalleryFileUploadSingle();
				$sYU->returnUrl				= Route::_($this->t['action'] . $amp .'task=ytbupload&'. $this->session->getName().'='.$this->session->getId().'&'. Session::getFormToken().'=1&viewback=category&tab='.$this->t['currenttab']['ytbupload']);
				$sYU->tab					= $this->t['currenttab']['ytbupload'];
				$this->t['syu_output']	= $sYU->getSingleUploadHTML(1);
				$this->t['syu_url']		= Route::_($this->t['action'] . $amp .'task=ytbupload&'. $this->session->getName().'='.$this->session->getId().'&'. Session::getFormToken().'=1&viewback=category&tab='.$this->t['currenttab']['ytbupload']);
			}


			// - - - - - - - - - - -
			// Multiple Upload
			// - - - - - - - - - - -
			// Get infos from multiple upload
			$muFailed						= $app->input->get( 'mufailed', '0', 'int' );
			$muUploaded						= $app->input->get( 'muuploaded', '0', 'int' );
			$this->t['mu_response_msg']	= $muUploadedMsg 	= '';

			if ($muUploaded > 0) {
				$muUploadedMsg = Text::_('COM_PHOCAGALLERY_COUNT_UPLOADED_IMG'). ': ' . $muUploaded;
			}
			if ($muFailed > 0) {
				$muFailedMsg = Text::_('COM_PHOCAGALLERY_COUNT_NOT_UPLOADED_IMG'). ': ' . $muFailed;
			}
			if ($muFailed > 0 && $muUploaded > 0) {
				$this->t['mu_response_msg'] = '<div class="alert alert-info">'
				.Text::_('COM_PHOCAGALLERY_COUNT_UPLOADED_IMG'). ': ' . $muUploaded .'<br />'
				.Text::_('COM_PHOCAGALLERY_COUNT_NOT_UPLOADED_IMG'). ': ' . $muFailed.'</div>';
			} else if ($muFailed > 0 && $muUploaded == 0) {
				$this->t['mu_response_msg'] = '<div class="alert alert-error alert-danger">'
				.Text::_('COM_PHOCAGALLERY_COUNT_NOT_UPLOADED_IMG'). ': ' . $muFailed.'</div>';
			} else if ($muFailed == 0 && $muUploaded > 0){
				$this->t['mu_response_msg'] = '<div class="alert alert-success">'
				.Text::_('COM_PHOCAGALLERY_COUNT_UPLOADED_IMG'). ': ' . $muUploaded.'</div>';
			} else {
				$this->t['mu_response_msg'] = '';
			}

			if((int)$this->t['enablemultiple']  == 1 && (int)$this->t['displayupload'] == 1) {

				PhocaGalleryFileUploadMultiple::renderMultipleUploadLibraries();
				$mU						= new PhocaGalleryFileUploadMultiple();
				$mU->frontEnd			= 1;
				$mU->method				= $this->t['multipleuploadmethod'];
				$mU->url				= $this->t['action'] . $amp .'controller=category&task=multipleupload&'
										// . $this->session->getName().'='.$this->session->getId().'&'
										 . Session::getFormToken().'=1&tab='.$this->t['currenttab']['multipleupload'];


				// Remove active tab from URL for reload URL - which needs to have current tab not active tab
				$uriTab 				= Uri::getInstance($this->t['action'] );
				$uriTab->delVar("tab");

				$mU->reload				= $uriTab->toString() . $amp
										//. $this->session->getName().'='.$this->session->getId().'&'
										. Session::getFormToken().'=1&tab='.$this->t['currenttab']['multipleupload'];


				$mU->maxFileSize		= PhocaGalleryFileUploadMultiple::getMultipleUploadSizeFormat($this->t['uploadmaxsize']);
				$mU->chunkSize			= '1mb';
				$mU->imageHeight		= $this->t['multipleresizeheight'];
				$mU->imageWidth			= $this->t['multipleresizewidth'];
				$mU->imageQuality		= 100;
				$mU->renderMultipleUploadJS(0, $this->t['multipleuploadchunk']);
				$this->t['mu_output']= $mU->getMultipleUploadHTML();
			}

			// - - - - - - - - - - -
			// Java Upload
			// - - - - - - - - - - -
			if((int)$this->t['enablejava']  == 1 && (int)$this->t['displayupload'] == 1) {
				$jU							= new PhocaGalleryFileUploadJava();
				$jU->width					= $this->t['javaboxwidth'];
				$jU->height					= $this->t['javaboxheight'];
				$jU->resizewidth			= $this->t['multipleresizewidth'];
				$jU->resizeheight			= $this->t['multipleresizeheight'];
				$jU->uploadmaxsize			= $this->t['uploadmaxsize'];
				$jU->returnUrl				= $this->t['action'] . $amp
											. $this->session->getName().'='.$this->session->getId().'&'
											. Session::getFormToken().'=1&tab='.$this->t['currenttab']['javaupload'];
				$jU->url					= $this->t['action'] . $amp .'controller=category&task=javaupload&amp;'
											. $this->session->getName().'='.$this->session->getId().'&'
											. Session::getFormToken().'=1&amp;tab='.$this->t['currenttab']['javaupload'];
				$jU->source 				= Uri::root(true).'/media/com_phocagallery/js/jupload/wjhk.jupload.jar';
				$this->t['ju_output']	= $jU->getJavaUploadHTML();

			}
		}

		// ADD STATISTICS
		if ((int)$id > 0) {
			$model->hit($id);
		}

		// ADD JAK DATA CSS style
		/*if ( $this->t['detail_window'] == 6 ) {
			$document->addCustomTag('<script type="text/javascript">'
			. 'var dataJakJs = ['
			. implode(',', $this->t['jakdatajs'])
			. ']'
			. '</script>');
		}*/

		// Detail Window - will be popup or not
		if ($this->t['detail_window'] == 7) {
			$this->t['tmplcom']			= '';
			$this->t['tmplcomcomments']	= '';

		} else {
			$this->t['tmplcom'] 			= '&tmpl=component';
			$this->t['tmplcomcomments'] 	= '&tmpl=component';

		}
		if ($this->t['display_comment_nopup'] == 1) {
			$this->t['tmplcomcomments']	= '';
		}


		$this->t['boxsize'] 		= PhocaGalleryImage::setBoxSize($this->t, 2);
		$this->t['boxsizestat'] 	= PhocaGalleryImage::setBoxSize($this->t, 3);

		$masBoxWidth = $this->t['boxsize']['width'] + 20;
		// Masonry effect
		/*if ($this->t['diff_thumb_height'] == 2) {
			$document->addScript(Uri::base(true).'/media/com_phocagallery/js/masonry/masonry.min.js');

			if ($this->t['masonry_center'] == 1) {
				$document->addScript(Uri::base(true).'/media/com_phocagallery/js/masonry/masonry.initialize.center.js');
			} else if ($this->t['masonry_center'] == 2) {
				$document->addCustomTag('<script type="text/javascript">
				window.onload = function() {
				  var wall = new Masonry( document.getElementById(\'pg-msnr-container\'), {
					isFitWidth: true,
					isAnimated: true
				  });
				};
				</script>');
			} else {
				$document->addScript(Uri::base(true).'/media/com_phocagallery/js/masonry/masonry.initialize.js');
			}


		}*/

		//$this->t['ebc'] = '<div style="text-align:right;color:#ccc;display:block">Powered by <a href="https://www.phoca.cz/phocagallery">Phoca Gallery</a></div>';


/*
		$s = '';


		if ($this->t['responsive'] == 0 ) {
			$wT = 'width';
			$hT = 'height';

			$s .= "\n" . '#phocagallery img {'."\n";
			$s .= '   max-width: none;'."\n";
			$s .= "\n" . '}'."\n";

		} else {

			$wT = 'max-width';
			$hT = 'max-height';
		}

	/*	if ($this->t['equal_heights'] == 1) {
			HTMLHelper::_('jquery.framework', false);
			$document->addScript(Uri::root(true).'/media/com_phocagallery/js/jquery.equalheights.min.js');
			$document->addScriptDeclaration(
			'jQuery(window).load(function(){
				jQuery(\'.pg-cv-box\').equalHeights();
			});');
		}

		// CSS Specific
	/*	$s .= "\n" . '#phocagallery {'."\n";
		if ($this->t['phocagallery_center'] == 1 || $this->t['phocagallery_center'] == 3) {
			$s .= '   margin: 0 auto; text-align: center;'."\n";
		}
		if ($this->t['phocagallery_width'] != '') {
			$s .= '   width: '.$this->t['phocagallery_width'].'px;'."\n";
		}
		$s .= '}'."\n";

		if ($this->t['phocagallery_center'] == 1 || $this->t['phocagallery_center'] == 3) {
			$s .= "\n" . '#pg-msnr-container {'."\n";
			$s .= '   margin: 0 auto;'."\n";
			$s .= '}'."\n";
		}

		$s .= '.pg-cv-box {'."\n";
		if ($this->t['diff_thumb_height'] > 0) {

		} else {
			$s .= '   '.$hT.': '.$this->t['boxsize']['height'].'px;'."\n";
		}
		$s .= '   '.$wT.': '.$this->t['boxsize']['width'].'px;'."\n";
		$s .= '}'."\n";

		$s .= '.pg-cv-box-stat {'."\n";
		$s .= '   '.$hT.': '.$this->t['boxsizestat']['height'].'px;'."\n";
		$s .= '   '.$wT.': '.$this->t['boxsizestat']['width'].'px;'."\n";
		$s .= '}'."\n";

		$s .= '.pg-cv-box-img {'."\n";

		$s .= '   '.$hT.': '.$this->t['imageheight'].'px;'."\n";
		$s .= '   '.$wT.': '.$this->t['imagewidth'].'px;'."\n";
		$s .= '}'."\n";

		$document->addCustomTag('<style type="text/css">'.$s.'</style>');

*/
		$this->_prepareDocument();

		parent::display($tpl);
	}

	protected function _prepareDocument() {

		$app		= Factory::getApplication();
		$menus		= $app->getMenu();
		$pathway 	= $app->getPathway();
		//$this->params		= $app->getParams();
		$title 		= null;

		$this->t['gallerymetakey'] 		= $this->params->get( 'gallery_metakey', '' );
		$this->t['gallerymetadesc'] 		= $this->params->get( 'gallery_metadesc', '' );

		$menu = $menus->getActive();

		/*if ($menu) {
			$this->params->def('page_heading', $this->params->get('page_title', $menu->title));
		} else {
			$this->params->def('page_heading', Text::_('JGLOBAL_ARTICLES'));
		}*/
		if ($menu && $this->params->get('display_menu_link_title', 1) == 1) {
			$this->params->def('page_heading', $this->params->get('page_title', $menu->title));
		}

		$title = $this->params->get('page_title', '');


		if (empty($title)) {
			$title = htmlspecialchars_decode($app->get('sitename'));
		} else if ($app->get('sitename_pagetitles', 0) == 1) {
			$title = Text::sprintf('JPAGETITLE', htmlspecialchars_decode($app->get('sitename')), $title);

			if ($this->t['display_cat_name_title'] == 1 && isset($this->category->title) && $this->category->title != '') {
				$title = $title .' - ' .  $this->category->title;
			}

		} else if ($app->get('sitename_pagetitles', 0) == 2) {

			if ($this->t['display_cat_name_title'] == 1 && isset($this->category->title) && $this->category->title != '') {
				$title = $title .' - ' .  $this->category->title;
			}

			$title = Text::sprintf('JPAGETITLE', $title, htmlspecialchars_decode($app->get('sitename')));
		}

	/*	if (isset($this->category->title) && $this->category->title != '') {
			$title = $title .' - ' .  $this->category->title;
		} */

		/*if ($this->t['display_cat_name_title'] == 1 && isset($this->category->title) && $this->category->title != '') {
			$title = $title .' - ' .  $this->category->title;
		}*/

		$this->document->setTitle($title);

		if (isset($this->category->metadesc) && $this->category->metadesc != '') {
			$this->document->setDescription($this->category->metadesc);
		} else if ($this->t['gallerymetadesc'] != '') {
			$this->document->setDescription($this->t['gallerymetadesc']);
		} else if ($this->params->get('menu-meta_description', '')) {
			$this->document->setDescription($this->params->get('menu-meta_description', ''));
		}

		if (isset($this->category->metadesc) && $this->category->metakey != '') {
			$this->document->setMetadata('keywords', $this->category->metakey);
		} else if ($this->t['gallerymetakey'] != '') {
			$this->document->setMetadata('keywords', $this->t['gallerymetakey']);
		} else if ($this->params->get('menu-meta_keywords', '')) {
			$this->document->setMetadata('keywords', $this->params->get('menu-meta_keywords', ''));
		}

		if ($app->get('MetaTitle') == '1' && $this->params->get('menupage_title', '')) {
			$this->document->setMetaData('title', $this->params->get('page_title', ''));
		}
		// Features added by Bernard Gilly - alphaplug.com
		// load external plugins
		/*$user       = JFactory::getUser();
		$catid      = $this->category->id;
		$db	   = Factory::getDBO();
		$query = "SELECT owner_id FROM #__phocagallery_categories WHERE `id`='$catid'";
		$db->setQuery( $query );
		$ownerid = $db->loadResult();
		$dispatcher = JDispatcher::getInstance();
		PluginHelper::importPlugin('phocagallery');
		$results = Factory::getApplication()->triggerEvent('onViewCategory', array($catid, $ownerid, $user->id) );
		*/

		if (isset($this->category->id) && isset($this->category->owner_id)) {
			$user       = Factory::getUser();
			//$dispatcher = JDispatcher::getInstance();
			PluginHelper::importPlugin('phocagallery');
			$results = Factory::getApplication()->triggerEvent('onViewCategory', array((int)$this->category->id, (int)$this->category->owner_id, (int)$user->id) );
		}

		/*if ($app->get('MetaAuthor') == '1') {
			$this->document->setMetaData('author', $this->item->author);
		}

		/*$mdata = $this->item->metadata->toArray();
		foreach ($mdata as $k => $v) {
			if ($v) {
				$this->document->setMetadata($k, $v);
			}
		}*/

	}

	/**
	 * Method to add Breadcrubms in Phoca Gallery
	 * @param array $this->category Object array of Category
	 * @param int $rootId Id of Root Category
	 * @param int $displayStyle Displaying of Breadcrubm - Nothing, Category Name, Menu link with Name
	 * @return string Breadcrumbs
	 */
	function _addBreadCrumbs($rootId, $displayStyle)
	{
	    $app = Factory::getApplication();
		$i = 0;
		$category = $this->category;

	    while (isset($category->id))
	    {

			$crumbList[$i++] = $category;
			if ($category->id == $rootId)
			{
				break;
			}

	        $db = Factory::getDBO();
	        $query = 'SELECT *' .
	            ' FROM #__phocagallery_categories AS c' .
	            ' WHERE c.id = '.(int) $category->parent_id.
	            ' AND c.published = 1';
	        $db->setQuery($query);
	        $rows = $db->loadObjectList('id');
			if (!empty($rows))
			{
				$category = $rows[$category->parent_id];
			}
			else
			{
				$category = '';
			}
		//	$category = $rows[$category->parent_id];
	    }

	    $pathway 		= $app->getPathway();
		$pathWayItems 	= $pathway->getPathWay();
		$lastItemIndex 	= count($pathWayItems) - 1;

	    for ($i--; $i >= 0; $i--)
	    {
			// special handling of the root category
			if ($crumbList[$i]->id == $rootId)
			{
				switch ($displayStyle)
				{
					case 0:	// 0 - only menu link
						// do nothing
						break;
					case 1:	// 1 - menu link with category name
						// replace the last item in the breadcrumb (menu link title) with the current value plus the category title
						$pathway->setItemName($lastItemIndex, $pathWayItems[$lastItemIndex]->name . ' - ' . $crumbList[$i]->title);
						break;
					case 2:	// 2 - only category name
						// replace the last item in the breadcrumb (menu link title) with the category title
						$pathway->setItemName($lastItemIndex, $crumbList[$i]->title);
						break;
				}
			}
			else
			{
				$pathway->addItem($crumbList[$i]->title, Route::_('index.php?option=com_phocagallery&view=category&id='. $crumbList[$i]->id.':'.$crumbList[$i]->alias.'&Itemid='. $this->itemId ));
			}
	    }
	}
}
?>

© 2025 Cubjrnet7