	/**
	  * @category
	  * @package        Ufukbahar İnterface
	  * @author         Oktay Başkuş
	  * @copyright      2005 - 2011 ICON Perception Management Co.
	  * @license
	  * @version
	  * @filesource
	  * @link		http://www.iconpm.com
	  * @see
	  * @since
	  **/
(function($,win,doc){
    
    
    $.fn.ufukbaharGallery = function(){
        var $this = $(this);
        if($this.length == 0) { return true }

        var $lists  = $('.gallery-list')
        var $imgdiv = $this.find('.gallery-image')
        var $thmbs  = $this.find('.gallery-thumbs')
        var $scroll  = $this.find('.thumbs-scroll')
        var $left_btns  = $this.find('.buttons-left')
        var $right_btns = $this.find('.buttons-right')
        
        
        if($lists.find('a.current').length==0){
            return $lists.find('a').first().trigger('click');
        }
        if(!$thmbs.find('a').length){
            return true;
        }
        
        
        // create control buttons //
        var $pageprev_btn = $('<a class="page-prev"></a>');
        var $pagenext_btn = $('<a class="page-next"></a>');
        var $previus_btn = $('<a class="image-previus"></a>');
        var $next_btn = $('<a class="image-next"></a>');
        var $play_btn = $('<a class="slide-play"></a>');
        
        $left_btns.empty();
        $left_btns.append($pageprev_btn);
        $left_btns.append($previus_btn);
        
        $right_btns.empty();
        $right_btns.append($next_btn);
        $right_btns.append($pagenext_btn);
        $right_btns.append($play_btn);
        
        // buttons & thumbs animate //
        $('.buttons-left, .buttons-right',$this).fadeTo(1000,1)
        $thmbs.show().css({opacity:0, top:10}).animate({opacity:1, top:0},500);
        
        
        // buttons commands //
        var scrrollmax = $thmbs.find('a').last().width()
                        +$thmbs.find('a').last().offset().left
                        -$thmbs.find('a').first().offset().left
                        +8
                        -$thmbs.width();
        var scrollcurleft = 0;
        var scrolling = false;
        var scrollamount = 1;
        $pagenext_btn.mousedown(function(){
            scrollcurleft-=470;
            scrollcurleft = scrollcurleft>0?0:scrollcurleft;
            scrollcurleft = scrollcurleft<-scrrollmax?-scrrollmax:scrollcurleft;
            $scroll.stop().animate({left:scrollcurleft},500,"easeOutBack");
           // scrolling = true;
           // scrollamount = 10;
        });
        $pagenext_btn.mouseup(function(){
            scrolling = false;
        })
        $pageprev_btn.mousedown(function(){
            scrollcurleft+=470;
            scrollcurleft = scrollcurleft>0?0:scrollcurleft;
            scrollcurleft = scrollcurleft<-scrrollmax?-scrrollmax:scrollcurleft;
            $scroll.stop().animate({left:scrollcurleft},500,"easeOutBack");
            //scrolling = true;
            //scrollamount = -10;
        });
        $pageprev_btn.mouseup(function(){
            scrolling = false;
        })
        
        var slidertime = 5000;
        
        $previus_btn.click(function(){
            var $prev = $thmbs.find('.current').prev();
            if($prev.length==0)
                $prev = $thmbs.find('a').last();
            autoscrollTo($prev)
            $prev.trigger('click');
        })
        
        $next_btn.click(function(){
            var $next = $thmbs.find('.current').next();
            if($next.length==0)
                $next = $thmbs.find('a').first();
            autoscrollTo($next)
            $next.trigger('click');
        })
        
        if(win.slidetmo)clearTimeout(win.slidetmo);
        var slideon = false;
        $play_btn.click(function(){
            if(!slideon){
                $play_btn.addClass('playing')
                slideon = true;
                $thmbs.fadeTo(1000,0.5);
                $left_btns.find('a').not('.dsbl').fadeTo(1000,0.3);
                $right_btns.find('a').not('.dsbl').not($play_btn).fadeTo(1000,0.3);
                
                $next_btn.trigger('click');
                if(win.slidetmo)clearTimeout(win.slidetmo)
                win.slidetmo = setInterval(function(){
                    $next_btn.trigger('click');
                },slidertime)
            }else {
                $play_btn.removeClass('playing')
                slideon = false;
                if(win.slidetmo)clearTimeout(win.slidetmo)
                $thmbs.fadeTo(1000,1);
                $left_btns.find('a').not('.dsbl').fadeTo(1000,1);
                $right_btns.find('a').not('.dsbl').fadeTo(1000,1);
            }
        })
        
        var autoscrollTo = function ($obj){
            scrolling = false;
            scrollamount = 0;
            scrollingpx = 0;
            var tasmamiktar = 0;
            if($obj.offset().left > $thmbs.offset().left+$thmbs.width()-$obj.width()){
                tasmamiktar=$obj.offset().left-($thmbs.offset().left+$thmbs.width()-$obj.width())
                scrollcurleft-=tasmamiktar+6;
                $scroll.stop().animate({left:scrollcurleft},500);
            }
            else if($obj.offset().left < $thmbs.offset().left){
                tasmamiktar=$obj.offset().left-($thmbs.offset().left)
                scrollcurleft-=tasmamiktar;
                $scroll.stop().animate({left:scrollcurleft},500);
            }
        }
        
        var scrollingpx = 0;
        if(win.scrolltmo)clearTimeout(win.scrolltmo)
        win.scrolltmo = setInterval(function(){
            if(scrolling){
                scrollingpx+=0.5
                scrollingpx = scrollingpx>10?10:scrollingpx;
                scrollcurleft-=scrollamount*(scrollingpx/10);
                scrollcurleft = scrollcurleft>0?0:scrollcurleft;
                scrollcurleft = scrollcurleft<-scrrollmax?-scrrollmax:scrollcurleft;
                
                $scroll.css({'left':scrollcurleft});
            }
            else {
                scrollingpx = scrollingpx/1.5;
                if(scrollingpx){
                    scrollcurleft-=scrollamount*(scrollingpx/10);
                    scrollcurleft = scrollcurleft>0?0:scrollcurleft;
                    scrollcurleft = scrollcurleft<-scrrollmax?-scrrollmax:scrollcurleft;
                    $scroll.css({'left':scrollcurleft});
                }
            }
            
        },40);
        
        // disable scroll buttons
        if($thmbs.find('a').length<19){
            $scroll.css({'width':'auto', 'float':'left'});
            $scroll.css('left',($thmbs.width()-$scroll.width())/2);
            $pagenext_btn.unbind('mousedown')
            $pagenext_btn.unbind('mouseup')
            $pagenext_btn.fadeTo(100,0.3)
            $pagenext_btn.addClass('dsbl')
            
            $pageprev_btn.unbind('mousedown')
            $pageprev_btn.unbind('mouseup')
            $pageprev_btn.fadeTo(100,0.3)
            $pageprev_btn.addClass('dsbl')
        }
        
        // disable navigate buttons
        if($thmbs.find('a').length<2){
            $previus_btn.unbind('click')
            $previus_btn.fadeTo(100,0.3)
            $previus_btn.addClass('dsbl')
            
            $next_btn.unbind('click')
            $next_btn.fadeTo(100,0.3)
            $next_btn.addClass('dsbl')
            
            $play_btn.unbind('click')
            $play_btn.fadeTo(100,0.3)
            $play_btn.addClass('dsbl')
        }
        
        var divw = $imgdiv.width();
        var divh = $imgdiv.height();
        var divpercentage = divw / divh;
        
        
        $thmbs.find('a').click(function(){
            if($(this).hasClass('current')){
                return false;
            }
            $thmbs.find('.current').removeClass('current')
            $(this).addClass('current')
            if(slideon){
                var lastimg = $('img',$imgdiv);
            }
            else $imgdiv.empty()
            if(!$('#ajaxloader').is(':visible')){
                $('#ajaxloader').stop().fadeTo(1000,1)
            }
            var currurl = $(this).attr('href');
            var currimg = $('<img />').load(function(){
                $('#ajaxloader').stop().fadeOut(1000)
                var thisw = $(this).width();
                var thish = $(this).height();
                var imagepercentage = thisw / thish;
                
                
                var divw = $imgdiv.width();
                var divh = $imgdiv.height();
                var divpercentage = divw / divh;
                if(thisw<divw && thish<divh){
                    // small images //
                    $(this).css('margin-left',(divw-thisw)/2);
                    $(this).css('margin-top',(divh-thish)/2);
                    divw = thisw;
                    divh = thisw;
                    divpercentage = divw / divh;
                }else {
                    // big images
                    if(imagepercentage>divpercentage || true){ // long image 
                        $(this).width(thisw*(divh/thish))
                        $(this).height(divh)
                        $(this).css('margin-left',-(thisw*(divh/thish)-divw)/2);
                    }else {

                        $(this).width(divw)
                        $(this).height(thish*(divw/thisw))
                        $(this).css('margin-top',-(thish*(divw/thisw)-divh)/2);

                    }
                }
                
                if(slideon){
                    lastimg.fadeOut(3000,function(){
                        $(this).remove();
                    })
                    $(this).fadeIn(3000);
                }else{
                    $(this).fadeIn();
                }
            }).attr('src',currurl);
            
            $imgdiv.append(currimg)
            
            if(slideon){
                if(win.slidetmo)clearTimeout(win.slidetmo)
                win.slidetmo = setInterval(function(){
                    $next_btn.trigger('click');
                },slidertime)                
            }
            
            return false;
        })
        
        if($thmbs.find('.current').length == 0){
            $thmbs.find('a').first().trigger('click');
        }
            
        
    }
    
    
    $.fn.ufukbaharGalleryForpress = function(){
        
        var $this = $(this);
        if($this.length == 0) { return true }
            
        var $lists  = $('.gallery-list')
        var $imgdiv = $this.find('.gallery-image')
        var $thmbs  = $this.find('.gallery-thumbs')
        var $scroll  = $this.find('.thumbs-scroll')
        var $left_btns  = $this.find('.buttons-left')
        var $right_btns = $this.find('.buttons-right')
        $imgdiv.hide()
        $thmbs.fadeIn()
        $thmbs.find('a').fadeTo(1000,.5)
        $thmbs.find('a').hover(function(){
            $(this).attr('target','_blank')
            $(this).stop().fadeTo(300,1)
        },function(){
            $(this).stop().fadeTo(300,0.5)
        })
    }
    
    
    
    
})(jQuery,window,document)
