// JavaScript Document
var interval;
var transitionNotes=new Array();
var basicDuration = 1000;
var defaultDuration = 300;
var initialItemDeclaration = ".initial";
var transitionTypes = new Array("fadeOutAndIn", "fadeOver");
var autoTransition = false;
var autoTransitionIntervall = 0;
var lowIEBrowser = false;
function setAutoTransition(Id, intervall, duration, easingType, transitionType, imageArrayOrChildindex, transitionFunction, transitionableTextDisplayer){
	addTransition(Id, imageArrayOrChildindex, intervall, duration, transitionType, easingType, transitionFunction, transitionableTextDisplayer);
	autoTransitionIntervall = basicDuration;
	startAutoTransition();
	autoTransition = true;
}


function startAutoTransition(duration){
	if(!duration){
		duration = basicDuration;
	}
	interval = window.setInterval("executeTransition()", duration);
}

function stopAutoTransition(){
	if(interval != null){
		window.clearInterval(interval);
		interval = null;
	}
}

function hideAllChildren(container, exception){
	if(exception > 0){
		if(exception == "last"){
			exception = $(cotnainer).children().length;
		}
		$(container).children().css("display", function(){
			if($(this).index() != (exception - 1)){
				$(this).css("display", "none");
			}else{
				$(this).css("display", "inherit");
			}
		});
	}else{
		$(container).children().css("display", "none");
	}
}

function addTransition(Id, imageArrayOrIndex, intervall, duration, transtype, easing, transfunction, textdisplayer){
	var transit = new Object();
	
	var initialItem = $(Id).find(initialItemDeclaration);
	transit.selection = $(initialItem).index() < 0 ? 0 : $(initialItem).index();
	if(imageArrayOrIndex){
		if(parseInt(imageArrayOrIndex) > 0){
			if($(initialItem).index() < 0 && transit.selection == 0){
				transit.selection = parseInt(imageArrayOrIndex) - 1;
			}
		}else{
			if(imaeArrayOrIndex != null){
					transit.array = imageArrayOrIndex;
			}
		}
	}
	if($(Id).children().length > 0){
		hideAllChildren(Id, transit.selection + 1);
	}
	transit.duration = duration;
	transit.intervall = intervall;
	transit.id = Id;
	if(transfunction && transfunction != null){
		transit.transfunction = transfunction;
	}
	transit.easing = easing;
	transit.transition = transtype;
	if(textdisplayer){
		transit.textdisplay = textdisplayer;
	}
	transit.callcount = intervall;
	transitionNotes.push(transit);	
}

function executeTransition(){
	for(var i=0; i<transitionNotes.length; i++){
		transitionNotes[i].callcount-=basicDuration;
		if(transitionNotes[i].callcount <=0){
			transitionNotes[i].callcount = transitionNotes[i].intervall;
			if(!transitionNotes[i].transfunction){
				if(transitionNotes[i].transitionbusy){
					return;
				}
				defaultTransition(transitionNotes[i]);
			}else{
				[transitionNotes[i].transfunction](transitionNotes[i]);
			}
			transitionNotes[i].callcount = transitionNotes[i].intervall;
		}
	}
}

function defaultTransition(properties, forcedAdd){
		
		if(properties.array){
			$("#" + properties.id + " #over").fadeOut(properties.duration, 
					function(){
								transitionOutCallback();
								$("#" + properties.id + " #over").attr("src", images[properties.array[properties.index]].src);
								$("#" + properties.id + " #over").fadeIn(properties.duration);
								//this.fadeIn(duration);
					});
			transitionDoneCallback();
		}else{
			var FadeInSpeed = defaultDuration;
			var FadeOutSpeed = defaultDuration - defaultDuration/6;
			if(properties.duration){
				FadeInSpeed = parseInt(properties.duration)/7 * 4;
				FadeOutSpeed = parseInt(properties.duration)/7 * 3;
			}
			var add = 1;
			var next;
			if(properties.add){
				add= properties.add;
			}
			if(forcedAdd){
				add = forcedAdd;
			}
			if(properties.next && properties.next >= 0){
				if(properties.next < $(properties.id).children().length);
				next = properties.next;
			}else{
				next = getNext($(properties.id).children(), properties.selection, add);
			}
			if(next != properties.selection){
				switch(properties.transition){
					case(transitionTypes[1]):
						if(!properties.textdisplay){
						fadeOver($(properties.id).children()[properties.selection], $(properties.id).children()[next], properties.duration, null, updateText, null);
						}else{
						fadeOver($(properties.id).children()[properties.selection], $(properties.id).children()[next], properties.duration, null, updateText, null, properties.textdisplay);
						}
						break;
					default:
						fadeOutAndIn($(properties.id).children()[properties.selection], $(properties.id).children()[next], FadeOutSpeed, FadeInSpeed, transitionDoneCallback, updateText);
						if(properties.textdisplay && $($(properties.id).children()[next]).attr("alt") && $($(properties.id).children()[properties.selection]).attr("alt")){
							animateText(properties.textdisplay, FadeInSpeed, $($(properties.id).children()[next]).attr("alt"), FadeOutSpeed);
						}
				}
				properties.selection = next;
				properties.next = -1;
			}
		}
}

function animateText(containerID, Duration, InText, OutDuration, OutText){
	//alert("animating Text?");
	if($(containerID).index() < 0){
		return;
	}
	if(!OutDuration || OutDuration == null){
		OutDuration = Duration/2;
		Duration = Duration/2;
	}
	
	if(!OutText){
		OutText = $(containerID).text();
	}
	//alert(OutText + " / " + InText);
	$(containerID).animate({
		opacity: 0
	},
	{
		duration: OutDuration,
  		step: function(now, fx) {
			var length = parseInt(parseFloat(OutText.length * now));
			$(containerID).text(OutText.substring(0, length));
  		},
		complete: function(){
			//alert("next... " + InText);
			
			$(containerID).animate({
				opacity: 1
			},
			{
				duration: Duration,
				step: function(now, fx) {
					var length = parseInt(parseFloat(InText.length * now));
					$(containerID).text(InText.substring(0, length));
				}
			});
		}
	});
}

function fadeOutAndIn(OutItem, InItem, InDuration, OutDuration, CallbackDone, CallbackOut){
	if(!OutDuration || OutDuration == null){
		OutDuration = InDuration;
	}
	$(OutItem).fadeOut(OutDuration, function(){
		if(CallbackOut){
			CallbackOut(InItem);
		}
		$(InItem).fadeIn(InDuration, function(){
			if(CallbackDone){
				CallbackDone(InItem);
			}
		});
	});
}

function fadeOver(OutItem, InItem, Duration, InDelay, CallbackDone, OutDuration, updateTextContainer){
	if(!OutDuration || OutDuration==null){
		OutDuration = Duration;
	}
	if(updateTextContainer && $(updateTextContainer).index() >= 0){
		if($(OutItem).attr("alt") && $(InItem).attr("alt")){
			// alert($(OutItem).attr("alt") + " . " + $(InItem).attr("alt"));
			animateText(updateTextContainer, Duration, $(InItem).attr("alt"), null, $(OutItem).attr("alt"));
		}
	}else{
		hideText();
	}
	$(OutItem).fadeOut(OutDuration);
	if(InDelay){
		$(InItem).fadeOut(InDelay, function(){
			
			$(this).fadeIn(Duration, function(){
				if(CallbackDone){
				//CallbackDone(InItem);
					if(!updateTextContainer){
						showText();
					}
				}
			});
		});
	}else{
		$(InItem).fadeIn(Duration, function(){
			if(CallbackDone){
				CallbackDone(InItem);
				if(!updateTextContainer){
					showText();
				}
			}
		});
	}
}


function getNext(array, current, add){
	if(parseInt(current + add) < array.length){
		var next = parseInt(current + add);
		if(next < 0){
			return array.length - 1;
		}
		return next;
	}else{
		return 0;
	}
}

function transitionDoneCallback(){
	//alert("done");
}

function animateUpdateText(nextItem){
	if(nextItem){
		if($(".header #imageinfo span").index() >= 0){
			$(".header #imageinfo span").html($(nextItem).attr("alt"));
		}else{
			$(".header #imageinfo .text").html($(nextItem).attr("alt"));
		}
	}
}

function updateText(nextItem){
	if(nextItem){
		if($(".header #imageinfo span").index() >= 0){
			$(".header #imageinfo span").html($(nextItem).attr("alt"));
		}else{
			$(".header #imageinfo .text").html($(nextItem).attr("alt"));
		}
	//alert($(nextItem).attr("alt"));
	}
	//alert("faded Out");
}

function hideText(){
	$(".header #imageinfo span").hide();
}

function showText(){
	$(".header #imageinfo span").show();
}

function getParent(element, index){
	if(index > 1){
		index--;
		return getParent($(element).parent(), index);
	}else{
		return $(element).parent();
	}
}

function checkupIndex(array, index, addition){
	if(!addition){
		addition = 1;
	}
	index = index + addition;
	
	if(index >= array.length){
		index = 0 + index - array.length;
	}
	
	if(index < 0){
		index = array.length + index;
	}
	return index;
}

function scrollTop(buttonId){
	if($(buttonId).index() >= 0){
		$(buttonId).click(function(){
			scroll_to('html, body');
			return false;
		});
	}
}

function scroll_to(div, scrollSpeed){
		if(!scrollSpeed){
			scrollSpeed = 1000;
		}
		$('html, body').animate({
			scrollTop: $(div).offset().top
		}, scrollSpeed);
}

function addTransitionNavigation(targetPropertiesIndex, upItem, downItem){
	$(upItem).click(function(){
		defaultTransition(transitionNotes[targetPropertiesIndex], 1);
		transitionNotes[targetPropertiesIndex].callcount = transitionNotes[targetPropertiesIndex].intervall;
	});
	$(downItem).click(function(){
		defaultTransition(transitionNotes[targetPropertiesIndex], -1);
		transitionNotes[targetPropertiesIndex].callcount = transitionNotes[targetPropertiesIndex].intervall;
	});
}

function isIE8andLower(){
	if(navigator.appName.indexOf("Internet Explorer") > 1 && parseInt(navigator.appVersion.substring(0,1)) < 5){
		//alert("is lower internet explorer");
		return true;
	}
	return false;
}

function sendit(formId){
	if(!formId){
		formId = "mail";
	}
	document[formId].submit();
}

lowIEBrowser = isIE8andLower;

function getLanguage(){
	var folder = document.location.href.substring(0, document.location.href.lastIndexOf("/"));
	return folder.substring(folder.lastIndexOf("/")+1, folder.length);
	//alert(folder);
}

var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-27200365-1']);
  _gaq.push(['_trackPageview']);

(function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
