jQuery.fn.Cscroll = function(options){
     // настройки по умолчанию
      var options = jQuery.extend({
         stTopCscroll    : {'background-color' : 'red'},
         stCenterCscroll : {'background-color' : 'yellow'},
         stBottomCscroll : {'background-color' : 'blue'},
         stElCscroll     : {'background-color' : '#ccc'},
         paddingContent  : '0 12px 0 0'
      },options);
      
      return this.each(function() {
         //jQuery(this).html('test');
         
         var blockWidth  = jQuery(this).width();
         var blockheight = jQuery(this).height();
         var blockContentheight  = jQuery(this)[0].scrollHeight;
         var scrollWidth = '10px';         
         var heightBootomTop = 10;
         var mainContainer = jQuery(this);
         
         // проверяется ие, если ие true else false
         function IE(){
            var IE='\v'=='v';
            return IE;
         };
         
         
         jQuery(this).css({
            'position': 'relative !important',
            'padding' : options.paddingContent,
            'overflow': 'hidden'
         });
         
         var htmlScroll = "<div class='containerCscroll'>"
                        +     "<div class='topCscroll'></div>"
                        +     "<div class='centerCscroll'>"
                        +        "<div class='elCscroll'></div>"
                        +     "</div>"
                        +     "<div class='bottomCscroll'></div>"
                        + "</div>";
         

         jQuery(this).parent().append(htmlScroll);
         
         var containerScroll = jQuery(this).parent().children(".containerCscroll");
         // set css
         jQuery(this)
                 .parent()
                 .children(".containerCscroll")
                 .css({
                          'width' : scrollWidth,
                          'height': blockheight+'px',
                          'position' : 'absolute',
                          'right' : 0,
                          'top'   : mainContainer.offset().top
                       });
         jQuery(this)
                .parent()
                .children(".containerCscroll")
                .children(".topCscroll")
                .css(options.stTopCscroll)
                .css({
                      'width' : scrollWidth,
                      'height': heightBootomTop+'px',
                      'position' : 'relative',
                      'float' : 'left'
                   });
                
                                                       
         jQuery(this)
                .parent()
                .children(".containerCscroll")
                .children(".centerCscroll")
                .css(options.stCenterCscroll)
                .css({
                      'width' : scrollWidth,
                      'height': blockheight-heightBootomTop*2,
                      'position' : 'relative',
                      'float' : 'left'
                   });
              
         var heightEl =  (blockheight / blockContentheight)*blockheight;  
         var maxMrg = blockheight - heightEl;
         
         jQuery(this)
                .parent()
                .children(".containerCscroll")
                .children(".centerCscroll")
                .children(".elCscroll")
                .css(options.stElCscroll)
                .css({
                      'width' : scrollWidth,
                      'height': heightEl,
                      'position' : 'absolute',
                      'top' : 0
                   })
                .draggable({
                            containment: 'parent',
                			start: function(event, ui) {
                				
                			},
                			drag: function(event, ui) {
                			 
           			            if(ui.position.top > maxMrg){
                                    setScroll(maxMrg,mainContainer,false);
                                }else{
                                    setScroll(ui.position.top,mainContainer,false);
                                }
                			},
                			stop: function(event, ui) {
                				
                			}
                		});
                                                       
         jQuery(this)
                .parent()
                .children(".containerCscroll")
                .children(".bottomCscroll")
                .css(options.stBottomCscroll)
                .css({
                      'width' : scrollWidth,
                      'height': heightBootomTop+'px',
                      'position' : 'relative',
                      'float' : 'left'
                   });
                  
          var stepWh = 0;
          var cntWh = 0;
          var step = 40;
          
          mainContainer.mousewheel(function(event, delta) {
                
                if(delta == -1){
                    if(stepWh >= maxMrg){
                        //stepWh +=step;
                        var balance = maxMrg-stepWh
                        stepWh = stepWh+balance
                        console.log('stop niz '+stepWh);
                       // return; 
                    }else{
                        stepWh +=step;
                    }
                    setScroll(stepWh,mainContainer,true);
                }else{
                    if(stepWh <= 10){
                        stepWh = 0;
                        console.log('stop verx');
                        return; 
                    }
                    stepWh -=step;
                    setScroll(stepWh,mainContainer,true);
                }
          });
           
          function setScroll(val,container,fl){
                var ost = maxMrg - val;
                if(ost < 0){
                    return;
                }
                    
                container
                    .scrollTop(val);
			//	containerScroll
                //    .css({top:val});
                    if(fl){
                        containerScroll
                            .children(".centerCscroll")
                            .children(".elCscroll")
                            .css({top:val});
                    }
                    
          }
      });


};
