
	// config: supply the name of the element to track
	var elem = "fixed";

	var y_orig, y_new, prod_list_h;
	var frameHeight;
	calcWindowHeight();
	
	function calcWindowHeight(){
		if (self.innerWidth){
			frameHeight = self.innerHeight;
		}
		else if (document.documentElement && document.documentElement.clientWidth){
			frameHeight = document.documentElement.clientHeight;
		}
		else if (document.body){
			frameHeight = document.body.clientHeight;
		}
	}

	window.onload = function(){
		elem = document.getElementById(elem);
		y_orig = getTop(elem);
    prod_list_h = $('inner').getHeight();
		windowScrollListener();
    //alert($('inner').getHeight())
	}
	
	function getTop(elem){
		var y = 0;
		if (elem.offsetParent){
			y = elem.offsetTop;
		}
		return y;
	}
	
	function move_old(y){
		// alert(($('fixed').getHeight()));
		// alert(frameHeight);
		// alert($('fixed').getHeight() <= frameHeight);
		if($('fixed').getHeight() <= frameHeight){
			Effect.MoveBy(elem, y_new - getTop(elem), 0, {duration: 0.3, transition: Effect.Transitions.sinoidal});
			// slider(getTop(elem), y_new);
		}
		else{
			Effect.MoveBy(elem, 100 - getTop(elem), 0, {duration: 0.3, transition: Effect.Transitions.sinoidal});
		}
	}
  
  function move(y){
		 //alert("fixed height = " + ($('fixed').getHeight()) + "  framehiehgt = " + frameHeight);
		//alert(y_new);
		if($('fixed').getHeight() <= frameHeight){
			Effect.MoveBy(elem, y_new - getTop(elem), 0, {duration: 0.3, transition: Effect.Transitions.sinoidal});
			// slider(getTop(elem), y_new);
		}
		else{
			Effect.MoveBy(elem, 100 - getTop(elem), 0, {duration: 0.3, transition: Effect.Transitions.sinoidal});
		}
	}
	
	function slider(curr_y, target_y){
		var step_y = Math.abs(target_y - curr_y) / 2;
    
		if(step_y <= 0.5){
			elem.style.top = target_y + 'px';
		}
		else{
			if(curr_y != target_y){
				(target_y < curr_y)
					? curr_y -= step_y
					: curr_y += step_y;
					
				elem.style.top = curr_y + 'px';
				setTimeout('slider(' + curr_y +', ' + target_y + ')', 20);
			}
		}
	}

	function windowScrollListener(){
    var intFixed_h = $(elem).getHeight();
    
		if (window.innerHeight){
			y_new = window.pageYOffset - y_orig;
		}
		else if(document.documentElement && document.documentElement.scrollTop){
			y_new = document.documentElement.scrollTop - y_orig;
		}
		else if(document.body){
			y_new = document.body.scrollTop - y_orig;
		}
    
    if((y_new + intFixed_h) > prod_list_h){
      y_new = y_new - ((y_new + intFixed_h) - prod_list_h )
    }
    
    if(y_new < y_orig){
			y_new = y_orig;
		}
    
    move(y_new);
			
		setTimeout('windowScrollListener()', 500);
	}
	
	window.onresize = function(){calcWindowHeight();};
