var currentLetter = '';
var sliderStart = 15;
var sliderInterval = 15;

function hideContent(){
  $('#content-holder').hide();
  $('#content-loading').show();
}

function showContent(){
  $('#content-loading').hide();
  $('#content-holder').fadeIn("fast", function(){
 	$('.custom-scroll-container#glossary-scroll-container').each( function(i){
	    var container = $(this);
	    var containerHeight = container.parent().height();
	    container.height(containerHeight);
	    $(this).wrapInner('<div style="position:absolute;top:0px;left:0px;width:100%;"></div>');
	    var scroll = $(this).children(':first');
	    var scrollHeight = scroll.height();	    
	    var scrollIncrement = parseInt(containerHeight * scrollWeight);
	    
	    var scrollButtons = container.next('.custom-scroll');
	    if($.browser.msie && $.browser.version.substr(0,1) == "6"){
	       containerHeight = 406;
	       container.parent().height(406);
	    }
	    if (scrollHeight > containerHeight) {
	    	scrollButtons.show();
	    	var minTop = containerHeight - scrollHeight;
	    	var scrolling = false;
	    	// Mouse Wheel
	    	// Scroll Wheel
	    	scroll.mousewheel(function(event, delta){
	    		if(!scrollLock){
	    			scrollLock = true;
	    			var oldTop = parseInt(scroll.css('top')) || 0;
					var newTop = oldTop + (scrollIncrement * delta);
					if(newTop < minTop){
						newTop = minTop;
					}else if(newTop > 0){
						newTop = 0;
					}
					scroll.animate({ top: newTop + 'px'}, scrollDuration, "linear", function(){
						if(!scrolling){
							scrollLock = false;
						}
					});
	    		}
	    		return false;
	    	});
	    	// Scroll Buttons
	    	scrollButtons.children('a').each(function(i){
				if(i == 0){
					$(this).mousedown(function(event){
					    if(!scrollLock){		
					    	scrollLock = true;			    
							scrolling = false;
							var oldTop = parseInt(scroll.css('top')) || 0;
							var newTop = oldTop + scrollIncrement;
							if(newTop < minTop){
								newTop = minTop;
							}else if(newTop > 0){
								newTop = 0;
							}
							scroll.animate({ top: newTop + 'px'}, scrollDuration, "linear", function(){
								if(!scrolling){
									scrollLock = false;
								}
							});
							$(this).everyTime(scrollDuration + scrollDelay, "scrollUp", function() {
							    scrollLock = true;
								scrolling = true;						
								oldTop = newTop;
								newTop = oldTop + scrollIncrement;
								if(newTop < minTop){
									newTop = minTop;
								}else if(newTop > 0){
									newTop = 0;
								}
								var myScrollDuration = scrollDuration;
								if(newTop - oldTop != scrollIncrement){
									myScrollDuration = (scrollDuration / scrollIncrement) * (newTop - oldTop);
								}
								scroll.animate({ top: newTop + 'px'}, myScrollDuration, "linear", function(){
									if(!scrolling){
										scrollLock = false;
									}
								});
							}, 0, true);
						}
					}).mouseup(function(event){
						$(this).stopTime("scrollUp");
						if(scrolling){
							scroll.stop();
							scrollLock = false;
						}
					}).mouseout(function(event){
						$(this).stopTime("scrollUp");
						if(scrolling){
							scroll.stop();
							scrollLock = false;
						}
					}).click(function(event){
						return false;
					});
				}else if(i == 1){
					$(this).mousedown(function(event){
						if(!scrollLock){
							scrollLock = true;
		    				scrolling = false;
							var oldTop = parseInt(scroll.css('top')) || 0;
							var newTop = oldTop - scrollIncrement;
							if(newTop < minTop){
								newTop = minTop;
							}else if(newTop > 0){
								newTop = 0;
							}
							scroll.animate({ top: newTop + 'px'}, scrollDuration, "linear", function(){
							    if(!scrolling){
									scrollLock = false;
								}
							});
							$(this).everyTime(scrollDuration + scrollDelay, "scrollDown", function() {
								scrollLock = true;
								scrolling = true;
								oldTop = newTop;
								newTop = oldTop - scrollIncrement;
								if(newTop < minTop){
									newTop = minTop;
								}else if(newTop > 0){
									newTop = 0;
								}
								var myScrollDuration = scrollDuration;
								if(oldTop - newTop != scrollIncrement){
									myScrollDuration = (scrollDuration / scrollIncrement) * (oldTop - newTop);
								}
								scroll.animate({ top: newTop + 'px'}, myScrollDuration, "linear", function(){
									if(!scrolling){
										scrollLock = false;
									}
								});
							}, 0, true);
						}
					}).mouseup(function(event){
						$(this).stopTime("scrollDown");
						if(scrolling){
							scroll.stop();
							scrollLock = false;
						}
					}).mouseout(function(event){
						$(this).stopTime("scrollDown");
						if(scrolling){
							scroll.stop();
							scrollLock = false;
						}
					}).click(function(event){
						return false;
					});
				}
			});
	    } else {
	    	scrollButtons.hide();
	    }		
	}); 
  });
}

$(function(){
	$('a','#glossary-bar').each(function(i){
		$(this).click(function(event){
			$('a', '#glossary-bar').each(function(j){
				$(this).removeClass('current');
			});
			$(this).addClass('current');
			var letter = this.id;
			if(letter != currentLetter){
			  hideContent();
			  $('#glossary-slider').animate({ top: (sliderStart + sliderInterval * i) + 'px'});
			  var letterUrl = this.href + '?tid=19';
			  $('#content-holder').load(letterUrl, null, function(){
			  	showContent();
			  });
			  currentLetter = letter;
			}
			return false;
		});
	});
});