/**
 * @author RWelbers
 * @author JFA
 */


function changeGAPixel(target)
{
	/*alert("changeGAPixel(" + target + ")");*/
	/*ajax('', 'ajax.php', 'changeGApixel&target='+target+'&ajax=true', 'gabottom', '', false);*/
	var tracker = _gat._createTracker('UA-4912612-8');
	tracker._trackPageview('/' + target);
}

var TF = window.TF || {};

/* -------------------------------------------------------------------------- */
/*  Functions to initialize and perform the scrolling anchor links.           */
/* -------------------------------------------------------------------------- */

TF.Scroller = function () {

	var stepIncrement = 50;	// The number of pixels that each step moves the window.
	var stepDelay = 10;	// The number of milliseconds between steps.
	var limit = 10 * 1000;	// After 10 seconds the scroll is killed.
	
	var contentName = "";
	
	var running = false;
	
	/* Recursive scrolling method. Steps through the complete scroll. */

	function scrollStep(to, dest, left) {

		if(!running || (left && to >= dest) || (!left && to <= dest)) {
			TF.Scroller.killScroll();
			return;
		}

		if((left && to >= (dest - (2 * stepIncrement))) ||
		   (!left && to <= (dest - (2 * stepIncrement)))) {
			stepIncrement = stepIncrement * .55;
		}

		//window.scrollTo(to, 0);
		setTimeout('window.scrollTo('+to+', 0)',1);
		// Assign the returned function to a public method.
		
		TF.Scroller.nextStep = callNext(+to + stepIncrement, dest, left);
		window.setTimeout(TF.Scroller.nextStep, stepDelay);
	}

	/* Create a closure so that scrollStep can be accessed by window.setTimeout(). */

	function callNext(to, dest, left) {
		
		return function() { scrollStep(to, dest, left); };
	}

	return {
	
		nextStep: null,
		killTimeout: null,
		
		
		
		/*Scrolling bei Seitenaufruf zum Content*/
	scrollToContent: function(content){
	
		var anchorId = content;
		contentName = content;
				
		var target = document.getElementById(content);
		
		if (target) {
		
			/*YAHOO.util.Event.stopEvent(e);*/
			running = true;
			
			var xCoord = ((YAHOO.util.Dom.getX(target)) < 0) ? 0 : YAHOO.util.Dom.getX(target);
			
			var currentXPosition = (document.all) ? ((document.documentElement) ? document.documentElement.scrollLeft : document.body.scrollLeft) : window.pageXOffset;
			//alert(document.body.scrollLeft+'--'+document.documentElement.scrollLeft);
			var left = true;
			
			//alert(currentXPosition + " -- " + xCoord);
			if (currentXPosition > xCoord) {
				stepIncrement *= -1; // Reverse the direction if we are scrolling up.
				left = false;
			}
			
			// Stop the scroll once the time limit is reached.
			TF.Scroller.killTimeout = window.setTimeout(TF.Scroller.killScroll, limit);
			
			// Start the scroll by calling scrollStep().
			scrollStep(currentXPosition + stepIncrement, xCoord, left);
			
			//var url = document.location.href;
			document.location.href = '#' + content;
						
			// Google Analytics Pixel neuladen
			//changeGAPixel(anchorId);
		}
	},	
		
	
		/* Sets up and calls scrollStep. */
	
		/* Sets up and calls scrollStep. */

		anchorScroll: function(e, obj) {
			
			contentName = "";

			var clickedLink = YAHOO.util.Event.getTarget(e);
						
			var clickedlink2 = clickedLink.href;	
			var anchorId = clickedlink2.replace(/^.*#/, '');
			
			//alert(anchorId);
			var target = YAHOO.util.Dom.get(anchorId);
			//alert(target);

			if(target) {
				
				YAHOO.util.Event.stopEvent(e);
				running = true;

				var xCoord = ((YAHOO.util.Dom.getX(target)) < 0) ? 0 : YAHOO.util.Dom.getX(target);
				
				var currentXPosition = (document.all) ? ((document.documentElement) ? document.documentElement.scrollLeft : document.body.scrollLeft) : window.pageXOffset;
				//alert(document.body.scrollLeft+'--'+document.documentElement.scrollLeft);
				var left = true;

				//alert(currentXPosition + " -- " + xCoord);
				if(currentXPosition > xCoord) {
					stepIncrement *= -1;	// Reverse the direction if we are scrolling up.
					left = false;
				}

				// Stop the scroll once the time limit is reached.
				TF.Scroller.killTimeout = window.setTimeout(TF.Scroller.killScroll, limit);

				// Start the scroll by calling scrollStep().
				scrollStep(currentXPosition + stepIncrement, xCoord, left);
				
				//var url = document.location.href;
				document.location.href = clickedLink;	
				
				// Google Analytics Pixel neuladen
				changeGAPixel(anchorId);		
			}

		},
		
		/* Kill the scroll after a timeout, to prevent an endless loop. */
		
		killScroll: function() {
			window.clearTimeout(TF.Scroller.killTimeout);
			running = false;
			stepIncrement = 50;
					
			if(contentName == 'galerie')
			{
				showLightBox();
			}				
		},
	
		/* Attach the scrolling method to the links with the class 'scrolling-link'. */

		init: function() {
			var links = YAHOO.util.Dom.getElementsByClassName('scrolling-link', 'a');
			YAHOO.util.Event.addListener(links, 'click', TF.Scroller.anchorScroll, TF.Scroller, true);
			
		}
	}

} ();

window.onload = function(){
	//YAHOO.util.Event.onAvailable('wrapper', TF.Scroller.init, TF.Scroller, true);
	TF.Scroller.init();
	//TF.Scroller();
}


