<?php
/*
 * @package Joomla 1.5
 * @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
 *
 * @component Phoca Component
 * @copyright Copyright (C) Jan Pavelka www.phoca.cz
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
 */
defined( '_JEXEC' ) or die();
jimport( 'joomla.html.pane' );
jimport( 'joomla.client.helper' );
jimport( 'joomla.application.component.view' );
phocagalleryimport('phocagallery.file.fileupload');
phocagalleryimport('phocagallery.rate.ratecategory');
phocagalleryimport('phocagallery.rate.rateimage');
phocagalleryimport('phocagallery.comment.comment');
phocagalleryimport('phocagallery.comment.commentcategory');

class PhocaGalleryViewCategory extends JView
{
	function display($tpl = null) {
		
		global $mainframe;
		$document			= &JFactory::getDocument();
		$uri 				= &JFactory::getURI();
		$menus				= &JSite::getMenu();
		$menu				= $menus->getActive();
		$params				= &$mainframe->getParams();
		$user 				= &JFactory::getUser();
		$limitStart			= JRequest::getVar( 'limitstart', 0, '', 'int');
		$id 				= JRequest::getVar('id', 0, '', 'int');
		$tmpl['tab'] 		= JRequest::getVar('tab', 0, '', 'int');
		$tmpl['formaticon'] = PhocaGalleryImage::getFormatIcon();
	
		// LIBRARY
		$library 							= &PhocaGalleryLibrary::getLibrary();
		$libraries['pg-css-ie'] 			= $library->getLibrary('pg-css-ie');
		$libraries['pg-css-ie-hover']		= $library->getLibrary('pg-css-ie-hover');
		$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
		$tmpl['displaycatnametitle'] 		= $params->get( 'display_cat_name_title', 1 );
		$display_cat_name_breadcrumbs 		= $params->get( 'display_cat_name_breadcrumbs', 1 );
		$font_color 						= $params->get( 'font_color', '#b36b00' );
		$background_color 					= $params->get( 'background_color', '#fcfcfc' );
		$background_color_hover 			= $params->get( 'background_color_hover', '#f5f5f5' );
		$image_background_color 			= $params->get( 'image_background_color', '#f5f5f5' );
		$tmpl['displayimageshadow'] 		= $params->get( 'image_background_shadow', 'shadow1' );
		$border_color 						= $params->get( 'border_color', '#e8e8e8' );
		$border_color_hover 				= $params->get( 'border_color_hover', '#b36b00');
		$tmpl['imagewidth']					= $params->get( 'medium_image_width', 100 );
		$tmpl['imageheight'] 				= $params->get( 'medium_image_height', 100 );
		$popup_width 				= $params->get( 'front_modal_box_width', 680 );
		$popup_height 			= $params->get( 'front_modal_box_height', 560 );
		$tmpl['olbgcolor']					= $params->get( 'ol_bg_color', '#666666' );
		$tmpl['olfgcolor']					= $params->get( 'ol_fg_color', '#f6f6f6' );
		$tmpl['oltfcolor']					= $params->get( 'ol_tf_color', '#000000' );
		$tmpl['olcfcolor']					= $params->get( 'ol_cf_color', '#ffffff' );
		$tmpl['overliboverlayopacity']		= $params->get( 'overlib_overlay_opacity', 0.7 );
		$margin_box 						= $params->get( 'margin_box', 5 );
		$padding_box						= $params->get( 'padding_box', 5 );
		$tmpl['maxuploadchar']				= $params->get( 'max_upload_char', 1000 );
		$tmpl['maxcommentchar']				= $params->get( 'max_comment_char', 1000 );
		$tmpl['commentwidth']				= $params->get( 'comment_width', 500 );
		$tmpl['displayrating']				= $params->get( 'display_rating', 0 );
		$tmpl['displayratingimg']			= $params->get( 'display_rating_img', 0 );
		$tmpl['displaycomment']				= $params->get( 'display_comment', 0 );
		$tmpl['displaysubcategory']			= $params->get( 'display_subcategory', 1 );
		$tmpl['displaycategorygeotagging']	= $params->get( 'display_category_geotagging', 0 );
		$tmpl['displaycategorystatistics']	= $params->get( 'display_category_statistics', 0 );
		// Used for Highslide JS (only image)
		$tmpl['displaydescriptiondetail']	= $params->get( 'display_description_detail', 0 );
		$tmpl['displaytitleindescription']	= $params->get( 'display_title_description', 0 );
		$tmpl['displayname']				= $params->get( 'display_name', 1);
		$tmpl['displayicondetail'] 			= $params->get( 'display_icon_detail', 1 );
		$tmpl['displayicondownload'] 		= $params->get( 'display_icon_download', 0 );
		$tmpl['displayiconfolder'] 			= $params->get( 'display_icon_folder', 0 );
		$tmpl['displayiconvm']				= $params->get( 'display_icon_vm', 0 );
		$tmpl['fontsizename']				= $params->get( 'font_size_name', 12 );
		$tmpl['fontsizeimgdesc']			= $params->get( 'font_size_img_desc', 10 );
		$tmpl['imgdescboxheight']			= $params->get( 'img_desc_box_height', 30 );
		$tmpl['displayimgdescbox']			= $params->get( 'display_img_desc_box', 0 );
		$tmpl['charlengthimgdesc']			= $params->get( 'char_length_img_desc', 300 );
		$tmpl['charlengthname'] 			= $params->get( 'char_length_name', 15);
		$tmpl['displayicongeo']				= $params->get( 'display_icon_geotagging', 0 );// Check the category
		$tmpl['displayicongeoimage']		= $params->get( 'display_icon_geotagging', 0 );// Check the image
		$tmpl['displaycamerainfo']			= $params->get( 'display_camera_info', 0 );
		$tmpl['displaypage'] 						= PhocaGalleryRenderInfo::getPhocaIc((int)$params->get( 'display_phoca_info', 1 ));
		$tmpl['switchimage']				= $params->get( 'switch_image', 0 );
		$tmpl['switchheight'] 				= $params->get( 'switch_height', 480 );
		$tmpl['switchwidth'] 				= $params->get( 'switch_width', 640);
		// PARAMS - Upload
		$tmpl['displaytitleupload']			= $params->get( 'display_title_upload', 0 );
		$tmpl['displaydescupload'] 			= $params->get( 'display_description_upload', 0 );
		$tmpl['enablejava']					= $params->get( 'enable_java', 0 );
		$tmpl['javaresizewidth'] 			= $params->get( 'java_resize_width', -1 );
		$tmpl['javaresizeheight'] 			= $params->get( 'java_resize_height', -1 );
		$tmpl['javaboxwidth'] 				= $params->get( 'java_box_width', 480 );
		$tmpl['javaboxheight'] 				= $params->get( 'java_box_height', 480 );
		$tmpl['large_image_width']			= $params->get( 'large_image_width', 640 );
		$tmpl['large_image_height']			= $params->get( 'large_image_height', 640 );
		$tmpl['uploadmaxsize'] 				= $params->get( 'upload_maxsize', 3000000 );
		$tmpl['phocagallerywidth']			= $params->get( 'phocagallery_width', '');
		$tmpl['phocagallerycenter']			= $params->get( 'phocagallery_center', '');
		$display_description_detail 		= $params->get( 'display_description_detail', 0 );
		$description_detail_height 			= $params->get( 'description_detail_height', 16 );
		$tmpl['categoryboxspace'] 			= $params->get( 'category_box_space', 0 );
		$tmpl['detailwindow']				= $params->get( 'detail_window', 0 );
		$detail_buttons 					= $params->get( 'detail_buttons', 1 );
		$modal_box_overlay_color 			= $params->get( 'modal_box_overlay_color', '#000000' );
		$modal_box_overlay_opacity 			= $params->get( 'modal_box_overlay_opacity', 0.3 );
		$modal_box_border_color 			= $params->get( 'modal_box_border_color', '#6b6b6b' );
		$modal_box_border_width 			= $params->get( 'modal_box_border_width', '2' );
		$tmpl['enablepiclens']				= $params->get( 'enable_piclens', 0 );
		$highslide_class					= $params->get( 'highslide_class', 'rounded-white');
		$highslide_opacity					= $params->get( 'highslide_opacity', 0);
		$highslide_outline_type				= $params->get( 'highslide_outline_type', 'rounded-white');
		$highslide_fullimg					= $params->get( 'highslide_fullimg', 0);
		$highslide_slideshow				= $params->get( 'highslide_slideshow', 1);
		$highslide_close_button				= $params->get( 'highslide_close_button', 0);
		$tmpl['jakslideshowdelay']			= $params->get( 'jak_slideshow_delay', 5);
		$tmpl['jakorientation']				= $params->get( 'jak_orientation', 'none');
		$tmpl['jakdescription']				= $params->get( 'jak_description', 1);
		$tmpl['jakdescriptionheight']		= $params->get( 'jak_description_height', 0);
		$tmpl['categoryimageordering']		= $params->get( 'category_image_ordering', 9 );
		// Possible Categories View in Category View
		$tmpl['categoryimageorderingcv']	= $params->get( 'category_image_ordering_cv', 9 );
		$tmpl['displaycategoriescv'] 		= $params->get( 'display_categories_cv', 0 );
		$display_subcat_page_cv				= $params->get( 'display_subcat_page_cv', 0 );
		$display_back_button_cv 			= $params->get( 'display_back_button_cv', 1 );
		$display_categories_back_button_cv 	= $params->get( 'display_categories_back_button_cv', 1 );
		$tmpl['displayimagecategoriescv'] 	= $params->get( 'display_image_categories_cv', 1 );
		$tmpl['categoriescolumnscv'] 		= $params->get( 'categories_columns_cv', 1 );
		$image_categories_size_cv 			= $params->get( 'image_categories_size_cv', 4 );
		$medium_image_width_cv 				= (int)$params->get( 'medium_image_width', 100 ) + 18;
		$medium_image_height_cv 			= (int)$params->get( 'medium_image_height', 100 ) + 18;
		$small_image_width_cv 				= (int)$params->get( 'small_image_width', 50 ) + 18;
		$small_image_height_cv 				= (int)$params->get( 'small_image_height', 50 ) + 18;
		$tmpl['imagetypecv']				= $image_categories_size_cv;
		
		
		$catImg = PhocaGalleryImageFront::getCategoriesImageBackground($image_categories_size_cv, $small_image_width_cv, $small_image_height_cv,  $medium_image_height_cv, $medium_image_width_cv);
		$tmpl['imagebgcv'] 		= $catImg->image;
		$tmpl['imagewidthcv'] 	= $catImg->width;
		// - - - - - - - - - - - - - - - 
		
		// PARAMS - Background shadow
		if ( $tmpl['displayimageshadow'] != 'none' ) {	
			$imageBgCSS = 'background: url(\''.JURI::base(true).'/components/com_phocagallery/assets/images/'.$tmpl['displayimageshadow'].'.'.$tmpl['formaticon'].'\') 0 0 no-repeat;';
		} else {
			$imageBgCSS = 'background: '.$image_background_color .';';
		}
		
		// CSS - - - - - -
		JHTML::stylesheet( 'phocagallery.css', 'components/com_phocagallery/assets/' );
		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($font_color,
		$background_color, $border_color, $imageBgCSS, $border_color_hover, $background_color_hover,
		$tmpl['olfgcolor'], $tmpl['olbgcolor'], $tmpl['oltfcolor'], $tmpl['olcfcolor'],
		$margin_box, $padding_box, $tmpl['overliboverlayopacity']));
		if ( $libraries['pg-css-ie-hover']->value == 0 ) {
			$document->addCustomTag( PhocaGalleryRenderFront::renderIeHover());
			$library->setLibrary('pg-css-ie-hover', 1);
		}
		// - - - - - -
	
		// 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;
		}
		$popup_height_rating = $popup_height;
		if ($tmpl['displayratingimg'] == 1) {
	
			$popup_height_rating	= $popup_height_rating + 35;
		}
		
		// Correct height of description in image box (set null if this will be hidden)
		if ($tmpl['displayimgdescbox'] == 0) {
			$tmpl['imgdescboxheight']	= 0;
		}

		// =======================================================
		// 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');
		
		// CSS
		$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 (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
		
		// -------------------------------------------------------
		// STANDARD POPUP
		// -------------------------------------------------------
		
		if ($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_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['detailwindow'] == 0 || $tmpl['detailwindow'] == 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['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_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['detailwindow'] == 3) {
		
			$sb_slideshow_delay			= $params->get( 'sb_slideshow_delay', 5 );
			$sb_lang					= $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', '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/adapter/shadowbox-mootools.js');
				$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>');
				// window.onload = function(){
				// Shadowbox.init();
				$library->setLibrary('pg-group-shadowbox', 1);
			}
		}
		
		// -------------------------------------------------------
		// HIGHSLIDE JS
		// -------------------------------------------------------
		
		else if ($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_rating, $highslide_outline_type, $highslide_opacity));
			$tmpl['highslideonclick'] = 'return hs.htmlExpand(this, phocaZoom )';
		}
		
		// -------------------------------------------------------
		// HIGHSLIDE JS IMAGE ONLY
		// -------------------------------------------------------
		
		else if ($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_rating, $highslide_slideshow, $highslide_class, $highslide_outline_type, $highslide_opacity, $highslide_close_button));
			$tmpl['highslideonclick2']	= 'return hs.htmlExpand(this, phocaZoom )';
			$tmpl['highslideonclick']	= PhocaGalleryRenderFront::renderHighslideJSImage('', $highslide_class, $highslide_outline_type, $highslide_opacity, $highslide_fullimg);
			
		}
		
		// -------------------------------------------------------
		// JAK LIGHTBOX
		// -------------------------------------------------------
		
		else if ($tmpl['detailwindow'] == 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']->value == 0 ) {		
				$document->addCustomTag( PhocaGalleryRenderFront::renderJakJs($tmpl['jakslideshowdelay'], $tmpl['jakorientation']));
				$library->setLibrary('pg-group-jak', 1);
			}
			
		}
		
		// -------------------------------------------------------
		// NO POPUP
		// -------------------------------------------------------
		
		else if ($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', "");
			
		}
		
		$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');
		
		
		// PICLENS
		$tmpl['startpiclens'] 	= 0;
		if ($tmpl['enablepiclens'] == 1) {
			$tmpl['startpiclens'] = $params->get( 'start_piclens', 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 = $params->get( 'display_subcat_page', 0 );
		// On the first site subcategories will be displayed allways
		$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 			= $params->get( 'display_back_button', 1 );
		$display_categories_back_button = $params->get( 'display_categories_back_button', 1 );
		// PARAMS - Access Category - display category (subcategory folder or backbutton  to not accessible cat
		$display_access_category 		= $params->get( 'display_access_category', 1 );	
		
		// Set page title per category
		if ($tmpl['displaycatnametitle'] == 1) {
			$document->setTitle($params->get( 'page_title') . ' - '. $category->title);
		} else {
			$document->setTitle( $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
		$tmpl['showpagetitle'] = $params->get( 'show_page_title', 1 );
		
		// Define image tag attributes
		if (!empty ($category->image)) {
			$attribs['align'] = '"'.$category->image_position.'"';
			$attribs['hspace'] = '"6"';
			$tmpl['image'] = JHTML::_('image', 'images/stories/'.$category->image, JText::_('Phoca gallery'), $attribs);
		}
		
		// Switch image JS
		$tmpl['basicimage']	= '';
		if ($tmpl['switchimage'] == 1) {
			$imagePathFront		= PhocaGalleryPath::getPath();
			$tmpl['waitimage']	= $imagePathFront->image_rel_front_full . 'icon-switch.gif';
			$tmpl['basicimage']	= $imagePathFront->image_rel_front_full . 'phoca_thumb_l_no_image.' . $tmpl['formaticon'];
			$document->addCustomTag(PhocaGalleryRenderFront::switchImage($tmpl['waitimage']));
			$basicImageSelected = 0; // we have not selected the basic image yet
		}
		
		// Overlib
		$enable_overlib = $params->get( 'enable_overlib', 0 );
		if ((int)$enable_overlib > 0) {
			$document->addScript(JURI::base(true).'/includes/js/overlib_mini.js');
		}
		
		// MODEL
		$model		= &$this->getModel();
		
		// Trash
		$tmpl['trash']				= 0;
		$tmpl['publishunpublish']	= 0;
		// 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, 1, $user->get('aid', 0), $user->get('id', 0), 0);
		}
		if ($rightDisplayDelete == 1) {
			$tmpl['trash']				= 1;
			$tmpl['publishunpublish']	= 1;
		}
		// - - - - - - - - - - - - - - - - - - - - - 
		// Upload
		$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, 1, $user->get('aid', 0), $user->get('id', 0), 0);
		}
		if ($rightDisplayUpload == 1) {
			$tmpl['displayupload']	= 1;
			$document->addCustomTag(PhocaGalleryRenderFront::renderDescriptionUploadJS((int)$tmpl['maxuploadchar']));
		}
		// - - - - - - - - - - - - - - - - - - - - - 
		
		// 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, $user->get('aid', 0), $user->get('id', 0), $display_access_category);
		}
		if ($rightDisplay == 0) {
			$mainframe->redirect(JRoute::_('index.php?option=com_user&view=login', false), JText::_("ALERTNOTAUTH"));
			exit;
		}		
		// - - - - - - - - - - - - - - - - - - - - - 
		
		// 1. GEOTAGGING CATEGORY 
		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;
			if ($map['geotitle'] == '') {
				$map['geotitle']	= $category->title;
			}	
		} else {
			$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($tmpl['categoryimageordering']);
		$categoryImageOrderingCV = PhocaGalleryOrdering::getOrderingString($tmpl['categoryimageorderingcv']);
		
		// = = = = = = = = = = = = = = = = = = = = 
		// BOXES
		// = = = = = = = = = = = = = = = = = = = =
		
		// Information because of height of box (if they are used not by all images)
		$tmpl['displayiconextlink1box'] = 0;
		$tmpl['displayiconextlink2box'] = 0;
		$tmpl['displayiconvmbox'] 		= 0;
		$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;
	   

		$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, $user->get('aid', 0), $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, $user->get('aid', 0), $user->get('id', 0), 0);
					}
				}
				// - - - - - - - - - - - - - - - - - - - - -

				if ($rightDisplay > 0) {
					$items[$iS]->slug			 		= $items[$iS]->id . ':' . $items[$iS]->alias;
					$items[$iS]->item_type				= "parentfolder";
					$items[$iS]->linkthumbnailpath 		= PhocaGalleryImageFront::displayBackFolder('medium', $rightDisplayKey);
					$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', 1, 'get', '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]->enable_piclens			= 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			= '';
					$iS++;
				}
			} else { // Back button to categories list if it exists
				if ($itemId > 0 && $display_categories_back_button == 1) {
					$items[$iS] 						= new JObject();
					$items[$iS]->link 					= JRoute::_($backLink);
					$items[$iS]->title					= JTEXT::_('Category List');
					$items[$iS]->item_type 				= "categorieslist";
					$items[$iS]->linkthumbnailpath 		= PhocaGalleryImageFront::displayBackFolder('medium', 1);
					$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]->enable_piclens			= 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			= '';
					$iS++;
				}
			}
		}
		
		
		// ----------------------------------------
		// PARENT FOLDERS(II) or Back Button CATEGORIES VIEW IN CATEGORY VIEW
		// ---------------------------------------- 
		if ($display_back_button_cv == 1 && $tmpl['displaycategoriescv'] == 1) {
			if (!empty($parentCategory)) {
				
				$itemsCV[$iCV] = &$parentCategory;
				// USER RIGHT - ACCESS - - - - - - - - - - -
				// Should be the link to parentcategory displayed
				$rightDisplay = PhocaGalleryAccess::getUserRight('accessuserid', $itemsCV[$iCV]->accessuserid, $itemsCV[$iCV]->access, $user->get('aid', 0), $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, $user->get('aid', 0), $user->get('id', 0), 0);
					}
				}
				// - - - - - - - - - - - - - - - - - - - - -
				
				if ($rightDisplay > 0) {
					$itemsCV[$iCV]->slug 				= $itemsCV[$iCV]->id.':'.$itemsCV[$iCV]->alias;
					$itemsCV[$iCV]->item_type 			= "parentfoldercv";
					$itemsCV[$iCV]->linkthumbnailpath	= PhocaGalleryImageFront::displayBackFolder('medium', $rightDisplayKey);
					$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', 1, 'get', 'int')  );
					$itemsCV[$iCV]->type				= 3;
					$iCV++;
				}
			} else { // Back button to categories list if it exists
				if ($itemId > 0 && $display_categories_back_button_cv == 1) {
					$itemsCV[$iCV] 						= new JObject();
					$itemsCV[$iCV]->link 				= $backLink;
					$itemsCV[$iCV]->title				= JTEXT::_('Category List');
					$itemsCV[$iCV]->item_type 			= "categorieslistcv";
					$itemsCV[$iCV]->linkthumbnailpath	= PhocaGalleryImageFront::displayBackFolder('medium', 1);
					$itemsCV[$iCV]->numlinks = 0;// We are in category view
					$itemsCV[$iCV]->link 				= JRoute::_( $itemsCV[$iCV]->link );
					$itemsCV[$iCV]->type				= 3;
					$iCV++;
				}
			}
		}
		
		
		// ----------------------------------------
		// SUB FOLDERS(1) STANDARD
		// ----------------------------------------
		// Display subcategories on every page
		if ($display_subcat_page == 1) {

			$subCategory = $this->get('subcategory'); 
			$totalSubCat = count($subCategory);
			
			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, $user->get('aid', 0), $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, $user->get('aid', 0), $user->get('id', 0), 0);
						}
					}
					// - - - - - - - - - - - - - - - - - - - -
				
					if ($rightDisplay > 0) {
						
						$items[$iS]->slug 					= $items[$iS]->id.':'.$items[$iS]->alias;
						$items[$iS]->item_type 				= "subfolder";
						$randomImage 							= $model->getRandomImageRecursive($items[$iS]->id, $categoryImageOrdering);

						$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;
						}
						$fileThumbnail = PhocaGalleryImageFront::displayImageOrFolder($randomImage, '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', 1, 'get', 'int')  );
						$items[$iS]->button 				= &$folderButton;
						$items[$iS]->button->methodname 	= '';
						$items[$iS]->displayicondetail 		= 0;				   
						$items[$iS]->displayicondownload 	= 0;
						$items[$iS]->displayiconfolder 		= $tmpl['displayiconfolder'];
						$items[$iS]->displayname 			= $tmpl['displayname'];
						$items[$iS]->displayiconvm 			= '';
						$items[$iS]->startpiclens 			= 0;
						$items[$iS]->trash					= 0;
						$items[$iS]->publishunpublish		= 0;
						$items[$iS]->enable_piclens			= 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			= '';

						$iS++;
					}
				}
			}	
		}
		
		// ----------------------------------------
		// SUB FOLDERS(II) or Back Button CATEGORIES VIEW IN CATEGORY VIEW
		// ----------------------------------------
		//display subcategories on every page
		if ($display_subcat_page_cv == 1 && $tmpl['displaycategoriescv'] == 1) {	
			$subCategory = $this->get('subcategory'); 
			$totalSubCat = count($subCategory);
			
			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, $user->get('aid', 0), $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, $user->get('aid', 0), $user->get('id', 0), 0);
						}
					}
					// - - - - - - - - - - - - - - - - - - - -
				
					if ($rightDisplay > 0) {
					
						$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', 1, 'get', 'int')  );
						$itemsCV[$iCV]->type				= 4;
						$randomImage 						= $model->getRandomImageRecursive($itemsCV[$iCV]->id, $categoryImageOrderingCV);
						
						$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;
						}
						$fileThumbnail 						= PhocaGalleryImageFront::displayImageOrFolder($randomImage, 'medium', $rightDisplayKey, 'display_category_icon_image_cv');
						$itemsCV[$iCV]->linkthumbnailpath	= $fileThumbnail->rel;
						$iCV++;
					}
				}
			}
		}
		
		
		// ----------------------------------------
		// IMAGES
		// ----------------------------------------
		// If user has rights to delete or publish or unpublish, unbublished items should be displayed
		if ($rightDisplayDelete == 1) {
			$images	= $model->getData(1);
			$tmpl['pagination']	= &$model->getPagination(1);
		} else {
			$images	= $model->getData(0);
			$tmpl['pagination']	= &$model->getPagination(0);
		}
		
		$totalImg = count($images);
		
		if ($limitStart > 0 ) {
			$tmpl['limitstarturl'] = '&limitstart='.$limitStart;
		} else {
			$tmpl['limitstarturl'] = '';
		}
		
		$tmpl['jakdatajs'] = array();
		for($iM = 0; $iM < $totalImg; $iM++) {
			
			$items[$iS] 					= $images[$iM] ;
			$items[$iS]->slug 				= $items[$iS]->id.':'.$items[$iS]->alias;
			$items[$iS]->item_type 			= "image";
			
			// Get file thumbnail or No Image
			$items[$iS]->linkthumbnailpath 	= PhocaGalleryImageFront::displayImageOrNoImage($items[$iS]->filename, 'medium');
			
			if (isset($parentCategory->params)) {
				$items[$iS]->parentcategoryparams = $parentCategory->params;
			}
			
			// Add the first Image as basic image
			if ($tmpl['switchimage'] == 1) {
				if ($basicImageSelected == 0) {
					$tmpl['basicimage']	= $items[$iS]->linkthumbnailpath;
					$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 ($tmpl['detailwindow'] == 7) {
				$siteLink 	= JRoute::_('index.php?option=com_phocagallery&view=detail&catid='.$category->slug.'&id='. $items[$iS]->slug.'&Itemid='. JRequest::getVar('Itemid', 1, 'get', 'int')  );
			} else {
				$siteLink 	= JRoute::_('index.php?option=com_phocagallery&view=detail&catid='.$category->slug.'&id='. $items[$iS]->slug.'&tmpl=component'.'&Itemid='. JRequest::getVar('Itemid', 1, 'get', 'int')  );
			} 
			$imgLink	= $thumbLink->rel;
			
			// Detail Window
			if ($tmpl['detailwindow'] == 2 ) {
				$items[$iS]->link 		= $imgLink;
				$items[$iS]->link2		= $imgLink;
				$items[$iS]->linkother	= $imgLink;
				$items[$iS]->linkorig	= $imgLinkOrig;
			
			} else if ( $tmpl['detailwindow'] == 3 ) {
			
				$items[$iS]->link 		= $imgLink;
				$items[$iS]->link2 		= $imgLink;
				$items[$iS]->linkother	= $siteLink;
				$items[$iS]->linkorig	= $imgLinkOrig;
			
			} else if ( $tmpl['detailwindow'] == 5 ) {
				
				$items[$iS]->link 		= $imgLink;
				$items[$iS]->link2 		= $siteLink;
				$items[$iS]->linkother	= $siteLink;
				$items[$iS]->linkorig	= $imgLinkOrig;
				
			} else if ( $tmpl['detailwindow'] == 6 ) {
				
				$items[$iS]->link 		= $imgLink;
				$items[$iS]->link2 		= $imgLink;
				$items[$iS]->linkother	= $siteLink;
				$items[$iS]->linkorig	= $imgLinkOrig;
				
				// jak data js
				switch ($tmpl['jakdescription']) {
					case 0:
						$descriptionJakJs = '';
					break;
					
					case 2:
						$descriptionJakJs = PhocaGalleryText::strTrimAll(addslashes( $items[$iS]->description));
					break;
					
					case 3:
						$descriptionJakJs = $items[$iS]->title;
						if ($items[$iS]->description != '') {
							$descriptionJakJs .='<br />' .PhocaGalleryText::strTrimAll(addslashes( $items[$iS]->description));
						}
					break;
					
					case 1:
					default:
						$descriptionJakJs = $items[$iS]->title;
					break;
				}
				$items[$iS]->linknr		= $iM;
				$tmpl['jakdatajs'][$iS] = "{alt: '".$items[$iS]->title."',";
				if ($descriptionJakJs != '') {
					$tmpl['jakdatajs'][$iS] .= "description: '".$descriptionJakJs."',";
				} else {
					$tmpl['jakdatajs'][$iS] .= "description: ' ',";
				}
				$tmpl['jakdatajs'][$iS] .= "small: {url: '".JURI::base(true).'/'.$thumbLinkM->rel."'},"
				."big: {url: '".JURI::base(true).'/'.$imgLink."'} }";
				
			} 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 	= $tmpl['displayicondetail'];
			$items[$iS]->displayicondownload= $tmpl['displayicondownload'];
			$items[$iS]->displayiconfolder 	= 0;
			$items[$iS]->displayname 		= $tmpl['displayname'];
			$items[$iS]->displayiconvm 		= '';
			$items[$iS]->startpiclens 		= $tmpl['startpiclens'] ;
			$items[$iS]->type				= 2;
			
			// Trash icon
			if ($tmpl['trash'] == 1) {
				$items[$iS]->trash	= 1;
			} else {
				$items[$iS]->trash	= 0;
			}
			
			// Publish Unpublish icon
			if ($tmpl['publishunpublish'] == 1) {
				$items[$iS]->publishunpublish	= 1;
			} else {
				$items[$iS]->publishunpublish	= 0;
			}
			
			// PICLENS 
			if($tmpl['enablepiclens']) { 
				$items[$iS]->enable_piclens	= 1; 
			} else { 
				$items[$iS]->enable_piclens	= 0; 
			}
			
			// 2 GEOTAGGING IMAGE
			// We have checked the category so if geotagging is enabled
			// and there is no geotagging data for category, then $tmpl['displayicongeo'] = 0;
			// so we need to check it for the image too, we need to set the $tmpl['displayicongeoimage'] for image only
			// we are in loop now
			$tmpl['displayicongeoimagetmp'] = 0;
			if ($tmpl['displayicongeoimage'] == 1) {
				
				$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 {
					$tmpl['displayicongeoimagetmp'] = 0;
				}
			}
			
			// GEOTAGGING
			if($tmpl['displayicongeo'] == 1 || $tmpl['displayicongeoimagetmp'] == 1) { 
				$items[$iS]->displayicongeo		= 1;
				$tmpl['displayicongeobox']	= 1;// because of height of box			
			} else { 
				$items[$iS]->displayicongeo	= 0; 
			}
			
			// Set it back because of loop
			$tmpl['displayicongeoimagetmp'] = 0;
			
			// CAMERA INFO 
			if($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]) && isset($items[$iS]->extlink1[1])) {
					$items[$iS]->displayiconextlink1		= 1;
					$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.'.$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]) && isset($items[$iS]->extlink2[1])) {
					$items[$iS]->displayiconextlink2		= 1;
					$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.'.$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;';
			}
			
			if ($enable_overlib == 1) { 
				$items[$iS]->overlib			= 1;
				$items[$iS]->overlib_value 		= " onmouseover=\"return overlib('".htmlspecialchars( addslashes('<center>' . JHTML::_( 'image.site', str_replace ('phoca_thumb_m_','phoca_thumb_l_',$items[$iS]->linkthumbnailpath), '', '', '', $items[$iS]->title ) . "</center>"))."', CAPTION, '". $items[$iS]->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){ 
				$items[$iS]->overlib			= 2;
				$items[$iS]->description		= str_replace("\n", '<br />', $items[$iS]->description);
				$items[$iS]->overlib_value 		= " onmouseover=\"return overlib('".htmlspecialchars( addslashes('<div style="'.$divPadding.'">'.$items[$iS]->description.'</div>'))."', CAPTION, '". $items[$iS]->title."', BELOW, RIGHT, CSSCLASS, TEXTFONTCLASS, 'fontPhocaClass', FGCLASS, 'fgPhocaClass', BGCLASS, 'bgPhocaClass', CAPTIONFONTCLASS,'capfontPhocaClass', CLOSEFONTCLASS, 'capfontclosePhocaClass');\""
				. " onmouseout=\"return nd();\" ";				
			} else if ($enable_overlib == 3){ 
				$items[$iS]->overlib			= 3;
				$items[$iS]->description		= str_replace("\n", '<br />', $items[$iS]->description);
				$items[$iS]->overlib_value 		= " onmouseover=\"return overlib('".PhocaGalleryText::strTrimAll(htmlspecialchars( addslashes( '<div style="text-align:center"><center>' . JHTML::_( 'image.site', str_replace ('phoca_thumb_m_','phoca_thumb_l_', $items[$iS]->linkthumbnailpath), '', '', '', $items[$iS]->title ) . '</center></div><div style="'.$divPadding.'">' . $items[$iS]->description . '</div>')))."', CAPTION, '". $items[$iS]->title."', BELOW, RIGHT, BGCLASS,'bgPhocaClass', FGCLASS,'fgPhocaClass', FGCOLOR, '".$tmpl['olfgcolor']."', BGCOLOR, '".$tmpl['olbgcolor']."', TEXTCOLOR, '".$tmpl['oltfcolor']."', CAPCOLOR, '".$tmpl['olcfcolor']."');\""
				. " onmouseout=\"return nd();\" ";				
			} else { 
				$items[$iS]->overlib			= 0;
				$items[$iS]->overlib_value		= '';				
			}
			
						
			// VirtueMart link 
			if ($tmpl['displayiconvm'] == 1) {
			
				phocagalleryimport('virtuemart.virtuemart');				
				$vmLink	= PhocaGalleryVirtueMart::getVmLink($items[$iS]->vmproductid, $errorMsg);
				if (!$vmLink) {
					$items[$iS]->displayiconvm	= '';
				} else {
					$items[$iS]->displayiconvm	= 1;
					$items[$iS]->vmlink			= $vmLink;
					$tmpl['displayiconvmbox']	= 1;// because of height of box
				}
				
			} else {
				$items[$iS]->displayiconvm = '';
			}
			// End VM Link
			
			// V O T E S - IMAGES
			if ((int)$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(((float)$items[$iS]->votesaverageimg / 0.5)) * 0.5;
						$items[$iS]->voteswidthimg		= 16 * $items[$iS]->votesaverageimg;
					} else {
						$items[$iS]->votesaverageimg = (int)0;// not float displaying
					}
					
				}
			}
			
			$iS++;
		}
	
		
		// Upload Form - - - - - - - - - - - - -
		// Set FTP form
		$ftp = !JClientHelper::hasCredentials('ftp');

		// PARAMS - Upload size
		$tmpl['uploadmaxsize'] = $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)
		$tmpl['notregistered'] 	= true;
		$tmpl['name']		= '';
		if ($user->aid > 0) {
			$tmpl['notregistered'] 	= false;
			$tmpl['name']		= $user->name;
		}	
			
		// VOTES Statistics
		if ((int)$tmpl['displayrating'] == 1) {
			$tmpl['votescount']		= 0;
			$tmpl['votesaverage'] 	= 0;
			$tmpl['voteswidth']		= 0;
			$votesStatistics	= PhocaGalleryRateCategory::getVotesStatistics((int)$id);
			if (!empty($votesStatistics->count)) {
				$tmpl['votescount'] = $votesStatistics->count;
			}
			if (!empty($votesStatistics->average)) {
				$tmpl['votesaverage'] = $votesStatistics->average;
				if ($tmpl['votesaverage'] > 0) {
					$tmpl['votesaverage'] 	= round(((float)$tmpl['votesaverage'] / 0.5)) * 0.5;
					$tmpl['voteswidth']		= 22 * $tmpl['votesaverage'];
				} else {
					$tmpl['votesaverage'] = (int)0;// not float displaying
				}
				
			}
			if ((int)$tmpl['votescount'] > 1) {
				$tmpl['votestext'] = 'votes';
			} else {
				$tmpl['votestext'] = 'vote';
			}
		
			// Already rated?
			$tmpl['alreadyrated']	= PhocaGalleryRateCategory::checkUserVote( (int)$id, (int)$user->id );
		}
		
		

		// COMMENTS
		if ((int)$tmpl['displaycomment'] == 1) {
			$document->addScript(JURI::base(true).'/components/com_phocagallery/assets/js/comments.js');
			$document->addCustomTag(PhocaGalleryRenderFront::renderCommentJS((int)$tmpl['maxcommentchar']));
		
			$tmpl['alreadycommented'] 	= PhocaGalleryCommentCategory::checkUserComment( (int)$id, (int)$user->id );
			$commentItem				= PhocaGalleryCommentCategory::displayComment( (int)$id );
	
			$this->assignRef( 'commentitem',		$commentItem);
		}

		
		
		// - - - - - - - - - - - - - - - -
		// TABS
		// - - - - - - - - - - - - - - - - 
		$displayTabs	= 0;
		
		// R A T I N G
		if ((int)$tmpl['displayrating'] == 0) {
			$currentTab['rating'] = -1;	
		} else {
			$currentTab['rating'] = $displayTabs;
			$displayTabs++;
		}
		
		// C O M M E N T S
		if ((int)$tmpl['displaycomment'] == 0) {
			$currentTab['comment'] = -1;
		} else {
			$currentTab['comment'] = $displayTabs;
			$displayTabs++;	
		}
		
		// S T A T I S T I C S
		if ((int)$tmpl['displaycategorystatistics'] == 0) {
			$currentTab['statistics'] = -1;
		} else {
			$currentTab['statistics'] = $displayTabs;
			$displayTabs++;

			
			$tmpl['displaymaincatstat']			= $params->get( 'display_main_cat_stat', 1 );
			$tmpl['displaylastaddedcatstat']	= $params->get( 'display_lastadded_cat_stat', 1 );
			$tmpl['displaymostviewedcatstat']	= $params->get( 'display_mostviewed_cat_stat', 1 );
			$tmpl['countlastaddedcatstat']		= $params->get( 'count_lastadded_cat_stat', 3 );
			$tmpl['countmostviewedcatstat']		= $params->get( 'count_mostviewed_cat_stat', 3 );
			
			
			if ($tmpl['displaymaincatstat'] == 1) {
				$numberImgP		= $model->getCountImages($id, 1);
				$tmpl['numberimgpub'] 	= $numberImgP->countimg;
				$numberImgU		= $model->getCountImages($id, 0);
				$tmpl['numberimgunpub'] = $numberImgU->countimg;
				$categoryViewed	= $model->getHits($id);
				$tmpl['categoryviewed'] = $categoryViewed->catviewed;
			}
			
			// M O S T   V I E W E D   I M A G E S 
			//$tmpl['mostviewedimg'] = array();
			if ($tmpl['displaymostviewedcatstat'] == 1) {
				$mostViewedImages	= $model->getStatisticsImages($id, 'hits', 'DESC', $tmpl['countmostviewedcatstat']);
				for($i = 0; $i <  count($mostViewedImages); $i++) {
					$itemMVI 		=& $mostViewedImages[$i];
					$itemMVI->button 				= &$button;
					$itemMVI->button2 				= &$button2;
					$itemMVI->buttonother 			= &$buttonOther;
					$itemMVI->displayicondetail 	= $tmpl['displayicondetail'];
					$itemMVI->displayname 			= $tmpl['displayname'];
					$itemMVI->type		 			= 2;
					
					$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', 1, 'get', 'int')  );
					$imgLink	= JURI::base(true) . '/'.$thumbLink->rel;
					if ($tmpl['detailwindow'] == 2) {
						$itemMVI->link 		= $imgLink;
					} else {
						$itemMVI->link 		= $siteLink;
					}
					//$tmpl['mostviewedimg'][] = $itemMVI;
				}
				
				$tmpl['mostviewedimg'] = $mostViewedImages;
			}
			
			// L A S T   A D D E D   I M A G E S
			//$tmpl['lastaddedimg'] = array();
			if ($tmpl['displaylastaddedcatstat'] == 1) {			
				$lastAddedImages	= $model->getStatisticsImages($id, 'date', 'DESC', $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', 1, 'get', 'int')  );
					$itemLAI->button 				= &$button;
					$itemLAI->button2 				= &$button2;
					$itemLAI->buttonother 			= &$buttonOther;
					$itemLAI->displayicondetail 	= $tmpl['displayicondetail'];
					$itemLAI->displayname 			= $tmpl['displayname'];
					$itemLAI->type		 			= 2;
					
					$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', 1, 'get', 'int')  );
					$imgLink	= JURI::base(true) . '/'.$thumbLink->rel;
					if ($tmpl['detailwindow'] == 2) {
						$itemLAI->link 		= $imgLink;
					} else {
						$itemLAI->link 		= $siteLink;
					}
					//$tmpl['lastaddedimg'][] = $itemLAI;
				}
				$tmpl['lastaddedimg'] = $lastAddedImages;
			}
		}
		
		// G E O T A G G I N G
		if ((int)$tmpl['displaycategorygeotagging'] == 0) {
			$currentTab['geotagging'] = -1;
		} else {
			$currentTab['geotagging'] = $displayTabs;
			$displayTabs++;	
			
			$tmpl['googlemapsapikey'] 			= $params->get( 'google_maps_api_key', '' );
			$tmpl['categorymapwidth'] 			= $params->get( 'category_map_width', 500 );
			$tmpl['categorymapheight'] 			= $params->get( 'category_map_height', 400 );
	
		}
		
		// U P L O A D
		if ((int)$tmpl['displayupload'] == 0) {
			$currentTab['upload'] = -1;
		}else {
			$currentTab['upload'] = $displayTabs;
			$displayTabs++;	
		}
	
		$tmpl['displaytabs']	= $displayTabs;
		$tmpl['currenttab']		= $currentTab;
		
		
		// ACTION
		$tmpl['action']	= $uri->toString();
		
		// ADD STATISTICS
		$model->hit($id);
		
		// ADD JAK DATA CSS style
		if ( $tmpl['detailwindow'] == 6 ) {
			$document->addCustomTag('<script type="text/javascript">'
			. 'var dataJakJs = ['
			. implode($tmpl['jakdatajs'], ',')
			. ']'
			. '</script>');
		}
			
		// ASIGN
		$this->assignRef( 'tmpl',				$tmpl);
		$this->assignRef( 'params' ,			$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 );
		parent::display($tpl);
		echo $tmpl['displaypage'];
	}
	
	/**
	 * Method to add Breadcrubms in Phoca Gallery
	 * @param array $category Object array of Category
	 * @param int $rootId Id of Root Category
	 * @param int $displayStyle Displaying of Breadcrubm - Nothing, Category Name, Menu link with Name
	 * @return string Breadcrumbs
	 */
	function _addBreadCrumbs($category, $rootId, $displayStyle)
	{
	    global $mainframe;
		$i = 0;
	    while (isset($category->id))
	    {
			$crumbList[$i++] = $category;
			if ($category->id == $rootId)
			{
				break;
			}

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

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

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