
jQuery.fn.mousehold = function(timeout, f) {
	if (timeout && typeof timeout == 'function') {
		f = timeout;
		timeout = 100;
	}
	if (f && typeof f == 'function') {
		var timer = 0;
		var fireStep = 0;
		return this.each(function() {
			jQuery(this).mousedown(function() {
				fireStep = 1;
				var ctr = 0;
				var t = this;
				timer = setInterval(function() {
					ctr++;
					f.call(t, ctr);
					fireStep = 2;
				}, timeout);
			})

			clearMousehold = function() {
				clearInterval(timer);
				if (fireStep == 1) f.call(this, 1);
				fireStep = 0;
			}
			
			jQuery(this).mouseout(clearMousehold);
			jQuery(this).mouseup(clearMousehold);
		})
	}
}


jQuery.fn.gorgeto = function(scrollFrame, scrollableContent, scroller, btnUP, btnDN,leftOrTop){
  
      //variables
      var error = "";
      var movingInterval = 0;
      var scrollerPos = "0px"
      var scrollerProportion = 0;
      var newPosition = 0;
      var scrollFrameBound = "0px"
      var activeContent = "x";
      var scrollerMovingInterval = 0;
      var scrollablePos = '0px';
      var axd = 1;
     
      
     
      var angle = "x";
      if (leftOrTop == "left")  angle = "width";
      		else  angle = "height";
      
      
      //css 
    /*
        if ($(scrollableContent).css("position")!="absolute") error = error + ("The position of " +  scrollableContent + " has to be 'absolute'.");
        if ($(scrollFrame).css("position")!="relative")  error = error + ("The position of " +  scrollFrame + " has to be 'relative'.");
        if ($(scrollFrame).css("overflow")!="hidden") error = error + ("The overflow of " +  scrollFrame + " has to be 'hidden. '");
        if (($(scrollFrame).css(leftOrTop)=="") || ($(scrollFrame).css(angle)=="") || ($(scroller).css(angle)=="") ||   ($(this).css(angle)=="") || ($(this).css(angle)=="auto") ) error = error + ("The "+ leftOrTop + ", and the "+angle+" of " +  scrollFrame + ", and the "+angle+" of "+scroller+", and the "+ angle+" of #"+$(this).attr("id")+" has to have a value. '");
        
        
        
      */	
        
        if (error != ""){
        
        alert(error); 
        
        }else{   
        
       scrollFrameBound = $(scrollFrame).css(leftOrTop).replace("px","");
     
       
       var scrollvalue=parseInt($(scrollFrame).css(angle  ))-83;
       //alert(angle+":"+$(scrollFrame).css(angle));
            
     if (leftOrTop == "left")  movingInterval = $(scrollableContent).width() - $(scrollFrame).width() + 100;
      		else  movingInterval = $(scrollableContent).height() - $(scrollFrame).height() + 100;         
      
      if (leftOrTop == "left"){
      
      if ($(scrollableContent).width() <= ($(scrollFrame).width()-30)){
          					$(this).hide();
          					$(btnUP).hide();
          					$(btnDN).hide();
          				}else{
          					$(this).show();
          					$(btnUP).show();
          					$(btnDN).show();
      
      }
      }else{
          if ($(scrollableContent).height() <= $(scrollFrame).height()){
          					$(this).hide();
          					$(btnUP).hide();
          					$(btnDN).hide();
          				}else{
          					$(this).show();
          					$(btnUP).show();
          					$(btnDN).show();
          }
      }
      
    
      		
      		scrollerMovingInterval = $(this).css(angle).replace("px","");
      		
      		
      
      
      $(scroller).draggable({
      	 containment: 'parent',	
       
      
       drag: function(){
      	
          axd = parseFloat($(scroller).css(leftOrTop));
      		
          axd = - Math.round(movingInterval*(axd/scrollvalue));
        
        $(scrollableContent).css(leftOrTop,axd);
      	
       //$("#kiiro").text(movingInterval*scrollerProportion);
      	
          }
        	
      	  
      
      	});
      	
      $(btnUP).mousehold(function(){
        
        axd = parseFloat($(scroller).css(leftOrTop));
        axd = Math.round(axd/4);
        $(scroller).css(leftOrTop,axd);
        
        axd = - Math.round(movingInterval*(axd/scrollvalue));
        
        $(scrollableContent).css(leftOrTop,axd);
        
        });
        
       
       $(btnDN).mousehold(function(){
       
        axd = parseFloat($(scroller).css(leftOrTop));
        axd+=(scrollvalue-axd)/4;
        $(scroller).css(leftOrTop,axd);
        
        axd = - Math.round(movingInterval*(axd/scrollvalue));
        
        $(scrollableContent).css(leftOrTop,axd);
        
        
        });

  
  };
}
