//variablen
var divsToBeAltered = [];
var changeLinksAccordingToStageDone = false;
var mainNavigationId = "topNav";
var hideLeftNavigation = false;
var siteprefix = "/welt_rb2012/";
var triasspecial = "";

$(document).ready(function(){
	$('a.switch_language').click(function(event){
		event.preventDefault();
		var target = self.location.href;
		if(target.indexOf("/de/") !== -1){
			target = target.replace("/de/", "/en/");
		}else{
			target = target.replace("/en/", "/de/");
		}
		self.location.href = target;
	});
	$('.swgul li').css('cursor', 'pointer');
	$('.inner .swgul li').css('cursor', 'default');
	//add class .noAnchorFunction to li elements to disable link function
		$('#swipeGalleryHomeMainTeaser li').not('.noAnchorFunction').click(function() {
		if(!AppConfig.getInstance().isInAction()) {
			var href = $(this).find('a').attr('href');
			var target = $(this).find('a').attr('target');
			if(!href) {
				href = "";
			}
			if(!target) {
				target = "";
			}
			if(href !== "") {
				if(target == "_blank") {
					if(self = content_teaser_box_bottom){}
				} else {
					self.location.href = href;
				}
			}
		}
	});

		$('.swipeGalleryHomeTopicTeaser li').not('.noAnchorFunction').click(function() {
		if(!AppConfig.getInstance().isInAction()) {
			var href = $(this).find('a').attr('href');
			var target = $(this).find('a').attr('target');
			if(!href) {
				href = "";
			}
			if(!target) {
				target = "";
			}
			if(href !== "") {
				if(target == "_blank") {
					if(self = content_teaser_box_bottom){}
				} else {
					self.location.href = href;
				}
			}
		}
	});

	$('.stdTeaser').css('cursor', 'pointer');
	$('.stdTeaser').click(function(event) {
		event.preventDefault();
		var href = $(this).find('a').attr('href');
		var target = $(this).find('a').attr('target');
		if(!href) {
			href = "";
		}
		if(!target) {
			target = "";
		}
		if(href !== "") {
			if(target == "_blank") {
				window.open(href);
			} else {
				self.location.href = href;
			}
		}
	});

	$("#searchButton").click(function() {
		jQuery('#searchForm').submit()
	});

	var moveableToTop = false;
	if ($('.toTopWrapper').length > 0) {
		// hide .toTopWrapper first
		$('.toTopWrapper').hide();
		// search for image attributes to decide, if toTop is moveable or not
		if ($('img.keyvis').attr('width') && $('img.keyvis').attr('height')) {
			moveableToTop = true;
		}
		if ($('#newsEventDetail').length > 0) {
			moveableToTop = true;
		}
		// fade in .toTopWrapper
		$(function () {
			var ele = $("#footer");
			var eleOffset = ele.offset();
			eleOffset = eleOffset.top - window.innerHeight;
			$(window).scroll(function () {
				if ($(this).scrollTop() > 100) {
					$('.toTopWrapper').fadeIn();
					if (moveableToTop && $(this).scrollTop() > eleOffset) {
						var newBottomPos = $(this).scrollTop() - eleOffset;
						$('.toTopWrapper').css({'bottom': newBottomPos});
					} else {
						$('.toTopWrapper').css({'bottom': '0'});
					}
				} else {
					$('.toTopWrapper').fadeOut();
					$('.toTopWrapper').css({'bottom': '0'});
				}
			});
			// scroll body to 0px on click
			$('.toTopWrapper a').click(function () {
				$('body, html').animate({
					scrollTop: 0
				}, 800);
				return false;
			});
		});
	}

	if ("PROD" == "QA") {
		$('body img').each(function(){
			var tmpSrc = $(this).attr('src');
			if (tmpSrc.indexOf("http") == -1 && tmpSrc.indexOf("weltterminals_prod") == -1) {
				$(this).attr({'src': buildValidServerRelativeUrl(tmpSrc)});
			}
		});
	}
	if($('body').hasClass('home')) {
  		$('.gal_text a').on('click', function(e) {e.preventDefault()});
	}
});

//old functions
function changeLinksAccordingToStage(){
	var prefix = "";
	if (self.location.href.indexOf('/weltterminals_edit/') != -1) {
		prefix = "/weltterminals_edit"+siteprefix;
	} else if (self.location.href.indexOf('/weltterminals_qa/') != -1) {
		prefix = "/weltterminals_qa"+siteprefix;
	} else if (self.location.href.indexOf('/weltterminals_prod/') != -1) {
		prefix = "/weltterminals_prod"+siteprefix;
	}
	//temp function for bmw classic
	if (self.location.href.indexOf('/bmw_classic/') != -1) {
		siteprefix = "/bmw_classic/";
		if (self.location.href.indexOf('/weltterminals_edit/') != -1) {
			prefix = "/weltterminals_edit"+siteprefix;
		} else if (self.location.href.indexOf('/weltterminals_qa/') != -1) {
			prefix = "/weltterminals_qa"+siteprefix;
		} else if (self.location.href.indexOf('/weltterminals_prod/') != -1) {
			prefix = "/weltterminals_prod"+siteprefix;
		}
	}

	if (prefix != "") {
		divsToBeAltered.push("#bmwgroup_logo");
		divsToBeAltered.push("#bmw_mini_rr_logo");
		divsToBeAltered.push("#topNav");
		divsToBeAltered.push("#leftNav");
		divsToBeAltered.push("#footer");
		divsToBeAltered.push("#siteSearch");

		for (var x = 0; x < divsToBeAltered.length; x++) {
			if (jQuery(divsToBeAltered[x]) && jQuery(divsToBeAltered[x]) != null) {
				if (divsToBeAltered[x]=="#siteSearch") {
					evaluatedLink=jQuery("#siteSearch form").attr("action");
					if (evaluatedLink.indexOf('javascript:') == -1 && evaluatedLink != '' && evaluatedLink.indexOf(prefix) == -1) {
						toBeReplaced = siteprefix
						jQuery("#siteSearch form").attr("action",evaluatedLink.replace(toBeReplaced, prefix))
					}
					evaluatedLink=jQuery("#siteSearch #searchButton").attr("src");
					if (evaluatedLink.indexOf('javascript:') == -1 && evaluatedLink != '' && evaluatedLink.indexOf(prefix) == -1) {
						toBeReplaced = siteprefix
						jQuery("#siteSearch #searchButton").attr("src",evaluatedLink.replace(toBeReplaced, prefix));
					}
				}

				jQuery(divsToBeAltered[x] +" a").each(function(){
					evaluatedLink=jQuery( this ).attr('href')
					if (evaluatedLink.indexOf('javascript:') == -1 && evaluatedLink != '' && evaluatedLink.indexOf(prefix) == -1) {
						toBeReplaced = siteprefix
						jQuery( this ).attr('href',evaluatedLink.replace(toBeReplaced, prefix));
					}
				});

				jQuery(divsToBeAltered[x] +" img").each(function(){
					evaluatedLink=jQuery( this ).attr('src')
					if (evaluatedLink.indexOf(prefix) == -1&&evaluatedLink.indexOf("/liveEdit/")==-1) {
						toBeReplaced = siteprefix
						jQuery( this ).attr('src',evaluatedLink.replace(toBeReplaced, prefix));
					}
				});
			}
		}
	}
	changeLinksAccordingToStageDone = true;
}

function extractFolders(myString, startfolder) {
	var mystring2 = myString.substring(myString.indexOf(startfolder),myString.length)
	var splitArray  = mystring2.split("/");
	var resultArray = new Array(splitArray[0], splitArray[1], splitArray[2]);
	return resultArray;
}

function highlightNavigation() {
	var success = false;
	var pageFolder = extractFolders(self.location.href, confLanguageTopic);
	jQuery('#'+mainNavigationId+' a').each(function(){
		var currentHighlightLinks = jQuery(this).attr('href');
		if (currentHighlightLinks.indexOf('javascript:') == -1 && currentHighlightLinks.indexOf('http://') == -1) {
			linksMain = 'http://' + window.location.hostname + '' + currentHighlightLinks;
		} else {
			linksMain = currentHighlightLinks;
		}
		var naviLinkFolder = extractFolders(currentHighlightLinks,confLanguageTopic);
		if (naviLinkFolder[0] == pageFolder[0] && naviLinkFolder[1] === pageFolder[1] && success == false) {
			jQuery(this).closest('li').find('a:eq(0)').addClass("high");
			success = true;
		}
	});

	if (!success) {
		jQuery('#'+mainNavigationId+' a').each(function(){
			var currentHighlightLinks = jQuery(this).attr('href');
			if (currentHighlightLinks.indexOf('javascript:') == -1 && currentHighlightLinks.indexOf('http://') == -1) {
				linksMain = 'http://' + window.location.hostname + '' + currentHighlightLinks;
			} else {
				linksMain = currentHighlightLinks;
			}
			var naviLinkFolder = extractFolders(currentHighlightLinks,confLanguageTopic);
			if(naviLinkFolder[1] == pageFolder[0] && naviLinkFolder[2] == pageFolder[1] && success === false) {
				jQuery(this).closest('li').find('a:eq(0)').addClass("high");
				success = true;
			}
		});
	}
}

function goToUrl(obj){
	href = obj.find('img').attr('lowsrc');
	target = obj.find('img').attr('target');
	if (!href) href = "";
	if (!target) target = "";
    var aTag = obj.find('a');
    if(aTag.length > 0){
        target = aTag.attr('target');
    }
	if (href != "") {
		if (target == "_blank") {
			window.open(href);
		} else {
			self.location.href = href;
		}
	}
}

function isTouchOs(){
	if ((navigator.platform.indexOf("iPhone") != -1) || (navigator.platform.indexOf("iPod") != -1) || (navigator.platform.indexOf("iPad") != -1) || (navigator.userAgent.indexOf("Android") != -1)) {
		return true;
	} else {
		return false;
	}
}

function splitSearchString() {
	if (self.location.search.indexOf("=") == -1) return;
	parameterArray = self.location.search.substring(1).split("&");
	for (i = 0; i < parameterArray.length; i++) {
		pair = parameterArray[i].split("=");
		query[unescape(pair[0])]=(pair[1]?unescape(pair[1]):"");
	}
}

function buildValidServerRelativeUrl(simpleServerRelativeUrl) {
	if (simpleServerRelativeUrl == '') {
		return '';
	}
	if (simpleServerRelativeUrl.charAt(0) != '/') {
		return simpleServerRelativeUrl;
	}
	var validServerRelativeUrl = '';
	var simpleSeverrelativeUrlNoParams = '';

	if (simpleServerRelativeUrl.indexOf('?') != -1) {
		simpleSeverrelativeUrlNoParams = simpleServerRelativeUrl.substring(0, simpleServerRelativeUrl.indexOf('?'));
	} else {
		simpleSeverrelativeUrlNoParams = simpleServerRelativeUrl;
	}
	if (self.location.href.indexOf('/weltterminals_edit/') != -1 && simpleSeverrelativeUrlNoParams.indexOf('/weltterminals_edit/') == -1) {
		validServerRelativeUrl = '/weltterminals_edit' + simpleServerRelativeUrl;
	} else if (self.location.href.indexOf('/weltterminals_qa/') != -1 && simpleSeverrelativeUrlNoParams.indexOf('/weltterminals_qa/') == -1) {
		validServerRelativeUrl = '/weltterminals_qa' + simpleServerRelativeUrl;
	} else if (self.location.href.indexOf('/weltterminals_prod/') != -1 && simpleSeverrelativeUrlNoParams.indexOf('/weltterminals_prod/') == -1) {
		validServerRelativeUrl = '/weltterminals_prod' + simpleServerRelativeUrl;
	} else {
		validServerRelativeUrl = simpleServerRelativeUrl;
	}
	return validServerRelativeUrl;
}

function getFullPath(basePath, relativePath) {
	var fullPath = basePath.substring(0, (basePath.lastIndexOf("/") + 1));
	var regXHostPath = /((^(https{0,1}\:\/\/[^\/]*\/))|(^(file\:\/\/[^\:]*\:\/))|(^([a-z]+\:\\))|(^([a-z]+\:\/))|(^(\\\\))|(^(\/\/)))/i;
	if (regXHostPath.test(relativePath)) {
		fullPath = relativePath;
	} else {
		var regXGoingUp = /(\.\.\/)/g, goingUpArr = [], i;
		if (regXGoingUp.test(relativePath)) {
			goingUpArr = relativePath.match(regXGoingUp);
		}
		for (i = 0; i < goingUpArr.length; ++i) {
			fullPath = fullPath.substring(0, (fullPath.lastIndexOf("/", (fullPath.length - 2)) + 1));
		}
		fullPath += relativePath.replace(regXGoingUp, "");
	}
	return fullPath;
}

// for video_player
var PngPreloader = function (node) {
	this.node = {};
	this.animationInterval = null;
	var counter = 0;
	var frameSpeed = 72;
	var bgPos;
	var preloader;
	var loaderAnimation = function () {
		var backgroundPosition, curWidth, newPos;
		if (preloader) {
			backgroundPosition = preloader.css('background-position');
			if (backgroundPosition !== undefined) {
				bgPos = parseInt(backgroundPosition.replace(/px/g, ""), 10);
			} else if (preloader.css('background-position-x') !== undefined) {
				bgPos = parseInt(preloader.css('background-position-x').replace(/px/g, ""), 10);
			}
		}
		curWidth = preloader.width();
		newPos = (bgPos - curWidth);
		counter++;
		if (counter == 18) {
			newPos = 0;
			counter = 0;
		}
		preloader.css('background-position', newPos);
	};
	var init = function () {
		this.node = node;
		preloader = $(this.node);
	};
	init();
	return {
		show:function () {
			preloader.fadeIn(0.1);
			preloader.css('background-position', 0);
			counter = 0;
			if (this.animationInterval) {
				window.clearInterval(this.animationInterval);
				this.animationInterval = null;
			}
			this.animationInterval = window.setInterval(function () {
				loaderAnimation();
			}, frameSpeed);
		},


		hide:function () {
			var that = this;
			preloader.fadeOut(0.1, function () {
				if (that.animationInterval) {
					window.clearInterval(that.animationInterval);
					that.animationInterval = null;
				}
			});
		}
	};
};