function ut_portfolio_flex_slider($postID, $singular = false, $image_style = "ut-square", $ut_page_hero_type = '')
 {
     /* switch option key */
     switch ($ut_page_hero_type) {
         case 'slider':
             $optionkey = 'ut_page_hero_slider';
             break;
         case 'transition':
             $optionkey = 'ut_page_hero_fancy_slider';
             break;
         case 'tabs':
             $optionkey = 'ut_page_hero_tabs';
             break;
         default:
             $optionkey = '';
     }
     $ut_background_slider_slides = get_post_meta($postID, $optionkey, true);
     if (empty($ut_page_hero_type) || empty($ut_background_slider_slides)) {
         /* get all necessary image ID's from content gallery */
         $ut_gallery_images = ut_portfolio_extract_gallery_images_ids($postID);
         /* start output */
         if (!empty($ut_gallery_images) && is_array($ut_gallery_images)) {
             $script = "<script type='text/javascript'>\n            /* <![CDATA[ */\n            \n            (function(\$){\n                \n                'use strict';\n        \n                \$(window).load(function(){\n                    \n                    \$('#portfolio-gallery-slider-{$postID}').flexslider({\n                        \n                        animation: 'fade',\n                        controlNav: false,\n                        animationLoop: true,\n                        slideshow: false,\n                        smoothHeight: true,\n                        startAt: 0\n                                            \n                    });\n                    \n                });\n            \n            })(jQuery);\n            \n            /* ]]> */\n            </script>";
             $slider = '<div class="ut-portfolio-gallery-slider flexslider" id="portfolio-gallery-slider-' . $postID . '">';
             $slider .= '<ul class="slides">';
             foreach ($ut_gallery_images as $ID => $imagedata) {
                 if (isset($imagedata->guid) && !empty($imagedata->guid)) {
                     $image = $imagedata->guid;
                     // fallback to older wp versions
                 } else {
                     $image = wp_get_attachment_image_src($imagedata, 'single-post-thumbnail');
                 }
                 if (!empty($image[0])) {
                     $slider .= '<li>';
                     /* output for single pages */
                     if (!$singular) {
                         $slider .= '<img width="' . $image[1] . '" height="' . $image[2] . '" src="" class="ut-load-me ' . $image_style . '" alt="' . get_the_title($postID) . '" data-original="' . $image[0] . '" />';
                     } else {
                         $slider .= '<img src="' . $image[0] . '" class="ut-load-me ' . $image_style . '" alt="' . get_the_title($postID) . '" />';
                     }
                     $slider .= '</li>';
                 }
             }
             $slider .= '</ul>';
             $slider .= '</div>';
             if ($singular) {
                 $slider = ut_compress_java($script) . $slider;
             }
             return $slider;
         }
     }
     if (!empty($ut_page_hero_type) && !empty($ut_background_slider_slides) && is_array($ut_background_slider_slides)) {
         $script = "<script type='text/javascript'>\n                /* <![CDATA[ */\n                \n                (function(\$){\n                    \n                    'use strict';\n            \n                    \$(window).load(function(){\n                        \n                        \$('#portfolio-gallery-slider-{$postID}').flexslider({\n                            \n                            animation: 'fade',\n                            controlNav: false,\n                            animationLoop: true,\n                            slideshow: false,\n                            smoothHeight: true,\n                            startAt: 0\n                                                \n                        });\n                        \n                    });\n                \n                })(jQuery);\n                \n                /* ]]> */\n                </script>";
         $slider = '<div class="ut-portfolio-gallery-slider flexslider" id="portfolio-gallery-slider-' . $postID . '">';
         $slider .= '<ul class="slides">';
         foreach ($ut_background_slider_slides as $slide) {
             $slider .= '<li>';
             if (!$singular) {
                 $image = array("1920", "1080");
                 if (function_exists('ut_get_image_id')) {
                     $imageID = ut_get_image_id($slide['image']);
                     $image = wp_get_attachment_image_src($imageID, 'single-post-thumbnail');
                 }
                 $slider .= '<img width="' . $image[1] . '" height="' . $image[2] . '" src="" class="ut-load-me ' . $image_style . '" alt="' . get_the_title($postID) . '" data-original="' . $slide['image'] . '" />';
             } else {
                 $slider .= '<img src="' . $slide['image'] . '" class="ut-load-me ' . $image_style . '" alt="' . get_the_title($postID) . '" />';
             }
             $slider .= '</li>';
         }
         $slider .= '</ul>';
         $slider .= '</div>';
         if ($singular) {
             $slider = ut_compress_java($script) . $slider;
         }
         return $slider;
     }
 }
    static function generate_gallery_script($gallery_options, $counter = 3)
    {
        $gutter = !empty($gallery_options['gutter']) ? 'on' : '';
        $script = '
        <script type="text/javascript">
        /* <![CDATA[ */
        (function($) {
			    
            $(document).ready(function($){
 
                "use strict";
                
                var $win = $(window),
                    $container = $("#ut-portfolio-items-' . self::$token . '"),
					columns = ' . $gallery_options['columns'] . ',
					gutter = "' . $gutter . '",
					gutterwidth = "",
					$sortedItems = "";                
				
				function ut_call_isotope( update ) {
					
					if( $(window).width() > 1024) {
						columns = ' . $gallery_options['columns'] . ';
					} 
					
					if( $(window).width() <= 1024) {
						columns = 3;
					} 
					
					if( $(window).width() <= 767) {
						columns = 2;
					} 				
										
					if( gutter === "on" ) {
						$container.children().width( Math.floor($container.width() / columns - ( 20  * ( columns - 1 ) / columns ))).addClass("show");
						gutterwidth = 20;
					} else {
						$container.children().width( Math.floor($container.width() / columns )).addClass("show");
						gutterwidth = 0;
					}
															
					/* IsoTope
					================================================== */                                    
					$container.isotope({
					  
					  	itemSelector : ".ut-masonry",
					  	animationEngine : "best-available",
					  	resizable: false,
					  	layoutMode: "fitRows",
					  	masonry: { columnWidth: $container.width() / columns - gutterwidth },
						itemPositionDataEnabled: true,
						onLayout: function (elems, instance) {
														
                            // trigger scroll for lazy load
                            $win.trigger("scroll");
                            
							$container.addClass("animated");
							elems.addClass("animated");
							
						}
						
					}).isotope("reLayout"); 				
				
				}
				
				
				function ut_update_isotope_grid() {
					
					if( $sortedItems ) {
					
						$container.find(".last").removeClass("last");
						var i = columns - 1;		  
						
						$.each($sortedItems, function(key, value) {
							if($(this).hasClass("isotope-hidden")) {
								i++;
							}
							if(((key-i)/ columns)==0) {
								$(this).addClass("last");
								i = columns+i;
							}
						});
						
						$container.isotope("reLayout",function(){
                           $.waypoints("refresh");
                        });
					
					}
					
				}
				
				$(window).smartresize(function(){
												
					/* update isotope */
					ut_call_isotope();
					
					/* update isotope grid */
					ut_update_isotope_grid();
							
				}); 
				
                $(window).load(function() {
            		
					/* create isotope */
					ut_call_isotope();
					
					/* store sorted items */
					$sortedItems = $container.data("isotope").$filteredAtoms;
					
					/* update isotope grid */
					ut_update_isotope_grid();';
        /* additonal call for ajax filter */
        if ($gallery_options['filter_type'] == 'ajax') {
            $script .= '
				
                    /* IsoTope Filtering
                    ================================================== */               
                    $("#ut-portfolio-menu-' . self::$token . ' a").each(function( index ) {
                            
                            var searchforclass = $(this).attr("data-filter");
                            if( !$(searchforclass).length  ) {
                                // hide filter if we do not have any children to filter
                                $(this).hide();
                            }
                            
                    });				
                    
                    $("#ut-portfolio-menu-' . self::$token . ' a").click(function(){
                      
                        var selector = $(this).attr("data-filter");
                        $container.isotope({ filter: selector });
                        
						/* update isotope grid */
                        ut_update_isotope_grid();
                      
                        if ( !$(this).hasClass("selected") ) {
                            $(this).parents("#ut-portfolio-menu-' . self::$token . '").find(".selected").removeClass("selected");
                            $(this).addClass("selected");
                        }          
                      	                        
                        return false;
                      
                    }); ';
        }
        $script .= ' });  
        
            });
			
        }(jQuery));
		    
        /* ]]> */
        </script>        
        ';
        return ut_compress_java($script);
    }