jQuery.noConflict();

var jsLoad = null;
function FWScroller()
{
	var jsPath = 'fileadmin/fuchswacker/js/';
	var cssPath = 'fileadmin/fuchswacker/css/';
	var self = this;
	var moveScrollHandleInterval, contentInner, content, contentScrollHandle, contentScrollMultiplier, baseURL;
	var contentInnerHeight, contentHeight, contentPercentMultiplier, contentScrollHeight, contentScroll, contentInnerScrollHeight;

	(function($){
		$(document).ready(function(){
			content = $('#content');
			contentInner = $('#contentInner');
			baseURL = $('base').length > 0 ? $('base').attr('href') : '';

			contentHeight = content.height();
			contentInnerHeight = contentInner.height();
			contentInnerScrollHeight = contentInnerHeight - contentHeight;
			contentPercentMultiplier = 100/(contentInnerHeight - contentHeight);

			if(contentInnerHeight > contentHeight)
			{
				$('body').append('<script type="text/javascript" src="' + jsPath + 'jquery.overscroll.js"></script>');

				jsLoad = window.setInterval(function(){ self.initScroll(); }, 100);
			}

			self.initScroll = function(){
				if(typeof $('body').overscroll != 'undefinied')
				{
					window.clearInterval(jsLoad);
					jsLoad = null;

					$('#contentScroll').remove();
					$('#contentWrap').prepend('<div id="contentScroll"><div id="contentScrollHandle"></div></div>');
					contentScrollHandle = $('#contentScrollHandle');
					contentScroll = $('#contentScroll');
					contentScrollHeight = contentScroll.height();
					contentScrollMultiplier = 100/contentScrollHeight;
					contentInner.scrollTop(0)
					content.overscroll({
						cursor: 'default',
						direction: 'vertical',
						showThumbs: false,
						onStart: function(){
							clearInterval(moveScrollHandleInterval);
							moveScrollHandleInterval = window.setInterval(function(){
								self.moveScrollHandle();
							}, 13);
						}
					});
					contentInner.find('a').click(function(e){
						e.preventDefault();

						if(!content.data("dragging")){
							if($(this).attr('href')){
								var openUrl = ($(this).attr('href').indexOf('http') == 0 ? '' : baseURL) + $(this).attr('href');
								if($(this).attr('target')){
									window.open(openUrl, $(this).attr('target'));
								}
								else {
									window.location.href = openUrl;
								}
							}
						}
						return false;
					});

					contentScrollHandle.mousedown(function(e){
						e.preventDefault();
						contentScrollHandle.css('background-color', '#888');

						$(document).mousemove(function(e) {
							var position = e.pageY - contentScroll.offset().top;
							var percentPos = 0;
							if(position > 0){
								if(position < contentScrollHeight){
									percentPos = Math.floor(contentScrollMultiplier * position);
								}
								else {
									percentPos = 100;
								}
							}
							contentScrollHandle.css('top', percentPos + '%');
							content.scrollTop(Math.round(percentPos * contentInnerScrollHeight / 100));
						});

						$(document).mouseup(function(e){
							e.preventDefault();

							contentScrollHandle.css('background-color', '#ccc');
							$(document).unbind('mousemove');
							$(document).unbind('mouseup');
							return false;
						});
						return false;
					});
				}
			}

			self.moveScrollHandle = function(){
				var positionTop = Math.floor(content.scrollTop() * contentPercentMultiplier);
				if(positionTop > 0) {
					if(positionTop <= 100){
						contentScrollHandle.css('top', positionTop + '%');
					}
					else {
						contentScrollHandle.css('top', '100%');
					}
				}
				else {
					contentScrollHandle.css('top', 0);
				}
			}
		});
	}(jQuery));
}
FWScroller();
