Ejemplo n.º 1
0
 protected function _setImageOrdering()
 {
     if (empty($this->_imgordering)) {
         $app = JFactory::getApplication();
         $paramsC = JComponentHelper::getParams('com_phocagallery');
         $image_ordering = $paramsC->get('image_ordering', 1);
         $this->_imgordering = PhocaGalleryOrdering::getOrderingString($app->getUserStateFromRequest('com_phocagallery.category.' . 'imgordering', 'imgordering', $image_ordering, 'int'));
     }
     return true;
 }
Ejemplo n.º 2
0
 function _loadData()
 {
     if (empty($this->_data)) {
         $app = JFactory::getApplication();
         $params =& $app->getParams();
         $image_ordering = $params->get('image_ordering', 1);
         $imageOrdering = PhocaGalleryOrdering::getOrderingString($image_ordering);
         $query = 'SELECT a.*, c.accessuserid as cataccessuserid, c.access as cataccess,' . ' CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(\':\', c.id, c.alias) ELSE c.id END as catslug,' . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug' . ' FROM #__phocagallery AS a' . ' LEFT JOIN #__phocagallery_categories AS c ON c.id = a.catid' . ' WHERE a.id = ' . (int) $this->_id . $imageOrdering['output'];
         $this->_db->setQuery($query);
         $this->_data = $this->_db->loadObject();
         return (bool) $this->_data;
     }
     return true;
 }
Ejemplo n.º 3
0
 function display($tpl = null)
 {
     $app = JFactory::getApplication();
     $user = JFactory::getUser();
     $userLevels = implode(',', $user->authorisedLevels());
     $db =& JFactory::getDBO();
     //$menu 		= &JSite::getMenu();
     $menu = JFactory::getApplication()->getMenu();
     $document =& JFactory::getDocument();
     $params = $app->getParams();
     // Specific category
     $id = JRequest::getVar('id', 0, '', 'int');
     // Params
     $categories = $params->get('feed_cat_ids', '');
     $ordering = $params->get('feed_img_ordering', 6);
     $imgCount = $params->get('feed_img_count', 5);
     $feedTitle = $params->get('feed_title', JText::_('COM_PHOCAGALLERY_GALLERY'));
     $tmpl['picasa_correct_width_m'] = (int) $params->get('medium_image_width', 100);
     $tmpl['picasa_correct_height_m'] = (int) $params->get('medium_image_height', 100);
     $document->setTitle($this->escape(html_entity_decode($feedTitle)));
     if ($id > 0) {
         $wheres[] = ' c.id =' . (int) $id;
     } else {
         if (count($categories) > 1) {
             JArrayHelper::toInteger($categories);
             $categoriesString = implode(',', $categories);
             $wheres[] = ' c.id IN ( ' . $categoriesString . ' ) ';
         } else {
             if ((int) $categories > 0) {
                 $wheres[] = ' c.id IN ( ' . $categories . ' ) ';
             }
         }
     }
     $imageOrdering = PhocaGalleryOrdering::getOrderingString($ordering, 6);
     $wheres[] = ' a.published = 1';
     $wheres[] = ' a.approved = 1';
     $wheres[] = ' c.published = 1';
     $wheres[] = ' c.approved = 1';
     $wheres[] = ' c.access IN (' . $userLevels . ')';
     $u = " (c.accessuserid LIKE '%0%' OR c.accessuserid LIKE '%-1%' OR c.accessuserid LIKE '%," . (int) $user->id . "' OR c.accessuserid LIKE '" . (int) $user->id . ",%' OR c.accessuserid LIKE '%," . (int) $user->id . ",%' OR c.accessuserid =" . (int) $user->id . ") ";
     $e = 'c.accessuserid IS NULL';
     $wheres[] = ' CASE WHEN c.accessuserid IS NOT NULL THEN ' . $u . ' ELSE ' . $e . ' END';
     $query = 'SELECT a.*, c.alias as catalias, c.title as categorytitle' . ' FROM #__phocagallery AS a' . ' LEFT JOIN #__phocagallery_categories AS c ON a.catid = c.id' . ' WHERE ' . implode(' AND ', $wheres) . $imageOrdering['output'];
     $db->setQuery($query, 0, $imgCount);
     $images = $db->loadObjectList();
     foreach ($images as $keyI => $value) {
         $item = new JFeedItem();
         $title = $this->escape($value->title);
         $title = html_entity_decode($title);
         $item->title = $title;
         $link = PhocaGalleryRoute::getCategoryRoute($value->catid, $value->catalias);
         $item->link = JRoute::_($link);
         // imgDate
         $imgDate = '';
         $imgDate = JHtml::Date($value->date, "Y-m-d h:m:s");
         if ($imgDate != '') {
             $item->date = $imgDate;
         }
         $item->description = '';
         if ($value->description != '') {
             $item->description .= '<div>' . $value->description . '</div>';
         }
         $extImage = false;
         if (isset($value->extid)) {
             $extImage = PhocaGalleryImage::isExtImage($value->extid);
         }
         // Trying to fix but in Joomla! method $this->_relToAbs - it cannot work with JRoute links :-(
         $itemL = str_replace(JURI::base(true), '', $item->link);
         if (substr($itemL, 0, 1) == '/') {
             $itemL = substr_replace($itemL, '', 0, 1);
         }
         $itemL = JURI::base() . $itemL;
         // Should really not happen
         $itemLTmp = str_replace('http://', '', $itemL);
         $pos = stripos($itemLTmp, '//');
         if ($pos !== false) {
             $itemLTmp = str_replace('//', '/', $itemLTmp);
             $itemL = 'http://' . $itemLTmp;
         }
         // - - - - - - - - - - -
         if ($extImage) {
             $correctImageRes = PhocaGalleryPicasa::correctSizeWithRate($value->extw, $value->exth, $tmpl['picasa_correct_width_m'], $tmpl['picasa_correct_height_m']);
             $imgLink = $value->extm;
             //$i = '<div><a href="'.JRoute::_($link).'"><img src="'.$imgLink .'" border="0" width="'.$correctImageRes['width'].'" height="'.$correctImageRes['height'].'" /></a></div>';
             $i = '<div><a href="' . $itemL . '"><img src="' . $imgLink . '" border="0" /></a></div>';
         } else {
             $imgLink = PhocaGalleryImageFront::displayCategoryImageOrNoImage($value->filename, 'medium');
             $i = '<div><a href="' . $itemL . '"><img src="' . $imgLink . '" border="0" /></a></div>';
         }
         $item->description .= $i;
         $item->category = $value->categorytitle;
         /*if ($value->author != '') {
         			$item->author		= $value->author;
         		}*/
         $document->addItem($item);
     }
 }
Ejemplo n.º 4
0
    public function display($tpl = null)
    {
        $app = JFactory::getApplication();
        $user = JFactory::getUser();
        $uri = JFactory::getURI();
        $path = PhocaGalleryPath::getPath();
        $this->params = $app->getParams();
        $this->tmplGeo = array();
        $this->tmpl = array();
        $this->itemId = $app->input->get('Itemid', 0, 'int');
        $document = JFactory::getDocument();
        $library = PhocaGalleryLibrary::getLibrary();
        $this->tmpl['action'] = $uri->toString();
        // CSS
        PhocaGalleryRenderFront::renderAllCSS();
        // Params
        $this->tmpl['display_name'] = 1;
        //$this->params->get( 'display_name', 1);
        $this->tmpl['image_categories_size'] = $this->params->get('image_categories_size', 1);
        $display_categories_geotagging = $this->params->get('display_categories_geotagging', 0);
        $display_access_category = $this->params->get('display_access_category', 1);
        $display_empty_categories = $this->params->get('display_empty_categories', 0);
        $hideCatArray = explode(',', trim($this->params->get('hide_categories', '')));
        $showCatArray = explode(',', trim($this->params->get('show_categories', '')));
        $showParentCatArray = explode(',', trim($this->params->get('show_parent_categories', '')));
        $this->tmpl['categoriesimageordering'] = $this->params->get('categories_image_ordering', 10);
        $this->tmpl['categoriesdisplayavatar'] = $this->params->get('categories_display_avatar');
        $this->tmpl['categories_description'] = $this->params->get('categories_description', '');
        $this->tmpl['phocagallery_width'] = $this->params->get('phocagallery_width', '');
        $this->tmpl['phocagallery_center'] = $this->params->get('phocagallery_center', '');
        $this->tmpl['display_rating'] = $this->params->get('display_rating', 0);
        $this->tmpl['categories_box_space'] = $this->params->get('categories_box_space', '');
        $this->tmpl['display_cat_desc_box'] = $this->params->get('display_cat_desc_box', 0);
        $this->tmpl['char_cat_length_name'] = $this->params->get('char_cat_length_name', 9);
        $this->tmpl['categories_mosaic_images'] = $this->params->get('categories_mosaic_images', 0);
        $this->tmpl['diff_thumb_height'] = $this->params->get('diff_thumb_height', 0);
        // L E G A C Y ===
        $this->tmpl['equalpercentagewidth'] = $this->params->get('equal_percentage_width', 1);
        $this->tmpl['categoriesboxwidth'] = $this->params->get('categories_box_width', '33%');
        $this->tmpl['categoriescolumns'] = $this->params->get('categories_columns', 1);
        $this->tmpl['displayrating'] = $this->params->get('display_rating', 0);
        $this->tmpl['display_image_categories'] = $this->params->get('display_image_categories', 1);
        if ($this->tmpl['display_image_categories'] == 1) {
        } else {
            // If legacy no different height, no mosaic
            $this->tmpl['diff_thumb_height'] = 0;
            $this->tmpl['categories_mosaic_images'] = 0;
        }
        // END L E G A C Y ===
        switch ($this->tmpl['image_categories_size']) {
            // medium
            case 1:
                $this->tmpl['picasa_correct_width'] = (int) $this->params->get('medium_image_width', 100);
                $this->tmpl['picasa_correct_height'] = (int) $this->params->get('medium_image_height', 100);
                $this->tmpl['imagewidth'] = (int) $this->params->get('medium_image_width', 100);
                $this->tmpl['imageheight'] = (int) $this->params->get('medium_image_height', 100);
                $this->tmpl['class_suffix'] = 'medium';
                if ($this->tmpl['categories_mosaic_images'] == 1) {
                    $this->tmpl['imagewidth'] = (int) $this->params->get('medium_image_width', 100) * 3;
                    $this->tmpl['imageheight'] = (int) $this->params->get('medium_image_height', 100) * 2;
                }
                break;
                // small
            // small
            case 0:
            default:
                $this->tmpl['picasa_correct_width'] = (int) $this->params->get('small_image_width', 50);
                $this->tmpl['picasa_correct_height'] = (int) $this->params->get('small_image_height', 50);
                $this->tmpl['imagewidth'] = (int) $this->params->get('small_image_width', 50);
                $this->tmpl['imageheight'] = (int) $this->params->get('small_image_height', 50);
                $this->tmpl['class_suffix'] = 'small';
                if ($this->tmpl['categories_mosaic_images'] == 1) {
                    $this->tmpl['imagewidth'] = (int) $this->params->get('small_image_width', 50) * 3;
                    $this->tmpl['imageheight'] = (int) $this->params->get('small_image_height', 50) * 2;
                }
                break;
        }
        $this->tmpl['boxsize'] = PhocaGalleryImage::setBoxSize($this->tmpl, 1);
        if ($this->tmpl['diff_thumb_height'] == 2) {
            $document->addScript(JURI::base(true) . '/components/com_phocagallery/assets/masonry/masonry.min.js');
            $document->addCustomTag('<script type="text/javascript">
			window.onload = function() {
			  var wall = new Masonry( document.getElementById(\'pg-msnr-container\'), {
				isFitWidth: true
			  });
			};
			</script>');
        }
        $s = '#phocagallery {' . "\n";
        if ($this->tmpl['phocagallery_center'] != '') {
            $s .= '   margin: 0 auto; text-align: center;' . "\n";
        }
        if ($this->tmpl['phocagallery_width'] != '') {
            $s .= '   width: ' . $this->tmpl['phocagallery_width'] . 'px;' . "\n";
        }
        $s .= '}' . "\n";
        if ($this->tmpl['phocagallery_center'] != '') {
            $s = "\n" . '#pg-msnr-container {' . "\n";
            $s .= '   margin: 0 auto;' . "\n";
            $s .= '}' . "\n";
        }
        $s .= '.pg-csv-box {' . "\n";
        $s .= '   height: ' . $this->tmpl['boxsize']['height'] . 'px;' . "\n";
        $s .= '   width: ' . $this->tmpl['boxsize']['width'] . 'px;' . "\n";
        $s .= '}' . "\n";
        $s .= '.pg-csv-box-img {' . "\n";
        $s .= '   height: ' . $this->tmpl['imageheight'] . 'px;' . "\n";
        $s .= '   width: ' . $this->tmpl['imagewidth'] . 'px;' . "\n";
        $s .= '}' . "\n";
        $document->addCustomTag('<style type="text/css">' . $s . '</style>');
        // Image next to Category in Categories View is ordered by Random as default
        $categoriesImageOrdering = PhocaGalleryOrdering::getOrderingString($this->tmpl['categoriesimageordering']);
        // MODEL
        $model = $this->getModel();
        $this->tmpl['ordering'] = $model->getOrdering();
        $this->categories = $this->get('data');
        // Add link and unset the categories which user cannot see (if it is enabled in params)
        // If it will be unset while access view, we must sort the keys from category array - ACCESS
        $unSet = 0;
        foreach ($this->categories as $key => $item) {
            // Unset empty categories if it is set
            if ($display_empty_categories == 0) {
                if ($this->categories[$key]->numlinks < 1) {
                    unset($this->categories[$key]);
                    $unSet = 1;
                    continue;
                }
            }
            // Set only selected category ID
            if (!empty($showCatArray[0]) && is_array($showCatArray)) {
                $unSetHCA = 0;
                foreach ($showCatArray as $valueHCA) {
                    if ((int) trim($valueHCA) == $this->categories[$key]->id) {
                        $unSetHCA = 0;
                        $unSet = 0;
                        break;
                    } else {
                        $unSetHCA = 1;
                        $unSet = 1;
                    }
                }
                if ($unSetHCA == 1) {
                    unset($this->categories[$key]);
                    continue;
                }
            }
            // Unset hidden category
            if (!empty($hideCatArray) && is_array($hideCatArray)) {
                $unSetHCA = 0;
                foreach ($hideCatArray as $valueHCA) {
                    if ((int) trim($valueHCA) == $this->categories[$key]->id) {
                        unset($this->categories[$key]);
                        $unSet = 1;
                        $unSetHCA = 1;
                        break;
                    }
                }
                if ($unSetHCA == 1) {
                    continue;
                }
            }
            // Unset not set parent categories - only categories which have specific parent id will be displayed
            if (!empty($showParentCatArray[0]) && is_array($showParentCatArray)) {
                $unSetPHCA = 0;
                foreach ($showParentCatArray as $valuePHCA) {
                    if ((int) trim($valuePHCA) == $this->categories[$key]->parent_id) {
                        $unSetPHCA = 0;
                        //$unSet  	= 0;
                        break;
                    } else {
                        $unSetPHCA = 1;
                        $unSet = 1;
                    }
                }
                if ($unSetPHCA == 1) {
                    unset($this->categories[$key]);
                    continue;
                }
            }
            // Link
            $this->categories[$key]->link = PhocaGalleryRoute::getCategoryRoute($item->id, $item->alias);
            // USER RIGHT - ACCESS - - - - -
            // First Check - check if we can display category
            $rightDisplay = 1;
            if (!empty($this->categories[$key])) {
                $rightDisplay = PhocaGalleryAccess::getUserRight('accessuserid', $this->categories[$key]->accessuserid, $this->categories[$key]->access, $user->getAuthorisedViewLevels(), $user->get('id', 0), $display_access_category);
            }
            // Second Check - if we can display hidden category, set Key icon for them
            //                if we don't have access right to see them
            // 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 if we get rightDisplayKey = 0 then the key will be displayed
                if (!empty($this->categories[$key])) {
                    $rightDisplayKey = PhocaGalleryAccess::getUserRight('accessuserid', $this->categories[$key]->accessuserid, $this->categories[$key]->access, $user->getAuthorisedViewLevels(), $user->get('id', 0), 0);
                    // 0 - simulation
                }
            }
            // Is Ext Image Album?
            $extCategory = PhocaGalleryImage::isExtImage($this->categories[$key]->extid, $this->categories[$key]->extfbcatid);
            // DISPLAY AVATAR, IMAGE(ordered), IMAGE(not ordered, not recursive) OR FOLDER ICON
            $displayAvatar = 0;
            if ($this->tmpl['categoriesdisplayavatar'] == 1 && isset($this->categories[$key]->avatar) && $this->categories[$key]->avatar != '' && $this->categories[$key]->avatarapproved == 1 && $this->categories[$key]->avatarpublished == 1) {
                $sizeString = PhocaGalleryImageFront::getSizeString($this->tmpl['image_categories_size']);
                $pathAvatarAbs = $path->avatar_abs . 'thumbs' . DS . 'phoca_thumb_' . $sizeString . '_' . $this->categories[$key]->avatar;
                $pathAvatarRel = $path->avatar_rel . 'thumbs/phoca_thumb_' . $sizeString . '_' . $this->categories[$key]->avatar;
                if (JFile::exists($pathAvatarAbs)) {
                    $this->categories[$key]->linkthumbnailpath = $pathAvatarRel;
                    $displayAvatar = 1;
                }
            }
            if ($displayAvatar == 0) {
                if ($extCategory) {
                    if ($this->tmpl['categories_mosaic_images'] == 1) {
                        if ($this->tmpl['categoriesimageordering'] == 10) {
                            // Special cannot be used in this case:
                            $categoriesImageOrdering = 1;
                            // set to default ordering
                        }
                        $this->categories[$key]->filenames = PhocaGalleryImageFront::getCategoryImages($this->categories[$key]->id, $categoriesImageOrdering);
                        $this->categories[$key]->mosaic = PhocaGalleryImageFront::renderMosaic($this->categories[$key]->filenames, $this->tmpl['image_categories_size'], 1, $this->tmpl['picasa_correct_width'], $this->tmpl['picasa_correct_height']);
                    } else {
                        if ($this->tmpl['categoriesimageordering'] != 10) {
                            $imagePic = PhocaGalleryImageFront::getRandomImageRecursive($this->categories[$key]->id, $categoriesImageOrdering, 1);
                            if ($rightDisplayKey == 0) {
                                $imagePic = new StdClass();
                                $imagePic->exts = '';
                                $imagePic->extm = '';
                                $imagePic->extw = '';
                                $imagePic->exth = '';
                            }
                            $fileThumbnail = PhocaGalleryImageFront::displayCategoriesExtImgOrFolder($imagePic->exts, $imagePic->extm, $imagePic->extw, $imagePic->exth, $this->tmpl['image_categories_size'], $rightDisplayKey);
                            $this->categories[$key]->linkthumbnailpath = $fileThumbnail->rel;
                            $this->categories[$key]->extw = $fileThumbnail->extw;
                            $this->categories[$key]->exth = $fileThumbnail->exth;
                            $this->categories[$key]->extpic = $fileThumbnail->extpic;
                        } else {
                            $fileThumbnail = PhocaGalleryImageFront::displayCategoriesExtImgOrFolder($this->categories[$key]->exts, $this->categories[$key]->extm, $this->categories[$key]->extw, $this->categories[$key]->exth, $this->tmpl['image_categories_size'], $rightDisplayKey);
                            $this->categories[$key]->linkthumbnailpath = $fileThumbnail->rel;
                            $this->categories[$key]->extw = $fileThumbnail->extw;
                            $this->categories[$key]->exth = $fileThumbnail->exth;
                            $this->categories[$key]->extpic = $fileThumbnail->extpic;
                        }
                    }
                } else {
                    if ($this->tmpl['categories_mosaic_images'] == 1) {
                        if ($this->tmpl['categoriesimageordering'] == 10) {
                            // Special cannot be used in this case:
                            $categoriesImageOrdering = 1;
                            // set to default ordering
                        }
                        $this->categories[$key]->filenames = PhocaGalleryImageFront::getCategoryImages($this->categories[$key]->id, $categoriesImageOrdering);
                        $this->categories[$key]->mosaic = PhocaGalleryImageFront::renderMosaic($this->categories[$key]->filenames, $this->tmpl['image_categories_size']);
                    } else {
                        // Standard Internal Image
                        if ($this->tmpl['categoriesimageordering'] != 10) {
                            $this->categories[$key]->filename = PhocaGalleryImageFront::getRandomImageRecursive($this->categories[$key]->id, $categoriesImageOrdering);
                        }
                        $fileThumbnail = PhocaGalleryImageFront::displayCategoriesImageOrFolder($this->categories[$key]->filename, $this->tmpl['image_categories_size'], $rightDisplayKey);
                        $this->categories[$key]->linkthumbnailpath = $fileThumbnail->rel;
                    }
                }
            }
            if ($rightDisplay == 0) {
                unset($this->categories[$key]);
                $unSet = 1;
            }
            // - - - - - - - - - - - - - - -
        }
        // ACCESS - - - - - -
        // In case we unset some category from the list, we must sort the array new
        if ($unSet == 1) {
            $this->categories = array_values($this->categories);
        }
        // - - - - - - - - - - - - - - - -
        // Do Pagination - we can do it after reducing all unneeded $this->categories, not before
        $totalCount = count($this->categories);
        $model->setTotal($totalCount);
        $this->tmpl['pagination'] = $this->get('pagination');
        $this->categories = array_slice($this->categories, (int) $this->tmpl['pagination']->limitstart, (int) $this->tmpl['pagination']->limit);
        // - - - - - - - - - - - - - - - -
        $this->tmpl['ems'] = '';
        // L E G A C Y ===
        $this->tmpl['countcategories'] = count($this->categories);
        $this->tmpl['begin'] = array();
        $this->tmpl['end'] = array();
        $this->tmpl['begin'][0] = 0;
        // first
        $this->tmpl['begin'][1] = ceil($this->tmpl['countcategories'] / (int) $this->tmpl['categoriescolumns']);
        $this->tmpl['end'][0] = $this->tmpl['begin'][1] - 1;
        for ($j = 2; $j < (int) $this->tmpl['categoriescolumns']; $j++) {
            $this->tmpl['begin'][$j] = ceil($this->tmpl['countcategories'] / (int) $this->tmpl['categoriescolumns'] * $j);
            $this->tmpl['end'][$j - 1] = $this->tmpl['begin'][$j] - 1;
        }
        $this->tmpl['end'][$j - 1] = $this->tmpl['countcategories'] - 1;
        // last
        $this->tmpl['endfloat'] = $this->tmpl['countcategories'] - 1;
        if ($this->tmpl['equalpercentagewidth'] == 1) {
            $fixedWidth = 100 / (int) (int) $this->tmpl['categoriescolumns'];
            $this->tmpl['fixedwidthstyle1'] = 'width:' . $fixedWidth . '%;';
            $this->tmpl['fixedwidthstyle2'] = 'width:' . $fixedWidth . '%;';
        } else {
            $this->tmpl['fixedwidthstyle1'] = '';
            //'margin: 10px;';
            $this->tmpl['fixedwidthstyle2'] = '';
            //'margin: 0px;';
        }
        // END L E G A C Y ===
        $this->_prepareDocument();
        if ($display_categories_geotagging == 1) {
            // Params
            $this->tmplGeo['categorieslng'] = $this->params->get('categories_lng', '');
            $this->tmplGeo['categorieslat'] = $this->params->get('categories_lat', '');
            $this->tmplGeo['categorieszoom'] = $this->params->get('categories_zoom', 2);
            $this->tmplGeo['googlemapsapikey'] = $this->params->get('google_maps_api_key', '');
            $this->tmplGeo['categoriesmapwidth'] = $this->params->get('categories_map_width', '');
            $this->tmplGeo['categoriesmapheight'] = $this->params->get('categorires_map_height', 500);
            // If no lng and lat will be added, Phoca Gallery will try to find it in categories
            if ($this->tmplGeo['categorieslat'] == '' || $this->tmplGeo['categorieslng'] == '') {
                phocagalleryimport('phocagallery.geo.geo');
                $latLng = PhocaGalleryGeo::findLatLngFromCategory($this->categories);
                $this->tmplGeo['categorieslng'] = $latLng['lng'];
                $this->tmplGeo['categorieslat'] = $latLng['lat'];
            }
            $this->assignRef('tmplGeo', $this->tmplGeo);
            parent::display('map');
        } else {
            parent::display($tpl);
        }
    }
Ejemplo n.º 5
0
 function getSubCategory()
 {
     $app = JFactory::getApplication();
     $params =& $app->getParams();
     $category_ordering = $params->get('category_ordering', 1);
     $categoryOrdering = PhocaGalleryOrdering::getOrderingString($category_ordering, 2);
     // Filter by language
     $whereLang = '';
     if ($this->getState('filter.language')) {
         $whereLang = ' AND cc.language IN (' . $this->_db->Quote(JFactory::getLanguage()->getTag()) . ',' . $this->_db->Quote('*') . ')';
     }
     //$query = 'SELECT c.*, COUNT(a.id) countimage' ... Cannot be used because get error if there is no image
     $query = 'SELECT cc.*, a.filename, a.extm, a.exts, a.extw, a.exth' . ' FROM #__phocagallery_categories AS cc' . ' LEFT JOIN #__phocagallery AS a ON cc.id = a.catid' . ' WHERE cc.parent_id = ' . (int) $this->_id . ' AND cc.published = 1' . ' AND cc.approved = 1' . ' AND cc.id <> ' . (int) $this->_id . $whereLang . ' GROUP BY cc.id' . $categoryOrdering['output'];
     $this->_db->setQuery($query);
     $subCategory = $this->_db->loadObjectList();
     return $subCategory;
 }
Ejemplo n.º 6
0
 protected function getThumbnailsQuery($id, $catid, $order, $completion = 0, $currentThumbs = array())
 {
     $paramsC = JComponentHelper::getParams('com_phocagallery');
     $image_ordering = $paramsC->get('image_ordering', 1);
     $wheres = array();
     if ($this->getState('filter.language')) {
         $wheres[] = ' a.language IN (' . $this->_db->Quote(JFactory::getLanguage()->getTag()) . ',' . $this->_db->Quote('*') . ')';
     }
     $imageOrdering = PhocaGalleryOrdering::getOrderingString($image_ordering, 1);
     $published = ' AND a.published = 1';
     $published .= ' AND a.approved = 1';
     $wheres[] = ' a.catid = ' . (int) $catid;
     // Known issue - thumbnails with only larger order taken
     if ($completion == 1) {
         // with completion displaying, it can happen, that the same thumbnail as active thumbnail can be selected
         // because thumbnails are selected from beginning
         $wheres[] = ' a.id <> ' . (int) $id;
         //do not complete thumbnails with image which is displayed as active
         if (!empty($currentThumbs)) {
             foreach ($currentThumbs as $k => $v) {
                 $wheres[] = ' a.id <> ' . (int) $v->id;
             }
         }
     } else {
         // with standard displaying, it cannot happen, that the active image will be displayed,
         // as only images with larger order will be displayed
         $wheres[] = ' a.ordering > ' . (int) $order;
     }
     $query = 'SELECT a.id, a.extid, a.exts, a.filename, a.title, a.description, a.metadesc, cc.alias AS catalias, cc.accessuserid AS cataccessuserid, cc.access AS cataccess,' . ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(\':\', cc.id, cc.alias) ELSE cc.id END as catslug,' . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug' . ' FROM #__phocagallery AS a' . ' LEFT JOIN #__phocagallery_categories AS cc ON cc.id = a.catid' . ' WHERE ' . implode(' AND ', $wheres) . $published . $imageOrdering['output'];
     return $query;
 }
Ejemplo n.º 7
0
 function _buildQuery()
 {
     $app = JFactory::getApplication();
     $user = JFactory::getUser();
     $gid = $user->get('aid', 0);
     // Filter by language
     $whereLang = '';
     if ($this->getState('filter.language')) {
         $whereLang = ' AND cc.language IN (' . $this->_db->Quote(JFactory::getLanguage()->getTag()) . ',' . $this->_db->Quote('*') . ')';
     }
     // Params
     $params = $app->getParams();
     $display_subcategories = $params->get('display_subcategories', 1);
     //$show_empty_categories= $params->get( 'display_empty_categories', 0 );
     //$hide_categories 		= $params->get( 'hide_categories', '' );
     $catOrdering = PhocaGalleryOrdering::getOrderingString($this->getState('catordering'), 2);
     // Display or hide subcategories in CATEGORIES VIEW
     $hideSubCatSql = '';
     if ((int) $display_subcategories != 1) {
         $hideSubCatSql = ' AND cc.parent_id = 0';
     }
     // Get all categories which should be hidden
     /*$hideCatArray	= explode( ',', trim( $hide_categories ) );
     		$hideCatSql		= '';
     		if (is_array($hideCatArray)) {
     			foreach ($hideCatArray as $value) {
     				$hideCatSql .= ' AND cc.id != '. (int) trim($value) .' ';
     			}
     		}*/
     //Display or hide empty categories
     /*	$emptyCat = '';
     		if ($show_empty_categories != 1) {
     			$emptyCat = ' AND a.published = 1';
     		}*/
     phocagalleryimport('phocagallery.ordering.ordering');
     //$categoryOrdering = PhocaGalleryOrdering::getOrderingString($category_ordering, 2);
     $query = 'SELECT cc.*, a.catid, COUNT(a.id) AS numlinks, u.username AS username, r.count AS ratingcount, r.average AS ratingaverage, uc.avatar AS avatar, uc.approved AS avatarapproved, uc.published AS avatarpublished, a.filename, a.exts, a.extm, a.extw, a.exth,' . ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(\':\', cc.id, cc.alias) ELSE cc.id END as slug' . ' FROM #__phocagallery_categories AS cc' . ' LEFT JOIN #__phocagallery AS a ON a.catid = cc.id and a.published = 1' . ' LEFT JOIN #__phocagallery_user AS uc ON uc.userid = cc.owner_id' . ' LEFT JOIN #__users AS u ON u.id = cc.owner_id' . ' LEFT JOIN #__phocagallery_votes_statistics AS r ON r.catid = cc.id' . ' WHERE cc.published = 1' . ' AND cc.approved = 1' . $whereLang . $hideSubCatSql . ' GROUP BY cc.id' . $catOrdering['output'];
     return $query;
 }
Ejemplo n.º 8
0
 public function display($tpl = null)
 {
     $app = JFactory::getApplication();
     $user =& JFactory::getUser();
     $uri =& JFactory::getURI();
     $path =& PhocaGalleryPath::getPath();
     $this->params = $app->getParams();
     $this->tmplGeo = array();
     $this->tmpl['categories_description'] = $this->params->get('categories_description', '');
     $image_categories_size = $this->params->get('image_categories_size', 4);
     $medium_image_width = (int) $this->params->get('medium_image_width', 100) + 18;
     $medium_image_height = (int) $this->params->get('medium_image_height', 100) + 18;
     $small_image_width = (int) $this->params->get('small_image_width', 50) + 18;
     $small_image_height = (int) $this->params->get('small_image_height', 50) + 18;
     $this->tmpl['phocagallerywidth'] = $this->params->get('phocagallery_width', '');
     $this->tmpl['categoriescolumns'] = $this->params->get('categories_columns', 1);
     $this->tmpl['displayrating'] = $this->params->get('display_rating', 0);
     $this->tmpl['phocagallerycenter'] = $this->params->get('phocagallery_center', '');
     $this->tmpl['categoriesimageordering'] = $this->params->get('categories_image_ordering', 9);
     $this->tmpl['displayimagecategories'] = $this->params->get('display_image_categories', 1);
     $display_categories_geotagging = $this->params->get('display_categories_geotagging', 0);
     $display_access_category = $this->params->get('display_access_category', 1);
     $display_empty_categories = $this->params->get('display_empty_categories', 0);
     $hideCatArray = explode(',', trim($this->params->get('hide_categories', '')));
     $showCatArray = explode(',', trim($this->params->get('show_categories', '')));
     $this->tmpl['equalpercentagewidth'] = $this->params->get('equal_percentage_width');
     $this->tmpl['categoriesdisplayavatar'] = $this->params->get('categories_display_avatar');
     $this->tmpl['categoriesboxwidth'] = $this->params->get('categories_box_width');
     $this->tmpl['enablecustomcss'] = $this->params->get('enable_custom_css', 0);
     $this->tmpl['customcss'] = $this->params->get('custom_css', '');
     // = = = = = = = = = =
     // CSS
     // = = = = = = = = = =
     $document =& JFactory::getDocument();
     $library =& PhocaGalleryLibrary::getLibrary();
     JHtml::stylesheet('components/com_phocagallery/assets/phocagallery.css');
     if ($this->tmpl['enablecustomcss'] == 1) {
         JHtml::stylesheet('components/com_phocagallery/assets/phocagallerycustom.css');
         PhocaGalleryRenderFront::displayCustomCSS($this->tmpl['customcss']);
     } else {
         $libraries['pg-css-ie'] = $library->getLibrary('pg-css-ie');
         // CSS for IE 8
         if ($libraries['pg-css-ie']->value == 0) {
             $document->addCustomTag("<!--[if lt IE 8]>\n<link rel=\"stylesheet\" href=\"" . JURI::base(true) . "/components/com_phocagallery/assets/phocagalleryieall.css\" type=\"text/css\" />\n<![endif]-->");
             $library->setLibrary('pg-css-ie', 1);
         }
     }
     // = = = = = = = = = =
     // Correct Picasa Images - get Info
     switch ($image_categories_size) {
         // medium
         case 1:
         case 5:
             $this->tmpl['picasa_correct_width'] = (int) $this->params->get('medium_image_width', 100);
             $this->tmpl['picasa_correct_height'] = (int) $this->params->get('medium_image_height', 100);
             $this->tmpl['class_suffix'] = 'medium';
             break;
         case 0:
         case 4:
         default:
             $this->tmpl['picasa_correct_width'] = (int) $this->params->get('small_image_width', 50);
             $this->tmpl['picasa_correct_height'] = (int) $this->params->get('small_image_height', 50);
             $this->tmpl['class_suffix'] = 'small';
             break;
     }
     // - - - - - - - - - - - - - - -
     // Get background for the image
     $catImg = PhocaGalleryImageFront::getCategoriesImageBackground($image_categories_size, $small_image_width, $small_image_height, $medium_image_height, $medium_image_width);
     $this->tmpl['imagebg'] = $catImg->image;
     $this->tmpl['imagewidth'] = $catImg->width;
     //$total					= $this->get('total');
     //$this->tmpl['pagination']	= &$this->get('pagination');
     // Image next to Category in Categories View is ordered by Random as default
     $categoriesImageOrdering = PhocaGalleryOrdering::getOrderingString($this->tmpl['categoriesimageordering']);
     // MODEL
     $model =& $this->getModel();
     $this->tmpl['ordering'] =& $model->getOrdering();
     $this->categories = $this->get('data');
     // Add link and unset the categories which user cannot see (if it is enabled in params)
     // If it will be unset while access view, we must sort the keys from category array - ACCESS
     $unSet = 0;
     foreach ($this->categories as $key => $item) {
         // Unset empty categories if it is set
         if ($display_empty_categories == 0) {
             if ($this->categories[$key]->numlinks < 1) {
                 unset($this->categories[$key]);
                 $unSet = 1;
                 continue;
             }
         }
         // Set only selected category ID
         if (!empty($showCatArray[0]) && is_array($showCatArray)) {
             $unSetHCA = 0;
             foreach ($showCatArray as $valueHCA) {
                 if ((int) trim($valueHCA) == $this->categories[$key]->id) {
                     $unSetHCA = 0;
                     $unSet = 0;
                     break;
                 } else {
                     $unSetHCA = 1;
                     $unSet = 1;
                 }
             }
             if ($unSetHCA == 1) {
                 unset($this->categories[$key]);
                 continue;
             }
         }
         // Unset hidden category
         if (!empty($hideCatArray) && is_array($hideCatArray)) {
             $unSetHCA = 0;
             foreach ($hideCatArray as $valueHCA) {
                 if ((int) trim($valueHCA) == $this->categories[$key]->id) {
                     unset($this->categories[$key]);
                     $unSet = 1;
                     $unSetHCA = 1;
                     break;
                 }
             }
             if ($unSetHCA == 1) {
                 continue;
             }
         }
         // Link
         //$this->categories[$key]->link	= JRoute::_('index.php?option=com_phocagallery&view=category&id='. $item->slug.'&Itemid='. JRequest::getVar('Itemid', 0, '', 'int') );
         $this->categories[$key]->link = PhocaGalleryRoute::getCategoryRoute($item->id, $item->alias);
         // USER RIGHT - ACCESS - - - - -
         // First Check - check if we can display category
         $rightDisplay = 1;
         if (!empty($this->categories[$key])) {
             $rightDisplay = PhocaGalleryAccess::getUserRight('accessuserid', $this->categories[$key]->accessuserid, $this->categories[$key]->access, $user->authorisedLevels(), $user->get('id', 0), $display_access_category);
         }
         // Second Check - if we can display hidden category, set Key icon for them
         //                if we don't have access right to see them
         // 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 if we get rightDisplayKey = 0 then the key will be displayed
             if (!empty($this->categories[$key])) {
                 $rightDisplayKey = PhocaGalleryAccess::getUserRight('accessuserid', $this->categories[$key]->accessuserid, $this->categories[$key]->access, $user->authorisedLevels(), $user->get('id', 0), 0);
                 // 0 - simulation
             }
         }
         // Is Ext Image Album?
         $extCategory = PhocaGalleryImage::isExtImage($this->categories[$key]->extid, $this->categories[$key]->extfbcatid);
         // DISPLAY AVATAR, IMAGE(ordered), IMAGE(not ordered, not recursive) OR FOLDER ICON
         $displayAvatar = 0;
         if ($this->tmpl['categoriesdisplayavatar'] == 1 && isset($this->categories[$key]->avatar) && $this->categories[$key]->avatar != '' && $this->categories[$key]->avatarapproved == 1 && $this->categories[$key]->avatarpublished == 1) {
             $sizeString = PhocaGalleryImageFront::getSizeString($image_categories_size);
             $pathAvatarAbs = $path->avatar_abs . 'thumbs' . DS . 'phoca_thumb_' . $sizeString . '_' . $this->categories[$key]->avatar;
             $pathAvatarRel = $path->avatar_rel . 'thumbs/phoca_thumb_' . $sizeString . '_' . $this->categories[$key]->avatar;
             if (JFile::exists($pathAvatarAbs)) {
                 $this->categories[$key]->linkthumbnailpath = $pathAvatarRel;
                 $displayAvatar = 1;
             }
         }
         if ($displayAvatar == 0) {
             if ($extCategory) {
                 if ($this->tmpl['categoriesimageordering'] != 10) {
                     $imagePic = PhocaGalleryImageFront::getRandomImageRecursive($this->categories[$key]->id, $categoriesImageOrdering, 1);
                     $fileThumbnail = PhocaGalleryImageFront::displayCategoriesExtImgOrFolder($imagePic->exts, $imagePic->extm, $imagePic->extw, $imagePic->exth, $image_categories_size, $rightDisplayKey);
                 } else {
                     $fileThumbnail = PhocaGalleryImageFront::displayCategoriesExtImgOrFolder($this->categories[$key]->exts, $this->categories[$key]->extm, $this->categories[$key]->extw, $this->categories[$key]->exth, $image_categories_size, $rightDisplayKey);
                 }
                 $this->categories[$key]->linkthumbnailpath = $fileThumbnail->rel;
                 $this->categories[$key]->extw = $fileThumbnail->extw;
                 $this->categories[$key]->exth = $fileThumbnail->exth;
                 $this->categories[$key]->extpic = $fileThumbnail->extpic;
             } else {
                 if ($this->tmpl['categoriesimageordering'] != 10) {
                     $this->categories[$key]->filename = PhocaGalleryImageFront::getRandomImageRecursive($this->categories[$key]->id, $categoriesImageOrdering);
                 }
                 $fileThumbnail = PhocaGalleryImageFront::displayCategoriesImageOrFolder($this->categories[$key]->filename, $image_categories_size, $rightDisplayKey);
                 $this->categories[$key]->linkthumbnailpath = $fileThumbnail->rel;
             }
         }
         if ($rightDisplay == 0) {
             unset($this->categories[$key]);
             $unSet = 1;
         }
         // - - - - - - - - - - - - - - -
     }
     $this->tmpl['mtb'] = PhocaGalleryRenderInfo::getPhocaIc((int) $this->params->get('display_phoca_info', 1));
     // ACCESS - - - - - -
     // In case we unset some category from the list, we must sort the array new
     if ($unSet == 1) {
         $this->categories = array_values($this->categories);
     }
     // - - - - - - - - - - - - - - - -
     // Do Pagination - we can do it after reducing all unneeded $this->categories, not before
     $totalCount = count($this->categories);
     $model->setTotal($totalCount);
     $this->tmpl['pagination'] =& $this->get('pagination');
     $this->categories = array_slice($this->categories, (int) $this->tmpl['pagination']->limitstart, (int) $this->tmpl['pagination']->limit);
     // - - - - - - - - - - - - - - - -
     // Display Image of Categories Description
     /*	if ($this->params->get('image') != -1) {
     			$attribs['align']	= $this->params->get('image_align');
     			$attribs['hspace']	= 6;
     			// Use the static HTML library to build the image tag
     			$this->tmpl['image'] 		= JHtml::_('image', 'images/stories/'.$this->params->get('image'), '', $attribs);
     		}*/
     // ACTION
     $this->tmpl['action'] = $uri->toString();
     //Design
     $this->tmpl['countcategories'] = count($this->categories);
     $this->tmpl['begin'] = array();
     $this->tmpl['end'] = array();
     $this->tmpl['begin'][0] = 0;
     // first
     $this->tmpl['begin'][1] = ceil($this->tmpl['countcategories'] / (int) $this->tmpl['categoriescolumns']);
     $this->tmpl['end'][0] = $this->tmpl['begin'][1] - 1;
     for ($j = 2; $j < (int) $this->tmpl['categoriescolumns']; $j++) {
         $this->tmpl['begin'][$j] = ceil($this->tmpl['countcategories'] / (int) $this->tmpl['categoriescolumns'] * $j);
         $this->tmpl['end'][$j - 1] = $this->tmpl['begin'][$j] - 1;
     }
     $this->tmpl['end'][$j - 1] = $this->tmpl['countcategories'] - 1;
     // last
     $this->tmpl['endfloat'] = $this->tmpl['countcategories'] - 1;
     if ($this->tmpl['equalpercentagewidth'] == 1) {
         $fixedWidth = 100 / (int) (int) $this->tmpl['categoriescolumns'];
         $this->tmpl['fixedwidthstyle1'] = 'width:' . $fixedWidth . '%;';
         $this->tmpl['fixedwidthstyle2'] = 'width:' . $fixedWidth . '%;';
     } else {
         $this->tmpl['fixedwidthstyle1'] = '';
         //'margin: 10px;';
         $this->tmpl['fixedwidthstyle2'] = '';
         //'margin: 0px;';
     }
     // ASSIGN
     //$this->assignRef('tmpl',		$this->tmpl);
     $this->assignRef('params', $this->params);
     $this->_prepareDocument();
     if ($display_categories_geotagging == 1) {
         // PARAMS - - - - - - - - - -
         $this->tmplGeo['categorieslng'] = $this->params->get('categories_lng', '');
         $this->tmplGeo['categorieslat'] = $this->params->get('categories_lat', '');
         $this->tmplGeo['categorieszoom'] = $this->params->get('categories_zoom', 2);
         $this->tmplGeo['googlemapsapikey'] = $this->params->get('google_maps_api_key', '');
         $this->tmplGeo['categoriesmapwidth'] = $this->params->get('categories_map_width', '');
         $this->tmplGeo['categoriesmapheight'] = $this->params->get('categorires_map_height', 500);
         // - - - - - - - - - - - - - - -
         // if no lng and lat will be added, Phoca Gallery will try to find it in categories
         if ($this->tmplGeo['categorieslat'] == '' || $this->tmplGeo['categorieslng'] == '') {
             phocagalleryimport('phocagallery.geo.geo');
             $latLng = PhocaGalleryGeo::findLatLngFromCategory($this->categories);
             $this->tmplGeo['categorieslng'] = $latLng['lng'];
             $this->tmplGeo['categorieslat'] = $latLng['lat'];
         }
         $this->assignRef('tmplGeo', $this->tmplGeo);
         parent::display('map');
     } else {
         parent::display($tpl);
     }
 }
Ejemplo n.º 9
0
    function display($tpl = null)
    {
        $app = JFactory::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) {
            JError::raiseError(404, JText::_("COM_PHOCAGALLERY_CATEGORY_IS_UNPUBLISHED"));
            exit;
        }
        $document = JFactory::getDocument();
        $uri = JFactory::getURI();
        $menus = $app->getMenu();
        $menu = $menus->getActive();
        $this->params = $app->getParams();
        $this->tmpl['user'] = JFactory::getUser();
        $this->tmpl['action'] = $uri->toString();
        $this->tmpl['path'] = PhocaGalleryPath::getPath();
        $limitStart = $app->input->get('limitstart', 0, 'int');
        $this->tmpl['tab'] = $app->input->get('tab', 0, 'int');
        $this->tmpl['pl'] = 'index.php?option=com_users&view=login&return=' . base64_encode($uri->toString());
        $this->tmpl['icon_path'] = 'media/com_phocagallery/images/';
        $this->tmpl['plcat'] = 'index.php?option=com_phocagallery&view=category';
        $this->itemId = $app->input->get('Itemid', 0, 'int');
        $neededAccessLevels = PhocaGalleryAccess::getNeededAccessLevels();
        $access = PhocaGalleryAccess::isAccess($this->tmpl['user']->getAuthorisedViewLevels(), $neededAccessLevels);
        // CSS
        PhocaGalleryRenderFront::renderAllCSS();
        // 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');
        // PARAMS
        $this->tmpl['image_categories_size_cv'] = $this->params->get('image_categories_size_cv', 1);
        $this->tmpl['display_cat_name_title'] = $this->params->get('display_cat_name_title', 1);
        $this->tmpl['display_categories_cv'] = $this->params->get('display_categories_cv', 0);
        $this->tmpl['switch_image'] = $this->params->get('switch_image', 0);
        $this->tmpl['switch_height'] = $this->params->get('switch_height', 480);
        $this->tmpl['switch_width'] = $this->params->get('switch_width', 640);
        $this->tmpl['switch_fixed_size'] = $this->params->get('switch_fixed_size', 0);
        $this->tmpl['show_page_heading'] = $this->params->get('show_page_heading', 1);
        $this->tmpl['phocagallery_width'] = $this->params->get('phocagallery_width', '');
        $this->tmpl['phocagallery_center'] = $this->params->get('phocagallery_center', '');
        $this->tmpl['imagewidth'] = $this->params->get('medium_image_width', 100);
        $this->tmpl['imageheight'] = $this->params->get('medium_image_height', 100);
        $this->tmpl['picasa_correct_width_m'] = (int) $this->params->get('medium_image_width', 100);
        $this->tmpl['picasa_correct_height_m'] = (int) $this->params->get('medium_image_height', 100);
        $this->tmpl['picasa_correct_width_s'] = (int) $this->params->get('small_image_width', 50);
        $this->tmpl['picasa_correct_height_s'] = (int) $this->params->get('small_image_height', 50);
        $this->tmpl['picasa_correct_width_l'] = (int) $this->params->get('large_image_width', 640);
        $this->tmpl['picasa_correct_height_l'] = (int) $this->params->get('large_image_height', 480);
        $this->tmpl['category_box_space'] = $this->params->get('category_box_space', 0);
        $this->tmpl['detail_window'] = $this->params->get('detail_window', 0);
        $this->tmpl['display_name'] = $this->params->get('display_name', 1);
        $this->tmpl['display_rating'] = $this->params->get('display_rating', 0);
        $this->tmpl['display_rating_img'] = $this->params->get('display_rating_img', 0);
        $this->tmpl['display_comment'] = $this->params->get('display_comment', 0);
        $this->tmpl['display_comment_img'] = $this->params->get('display_comment_img', 0);
        $this->tmpl['display_subcategory'] = $this->params->get('display_subcategory', 1);
        $this->tmpl['display_icon_detail'] = $this->params->get('display_icon_detail', 1);
        $this->tmpl['display_icon_download'] = $this->params->get('display_icon_download', 2);
        $this->tmpl['display_icon_vm'] = $this->params->get('display_icon_vm', 0);
        $this->tmpl['display_img_desc_box'] = $this->params->get('display_img_desc_box', 0);
        $this->tmpl['diff_thumb_height'] = $this->params->get('diff_thumb_height', 0);
        $this->tmpl['overlib_attributes'] = $this->params->get('overlib_attributes', "BELOW, RIGHT, CSSCLASS, TEXTFONTCLASS, 'fontPhocaClass', FGCLASS, 'fgPhocaClass', BGCLASS, 'bgPhocaClass', CAPTIONFONTCLASS,'capfontPhocaClass', CLOSEFONTCLASS, 'capfontclosePhocaClass'");
        // Switch image JS
        $this->tmpl['basic_image'] = '';
        if ($this->tmpl['switch_image'] == 1) {
            $this->tmpl['wait_image'] = $this->tmpl['path']->image_rel_front_full . 'icon-switch.gif';
            $this->tmpl['basic_image'] = $this->tmpl['path']->image_rel_front_full . 'phoca_thumb_l_no_image.png';
            $document->addCustomTag(PhocaGalleryRenderFront::switchImage($this->tmpl['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);
        $popup_width = $this->params->get('front_modal_box_width', 680);
        $popup_height = $this->params->get('front_modal_box_height', 560);
        $this->tmpl['maxuploadchar'] = $this->params->get('max_upload_char', 1000);
        $this->tmpl['maxcommentchar'] = $this->params->get('max_comment_char', 1000);
        $this->tmpl['maxcreatecatchar'] = $this->params->get('max_create_cat_char', 1000);
        $this->tmpl['commentwidth'] = $this->params->get('comment_width', 500);
        $this->tmpl['displaycategorygeotagging'] = $this->params->get('display_category_geotagging', 0);
        $this->tmpl['displaycategorystatistics'] = $this->params->get('display_category_statistics', 0);
        // Used for Highslide JS (only image)
        $this->tmpl['displaydescriptiondetail'] = $this->params->get('display_description_detail', 0);
        $this->tmpl['display_title_description'] = $this->params->get('display_title_description', 0);
        $this->tmpl['charlengthname'] = $this->params->get('char_length_name', 15);
        $this->tmpl['char_cat_length_name'] = $this->params->get('char_cat_length_name', 9);
        $this->tmpl['display_icon_geo'] = $this->params->get('display_icon_geotagging', 0);
        // Check the category
        $this->tmpl['display_icon_geoimage'] = $this->params->get('display_icon_geotagging', 0);
        // Check the image
        $this->tmpl['display_camera_info'] = $this->params->get('display_camera_info', 0);
        // PARAMS - Upload
        $this->tmpl['multipleuploadchunk'] = $this->params->get('multiple_upload_chunk', 0);
        $this->tmpl['displaytitleupload'] = $this->params->get('display_title_upload', 0);
        $this->tmpl['displaydescupload'] = $this->params->get('display_description_upload', 0);
        $this->tmpl['enablejava'] = $this->params->get('enable_java', -1);
        $this->tmpl['enablemultiple'] = $this->params->get('enable_multiple', 0);
        $this->tmpl['multipleuploadmethod'] = $this->params->get('multiple_upload_method', 1);
        $this->tmpl['multipleresizewidth'] = $this->params->get('multiple_resize_width', -1);
        $this->tmpl['multipleresizeheight'] = $this->params->get('multiple_resize_height', -1);
        $this->tmpl['javaboxwidth'] = $this->params->get('java_box_width', 480);
        $this->tmpl['javaboxheight'] = $this->params->get('java_box_height', 480);
        $this->tmpl['large_image_width'] = $this->params->get('large_image_width', 640);
        $this->tmpl['large_image_height'] = $this->params->get('large_image_height', 640);
        $this->tmpl['uploadmaxsize'] = $this->params->get('upload_maxsize', 3145728);
        $this->tmpl['uploadmaxsizeread'] = PhocaGalleryFile::getFileSizeReadable($this->tmpl['uploadmaxsize']);
        $this->tmpl['uploadmaxreswidth'] = $this->params->get('upload_maxres_width', 3072);
        $this->tmpl['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->tmpl['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->tmpl['jakslideshowdelay'] = $this->params->get('jak_slideshow_delay', 5);
        $this->tmpl['jakorientation'] = $this->params->get('jak_orientation', 'none');
        $this->tmpl['jakdescription'] = $this->params->get('jak_description', 1);
        $this->tmpl['jakdescriptionheight'] = $this->params->get('jak_description_height', 0);
        $this->tmpl['categoryimageordering'] = $this->params->get('category_image_ordering', 10);
        $this->tmpl['externalcommentsystem'] = $this->params->get('external_comment_system', 0);
        $display_subcat_page_cv = $this->params->get('display_subcat_page_cv', 0);
        $this->tmpl['display_back_button_cv'] = $this->params->get('display_back_button_cv', 1);
        $this->tmpl['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', 100) + 18;
        $medium_image_height_cv = (int) $this->params->get('medium_image_height', 100) + 18;
        $small_image_width_cv = (int) $this->params->get('small_image_width', 50) + 18;
        $small_image_height_cv = (int) $this->params->get('small_image_height', 50) + 18;
        $this->tmpl['imagetypecv'] = $this->tmpl['image_categories_size_cv'];
        $this->tmpl['overlibimagerate'] = (int) $this->params->get('overlib_image_rate', '');
        $this->tmpl['gallerymetakey'] = $this->params->get('gallery_metakey', '');
        $this->tmpl['gallerymetadesc'] = $this->params->get('gallery_metadesc', '');
        $this->tmpl['altvalue'] = $this->params->get('alt_value', 1);
        $paramsFb = PhocaGalleryFbSystem::getCommentsParams($this->params->get('fb_comment_user_id', ''));
        // Facebook
        $this->tmpl['fb_comment_app_id'] = isset($paramsFb['fb_comment_app_id']) ? $paramsFb['fb_comment_app_id'] : '';
        $this->tmpl['fb_comment_width'] = isset($paramsFb['fb_comment_width']) ? $paramsFb['fb_comment_width'] : 550;
        $this->tmpl['fb_comment_lang'] = isset($paramsFb['fb_comment_lang']) ? $paramsFb['fb_comment_lang'] : 'en_US';
        $this->tmpl['fb_comment_count'] = isset($paramsFb['fb_comment_count']) ? $paramsFb['fb_comment_count'] : '';
        $this->tmpl['enable_direct_subcat'] = $this->params->get('enable_direct_subcat', 0);
        $this->tmpl['display_comment_nopup'] = $this->params->get('display_comment_nopup', 0);
        $this->tmpl['boxplus_theme'] = $this->params->get('boxplus_theme', 'lightsquare');
        $this->tmpl['boxplus_bautocenter'] = (int) $this->params->get('boxplus_bautocenter', 1);
        $this->tmpl['boxplus_autofit'] = (int) $this->params->get('boxplus_autofit', 1);
        $this->tmpl['boxplus_slideshow'] = (int) $this->params->get('boxplus_slideshow', 0);
        $this->tmpl['boxplus_loop'] = (int) $this->params->get('boxplus_loop', 0);
        $this->tmpl['boxplus_captions'] = $this->params->get('boxplus_captions', 'bottom');
        $this->tmpl['boxplus_thumbs'] = $this->params->get('boxplus_thumbs', 'inside');
        $this->tmpl['boxplus_duration'] = (int) $this->params->get('boxplus_duration', 250);
        $this->tmpl['boxplus_transition'] = $this->params->get('boxplus_transition', 'linear');
        $this->tmpl['boxplus_contextmenu'] = (int) $this->params->get('boxplus_contextmenu', 1);
        $this->tmpl['enablecustomcss'] = $this->params->get('enable_custom_css', 0);
        $this->tmpl['customcss'] = $this->params->get('custom_css', '');
        $this->tmpl['display_tags_links'] = $this->params->get('display_tags_links', 0);
        $this->tmpl['displaying_tags_true'] = 0;
        //No tag found, if yes, the box will be resized
        $this->tmpl['ytbupload'] = $this->params->get('youtube_upload', 0);
        $this->tmpl['ytb_display'] = $this->params->get('ytb_display', 0);
        $this->tmpl['enable_multibox'] = $this->params->get('enable_multibox', 0);
        $this->tmpl['multibox_height'] = (int) $this->params->get('multibox_height', 560);
        $this->tmpl['multibox_width'] = (int) $this->params->get('multibox_width', 980);
        // CSS
        /*switch($this->tmpl['image_categories_size']) {
        			// medium
        			case 1:
        				$this->tmpl['picasa_correct_width']		= (int)$this->params->get( 'medium_image_width', 100 );	
        				$this->tmpl['picasa_correct_height']	= (int)$this->params->get( 'medium_image_height', 100 );
        				$this->tmpl['imagewidth']				= (int)$this->params->get( 'medium_image_width', 100 );	
        				$this->tmpl['imageheight']				= (int)$this->params->get( 'medium_image_height', 100 );
        				$this->tmpl['class_suffix']				= 'medium';
        			break;
        			
        			// small
        			case 0:
        			default:
        				$this->tmpl['picasa_correct_width']		= (int)$this->params->get( 'small_image_width', 50 );	
        				$this->tmpl['picasa_correct_height']	= (int)$this->params->get( 'small_image_height', 50 );
        				$this->tmpl['imagewidth']				= (int)$this->params->get( 'small_image_width', 50 );
        				$this->tmpl['imageheight'] 				= (int)$this->params->get( 'small_image_height', 50 );
        				$this->tmpl['class_suffix']				= 'small';
        			break;
        		}*/
        // CSS Specific
        /*$s = '.pg-cv {'."\n";
        		if ($this->tmpl['phocagallerywidth'] != '') {
        			$s .= '   margin: auto;'."\n";
        			$s .= '   width: '.$this->tmpl['phocagallerywidth'].'px;'."\n";
        		}
        		$s .= '}'."\n";
        
        		$s .= '.pg-cv-box {'."\n";
        		$s .= '   height: '.$this->tmpl['boxsize']['height'].'px;'."\n";
        		$s .= '   width: '.$this->tmpl['boxsize']['width'].'px;"'."\n";
        		$s .= '}'."\n";
        		
        		$s .= '.pg-cv-box-img {'."\n";
        		$s .= '   height: '.$this->tmpl['imageheight'].'px;'."\n";
        		$s .= '   width: '.$this->tmpl['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 = $popup_height + $description_detail_height;
        }
        // Detail buttons in detail view
        if ($detail_buttons != 1) {
            $popup_height = $popup_height - 45;
        }
        if ($this->tmpl['display_rating_img'] == 1) {
            $popup_height = $popup_height + 35;
        }
        // Youtube video without padding, margin
        if ($this->tmpl['detail_window'] != 7 && $this->tmpl['ytb_display'] == 1) {
            $document->addCustomTag("<style type=\"text/css\"> \n" . " #boxplus .boxplus-dialog .boxplus-controlsclose {\n\t\t\t\ttop: -15px !important;\n\t\t\t\tright: -15px !important;\n\t\t\t\tmargin:0px 0 0 0 !important;\n\t\t\t} \n" . " </style> \n");
            $popup_width = PhocaGallerySettings::getAdvancedSettings('youtubewidth');
            $popup_height = PhocaGallerySettings::getAdvancedSettings('youtubeheight');
        }
        // Multibox
        if ($this->tmpl['enable_multibox'] == 1) {
            $popup_width = $this->tmpl['multibox_width'];
            $popup_height = $this->tmpl['multibox_height'];
        }
        if ($this->tmpl['detail_window'] == 4) {
            $popup_height = $popup_height + 12;
        }
        // Comment Image JS
        if ((int) $this->tmpl['display_comment_img'] == 2 || (int) $this->tmpl['display_comment_img'] == 3) {
            PhocaGalleryCommentImage::renderCommentImageJS();
        }
        // Rate Image JS
        if ((int) $this->tmpl['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
        JHtml::_('behavior.modal', 'a.pg-modal-button');
        $btn = new PhocaGalleryRenderDetailWindow();
        $btn->popupWidth = $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->tmpl['jakdescriptionheight'];
        $btn->jakDescWidth = '';
        $btn->jakOrientation = $this->tmpl['jakorientation'];
        $btn->jakSlideshowDelay = $this->tmpl['jakslideshowdelay'];
        $btn->bpTheme = $this->tmpl['boxplus_theme'];
        $btn->bpBautocenter = (int) $this->tmpl['boxplus_bautocenter'];
        $btn->bpAutofit = (int) $this->tmpl['boxplus_autofit'];
        $btn->bpSlideshow = (int) $this->tmpl['boxplus_slideshow'];
        $btn->bpLoop = (int) $this->tmpl['boxplus_loop'];
        $btn->bpCaptions = $this->tmpl['boxplus_captions'];
        $btn->bpThumbs = $this->tmpl['boxplus_thumbs'];
        $btn->bpDuration = (int) $this->tmpl['boxplus_duration'];
        $btn->bpTransition = $this->tmpl['boxplus_transition'];
        $btn->bpContextmenu = (int) $this->tmpl['boxplus_contextmenu'];
        $btn->setButtons($this->tmpl['detail_window'], $libraries, $library);
        $this->button = $btn->getB1();
        $this->button2 = $btn->getB2();
        $this->buttonother = $btn->getB3();
        $this->tmpl['highslideonclick'] = '';
        // for using with highslide
        if (isset($this->button->highslideonclick)) {
            $this->tmpl['highslideonclick'] = $this->button->highslideonclick;
            // TODO
        }
        $this->tmpl['highslideonclick2'] = '';
        if (isset($this->button->highslideonclick2)) {
            $this->tmpl['highslideonclick2'] = $this->button->highslideonclick2;
            // TODO
        }
        $folderButton = new JObject();
        $folderButton->set('name', 'image');
        $folderButton->set('options', "");
        // End open window parameters
        // ==================================================================
        // Information about current category
        $this->category = $this->get('category');
        // Cooliris (Piclens)
        $this->tmpl['start_cooliris'] = 0;
        if ($this->tmpl['enablecooliris'] == 1) {
            $this->tmpl['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);
        // Set page title per category
        if ($this->tmpl['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->tmpl['image'] = JHtml::_('image', 'images/stories/'.$this->category->image,'', $attribs);
        		}*/
        // Overlib
        $enable_overlib = $this->params->get('enable_overlib', 0);
        if ((int) $enable_overlib > 0) {
            $document->addScript(JURI::base(true) . '/components/com_phocagallery/assets/overlib/overlib_mini.js');
        }
        // MODEL
        $model = $this->getModel();
        // Trash
        $this->tmpl['trash'] = 0;
        $this->tmpl['publish_unpublish'] = 0;
        $this->tmpl['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->tmpl['user']->getAuthorisedViewLevels(), $this->tmpl['user']->get('id', 0), 0);
        }
        if ($rightDisplayDelete == 1) {
            $this->tmpl['trash'] = 1;
            $this->tmpl['publish_unpublish'] = 1;
            $this->tmpl['approved_not_approved'] = 1;
            // only to see the info
        }
        // - - - - - - - - - - - - - - - - - - - - -
        // Upload
        $this->tmpl['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->tmpl['user']->getAuthorisedViewLevels(), $this->tmpl['user']->get('id', 0), 0);
        }
        if ($rightDisplayUpload == 1) {
            $this->tmpl['displayupload'] = 1;
            $document->addCustomTag(PhocaGalleryRenderFront::renderOnUploadCategoryJS());
            $document->addCustomTag(PhocaGalleryRenderFront::renderDescriptionUploadJS((int) $this->tmpl['maxuploadchar']));
        }
        $this->tmpl['displaycreatecat'] = 0;
        if ($rightDisplayUpload == 1 && $this->tmpl['enable_direct_subcat'] == 1) {
            $this->tmpl['displaycreatecat'] = 1;
            $document->addCustomTag(PhocaGalleryRenderFront::renderOnUploadCategoryJS());
            $document->addCustomTag(PhocaGalleryRenderFront::renderDescriptionCreateSubCatJS((int) $this->tmpl['maxcreatecatchar']));
        }
        // - - - - - - - - - - - - - - - - - - - - -
        // 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->tmpl['user']->getAuthorisedViewLevels(), $this->tmpl['user']->get('id', 0), $display_access_category);
        }
        if ($rightDisplay == 0) {
            $app->redirect(JRoute::_($this->tmpl['pl'], false), JText::_('COM_PHOCAGALLERY_NOT_AUTHORISED_ACTION'));
            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->tmpl['display_icon_geo'] = 0;
        }
        $this->tmpl['categoryimageordering'] = $this->params->get('category_image_ordering', 10);
        //$this->tmpl['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->tmpl['categoryimageordering']);
        //$this->categoryImageOrderingCV = PhocaGalleryOrdering::getOrderingString($this->tmpl['categoryimageorderingcv']);
        // = = = = = = = = = = = = = = = = = = = =
        // BOXES
        // = = = = = = = = = = = = = = = = = = = =
        // Information because of height of box (if they are used not by all images)
        $this->tmpl['display_icon_extlink1_box'] = 0;
        $this->tmpl['display_icon_extlink2_box'] = 0;
        $this->tmpl['display_icon_vmbox'] = 0;
        $this->tmpl['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->tmpl['user']->getAuthorisedViewLevels(), $this->tmpl['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->tmpl['user']->getAuthorisedViewLevels(), $this->tmpl['user']->get('id', 0), 0);
                    }
                }
                // - - - - - - - - - - - - - - - - - - - - -
                if ($rightDisplay > 0) {
                    $this->items[$iS]->cls = 'pg-box-parentfolder';
                    $this->items[$iS]->slug = $this->items[$iS]->id . ':' . $this->items[$iS]->alias;
                    $this->items[$iS]->item_type = "parentfolder";
                    $this->items[$iS]->linkthumbnailpath = PhocaGalleryImageFront::displayBackFolder('medium', $rightDisplayKey);
                    $this->items[$iS]->extm = $this->items[$iS]->linkthumbnailpath;
                    $this->items[$iS]->exts = $this->items[$iS]->linkthumbnailpath;
                    $this->items[$iS]->numlinks = 0;
                    // We are in category view
                    $this->items[$iS]->link = JRoute::_('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]->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 = '';
                    $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 JObject();
                    $this->items[$iS]->cls = 'pg-box-backbtn';
                    $this->items[$iS]->link = JRoute::_($backLink);
                    $this->items[$iS]->title = JTEXT::_('COM_PHOCAGALLERY_CATEGORY_LIST');
                    $this->items[$iS]->item_type = "categorieslist";
                    $this->items[$iS]->linkthumbnailpath = PhocaGalleryImageFront::displayBackFolder('medium', 1);
                    $this->items[$iS]->extm = $this->items[$iS]->linkthumbnailpath;
                    $this->items[$iS]->exts = $this->items[$iS]->linkthumbnailpath;
                    $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]->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 = '';
                    $iS++;
                }
            }
        }
        // ----------------------------------------
        // PARENT FOLDERS(II) or Back Button CATEGORIES VIEW IN CATEGORY VIEW
        // ----------------------------------------
        if ($this->tmpl['display_back_button_cv'] == 1 && $this->tmpl['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->tmpl['user']->getAuthorisedViewLevels(), $this->tmpl['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->tmpl['user']->getAuthorisedViewLevels(), $this->tmpl['user']->get('id', 0), 0);
                    }
                }
                // - - - - - - - - - - - - - - - - - - - - -
                if ($rightDisplay > 0) {
                    $this->itemscv[$iCV]->cls = 'pg-box-parentfolder-cv';
                    $this->itemscv[$iCV]->slug = $this->itemscv[$iCV]->id . ':' . $this->itemscv[$iCV]->alias;
                    $this->itemscv[$iCV]->item_type = "parentfoldercv";
                    $this->itemscv[$iCV]->linkthumbnailpath = PhocaGalleryImageFront::displayBackFolder('medium', $rightDisplayKey);
                    $this->itemscv[$iCV]->extm = $this->itemscv[$iCV]->linkthumbnailpath;
                    $this->itemscv[$iCV]->exts = $this->itemscv[$iCV]->linkthumbnailpath;
                    $this->itemscv[$iCV]->numlinks = 0;
                    // We are in category view
                    $this->itemscv[$iCV]->link = JRoute::_('index.php?option=com_phocagallery&view=category&id=' . $this->itemscv[$iCV]->slug . '&Itemid=' . $this->itemId);
                    $this->itemscv[$iCV]->type = 3;
                    $this->itemscv[$iCV]->altvalue = '';
                    $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->tmpl['display_categories_back_button_cv'] == 1) {
                    $this->itemscv[$iCV] = new JObject();
                    $this->itemscv[$iCV]->cls = 'pg-cvcsv-back';
                    $this->itemscv[$iCV]->link = $backLink;
                    $this->itemscv[$iCV]->title = JTEXT::_('COM_PHOCAGALLERY_CATEGORY_LIST');
                    $this->itemscv[$iCV]->item_type = "categorieslistcv";
                    $this->itemscv[$iCV]->linkthumbnailpath = PhocaGalleryImageFront::displayBackFolder('medium', 1);
                    $this->itemscv[$iCV]->extm = $this->itemscv[$iCV]->linkthumbnailpath;
                    $this->itemscv[$iCV]->exts = $this->itemscv[$iCV]->linkthumbnailpath;
                    $this->itemscv[$iCV]->numlinks = 0;
                    // We are in category view
                    $this->itemscv[$iCV]->link = JRoute::_($this->itemscv[$iCV]->link);
                    $this->itemscv[$iCV]->type = 3;
                    $this->itemscv[$iCV]->altvalue = '';
                    $iCV++;
                }
            }
        }
        // ----------------------------------------
        // SUB FOLDERS(1) STANDARD
        // ----------------------------------------
        // Display subcategories on every page
        if ($display_subcat_page == 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->tmpl['user']->getAuthorisedViewLevels(), $this->tmpl['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->tmpl['user']->getAuthorisedViewLevels(), $this->tmpl['user']->get('id', 0), 0);
                        }
                    }
                    // - - - - - - - - - - - - - - - - - - - -
                    if ($rightDisplay > 0) {
                        $this->items[$iS]->cls = 'pg-box-subfolder';
                        $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 ($extImage) {
                            $imagePic = new stdClass();
                            if ($this->tmpl['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->tmpl['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 = JRoute::_('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->tmpl['display_name'];
                        $this->items[$iS]->display_icon_vm = '';
                        $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 = '';
                        $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->tmpl['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->tmpl['user']->getAuthorisedViewLevels(), $this->tmpl['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->tmpl['user']->getAuthorisedViewLevels(), $this->tmpl['user']->get('id', 0), 0);
                        }
                    }
                    // - - - - - - - - - - - - - - - - - - - -
                    if ($rightDisplay > 0) {
                        $this->itemscv[$iCV]->cls = 'pg-cvcsv-name';
                        $this->itemscv[$iCV]->slug = $this->itemscv[$iCV]->id . ':' . $this->itemscv[$iCV]->alias;
                        $this->itemscv[$iCV]->item_type = "subfoldercv";
                        $this->itemscv[$iCV]->link = JRoute::_('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->tmpl['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->tmpl['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 = '';
                        }
                        $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->tmpl['pagination'] = $model->getPagination(1, $this->tagId);
        } else {
            $images = $model->getData(0, $this->tagId);
            $this->tmpl['pagination'] = $model->getPagination(0, $this->tagId);
        }
        $this->tmpl['ordering'] = $model->getOrdering();
        $totalImg = count($images);
        if ($limitStart > 0) {
            $this->tmpl['limitstarturl'] = '&limitstart=' . $limitStart;
        } else {
            $this->tmpl['limitstarturl'] = '';
        }
        $this->tmpl['jakdatajs'] = array();
        $this->tmpl['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]->slug = $this->items[$iS]->id . ':' . $this->items[$iS]->alias;
            $this->items[$iS]->item_type = "image";
            $this->items[$iS]->linknr = '';
            //Def
            $extImage = PhocaGalleryImage::isExtImage($this->items[$iS]->extid);
            // Get file thumbnail or No Image
            $this->items[$iS]->exthswitch = $this->items[$iS]->extwswitch = 0;
            if ($this->items[$iS]->extm != '') {
                if ($this->items[$iS]->extw != '') {
                    $extw = explode(',', $this->items[$iS]->extw);
                    $this->items[$iS]->extw = $extw[1];
                    $this->items[$iS]->extwswitch = $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];
                }
                $this->items[$iS]->extpic = 1;
                $this->items[$iS]->linkthumbnailpath = '';
            } else {
                // Mansory
                $iFormat = 'medium';
                if ($this->tmpl['diff_thumb_height'] > 0) {
                    if ($this->items[$iS]->format == 2) {
                        $iFormat = 'medium1';
                        // by portraits in everycase (medium1 = medium * x2(height))
                    } else {
                        $m2 = mt_rand(0, 1);
                        if ($m2 == 1) {
                            $iFormat = 'medium1';
                        }
                    }
                }
                $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->tmpl['switch_image'] == 1) {
                if ($basic_imageSelected == 0) {
                    if ((int) $this->tmpl['switch_width'] > 0 && (int) $this->tmpl['switch_height'] > 0 && $this->tmpl['switch_fixed_size'] == 1) {
                        $wHArray = array('id' => 'PhocaGalleryobjectPicture', 'border' => '0', 'width' => $this->tmpl['switch_width'], 'height' => $this->tmpl['switch_height']);
                        $wHString = ' id="PhocaGalleryobjectPicture"  border="0" width="' . $this->tmpl['switch_width'] . '" height="' . $this->tmpl['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->tmpl['basic_image'] = JHtml::_('image', $this->items[$iS]->extl, '', $wHArray);
                    } else {
                        $this->tmpl['basic_image'] = JHtml::_('image', str_replace('phoca_thumb_m_', 'phoca_thumb_l_', $this->items[$iS]->linkthumbnailpath), '', $wHString);
                    }
                    $basic_imageSelected = 1;
                }
            }
            $thumbLink = PhocaGalleryFileThumbnail::getThumbnailName($this->items[$iS]->filename, 'large');
            $thumbLinkM = PhocaGalleryFileThumbnail::getThumbnailName($this->items[$iS]->filename, 'medium');
            $imgLinkOrig = JURI::base(true) . '/' . PhocaGalleryFile::getFileOriginal($this->items[$iS]->filename, 1);
            if ($this->tmpl['detail_window'] == 7) {
                $siteLink = JRoute::_('index.php?option=com_phocagallery&view=detail&catid=' . $this->items[$iS]->catslug . '&id=' . $this->items[$iS]->slug . '&Itemid=' . $this->itemId);
            } else {
                $siteLink = JRoute::_('index.php?option=com_phocagallery&view=detail&catid=' . $this->items[$iS]->catslug . '&id=' . $this->items[$iS]->slug . '&tmpl=component' . '&Itemid=' . $this->itemId);
            }
            $imgLink = $thumbLink->rel;
            if ($extImage) {
                $imgLink = $this->items[$iS]->extl;
                $imgLinkOrig = $this->items[$iS]->exto;
            }
            // Detail Window
            if ($this->tmpl['detail_window'] == 2) {
                $this->items[$iS]->link = $imgLink;
                $this->items[$iS]->link2 = $imgLink;
                $this->items[$iS]->linkother = $imgLink;
                $this->items[$iS]->linkorig = $imgLinkOrig;
            } else {
                if ($this->tmpl['detail_window'] == 3) {
                    $this->items[$iS]->link = $imgLink;
                    $this->items[$iS]->link2 = $imgLink;
                    $this->items[$iS]->linkother = $siteLink;
                    $this->items[$iS]->linkorig = $imgLinkOrig;
                } else {
                    if ($this->tmpl['detail_window'] == 5) {
                        $this->items[$iS]->link = $imgLink;
                        $this->items[$iS]->link2 = $siteLink;
                        $this->items[$iS]->linkother = $siteLink;
                        $this->items[$iS]->linkorig = $imgLinkOrig;
                    } else {
                        if ($this->tmpl['detail_window'] == 6) {
                            $this->items[$iS]->link = $imgLink;
                            $this->items[$iS]->link2 = $imgLink;
                            $this->items[$iS]->linkother = $siteLink;
                            $this->items[$iS]->linkorig = $imgLinkOrig;
                            // jak data js
                            switch ($this->tmpl['jakdescription']) {
                                case 0:
                                    $descriptionJakJs = '';
                                    break;
                                case 2:
                                    $descriptionJakJs = PhocaGalleryText::strTrimAll(addslashes($this->items[$iS]->description));
                                    break;
                                case 3:
                                    $descriptionJakJs = PhocaGalleryText::strTrimAll(addslashes($this->items[$iS]->title));
                                    if ($this->items[$iS]->description != '') {
                                        $descriptionJakJs .= '<br />' . PhocaGalleryText::strTrimAll(addslashes($this->items[$iS]->description));
                                    }
                                    break;
                                case 1:
                                default:
                                    $descriptionJakJs = PhocaGalleryText::strTrimAll(addslashes($this->items[$iS]->title));
                                    break;
                            }
                            $this->items[$iS]->linknr = $iM;
                            $this->tmpl['jakdatajs'][$iS] = "{alt: '" . PhocaGalleryText::strTrimAll(addslashes($this->items[$iS]->title)) . "',";
                            if ($descriptionJakJs != '') {
                                $this->tmpl['jakdatajs'][$iS] .= "description: '" . $descriptionJakJs . "',";
                            } else {
                                $this->tmpl['jakdatajs'][$iS] .= "description: ' ',";
                            }
                            if ($extImage) {
                                $this->tmpl['jakdatajs'][$iS] .= "small: {url: '" . $this->items[$iS]->extm . "'}," . "big: {url: '" . $this->items[$iS]->extl . "'} }";
                            } else {
                                $this->tmpl['jakdatajs'][$iS] .= "small: {url: '" . htmlentities(JURI::base(true) . '/' . PhocaGalleryText::strTrimAll(addslashes($thumbLinkM->rel))) . "'}," . "big: {url: '" . htmlentities(JURI::base(true) . '/' . PhocaGalleryText::strTrimAll(addslashes($imgLink))) . "'} }";
                            }
                        } else {
                            if ($this->tmpl['detail_window'] == 8) {
                                $this->items[$iS]->link = $imgLink;
                                $this->items[$iS]->link2 = $imgLink;
                                $this->items[$iS]->linkother = $imgLink;
                                $this->items[$iS]->linkorig = $imgLinkOrig;
                            } else {
                                if ($this->tmpl['detail_window'] == 9) {
                                    $this->items[$iS]->link = $siteLink;
                                    $this->items[$iS]->link2 = $siteLink;
                                    $this->items[$iS]->linkother = $siteLink;
                                    $this->items[$iS]->linkorig = $imgLinkOrig;
                                } else {
                                    if ($this->tmpl['detail_window'] == 10) {
                                        $this->items[$iS]->link = $imgLink;
                                        $this->items[$iS]->link2 = $imgLink;
                                        $this->items[$iS]->linkother = $siteLink;
                                        $this->items[$iS]->linkorig = $imgLinkOrig;
                                    } else {
                                        $this->items[$iS]->link = $siteLink;
                                        $this->items[$iS]->link2 = $siteLink;
                                        $this->items[$iS]->linkother = $siteLink;
                                        $this->items[$iS]->linkorig = $imgLinkOrig;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            // Buttons, e.g. shadowbox:
            // button - click on image
            // button2 - click on zoom icon (cannot be the same as click on image because of duplicity of images)
            // buttonOther - other detail window like download, geotagging
            $this->items[$iS]->button =& $this->button;
            $this->items[$iS]->button2 =& $this->button2;
            $this->items[$iS]->buttonother =& $this->buttonother;
            $this->items[$iS]->display_icon_detail = $this->tmpl['display_icon_detail'];
            $this->items[$iS]->display_icon_download = $this->tmpl['display_icon_download'];
            $this->items[$iS]->display_name = $this->tmpl['display_name'];
            $this->items[$iS]->display_icon_vm = '';
            $this->items[$iS]->start_cooliris = $this->tmpl['start_cooliris'];
            $this->items[$iS]->type = 2;
            // Trash icon
            if ($this->tmpl['trash'] == 1) {
                $this->items[$iS]->trash = 1;
            } else {
                $this->items[$iS]->trash = 0;
            }
            // Publish Unpublish icon
            if ($this->tmpl['publish_unpublish'] == 1) {
                $this->items[$iS]->publish_unpublish = 1;
            } else {
                $this->items[$iS]->publish_unpublish = 0;
            }
            // Publish Unpublish icon
            if ($this->tmpl['approved_not_approved'] == 1) {
                $this->items[$iS]->approved_not_approved = 1;
            } else {
                $this->items[$iS]->approved_not_approved = 0;
            }
            // PICLENS
            if ($this->tmpl['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->tmpl['display_icon_geo'] = 0;
            // so we need to check it for the image too, we need to set the $this->tmpl['display_icon_geoimage'] for image only
            // we are in loop now
            $this->tmpl['display_icon_geoimagetmp'] = 0;
            if ($this->tmpl['display_icon_geoimage'] == 1) {
                $this->tmpl['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->tmpl['display_icon_geoimagetmp'] = 0;
                }
            }
            // GEOTAGGING
            if ($this->tmpl['display_icon_geo'] == 1 || $this->tmpl['display_icon_geoimagetmp'] == 1) {
                $this->items[$iS]->display_icon_geo = 1;
                $this->tmpl['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->tmpl['display_icon_geoimagetmp'] = 0;
            // CAMERA INFO
            if ($this->tmpl['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->tmpl['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[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->tmpl['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[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->tmpl['overlibimagerate'] > 0) {
                    $imgSize = @getimagesize($this->items[$iS]->extl);
                    $wHOutput = PhocaGalleryImage::getTransformImageArray($imgSize, $this->tmpl['overlibimagerate']);
                }
                $oImg = JHtml::_('image', $this->items[$iS]->extl, '', $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->tmpl['overlibimagerate'] > 0) {
                    $imgSize = @getimagesize($thumbL);
                    $wHOutput = PhocaGalleryImage::getTransformImageArray($imgSize, $this->tmpl['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 = JHtml::_('image', $thumbL, '', $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>' . JText::_('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->tmpl['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>' . JText::_('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);
                    $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", "");
                    $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->tmpl['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>' . JText::_('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", "");
                    $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->tmpl['overlib_attributes']) . ");\"" . " onmouseout=\"return nd();\" ";
                    break;
                default:
                    $this->items[$iS]->overlib = 0;
                    $this->items[$iS]->overlib_value = '';
                    break;
            }
            // VirtueMart link
            if ($this->tmpl['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->tmpl['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->tmpl['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((double) $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->tmpl['display_comment_img'] == 1 || (int) $this->tmpl['display_comment_img'] == 3) {
                $this->items[$iS]->display_icon_commentimg = 1;
                $this->tmpl['display_icon_commentimg_box'] = 1;
                // because of height of box
            }
            // COMMENTS IMAGES, masonry
            if ((int) $this->tmpl['display_comment_img'] == 2 || (int) $this->tmpl['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->tmpl['user']->id);
                $this->items[$iS]->comment_items = PhocaGalleryCommentImage::displayComment($this->items[$iS]->id);
            }
            // ALT VALUE
            $altValue = PhocaGalleryRenderFront::getAltValue($this->tmpl['altvalue'], $this->items[$iS]->title, $this->items[$iS]->description, $this->items[$iS]->metadesc);
            $this->items[$iS]->altvalue = $altValue;
            // TITLE TAG - Description Output in Title Tag
            $imgAlt = $imgTitle = '';
            // Some methods cannot use Alt because of conflicting with Title and popup methods
            if ($this->tmpl['detail_window'] == 3 || $this->tmpl['detail_window'] == 9 || $this->tmpl['detail_window'] == 10) {
                $imgAlt = $this->items[$iS]->altvalue;
                $imgTitle = $this->items[$iS]->title;
                if ($imgAlt == $imgTitle) {
                    $imgAlt = '';
                }
                $this->items[$iS]->oimgalt = $imgAlt;
            } else {
                $this->items[$iS]->oimgalt = $altValue;
            }
            // TITLE TAG - Detail
            if ($this->tmpl['detail_window'] == 9 || $this->tmpl['detail_window'] == 10) {
                $detailAlt = $this->items[$iS]->altvalue;
                $detailTitle = $this->items[$iS]->title;
                if ($detailAlt == $detailTitle) {
                    $detailAlt = '';
                }
            } else {
                $detailAlt = JText::_('COM_PHOCAGALLERY_IMAGE_DETAIL');
                $detailTitle = JText::_('COM_PHOCAGALLERY_IMAGE_DETAIL');
            }
            $this->items[$iS]->oimgaltdetail = $detailAlt;
            $this->items[$iS]->oimgtitledetail = $detailTitle;
            $titleDesc = '';
            if ($this->tmpl['display_title_description'] == 1) {
                $titleDesc .= $this->items[$iS]->title;
                if ($this->items[$iS]->description != '' && $titleDesc != '') {
                    $titleDesc .= ' - ';
                }
            }
            if ($this->tmpl['detail_window'] == 8 && $this->tmpl['displaydescriptiondetail'] == 1) {
                $this->items[$iS]->odesctitletag = strip_tags($titleDesc) . strip_tags($this->items[$iS]->description);
            } else {
                $this->items[$iS]->odesctitletag = strip_tags($imgTitle);
            }
            // Overlib class
            if ($this->items[$iS]->overlib == 0) {
                $this->items[$iS]->ooverlibclass = array('class' => 'pg-image');
            } else {
                $this->items[$iS]->ooverlibclass = array('class' => 'pimo pg-image');
            }
            // Tags
            $this->items[$iS]->otags = '';
            if ($this->tmpl['display_tags_links'] == 1 || $this->tmpl['display_tags_links'] == 3) {
                $this->items[$iS]->otags = PhocaGalleryTag::displayTags($this->items[$iS]->id);
                if ($this->items[$iS]->otags != '') {
                    $this->tmpl['displaying_tags_true'] = 1;
                }
            }
            $iS++;
        }
        // END IMAGES
        // Upload Form - - - - - - - - - - - - -
        // Set FTP form
        $ftp = !JClientHelper::hasCredentials('ftp');
        // PARAMS - Upload size
        $this->tmpl['uploadmaxsize'] = $this->params->get('upload_maxsize', 3000000);
        $sess = JFactory::getSession();
        $this->assignRef('session', $sess);
        //$this->assignRef('uploadmaxsize', $upload_maxsize);
        // END Upload Form - - - - - - - - - - - -
        // V O T E S - CATEGORY
        // Only registered (VOTES + COMMENTS)
        $this->tmpl['not_registered'] = true;
        $this->tmpl['name'] = '';
        if ($access > 0) {
            $this->tmpl['not_registered'] = false;
            $this->tmpl['name'] = $this->tmpl['user']->name;
        }
        // VOTES Statistics
        if ((int) $this->tmpl['display_rating'] == 1 && (int) $id > 0) {
            $this->tmpl['votescount'] = 0;
            $this->tmpl['votesaverage'] = 0;
            $this->tmpl['voteswidth'] = 0;
            $votesStatistics = PhocaGalleryRateCategory::getVotesStatistics((int) $id);
            if (!empty($votesStatistics->count)) {
                $this->tmpl['votescount'] = $votesStatistics->count;
            }
            if (!empty($votesStatistics->average)) {
                $this->tmpl['votesaverage'] = $votesStatistics->average;
                if ($this->tmpl['votesaverage'] > 0) {
                    $this->tmpl['votesaverage'] = round((double) $this->tmpl['votesaverage'] / 0.5) * 0.5;
                    $this->tmpl['voteswidth'] = 22 * $this->tmpl['votesaverage'];
                } else {
                    $this->tmpl['votesaverage'] = (int) 0;
                    // not float displaying
                }
            }
            if ((int) $this->tmpl['votescount'] > 1) {
                $this->tmpl['votestext'] = 'COM_PHOCAGALLERY_VOTES';
            } else {
                $this->tmpl['votestext'] = 'COM_PHOCAGALLERY_VOTE';
            }
            // Already rated?
            $this->tmpl['alreay_rated'] = PhocaGalleryRateCategory::checkUserVote((int) $id, (int) $this->tmpl['user']->id);
        }
        // COMMENTS
        if ((int) $this->tmpl['display_comment'] == 1 && (int) $id > 0) {
            $document->addScript(JURI::base(true) . '/media/com_phocagallery/js/comments.js');
            $document->addCustomTag(PhocaGalleryRenderFront::renderCommentJS((int) $this->tmpl['maxcommentchar']));
            $this->tmpl['already_commented'] = PhocaGalleryCommentCategory::checkUserComment((int) $id, (int) $this->tmpl['user']->id);
            $commentItem = PhocaGalleryCommentCategory::displaycomment((int) $id);
            $this->assignRef('commentitem', $commentItem);
        }
        // - - - - - - - - - - - - - - - -
        // TABS
        // - - - - - - - - - - - - - - - -
        $this->tmpl['displaytabs'] = 0;
        $this->tmpl['currenttab'] = 0;
        if ((int) $id > 0) {
            $displayTabs = 0;
            // R A T I N G
            if ((int) $this->tmpl['display_rating'] == 0) {
                $currentTab['rating'] = -1;
            } else {
                $currentTab['rating'] = $displayTabs;
                $displayTabs++;
            }
            // C O M M E N T S
            if ((int) $this->tmpl['display_comment'] == 0) {
                $currentTab['comment'] = -1;
            } else {
                $currentTab['comment'] = $displayTabs;
                $displayTabs++;
            }
            // S T A T I S T I C S
            if ((int) $this->tmpl['displaycategorystatistics'] == 0) {
                $currentTab['statistics'] = -1;
            } else {
                $currentTab['statistics'] = $displayTabs;
                $displayTabs++;
                $this->tmpl['displaymaincatstat'] = $this->params->get('display_main_cat_stat', 1);
                $this->tmpl['displaylastaddedcatstat'] = $this->params->get('display_lastadded_cat_stat', 1);
                $this->tmpl['displaymostviewedcatstat'] = $this->params->get('display_mostviewed_cat_stat', 1);
                $this->tmpl['countlastaddedcatstat'] = $this->params->get('count_lastadded_cat_stat', 3);
                $this->tmpl['countmostviewedcatstat'] = $this->params->get('count_mostviewed_cat_stat', 3);
                if ($this->tmpl['displaymaincatstat'] == 1) {
                    $numberImgP = $model->getCountImages($id, 1);
                    $this->tmpl['numberimgpub'] = $numberImgP->countimg;
                    $numberImgU = $model->getCountImages($id, 0);
                    $this->tmpl['numberimgunpub'] = $numberImgU->countimg;
                    $this->categoryViewed = $model->getHits($id);
                    $this->tmpl['categoryviewed'] = $this->categoryViewed->catviewed;
                }
                // M O S T   V I E W E D   I M A G E S
                //$this->tmpl['mostviewedimg'] = array();
                if ($this->tmpl['displaymostviewedcatstat'] == 1) {
                    $mostViewedImages = $model->getStatisticsImages($id, 'hits', 'DESC', $this->tmpl['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->tmpl['display_icon_detail'];
                        $itemMVI->display_name = $this->tmpl['display_name'];
                        $itemMVI->type = 2;
                        $altValue = PhocaGalleryRenderFront::getAltValue($this->tmpl['altvalue'], $itemMVI->title, $itemMVI->description, $itemMVI->metadesc);
                        $itemMVI->altvalue = $altValue;
                        $thumbLink = PhocaGalleryFileThumbnail::getThumbnailName($itemMVI->filename, 'large');
                        $siteLink = JRoute::_('index.php?option=com_phocagallery&view=detail&catid=' . $this->category->slug . '&id=' . $itemMVI->slug . '&tmpl=component' . '&Itemid=' . $this->itemId);
                        $imgLink = JURI::base(true) . '/' . $thumbLink->rel;
                        switch ($this->tmpl['detail_window']) {
                            case 2:
                            case 3:
                            case 8:
                                $itemMVI->link = $imgLink;
                                break;
                            default:
                                $itemMVI->link = $siteLink;
                                break;
                        }
                        //$this->tmpl['mostviewedimg'][] = $itemMVI;
                        if ($itemMVI->extw != '') {
                            $extw = explode(',', $itemMVI->extw);
                            $itemMVI->extw = $extw[1];
                        }
                        if ($itemMVI->exth != '') {
                            $exth = explode(',', $itemMVI->exth);
                            $itemMVI->exth = $exth[1];
                        }
                    }
                    $this->tmpl['mostviewedimg'] = $mostViewedImages;
                }
                // L A S T   A D D E D   I M A G E S
                //$this->tmpl['lastaddedimg'] = array();
                if ($this->tmpl['displaylastaddedcatstat'] == 1) {
                    $lastAddedImages = $model->getStatisticsImages($id, 'date', 'DESC', $this->tmpl['countlastaddedcatstat']);
                    for ($i = 0; $i < count($lastAddedImages); $i++) {
                        $itemLAI =& $lastAddedImages[$i];
                        $itemLAI->link = JRoute::_('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->tmpl['display_icon_detail'];
                        $itemLAI->display_name = $this->tmpl['display_name'];
                        $itemLAI->type = 2;
                        $altValue = PhocaGalleryRenderFront::getAltValue($this->tmpl['altvalue'], $itemLAI->title, $itemLAI->description, $itemLAI->metadesc);
                        $itemLAI->altvalue = $altValue;
                        $thumbLink = PhocaGalleryFileThumbnail::getThumbnailName($itemLAI->filename, 'large');
                        $siteLink = JRoute::_('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;
                        switch ($this->tmpl['detail_window']) {
                            case 2:
                            case 3:
                            case 8:
                                $itemLAI->link = $imgLink;
                                break;
                            default:
                                $itemLAI->link = $siteLink;
                                break;
                        }
                        //$this->tmpl['lastaddedimg'][] = $itemLAI;
                        if ($itemLAI->extw != '') {
                            $extw = explode(',', $itemLAI->extw);
                            $itemLAI->extw = $extw[1];
                        }
                        if ($itemLAI->exth != '') {
                            $exth = explode(',', $itemLAI->exth);
                            $itemLAI->exth = $exth[1];
                        }
                    }
                    $this->tmpl['lastaddedimg'] = $lastAddedImages;
                }
            }
            // G E O T A G G I N G
            if ((int) $this->tmpl['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->tmpl['googlemapsapikey'] = $this->params->get('google_maps_api_key', '');
                        $this->tmpl['categorymapwidth'] = $this->params->get('category_map_width', '');
                        $this->tmpl['categorymapheight'] = $this->params->get('category_map_height', 400);
                    }
                }
            }
            if ((int) $this->tmpl['displaycreatecat'] == 0) {
                $currentTab['createsubcategory'] = -1;
            } else {
                $currentTab['createsubcategory'] = $displayTabs;
                $displayTabs++;
            }
            // = = = = = = = = = =
            // U P L O A D
            // = = = = = = = = = =
            $this->tmpl['ftp'] = !JClientHelper::hasCredentials('ftp');
            // SEF problem
            $isThereQM = false;
            $isThereQM = preg_match("/\\?/i", $this->tmpl['action']);
            if ($isThereQM) {
                $amp = '&';
                // will be protected by htmlspecialchars
            } else {
                $amp = '?';
            }
            $isThereTab = false;
            $isThereTab = preg_match("/tab=/i", $this->tmpl['action']);
            if ((int) $this->tmpl['displayupload'] == 0) {
                $currentTab['upload'] = -1;
            } else {
                $currentTab['upload'] = $displayTabs;
                $displayTabs++;
            }
            if ((int) $this->tmpl['ytbupload'] == 0 || (int) $this->tmpl['displayupload'] == 0) {
                $currentTab['ytbupload'] = -1;
            } else {
                $currentTab['ytbupload'] = $displayTabs;
                $displayTabs++;
            }
            if ((int) $this->tmpl['enablemultiple'] < 1 || (int) $this->tmpl['displayupload'] == 0) {
                $currentTab['multipleupload'] = -1;
            } else {
                $currentTab['multipleupload'] = $displayTabs;
                $displayTabs++;
            }
            if ((int) $this->tmpl['enablejava'] < 1 || (int) $this->tmpl['displayupload'] == 0) {
                $currentTab['javaupload'] = -1;
            } else {
                $currentTab['javaupload'] = $displayTabs;
                $displayTabs++;
            }
            $this->tmpl['displaytabs'] = $displayTabs;
            $this->tmpl['currenttab'] = $currentTab;
            // - - - - - - - - - - -
            // Upload
            // - - - - - - - - - - -
            if ((int) $this->tmpl['displayupload'] == 1) {
                $sU = new PhocaGalleryFileUploadSingle();
                $sU->returnUrl = htmlspecialchars($this->tmpl['action'] . $amp . 'task=upload&' . $this->session->getName() . '=' . $this->session->getId() . '&' . JSession::getFormToken() . '=1&viewback=category&tab=' . $this->tmpl['currenttab']['upload']);
                $sU->tab = $this->tmpl['currenttab']['upload'];
                $this->tmpl['su_output'] = $sU->getSingleUploadHTML(1);
                $this->tmpl['su_url'] = htmlspecialchars($this->tmpl['action'] . $amp . 'task=upload&' . $this->session->getName() . '=' . $this->session->getId() . '&' . JSession::getFormToken() . '=1&viewback=category&tab=' . $this->tmpl['currenttab']['upload']);
            }
            // - - - - - - - - - - -
            // Youtube Upload (single upload form can be used)
            // - - - - - - - - - - -
            if ((int) $this->tmpl['ytbupload'] == 1 && $this->tmpl['displayupload'] == 1) {
                $sYU = new PhocaGalleryFileUploadSingle();
                $sYU->returnUrl = htmlspecialchars($this->tmpl['action'] . $amp . 'task=ytbupload&' . $this->session->getName() . '=' . $this->session->getId() . '&' . JSession::getFormToken() . '=1&viewback=category&tab=' . $this->tmpl['currenttab']['ytbupload']);
                $sYU->tab = $this->tmpl['currenttab']['ytbupload'];
                $this->tmpl['syu_output'] = $sYU->getSingleUploadHTML(1);
                $this->tmpl['syu_url'] = htmlspecialchars($this->tmpl['action'] . $amp . 'task=ytbupload&' . $this->session->getName() . '=' . $this->session->getId() . '&' . JSession::getFormToken() . '=1&viewback=category&tab=' . $this->tmpl['currenttab']['ytbupload']);
            }
            // - - - - - - - - - - -
            // Multiple Upload
            // - - - - - - - - - - -
            // Get infos from multiple upload
            $muFailed = $app->input->get('mufailed', '0', 'int');
            $muUploaded = $app->input->get('muuploaded', '0', 'int');
            $this->tmpl['mu_response_msg'] = $muUploadedMsg = '';
            if ($muUploaded > 0) {
                $muUploadedMsg = JText::_('COM_PHOCAGALLERY_COUNT_UPLOADED_IMG') . ': ' . $muUploaded;
            }
            if ($muFailed > 0) {
                $muFailedMsg = JText::_('COM_PHOCAGALLERY_COUNT_NOT_UPLOADED_IMG') . ': ' . $muFailed;
            }
            if ($muFailed > 0 && $muUploaded > 0) {
                $this->tmpl['mu_response_msg'] = '<div class="alert alert-info">' . JText::_('COM_PHOCAGALLERY_COUNT_UPLOADED_IMG') . ': ' . $muUploaded . '<br />' . JText::_('COM_PHOCAGALLERY_COUNT_NOT_UPLOADED_IMG') . ': ' . $muFailed . '</div>';
            } else {
                if ($muFailed > 0 && $muUploaded == 0) {
                    $this->tmpl['mu_response_msg'] = '<div class="alert alert-error">' . JText::_('COM_PHOCAGALLERY_COUNT_NOT_UPLOADED_IMG') . ': ' . $muFailed . '</div>';
                } else {
                    if ($muFailed == 0 && $muUploaded > 0) {
                        $this->tmpl['mu_response_msg'] = '<div class="alert alert-success">' . JText::_('COM_PHOCAGALLERY_COUNT_UPLOADED_IMG') . ': ' . $muUploaded . '</div>';
                    } else {
                        $this->tmpl['mu_response_msg'] = '';
                    }
                }
            }
            if ((int) $this->tmpl['enablemultiple'] == 1 && (int) $this->tmpl['displayupload'] == 1) {
                PhocaGalleryFileUploadMultiple::renderMultipleUploadLibraries();
                $mU = new PhocaGalleryFileUploadMultiple();
                $mU->frontEnd = 1;
                $mU->method = $this->tmpl['multipleuploadmethod'];
                $mU->url = htmlspecialchars($this->tmpl['action'] . $amp . 'controller=category&task=multipleupload&' . $this->session->getName() . '=' . $this->session->getId() . '&' . JSession::getFormToken() . '=1&tab=' . $this->tmpl['currenttab']['multipleupload']);
                $mU->reload = htmlspecialchars($this->tmpl['action'] . $amp . $this->session->getName() . '=' . $this->session->getId() . '&' . JSession::getFormToken() . '=1&tab=' . $this->tmpl['currenttab']['multipleupload']);
                $mU->maxFileSize = PhocaGalleryFileUploadMultiple::getMultipleUploadSizeFormat($this->tmpl['uploadmaxsize']);
                $mU->chunkSize = '1mb';
                $mU->imageHeight = $this->tmpl['multipleresizeheight'];
                $mU->imageWidth = $this->tmpl['multipleresizewidth'];
                $mU->imageQuality = 100;
                $mU->renderMultipleUploadJS(0, $this->tmpl['multipleuploadchunk']);
                $this->tmpl['mu_output'] = $mU->getMultipleUploadHTML();
            }
            // - - - - - - - - - - -
            // Java Upload
            // - - - - - - - - - - -
            if ((int) $this->tmpl['enablejava'] == 1 && (int) $this->tmpl['displayupload'] == 1) {
                $jU = new PhocaGalleryFileUploadJava();
                $jU->width = $this->tmpl['javaboxwidth'];
                $jU->height = $this->tmpl['javaboxheight'];
                $jU->resizewidth = $this->tmpl['multipleresizewidth'];
                $jU->resizeheight = $this->tmpl['multipleresizeheight'];
                $jU->uploadmaxsize = $this->tmpl['uploadmaxsize'];
                $jU->returnUrl = $this->tmpl['action'] . $amp . $this->session->getName() . '=' . $this->session->getId() . '&' . JSession::getFormToken() . '=1&tab=' . $this->tmpl['currenttab']['javaupload'];
                $jU->url = $this->tmpl['action'] . $amp . 'controller=category&task=javaupload&amp;' . $this->session->getName() . '=' . $this->session->getId() . '&' . JSession::getFormToken() . '=1&amp;tab=' . $this->tmpl['currenttab']['javaupload'];
                $jU->source = JURI::root(true) . '/components/com_phocagallery/assets/jupload/wjhk.jupload.jar';
                $this->tmpl['ju_output'] = $jU->getJavaUploadHTML();
            }
        }
        $this->tmpl['dem'] = '<div style="text-align:right;color:#ccc;display:block">Powered by <a href="http://www.phoca.cz/phocagallery">Phoca Gallery</a></div>';
        // ADD STATISTICS
        if ((int) $id > 0) {
            $model->hit($id);
        }
        // ADD JAK DATA CSS style
        if ($this->tmpl['detail_window'] == 6) {
            $document->addCustomTag('<script type="text/javascript">' . 'var dataJakJs = [' . implode($this->tmpl['jakdatajs'], ',') . ']' . '</script>');
        }
        // Detail Window - will be popup or not
        if ($this->tmpl['detail_window'] == 7) {
            $this->tmpl['tmplcom'] = '';
            $this->tmpl['tmplcomcomments'] = '';
        } else {
            $this->tmpl['tmplcom'] = '&tmpl=component';
            $this->tmpl['tmplcomcomments'] = '&tmpl=component';
        }
        if ($this->tmpl['display_comment_nopup'] == 1) {
            $this->tmpl['tmplcomcomments'] = '';
        }
        $this->tmpl['boxsize'] = PhocaGalleryImage::setBoxSize($this->tmpl, 2);
        $this->tmpl['boxsizestat'] = PhocaGalleryImage::setBoxSize($this->tmpl, 3);
        $masBoxWidth = $this->tmpl['boxsize']['width'] + 20;
        // Masonry effect
        if ($this->tmpl['diff_thumb_height'] == 2) {
            $document->addScript(JURI::base(true) . '/components/com_phocagallery/assets/masonry/masonry.min.js');
            $document->addCustomTag('<script type="text/javascript">
			window.onload = function() {
			  var wall = new Masonry( document.getElementById(\'pg-msnr-container\'), {
				isFitWidth: true
			  });
			};
			</script>');
        }
        // CSS Specific
        $s = "\n" . '#phocagallery {' . "\n";
        if ($this->tmpl['phocagallery_center'] != '') {
            $s .= '   margin: 0 auto; text-align: center;' . "\n";
        }
        if ($this->tmpl['phocagallery_width'] != '') {
            $s .= '   width: ' . $this->tmpl['phocagallery_width'] . 'px;' . "\n";
        }
        $s .= '}' . "\n";
        if ($this->tmpl['phocagallery_center'] != '') {
            $s = "\n" . '#pg-msnr-container {' . "\n";
            $s .= '   margin: 0 auto;' . "\n";
            $s .= '}' . "\n";
        }
        $s .= '.pg-cv-box {' . "\n";
        if ($this->tmpl['diff_thumb_height'] > 0) {
        } else {
            $s .= '   height: ' . $this->tmpl['boxsize']['height'] . 'px;' . "\n";
        }
        $s .= '   width: ' . $this->tmpl['boxsize']['width'] . 'px;"' . "\n";
        $s .= '}' . "\n";
        $s .= '.pg-cv-box-stat {' . "\n";
        $s .= '   height: ' . $this->tmpl['boxsizestat']['height'] . 'px;' . "\n";
        $s .= '   width: ' . $this->tmpl['boxsizestat']['width'] . 'px;"' . "\n";
        $s .= '}' . "\n";
        $s .= '.pg-cv-box-img {' . "\n";
        $s .= '   height: ' . $this->tmpl['imageheight'] . 'px;' . "\n";
        $s .= '   width: ' . $this->tmpl['imagewidth'] . 'px;"' . "\n";
        $s .= '}' . "\n";
        $document->addCustomTag('<style type="text/css">' . $s . '</style>');
        $this->_prepareDocument();
        parent::display($tpl);
    }
Ejemplo n.º 10
0
 public function renderOrderingFront($selected, $type = 1)
 {
     switch ($type) {
         case 2:
             $typeOrdering = PhocaGalleryOrdering::getOrderingCategoryArray();
             $ordering = 'catordering';
             break;
         default:
             $typeOrdering = PhocaGalleryOrdering::getOrderingImageArray();
             $ordering = 'imgordering';
             break;
     }
     $html = JHTML::_('select.genericlist', $typeOrdering, $ordering, 'class="inputbox" size="1" onchange="this.form.submit()"', 'value', 'text', $selected);
     return $html;
 }
Ejemplo n.º 11
0
    function display($tpl = null)
    {
        $app = JFactory::getApplication();
        $document = JFactory::getDocument();
        $uri = JFactory::getURI();
        //$menus						= JSite::getMenu();
        $menus = JFactory::getApplication()->getMenu();
        $menu = $menus->getActive();
        $this->params = $app->getParams();
        $this->tmpl['user'] = JFactory::getUser();
        $this->tmpl['action'] = $uri->toString();
        $path = PhocaGalleryPath::getPath();
        $limitStart = JRequest::getVar('limitstart', 0, '', 'int');
        $id = JRequest::getVar('id', 0, '', 'int');
        $this->tagId = JRequest::getVar('tagid', 0, '', 'int');
        $this->tmpl['tab'] = JRequest::getVar('tab', 0, '', 'int');
        $this->tmpl['formaticon'] = PhocaGalleryImage::getFormatIcon();
        $this->tmpl['pl'] = 'index.php?option=com_users&view=login&return=' . base64_encode($uri->toString());
        $neededAccessLevels = PhocaGalleryAccess::getNeededAccessLevels();
        $access = PhocaGalleryAccess::isAccess($this->tmpl['user']->authorisedLevels(), $neededAccessLevels);
        // 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');
        // PARAMS
        $this->tmpl['displaycatnametitle'] = $this->params->get('display_cat_name_title', 1);
        $display_cat_name_breadcrumbs = $this->params->get('display_cat_name_breadcrumbs', 1);
        $image_background_color = $this->params->get('image_background_color', '#f5f5f5');
        $this->tmpl['displayimageshadow'] = $this->params->get('image_background_shadow', 'shadow1');
        $this->tmpl['imagewidth'] = $this->params->get('medium_image_width', 100);
        $this->tmpl['imageheight'] = $this->params->get('medium_image_height', 100);
        $popup_width = $this->params->get('front_modal_box_width', 680);
        $popup_height = $this->params->get('front_modal_box_height', 560);
        $this->tmpl['olbgcolor'] = $this->params->get('ol_bg_color', '#666666');
        $this->tmpl['olfgcolor'] = $this->params->get('ol_fg_color', '#f6f6f6');
        $this->tmpl['oltfcolor'] = $this->params->get('ol_tf_color', '#000000');
        $this->tmpl['olcfcolor'] = $this->params->get('ol_cf_color', '#ffffff');
        $this->tmpl['maxuploadchar'] = $this->params->get('max_upload_char', 1000);
        $this->tmpl['maxcommentchar'] = $this->params->get('max_comment_char', 1000);
        $this->tmpl['maxcreatecatchar'] = $this->params->get('max_create_cat_char', 1000);
        $this->tmpl['commentwidth'] = $this->params->get('comment_width', 500);
        $this->tmpl['displayrating'] = $this->params->get('display_rating', 0);
        $this->tmpl['displayratingimg'] = $this->params->get('display_rating_img', 0);
        $this->tmpl['displaycomment'] = $this->params->get('display_comment', 0);
        $this->tmpl['displaycommentimg'] = $this->params->get('display_comment_img', 0);
        $this->tmpl['displaysubcategory'] = $this->params->get('display_subcategory', 1);
        $this->tmpl['displaycategorygeotagging'] = $this->params->get('display_category_geotagging', 0);
        $this->tmpl['displaycategorystatistics'] = $this->params->get('display_category_statistics', 0);
        // Used for Highslide JS (only image)
        $this->tmpl['displaydescriptiondetail'] = $this->params->get('display_description_detail', 0);
        $this->tmpl['displaytitleindescription'] = $this->params->get('display_title_description', 0);
        $this->tmpl['displayname'] = $this->params->get('display_name', 1);
        $this->tmpl['displayicondetail'] = $this->params->get('display_icon_detail', 1);
        $this->tmpl['displayicondownload'] = $this->params->get('display_icon_download', 2);
        $this->tmpl['displayiconfolder'] = $this->params->get('display_icon_folder', 0);
        $this->tmpl['displayiconvm'] = $this->params->get('display_icon_vm', 0);
        $this->tmpl['fontsizename'] = $this->params->get('font_size_name', 12);
        $this->tmpl['fontsizeimgdesc'] = $this->params->get('font_size_img_desc', 10);
        $this->tmpl['imgdescboxheight'] = $this->params->get('img_desc_box_height', 30);
        $this->tmpl['displayimgdescbox'] = $this->params->get('display_img_desc_box', 0);
        $this->tmpl['charlengthimgdesc'] = $this->params->get('char_length_img_desc', 300);
        $this->tmpl['charlengthname'] = $this->params->get('char_length_name', 15);
        $this->tmpl['displayicongeo'] = $this->params->get('display_icon_geotagging', 0);
        // Check the category
        $this->tmpl['displayicongeoimage'] = $this->params->get('display_icon_geotagging', 0);
        // Check the image
        $this->tmpl['displaycamerainfo'] = $this->params->get('display_camera_info', 0);
        $this->tmpl['displaypage'] = PhocaGalleryRenderInfo::getPhocaIc((int) $this->params->get('display_phoca_info', 1));
        $this->tmpl['switchimage'] = $this->params->get('switch_image', 0);
        $this->tmpl['switchheight'] = $this->params->get('switch_height', 480);
        $this->tmpl['switchwidth'] = $this->params->get('switch_width', 640);
        $this->tmpl['switchfixedsize'] = $this->params->get('switch_fixed_size', 0);
        // PARAMS - Upload
        $this->tmpl['multipleuploadchunk'] = $this->params->get('multiple_upload_chunk', 0);
        $this->tmpl['displaytitleupload'] = $this->params->get('display_title_upload', 0);
        $this->tmpl['displaydescupload'] = $this->params->get('display_description_upload', 0);
        $this->tmpl['enablejava'] = $this->params->get('enable_java', 0);
        $this->tmpl['enablemultiple'] = $this->params->get('enable_multiple', 0);
        $this->tmpl['multipleuploadmethod'] = $this->params->get('multiple_upload_method', 1);
        $this->tmpl['multipleresizewidth'] = $this->params->get('multiple_resize_width', -1);
        $this->tmpl['multipleresizeheight'] = $this->params->get('multiple_resize_height', -1);
        $this->tmpl['javaboxwidth'] = $this->params->get('java_box_width', 480);
        $this->tmpl['javaboxheight'] = $this->params->get('java_box_height', 480);
        $this->tmpl['large_image_width'] = $this->params->get('large_image_width', 640);
        $this->tmpl['large_image_height'] = $this->params->get('large_image_height', 640);
        $this->tmpl['uploadmaxsize'] = $this->params->get('upload_maxsize', 3145728);
        $this->tmpl['uploadmaxsizeread'] = PhocaGalleryFile::getFileSizeReadable($this->tmpl['uploadmaxsize']);
        $this->tmpl['uploadmaxreswidth'] = $this->params->get('upload_maxres_width', 3072);
        $this->tmpl['uploadmaxresheight'] = $this->params->get('upload_maxres_height', 2304);
        $this->tmpl['phocagallerywidth'] = $this->params->get('phocagallery_width', '');
        $this->tmpl['phocagallerycenter'] = $this->params->get('phocagallery_center', '');
        $display_description_detail = $this->params->get('display_description_detail', 0);
        $description_detail_height = $this->params->get('description_detail_height', 16);
        $this->tmpl['categoryboxspace'] = $this->params->get('category_box_space', 0);
        $this->tmpl['detailwindow'] = $this->params->get('detail_window', 0);
        $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->tmpl['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->tmpl['jakslideshowdelay'] = $this->params->get('jak_slideshow_delay', 5);
        $this->tmpl['jakorientation'] = $this->params->get('jak_orientation', 'none');
        $this->tmpl['jakdescription'] = $this->params->get('jak_description', 1);
        $this->tmpl['jakdescriptionheight'] = $this->params->get('jak_description_height', 0);
        $this->tmpl['categoryimageordering'] = $this->params->get('category_image_ordering', 10);
        $this->tmpl['externalcommentsystem'] = $this->params->get('external_comment_system', 0);
        // Possible Categories View in Category View
        $this->tmpl['categoryimageorderingcv'] = $this->params->get('category_image_ordering_cv', 10);
        $this->tmpl['displaycategoriescv'] = $this->params->get('display_categories_cv', 0);
        $display_subcat_page_cv = $this->params->get('display_subcat_page_cv', 0);
        $display_back_button_cv = $this->params->get('display_back_button_cv', 1);
        $display_categories_back_button_cv = $this->params->get('display_categories_back_button_cv', 1);
        $this->tmpl['displayimagecategoriescv'] = $this->params->get('display_image_categories_cv', 1);
        $this->tmpl['categoriescolumnscv'] = $this->params->get('categories_columns_cv', 1);
        $image_categories_size_cv = $this->params->get('image_categories_size_cv', 4);
        $medium_image_width_cv = (int) $this->params->get('medium_image_width', 100) + 18;
        $medium_image_height_cv = (int) $this->params->get('medium_image_height', 100) + 18;
        $small_image_width_cv = (int) $this->params->get('small_image_width', 50) + 18;
        $small_image_height_cv = (int) $this->params->get('small_image_height', 50) + 18;
        $this->tmpl['imagetypecv'] = $image_categories_size_cv;
        $this->tmpl['overlibimagerate'] = (int) $this->params->get('overlib_image_rate', '');
        $this->tmpl['picasa_correct_width_m'] = (int) $this->params->get('medium_image_width', 100);
        $this->tmpl['picasa_correct_height_m'] = (int) $this->params->get('medium_image_height', 100);
        $this->tmpl['picasa_correct_width_s'] = (int) $this->params->get('small_image_width', 50);
        $this->tmpl['picasa_correct_height_s'] = (int) $this->params->get('small_image_height', 50);
        $this->tmpl['picasa_correct_width_l'] = (int) $this->params->get('large_image_width', 640);
        $this->tmpl['picasa_correct_height_l'] = (int) $this->params->get('large_image_height', 480);
        $this->tmpl['gallerymetakey'] = $this->params->get('gallery_metakey', '');
        $this->tmpl['gallerymetadesc'] = $this->params->get('gallery_metadesc', '');
        $this->tmpl['altvalue'] = $this->params->get('alt_value', 1);
        $paramsFb = PhocaGalleryFbSystem::getCommentsParams($this->params->get('fb_comment_user_id', ''));
        // Facebook
        $this->tmpl['fb_comment_app_id'] = isset($paramsFb['fb_comment_app_id']) ? $paramsFb['fb_comment_app_id'] : '';
        $this->tmpl['fb_comment_width'] = isset($paramsFb['fb_comment_width']) ? $paramsFb['fb_comment_width'] : 550;
        $this->tmpl['fb_comment_lang'] = isset($paramsFb['fb_comment_lang']) ? $paramsFb['fb_comment_lang'] : 'en_US';
        $this->tmpl['fb_comment_count'] = isset($paramsFb['fb_comment_count']) ? $paramsFb['fb_comment_count'] : '';
        $this->tmpl['enable_direct_subcat'] = $this->params->get('enable_direct_subcat', 0);
        $this->tmpl['display_comment_nopup'] = $this->params->get('display_comment_nopup', 0);
        $this->tmpl['boxplus_theme'] = $this->params->get('boxplus_theme', 'lightsquare');
        $this->tmpl['boxplus_bautocenter'] = (int) $this->params->get('boxplus_bautocenter', 1);
        $this->tmpl['boxplus_autofit'] = (int) $this->params->get('boxplus_autofit', 1);
        $this->tmpl['boxplus_slideshow'] = (int) $this->params->get('boxplus_slideshow', 0);
        $this->tmpl['boxplus_loop'] = (int) $this->params->get('boxplus_loop', 0);
        $this->tmpl['boxplus_captions'] = $this->params->get('boxplus_captions', 'bottom');
        $this->tmpl['boxplus_thumbs'] = $this->params->get('boxplus_thumbs', 'inside');
        $this->tmpl['boxplus_duration'] = (int) $this->params->get('boxplus_duration', 250);
        $this->tmpl['boxplus_transition'] = $this->params->get('boxplus_transition', 'linear');
        $this->tmpl['boxplus_contextmenu'] = (int) $this->params->get('boxplus_contextmenu', 1);
        $this->tmpl['enablecustomcss'] = $this->params->get('enable_custom_css', 0);
        $this->tmpl['customcss'] = $this->params->get('custom_css', '');
        $this->tmpl['display_tags_links'] = $this->params->get('display_tags_links', 0);
        $this->tmpl['displaying_tags_true'] = 0;
        //No tag found, if yes, the box will be resized
        $this->tmpl['ytbupload'] = $this->params->get('youtube_upload', 0);
        $this->tmpl['ytb_display'] = $this->params->get('ytb_display', 0);
        $this->tmpl['enable_multibox'] = $this->params->get('enable_multibox', 0);
        $this->tmpl['multibox_height'] = (int) $this->params->get('multibox_height', 560);
        $this->tmpl['multibox_width'] = (int) $this->params->get('multibox_width', 980);
        // = = = = = = = = = =
        // CSS
        // = = = = = = = = = =
        JHtml::stylesheet('components/com_phocagallery/assets/phocagallery.css');
        if ($this->tmpl['enablecustomcss'] == 1) {
            JHtml::stylesheet('components/com_phocagallery/assets/phocagallerycustom.css');
            PhocaGalleryRenderFront::displayCustomCSS($this->tmpl['customcss']);
        } else {
            $libraries['pg-css-ie'] = $library->getLibrary('pg-css-ie');
            $libraries['pg-css-ie-hover'] = $library->getLibrary('pg-css-ie-hover');
            // PARAMS - Background shadow
            if ($this->tmpl['displayimageshadow'] != 'none') {
                // IE hack
                $shadowPath = $path->image_abs_front . $this->tmpl['displayimageshadow'] . '.' . $this->tmpl['formaticon'];
                $shadowSize = getimagesize($shadowPath);
                if (isset($shadowSize[0]) && isset($shadowSize[0])) {
                    $w = (int) $this->tmpl['imagewidth'] + 18 - (int) $shadowSize[0];
                    $h = (int) $this->tmpl['imageheight'] + 18 - (int) $shadowSize[1];
                    if ($w != 0) {
                        $w = $w / 2;
                    }
                    // plus or minus should be divided, not null
                    if ($h != 0) {
                        $h = $h / 2;
                    }
                } else {
                    $w = $h = 0;
                }
                $imageBgCSS = 'background: url(\'' . JURI::base(true) . '/components/com_phocagallery/assets/images/' . $this->tmpl['displayimageshadow'] . '.' . $this->tmpl['formaticon'] . '\') 50% 50% no-repeat;';
                $imageBgCSSIE = 'background: url(\'' . JURI::base(true) . '/components/com_phocagallery/assets/images/' . $this->tmpl['displayimageshadow'] . '.' . $this->tmpl['formaticon'] . '\') ' . $w . 'px ' . $h . 'px no-repeat;';
            } else {
                $imageBgCSS = 'background: ' . $image_background_color . ';';
                $imageBgCSSIE = 'background: ' . $image_background_color . ';';
            }
            if ($libraries['pg-css-ie']->value == 0) {
                $document->addCustomTag("<!--[if lt IE 8 ]>\n<link rel=\"stylesheet\" href=\"" . JURI::base(true) . "/components/com_phocagallery/assets/phocagalleryieall.css\" type=\"text/css\" />\n<![endif]-->");
                $library->setLibrary('pg-css-ie', 1);
            }
            $document->addCustomTag(PhocaGalleryRenderFront::renderCategoryCSS($this->params->get('font_color', '#b36b00'), $this->params->get('background_color', '#fcfcfc'), $this->params->get('border_color', '#e8e8e8'), $imageBgCSS, $imageBgCSSIE, $this->params->get('border_color_hover', '#b36b00'), $this->params->get('background_color_hover', '#f5f5f5'), $this->tmpl['olfgcolor'], $this->tmpl['olbgcolor'], $this->tmpl['oltfcolor'], $this->tmpl['olcfcolor'], $this->params->get('margin_box', 5), $this->params->get('padding_box', 5), $this->params->get('overlib_overlay_opacity', 0.7)));
            if ($libraries['pg-css-ie-hover']->value == 0) {
                $document->addCustomTag(PhocaGalleryRenderFront::renderIeHover());
                $library->setLibrary('pg-css-ie-hover', 1);
            }
        }
        // = = = = = = = = = =
        // Default_Categories
        $catImg = PhocaGalleryImageFront::getCategoriesImageBackground($image_categories_size_cv, $small_image_width_cv, $small_image_height_cv, $medium_image_height_cv, $medium_image_width_cv);
        $this->tmpl['imagebgcv'] = $catImg->image;
        $this->tmpl['imagewidthcv'] = $catImg->width;
        switch ($image_categories_size_cv) {
            // medium
            case 1:
            case 5:
                $this->tmpl['class_suffix'] = 'medium';
                break;
            case 0:
            case 4:
            default:
                $this->tmpl['class_suffix'] = 'small';
                break;
        }
        // Correct Height
        // Description detail height
        if ($display_description_detail == 1) {
            $popup_height = $popup_height + $description_detail_height;
        }
        // Detail buttons in detail view
        if ($detail_buttons != 1) {
            $popup_height = $popup_height - 45;
        }
        if ($this->tmpl['displayratingimg'] == 1) {
            $popup_height = $popup_height + 35;
        }
        // Correct height of description in image box (set null if this will be hidden)
        if ($this->tmpl['displayimgdescbox'] == 0) {
            $this->tmpl['imgdescboxheight'] = 0;
        }
        // Youtube video without padding, margin
        if ($this->tmpl['detailwindow'] != 7 && $this->tmpl['ytb_display'] == 1) {
            $document->addCustomTag("<style type=\"text/css\"> \n" . " #boxplus .boxplus-dialog .boxplus-controlsclose {\r\n\t\t\t\ttop: -15px !important;\r\n\t\t\t\tright: -15px !important;\r\n\t\t\t\tmargin:0px 0 0 0 !important;\r\n\t\t\t} \n" . " </style> \n");
            $popup_width = PhocaGallerySettings::getAdvancedSettings('youtubewidth');
            $popup_height = PhocaGallerySettings::getAdvancedSettings('youtubeheight');
        }
        // Multibox
        if ($this->tmpl['enable_multibox'] == 1) {
            $popup_width = $this->tmpl['multibox_width'];
            $popup_height = $this->tmpl['multibox_height'];
        }
        $this->tmpl['bna'] = '<div style="text-align: center; color: rgb(211, 211, 211);">Powe' . 'red by <a href="http://www.phoca.cz/phocaga' . 'llery" style="text-decoration: none;" target="_blank" title="Phoca Gal' . 'lery">Pho' . 'ca Gall' . 'ery</a></div>';
        // =======================================================
        // 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
        JHtml::_('behavior.modal', 'a.pg-modal-button');
        // CSS Specific
        $document->addCustomTag("<style type=\"text/css\"> \n" . " #sbox-window {background-color:" . $modal_box_border_color . ";padding:" . $modal_box_border_width . "px} \n" . " #sbox-overlay {background-color:" . $modal_box_overlay_color . ";} \n" . " </style> \n");
        // BUTTON (IMAGE - standard, modal, shadowbox)
        $button = new JObject();
        $button->set('name', 'image');
        $button->set('options', '');
        //initialize
        // BUTTON (ICON - standard, modal, shadowbox)
        $button2 = new JObject();
        $button2->set('name', 'icon');
        $button2->set('options', '');
        //initialize
        // BUTTON OTHER (geotagging, downloadlink, ...)
        $buttonOther = new JObject();
        $buttonOther->set('name', 'other');
        $buttonOther->set('options', '');
        //initialize
        $buttonOther->set('optionsrating', '');
        //initialize
        $this->tmpl['highslideonclick'] = '';
        // for using with highslide
        $this->tmpl['highslideonclick2'] = '';
        // -------------------------------------------------------
        // STANDARD POPUP
        // -------------------------------------------------------
        if ($this->tmpl['detailwindow'] == 1) {
            $button->set('methodname', 'js-button');
            $button->set('options', "window.open(this.href,'win2','width=" . $popup_width . ",height=" . $popup_height . ",scrollbars=yes,menubar=no,resizable=yes'); return false;");
            $button->set('optionsrating', "window.open(this.href,'win2','width=" . $popup_width . ",height=" . $popup_height . ",scrollbars=yes,menubar=no,resizable=yes'); return false;");
            $button2->methodname =& $button->methodname;
            $button2->options =& $button->options;
            $buttonOther->methodname =& $button->methodname;
            $buttonOther->options =& $button->options;
            $buttonOther->optionsrating =& $button->optionsrating;
        } else {
            if ($this->tmpl['detailwindow'] == 0 || $this->tmpl['detailwindow'] == 2) {
                // Button
                $button->set('modal', true);
                $button->set('methodname', 'pg-modal-button');
                $button2->modal =& $button->modal;
                $button2->methodname =& $button->methodname;
                $buttonOther->modal =& $button->modal;
                $buttonOther->methodname =& $button->methodname;
                // Modal - Image only
                if ($this->tmpl['detailwindow'] == 2) {
                    $button->set('options', "{handler: 'image', size: {x: 200, y: 150}, overlayOpacity: " . $modal_box_overlay_opacity . "}");
                    $button2->options =& $button->options;
                    $buttonOther->set('options', "{handler: 'iframe', size: {x: " . $popup_width . ", y: " . $popup_height . "}, overlayOpacity: " . $modal_box_overlay_opacity . "}");
                    $buttonOther->set('optionsrating', "{handler: 'iframe', size: {x: " . $popup_width . ", y: " . $popup_height . "}, overlayOpacity: " . $modal_box_overlay_opacity . "}");
                    // Modal - Iframe
                } else {
                    $button->set('options', "{handler: 'iframe', size: {x: " . $popup_width . ", y: " . $popup_height . "}, overlayOpacity: " . $modal_box_overlay_opacity . "}");
                    $buttonOther->set('optionsrating', "{handler: 'iframe', size: {x: " . $popup_width . ", y: " . $popup_height . "}, overlayOpacity: " . $modal_box_overlay_opacity . "}");
                    $button2->options =& $button->options;
                    $buttonOther->options =& $button->options;
                }
            } else {
                if ($this->tmpl['detailwindow'] == 3) {
                    $sb_slideshow_delay = $this->params->get('sb_slideshow_delay', 5);
                    $sb_lang = $this->params->get('sb_lang', 'en');
                    $button->set('methodname', 'shadowbox-button');
                    $button->set('options', "shadowbox[PhocaGallery];options={slideshowDelay:" . $sb_slideshow_delay . "}");
                    $button2->methodname =& $button->methodname;
                    $button2->set('options', "shadowbox[PhocaGallery2];options={slideshowDelay:" . $sb_slideshow_delay . "}");
                    $buttonOther->set('modal', true);
                    $buttonOther->set('methodname', 'pg-modal-button');
                    $buttonOther->set('options', "{handler: 'iframe', size: {x: " . $popup_width . ", y: " . $popup_height . "}, overlayOpacity: " . $modal_box_overlay_opacity . "}");
                    $buttonOther->set('optionsrating', "{handler: 'iframe', size: {x: " . $popup_width . ", y: " . $popup_height . "}, overlayOpacity: " . $modal_box_overlay_opacity . "}");
                    //	$document->addScript(JURI::base(true).'/components/com_phocagallery/assets/js/shadowbox/adapter/shadowbox-mootools.js');
                    $document->addScript(JURI::base(true) . '/components/com_phocagallery/assets/js/shadowbox/shadowbox.js');
                    //$document->addScript(JURI::base(true).'/components/com_phocagallery/assets/js/shadowbox/src/lang/shadowbox-cs.js');
                    //$document->addStyleSheet(JURI::base(true).'/components/com_phocagallery/assets/js/shadowbox/shadowbox.css');
                    if ($libraries['pg-group-shadowbox']->value == 0) {
                        $document->addCustomTag('<script type="text/javascript">
Shadowbox.loadSkin("classic", "' . JURI::base(true) . '/components/com_phocagallery/assets/js/shadowbox/src/skin");
Shadowbox.loadLanguage("' . $sb_lang . '", "' . JURI::base(true) . '/components/com_phocagallery/assets/js/shadowbox/src/lang");
Shadowbox.loadPlayer(["img"], "' . JURI::base(true) . '/components/com_phocagallery/assets/js/shadowbox/src/player");
window.addEvent(\'domready\', function(){
           Shadowbox.init()
});
</script>');
                        /*$document->addCustomTag('<script type="text/javascript">
                        		Shadowbox.init({
                        			handleOversize: "drag",
                        			modal: true,
                        			overlayOpacity: 0.8,
                        			language: "cs"
                        		});
                        		</script>');*/
                        // window.onload = function(){
                        // Shadowbox.init();
                        $library->setLibrary('pg-group-shadowbox', 1);
                    }
                } else {
                    if ($this->tmpl['detailwindow'] == 4) {
                        $button->set('methodname', 'highslide');
                        $button2->methodname =& $button->methodname;
                        $buttonOther->methodname =& $button->methodname;
                        $document->addScript(JURI::base(true) . '/components/com_phocagallery/assets/js/highslide/highslide-full.js');
                        $document->addStyleSheet(JURI::base(true) . '/components/com_phocagallery/assets/js/highslide/highslide.css');
                        if ($libraries['pg-group-highslide']->value == 0) {
                            $document->addCustomTag(PhocaGalleryRenderFront::renderHighslideJSAll());
                            $document->addCustomTag('<!--[if lt IE 7]><link rel="stylesheet" type="text/css" href="' . JURI::base(true) . '/components/com_phocagallery/assets/js/highslide/highslide-ie6.css" /><![endif]-->');
                            $library->setLibrary('pg-group-highslide', 1);
                        }
                        //$document->addCustomTag( PhocaGalleryRenderFront::renderHighslideJS ('',$popup_width, $popup_height, $highslide_outline_type, $highslide_opacity));
                        $document->addCustomTag(PhocaGalleryRenderFront::renderHighslideJS('', $popup_width, $popup_height, $highslide_slideshow, $highslide_class, $highslide_outline_type, $highslide_opacity, $highslide_close_button));
                        $this->tmpl['highslideonclick'] = 'return hs.htmlExpand(this, phocaZoom )';
                    } else {
                        if ($this->tmpl['detailwindow'] == 5) {
                            $button->set('methodname', 'highslide');
                            $button2->methodname =& $button->methodname;
                            $buttonOther->methodname =& $button->methodname;
                            $document->addScript(JURI::base(true) . '/components/com_phocagallery/assets/js/highslide/highslide-full.js');
                            $document->addStyleSheet(JURI::base(true) . '/components/com_phocagallery/assets/js/highslide/highslide.css');
                            if ($libraries['pg-group-highslide']->value == 0) {
                                $document->addCustomTag(PhocaGalleryRenderFront::renderHighslideJSAll());
                                $document->addCustomTag('<!--[if lt IE 7]><link rel="stylesheet" type="text/css" href="' . JURI::base(true) . '/components/com_phocagallery/assets/js/highslide/highslide-ie6.css" /><![endif]-->');
                                $library->setLibrary('pg-group-highslide', 1);
                            }
                            $document->addCustomTag(PhocaGalleryRenderFront::renderHighslideJS('', $popup_width, $popup_height, $highslide_slideshow, $highslide_class, $highslide_outline_type, $highslide_opacity, $highslide_close_button));
                            $this->tmpl['highslideonclick2'] = 'return hs.htmlExpand(this, phocaZoom )';
                            $this->tmpl['highslideonclick'] = PhocaGalleryRenderFront::renderHighslideJSImage('', $highslide_class, $highslide_outline_type, $highslide_opacity, $highslide_fullimg);
                        } else {
                            if ($this->tmpl['detailwindow'] == 6) {
                                $button->set('methodname', 'jaklightbox');
                                $button2->methodname =& $button->methodname;
                                $buttonOther->set('modal', true);
                                $buttonOther->set('methodname', 'pg-modal-button');
                                $buttonOther->set('options', "{handler: 'iframe', size: {x: " . $popup_width . ", y: " . $popup_height . "}, overlayOpacity: " . $modal_box_overlay_opacity . "}");
                                $buttonOther->set('optionsrating', "{handler: 'iframe', size: {x: " . $popup_width . ", y: " . $popup_height . "}, overlayOpacity: " . $modal_box_overlay_opacity . "}");
                                $document->addScript(JURI::base(true) . '/components/com_phocagallery/assets/js/jak/jak_compressed.js');
                                $document->addScript(JURI::base(true) . '/components/com_phocagallery/assets/js/jak/lightbox_compressed.js');
                                $document->addScript(JURI::base(true) . '/components/com_phocagallery/assets/js/jak/jak_slideshow.js');
                                $document->addScript(JURI::base(true) . '/components/com_phocagallery/assets/js/jak/window_compressed.js');
                                $document->addScript(JURI::base(true) . '/components/com_phocagallery/assets/js/jak/interpolator_compressed.js');
                                $document->addStyleSheet(JURI::base(true) . '/components/com_phocagallery/assets/js/jak/lightbox-slideshow.css');
                                $lHeight = 472 + (int) $this->tmpl['jakdescriptionheight'];
                                $lcHeight = 10 + (int) $this->tmpl['jakdescriptionheight'];
                                $customJakTag = '';
                                if ($this->tmpl['jakorientation'] == 'horizontal') {
                                    $document->addStyleSheet(JURI::base(true) . '/components/com_phocagallery/assets/js/jak/lightbox-horizontal.css');
                                } else {
                                    if ($this->tmpl['jakorientation'] == 'vertical') {
                                        $document->addStyleSheet(JURI::base(true) . '/components/com_phocagallery/assets/js/jak/lightbox-vertical.css');
                                        $customJakTag .= '.lightBox {height: ' . $lHeight . 'px;}' . '.lightBox .image-browser-caption { height: ' . $lcHeight . 'px;}';
                                    } else {
                                        $document->addStyleSheet(JURI::base(true) . '/components/com_phocagallery/assets/js/jak/lightbox-vertical.css');
                                        $customJakTag .= '.lightBox {height: ' . $lHeight . 'px;width:800px;}' . '.lightBox .image-browser-caption { height: ' . $lcHeight . 'px;}' . '.lightBox .image-browser-thumbs { display:none;}' . '.lightBox .image-browser-thumbs div.image-browser-thumb-box { display:none;}';
                                    }
                                }
                                if ($customJakTag != '') {
                                    $document->addCustomTag("<style type=\"text/css\">\n" . $customJakTag . "\n" . "</style>");
                                }
                                if ($libraries['pg-group-jak']->value == 0) {
                                    $document->addCustomTag(PhocaGalleryRenderFront::renderJakJs($this->tmpl['jakslideshowdelay'], $this->tmpl['jakorientation']));
                                    $library->setLibrary('pg-group-jak', 1);
                                }
                            } else {
                                if ($this->tmpl['detailwindow'] == 7) {
                                    $button->set('methodname', 'no-popup');
                                    $button2->methodname =& $button->methodname;
                                    $buttonOther->set('modal', true);
                                    $buttonOther->set('methodname', 'no-popup');
                                    $buttonOther->set('options', "");
                                    $buttonOther->set('optionsrating', "");
                                } else {
                                    if ($this->tmpl['detailwindow'] == 8) {
                                        $button->set('methodname', 'slimbox');
                                        $button2->methodname =& $button->methodname;
                                        $button2->methodname =& $button->methodname;
                                        $button2->set('options', "lightbox-images");
                                        $buttonOther->set('modal', true);
                                        $buttonOther->set('methodname', 'pg-modal-button');
                                        $buttonOther->set('options', "{handler: 'iframe', size: {x: " . $popup_width . ", y: " . $popup_height . "}, overlayOpacity: " . $modal_box_overlay_opacity . "}");
                                        $buttonOther->set('optionsrating', "{handler: 'iframe', size: {x: " . $popup_width . ", y: " . $popup_height . "}, overlayOpacity: " . $modal_box_overlay_opacity . "}");
                                        $document->addScript(JURI::base(true) . '/components/com_phocagallery/assets/js/slimbox/slimbox.js');
                                        $document->addStyleSheet(JURI::base(true) . '/components/com_phocagallery/assets/js/slimbox/css/slimbox.css');
                                    } else {
                                        if ($this->tmpl['detailwindow'] == 9 || $this->tmpl['detailwindow'] == 10) {
                                            $language = JFactory::getLanguage();
                                            $button->set('options', 'phocagallerycboxplus');
                                            $button->set('methodname', 'phocagallerycboxplus');
                                            $button2->set('options', "phocagallerycboxplusi");
                                            $button2->set('methodname', 'phocagallerycboxplusi');
                                            $buttonOther->set('methodname', 'phocagallerycboxpluso');
                                            $buttonOther->set('options', "phocagallerycboxpluso");
                                            $buttonOther->set('optionsrating', "phocagallerycboxpluso");
                                            //if ($crossdomain) {
                                            //	$document->addScript(JURI::base(true).'/components/com_phocagallery/assets/js/boxplus/jsonp.mootools.js');
                                            //}
                                            $document->addScript(JURI::base(true) . '/components/com_phocagallery/assets/js/boxplus/boxplus.js');
                                            $document->addScript(JURI::base(true) . '/components/com_phocagallery/assets/js/boxplus/boxplus.lang.js?lang=' . $language->getTag());
                                            $document->addStyleSheet(JURI::base(true) . '/components/com_phocagallery/assets/js/boxplus/css/boxplus.css');
                                            if ($language->isRTL()) {
                                                $document->addStyleSheet(JURI::base(true) . '/components/com_phocagallery/assets/js/boxplus/css/boxplus.rtl.css');
                                            }
                                            $document->addCustomTag('<!--[if lt IE 9]><link rel="stylesheet" href="' . JURI::base(true) . '/components/com_phocagallery/assets/js/boxplus/css/boxplus.ie8.css" type="text/css" /><![endif]-->');
                                            $document->addCustomTag('<!--[if lt IE 8]><link rel="stylesheet" href="' . JURI::base(true) . '/components/com_phocagallery/assets/js/boxplus/css/boxplus.ie7.css" type="text/css" /><![endif]-->');
                                            $document->addStyleSheet(JURI::base(true) . '/components/com_phocagallery/assets/js/boxplus/css/boxplus.' . $this->tmpl['boxplus_theme'] . '.css', 'text/css', null, array('title' => 'boxplus-' . $this->tmpl['boxplus_theme']));
                                            if (file_exists(JPATH_BASE . DS . 'components' . DS . 'com_phocagallery' . DS . 'assets' . DS . 'js' . DS . 'boxplus' . DS . 'css' . DS . 'boxplus.' . $this->tmpl['boxplus_theme'])) {
                                                // use IE-specific stylesheet only if it exists
                                                $this->addCustomTag('<!--[if lt IE 9]><link rel="stylesheet" href="' . JURI::base(true) . '/components/com_phocagallery/assets/js/boxplus/css/boxplus.' . $this->tmpl['boxplus_theme'] . '.ie8.css" type="text/css" title="boxplus-' . $this->tmpl['boxplus_theme'] . '" /><![endif]-->');
                                            }
                                            $document->addScriptDeclaration('window.addEvent("domready", function () {');
                                            if ($this->tmpl['detailwindow'] == 10) {
                                                // Image
                                                $document->addScriptDeclaration('new boxplus($$("a.phocagallerycboxplus"),{"theme":"' . $this->tmpl['boxplus_theme'] . '","autocenter":' . (int) $this->tmpl['boxplus_bautocenter'] . ',"autofit":' . (int) $this->tmpl['boxplus_autofit'] . ',"slideshow":' . (int) $this->tmpl['boxplus_slideshow'] . ',"loop":' . (int) $this->tmpl['boxplus_loop'] . ',"captions":"' . $this->tmpl['boxplus_captions'] . '","thumbs":"' . $this->tmpl['boxplus_thumbs'] . '","width":' . (int) $popup_width . ',"height":' . (int) $popup_height . ',"duration":' . (int) $this->tmpl['boxplus_duration'] . ',"transition":"' . $this->tmpl['boxplus_transition'] . '","contextmenu":' . (int) $this->tmpl['boxplus_contextmenu'] . ', phocamethod:1});');
                                                // Icon
                                                $document->addScriptDeclaration('new boxplus($$("a.phocagallerycboxplusi"),{"theme":"' . $this->tmpl['boxplus_theme'] . '","autocenter":' . (int) $this->tmpl['boxplus_bautocenter'] . ',"autofit":' . (int) $this->tmpl['boxplus_autofit'] . ',"slideshow":' . (int) $this->tmpl['boxplus_slideshow'] . ',"loop":' . (int) $this->tmpl['boxplus_loop'] . ',"captions":"' . $this->tmpl['boxplus_captions'] . '","thumbs":"hide","width":' . (int) $popup_width . ',"height":' . (int) $popup_height . ',"duration":' . (int) $this->tmpl['boxplus_duration'] . ',"transition":"' . $this->tmpl['boxplus_transition'] . '","contextmenu":' . (int) $this->tmpl['boxplus_contextmenu'] . ', phocamethod:1});');
                                            } else {
                                                // Image
                                                $document->addScriptDeclaration('new boxplus($$("a.phocagallerycboxplus"),{"theme":"' . $this->tmpl['boxplus_theme'] . '","autocenter":' . (int) $this->tmpl['boxplus_bautocenter'] . ',"autofit": false,"slideshow": false,"loop":false,"captions":"none","thumbs":"hide","width":' . (int) $popup_width . ',"height":' . (int) $popup_height . ',"duration":0,"transition":"linear","contextmenu":false, phocamethod:2});');
                                                // Icon
                                                $document->addScriptDeclaration('new boxplus($$("a.phocagallerycboxplusi"),{"theme":"' . $this->tmpl['boxplus_theme'] . '","autocenter":' . (int) $this->tmpl['boxplus_bautocenter'] . ',"autofit": false,"slideshow": false,"loop":false,"captions":"none","thumbs":"hide","width":' . (int) $popup_width . ',"height":' . (int) $popup_height . ',"duration":0,"transition":"linear","contextmenu":false, phocamethod:2});');
                                            }
                                            // Other (Map, Info, Download)
                                            $document->addScriptDeclaration('new boxplus($$("a.phocagallerycboxpluso"),{"theme":"' . $this->tmpl['boxplus_theme'] . '","autocenter":' . (int) $this->tmpl['boxplus_bautocenter'] . ',"autofit": false,"slideshow": false,"loop":false,"captions":"none","thumbs":"hide","width":' . (int) $popup_width . ',"height":' . (int) $popup_height . ',"duration":0,"transition":"linear","contextmenu":false, phocamethod:2});');
                                            $document->addScriptDeclaration('});');
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        $folderButton = new JObject();
        $folderButton->set('name', 'image');
        $folderButton->set('options', "");
        // End open window parameters
        // ==================================================================
        // Information about current category
        $category = $this->get('category');
        //$total			= $this->get('total');
        // Cooliris (Piclens)
        $this->tmpl['startpiclens'] = 0;
        if ($this->tmpl['enablecooliris'] == 1) {
            $this->tmpl['startpiclens'] = $this->params->get('start_cooliris', 0);
            // CSS - PicLens START
            $document->addCustomTag(PhocaGalleryRenderFront::renderPicLens($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'] = JRequest::getVar('limitstart', '', 'get', '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);
        // Set page title per category
        if ($this->tmpl['displaycatnametitle'] == 1 && isset($category->title)) {
            $document->setTitle($this->params->get('page_title') . ' - ' . $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($category, isset($menu->query['id']) ? $menu->query['id'] : 0, $display_cat_name_breadcrumbs);
        // PARAMS - the whole page title with category or without category
        $this->tmpl['showpageheading'] = $this->params->get('show_page_heading', 1);
        // Define image tag attributes
        /*	if (!empty ($category->image)) {
        			$attribs['align'] = '"'.$category->image_position.'"';
        			$attribs['hspace'] = '"6"';
        			$this->tmpl['image'] = JHtml::_('image', 'images/stories/'.$category->image,'', $attribs);
        		}*/
        // Switch image JS
        $this->tmpl['basicimage'] = '';
        if ($this->tmpl['switchimage'] == 1) {
            $imagePathFront = PhocaGalleryPath::getPath();
            $this->tmpl['waitimage'] = $imagePathFront->image_rel_front_full . 'icon-switch.gif';
            $this->tmpl['basicimage'] = $imagePathFront->image_rel_front_full . 'phoca_thumb_l_no_image.' . $this->tmpl['formaticon'];
            $document->addCustomTag(PhocaGalleryRenderFront::switchImage($this->tmpl['waitimage']));
            $basicImageSelected = 0;
            // we have not selected the basic image yet
        }
        // Overlib
        $enable_overlib = $this->params->get('enable_overlib', 0);
        if ((int) $enable_overlib > 0) {
            $document->addScript(JURI::base(true) . '/components/com_phocagallery/assets/overlib/overlib_mini.js');
        }
        // MODEL
        $model =& $this->getModel();
        // Trash
        $this->tmpl['trash'] = 0;
        $this->tmpl['publishunpublish'] = 0;
        $this->tmpl['approvednotapproved'] = 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($category)) {
            $rightDisplayDelete = PhocaGalleryAccess::getUserRight('deleteuserid', $category->deleteuserid, 2, $this->tmpl['user']->authorisedLevels(), $this->tmpl['user']->get('id', 0), 0);
        }
        if ($rightDisplayDelete == 1) {
            $this->tmpl['trash'] = 1;
            $this->tmpl['publishunpublish'] = 1;
            $this->tmpl['approvednotapproved'] = 1;
            // only to see the info
        }
        // - - - - - - - - - - - - - - - - - - - - -
        // Upload
        $this->tmpl['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($category)) {
            $rightDisplayUpload = PhocaGalleryAccess::getUserRight('uploaduserid', $category->uploaduserid, 2, $this->tmpl['user']->authorisedLevels(), $this->tmpl['user']->get('id', 0), 0);
        }
        if ($rightDisplayUpload == 1) {
            $this->tmpl['displayupload'] = 1;
            $document->addCustomTag(PhocaGalleryRenderFront::renderOnUploadCategoryJS());
            $document->addCustomTag(PhocaGalleryRenderFront::renderDescriptionUploadJS((int) $this->tmpl['maxuploadchar']));
        }
        $this->tmpl['displaycreatecat'] = 0;
        if ($rightDisplayUpload == 1 && $this->tmpl['enable_direct_subcat'] == 1) {
            $this->tmpl['displaycreatecat'] = 1;
            $document->addCustomTag(PhocaGalleryRenderFront::renderOnUploadCategoryJS());
            $document->addCustomTag(PhocaGalleryRenderFront::renderDescriptionCreateSubCatJS((int) $this->tmpl['maxcreatecatchar']));
        }
        // - - - - - - - - - - - - - - - - - - - - -
        // USER RIGHT - ACCESS - - - - - - - - - - -
        $rightDisplay = 1;
        //default is set to 1 (all users can see the category)
        if (!empty($category)) {
            $rightDisplay = PhocaGalleryAccess::getUserRight('accessuserid', $category->accessuserid, 0, $this->tmpl['user']->authorisedLevels(), $this->tmpl['user']->get('id', 0), $display_access_category);
        }
        if ($rightDisplay == 0) {
            $app->redirect(JRoute::_($this->tmpl['pl'], false), JText::_('COM_PHOCAGALLERY_NOT_AUTHORISED_ACTION'));
            exit;
        }
        // - - - - - - - - - - - - - - - - - - - - -
        // 1. GEOTAGGING CATEGORY
        $map['longitude'] = '';
        // will be used for 1. default_geotagging to not display pane and 2. to remove pane (line cca 1554)
        $map['latitude'] = '';
        if (isset($category->latitude) && $category->latitude != '' && $category->latitude != 0 && isset($category->longitude) && $category->longitude != '' && $category->longitude != 0) {
            $map['longitude'] = $category->longitude;
            $map['latitude'] = $category->latitude;
            $map['zoom'] = $category->zoom;
            $map['geotitle'] = $category->geotitle;
            $map['description'] = $category->description;
            if ($map['geotitle'] == '') {
                $map['geotitle'] = $category->title;
            }
        } else {
            $this->tmpl['displayicongeo'] = 0;
        }
        // Image next to Category in Categories View in Category View is ordered by Random as default
        phocagalleryimport('phocagallery.ordering.ordering');
        $categoryImageOrdering = PhocaGalleryOrdering::getOrderingString($this->tmpl['categoryimageordering']);
        $categoryImageOrderingCV = PhocaGalleryOrdering::getOrderingString($this->tmpl['categoryimageorderingcv']);
        // = = = = = = = = = = = = = = = = = = = =
        // BOXES
        // = = = = = = = = = = = = = = = = = = = =
        // Information because of height of box (if they are used not by all images)
        $this->tmpl['displayiconextlink1box'] = 0;
        $this->tmpl['displayiconextlink2box'] = 0;
        $this->tmpl['displayiconvmbox'] = 0;
        $this->tmpl['displayicongeobox'] = 0;
        $iS = 0;
        $iCV = 0;
        $items = array();
        // Category View
        $itemsCV = array();
        // Category List (Categories View) in Category View
        // ----------------------------------------
        // PARENT FOLDERS(I) or Back Button STANDARD
        // ----------------------------------------
        /*$menu 	= &JSite::getMenu();
        		// Set Back Button to CATEGORIES VIEW
        		$itemsLink	= $menu->getItems('link', 'index.php?option=com_phocagallery&view=categories');
        
        		$itemId	= 0;
        		if(isset($itemsLink[0])) {
        			$itemId = $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)) {
                $items[$iS] = $parentCategory;
                // USER RIGHT - ACCESS - - - - - - - - - - -
                // Should be the link to parentcategory displayed
                $rightDisplay = PhocaGalleryAccess::getUserRight('accessuserid', $items[$iS]->accessuserid, $items[$iS]->access, $this->tmpl['user']->authorisedLevels(), $this->tmpl['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', $items[$iS]->accessuserid, $items[$iS]->access, $this->tmpl['user']->authorisedLevels(), $this->tmpl['user']->get('id', 0), 0);
                    }
                }
                // - - - - - - - - - - - - - - - - - - - - -
                if ($rightDisplay > 0) {
                    $items[$iS]->cls = 'pg-box-parentfolder';
                    $items[$iS]->slug = $items[$iS]->id . ':' . $items[$iS]->alias;
                    $items[$iS]->item_type = "parentfolder";
                    $items[$iS]->linkthumbnailpath = PhocaGalleryImageFront::displayBackFolder('medium', $rightDisplayKey);
                    $items[$iS]->extm = $items[$iS]->linkthumbnailpath;
                    $items[$iS]->exts = $items[$iS]->linkthumbnailpath;
                    $items[$iS]->numlinks = 0;
                    // We are in category view
                    $items[$iS]->link = JRoute::_('index.php?option=com_phocagallery&view=category&id=' . $items[$iS]->slug . '&Itemid=' . JRequest::getVar('Itemid', 0, '', 'int'));
                    $items[$iS]->button =& $folderButton;
                    $items[$iS]->button->methodname = '';
                    $items[$iS]->displayicondetail = 0;
                    $items[$iS]->displayicondownload = 0;
                    $items[$iS]->displayiconfolder = 0;
                    $items[$iS]->displayname = 0;
                    $items[$iS]->displayiconvm = '';
                    $items[$iS]->startpiclens = 0;
                    $items[$iS]->trash = 0;
                    $items[$iS]->publishunpublish = 0;
                    $items[$iS]->approvednotapproved = 0;
                    $items[$iS]->enable_cooliris = 0;
                    $items[$iS]->overlib = 0;
                    $items[$iS]->displayicongeo = 0;
                    $items[$iS]->type = 0;
                    $items[$iS]->camerainfo = 0;
                    $items[$iS]->displayiconextlink1 = 0;
                    $items[$iS]->displayiconextlink2 = 0;
                    $items[$iS]->description = '';
                    $items[$iS]->altvalue = '';
                    $iS++;
                } else {
                    // There is no right to see the data but the object exists (because it was loaded from database
                    // Destroy it
                    unset($items[$iS]);
                }
            } else {
                // Back button to categories list if it exists
                if ($backLinkItemId != 0 && $display_categories_back_button == 1) {
                    $items[$iS] = new JObject();
                    $items[$iS]->cls = 'pg-box-backbtn';
                    $items[$iS]->link = JRoute::_($backLink);
                    $items[$iS]->title = JTEXT::_('COM_PHOCAGALLERY_CATEGORY_LIST');
                    $items[$iS]->item_type = "categorieslist";
                    $items[$iS]->linkthumbnailpath = PhocaGalleryImageFront::displayBackFolder('medium', 1);
                    $items[$iS]->extm = $items[$iS]->linkthumbnailpath;
                    $items[$iS]->exts = $items[$iS]->linkthumbnailpath;
                    $items[$iS]->numlinks = 0;
                    // We are in category view
                    $items[$iS]->button =& $folderButton;
                    $items[$iS]->button->methodname = '';
                    $items[$iS]->displayicondetail = 0;
                    $items[$iS]->displayicondownload = 0;
                    $items[$iS]->displayiconfolder = 0;
                    $items[$iS]->displayname = 0;
                    $items[$iS]->displayiconvm = '';
                    $items[$iS]->startpiclens = 0;
                    $items[$iS]->trash = 0;
                    $items[$iS]->publishunpublish = 0;
                    $items[$iS]->approvednotapproved = 0;
                    $items[$iS]->enable_cooliris = 0;
                    $items[$iS]->overlib = 0;
                    $items[$iS]->displayicongeo = 0;
                    $items[$iS]->type = 0;
                    $items[$iS]->camerainfo = 0;
                    $items[$iS]->displayiconextlink1 = 0;
                    $items[$iS]->displayiconextlink2 = 0;
                    $items[$iS]->description = '';
                    $items[$iS]->altvalue = '';
                    $iS++;
                }
            }
        }
        // ----------------------------------------
        // PARENT FOLDERS(II) or Back Button CATEGORIES VIEW IN CATEGORY VIEW
        // ----------------------------------------
        if ($display_back_button_cv == 1 && $this->tmpl['displaycategoriescv'] == 1) {
            if (!empty($parentCategory)) {
                $itemsCV[$iCV] = clone $parentCategory;
                // USER RIGHT - ACCESS - - - - - - - - - - -
                // Should be the link to parentcategory displayed
                $rightDisplay = PhocaGalleryAccess::getUserRight('accessuserid', $itemsCV[$iCV]->accessuserid, $itemsCV[$iCV]->access, $this->tmpl['user']->authorisedLevels(), $this->tmpl['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', $itemsCV[$iCV]->accessuserid, $itemsCV[$iCV]->access, $this->tmpl['user']->authorisedLevels(), $this->tmpl['user']->get('id', 0), 0);
                    }
                }
                // - - - - - - - - - - - - - - - - - - - - -
                if ($rightDisplay > 0) {
                    $itemsCV[$iCV]->cls = 'pg-box-parentfolder-cv';
                    $itemsCV[$iCV]->slug = $itemsCV[$iCV]->id . ':' . $itemsCV[$iCV]->alias;
                    $itemsCV[$iCV]->item_type = "parentfoldercv";
                    $itemsCV[$iCV]->linkthumbnailpath = PhocaGalleryImageFront::displayBackFolder('medium', $rightDisplayKey);
                    $itemsCV[$iCV]->extm = $itemsCV[$iCV]->linkthumbnailpath;
                    $itemsCV[$iCV]->exts = $itemsCV[$iCV]->linkthumbnailpath;
                    $itemsCV[$iCV]->numlinks = 0;
                    // We are in category view
                    $itemsCV[$iCV]->link = JRoute::_('index.php?option=com_phocagallery&view=category&id=' . $itemsCV[$iCV]->slug . '&Itemid=' . JRequest::getVar('Itemid', 0, '', 'int'));
                    $itemsCV[$iCV]->type = 3;
                    $itemsCV[$iCV]->altvalue = '';
                    $iCV++;
                } else {
                    // There is no right to see the data but the object exists (because it was loaded from database
                    // Destroy it
                    unset($itemsCV[$iCV]);
                }
            } else {
                // Back button to categories list if it exists
                if ($backLinkItemId != 0 && $display_categories_back_button_cv == 1) {
                    $itemsCV[$iCV] = new JObject();
                    $itemsCV[$iCV]->cls = 'pg-box-backbtn-cv';
                    $itemsCV[$iCV]->link = $backLink;
                    $itemsCV[$iCV]->title = JTEXT::_('COM_PHOCAGALLERY_CATEGORY_LIST');
                    $itemsCV[$iCV]->item_type = "categorieslistcv";
                    $itemsCV[$iCV]->linkthumbnailpath = PhocaGalleryImageFront::displayBackFolder('medium', 1);
                    $itemsCV[$iCV]->extm = $itemsCV[$iCV]->linkthumbnailpath;
                    $itemsCV[$iCV]->exts = $itemsCV[$iCV]->linkthumbnailpath;
                    $itemsCV[$iCV]->numlinks = 0;
                    // We are in category view
                    $itemsCV[$iCV]->link = JRoute::_($itemsCV[$iCV]->link);
                    $itemsCV[$iCV]->type = 3;
                    $itemsCV[$iCV]->altvalue = '';
                    $iCV++;
                }
            }
        }
        // ----------------------------------------
        // SUB FOLDERS(1) STANDARD
        // ----------------------------------------
        // Display subcategories on every page
        if ($display_subcat_page == 1) {
            $subCategory = $this->get('subcategory');
            $totalSubCat = count($subCategory);
            if ((int) $this->tagId > 0) {
                $subCategory = array();
            }
            // No subcategories for tag searching
            if (!empty($subCategory)) {
                $items[$iS] =& $subCategory;
                for ($iSub = 0; $iSub < $totalSubCat; $iSub++) {
                    $items[$iS] =& $subCategory[$iSub];
                    // USER RIGHT - ACCESS - - - - - - - - - -
                    $rightDisplay = PhocaGalleryAccess::getUserRight('accessuserid', $items[$iS]->accessuserid, $items[$iS]->access, $this->tmpl['user']->authorisedLevels(), $this->tmpl['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($items[$iS])) {
                            $rightDisplayKey = PhocaGalleryAccess::getUserRight('accessuserid', $items[$iS]->accessuserid, $items[$iS]->access, $this->tmpl['user']->authorisedLevels(), $this->tmpl['user']->get('id', 0), 0);
                        }
                    }
                    // - - - - - - - - - - - - - - - - - - - -
                    if ($rightDisplay > 0) {
                        $items[$iS]->cls = 'pg-box-subfolder';
                        $items[$iS]->slug = $items[$iS]->id . ':' . $items[$iS]->alias;
                        $items[$iS]->item_type = "subfolder";
                        $numlinks = $model->getCountItem($items[$iS]->id);
                        //Should be get from main subcategories query
                        if (isset($numlinks[0]) && $numlinks[0] > 0) {
                            $items[$iS]->numlinks = (int) $numlinks[0];
                        } else {
                            $items[$iS]->numlinks = 0;
                        }
                        $extImage = PhocaGalleryImage::isExtImage($items[$iS]->extid);
                        if ($extImage) {
                            if ($this->tmpl['categoryimageordering'] != 10) {
                                $imagePic = PhocaGalleryImageFront::getRandomImageRecursive($items[$iS]->id, $categoryImageOrdering, 1);
                                $fileThumbnail = PhocaGalleryImageFront::displayCategoryExtImgOrFolder($imagePic->exts, $imagePic->extm, 'medium', $rightDisplayKey, 'display_category_icon_image');
                            } else {
                                $fileThumbnail = PhocaGalleryImageFront::displayCategoryExtImgOrFolder($items[$iS]->exts, $items[$iS]->extm, 'medium', $rightDisplayKey, 'display_category_icon_image');
                                $imagePic = new stdClass();
                                $imagePic->extw = $items[$iS]->extw;
                                $imagePic->exth = $items[$iS]->exth;
                            }
                            // in case category is locked or no extm exists
                            $items[$iS]->linkthumbnailpath = $fileThumbnail->linkthumbnailpath;
                            $items[$iS]->extm = $fileThumbnail->extm;
                            $items[$iS]->exts = $fileThumbnail->exts;
                            $items[$iS]->exthswitch = $items[$iS]->extwswitch = 0;
                            if ($imagePic->extw != '') {
                                $extw = explode(',', $imagePic->extw);
                                $items[$iS]->extw = $extw[1];
                                $items[$iS]->extwswitch = $extw[0];
                            }
                            if ($imagePic->exth != '') {
                                $exth = explode(',', $imagePic->exth);
                                $items[$iS]->exth = $exth[1];
                                $items[$iS]->exthswitch = $exth[0];
                            }
                            $items[$iS]->extpic = $fileThumbnail->extpic;
                        } else {
                            if ($this->tmpl['categoryimageordering'] != 10) {
                                $randomImage = PhocaGalleryImageFront::getRandomImageRecursive($items[$iS]->id, $categoryImageOrdering);
                                $fileThumbnail = PhocaGalleryImageFront::displayCategoryImageOrFolder($randomImage, 'medium', $rightDisplayKey, 'display_category_icon_image');
                            } else {
                                $fileThumbnail = PhocaGalleryImageFront::displayCategoryImageOrFolder($items[$iS]->filename, 'medium', $rightDisplayKey, 'display_category_icon_image');
                            }
                            $items[$iS]->linkthumbnailpath = $fileThumbnail->rel;
                        }
                        $items[$iS]->link = JRoute::_('index.php?option=com_phocagallery&view=category&id=' . $items[$iS]->slug . '&Itemid=' . JRequest::getVar('Itemid', 0, '', 'int'));
                        $items[$iS]->button =& $folderButton;
                        $items[$iS]->button->methodname = '';
                        $items[$iS]->displayicondetail = 0;
                        $items[$iS]->displayicondownload = 0;
                        $items[$iS]->displayiconfolder = $this->tmpl['displayiconfolder'];
                        $items[$iS]->displayname = $this->tmpl['displayname'];
                        $items[$iS]->displayiconvm = '';
                        $items[$iS]->startpiclens = 0;
                        $items[$iS]->trash = 0;
                        $items[$iS]->publishunpublish = 0;
                        $items[$iS]->approvednotapproved = 0;
                        $items[$iS]->enable_cooliris = 0;
                        $items[$iS]->overlib = 0;
                        $items[$iS]->displayicongeo = 0;
                        $items[$iS]->type = 1;
                        $items[$iS]->camerainfo = 0;
                        $items[$iS]->displayiconextlink1 = 0;
                        $items[$iS]->displayiconextlink2 = 0;
                        $items[$iS]->description = '';
                        $items[$iS]->displayiconcommentimg = '';
                        $items[$iS]->altvalue = '';
                        $iS++;
                    } else {
                        // There is no right to see the data but the object exists (because it was loaded from database
                        // Destroy it
                        unset($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->tmpl['displaycategoriescv'] == 1) {
            $subCategory = $this->get('subcategory');
            $totalSubCat = count($subCategory);
            if ((int) $this->tagId > 0) {
                $subCategory = array();
            }
            // No subcategories for tag searching
            if (!empty($subCategory)) {
                $itemsCV[$iCV] =& $subCategory;
                for ($iSub = 0; $iSub < $totalSubCat; $iSub++) {
                    $itemsCV[$iCV] =& $subCategory[$iSub];
                    // USER RIGHT - ACCESS - - - - - - - - - -
                    $rightDisplay = PhocaGalleryAccess::getUserRight('accessuserid', $itemsCV[$iCV]->accessuserid, $itemsCV[$iCV]->access, $this->tmpl['user']->authorisedLevels(), $this->tmpl['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($itemsCV[$iCV])) {
                            $rightDisplayKey = PhocaGalleryAccess::getUserRight('accessuserid', $itemsCV[$iCV]->accessuserid, $itemsCV[$iCV]->access, $this->tmpl['user']->authorisedLevels(), $this->tmpl['user']->get('id', 0), 0);
                        }
                    }
                    // - - - - - - - - - - - - - - - - - - - -
                    if ($rightDisplay > 0) {
                        $itemsCV[$iCV]->cls = 'pg-box-subfolder-cv';
                        $itemsCV[$iCV]->slug = $itemsCV[$iCV]->id . ':' . $itemsCV[$iCV]->alias;
                        $itemsCV[$iCV]->item_type = "subfoldercv";
                        $itemsCV[$iCV]->link = JRoute::_('index.php?option=com_phocagallery&view=category&id=' . $itemsCV[$iCV]->slug . '&Itemid=' . JRequest::getVar('Itemid', 0, '', 'int'));
                        $itemsCV[$iCV]->type = 4;
                        $numlinks = $model->getCountItem($itemsCV[$iCV]->id);
                        //Should be get from main subcategories query
                        if (isset($numlinks[0]) && $numlinks[0] > 0) {
                            $itemsCV[$iCV]->numlinks = (int) $numlinks[0];
                        } else {
                            $itemsCV[$iCV]->numlinks = 0;
                        }
                        $extImage = PhocaGalleryImage::isExtImage($itemsCV[$iCV]->extid);
                        if ($extImage) {
                            if ($this->tmpl['categoryimageordering'] != 10) {
                                $imagePic = PhocaGalleryImageFront::getRandomImageRecursive($itemsCV[$iCV]->id, $categoryImageOrderingCV, 1);
                                $fileThumbnail = PhocaGalleryImageFront::displayCategoryExtImgOrFolder($imagePic->exts, $imagePic->extm, 'medium', $rightDisplayKey, 'display_category_icon_image');
                            } else {
                                $fileThumbnail = PhocaGalleryImageFront::displayCategoryExtImgOrFolder($itemsCV[$iCV]->exts, $itemsCV[$iCV]->extm, 'medium', $rightDisplayKey, 'display_category_icon_image');
                                $imagePic = new stdClass();
                                $imagePic->extw = $itemsCV[$iCV]->extw;
                                $imagePic->exth = $itemsCV[$iCV]->exth;
                            }
                            // in case category is locked or no extm exists
                            $itemsCV[$iCV]->linkthumbnailpath = $fileThumbnail->linkthumbnailpath;
                            $itemsCV[$iCV]->extm = $fileThumbnail->extm;
                            $itemsCV[$iCV]->exts = $fileThumbnail->exts;
                            $itemsCV[$iCV]->exthswitch = $itemsCV[$iCV]->extwswitch = 0;
                            if ($imagePic->extw != '') {
                                $extw = explode(',', $imagePic->extw);
                                $itemsCV[$iCV]->extw = $extw[1];
                                $itemsCV[$iCV]->extwswitch = $extw[0];
                            }
                            if ($imagePic->exth != '') {
                                $exth = explode(',', $imagePic->exth);
                                $itemsCV[$iCV]->exth = $exth[1];
                                $itemsCV[$iCV]->exthswitch = $exth[0];
                            }
                            $itemsCV[$iCV]->extpic = $fileThumbnail->extpic;
                        } else {
                            if ($this->tmpl['categoryimageordering'] != 10) {
                                $randomImage = PhocaGalleryImageFront::getRandomImageRecursive($itemsCV[$iCV]->id, $categoryImageOrderingCV);
                                $fileThumbnail = PhocaGalleryImageFront::displayCategoryImageOrFolder($randomImage, 'medium', $rightDisplayKey, 'display_category_icon_image_cv');
                            } else {
                                $fileThumbnail = PhocaGalleryImageFront::displayCategoryImageOrFolder($itemsCV[$iCV]->filename, 'medium', $rightDisplayKey, 'display_category_icon_image_cv');
                            }
                            $itemsCV[$iCV]->linkthumbnailpath = $fileThumbnail->rel;
                            $itemsCV[$iCV]->altvalue = '';
                        }
                        $iCV++;
                    } else {
                        // There is no right to see the data but the object exists (because it was loaded from database
                        // Destroy it
                        unset($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->tmpl['pagination'] =& $model->getPagination(1, $this->tagId);
        } else {
            $images = $model->getData(0, $this->tagId);
            $this->tmpl['pagination'] =& $model->getPagination(0, $this->tagId);
        }
        $this->tmpl['ordering'] =& $model->getOrdering();
        $totalImg = count($images);
        if ($limitStart > 0) {
            $this->tmpl['limitstarturl'] = '&limitstart=' . $limitStart;
        } else {
            $this->tmpl['limitstarturl'] = '';
        }
        $this->tmpl['jakdatajs'] = array();
        $this->tmpl['displayiconcommentimgbox'] = 0;
        for ($iM = 0; $iM < $totalImg; $iM++) {
            $items[$iS] = $images[$iM];
            $items[$iS]->cls = 'pg-box-image';
            $items[$iS]->slug = $items[$iS]->id . ':' . $items[$iS]->alias;
            $items[$iS]->item_type = "image";
            $items[$iS]->linknr = '';
            //Def
            $extImage = PhocaGalleryImage::isExtImage($items[$iS]->extid);
            // Get file thumbnail or No Image
            $items[$iS]->exthswitch = $items[$iS]->extwswitch = 0;
            if ($items[$iS]->extm != '') {
                if ($items[$iS]->extw != '') {
                    $extw = explode(',', $items[$iS]->extw);
                    $items[$iS]->extw = $extw[1];
                    $items[$iS]->extwswitch = $extw[0];
                }
                if ($items[$iS]->exth != '') {
                    $exth = explode(',', $items[$iS]->exth);
                    $items[$iS]->exth = $exth[1];
                    $items[$iS]->exthswitch = $exth[0];
                }
                $items[$iS]->extpic = 1;
                $items[$iS]->linkthumbnailpath = '';
            } else {
                $items[$iS]->linkthumbnailpath = PhocaGalleryImageFront::displayCategoryImageOrNoImage($items[$iS]->filename, 'medium');
            }
            if (isset($parentCategory->params)) {
                $items[$iS]->parentcategoryparams = $parentCategory->params;
            }
            // Add the first Image as basic image
            if ($this->tmpl['switchimage'] == 1) {
                if ($basicImageSelected == 0) {
                    if ((int) $this->tmpl['switchwidth'] > 0 && (int) $this->tmpl['switchheight'] > 0 && $this->tmpl['switchfixedsize'] == 1) {
                        $wHArray = array('id' => 'PhocaGalleryobjectPicture', 'border' => '0', 'width' => $this->tmpl['switchwidth'], 'height' => $this->tmpl['switchheight']);
                        $wHString = ' id="PhocaGalleryobjectPicture"  border="0" width="' . $this->tmpl['switchwidth'] . '" height="' . $this->tmpl['switchheight'] . '"';
                    } else {
                        $wHArray = array('id' => 'PhocaGalleryobjectPicture', 'border' => '0');
                        $wHString = ' id="PhocaGalleryobjectPicture"  border="0"';
                    }
                    if (isset($items[$iS]->extpic) && $items[$iS]->extpic != '') {
                        $this->tmpl['basicimage'] = JHtml::_('image', $items[$iS]->extl, '', $wHArray);
                    } else {
                        $this->tmpl['basicimage'] = JHtml::_('image', str_replace('phoca_thumb_m_', 'phoca_thumb_l_', $items[$iS]->linkthumbnailpath), '', $wHString);
                    }
                    $basicImageSelected = 1;
                }
            }
            $thumbLink = PhocaGalleryFileThumbnail::getThumbnailName($items[$iS]->filename, 'large');
            $thumbLinkM = PhocaGalleryFileThumbnail::getThumbnailName($items[$iS]->filename, 'medium');
            $imgLinkOrig = JURI::base(true) . '/' . PhocaGalleryFile::getFileOriginal($items[$iS]->filename, 1);
            if ($this->tmpl['detailwindow'] == 7) {
                $siteLink = JRoute::_('index.php?option=com_phocagallery&view=detail&catid=' . $items[$iS]->catslug . '&id=' . $items[$iS]->slug . '&Itemid=' . JRequest::getVar('Itemid', 0, '', 'int'));
            } else {
                $siteLink = JRoute::_('index.php?option=com_phocagallery&view=detail&catid=' . $items[$iS]->catslug . '&id=' . $items[$iS]->slug . '&tmpl=component' . '&Itemid=' . JRequest::getVar('Itemid', 0, '', 'int'));
            }
            $imgLink = $thumbLink->rel;
            if ($extImage) {
                $imgLink = $items[$iS]->extl;
                $imgLinkOrig = $items[$iS]->exto;
            }
            // Detail Window
            if ($this->tmpl['detailwindow'] == 2) {
                $items[$iS]->link = $imgLink;
                $items[$iS]->link2 = $imgLink;
                $items[$iS]->linkother = $imgLink;
                $items[$iS]->linkorig = $imgLinkOrig;
            } else {
                if ($this->tmpl['detailwindow'] == 3) {
                    $items[$iS]->link = $imgLink;
                    $items[$iS]->link2 = $imgLink;
                    $items[$iS]->linkother = $siteLink;
                    $items[$iS]->linkorig = $imgLinkOrig;
                } else {
                    if ($this->tmpl['detailwindow'] == 5) {
                        $items[$iS]->link = $imgLink;
                        $items[$iS]->link2 = $siteLink;
                        $items[$iS]->linkother = $siteLink;
                        $items[$iS]->linkorig = $imgLinkOrig;
                    } else {
                        if ($this->tmpl['detailwindow'] == 6) {
                            $items[$iS]->link = $imgLink;
                            $items[$iS]->link2 = $imgLink;
                            $items[$iS]->linkother = $siteLink;
                            $items[$iS]->linkorig = $imgLinkOrig;
                            // jak data js
                            switch ($this->tmpl['jakdescription']) {
                                case 0:
                                    $descriptionJakJs = '';
                                    break;
                                case 2:
                                    $descriptionJakJs = PhocaGalleryText::strTrimAll(addslashes($items[$iS]->description));
                                    break;
                                case 3:
                                    $descriptionJakJs = PhocaGalleryText::strTrimAll(addslashes($items[$iS]->title));
                                    if ($items[$iS]->description != '') {
                                        $descriptionJakJs .= '<br />' . PhocaGalleryText::strTrimAll(addslashes($items[$iS]->description));
                                    }
                                    break;
                                case 1:
                                default:
                                    $descriptionJakJs = PhocaGalleryText::strTrimAll(addslashes($items[$iS]->title));
                                    break;
                            }
                            $items[$iS]->linknr = $iM;
                            $this->tmpl['jakdatajs'][$iS] = "{alt: '" . PhocaGalleryText::strTrimAll(addslashes($items[$iS]->title)) . "',";
                            if ($descriptionJakJs != '') {
                                $this->tmpl['jakdatajs'][$iS] .= "description: '" . $descriptionJakJs . "',";
                            } else {
                                $this->tmpl['jakdatajs'][$iS] .= "description: ' ',";
                            }
                            if ($extImage) {
                                $this->tmpl['jakdatajs'][$iS] .= "small: {url: '" . $items[$iS]->extm . "'}," . "big: {url: '" . $items[$iS]->extl . "'} }";
                            } else {
                                $this->tmpl['jakdatajs'][$iS] .= "small: {url: '" . htmlentities(JURI::base(true) . '/' . PhocaGalleryText::strTrimAll(addslashes($thumbLinkM->rel))) . "'}," . "big: {url: '" . htmlentities(JURI::base(true) . '/' . PhocaGalleryText::strTrimAll(addslashes($imgLink))) . "'} }";
                            }
                        } else {
                            if ($this->tmpl['detailwindow'] == 8) {
                                $items[$iS]->link = $imgLink;
                                $items[$iS]->link2 = $imgLink;
                                $items[$iS]->linkother = $imgLink;
                                $items[$iS]->linkorig = $imgLinkOrig;
                            } else {
                                if ($this->tmpl['detailwindow'] == 9) {
                                    $items[$iS]->link = $siteLink;
                                    $items[$iS]->link2 = $siteLink;
                                    $items[$iS]->linkother = $siteLink;
                                    $items[$iS]->linkorig = $imgLinkOrig;
                                } else {
                                    if ($this->tmpl['detailwindow'] == 10) {
                                        $items[$iS]->link = $imgLink;
                                        $items[$iS]->link2 = $imgLink;
                                        $items[$iS]->linkother = $siteLink;
                                        $items[$iS]->linkorig = $imgLinkOrig;
                                    } else {
                                        $items[$iS]->link = $siteLink;
                                        $items[$iS]->link2 = $siteLink;
                                        $items[$iS]->linkother = $siteLink;
                                        $items[$iS]->linkorig = $imgLinkOrig;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            // Buttons, e.g. shadowbox:
            // button - click on image
            // button2 - click on zoom icon (cannot be the same as click on image because of duplicity of images)
            // buttonOther - other detail window like download, geotagging
            $items[$iS]->button =& $button;
            $items[$iS]->button2 =& $button2;
            $items[$iS]->buttonother =& $buttonOther;
            $items[$iS]->displayicondetail = $this->tmpl['displayicondetail'];
            $items[$iS]->displayicondownload = $this->tmpl['displayicondownload'];
            $items[$iS]->displayiconfolder = 0;
            $items[$iS]->displayname = $this->tmpl['displayname'];
            $items[$iS]->displayiconvm = '';
            $items[$iS]->startpiclens = $this->tmpl['startpiclens'];
            $items[$iS]->type = 2;
            // Trash icon
            if ($this->tmpl['trash'] == 1) {
                $items[$iS]->trash = 1;
            } else {
                $items[$iS]->trash = 0;
            }
            // Publish Unpublish icon
            if ($this->tmpl['publishunpublish'] == 1) {
                $items[$iS]->publishunpublish = 1;
            } else {
                $items[$iS]->publishunpublish = 0;
            }
            // Publish Unpublish icon
            if ($this->tmpl['approvednotapproved'] == 1) {
                $items[$iS]->approvednotapproved = 1;
            } else {
                $items[$iS]->approvednotapproved = 0;
            }
            // PICLENS
            if ($this->tmpl['enablecooliris']) {
                $items[$iS]->enable_cooliris = 1;
            } else {
                $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->tmpl['displayicongeo'] = 0;
            // so we need to check it for the image too, we need to set the $this->tmpl['displayicongeoimage'] for image only
            // we are in loop now
            $this->tmpl['displayicongeoimagetmp'] = 0;
            if ($this->tmpl['displayicongeoimage'] == 1) {
                $this->tmpl['displayicongeoimagetmp'] = 1;
                if (isset($items[$iS]->latitude) && $items[$iS]->latitude != '' && $items[$iS]->latitude != 0 && isset($items[$iS]->longitude) && $items[$iS]->longitude != '' && $items[$iS]->longitude != 0) {
                } else {
                    $this->tmpl['displayicongeoimagetmp'] = 0;
                }
            }
            // GEOTAGGING
            if ($this->tmpl['displayicongeo'] == 1 || $this->tmpl['displayicongeoimagetmp'] == 1) {
                $items[$iS]->displayicongeo = 1;
                $this->tmpl['displayicongeobox'] = 1;
                // because of height of box
            } else {
                $items[$iS]->displayicongeo = 0;
            }
            // Set it back because of loop
            $this->tmpl['displayicongeoimagetmp'] = 0;
            // CAMERA INFO
            if ($this->tmpl['displaycamerainfo'] == 1) {
                $items[$iS]->camerainfo = 1;
            } else {
                $items[$iS]->camerainfo = 0;
            }
            // EXT LINK
            $items[$iS]->displayiconextlink1 = 0;
            if (isset($items[$iS]->extlink1)) {
                $items[$iS]->extlink1 = explode("|", $items[$iS]->extlink1, 4);
                if (isset($items[$iS]->extlink1[0]) && $items[$iS]->extlink1[0] != '' && isset($items[$iS]->extlink1[1])) {
                    $items[$iS]->displayiconextlink1 = 1;
                    $this->tmpl['displayiconextlink1box'] = 1;
                    // because of height of box
                    if (!isset($items[$iS]->extlink1[2])) {
                        $items[$iS]->extlink1[2] = '_self';
                    }
                    if (!isset($items[$iS]->extlink1[3]) || $items[$iS]->extlink1[3] == 1) {
                        $items[$iS]->extlink1[4] = JHtml::_('image', 'components/com_phocagallery/assets/images/icon-extlink1.' . $this->tmpl['formaticon'], JText::_($items[$iS]->extlink1[1]));
                        $items[$iS]->extlink1[5] = '';
                    } else {
                        $items[$iS]->extlink1[4] = $items[$iS]->extlink1[1];
                        $items[$iS]->extlink1[5] = 'style="text-decoration:underline"';
                    }
                } else {
                    $items[$iS]->displayiconextlink1 = 0;
                }
            }
            $items[$iS]->displayiconextlink2 = 0;
            if (isset($items[$iS]->extlink2)) {
                $items[$iS]->extlink2 = explode("|", $items[$iS]->extlink2, 4);
                if (isset($items[$iS]->extlink2[0]) && $items[$iS]->extlink2[0] != '' && isset($items[$iS]->extlink2[1])) {
                    $items[$iS]->displayiconextlink2 = 1;
                    $this->tmpl['displayiconextlink2box'] = 1;
                    // because of height of box
                    if (!isset($items[$iS]->extlink2[2])) {
                        $items[$iS]->extlink2[2] = '_self';
                    }
                    if (!isset($items[$iS]->extlink2[3]) || $items[$iS]->extlink2[3] == 1) {
                        $items[$iS]->extlink2[4] = JHtml::_('image', 'components/com_phocagallery/assets/images/icon-extlink2.' . $this->tmpl['formaticon'], JText::_($items[$iS]->extlink2[1]));
                        $items[$iS]->extlink2[5] = '';
                    } else {
                        $items[$iS]->extlink2[4] = $items[$iS]->extlink2[1];
                        $items[$iS]->extlink2[5] = 'style="text-decoration:underline"';
                    }
                } else {
                    $items[$iS]->displayiconextlink2 = 0;
                }
            }
            // OVERLIB
            if (!empty($items[$iS]->description)) {
                $divPadding = 'padding:5px;';
            } else {
                $divPadding = 'padding:0px;margin:0px;';
            }
            // Resize image in overlib by rate
            $wHOutput = array();
            if (isset($items[$iS]->extpic) && $items[$iS]->extpic != '') {
                if ((int) $this->tmpl['overlibimagerate'] > 0) {
                    $imgSize = @getimagesize($items[$iS]->extl);
                    $wHOutput = PhocaGalleryImage::getTransformImageArray($imgSize, $this->tmpl['overlibimagerate']);
                }
                $oImg = JHtml::_('image', $items[$iS]->extl, '', $wHOutput);
            } else {
                if ((int) $this->tmpl['overlibimagerate'] > 0) {
                    $thumbL = str_replace('phoca_thumb_m_', 'phoca_thumb_l_', $items[$iS]->linkthumbnailpath);
                    $imgSize = @getimagesize($thumbL);
                    $wHOutput = PhocaGalleryImage::getTransformImageArray($imgSize, $this->tmpl['overlibimagerate']);
                }
                $oImg = JHtml::_('image', str_replace('phoca_thumb_m_', 'phoca_thumb_l_', $items[$iS]->linkthumbnailpath), '', $wHOutput);
            }
            switch ($enable_overlib) {
                case 1:
                case 4:
                    $uBy = '';
                    //Uploaded by ...
                    if ($enable_overlib == 4 && isset($items[$iS]->usernameno) && $items[$iS]->usernameno != '') {
                        $uBy = '<div>' . JText::_('COM_PHOCAGALLERY_UPLOADED_BY') . ' <strong>' . $items[$iS]->usernameno . '</strong></div>';
                    }
                    $items[$iS]->overlib = 1;
                    $items[$iS]->overlib_value = " onmouseover=\"return overlib('" . htmlspecialchars(addslashes('<div class="pg-overlib"><center>' . $oImg . "</center></div>" . $uBy)) . "', CAPTION, '" . htmlspecialchars(addslashes($items[$iS]->title)) . "', BELOW, RIGHT, BGCLASS,'bgPhocaClass', FGCOLOR, '" . $this->tmpl['olfgcolor'] . "', BGCOLOR, '" . $this->tmpl['olbgcolor'] . "', TEXTCOLOR, '" . $this->tmpl['oltfcolor'] . "', CAPCOLOR, '" . $this->tmpl['olcfcolor'] . "');\"" . " onmouseout=\"return nd();\" ";
                    break;
                case 2:
                case 5:
                    $uBy = '';
                    //Uploaded by ...
                    if ($enable_overlib == 5 && isset($items[$iS]->usernameno) && $items[$iS]->usernameno != '') {
                        $uBy = '<div>' . JText::_('COM_PHOCAGALLERY_UPLOADED_BY') . ' <strong>' . $items[$iS]->usernameno . '</strong></div>';
                    }
                    $items[$iS]->overlib = 2;
                    $items[$iS]->description = str_replace("\n", '<br />', $items[$iS]->description);
                    $items[$iS]->description = str_replace("\r", ' ', $items[$iS]->description);
                    $items[$iS]->overlib_value = " onmouseover=\"return overlib('" . htmlspecialchars(addslashes('<div class="pg-overlib"><div style="' . $divPadding . '">' . $items[$iS]->description . '</div></div>' . $uBy)) . "', CAPTION, '" . htmlspecialchars(addslashes($items[$iS]->title)) . "', BELOW, RIGHT, CSSCLASS, TEXTFONTCLASS, 'fontPhocaClass', FGCLASS, 'fgPhocaClass', BGCLASS, 'bgPhocaClass', CAPTIONFONTCLASS,'capfontPhocaClass', CLOSEFONTCLASS, 'capfontclosePhocaClass');\"" . " onmouseout=\"return nd();\" ";
                    break;
                case 3:
                case 6:
                    $uBy = '';
                    //Uploaded by ...
                    if ($enable_overlib == 6 && isset($items[$iS]->usernameno) && $items[$iS]->usernameno != '') {
                        $uBy = '<div>' . JText::_('COM_PHOCAGALLERY_UPLOADED_BY') . ' <strong>' . $items[$iS]->usernameno . '</strong></div>';
                    }
                    $items[$iS]->overlib = 3;
                    $items[$iS]->description = str_replace("\n", '<br />', $items[$iS]->description);
                    $items[$iS]->description = str_replace("\r", ' ', $items[$iS]->description);
                    $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 style="' . $divPadding . '">' . $items[$iS]->description . '</div></div>' . $uBy))) . "', CAPTION, '" . htmlspecialchars(addslashes($items[$iS]->title)) . "', BELOW, RIGHT, BGCLASS,'bgPhocaClass', FGCLASS,'fgPhocaClass', FGCOLOR, '" . $this->tmpl['olfgcolor'] . "', BGCOLOR, '" . $this->tmpl['olbgcolor'] . "', TEXTCOLOR, '" . $this->tmpl['oltfcolor'] . "', CAPCOLOR, '" . $this->tmpl['olcfcolor'] . "');\"" . " onmouseout=\"return nd();\" ";
                    break;
                default:
                    $items[$iS]->overlib = 0;
                    $items[$iS]->overlib_value = '';
                    break;
            }
            // VirtueMart link
            if ($this->tmpl['displayiconvm'] == 1) {
                phocagalleryimport('phocagallery.virtuemart.virtuemart');
                $vmLink = PhocaGalleryVirtueMart::getVmLink($items[$iS]->vmproductid, $errorMsg);
                if (!$vmLink) {
                    $items[$iS]->displayiconvm = '';
                } else {
                    $items[$iS]->displayiconvm = 1;
                    $items[$iS]->vmlink = $vmLink;
                    $this->tmpl['displayiconvmbox'] = 1;
                    // because of height of box
                }
            } else {
                $items[$iS]->displayiconvm = '';
            }
            // End VM Link
            // V O T E S - IMAGES
            if ((int) $this->tmpl['displayratingimg'] == 1) {
                $items[$iS]->votescountimg = 0;
                $items[$iS]->votesaverageimg = 0;
                $items[$iS]->voteswidthimg = 0;
                $votesStatistics = PhocaGalleryRateImage::getVotesStatistics((int) $items[$iS]->id);
                if (!empty($votesStatistics->count)) {
                    $items[$iS]->votescountimg = $votesStatistics->count;
                }
                if (!empty($votesStatistics->average)) {
                    $items[$iS]->votesaverageimg = $votesStatistics->average;
                    if ($items[$iS]->votesaverageimg > 0) {
                        $items[$iS]->votesaverageimg = round((double) $items[$iS]->votesaverageimg / 0.5) * 0.5;
                        $items[$iS]->voteswidthimg = 16 * $items[$iS]->votesaverageimg;
                    } else {
                        $items[$iS]->votesaverageimg = (int) 0;
                        // not float displaying
                    }
                }
            }
            $items[$iS]->displayiconcommentimg = 0;
            // C O M M E N T S - IMAGES
            if ((int) $this->tmpl['displaycommentimg'] == 1) {
                $items[$iS]->displayiconcommentimg = 1;
                $this->tmpl['displayiconcommentimgbox'] = 1;
                // because of height of box
            }
            // ALT VALUE
            $altValue = PhocaGalleryRenderFront::getAltValue($this->tmpl['altvalue'], $items[$iS]->title, $items[$iS]->description, $items[$iS]->metadesc);
            $items[$iS]->altvalue = $altValue;
            // TITLE TAG - Description Output in Title Tag
            $imgAlt = $imgTitle = '';
            // Some methods cannot use Alt because of conflicting with Title and popup methods
            if ($this->tmpl['detailwindow'] == 3 || $this->tmpl['detailwindow'] == 9 || $this->tmpl['detailwindow'] == 10) {
                $imgAlt = $items[$iS]->altvalue;
                $imgTitle = $items[$iS]->title;
                if ($imgAlt == $imgTitle) {
                    $imgAlt = '';
                }
                $items[$iS]->oimgalt = $imgAlt;
            } else {
                $items[$iS]->oimgalt = $altValue;
            }
            // TITLE TAG - Detail
            if ($this->tmpl['detailwindow'] == 9 || $this->tmpl['detailwindow'] == 10) {
                $detailAlt = $items[$iS]->altvalue;
                $detailTitle = $items[$iS]->title;
                if ($detailAlt == $detailTitle) {
                    $detailAlt = '';
                }
            } else {
                $detailAlt = JText::_('COM_PHOCAGALLERY_IMAGE_DETAIL');
                $detailTitle = JText::_('COM_PHOCAGALLERY_IMAGE_DETAIL');
            }
            $items[$iS]->oimgaltdetail = $detailAlt;
            $items[$iS]->oimgtitledetail = $detailTitle;
            $titleDesc = '';
            if ($this->tmpl['displaytitleindescription'] == 1) {
                $titleDesc .= $items[$iS]->title;
                if ($items[$iS]->description != '' && $titleDesc != '') {
                    $titleDesc .= ' - ';
                }
            }
            if ($this->tmpl['detailwindow'] == 8 && $this->tmpl['displaydescriptiondetail'] == 1) {
                $items[$iS]->odesctitletag = strip_tags($titleDesc) . strip_tags($items[$iS]->description);
            } else {
                $items[$iS]->odesctitletag = strip_tags($imgTitle);
            }
            // Overlib class
            if ($items[$iS]->overlib == 0) {
                $items[$iS]->ooverlibclass = array('class' => 'pg-image');
            } else {
                $items[$iS]->ooverlibclass = array('class' => 'pimo pg-image');
            }
            // Tags
            $items[$iS]->otags = '';
            if ($this->tmpl['display_tags_links'] == 1 || $this->tmpl['display_tags_links'] == 3) {
                $items[$iS]->otags = PhocaGalleryTag::displayTags($items[$iS]->id);
                if ($items[$iS]->otags != '') {
                    $this->tmpl['displaying_tags_true'] = 1;
                }
            }
            $iS++;
        }
        // END IMAGES
        // Upload Form - - - - - - - - - - - - -
        // Set FTP form
        $ftp = !JClientHelper::hasCredentials('ftp');
        // PARAMS - Upload size
        $this->tmpl['uploadmaxsize'] = $this->params->get('upload_maxsize', 3000000);
        $this->assignRef('session', JFactory::getSession());
        //$this->assignRef('uploadmaxsize', $upload_maxsize);
        // END Upload Form - - - - - - - - - - - -
        // V O T E S - CATEGORY
        // Only registered (VOTES + COMMENTS)
        $this->tmpl['notregistered'] = true;
        $this->tmpl['name'] = '';
        if ($access > 0) {
            $this->tmpl['notregistered'] = false;
            $this->tmpl['name'] = $this->tmpl['user']->name;
        }
        // VOTES Statistics
        if ((int) $this->tmpl['displayrating'] == 1 && (int) $id > 0) {
            $this->tmpl['votescount'] = 0;
            $this->tmpl['votesaverage'] = 0;
            $this->tmpl['voteswidth'] = 0;
            $votesStatistics = PhocaGalleryRateCategory::getVotesStatistics((int) $id);
            if (!empty($votesStatistics->count)) {
                $this->tmpl['votescount'] = $votesStatistics->count;
            }
            if (!empty($votesStatistics->average)) {
                $this->tmpl['votesaverage'] = $votesStatistics->average;
                if ($this->tmpl['votesaverage'] > 0) {
                    $this->tmpl['votesaverage'] = round((double) $this->tmpl['votesaverage'] / 0.5) * 0.5;
                    $this->tmpl['voteswidth'] = 22 * $this->tmpl['votesaverage'];
                } else {
                    $this->tmpl['votesaverage'] = (int) 0;
                    // not float displaying
                }
            }
            if ((int) $this->tmpl['votescount'] > 1) {
                $this->tmpl['votestext'] = 'COM_PHOCAGALLERY_VOTES';
            } else {
                $this->tmpl['votestext'] = 'COM_PHOCAGALLERY_VOTE';
            }
            // Already rated?
            $this->tmpl['alreadyrated'] = PhocaGalleryRateCategory::checkUserVote((int) $id, (int) $this->tmpl['user']->id);
        }
        // COMMENTS
        if ((int) $this->tmpl['displaycomment'] == 1 && (int) $id > 0) {
            $document->addScript(JURI::base(true) . '/components/com_phocagallery/assets/js/comments.js');
            $document->addCustomTag(PhocaGalleryRenderFront::renderCommentJS((int) $this->tmpl['maxcommentchar']));
            $this->tmpl['alreadycommented'] = PhocaGalleryCommentCategory::checkUserComment((int) $id, (int) $this->tmpl['user']->id);
            $commentItem = PhocaGalleryCommentCategory::displayComment((int) $id);
            $this->assignRef('commentitem', $commentItem);
        }
        // - - - - - - - - - - - - - - - -
        // TABS
        // - - - - - - - - - - - - - - - -
        $this->tmpl['displaytabs'] = 0;
        $this->tmpl['currenttab'] = 0;
        if ((int) $id > 0) {
            $displayTabs = 0;
            // R A T I N G
            if ((int) $this->tmpl['displayrating'] == 0) {
                $currentTab['rating'] = -1;
            } else {
                $currentTab['rating'] = $displayTabs;
                $displayTabs++;
            }
            // C O M M E N T S
            if ((int) $this->tmpl['displaycomment'] == 0) {
                $currentTab['comment'] = -1;
            } else {
                $currentTab['comment'] = $displayTabs;
                $displayTabs++;
            }
            // S T A T I S T I C S
            if ((int) $this->tmpl['displaycategorystatistics'] == 0) {
                $currentTab['statistics'] = -1;
            } else {
                $currentTab['statistics'] = $displayTabs;
                $displayTabs++;
                $this->tmpl['displaymaincatstat'] = $this->params->get('display_main_cat_stat', 1);
                $this->tmpl['displaylastaddedcatstat'] = $this->params->get('display_lastadded_cat_stat', 1);
                $this->tmpl['displaymostviewedcatstat'] = $this->params->get('display_mostviewed_cat_stat', 1);
                $this->tmpl['countlastaddedcatstat'] = $this->params->get('count_lastadded_cat_stat', 3);
                $this->tmpl['countmostviewedcatstat'] = $this->params->get('count_mostviewed_cat_stat', 3);
                if ($this->tmpl['displaymaincatstat'] == 1) {
                    $numberImgP = $model->getCountImages($id, 1);
                    $this->tmpl['numberimgpub'] = $numberImgP->countimg;
                    $numberImgU = $model->getCountImages($id, 0);
                    $this->tmpl['numberimgunpub'] = $numberImgU->countimg;
                    $categoryViewed = $model->getHits($id);
                    $this->tmpl['categoryviewed'] = $categoryViewed->catviewed;
                }
                // M O S T   V I E W E D   I M A G E S
                //$this->tmpl['mostviewedimg'] = array();
                if ($this->tmpl['displaymostviewedcatstat'] == 1) {
                    $mostViewedImages = $model->getStatisticsImages($id, 'hits', 'DESC', $this->tmpl['countmostviewedcatstat']);
                    for ($i = 0; $i < count($mostViewedImages); $i++) {
                        $itemMVI =& $mostViewedImages[$i];
                        $itemMVI->button =& $button;
                        $itemMVI->button2 =& $button2;
                        $itemMVI->buttonother =& $buttonOther;
                        $itemMVI->displayicondetail = $this->tmpl['displayicondetail'];
                        $itemMVI->displayname = $this->tmpl['displayname'];
                        $itemMVI->type = 2;
                        $altValue = PhocaGalleryRenderFront::getAltValue($this->tmpl['altvalue'], $itemMVI->title, $itemMVI->description, $itemMVI->metadesc);
                        $itemMVI->altvalue = $altValue;
                        $thumbLink = PhocaGalleryFileThumbnail::getThumbnailName($itemMVI->filename, 'large');
                        $siteLink = JRoute::_('index.php?option=com_phocagallery&view=detail&catid=' . $category->slug . '&id=' . $itemMVI->slug . '&tmpl=component' . '&Itemid=' . JRequest::getVar('Itemid', 0, '', 'int'));
                        $imgLink = JURI::base(true) . '/' . $thumbLink->rel;
                        if ($this->tmpl['detailwindow'] == 2 || $this->tmpl['detailwindow'] == 8) {
                            $itemMVI->link = $imgLink;
                        } else {
                            $itemMVI->link = $siteLink;
                        }
                        //$this->tmpl['mostviewedimg'][] = $itemMVI;
                        if ($itemMVI->extw != '') {
                            $extw = explode(',', $itemMVI->extw);
                            $itemMVI->extw = $extw[1];
                        }
                        if ($itemMVI->exth != '') {
                            $exth = explode(',', $itemMVI->exth);
                            $itemMVI->exth = $exth[1];
                        }
                    }
                    $this->tmpl['mostviewedimg'] = $mostViewedImages;
                }
                // L A S T   A D D E D   I M A G E S
                //$this->tmpl['lastaddedimg'] = array();
                if ($this->tmpl['displaylastaddedcatstat'] == 1) {
                    $lastAddedImages = $model->getStatisticsImages($id, 'date', 'DESC', $this->tmpl['countlastaddedcatstat']);
                    for ($i = 0; $i < count($lastAddedImages); $i++) {
                        $itemLAI =& $lastAddedImages[$i];
                        $itemLAI->link = JRoute::_('index.php?option=com_phocagallery&view=detail&catid=' . $category->slug . '&id=' . $itemLAI->slug . '&tmpl=component' . '&Itemid=' . JRequest::getVar('Itemid', 0, '', 'int'));
                        $itemLAI->button =& $button;
                        $itemLAI->button2 =& $button2;
                        $itemLAI->buttonother =& $buttonOther;
                        $itemLAI->displayicondetail = $this->tmpl['displayicondetail'];
                        $itemLAI->displayname = $this->tmpl['displayname'];
                        $itemLAI->type = 2;
                        $altValue = PhocaGalleryRenderFront::getAltValue($this->tmpl['altvalue'], $itemLAI->title, $itemLAI->description, $itemLAI->metadesc);
                        $itemLAI->altvalue = $altValue;
                        $thumbLink = PhocaGalleryFileThumbnail::getThumbnailName($itemLAI->filename, 'large');
                        $siteLink = JRoute::_('index.php?option=com_phocagallery&view=detail&catid=' . $category->slug . '&id=' . $itemLAI->slug . '&tmpl=component' . '&Itemid=' . JRequest::getVar('Itemid', 0, '', 'int'));
                        $imgLink = JURI::base(true) . '/' . $thumbLink->rel;
                        if ($this->tmpl['detailwindow'] == 2 || $this->tmpl['detailwindow'] == 8) {
                            $itemLAI->link = $imgLink;
                        } else {
                            $itemLAI->link = $siteLink;
                        }
                        //$this->tmpl['lastaddedimg'][] = $itemLAI;
                        if ($itemLAI->extw != '') {
                            $extw = explode(',', $itemLAI->extw);
                            $itemLAI->extw = $extw[1];
                        }
                        if ($itemLAI->exth != '') {
                            $exth = explode(',', $itemLAI->exth);
                            $itemLAI->exth = $exth[1];
                        }
                    }
                    $this->tmpl['lastaddedimg'] = $lastAddedImages;
                }
            }
            // G E O T A G G I N G
            if ((int) $this->tmpl['displaycategorygeotagging'] == 0) {
                $currentTab['geotagging'] = -1;
            } else {
                if ($map['longitude'] == '') {
                    $currentTab['geotagging'] = -1;
                } else {
                    if ($map['latitude'] == '') {
                        $currentTab['geotagging'] = -1;
                    } else {
                        $currentTab['geotagging'] = $displayTabs;
                        $displayTabs++;
                        $this->tmpl['googlemapsapikey'] = $this->params->get('google_maps_api_key', '');
                        $this->tmpl['categorymapwidth'] = $this->params->get('category_map_width', '');
                        $this->tmpl['categorymapheight'] = $this->params->get('category_map_height', 400);
                    }
                }
            }
            if ((int) $this->tmpl['displaycreatecat'] == 0) {
                $currentTab['createsubcategory'] = -1;
            } else {
                $currentTab['createsubcategory'] = $displayTabs;
                $displayTabs++;
            }
            // = = = = = = = = = =
            // U P L O A D
            // = = = = = = = = = =
            $this->tmpl['ftp'] = !JClientHelper::hasCredentials('ftp');
            // SEF problem
            $isThereQM = false;
            $isThereQM = preg_match("/\\?/i", $this->tmpl['action']);
            if ($isThereQM) {
                $amp = '&amp;';
            } else {
                $amp = '?';
            }
            $isThereTab = false;
            $isThereTab = preg_match("/tab=/i", $this->tmpl['action']);
            if ((int) $this->tmpl['displayupload'] == 0) {
                $currentTab['upload'] = -1;
            } else {
                $currentTab['upload'] = $displayTabs;
                $displayTabs++;
            }
            if ((int) $this->tmpl['ytbupload'] == 0 || (int) $this->tmpl['displayupload'] == 0) {
                $currentTab['ytbupload'] = -1;
            } else {
                $currentTab['ytbupload'] = $displayTabs;
                $displayTabs++;
            }
            if ((int) $this->tmpl['enablemultiple'] < 1 || (int) $this->tmpl['displayupload'] == 0) {
                $currentTab['multipleupload'] = -1;
            } else {
                $currentTab['multipleupload'] = $displayTabs;
                $displayTabs++;
            }
            if ((int) $this->tmpl['enablejava'] < 1 || (int) $this->tmpl['displayupload'] == 0) {
                $currentTab['javaupload'] = -1;
            } else {
                $currentTab['javaupload'] = $displayTabs;
                $displayTabs++;
            }
            $this->tmpl['displaytabs'] = $displayTabs;
            $this->tmpl['currenttab'] = $currentTab;
            $this->tmpl['action'] = htmlspecialchars($this->tmpl['action']);
            // - - - - - - - - - - -
            // Upload
            // - - - - - - - - - - -
            if ((int) $this->tmpl['displayupload'] == 1) {
                $sU = new PhocaGalleryFileUploadSingle();
                $sU->returnUrl = $this->tmpl['action'] . $amp . 'task=upload&amp;' . $this->session->getName() . '=' . $this->session->getId() . '&amp;' . JUtility::getToken() . '=1&amp;viewback=category&tab=' . $this->tmpl['currenttab']['upload'];
                $sU->tab = $this->tmpl['currenttab']['upload'];
                $this->tmpl['su_output'] = $sU->getSingleUploadHTML(1);
                $this->tmpl['su_url'] = $this->tmpl['action'] . $amp . 'task=upload&amp;' . $this->session->getName() . '=' . $this->session->getId() . '&amp;' . JUtility::getToken() . '=1&amp;viewback=category&tab=' . $this->tmpl['currenttab']['upload'];
            }
            // - - - - - - - - - - -
            // Youtube Upload (single upload form can be used)
            // - - - - - - - - - - -
            if ((int) $this->tmpl['ytbupload'] == 1 && $this->tmpl['displayupload'] == 1) {
                $sYU = new PhocaGalleryFileUploadSingle();
                $sYU->returnUrl = $this->tmpl['action'] . $amp . 'task=ytbupload&amp;' . $this->session->getName() . '=' . $this->session->getId() . '&amp;' . JUtility::getToken() . '=1&amp;viewback=category&tab=' . $this->tmpl['currenttab']['ytbupload'];
                $sYU->tab = $this->tmpl['currenttab']['ytbupload'];
                $this->tmpl['syu_output'] = $sYU->getSingleUploadHTML(1);
                $this->tmpl['syu_url'] = $this->tmpl['action'] . $amp . 'task=ytbupload&amp;' . $this->session->getName() . '=' . $this->session->getId() . '&amp;' . JUtility::getToken() . '=1&amp;viewback=category&tab=' . $this->tmpl['currenttab']['ytbupload'];
            }
            // - - - - - - - - - - -
            // Multiple Upload
            // - - - - - - - - - - -
            // Get infos from multiple upload
            $muFailed = JRequest::getVar('mufailed', '0', '', 'int');
            $muUploaded = JRequest::getVar('muuploaded', '0', '', 'int');
            $this->tmpl['mu_response_msg'] = $muUploadedMsg = '';
            if ($muUploaded > 0) {
                $muUploadedMsg = JText::_('COM_PHOCAGALLERY_COUNT_UPLOADED_IMG') . ': ' . $muUploaded;
            }
            if ($muFailed > 0) {
                $muFailedMsg = JText::_('COM_PHOCAGALLERY_COUNT_NOT_UPLOADED_IMG') . ': ' . $muFailed;
            }
            if ($muFailed > 0 && $muUploaded > 0) {
                $this->tmpl['mu_response_msg'] = '<div class="pgunsetmsg">' . JText::_('COM_PHOCAGALLERY_COUNT_UPLOADED_IMG') . ': ' . $muUploaded . '<br />' . JText::_('COM_PHOCAGALLERY_COUNT_NOT_UPLOADED_IMG') . ': ' . $muFailed . '</div>';
            } else {
                if ($muFailed > 0 && $muUploaded == 0) {
                    $this->tmpl['mu_response_msg'] = '<div class="pgerrormsg">' . JText::_('COM_PHOCAGALLERY_COUNT_NOT_UPLOADED_IMG') . ': ' . $muFailed . '</div>';
                } else {
                    if ($muFailed == 0 && $muUploaded > 0) {
                        $this->tmpl['mu_response_msg'] = '<div class="pgsuccessmsg">' . JText::_('COM_PHOCAGALLERY_COUNT_UPLOADED_IMG') . ': ' . $muUploaded . '</div>';
                    } else {
                        $this->tmpl['mu_response_msg'] = '';
                    }
                }
            }
            if ((int) $this->tmpl['enablemultiple'] == 1 && (int) $this->tmpl['displayupload'] == 1) {
                PhocaGalleryFileUploadMultiple::renderMultipleUploadLibraries();
                $mU = new PhocaGalleryFileUploadMultiple();
                $mU->frontEnd = 1;
                $mU->method = $this->tmpl['multipleuploadmethod'];
                $mU->url = $this->tmpl['action'] . $amp . 'controller=category&task=multipleupload&amp;' . $this->session->getName() . '=' . $this->session->getId() . '&' . JUtility::getToken() . '=1&tab=' . $this->tmpl['currenttab']['multipleupload'];
                $mU->reload = $this->tmpl['action'] . $amp . $this->session->getName() . '=' . $this->session->getId() . '&' . JUtility::getToken() . '=1&tab=' . $this->tmpl['currenttab']['multipleupload'];
                $mU->maxFileSize = PhocaGalleryFileUploadMultiple::getMultipleUploadSizeFormat($this->tmpl['uploadmaxsize']);
                $mU->chunkSize = '1mb';
                $mU->imageHeight = $this->tmpl['multipleresizeheight'];
                $mU->imageWidth = $this->tmpl['multipleresizewidth'];
                $mU->imageQuality = 100;
                $mU->renderMultipleUploadJS(0, $this->tmpl['multipleuploadchunk']);
                $this->tmpl['mu_output'] = $mU->getMultipleUploadHTML();
            }
            // - - - - - - - - - - -
            // Java Upload
            // - - - - - - - - - - -
            if ((int) $this->tmpl['enablejava'] == 1 && (int) $this->tmpl['displayupload'] == 1) {
                $jU = new PhocaGalleryFileUploadJava();
                $jU->width = $this->tmpl['javaboxwidth'];
                $jU->height = $this->tmpl['javaboxheight'];
                $jU->resizewidth = $this->tmpl['multipleresizewidth'];
                $jU->resizeheight = $this->tmpl['multipleresizeheight'];
                $jU->uploadmaxsize = $this->tmpl['uploadmaxsize'];
                $jU->returnUrl = $this->tmpl['action'] . $amp . $this->session->getName() . '=' . $this->session->getId() . '&' . JUtility::getToken() . '=1&tab=' . $this->tmpl['currenttab']['javaupload'];
                $jU->url = $this->tmpl['action'] . $amp . 'controller=category&task=javaupload&amp;' . $this->session->getName() . '=' . $this->session->getId() . '&' . JUtility::getToken() . '=1&amp;tab=' . $this->tmpl['currenttab']['javaupload'];
                $jU->source = JURI::root(true) . '/components/com_phocagallery/assets/java/jupload/wjhk.jupload.jar';
                $this->tmpl['ju_output'] = $jU->getJavaUploadHTML();
            }
        }
        // ADD STATISTICS
        if ((int) $id > 0) {
            $model->hit($id);
        }
        // ADD JAK DATA CSS style
        if ($this->tmpl['detailwindow'] == 6) {
            $document->addCustomTag('<script type="text/javascript">' . 'var dataJakJs = [' . implode($this->tmpl['jakdatajs'], ',') . ']' . '</script>');
        }
        // Detail Window - will be popup or not
        if ($this->tmpl['detailwindow'] == 7) {
            $this->tmpl['tmplcom'] = '';
            $this->tmpl['tmplcomcomments'] = '';
        } else {
            $this->tmpl['tmplcom'] = '&tmpl=component';
            $this->tmpl['tmplcomcomments'] = '&tmpl=component';
        }
        if ($this->tmpl['display_comment_nopup'] == 1) {
            $this->tmpl['tmplcomcomments'] = '';
        }
        // Height of all boxes
        $this->tmpl['imageheight'] = PhocaGalleryImage::correctSize($this->tmpl['imageheight'], 100, 100, 0);
        $this->tmpl['imagewidth'] = PhocaGalleryImage::correctSize($this->tmpl['imagewidth'], 100, 120, 20);
        $this->tmpl['imageheight']['boxsize'] = PhocaGalleryImage::setBoxSize($this->tmpl['imageheight'], $this->tmpl['imagewidth'], $this->tmpl['displayname'], $this->tmpl['displayicondetail'], $this->tmpl['displayicondownload'], $this->tmpl['displayiconvmbox'], $this->tmpl['startpiclens'], $this->tmpl['trash'], $this->tmpl['publishunpublish'], $this->tmpl['displayicongeobox'], $this->tmpl['displaycamerainfo'], $this->tmpl['displayiconextlink1box'], $this->tmpl['displayiconextlink2box'], $this->tmpl['categoryboxspace'], $this->tmpl['displayimageshadow'], $this->tmpl['displayratingimg'], $this->tmpl['displayiconfolder'], $this->tmpl['imgdescboxheight'], $this->tmpl['approvednotapproved'], $this->tmpl['displayiconcommentimgbox'], $this->tmpl['displaying_tags_true']);
        if ($this->tmpl['displayimageshadow'] != 'none') {
            $this->tmpl['imageheight']['size'] = $this->tmpl['imageheight']['size'] + 18;
            $this->tmpl['imagewidth']['size'] = $this->tmpl['imagewidth']['size'] + 18;
        }
        //$this->assignRef( 'params' ,			$this->params);
        $this->assignRef('map', $map);
        $this->assignRef('items', $items);
        // Category View
        $this->assignRef('itemscv', $itemsCV);
        // Categories View in Category View
        $this->assignRef('category', $category);
        $this->assignRef('button', $button);
        $this->assignRef('button2', $button2);
        $this->assignRef('buttonother', $buttonOther);
        $this->_prepareDocument($category);
        parent::display($tpl);
    }
Ejemplo n.º 12
0
 public function onContentPrepare($context, &$article, &$params, $page = 0)
 {
     $user = JFactory::getUser();
     $gid = $user->get('aid', 0);
     $db = JFactory::getDBO();
     //$menu 		= &JSite::getMenu();
     $document = JFactory::getDocument();
     $path = PhocaGalleryPath::getPath();
     // PARAMS - direct from Phoca Gallery Global configuration
     $component = 'com_phocagallery';
     $paramsC = JComponentHelper::getParams($component);
     // LIBRARY
     $library = PhocaGalleryLibrary::getLibrary();
     $libraries['pg-css-sbox-plugin'] = $library->getLibrary('pg-css-sbox-plugin');
     $libraries['pg-css-pg-plugin'] = $library->getLibrary('pg-css-pg-plugin');
     $libraries['pg-css-ie'] = $library->getLibrary('pg-css-ie');
     $libraries['pg-group-shadowbox'] = $library->getLibrary('pg-group-shadowbox');
     $libraries['pg-group-highslide'] = $library->getLibrary('pg-group-highslide');
     $libraries['pg-group-highslide-slideshow'] = $library->getLibrary('pg-group-highslide-slideshow');
     $libraries['pg-overlib-group'] = $library->getLibrary('pg-overlib-group');
     $libraries['pg-group-jak-pl'] = $library->getLibrary('pg-group-jak-pl');
     // PicLens CSS and JS will be loaded only one time in the site (pg-pl-piclens)
     // BUT PicLens Category will be loaded everytime new category should be displayed on the site
     $libraries['pg-pl-piclens'] = $library->getLibrary('pg-pl-piclens');
     // Start Plugin
     $regex_one = '/({phocagallery\\s*)(.*?)(})/si';
     $regex_all = '/{phocagallery\\s*.*?}/si';
     $matches = array();
     $count_matches = preg_match_all($regex_all, $article->text, $matches, PREG_OFFSET_CAPTURE | PREG_PATTERN_ORDER);
     $cssPgPlugin = '';
     $cssSbox = '';
     // Start if count_matches
     if ($count_matches != 0) {
         PhocaGalleryRenderFront::renderAllCSS();
         for ($i = 0; $i < $count_matches; $i++) {
             $this->_setPluginNumber();
             // Plugin variables
             $view = '';
             $catid = 0;
             $imageid = 0;
             $imagerandom = 0;
             $image_background_shadow = $paramsC->get('image_background_shadow', 'shadow1');
             $limitstart = 0;
             $limitcount = 0;
             $switch_width = $paramsC->get('switch_width', 640);
             $switch_height = $paramsC->get('switch_height', 480);
             $basic_image_id = $paramsC->get('switch_image', 0);
             $switch_fixed_size = $paramsC->get('switch_fixed_size', 0);
             $enable_switch = 0;
             $tmpl['display_name'] = $paramsC->get('display_name', 1);
             $tmpl['display_icon_detail'] = $paramsC->get('display_icon_detail', 1);
             $tmpl['display_icon_download'] = $paramsC->get('display_icon_download', 1);
             $tmpl['detail_window'] = $paramsC->get('detail_window', 0);
             // No boxplus in plugin:
             /*	if ($tmpl['detail_window']  == 9 || $tmpl['detail_window']  == 10) {
             				$tmpl['detail_window'] = 2;
             			}*/
             $detail_buttons = $paramsC->get('detail_buttons', 1);
             $hide_categories = $paramsC->get('hide_categories', '');
             $namefontsize = $paramsC->get('font_size_name', 12);
             $namenumchar = $paramsC->get('char_length_name', 11);
             $display_description = $paramsC->get('display_description_detail', 0);
             $description_height = $paramsC->get('description_detail_height', 16);
             $category_box_space = $paramsC->get('category_box_space', 0);
             $margin_box = $paramsC->get('margin_box', 5);
             $padding_box = $paramsC->get('padding_box', 5);
             // CSS
             $font_color = $paramsC->get('font_color', '#b36b00');
             $background_color = $paramsC->get('background_color', '#fcfcfc');
             $background_color_hover = $paramsC->get('background_color_hover', '#f5f5f5');
             $image_background_color = $paramsC->get('image_background_color', '#f5f5f5');
             $border_color = $paramsC->get('border_color', '#e8e8e8');
             $border_color_hover = $paramsC->get('border_color_hover', '#b36b00');
             $highslide_class = $paramsC->get('highslide_class', 'rounded-white');
             $highslide_opacity = $paramsC->get('highslide_opacity', 0);
             $highslide_outline_type = $paramsC->get('highslide_outline_type', 'rounded-white');
             $highslide_fullimg = $paramsC->get('highslide_fullimg', 0);
             $highslide_slideshow = $paramsC->get('highslide_slideshow', 1);
             $highslide_close_button = $paramsC->get('highslide_close_button', 0);
             $tmpl['enablecustomcss'] = $paramsC->get('enable_custom_css', 0);
             $tmpl['customcss'] = $paramsC->get('custom_css', '');
             $tmpl['displayratingimg'] = $paramsC->get('display_img_rating', 0);
             $tmpl['jakslideshowdelay'] = $paramsC->get('jak_slideshow_delay', 5);
             $tmpl['jakorientation'] = $paramsC->get('jak_orientation', 'none');
             $tmpl['jakdescription'] = $paramsC->get('jak_description', 1);
             $tmpl['jakdescriptionheight'] = $paramsC->get('jak_description_height', 0);
             $tmpl['imageordering'] = $paramsC->get('image_ordering', 9);
             $tmpl['highslidedescription'] = $paramsC->get('highslide_description', 0);
             $tmpl['pluginlink'] = 0;
             $tmpl['jakdatajs'] = array();
             $minimum_box_width = '';
             $tmpl['boxplus_theme'] = $paramsC->get('boxplus_theme', 'lightsquare');
             $tmpl['boxplus_bautocenter'] = (int) $paramsC->get('boxplus_bautocenter', 1);
             $tmpl['boxplus_autofit'] = (int) $paramsC->get('boxplus_autofit', 1);
             $tmpl['boxplus_slideshow'] = (int) $paramsC->get('boxplus_slideshow', 0);
             $tmpl['boxplus_loop'] = (int) $paramsC->get('boxplus_loop', 0);
             $tmpl['boxplus_captions'] = $paramsC->get('boxplus_captions', 'bottom');
             $tmpl['boxplus_thumbs'] = $paramsC->get('boxplus_thumbs', 'inside');
             $tmpl['boxplus_duration'] = (int) $paramsC->get('boxplus_duration', 250);
             $tmpl['boxplus_transition'] = $paramsC->get('boxplus_transition', 'linear');
             $tmpl['boxplus_contextmenu'] = (int) $paramsC->get('boxplus_contextmenu', 1);
             // Component settings - some behaviour is set in component and cannot be set in plugin
             // but plugin needs to accept it
             $tmplCom['displayicondownload'] = $paramsC->get('display_icon_download', 0);
             $plugin_type = 0;
             $padding_mosaic = 3;
             $float = '';
             $enable_piclens = $paramsC->get('enable_piclens', 0);
             $enable_overlib = $paramsC->get('enable_oberlib', 0);
             // Image categories
             $img_cat = 1;
             $img_cat_size = 'small';
             // Get plugin parameters
             $phocagallery = $matches[0][$i][0];
             preg_match($regex_one, $phocagallery, $phocagallery_parts);
             $parts = explode("|", $phocagallery_parts[2]);
             $values_replace = array("/^'/", "/'\$/", "/^&#39;/", "/&#39;\$/", "/<br \\/>/");
             foreach ($parts as $key => $value) {
                 $values = explode("=", $value, 2);
                 foreach ($values_replace as $key2 => $values2) {
                     $values = preg_replace($values2, '', $values);
                 }
                 // Get plugin parameters from article
                 if ($values[0] == 'view') {
                     $view = $values[1];
                 } else {
                     if ($values[0] == 'categoryid') {
                         $catid = $values[1];
                     } else {
                         if ($values[0] == 'imageid') {
                             $imageid = $values[1];
                         } else {
                             if ($values[0] == 'imagerandom') {
                                 $imagerandom = $values[1];
                             } else {
                                 if ($values[0] == 'imageshadow') {
                                     $image_background_shadow = $values[1];
                                 } else {
                                     if ($values[0] == 'limitstart') {
                                         $limitstart = $values[1];
                                     } else {
                                         if ($values[0] == 'limitcount') {
                                             $limitcount = $values[1];
                                         } else {
                                             if ($values[0] == 'detail') {
                                                 $tmpl['detail_window'] = $values[1];
                                             } else {
                                                 if ($values[0] == 'displayname') {
                                                     $tmpl['display_name'] = $values[1];
                                                 } else {
                                                     if ($values[0] == 'displaydetail') {
                                                         $tmpl['display_icon_detail'] = $values[1];
                                                     } else {
                                                         if ($values[0] == 'displaydownload') {
                                                             $tmpl['display_icon_download'] = $values[1];
                                                         } else {
                                                             if ($values[0] == 'displaybuttons') {
                                                                 $detail_buttons = $values[1];
                                                             } else {
                                                                 if ($values[0] == 'namefontsize') {
                                                                     $namefontsize = $values[1];
                                                                 } else {
                                                                     if ($values[0] == 'namenumchar') {
                                                                         $namenumchar = $values[1];
                                                                     } else {
                                                                         if ($values[0] == 'displaydescription') {
                                                                             $display_description = $values[1];
                                                                         } else {
                                                                             if ($values[0] == 'descriptionheight') {
                                                                                 $description_height = $values[1];
                                                                             } else {
                                                                                 if ($values[0] == 'hidecategories') {
                                                                                     $hide_categories = $values[1];
                                                                                 } else {
                                                                                     if ($values[0] == 'boxspace') {
                                                                                         $category_box_space = $values[1];
                                                                                     } else {
                                                                                         if ($values[0] == 'fontcolor') {
                                                                                             $font_color = $values[1];
                                                                                         } else {
                                                                                             if ($values[0] == 'bgcolor') {
                                                                                                 $background_color = $values[1];
                                                                                             } else {
                                                                                                 if ($values[0] == 'bgcolorhover') {
                                                                                                     $background_color_hover = $values[1];
                                                                                                 } else {
                                                                                                     if ($values[0] == 'imagebgcolor') {
                                                                                                         $image_background_color = $values[1];
                                                                                                     } else {
                                                                                                         if ($values[0] == 'bordercolor') {
                                                                                                             $border_color = $values[1];
                                                                                                         } else {
                                                                                                             if ($values[0] == 'bordercolorhover') {
                                                                                                                 $border_color_hover = $values[1];
                                                                                                             } else {
                                                                                                                 if ($values[0] == 'hsclass') {
                                                                                                                     $highslide_class = $values[1];
                                                                                                                 } else {
                                                                                                                     if ($values[0] == 'hsopacity') {
                                                                                                                         $highslide_opacity = $values[1];
                                                                                                                     } else {
                                                                                                                         if ($values[0] == 'hsoutlinetype') {
                                                                                                                             $highslide_outline_type = $values[1];
                                                                                                                         } else {
                                                                                                                             if ($values[0] == 'hsfullimg') {
                                                                                                                                 $highslide_fullimg = $values[1];
                                                                                                                             } else {
                                                                                                                                 if ($values[0] == 'hsslideshow') {
                                                                                                                                     $highslide_slideshow = $values[1];
                                                                                                                                 } else {
                                                                                                                                     if ($values[0] == 'hsclosebutton') {
                                                                                                                                         $highslide_close_button = $values[1];
                                                                                                                                     } else {
                                                                                                                                         if ($values[0] == 'float') {
                                                                                                                                             $float = $values[1];
                                                                                                                                         } else {
                                                                                                                                             if ($values[0] == 'jakslideshowdelay') {
                                                                                                                                                 $tmpl['jakslideshowdelay'] = $values[1];
                                                                                                                                             } else {
                                                                                                                                                 if ($values[0] == 'jakorientation') {
                                                                                                                                                     $tmpl['jakorientation'] = $values[1];
                                                                                                                                                 } else {
                                                                                                                                                     if ($values[0] == 'jakdescription') {
                                                                                                                                                         $tmpl['jakdescription'] = $values[1];
                                                                                                                                                     } else {
                                                                                                                                                         if ($values[0] == 'jakdescriptionheight') {
                                                                                                                                                             $tmpl['jakdescriptionheight'] = $values[1];
                                                                                                                                                         } else {
                                                                                                                                                             if ($values[0] == 'imageordering') {
                                                                                                                                                                 $tmpl['imageordering'] = $values[1];
                                                                                                                                                             } else {
                                                                                                                                                                 if ($values[0] == 'pluginlink') {
                                                                                                                                                                     $tmpl['pluginlink'] = $values[1];
                                                                                                                                                                 } else {
                                                                                                                                                                     if ($values[0] == 'highslidedescription') {
                                                                                                                                                                         $tmpl['highslidedescription'] = $values[1];
                                                                                                                                                                     } else {
                                                                                                                                                                         if ($values[0] == 'type') {
                                                                                                                                                                             $plugin_type = $values[1];
                                                                                                                                                                         } else {
                                                                                                                                                                             if ($values[0] == 'paddingmosaic') {
                                                                                                                                                                                 $padding_mosaic = $values[1];
                                                                                                                                                                             } else {
                                                                                                                                                                                 if ($values[0] == 'minboxwidth') {
                                                                                                                                                                                     $minimum_box_width = $values[1];
                                                                                                                                                                                 } else {
                                                                                                                                                                                     if ($values[0] == 'imagecategories') {
                                                                                                                                                                                         $img_cat = $values[1];
                                                                                                                                                                                     } else {
                                                                                                                                                                                         if ($values[0] == 'imagecategoriessize') {
                                                                                                                                                                                             $img_cat_size = $values[1];
                                                                                                                                                                                         } else {
                                                                                                                                                                                             if ($values[0] == 'switchwidth') {
                                                                                                                                                                                                 $switch_width = $values[1];
                                                                                                                                                                                             } else {
                                                                                                                                                                                                 if ($values[0] == 'switchheight') {
                                                                                                                                                                                                     $switch_height = $values[1];
                                                                                                                                                                                                 } else {
                                                                                                                                                                                                     if ($values[0] == 'basicimageid') {
                                                                                                                                                                                                         $basic_image_id = $values[1];
                                                                                                                                                                                                     } else {
                                                                                                                                                                                                         if ($values[0] == 'enableswitch') {
                                                                                                                                                                                                             $enable_switch = $values[1];
                                                                                                                                                                                                         } else {
                                                                                                                                                                                                             if ($values[0] == 'switchfixedsize') {
                                                                                                                                                                                                                 $switch_fixed_size = $values[1];
                                                                                                                                                                                                             } else {
                                                                                                                                                                                                                 if ($values[0] == 'piclens') {
                                                                                                                                                                                                                     $enable_piclens = $values[1];
                                                                                                                                                                                                                 } else {
                                                                                                                                                                                                                     if ($values[0] == 'overlib') {
                                                                                                                                                                                                                         $enable_overlib = $values[1];
                                                                                                                                                                                                                     } else {
                                                                                                                                                                                                                         if ($values[0] == 'enablecustomcss') {
                                                                                                                                                                                                                             $tmpl['enablecustomcss'] = $values[1];
                                                                                                                                                                                                                         }
                                                                                                                                                                                                                     }
                                                                                                                                                                                                                 }
                                                                                                                                                                                                             }
                                                                                                                                                                                                         }
                                                                                                                                                                                                     }
                                                                                                                                                                                                 }
                                                                                                                                                                                             }
                                                                                                                                                                                         }
                                                                                                                                                                                     }
                                                                                                                                                                                 }
                                                                                                                                                                             }
                                                                                                                                                                         }
                                                                                                                                                                     }
                                                                                                                                                                 }
                                                                                                                                                             }
                                                                                                                                                         }
                                                                                                                                                     }
                                                                                                                                                 }
                                                                                                                                             }
                                                                                                                                         }
                                                                                                                                     }
                                                                                                                                 }
                                                                                                                             }
                                                                                                                         }
                                                                                                                     }
                                                                                                                 }
                                                                                                             }
                                                                                                         }
                                                                                                     }
                                                                                                 }
                                                                                             }
                                                                                         }
                                                                                     }
                                                                                 }
                                                                             }
                                                                         }
                                                                     }
                                                                 }
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
             // If Module link is to category or categories, the detail window method needs to be set to no popup
             if ((int) $tmpl['pluginlink'] > 0) {
                 $tmpl['detail_window'] = 7;
             }
             // Every loop of plugin has own number
             // Add custom CSS for every image (every image can have other CSS, Hover doesn't work in IE6)
             $iCss = $this->_plugin_number;
             if ($tmpl['enablecustomcss'] == 1) {
             } else {
                 $cssPgPlugin .= " .pgplugin" . $iCss . " {border:1px solid {$border_color} ; background: {$background_color} ;}\n" . " .pgplugin" . $iCss . ":hover, .pgplugin" . $i . ".hover {border:1px solid {$border_color_hover} ; background: {$background_color_hover} ;}\n";
             }
             $tmpl['formaticon'] = $paramsC->get('icon_format', 'gif');
             $tmpl['imagewidth'] = $medium_image_width = $paramsC->get('medium_image_width', 100);
             $tmpl['imageheight'] = $medium_image_height = $paramsC->get('medium_image_height', 100);
             $popup_width = $paramsC->get('front_modal_box_width', 680);
             $popup_height = $paramsC->get('front_modal_box_height', 560);
             $small_image_width = $paramsC->get('small_image_width', 50);
             $small_image_height = $paramsC->get('small_image_height', 50);
             $large_image_width = $paramsC->get('large_image_width', 640);
             $large_image_height = $paramsC->get('large_image_height', 480);
             $tmpl['enable_multibox'] = $paramsC->get('enable_multibox', 0);
             $tmpl['multibox_height'] = (int) $paramsC->get('multibox_height', 560);
             $tmpl['multibox_width'] = (int) $paramsC->get('multibox_width', 980);
             // Multibox
             if ($tmpl['enable_multibox'] == 1) {
                 $popup_width = $tmpl['multibox_width'];
                 $popup_height = $tmpl['multibox_height'];
             }
             // Correct Picasa Images - get Info
             switch ($img_cat_size) {
                 // medium
                 case 1:
                 case 5:
                     $tmpl['picasa_correct_width'] = (int) $paramsC->get('medium_image_width', 100);
                     $tmpl['picasa_correct_height'] = (int) $paramsC->get('medium_image_height', 100);
                     break;
                 case 0:
                 case 4:
                 default:
                     $tmpl['picasa_correct_width'] = (int) $paramsC->get('small_image_width', 50);
                     $tmpl['picasa_correct_height'] = (int) $paramsC->get('small_image_height', 50);
                     break;
             }
             if ($plugin_type == 1) {
                 $imgSize = 'small';
             } else {
                 if ($plugin_type == 2) {
                     $imgSize = 'large';
                 } else {
                     $imgSize = 'medium';
                 }
             }
             if ($display_description == 1) {
                 $popup_height = $popup_height + $description_height;
             }
             // Detail buttons in detail view
             if ($detail_buttons != 1) {
                 $popup_height = $popup_height - 45;
             }
             $popup_height_rating = $popup_height;
             if ($tmpl['displayratingimg'] == 1) {
                 $popup_height_rating = $popup_height + 35;
             }
             $modal_box_overlay_color = $paramsC->get('modal_box_overlay_color', '#000000');
             $modal_box_overlay_opacity = $paramsC->get('modal_box_overlay_opacity', 0.3);
             $modal_box_border_color = $paramsC->get('modal_box_border_color', '#6b6b6b');
             $modal_box_border_width = $paramsC->get('modal_box_border_width', 2);
             $tmpl['olbgcolor'] = $paramsC->get('ol_bg_color', '#666666');
             $tmpl['olfgcolor'] = $paramsC->get('ol_fg_color', '#f6f6f6');
             $tmpl['oltfcolor'] = $paramsC->get('ol_tf_color', '#000000');
             $tmpl['olcfcolor'] = $paramsC->get('ol_cf_color', '#ffffff');
             $tmpl['overliboverlayopacity'] = $paramsC->get('overlib_overlay_opacity', 0.7);
             // =======================================================
             // 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
             JHtml::_('behavior.modal', 'a.pg-modal-button');
             $btn = new PhocaGalleryRenderDetailWindow();
             $btn->popupWidth = $popup_width;
             $btn->popupHeight = $popup_height;
             $btn->mbOverlayOpacity = $modal_box_overlay_opacity;
             $btn->sbSlideshowDelay = $paramsC->get('sb_slideshow_delay', 5);
             $btn->sbSettings = $paramsC->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 = $tmpl['jakdescriptionheight'];
             $btn->jakDescWidth = '';
             $btn->jakOrientation = $tmpl['jakorientation'];
             $btn->jakSlideshowDelay = $tmpl['jakslideshowdelay'];
             $btn->bpTheme = $paramsC->get('boxplus_theme', 'lightsquare');
             $btn->bpBautocenter = (int) $paramsC->get('boxplus_bautocenter', 1);
             $btn->bpAutofit = (int) $paramsC->get('boxplus_autofit', 1);
             $btn->bpSlideshow = (int) $paramsC->get('boxplus_slideshow', 0);
             $btn->bpLoop = (int) $paramsC->get('boxplus_loop', 0);
             $btn->bpCaptions = $paramsC->get('boxplus_captions', 'bottom');
             $btn->bpThumbs = $paramsC->get('boxplus_thumbs', 'inside');
             $btn->bpDuration = (int) $paramsC->get('boxplus_duration', 250);
             $btn->bpTransition = $paramsC->get('boxplus_transition', 'linear');
             $btn->bpContextmenu = (int) $paramsC->get('boxplus_contextmenu', 1);
             $btn->extension = 'Pl';
             /*
             			// Window
             			// =======================================================
             			// 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 
             			JHTML::_('behavior.modal', 'a.modal-button');
             
             			if ($cssSbox == '') {
             				$cssSbox .= " #sbox-window {background-color:".$modal_box_border_color.";padding:".$modal_box_border_width."px} \n"
             				." #sbox-overlay {background-color:".$modal_box_overlay_color.";} \n";
             			}
             			
             			// BUTTON (IMAGE - standard, modal, shadowbox)
             			$button = new JObject();
             			$button->set('name', 'image');
             
             			// BUTTON (ICON - standard, modal, shadowbox)
             			$button2 = new JObject();
             			$button2->set('name', 'icon');
             
             			// BUTTON OTHER (geotagging, downloadlink, ...)
             			$buttonOther = new JObject();
             			$buttonOther->set('name', 'other');
             
             			$tmpl ['highslideonclick']	= '';// for using with highslide
             			
             			// Random Number - because of more plugins on the site
             			$randName	= 'PhocaGalleryPl' . $iCss;
             			$randName2	= 'PhocaGalleryPl2' . $iCss;
             			
             			// -------------------------------------------------------
             			// STANDARD POPUP
             			// -------------------------------------------------------
             
             			if ($tmpl['detail_window'] == 1) {
             				
             				$button->set('methodname', 'js-button');
             				$button->set('options', "window.open(this.href,'win2','width=".$popup_width.",height=".$popup_height.",scrollbars=yes,menubar=no,resizable=yes'); return false;");
             				$button->set('optionsrating', "window.open(this.href,'win2','width=".$popup_width.",height=".$popup_height_rating.",scrollbars=yes,menubar=no,resizable=yes'); return false;");
             						
             				$button2->methodname 		= &$button->methodname;
             				$button2->options 			= &$button->options;
             				$buttonOther->methodname  	= &$button->methodname;
             				$buttonOther->options 		= &$button->options;
             				$buttonOther->optionsrating = &$button->optionsrating;
             				
             			}
             			
             			// -------------------------------------------------------
             			// MODAL BOX
             			// -------------------------------------------------------
             
             			else if ($tmpl['detail_window'] == 0 || $tmpl['detail_window'] == 2) { 
             				
             				// Button
             				$button->set('modal', true);
             				$button->set('methodname', 'modal-button');
             				
             				$button2->modal 			= &$button->modal;
             				$button2->methodname 		= &$button->methodname;
             				$buttonOther->modal 		= &$button->modal;
             				$buttonOther->methodname  	= &$button->methodname;
             				
             				// Modal - Image only
             				if ($tmpl['detail_window'] == 2) {
             					
             					$button->set('options', "{handler: 'image', size: {x: 200, y: 150}, overlayOpacity: ".$modal_box_overlay_opacity."}");
             					$button2->options 		= &$button->options;
             					$buttonOther->set('options', "{handler: 'iframe', size: {x: ".$popup_width.", y: ".$popup_height."}, overlayOpacity: ".$modal_box_overlay_opacity."}");
             					$buttonOther->set('optionsrating', "{handler: 'iframe', size: {x: ".$popup_width.", y: ".$popup_height_rating."}, overlayOpacity: ".$modal_box_overlay_opacity."}");
             				
             				// Modal - Iframe 			
             				} else {
             					$button->set('options', "{handler: 'iframe', size: {x: ".$popup_width.", y: ".$popup_height."}, overlayOpacity: ".$modal_box_overlay_opacity."}");
             					$buttonOther->set('optionsrating', "{handler: 'iframe', size: {x: ".$popup_width.", y: ".$popup_height_rating."}, overlayOpacity: ".$modal_box_overlay_opacity."}");
             				
             					$button2->options 		= &$button->options;
             					$buttonOther->options  	= &$button->options;
             				
             				}
             			}
             			
             			// -------------------------------------------------------
             			// SHADOW BOX
             			// -------------------------------------------------------
             
             			else if ($tmpl['detail_window'] == 3) {
             
             				
             				
             				$sb_slideshow_delay			= $paramsC->get( 'sb_slideshow_delay', 5 );
             				$sb_lang					= $paramsC->get( 'sb_lang', 'en' );
             				
             				$button->set('methodname', 'shadowbox-button-rim');
             				$button->set('options', "shadowbox[".$randName."];options={slideshowDelay:".$sb_slideshow_delay."}");
             					
             				$button2->methodname 		= &$button->methodname;
             				$button2->set('options', "shadowbox[".$randName2."];options={slideshowDelay:".$sb_slideshow_delay."}");
             				
             				$buttonOther->set('modal', true);
             				$buttonOther->set('methodname', 'modal-button');
             				$buttonOther->set('options', "{handler: 'iframe', size: {x: ".$popup_width.", y: ".$popup_height."}, overlayOpacity: ".$modal_box_overlay_opacity."}");
             				$buttonOther->set('optionsrating', "{handler: 'iframe', size: {x: ".$popup_width.", y: ".$popup_height_rating."}, overlayOpacity: ".$modal_box_overlay_opacity."}");
             				
             				$document->addScript(JURI::base(true).'/components/com_phocagallery/assets/js/shadowbox/shadowbox.js');	
             					
             				if ( $libraries['pg-group-shadowbox']->value == 0 ) {
             					$document->addCustomTag('<script type="text/javascript">
             			Shadowbox.loadSkin("classic", "'.JURI::base(true).'/components/com_phocagallery/assets/js/shadowbox/src/skin");
             			Shadowbox.loadLanguage("'.$sb_lang.'", "'.JURI::base(true).'/components/com_phocagallery/assets/js/shadowbox/src/lang");
             			Shadowbox.loadPlayer(["img"], "'.JURI::base(true).'/components/com_phocagallery/assets/js/shadowbox/src/player");
             			window.addEvent(\'domready\', function(){
                                     Shadowbox.init()
                                     });
             			</script>');
             					$library->setLibrary('pg-group-shadowbox', 1);
             				}
             
             			}
             			
             			// -------------------------------------------------------
             			// HIGHSLIDE JS
             			// -------------------------------------------------------
             
             			else if ($tmpl['detail_window'] == 4) {
             				
             				$button->set('methodname', 'highslide');
             				$button2->methodname 		= &$button->methodname;
             				$buttonOther->methodname 	= &$button->methodname;
             				
             				$document->addScript(JURI::base(true).'/components/com_phocagallery/assets/js/highslide/highslide-full.js');
             				$document->addStyleSheet(JURI::base(true).'/components/com_phocagallery/assets/js/highslide/highslide.css');
             						
             				if ( $libraries['pg-group-highslide']->value == 0 ) {
             					$document->addCustomTag( PhocaGalleryRenderFront::renderHighslideJSAll());
             					$document->addCustomTag('<!--[if lt IE 7]><link rel="stylesheet" type="text/css" href="'.JURI::base(true).'/components/com_phocagallery/assets/js/highslide/highslide-ie6.css" /><![endif]-->');
             			$library->setLibrary('pg-group-highslide', 1);
             				}
             				
             				$document->addCustomTag( PhocaGalleryRenderFront::renderHighslideJS('pl', $popup_width, $popup_height, $highslide_outline_type, $highslide_opacity));
             				$tmpl['highslideonclick'] = 'return hs.htmlExpand(this, phocaZoomPl )';
             			}
             			
             			// -------------------------------------------------------
             			// HIGHSLIDE JS IMAGE ONLY
             			// -------------------------------------------------------
             
             			else if ($tmpl['detail_window'] == 5) {
             
             				$button->set('methodname', 'highslide');
             				$button2->methodname 		= &$button->methodname;
             				$buttonOther->methodname 	= &$button->methodname;
             				
             				$document->addScript(JURI::base(true).'/components/com_phocagallery/assets/js/highslide/highslide-full.js');
             			$document->addStyleSheet(JURI::base(true).'/components/com_phocagallery/assets/js/highslide/highslide.css');
             				
             				
             				if ( $libraries['pg-group-highslide']->value == 0 ) {
             					$document->addCustomTag( PhocaGalleryRenderFront::renderHighslideJSAll());
             					$document->addCustomTag('<!--[if lt IE 7]><link rel="stylesheet" type="text/css" href="'.JURI::base(true).'/components/com_phocagallery/assets/js/highslide/highslide-ie6.css" /><![endif]-->');
             
             					$library->setLibrary('pg-group-highslide', 1);
             				}
             				
             				/* @deprecated	for each new plugin (with a new _plugin_number ) there has to be inserted another hs.addslideShow script with another slideshowGroup */
             /*	if ($libraries['pg-group-highslide-slideshow']->value == 0) {
             				if((int)$highslide_slideshow > 0) {
             					$library->setLibrary('pg-group-highslide-slideshow', 1);
             				}
             			} else {
             				// if we have added the slideshow to plugin code
             				// we cannot add it again
             				$highslide_slideshow = 0;
             			}*/
             /*
             $document->addCustomTag( PhocaGalleryRenderFront::renderHighslideJS('pl', $popup_width, $popup_height, $highslide_slideshow, $highslide_class, $highslide_outline_type, $highslide_opacity, $highslide_close_button));
             
             $tmpl['highslideonclick2']	= 'return hs.htmlExpand(this, phocaZoomPl )';
             //$tmpl['highslideonclick']	= 'return hs.expand(this, phocaImageRI )';
             $tmpl['highslideonclick']	= PhocaGalleryRenderFront::renderHighslideJSImage('pl', $highslide_class, $highslide_outline_type, $highslide_opacity, $highslide_fullimg);
             */
             /* this would better use addScriptDeclaration, but this would need further changes (-> removing the <script> tags from the return value of renderHighslideJS) */
             /*	$document->addCustomTag( PhocaGalleryRenderFront::renderHighslideJS('pl', $popup_width, $popup_height, $highslide_slideshow, $highslide_class, $highslide_outline_type, $highslide_opacity, $highslide_close_button, $this->_plugin_number));
             
             				
             				$tmpl['highslideonclick2']	= 'return hs.htmlExpand(this, phocaZoomPl )';
             				//$tmpl['highslideonclick']	= 'return hs.expand(this, phocaImageRI )';
             				$tmpl['highslideonclick']	= PhocaGalleryRenderFront::renderHighslideJSImage('pl', $highslide_class, $highslide_outline_type, $highslide_opacity, $highslide_fullimg, $this->_plugin_number);
             
             			}
             			// -------------------------------------------------------
             			// JAK LIGHTBOX
             			// -------------------------------------------------------
             
             			else if ($tmpl['detail_window'] == 6) {
             
             				$button->set('methodname', 'jaklightbox');
             				$button2->methodname 	= &$button->methodname;
             
             				$buttonOther->set('modal', true);
             				$buttonOther->set('methodname', 'modal-button');
             				$buttonOther->set('options', "{handler: 'iframe', size: {x: ".$popup_width.", y: ".$popup_height."}, overlayOpacity: ".$modal_box_overlay_opacity."}");
             				$buttonOther->set('optionsrating', "{handler: 'iframe', size: {x: ".$popup_width.", y: ".$popup_height_rating."}, overlayOpacity: ".$modal_box_overlay_opacity."}");
             
             
             				$document->addScript(JURI::base(true).'/components/com_phocagallery/assets/js/jak/jak_compressed.js');
             				$document->addScript(JURI::base(true).'/components/com_phocagallery/assets/js/jak/lightbox_compressed.js');
             				$document->addScript(JURI::base(true).'/components/com_phocagallery/assets/js/jak/jak_slideshow.js');
             				$document->addScript(JURI::base(true).'/components/com_phocagallery/assets/js/jak/window_compressed.js');
             				$document->addScript(JURI::base(true).'/components/com_phocagallery/assets/js/jak/interpolator_compressed.js');		
             				$document->addStyleSheet(JURI::base(true).'/components/com_phocagallery/assets/js/jak/lightbox-slideshow.css');
             				
             				$lHeight 		= 472 + (int)$tmpl['jakdescriptionheight'];
             				$lcHeight		= 10 + (int)$tmpl['jakdescriptionheight'];
             				$customJakTag	= '';
             				if ($tmpl['jakorientation'] == 'horizontal') {
             					$document->addStyleSheet(JURI::base(true).'/components/com_phocagallery/assets/js/jak/lightbox-horizontal.css');
             				} else if ($tmpl['jakorientation'] == 'vertical'){
             					$document->addStyleSheet(JURI::base(true).'/components/com_phocagallery/assets/js/jak/lightbox-vertical.css');
             					$customJakTag .= '.lightBox {height: '.$lHeight.'px;}'
             									.'.lightBox .image-browser-caption { height: '.$lcHeight.'px;}';
             				} else  {
             					$document->addStyleSheet(JURI::base(true).'/components/com_phocagallery/assets/js/jak/lightbox-vertical.css');
             					$customJakTag .= '.lightBox {height: '.$lHeight.'px;width:800px;}'
             								.'.lightBox .image-browser-caption { height: '.$lcHeight.'px;}'
             								.'.lightBox .image-browser-thumbs { display:none;}'
             								.'.lightBox .image-browser-thumbs div.image-browser-thumb-box { display:none;}';
             				}
             				
             				if ($customJakTag != '') {
             					$document->addCustomTag("<style type=\"text/css\">\n". $customJakTag. "\n"."</style>");
             				}
             				
             				//if ( $libraries['pg-group-jak-pl']->value == 0 ) {		
             					$document->addCustomTag( PhocaGalleryRenderFront::renderJakJs($tmpl['jakslideshowdelay'], $tmpl['jakorientation'], 'optgjaksPl'.$randName));
             				//	$library->setLibrary('pg-group-jak-pl', 1);
             				//}
             				
             			}
             
             			// -------------------------------------------------------
             			// NO POPUP
             			// -------------------------------------------------------
             
             			else if ($tmpl['detail_window'] == 7) {
             
             				$button->set('methodname', 'no-popup');
             				$button2->methodname 	= &$button->methodname;
             
             				
             				$buttonOther->set('modal', true);
             				$buttonOther->set('methodname', 'no-popup');
             				$buttonOther->set('options', "");
             				$buttonOther->set('optionsrating', "");
             				
             			}
             			
             			// -------------------------------------------------------
             			// SLIMBOX
             			// -------------------------------------------------------
             			
             			else if ($tmpl['detail_window'] == 8) {
             			
             				$button->set('methodname', 'slimbox');
             				$button2->methodname 		= &$button->methodname;
             				$button2->methodname 		= &$button->methodname;
             				$button2->set('options', "lightbox-images");
             				
             				$buttonOther->set('modal', true);
             				$buttonOther->set('methodname', 'modal-button');
             				$buttonOther->set('options', "{handler: 'iframe', size: {x: ".$popup_width.", y: ".$popup_height."}, overlayOpacity: ".$modal_box_overlay_opacity."}");
             				$buttonOther->set('optionsrating', "{handler: 'iframe', size: {x: ".$popup_width.", y: ".$popup_height_rating."}, overlayOpacity: ".$modal_box_overlay_opacity."}");
             			
             				$document->addScript(JURI::base(true).'/components/com_phocagallery/assets/js/slimbox/slimbox.js');
             				$document->addStyleSheet(JURI::base(true).'/components/com_phocagallery/assets/js/slimbox/css/slimbox.css');
             
             			}
             			
             			// -------------------------------------------------------
             			// BOXPLUS (BOXPLUS + BOXPLUS (IMAGE ONLY))
             			// -------------------------------------------------------
             			
             			else if ($tmpl['detail_window'] == 9 || $tmpl['detail_window'] == 10) {
             				
             				$language = JFactory::getLanguage();
             				
             				$button->set('options', 'phocagallerycboxplus');
             				$button->set('methodname', 'phocagallerycboxplus');
             				$button2->set('options', "phocagallerycboxplusi");
             				$button2->set('methodname', 'phocagallerycboxplusi');
             				$buttonOther->set('methodname', 'phocagallerycboxpluso');
             				$buttonOther->set('options', "phocagallerycboxpluso");
             				$buttonOther->set('optionsrating', "phocagallerycboxpluso");
             				
             				//if ($crossdomain) {
             				//	$document->addScript(JURI::base(true).'/components/com_phocagallery/assets/js/boxplus/jsonp.mootools.js');
             				//}
             				$document->addScript(JURI::base(true).'/components/com_phocagallery/assets/js/boxplus/boxplus.js');
             				$document->addScript(JURI::base(true).'/components/com_phocagallery/assets/js/boxplus/boxplus.lang.js?lang='.$language->getTag());
             				
             				$document->addStyleSheet(JURI::base(true).'/components/com_phocagallery/assets/js/boxplus/css/boxplus.css');
             				if ($language->isRTL()) {
             					$document->addStyleSheet(JURI::base(true).'/components/com_phocagallery/assets/js/boxplus/css/boxplus.rtl.css');
             				}
             				$document->addCustomTag('<!--[if lt IE 9]><link rel="stylesheet" href="'.JURI::base(true).'/components/com_phocagallery/assets/js/boxplus/css/boxplus.ie8.css" type="text/css" /><![endif]-->');
             				$document->addCustomTag('<!--[if lt IE 8]><link rel="stylesheet" href="'.JURI::base(true).'/components/com_phocagallery/assets/js/boxplus/css/boxplus.ie7.css" type="text/css" /><![endif]-->');
             				$document->addStyleSheet(JURI::base(true).'/components/com_phocagallery/assets/js/boxplus/css/boxplus.'.$tmpl['boxplus_theme'].'.css', 'text/css', null, array('title'=>'boxplus-'.$tmpl['boxplus_theme']));
             				
             				if (file_exists(JPATH_BASE.DS.'components'.DS.'com_phocagallery'.DS.'assets'.DS.'js'.DS.'boxplus'.DS.'css'.DS.'boxplus.'.$tmpl['boxplus_theme'])) {  // use IE-specific stylesheet only if it exists
             					$this->addCustomTag('<!--[if lt IE 9]><link rel="stylesheet" href="'.JURI::base(true).'/components/com_phocagallery/assets/js/boxplus/css/boxplus.'.$tmpl['boxplus_theme'].'.ie8.css" type="text/css" title="boxplus-'.$tmpl['boxplus_theme'].'" /><![endif]-->');
             				}
             				
             				$document->addScriptDeclaration('window.addEvent("domready", function () {');
             				
             				if ($tmpl['detail_window'] == 10) {
             					// Image
             					$document->addScriptDeclaration('new boxplus($$("a.phocagallerycboxplus"),{"theme":"'.$tmpl['boxplus_theme'].'","autocenter":'.(int)$tmpl['boxplus_bautocenter'].',"autofit":'.(int)$tmpl['boxplus_autofit'].',"slideshow":'.(int)$tmpl['boxplus_slideshow'].',"loop":'.(int)$tmpl['boxplus_loop'].',"captions":"'.$tmpl['boxplus_captions'].'","thumbs":"'.$tmpl['boxplus_thumbs'].'","width":'.(int)$popup_width.',"height":'.(int)$popup_height.',"duration":'.(int)$tmpl['boxplus_duration'].',"transition":"'.$tmpl['boxplus_transition'].'","contextmenu":'.(int)$tmpl['boxplus_contextmenu'].', phocamethod:1});');
             					
             					// Icon
             					$document->addScriptDeclaration('new boxplus($$("a.phocagallerycboxplusi"),{"theme":"'.$tmpl['boxplus_theme'].'","autocenter":'.(int)$tmpl['boxplus_bautocenter'].',"autofit":'.(int)$tmpl['boxplus_autofit'].',"slideshow":'.(int)$tmpl['boxplus_slideshow'].',"loop":'.(int)$tmpl['boxplus_loop'].',"captions":"'.$tmpl['boxplus_captions'].'","thumbs":"hide","width":'.(int)$popup_width.',"height":'.(int)$popup_height.',"duration":'.(int)$tmpl['boxplus_duration'].',"transition":"'.$tmpl['boxplus_transition'].'","contextmenu":'.(int)$tmpl['boxplus_contextmenu'].', phocamethod:1});');
             					
             				} else {
             					// Image
             					$document->addScriptDeclaration('new boxplus($$("a.phocagallerycboxplus"),{"theme":"'.$tmpl['boxplus_theme'].'","autocenter":'.(int)$tmpl['boxplus_bautocenter'].',"autofit": false,"slideshow": false,"loop":false,"captions":"none","thumbs":"hide","width":'.(int)$popup_width.',"height":'.(int)$popup_height.',"duration":0,"transition":"linear","contextmenu":false, phocamethod:2});');
             				
             					// Icon
             					$document->addScriptDeclaration('new boxplus($$("a.phocagallerycboxplusi"),{"theme":"'.$tmpl['boxplus_theme'].'","autocenter":'.(int)$tmpl['boxplus_bautocenter'].',"autofit": false,"slideshow": false,"loop":false,"captions":"none","thumbs":"hide","width":'.(int)$popup_width.',"height":'.(int)$popup_height.',"duration":0,"transition":"linear","contextmenu":false, phocamethod:2});');
             				}
             				
             				// Other (Map, Info, Download)
             				$document->addScriptDeclaration('new boxplus($$("a.phocagallerycboxpluso"),{"theme":"'.$tmpl['boxplus_theme'].'","autocenter":'.(int)$tmpl['boxplus_bautocenter'].',"autofit": false,"slideshow": false,"loop":false,"captions":"none","thumbs":"hide","width":'.(int)$popup_width.',"height":'.(int)$popup_height.',"duration":0,"transition":"linear","contextmenu":false, phocamethod:2});');
             				
             				$document->addScriptDeclaration('});');
             			}
             			*/
             // Random Number - because of more modules on the site
             $randName = 'PhocaGalleryPl' . substr(md5(uniqid(time())), 0, 8);
             //$randName2	= 'PhocaGalleryRIM2' . substr(md5(uniqid(time())), 0, 8);
             $btn->jakRandName = 'optgjaksPl' . $randName;
             $btn->setButtons($tmpl['detail_window'], $libraries, $library);
             $button = $btn->getB1();
             $button2 = $btn->getB2();
             $buttonOther = $btn->getB3();
             //krumo($tmpl['detail_window']);
             $tmpl['highslideonclick'] = '';
             // for using with highslide
             if (isset($button->highslideonclick)) {
                 $tmpl['highslideonclick'] = $button->highslideonclick;
                 // TODO
             }
             $tmpl['highslideonclick2'] = '';
             if (isset($button->highslideonclick2)) {
                 $tmpl['highslideonclick2'] = $button->highslideonclick2;
                 // TODO
             }
             $folderButton = new JObject();
             $folderButton->set('name', 'image');
             $folderButton->set('options', "");
             // End open window parameters
             // ===============================
             // OUTPUT
             // ===============================
             $output = '';
             $output .= '<div class="phocagallery">' . "\n";
             //--------------------------
             // DISPLAYING OF CATEGORIES (link doesn't work if there is no menu link)
             //--------------------------
             $hideCat = trim($hide_categories);
             $hideCatArray = explode(',', $hide_categories);
             $hideCatSql = '';
             if (is_array($hideCatArray)) {
                 foreach ($hideCatArray as $value) {
                     $hideCatSql .= ' AND cc.id != ' . (int) trim($value) . ' ';
                 }
             }
             // by vogo
             $uniqueCatSql = '';
             if ($catid > 0) {
                 $uniqueCatSql = ' AND cc.id = ' . $catid . '';
             }
             if ($view == 'categories') {
                 //CATEGORIES
                 $queryc = 'SELECT cc.*, a.catid, COUNT(a.id) AS numlinks,' . ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(\':\', cc.id, cc.alias) ELSE cc.id END as slug' . ' FROM #__phocagallery_categories AS cc' . ' LEFT JOIN #__phocagallery AS a ON a.catid = cc.id' . ' WHERE a.published = 1' . ' AND cc.published = 1' . ' AND cc.approved = 1' . ' AND a.approved = 1' . $hideCatSql . $uniqueCatSql . ' GROUP BY cc.id' . ' ORDER BY cc.ordering';
                 //SUBCATEGORIES
                 $querysc = 'SELECT cc.title AS text, cc.id AS value, cc.parent_id as parentid' . ' FROM #__phocagallery_categories AS cc' . ' WHERE cc.published = 1' . ' AND cc.approved = 1' . ' ORDER BY cc.ordering';
                 $data_outcome = '';
                 $data_outcome_array = '';
                 $db->setQuery($queryc);
                 $outcome_data = $db->loadObjectList();
                 $db->setQuery($querysc);
                 $outcome_subcategories = $db->loadObjectList();
                 $tree = array();
                 $text = '';
                 $tree = PhocaGalleryCategory::CategoryTreeOption($outcome_subcategories, $tree, 0, $text, -1);
                 foreach ($tree as $key => $value) {
                     foreach ($outcome_data as $key2 => $value2) {
                         if ($value->value == $value2->id) {
                             $data_outcome = new JObject();
                             $data_outcome->id = $value2->id;
                             $data_outcome->parent_id = $value2->parent_id;
                             $data_outcome->title = $value->text;
                             $data_outcome->name = $value2->name;
                             $data_outcome->alias = $value2->alias;
                             $data_outcome->image = $value2->image;
                             $data_outcome->section = $value2->section;
                             $data_outcome->image_position = $value2->image_position;
                             $data_outcome->description = $value2->description;
                             $data_outcome->published = $value2->published;
                             $data_outcome->editor = $value2->editor;
                             $data_outcome->ordering = $value2->ordering;
                             $data_outcome->access = $value2->access;
                             $data_outcome->accessuserid = $value2->accessuserid;
                             $data_outcome->uploaduserid = $value2->uploaduserid;
                             $data_outcome->deleteuserid = $value2->deleteuserid;
                             $data_outcome->count = $value2->count;
                             $data_outcome->params = $value2->params;
                             $data_outcome->catid = $value2->catid;
                             $data_outcome->numlinks = $value2->numlinks;
                             $data_outcome->slug = $value2->slug;
                             $data_outcome->link = '';
                             $data_outcome->filename = '';
                             $data_outcome->linkthumbnailpath = '';
                             $data_outcome->extm = '';
                             $data_outcome->exts = '';
                             $data_outcome->extw = '';
                             $data_outcome->exth = '';
                             $data_outcome->extid = '';
                             //FILENAME
                             $queryfn = 'SELECT filename, extm, exts, extw, exth, extid' . ' FROM #__phocagallery' . ' WHERE catid=' . $value2->id . ' AND published = 1' . ' AND approved = 1' . ' ORDER BY ordering LIMIT 1';
                             $db->setQuery($queryfn);
                             $outcome_filename = $db->loadObjectList();
                             $data_outcome->filename = $outcome_filename[0]->filename;
                             $data_outcome->extm = $outcome_filename[0]->extm;
                             $data_outcome->exts = $outcome_filename[0]->exts;
                             $data_outcome->extw = $outcome_filename[0]->extw;
                             $data_outcome->exth = $outcome_filename[0]->exth;
                             $data_outcome->extid = $outcome_filename[0]->extid;
                             $data_outcome_array[] = $data_outcome;
                         }
                     }
                 }
                 if ($img_cat == 1) {
                     $medium_image_height = $medium_image_height + 18;
                     $medium_image_width = $medium_image_width + 18;
                     $small_image_width = $small_image_width + 18;
                     $small_image_height = $small_image_height + 18;
                     $output .= '<table border="0">';
                     foreach ($data_outcome_array as $category) {
                         // ROUTE
                         $category->link = JRoute::_(PhocaGalleryRoute::getCategoryRoute($category->id, $category->alias));
                         $imgCatSizeHelper = 'small';
                         $mediumCSS = '';
                         //'background: url(\''.JURI::base(true).'/media/com_phocagallery/images/shadow1.png\') 50% 50% no-repeat;height:'.$medium_image_height	.'px;width:'.$medium_image_width.'px;';
                         $smallCSS = '';
                         //'background: url(\''.JURI::base(true).'/media/com_phocagallery/images/shadow3.png\') 50% 50% no-repeat;height:'.$small_image_height	.'px;width:'.$small_image_width.'px;';
                         switch ($img_cat_size) {
                             case 7:
                             case 5:
                                 $imageBg = $mediumCSS;
                                 break;
                             case 6:
                             case 4:
                                 $imageBg = $smallCSS;
                                 break;
                             default:
                                 $imageBg = '';
                                 break;
                         }
                         // Display Key Icon (in case we want to display unaccessable categories in list view)
                         $rightDisplayKey = 1;
                         // we simulate that we want not to display unaccessable categories
                         // so we get rightDisplayKey = 0 then the key will be displayed
                         if (isset($category)) {
                             //$rightDisplayKey = PhocaGalleryAccess::getUserRight ('accessuserid', $category->accessuserid ,$category->access, $user->get('aid', 0), $user->get('id', 0), 0);
                             $rightDisplayKey = PhocaGalleryAccess::getUserRight('accessuserid', $category->accessuserid, $category->access, $user->getAuthorisedViewLevels(), $user->get('id', 0), 0);
                         }
                         if (isset($category->extid) && $category->extid != '') {
                             $file_thumbnail = PhocaGalleryImageFront::displayCategoriesExtImgOrFolder($category->exts, $category->extm, $category->extw, $category->exth, (int) $img_cat_size, $rightDisplayKey);
                             $category->linkthumbnailpath = $file_thumbnail->rel;
                             $category->extw = $file_thumbnail->extw;
                             $category->exth = $file_thumbnail->exth;
                             $category->extpic = $file_thumbnail->extpic;
                         } else {
                             $file_thumbnail = PhocaGalleryImageFront::displayCategoriesImageOrFolder($category->filename, (int) $img_cat_size, $rightDisplayKey);
                             $category->linkthumbnailpath = $file_thumbnail->rel;
                         }
                         //Output
                         $output .= '<tr>' . '<td align="center" valign="middle" style="' . $imageBg . '"><a href="' . $category->link . '">';
                         if (isset($category->extpic) && $category->extpic != '') {
                             $correctImageRes = PhocaGalleryPicasa::correctSizeWithRate($category->extw, $category->exth, $tmpl['picasa_correct_width'], $tmpl['picasa_correct_height']);
                             $output .= '<img class="pg-image" src="' . $category->linkthumbnailpath . '" alt="' . $category->title . '" style="border:0" width="' . $correctImageRes['width'] . '" height="' . $correctImageRes['height'] . '" />';
                         } else {
                             $output .= '<img class="pg-image" src="' . JURI::base(true) . '/' . $category->linkthumbnailpath . '" alt="' . $category->title . '" style="border:0" />';
                         }
                         $output .= '</a></td>' . '<td><a href="' . $category->link . '" class="category' . $this->params->get('pageclass_sfx') . '">' . $category->title . '</a>&nbsp;' . '<span class="small">(' . $category->numlinks . ')</span></td>' . '</tr>';
                     }
                     $output .= '</table>';
                 } else {
                     $output .= '<ul>';
                     foreach ($data_outcome_array as $category) {
                         // ROUTE
                         $category->link = JRoute::_(PhocaGalleryRoute::getCategoryRoute($category->id, $category->alias));
                         $output .= '<li>' . '<a href="' . $category->link . '" class="category' . $this->params->get('pageclass_sfx') . '">' . $category->title . '</a>&nbsp;<span class="small">(' . $category->numlinks . ')</span>' . '</li>';
                     }
                     $output .= '</ul>';
                 }
             }
             //-----------------------
             // DISPLAYING OF IMAGES
             //-----------------------
             if ($view == 'category') {
                 $where = '';
                 // Only one image
                 if ($imageid > 0) {
                     $where = ' AND a.id = ' . $imageid;
                 }
                 // Random image
                 if ($imagerandom == 1 && $catid > 0) {
                     $query = 'SELECT id' . ' FROM #__phocagallery' . ' WHERE catid = ' . (int) $catid . ' AND published = 1' . ' AND approved = 1' . ' ORDER BY RAND()';
                     $db->setQuery($query);
                     $idQuery =& $db->loadObject();
                     if (!empty($idQuery)) {
                         $where = ' AND a.id = ' . $idQuery->id;
                     }
                 }
                 $limit = '';
                 // Count of images (LIMIT 0, 20)
                 if ($limitcount > 0) {
                     $limit = ' LIMIT ' . $limitstart . ', ' . $limitcount;
                 }
                 /*	$query = 'SELECT *' .
                 			' FROM #__phocagallery' .
                 			' WHERE catid = '.(int) $catid .
                 			' AND published = 1' . $where .
                 			' ORDER BY ordering' . $limit;*/
                 if ($tmpl['imageordering'] == 9) {
                     $imageOrdering = ' ORDER BY RAND()';
                 } else {
                     $iOA = PhocaGalleryOrdering::getOrderingString($tmpl['imageordering']);
                     $imageOrdering = $iOA['output'];
                 }
                 $query = 'SELECT cc.id, cc.alias as catalias, a.id, a.catid, a.title, a.alias, a.filename, a.description, a.extm, a.exts, a.extw, a.exth, a.extid, a.extl, a.exto,' . ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(\':\', cc.id, cc.alias) ELSE cc.id END as catslug, ' . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug' . ' FROM #__phocagallery_categories AS cc' . ' LEFT JOIN #__phocagallery AS a ON a.catid = cc.id' . ' WHERE a.catid = ' . (int) $catid . ' AND a.published = 1' . ' AND a.approved = 1' . ' AND cc.published = 1' . ' AND cc.approved = 1' . $where . $imageOrdering . $limit;
                 $db->setQuery($query);
                 $category = $db->loadObjectList();
                 /*	// current category info
                 				$query = 'SELECT c.*,' .
                 					' CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(\':\', c.id, c.alias) ELSE c.id END as catslug '.
                 					' FROM #__phocagallery_categories AS c' .
                 					' WHERE c.id = '. (int) $catid;
                 				//	' AND c.section = "com_phocagallery"';
                 	
                 				$db->setQuery($query, 0, 1);
                 				$category_info = $db->loadObject();*/
                 // Output
                 $iI = 0;
                 foreach ($category as $image) {
                     // PicLens CATEGORY - loaded every time new category will be displayed on the site---------
                     if ((int) $enable_piclens > 0) {
                         $libName = 'pg-piclens-' . $image->catid;
                         $libraries[$libName] = $library->getLibrary($libName);
                         if ($libraries[$libName]->value == 0) {
                             $document->addCustomTag("<link id=\"phocagallerypiclens\" rel=\"alternate\" href=\"" . JURI::base(true) . "/images/phocagallery/" . $image->catid . ".rss\" type=\"application/rss+xml\" title=\"\" />");
                             $library->setLibrary($libName, 1);
                         }
                         // PicLens CSS - will be loaded only one time per site
                         $libraries[$libName] = $library->getLibrary('pg-pl-piclens');
                         if ($libraries['pg-pl-piclens']->value == 0) {
                             $document->addScript('http://lite.piclens.com/current/piclens.js');
                             $document->addCustomTag("<style type=\"text/css\">\n" . " .mbf-item { display: none; }\n" . " #phocagallery .mbf-item { display: none; }\n" . " </style>\n");
                             $library->setLibrary('pg-pl-piclens', 1);
                         }
                     }
                     // END PICLENS -----------------------------------------------------------------------------
                     // PICASA - - - - -
                     if ($image->extw != '') {
                         $extw = explode(',', $image->extw);
                         if ($plugin_type == 1) {
                             $image->extw = $extw[2];
                             //small
                         } else {
                             if ($plugin_type == 2) {
                                 $image->extw = $extw[0];
                                 //large
                             } else {
                                 $image->extw = $extw[1];
                                 //medium
                             }
                         }
                         $image->extwswitch = $extw[0];
                         //used for correcting switch
                     }
                     if ($image->exth != '') {
                         $exth = explode(',', $image->exth);
                         if ($plugin_type == 1) {
                             $image->exth = $exth[2];
                             //small
                         } else {
                             if ($plugin_type == 2) {
                                 $image->exth = $exth[0];
                                 //large
                             } else {
                                 $image->exth = $exth[1];
                                 //medium
                             }
                         }
                         $image->exthswitch = $exth[0];
                         //used for correcting switch
                     }
                     // - - - - - - - - -
                     $image->slug = $image->id . '-' . $image->alias;
                     // Get file thumbnail or No Image
                     $image->linkthumbnailpath = PhocaGalleryImageFront::displayCategoryImageOrNoImage($image->filename, $imgSize);
                     $file_thumbnail = PhocaGalleryFileThumbnail::getThumbnailName($image->filename, $imgSize);
                     $image->linkthumbnailpathabs = $file_thumbnail->abs;
                     // ROUTE
                     //$siteLink = JRoute::_(PhocaGalleryRoute::getImageRoute($image->id, $image->catid, $image->alias, $image->catalias, 'detail', 'tmpl=component&detail='.$tmpl['detail_window'].'&buttons='.$detail_buttons );
                     // Different links for different actions: image, zoom icon, download icon
                     $thumbLink = PhocaGalleryFileThumbnail::getThumbnailName($image->filename, 'large');
                     $thumbLinkM = PhocaGalleryFileThumbnail::getThumbnailName($image->filename, 'medium');
                     // ROUTE
                     if ($tmpl['detail_window'] == 7) {
                         $suffix = 'detail=' . $tmpl['detail_window'] . '&buttons=' . $detail_buttons;
                     } else {
                         $suffix = 'tmpl=component&detail=' . $tmpl['detail_window'] . '&buttons=' . $detail_buttons;
                     }
                     $siteLink = JRoute::_(PhocaGalleryRoute::getImageRoute($image->id, $image->catid, $image->alias, $image->catalias, 'detail', $suffix));
                     $imgLinkOrig = JURI::base(true) . '/' . PhocaGalleryFile::getFileOriginal($image->filename, 1);
                     $imgLink = $thumbLink->rel;
                     if (isset($image->extid) && $image->extid != '') {
                         $imgLink = $image->extl;
                         $imgLinkOrig = $image->exto;
                     }
                     // Different Link - to all categories
                     if ((int) $tmpl['pluginlink'] == 2) {
                         $siteLink = $imgLinkOrig = $imgLink = PhocaGalleryRoute::getCategoriesRoute();
                     } else {
                         if ((int) $tmpl['pluginlink'] == 1) {
                             $siteLink = $imgLinkOrig = $imgLink = PhocaGalleryRoute::getCategoryRoute($image->catid, $image->catalias);
                         }
                     }
                     if ($tmpl['detail_window'] == 2) {
                         $image->link = $imgLink;
                         $image->link2 = $imgLink;
                         $image->linkother = $siteLink;
                         $image->linkorig = $imgLinkOrig;
                     } else {
                         if ($tmpl['detail_window'] == 3) {
                             $image->link = $imgLink;
                             $image->link2 = $imgLink;
                             $image->linkother = $siteLink;
                             $image->linkorig = $imgLinkOrig;
                         } else {
                             if ($tmpl['detail_window'] == 5) {
                                 $image->link = $imgLink;
                                 $image->link2 = $siteLink;
                                 $image->linkother = $siteLink;
                                 $image->linkorig = $imgLinkOrig;
                             } else {
                                 if ($tmpl['detail_window'] == 6) {
                                     $image->link = $imgLink;
                                     $image->link2 = $imgLink;
                                     $image->linkother = $siteLink;
                                     $image->linkorig = $imgLinkOrig;
                                     // jak data js
                                     switch ($tmpl['jakdescription']) {
                                         case 0:
                                             $descriptionJakJs = '';
                                             break;
                                         case 2:
                                             $descriptionJakJs = PhocaGalleryText::strTrimAll(addslashes($image->description));
                                             break;
                                         case 3:
                                             $descriptionJakJs = PhocaGalleryText::strTrimAll(addslashes($image->title));
                                             if ($image->description != '') {
                                                 $descriptionJakJs .= '<br />' . PhocaGalleryText::strTrimAll(addslashes($image->description));
                                             }
                                             break;
                                         case 1:
                                         default:
                                             $descriptionJakJs = PhocaGalleryText::strTrimAll(addslashes($image->title));
                                             break;
                                     }
                                     $image->linknr = $iI;
                                     $tmpl['jakdatajs'][$iI] = "{alt: '" . PhocaGalleryText::strTrimAll(addslashes($image->title)) . "',";
                                     if ($descriptionJakJs != '') {
                                         $tmpl['jakdatajs'][$iI] .= "description: '" . $descriptionJakJs . "',";
                                     } else {
                                         $tmpl['jakdatajs'][$iI] .= "description: ' ',";
                                     }
                                     if (isset($image->extid) && $image->extid != '') {
                                         $tmpl['jakdatajs'][$iI] .= "small: {url: '" . $image->extm . "'}," . "big: {url: '" . $image->extl . "'} }";
                                     } else {
                                         $tmpl['jakdatajs'][$iI] .= "small: {url: '" . htmlentities(JURI::base(true) . '/' . PhocaGalleryText::strTrimAll(addslashes($thumbLinkM->rel))) . "'}," . "big: {url: '" . htmlentities(JURI::base(true) . '/' . PhocaGalleryText::strTrimAll(addslashes($imgLink))) . "'} }";
                                     }
                                 } else {
                                     if ($tmpl['detail_window'] == 8) {
                                         $image->link = $imgLink;
                                         $image->link2 = $imgLink;
                                         $image->linkother = $imgLink;
                                         $image->linkorig = $imgLinkOrig;
                                     } else {
                                         if ($tmpl['detail_window'] == 9) {
                                             $image->link = $siteLink;
                                             $image->link2 = $siteLink;
                                             $image->linkother = $siteLink;
                                             $image->linkorig = $imgLinkOrig;
                                         } else {
                                             if ($tmpl['detail_window'] == 10) {
                                                 $image->link = $imgLink;
                                                 $image->link2 = $imgLink;
                                                 $image->linkother = $siteLink;
                                                 $image->linkorig = $imgLinkOrig;
                                             } else {
                                                 $image->link = $siteLink;
                                                 $image->link2 = $siteLink;
                                                 $image->linkother = $siteLink;
                                                 $image->linkorig = $imgLinkOrig;
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                     // Different types
                     switch ($plugin_type) {
                         case 1:
                         case 2:
                             if (JFile::exists($image->linkthumbnailpathabs)) {
                                 list($width, $height) = GetImageSize($image->linkthumbnailpathabs);
                                 $imageOrigHeight = $height;
                                 $imageOrigWidth = $width;
                             }
                             if ($float == '') {
                                 $float = 'left';
                             }
                             $output .= '<div style="float:' . $float . ';padding:' . (int) $padding_mosaic . 'px;">' . "\n";
                             $output .= '<a class="' . $button->methodname . '" title="' . $image->title . '" href="' . JRoute::_($image->link) . '"';
                             if ($tmpl['detail_window'] == 1) {
                                 $output .= ' onclick="' . $button->options . '"';
                             } else {
                                 if ($tmpl['detail_window'] == 4 || $tmpl['detail_window'] == 5) {
                                     $highSlideOnClick = str_replace('[phocahsfullimg]', $image->linkorig, $tmpl['highslideonclick']);
                                     $output .= ' onclick="' . $highSlideOnClick . '"';
                                 } else {
                                     if ($tmpl['detail_window'] == 6) {
                                         $output .= ' onclick="gjaksMod' . $randName . '.show(' . $image->linknr . '); return false;"';
                                     } else {
                                         if ($tmpl['detail_window'] == 7) {
                                             $output .= '';
                                         } else {
                                             if ($tmpl['detail_window'] == 8) {
                                                 $output .= ' rel="lightbox-' . $randName . '" ';
                                             } else {
                                                 $output .= ' rel="' . $button->options . '"';
                                             }
                                         }
                                     }
                                 }
                             }
                             $output .= ' >' . "\n";
                             if (isset($image->extid) && $image->extid != '') {
                                 if ($plugin_type == 1) {
                                     $correctImageRes = PhocaGalleryPicasa::correctSizeWithRate($image->extw, $image->exth, $small_image_width, $small_image_height);
                                     $imgLink = $image->exts;
                                 } else {
                                     $correctImageRes = PhocaGalleryPicasa::correctSizeWithRate($image->extw, $image->exth, $large_image_width, $large_image_height);
                                     $imgLink = $image->extl;
                                 }
                                 $output .= '<img class="pg-image"  src="' . $imgLink . '" alt="' . $image->title . '" width="' . $correctImageRes['width'] . '" height="' . $correctImageRes['height'] . '" />';
                             } else {
                                 $output .= '<img class="pg-image"  src="' . JURI::base(true) . '/' . $image->linkthumbnailpath . '" alt="' . $image->title . '" width="' . $imageOrigWidth . '" height="' . $imageOrigHeight . '" />';
                             }
                             $output .= '</a>';
                             if ($tmpl['detail_window'] == 5) {
                                 if ($tmpl['highslidedescription'] == 1 || $tmpl['highslidedescription'] == 3) {
                                     $output .= '<div class="highslide-heading">';
                                     $output .= $image->title;
                                     $output .= '</div>';
                                 }
                                 if ($tmpl['highslidedescription'] == 2 || $tmpl['highslidedescription'] == 3) {
                                     $output .= '<div class="highslide-caption">';
                                     $output .= $image->description;
                                     $output .= '</div>';
                                 }
                             }
                             //$output .= '</div>';
                             break;
                         case 0:
                         default:
                             // Float
                             $float_code = '';
                             if ($float != '') {
                                 $float_code = 'position:relative;float:' . $float . ';';
                             }
                             // Maximum size of module image is 100 x 100
                             jimport('joomla.filesystem.file');
                             $imageWidth['size'] = (int) $medium_image_width;
                             //100;
                             $imageHeight['size'] = (int) $medium_image_height;
                             $imageHeight['boxsize'] = (int) $medium_image_height;
                             $imageWidth['boxsize'] = (int) $medium_image_width + 20;
                             //120;
                             $imageOrigHeight = (int) $medium_image_height;
                             $imageOrigWidth = (int) $medium_image_width;
                             //100;
                             if (isset($image->extid) && $image->extid != '') {
                                 list($width, $height) = @getimagesize($image->extm);
                                 $correctImageRes = PhocaGalleryPicasa::correctSizeWithRate($image->extw, $image->exth, $medium_image_width, $medium_image_height);
                                 $imageOrigWidth = $correctImageRes['width'];
                                 $imageOrigHeight = $correctImageRes['height'];
                             } else {
                                 if (JFile::exists($image->linkthumbnailpathabs)) {
                                     list($width, $height) = GetImageSize($image->linkthumbnailpathabs);
                                     $imageHeight = PhocaGalleryImage::correctSize($height, $imageHeight['size'], $imageHeight['boxsize'], 0);
                                     $imageWidth = PhocaGalleryImage::correctSize($width, $imageWidth['size'], $imageWidth['boxsize'], 20);
                                     $imageOrigHeight = $height;
                                     $imageOrigWidth = $width;
                                 }
                             }
                             if ((int) $minimum_box_width > 0) {
                                 $imageWidth['boxsize'] = $minimum_box_width;
                             }
                             $tmpl['boxsize'] = PhocaGalleryImage::setBoxSize($tmpl, 2);
                             // PARAMS - Background shadow
                             /*if ( $image_background_shadow != 'none' ) {	
                             			// IE hack
                             			$shadowPath = $path->image_abs_front . $image_background_shadow.'.'.$tmpl['formaticon'];
                             			
                             			$shadowSize	= @getimagesize($shadowPath);
                             			if (isset($shadowSize[0]) && isset($shadowSize[0])) {
                             			
                             				$w = (int)$medium_image_width + 18 - (int)$shadowSize[0];
                             				$h = (int)$medium_image_height + 18 - (int)$shadowSize[1];
                             				
                             				if ($w != 0) {$w = $w/2;} // plus or minus should be divided, not null
                             				if ($h != 0) {$h = $h/2;}
                             			} else {
                             				$w = $h = 0;
                             			}
                             			$imageBgCSS = '';//'background: url(\''.JURI::base(true).'/media/com_phocagallery/images/'.$image_background_shadow.'.png\') 50% 50% no-repeat;';
                             			
                             			$imageBgCSSIE = '';//'background: url(\''.JURI::base(true).'/media/com_phocagallery/images/'.$image_background_shadow.'.png\') '.$w.'px '.$h.'px no-repeat;';
                             			$imageHeight['size'] 	= $tmpl['boxsize']['height'] + 18;
                             		$imageWidth['size'] 	= $imageWidth['size'] + 18;
                             		
                             		} else {
                             			$imageBgCSS = '';//'background: '.$image_background_color .';';
                             			$imageBgCSSIE = '';//'background: '.$image_background_color .';';
                             			
                             		}*/
                             $tmpl['boxsize']['height'] = $tmpl['boxsize']['height'] + 18;
                             $tmpl['boxsize']['width'] = $tmpl['boxsize']['width'] + 18;
                             // TODO
                             // After IE will be standard browser (no IE7 will be used)
                             // change $imageBgCSSIE to $imageBgCSS
                             $output .= '<div class="phocagallery-box-file pgplugin' . $iCss . '" style="height:' . $tmpl['boxsize']['height'] . 'px; width:' . $tmpl['boxsize']['width'] . 'px;' . $float_code . 'margin: ' . $margin_box . 'px;padding: ' . $padding_box . 'px;">' . "\n" . '<center>' . "\n" . '<div class="phocagallery-box-file-first" style="height: ' . $imageHeight['size'] . 'px; width: ' . $imageWidth['size'] . 'px;">' . "\n" . '<div class="phocagallery-box-file-second" >' . "\n" . '<div class="phocagallery-box-file-third" >' . "\n" . '<center style="margin-top: 10px;">' . "\n" . '<a class="' . $button->methodname . '"';
                             if ($enable_overlib == 0) {
                                 $output .= ' title="' . $image->title . '"';
                             }
                             $output .= ' href="' . JRoute::_($image->link) . '"';
                             // DETAIL WINDOW
                             if ($tmpl['detail_window'] == 1) {
                                 $output .= ' onclick="' . $button->options . '"';
                             } else {
                                 if ($tmpl['detail_window'] == 4 || $tmpl['detail_window'] == 5) {
                                     $highSlideOnClick = str_replace('[phocahsfullimg]', $image->linkorig, $tmpl['highslideonclick']);
                                     $output .= ' onclick="' . $highSlideOnClick . '"';
                                 } else {
                                     if ($tmpl['detail_window'] == 6) {
                                         $output .= ' onclick="gjaksPl' . $randName . '.show(' . $image->linknr . '); return false;"';
                                     } else {
                                         if ($tmpl['detail_window'] == 7) {
                                             $output .= '';
                                         } else {
                                             if ($tmpl['detail_window'] == 8) {
                                                 $output .= ' rel="lightbox-' . $randName . '" ';
                                             } else {
                                                 $output .= ' rel="' . $button->options . '"';
                                             }
                                         }
                                     }
                                 }
                             }
                             // Enable the switch image
                             if ($enable_switch == 1) {
                                 // Picasa
                                 if ($image->extl != '') {
                                     if ((int) $switch_width > 0 && (int) $switch_height > 0 && $switch_fixed_size == 1) {
                                         // Custom Size
                                         $output .= ' onmouseover="PhocaGallerySwitchImage(\'PhocaGalleryobjectPicture\', \'' . $image->extl . '\', ' . $switch_width . ', ' . $switch_height . ');" ';
                                     } else {
                                         // Picasa Size
                                         $correctImageResL = PhocaGalleryPicasa::correctSizeWithRate($image->extwswitch, $image->exthswitch, $switch_width, $switch_height);
                                         $output .= ' onmouseover="PhocaGallerySwitchImage(\'PhocaGalleryobjectPicture\', \'' . $image->extl . '\', ' . $correctImageResL['width'] . ', ' . $correctImageResL['height'] . ');" ';
                                         // onmouseout="PhocaGallerySwitchImage(\'PhocaGalleryobjectPicture\', \''.$image->extl.'\');"
                                     }
                                 } else {
                                     $switchImg = str_replace('phoca_thumb_m_', 'phoca_thumb_l_', JURI::base(true) . '/' . $image->linkthumbnailpath);
                                     if ((int) $switch_width > 0 && (int) $switch_height > 0 && $switch_fixed_size == 1) {
                                         $output .= ' onmouseover="PhocaGallerySwitchImage(\'PhocaGalleryobjectPicture\', \'' . $switchImg . '\', ' . $switch_width . ', ' . $switch_height . ');" ';
                                     } else {
                                         $output .= ' onmouseover="PhocaGallerySwitchImage(\'PhocaGalleryobjectPicture\', \'' . $switchImg . '\');" ';
                                         // onmouseout="PhocaGallerySwitchImage(\'PhocaGalleryobjectPicture\', \''.$switchImg.'\');"
                                     }
                                 }
                             } else {
                                 // Overlib
                                 if (!empty($image->description)) {
                                     $divPadding = 'padding:5px;';
                                 } else {
                                     $divPadding = 'padding:0px;margin:0px;';
                                 }
                                 $document->addScript(JURI::base(true) . '/components/com_phocagallery/assets/overlib/overlib_mini.js');
                                 $opacityPer = $opacityPer = (double) $tmpl['overliboverlayopacity'] * 100;
                                 if ($libraries['pg-overlib-group']->value == 0) {
                                     $document->addCustomTag("<style type=\"text/css\">\n" . ".bgPhocaClass{\r\n\t\t\t\t\t\t\t\t\t\tbackground:" . $tmpl['olbgcolor'] . ";\r\n\t\t\t\t\t\t\t\t\t\tfilter:alpha(opacity=" . $opacityPer . ");\r\n\t\t\t\t\t\t\t\t\t\topacity: " . $tmpl['overliboverlayopacity'] . ";\r\n\t\t\t\t\t\t\t\t\t\t-moz-opacity:" . $tmpl['overliboverlayopacity'] . ";\r\n\t\t\t\t\t\t\t\t\t\tz-index:1000;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t.fgPhocaClass{\r\n\t\t\t\t\t\t\t\t\t\tbackground:" . $tmpl['olfgcolor'] . ";\r\n\t\t\t\t\t\t\t\t\t\tfilter:alpha(opacity=100);\r\n\t\t\t\t\t\t\t\t\t\topacity: 1;\r\n\t\t\t\t\t\t\t\t\t\t-moz-opacity:1;\r\n\t\t\t\t\t\t\t\t\t\tz-index:1000;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t.fontPhocaClass{\r\n\t\t\t\t\t\t\t\t\t\tcolor:" . $tmpl['oltfcolor'] . ";\r\n\t\t\t\t\t\t\t\t\t\tz-index:1001;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t.capfontPhocaClass, .capfontclosePhocaClass{\r\n\t\t\t\t\t\t\t\t\t\tcolor:" . $tmpl['olcfcolor'] . ";\r\n\t\t\t\t\t\t\t\t\t\tfont-weight:bold;\r\n\t\t\t\t\t\t\t\t\t\tz-index:1001;\r\n\t\t\t\t\t\t\t\t\t\t}" . " </style>\n");
                                     $library->setLibrary('pg-overlib-group', 1);
                                 }
                                 if (isset($image->extid) && $image->extid != '') {
                                     // SIZE WILL BE NOT CORRECTED
                                     $oImg = JHTML::_('image', $image->extl, $image->title);
                                 } else {
                                     $oImg = JHTML::_('image', str_replace('phoca_thumb_m_', 'phoca_thumb_l_', $image->linkthumbnailpath), $image->title);
                                 }
                                 /*
                                 								if ($enable_overlib == 1) { 
                                 									$output .=  " onmouseover=\"return overlib('".htmlspecialchars( addslashes('<center>' . $oImg . "</center>"))."', CAPTION, '". $image->title."', BELOW, RIGHT, BGCLASS,'bgPhocaClass', FGCOLOR, '".$tmpl['olfgcolor']."', BGCOLOR, '".$tmpl['olbgcolor']."', TEXTCOLOR, '".$tmpl['oltfcolor']."', CAPCOLOR, '".$tmpl['olcfcolor']."');\""
                                 									. " onmouseout=\"return nd();\" ";
                                 								} else if ($enable_overlib == 2){ 
                                 									$image->description		= str_replace("\n", '<br />', $image->description);
                                 									$output .=  " onmouseover=\"return overlib('".htmlspecialchars( addslashes('<div style="'.$divPadding.'">'.$image->description.'</div>'))."', CAPTION, '". $image->title."', BELOW, RIGHT, CSSCLASS, TEXTFONTCLASS, 'fontPhocaClass', FGCLASS, 'fgPhocaClass', BGCLASS, 'bgPhocaClass', CAPTIONFONTCLASS,'capfontPhocaClass', CLOSEFONTCLASS, 'capfontclosePhocaClass');\""
                                 									. " onmouseout=\"return nd();\" ";				
                                 								} else if ($enable_overlib == 3){ 
                                 									$image->description		= str_replace("\n", '<br />', $image->description);
                                 									$output .=  " onmouseover=\"return overlib('".PhocaGalleryText::strTrimAll(htmlspecialchars( addslashes( '<div style="text-align:center"><center>' . $oImg . '</center></div><div style="'.$divPadding.'">' . $image->description . '</div>')))."', CAPTION, '". $image->title."', BELOW, RIGHT, BGCLASS,'bgPhocaClass', FGCLASS,'fgPhocaClass', FGCOLOR, '".$tmpl['olfgcolor']."', BGCOLOR, '".$tmpl['olbgcolor']."', TEXTCOLOR, '".$tmpl['oltfcolor']."', CAPCOLOR, '".$tmpl['olcfcolor']."');\""
                                 									. " onmouseout=\"return nd();\" ";				
                                 								}*/
                                 switch ($enable_overlib) {
                                     case 1:
                                     case 4:
                                         $uBy = '';
                                         //Uploaded by ...
                                         // TODO
                                         /*
                                         if ($enable_overlib == 4 && isset($items[$iS]->usernameno) && $items[$iS]->usernameno != '') {
                                         	$uBy = '<div>' . JText::_('COM_PHOCAGALLERY_UPLOADED_BY') . ' <strong>'.$items[$iS]->usernameno.'</strong></div>';
                                         	
                                         }
                                         */
                                         $output .= " onmouseover=\"return overlib('" . htmlspecialchars(addslashes('<div class="pg-overlib"><center>' . $oImg . "</center></div>" . $uBy)) . "', CAPTION, '" . htmlspecialchars(addslashes($image->title)) . "', BELOW, RIGHT, BGCLASS,'bgPhocaClass', FGCOLOR, '" . $tmpl['olfgcolor'] . "', BGCOLOR, '" . $tmpl['olbgcolor'] . "', TEXTCOLOR, '" . $tmpl['oltfcolor'] . "', CAPCOLOR, '" . $tmpl['olcfcolor'] . "');\"" . " onmouseout=\"return nd();\" ";
                                         break;
                                     case 2:
                                     case 5:
                                         $uBy = '';
                                         //Uploaded by ...
                                         // TODO
                                         /*
                                         	if ($enable_overlib == 5 && isset($items[$iS]->usernameno) && $items[$iS]->usernameno != '') {
                                         		$uBy = '<div>' . JText::_('COM_PHOCAGALLERY_UPLOADED_BY') . ' <strong>'.$items[$iS]->usernameno.'</strong></div>';
                                         	}*/
                                         $image->description = str_replace("\n", '<br />', $image->description);
                                         $output .= " onmouseover=\"return overlib('" . htmlspecialchars(addslashes('<div class="pg-overlib"><div style="' . $divPadding . '">' . $image->description . '</div></div>' . $uBy)) . "', CAPTION, '" . htmlspecialchars(addslashes($image->title)) . "', BELOW, RIGHT, CSSCLASS, TEXTFONTCLASS, 'fontPhocaClass', FGCLASS, 'fgPhocaClass', BGCLASS, 'bgPhocaClass', CAPTIONFONTCLASS,'capfontPhocaClass', CLOSEFONTCLASS, 'capfontclosePhocaClass');\"" . " onmouseout=\"return nd();\" ";
                                         break;
                                     case 3:
                                     case 6:
                                         $uBy = '';
                                         //Uploaded by ...
                                         // TODO
                                         /*
                                         	if ($enable_overlib == 6 && isset($items[$iS]->usernameno) && $items[$iS]->usernameno != '') {
                                         		$uBy = '<div>' . JText::_('COM_PHOCAGALLERY_UPLOADED_BY') . ' <strong>'.$items[$iS]->usernameno.'</strong></div>';
                                         	}*/
                                         $image->description = str_replace("\n", '<br />', $image->description);
                                         $output .= " onmouseover=\"return overlib('" . PhocaGalleryText::strTrimAll(htmlspecialchars(addslashes('<div class="pg-overlib"><div style="text-align:center"><center>' . $oImg . '</center></div><div style="' . $divPadding . '">' . $image->description . '</div></div>' . $uBy))) . "', CAPTION, '" . htmlspecialchars(addslashes($image->title)) . "', BELOW, RIGHT, BGCLASS,'bgPhocaClass', FGCLASS,'fgPhocaClass', FGCOLOR, '" . $tmpl['olfgcolor'] . "', BGCOLOR, '" . $tmpl['olbgcolor'] . "', TEXTCOLOR, '" . $tmpl['oltfcolor'] . "', CAPCOLOR, '" . $tmpl['olcfcolor'] . "');\"" . " onmouseout=\"return nd();\" ";
                                         break;
                                     default:
                                         break;
                                 }
                             }
                             // End Overlib
                             $output .= ' >' . "\n";
                             if (isset($image->extid) && $image->extid != '') {
                                 $correctImageRes = PhocaGalleryPicasa::correctSizeWithRate($image->extw, $image->exth, $medium_image_width, $medium_image_height);
                                 $output .= '<img class="pg-image"  src="' . $image->extm . '" alt="' . $image->title . '" width="' . $correctImageRes['width'] . '" height="' . $correctImageRes['height'] . '" />';
                             } else {
                                 $output .= '<img class="pg-image"  src="' . JURI::base(true) . '/' . $image->linkthumbnailpath . '" alt="' . $image->title . '" />';
                             }
                             if ((int) $enable_piclens > 0) {
                                 $output .= '<span class="mbf-item">#phocagallerypiclens ' . $image->catid . '-phocagallerypiclenscode-' . $image->filename . '</span>';
                             }
                             $output .= '</a>';
                             if ($tmpl['detail_window'] == 5) {
                                 if ($tmpl['highslidedescription'] == 1 || $tmpl['highslidedescription'] == 3) {
                                     $output .= '<div class="highslide-heading">';
                                     $output .= $image->title;
                                     $output .= '</div>';
                                 }
                                 if ($tmpl['highslidedescription'] == 2 || $tmpl['highslidedescription'] == 3) {
                                     $output .= '<div class="highslide-caption">';
                                     $output .= $image->description;
                                     $output .= '</div>';
                                 }
                             }
                             $output .= '</center>' . "\n" . '</div>' . "\n" . '</div>' . "\n" . '</div>' . "\n" . '</center>' . "\n";
                             if ($tmpl['display_name'] == 1) {
                                 $output .= '<div class="name" style="color: ' . $font_color . ' ;font-size:' . $namefontsize . 'px;margin-top:5px;text-align:center;">' . PhocaGalleryText::wordDelete($image->title, $namenumchar, '...') . '</div>';
                             }
                             if ($tmpl['display_icon_detail'] == 1 || $tmpl['display_icon_download'] > 0 || $enable_piclens == 2) {
                                 $output .= '<div class="detail" style="text-align:right">';
                                 if ($enable_piclens == 2) {
                                     $output .= ' <a href="javascript:PicLensLite.start();" title="PicLens" ><img src="http://lite.piclens.com/images/PicLensButton.png" alt="PicLens" width="16" height="12" border="0" style="margin-bottom:2px" /></a>';
                                 }
                                 if ($tmpl['display_icon_detail'] == 1) {
                                     $output .= ' <a class="' . $button2->methodname . '" title="' . JText::_('PLG_CONTENT_PHOCAGALLERY_IMAGE_DETAIL') . '" href="' . JRoute::_($image->link2) . '"';
                                     // Detail Window
                                     if ($tmpl['detail_window'] == 1) {
                                         $output .= ' onclick="' . $button2->options . '"';
                                     } else {
                                         if ($tmpl['detail_window'] == 2) {
                                             $output .= ' rel="' . $button2->options . '"';
                                         } else {
                                             if ($tmpl['detail_window'] == 4) {
                                                 $output .= ' onclick="' . $tmpl['highslideonclick'] . '"';
                                             } else {
                                                 if ($tmpl['detail_window'] == 5) {
                                                     $output .= ' onclick="' . $tmpl['highslideonclick2'] . '"';
                                                 } else {
                                                     if ($tmpl['detail_window'] == 6) {
                                                         $output .= ' onclick="gjaksPl' . $randName . '.show(' . $image->linknr . '); return false;"';
                                                     } else {
                                                         if ($tmpl['detail_window'] == 7) {
                                                             $output .= '';
                                                         } else {
                                                             if ($tmpl['detail_window'] == 8) {
                                                                 $output .= ' rel="lightbox-' . $randName . '2" ';
                                                             } else {
                                                                 $output .= ' rel="' . $button2->options . '"';
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                     $output .= ' >';
                                     $output .= '<img src="' . JURI::base(true) . '/media/com_phocagallery/images/icon-view.png" alt="' . $image->title . '" />';
                                     $output .= '</a>';
                                 }
                                 if ($tmpl['display_icon_download'] > 0) {
                                     // Direct download set in component
                                     if ((int) $tmpl['display_icon_download'] == 2) {
                                         //$output .= ' <a title="'. JText::_('PLG_CONTENT_PHOCAGALLERY_IMAGE_DOWNLOAD').'" href="'. JRoute::_($image->linkother . '&amp;phocadownload='.(int)$tmpl['display_icon_download']).'"';
                                         $linkD = PhocaGalleryRoute::getImageRoute($image->id, $image->catid, $image->alias, $image->catalias);
                                         $output .= ' <a title="' . JText::_('PLG_CONTENT_PHOCAGALLERY_IMAGE_DOWNLOAD') . '"' . ' href="' . JRoute::_($linkD . '&phocadownload=' . (int) $tmpl['display_icon_download']) . '"';
                                     } else {
                                         $linkD = PhocaGalleryRoute::getImageRoute($image->id, $image->catid, $image->alias, $image->catalias);
                                         $output .= ' <a class="' . $buttonOther->methodname . '" title="' . JText::_('PLG_CONTENT_PHOCAGALLERY_IMAGE_DOWNLOAD') . '"' . ' href="' . JRoute::_($linkD . '&phocadownload=' . (int) $tmpl['display_icon_download'] . '&tmpl=component') . '"';
                                         /*if ($tmpl['detail_window'] == 1) {
                                         			$output .= ' onclick="'. $buttonOther->options.'"';
                                         		} else if ($tmpl['detail_window'] == 4 ) {
                                         			$output .= ' onclick="'. $tmpl['highslideonclick'].'"';
                                         		} else if ($tmpl['detail_window'] == 5 ) {
                                         			$output .= ' onclick="'. $tmpl['highslideonclick2'].'"';
                                         		} else if ($tmpl['detail_window'] == 7 ) {
                                         			$output .= '';
                                         		} else {
                                         			$output .= ' rel="'. $buttonOther->options.'"';
                                         		}*/
                                         $output .= PhocaGalleryRenderFront::renderAAttributeOther($tmpl['detail_window'], $buttonOther->options, $tmpl['highslideonclick'], $tmpl['highslideonclick2']);
                                     }
                                     $output .= ' >';
                                     $output .= '<img src="' . JURI::base(true) . '/media/com_phocagallery/images/icon-download.png" alt="' . $image->title . '" />';
                                     $output .= '</a>';
                                 }
                                 $output .= '</div>';
                                 if ($float == '') {
                                     $output .= '<div style="clear:both"> </div>';
                                 }
                             }
                             break;
                     }
                     $output .= '</div>';
                     $iI++;
                 }
             }
             //--------------------------
             // DISPLAYING OF SWITCHIMAGE
             //--------------------------
             if ($view == 'switchimage') {
                 $path = PhocaGalleryPath::getPath();
                 $waitImage = $path->image_rel . 'icon-switch.gif';
                 $basicImage = $path->image_rel . 'phoca_thumb_l_no_image.' . $tmpl['formaticon'];
                 if ($basic_image_id > 0) {
                     $query = 'SELECT *' . ' FROM #__phocagallery' . ' WHERE id = ' . (int) $basic_image_id;
                     $db->setQuery($query);
                     $basicImageArray = $db->loadObject();
                     $switchImage = PhocaGalleryImage::correctSwitchSize($switch_height, $switch_width);
                     if ((int) $switch_width > 0 && (int) $switch_height > 0 && $switch_fixed_size == 1) {
                         $wHArray = array('id' => 'PhocaGalleryobjectPicture', 'border' => '0', 'width' => $switch_width, 'height' => $switch_height);
                         $wHString = ' id="PhocaGalleryobjectPicture"  border="0" width="' . $switch_width . '" height="' . $switch_height . '"';
                     } else {
                         $wHArray = array('id' => 'PhocaGalleryobjectPicture', 'border' => '0');
                         $wHString = ' id="PhocaGalleryobjectPicture"  border="0"';
                     }
                     if (isset($basicImageArray->extl) && isset($basicImageArray->extid) && $basicImageArray->extid != '') {
                         $basicImage = JHTML::_('image', $basicImageArray->extl, '', $wHArray);
                     } else {
                         if (isset($basicImageArray->filename)) {
                             $fileBasicThumb = PhocaGalleryFileThumbnail::getThumbnailName($basicImageArray->filename, 'large');
                             $basicImage = JHTML::_('image', $fileBasicThumb->rel, '', $wHString);
                         } else {
                             $basicImage = '';
                         }
                     }
                 }
                 $document->addCustomTag(PhocaGalleryRenderFront::switchImage($waitImage));
                 //$switchImage['height']	= $switchImage['height'] + 5;
                 $output .= '<div><center class="main-switch-image" style="margin:0px;padding:7px 5px 7px 5px;margin-bottom:15px;"><table border="0" cellspacing="5" cellpadding="5" style=""><tr><td align="center" valign="middle" style="text-align:center;width:' . $switchImage['width'] . 'px;height:' . $switchImage['height'] . 'px; background: url(\'' . JURI::root() . '/media/com_phocagallery/images/images/icon-switch.gif\') ' . $switchImage['centerw'] . 'px ' . $switchImage['centerh'] . 'px no-repeat;margin:0px;padding:0px;">';
                 $output .= $basicImage . '</td></tr></table></center></div>';
             } else {
                 // Overlib
             }
             //--------------------------
             // DISPLAYING OF Clear Both
             //--------------------------
             if ($view == 'clearboth') {
                 $output .= '<div style="clear:both"> </div>';
             }
             if ($view == 'clearright') {
                 $output .= '<div style="clear:right"> </div>';
             }
             if ($view == 'clearleft') {
                 $output .= '<div style="clear:left"> </div>';
             }
             $output .= '</div>';
             if ($float == '') {
                 $output .= '<div style="clear:both"> </div>';
             }
             if ($tmpl['detail_window'] == 6) {
                 $output .= '<script type="text/javascript">' . 'var gjaksPl' . $randName . ' = new SZN.LightBox(dataJakJsPl' . $randName . ', optgjaksPl' . $randName . ');' . '</script>';
             }
             $article->text = preg_replace($regex_all, $output, $article->text, 1);
             // ADD JAK DATA CSS style
             if ($tmpl['detail_window'] == 6) {
                 $scriptJAK = '<script type="text/javascript">' . 'var dataJakJsPl' . $randName . ' = [';
                 if (!empty($tmpl['jakdatajs'])) {
                     $scriptJAK .= implode($tmpl['jakdatajs'], ',');
                 }
                 $scriptJAK .= ']' . '</script>';
                 $document->addCustomTag($scriptJAK);
             }
         }
         // CUSTOM CSS - For all items it will be the same
         if ($libraries['pg-css-sbox-plugin']->value == 0) {
             $document->addCustomTag("<style type=\"text/css\">\n" . $cssSbox . "\n" . " </style>\n");
             $library->setLibrary('pg-css-sbox-plugin', 1);
         }
         // All custom CSS tags will be added into one CSS area
         //	if ( $libraries['pg-css-pg-plugin']->value == 0 ) {
         $document->addCustomTag("<style type=\"text/css\">\n" . $cssPgPlugin . "\n" . " </style>\n");
         $library->setLibrary('pg-css-pg-plugin', 1);
         //	}
         /*if ( $libraries['pg-css-ie']->value == 0 ) {
         			$document->addCustomTag("<!--[if lt IE 8]>\n<link rel=\"stylesheet\" href=\"".JURI::base(true)."/components/com_phocagallery/assets/phocagalleryieall.css\" type=\"text/css\" />\n<![endif]-->");
         			$library->setLibrary('pg-css-ie', 1);
         		}*/
     }
     // end if count_matches
     return true;
 }
Ejemplo n.º 13
0
 public function onContentPrepare($context, &$article, &$params, $page = 0)
 {
     if ($context == 'com_finder.indexer') {
         return true;
     }
     $db = JFactory::getDBO();
     $document = JFactory::getDocument();
     $path = PhocaGalleryPath::getPath();
     //$menu 		= &JSite::getMenu();
     $app = JFactory::getApplication('site');
     $view = JRequest::getCmd('view');
     $layout = JRequest::getCmd('layout');
     $component = 'com_phocagallery';
     $paramsC = JComponentHelper::getParams($component);
     // Start Plugin
     $regex_one = '/({pgslideshow\\s*)(.*?)(})/si';
     $regex_all = '/{pgslideshow\\s*.*?}/si';
     $matches = array();
     $count_matches = preg_match_all($regex_all, $article->text, $matches, PREG_OFFSET_CAPTURE | PREG_PATTERN_ORDER);
     $customCSS = '';
     $customCSS2 = '';
     for ($j = 0; $j < $count_matches; $j++) {
         // Plugin variables
         $id = 0;
         $width = 640;
         $height = 480;
         $delay = 3000;
         $image = 'L';
         $tmpl['pgslink'] = 0;
         $tmpl['imageordering'] = $paramsC->get('image_ordering', 9);
         $desc = 'peekaboo';
         $random = 0;
         $pause = 2500;
         // Get plugin parameters
         $phocagallery = $matches[0][$j][0];
         preg_match($regex_one, $phocagallery, $phocagallery_parts);
         $parts = explode("|", $phocagallery_parts[2]);
         $values_replace = array("/^'/", "/'\$/", "/^&#39;/", "/&#39;\$/", "/<br \\/>/");
         foreach ($parts as $key => $value) {
             $values = explode("=", $value, 2);
             foreach ($values_replace as $key2 => $values2) {
                 $values = preg_replace($values2, '', $values);
             }
             // Get plugin parameters from article
             if ($values[0] == 'id') {
                 $id = $values[1];
             } else {
                 if ($values[0] == 'height') {
                     $height = $values[1];
                 } else {
                     if ($values[0] == 'width') {
                         $width = $values[1];
                     } else {
                         if ($values[0] == 'delay') {
                             $delay = $values[1];
                         } else {
                             if ($values[0] == 'image') {
                                 $image = $values[1];
                             } else {
                                 if ($values[0] == 'desc') {
                                     $desc = $values[1];
                                 } else {
                                     if ($values[0] == 'random') {
                                         $random = $values[1];
                                     } else {
                                         if ($values[0] == 'pause') {
                                             $pause = $values[1];
                                         } else {
                                             if ($values[0] == 'pgslink') {
                                                 $tmpl['pgslink'] = $values[1];
                                             } else {
                                                 if ($values[0] == 'imageordering') {
                                                     $tmpl['imageordering'] = $values[1];
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
         if ($id > 0) {
             $orderingString = PhocaGalleryOrdering::getOrderingString($tmpl['imageordering']);
             $imageOrdering = $orderingString['output'];
             //$c = time() * rand(1,10);
             //$c = time() * mt_rand(1,1000);
             $c = time() . mt_rand();
             $query = ' SELECT a.filename, cc.id as catid, cc.alias as catalias, a.extid, a.exts, a.extm, a.extl, a.exto, a.description,' . ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(\':\', cc.id, cc.alias) ELSE cc.id END as catslug' . ' FROM #__phocagallery_categories AS cc' . ' LEFT JOIN #__phocagallery AS a ON a.catid = cc.id' . ' WHERE cc.published = 1' . ' AND a.published = 1' . ' AND cc.approved = 1' . ' AND a.approved = 1' . ' AND a.catid = ' . (int) $id . $imageOrdering;
             $db->setQuery($query);
             $images = $db->loadObjectList();
             // START OUTPUT
             $jsSlideshowData['files'] = '';
             $countImg = 0;
             $endComma = ',';
             $output = '';
             if (!empty($images)) {
                 $countFilename = count($images);
                 foreach ($images as $key => $value) {
                     $countImg++;
                     if ($countImg == $countFilename) {
                         $endComma = '';
                     }
                     if ($desc != 'none') {
                         $description = PhocaGalleryText::strTrimAll(addslashes($value->description));
                     } else {
                         $description = "";
                     }
                     switch ($image) {
                         case 'S':
                             $imageName = PhocaGalleryFileThumbnail::getThumbnailName($value->filename, 'small');
                             $imageName->ext = $value->exts;
                             $sizeString = 's';
                             break;
                         case 'M':
                             $imageName = PhocaGalleryFileThumbnail::getThumbnailName($value->filename, 'medium');
                             $imageName->ext = $value->extm;
                             $sizeString = 'm';
                             break;
                         case 'O':
                             $imageName = new stdClass();
                             $imageName->rel = PhocaGalleryFile::getFileOriginal($value->filename, 1);
                             $imageName->abs = PhocaGalleryFile::getFileOriginal($value->filename, 0);
                             $imageName->ext = $value->exto;
                             $sizeString = 'l';
                             break;
                         case 'L':
                         default:
                             $imageName = PhocaGalleryFileThumbnail::getThumbnailName($value->filename, 'large');
                             $imageName->ext = $value->extl;
                             $sizeString = 'l';
                             break;
                     }
                     if (isset($value->extl) && $value->extl != '') {
                         $jsSlideshowData['files'] .= '["' . $imageName->ext . '", "", "", "' . $description . '"]' . $endComma . "\n";
                     } else {
                         $imgLink = JURI::base(true) . '/' . $imageName->rel;
                         if (JFile::exists($imageName->abs)) {
                             $jsSlideshowData['files'] .= '["' . $imgLink . '", "", "", "' . $description . '"]' . $endComma . "\n";
                         } else {
                             $fileThumbnail = JURI::base(true) . '/' . "components/com_phocagallery/assets/images/phoca_thumb_" . $sizeString . "_no_image.png";
                             $jsSlideshowData['files'] .= '["' . $fileThumbnail . '", "", "", ""]' . $endComma . "\n";
                         }
                     }
                 }
                 //$script  = '<script type="text/javascript">' . "\n";
                 $script = '/***********************************************' . "\n";
                 $script .= '* Ultimate Fade In Slideshow v2.0- (c) Dynamic Drive DHTML code library (www.dynamicdrive.com)' . "\n";
                 $script .= '* This notice MUST stay intact for legal use' . "\n";
                 $script .= '* Visit Dynamic Drive at http://www.dynamicdrive.com/ for this script and 100s more' . "\n";
                 $script .= '***********************************************/' . "\n";
                 $script .= 'var phocagalleryplugin' . $c . ' = new fadeSlideShow({' . "\n";
                 $script .= ' wrapperid: "phocaGallerySlideshowP' . $c . '",' . "\n";
                 $script .= ' dimensions: [' . $width . ', ' . $height . '],' . "\n";
                 $script .= ' imagearray: [' . $jsSlideshowData['files'] . '],' . "\n";
                 $script .= ' displaymode: {type:\'auto\', pause: ' . $pause . ', cycles:0,' . "\n";
                 $script .= ' wraparound:false, randomize: ' . $random . '},' . "\n";
                 $script .= ' persist: false,' . "\n";
                 $script .= ' fadeduration: ' . $delay . ',' . "\n";
                 $script .= ' descreveal: "' . $desc . '",' . "\n";
                 $script .= ' togglerid: ""' . "\n";
                 $script .= '})' . "\n";
                 //	$script  .= '</script>' . "\n";
                 $siteLink = '';
                 if (isset($value->catid)) {
                     if ((int) $tmpl['pgslink'] == 2) {
                         // Different Link - to all categories
                         $siteLink = JRoute::_(PhocaGalleryRoute::getCategoriesRoute());
                     } else {
                         if ((int) $tmpl['pgslink'] == 1) {
                             // Different Link - to all category
                             $siteLink = JRoute::_(PhocaGalleryRoute::getCategoryRoute($value->catid, $value->catalias));
                         }
                     }
                 }
                 // Don't add js in category view
                 //if ($view == 'article' || $view == 'featured' || ($view == 'category' && $layout == 'blog')) {
                 if ($view == 'article' || $view == 'featured' || $view == 'item' || $view == 'category' && $layout == 'blog') {
                     //$document->addScript(JURI::base(true).'/components/com_phocagallery/assets/jquery/jquery-1.6.4.min.js');
                     JHtml::_('jquery.framework', false);
                     $document->addScript(JURI::base(true) . '/components/com_phocagallery/assets/fadeslideshow/fadeslideshow.js');
                     $document->addScriptDeclaration($script);
                 }
                 $output = '';
                 $output .= '<div class="phocagalleryslideshow">' . "\n";
                 if ($siteLink != '') {
                     $output .= '<a href="' . $siteLink . '" ><div id="phocaGallerySlideshowP' . $c . '"></div></a>' . "\n";
                 } else {
                     $output .= '<div id="phocaGallerySlideshowP' . $c . '"></div>';
                 }
                 $output .= '</div>';
                 $c++;
             } else {
                 $output .= JText::_('PLG_CONTENT_PHOCAGALLERYSLIDESHOW_THERE_IS_NO_IMAGE_OR_CATEGORY_IS_UNPUBLISHED_OR_NOT_AUTHORIZED');
             }
             // END OUTPUT
             $article->text = preg_replace($regex_all, $output, $article->text, 1);
         }
     }
     return true;
 }