$(document).ready(function() {
	//Formulars init
	Formulars();

	// Accordion init
	$(".accordion").each(function(index, element) {
		new AccordionClass($(element));
	});


	/**
	 *  @description Reading Collection Add and Remove DATA
	 */
	var $covDiv = $('<div></div>');
	var covLang = ($('meta[name="language"]')).attr('content');
	var collAddSucc = gup('addsucc');
	if(collAddSucc.length !== 0){
		var addText = "Error occured";
		if(collAddSucc == 0){
			$covDiv.load('/web/library/libraryOverlay.'+covLang+'.php #libOvAddSucc', function(){
				$('.overlays').append($covDiv);
				$('.overlays').fadeIn(500, function(){
					$('#ovSpinner').hide();
					window.jSpinner.stop();
				});
			});
		}else if(collAddSucc == 1){
			$covDiv.load('/web/library/libraryOverlay.'+covLang+'.php #libOvAddErr', function(){
				$('.overlays').append($covDiv);
				$('.overlays').fadeIn(500, function(){
					$('#ovSpinner').hide();
					window.jSpinner.stop();
				});
			});
		}
	}

	var collRemSucc = gup('remsucc');
	if(collRemSucc.length !== 0){
		var remText = "Error occured";
		if(collRemSucc == 0){
			$covDiv.load('/web/library/libraryOverlay.'+covLang+'.php #libOvRemoveSucc', function(){
				$('.overlays').append($covDiv);
				$('.overlays').fadeIn(500, function(){
					$('#ovSpinner').hide();
					window.jSpinner.stop();
				});
			});
		}else if(collRemSucc == 1){
			$covDiv.load('/web/library/libraryOverlay.'+covLang+'.php #libOvRemoveErr', function(){
				$('.overlays').append($covDiv);
				$('.overlays').fadeIn(500, function(){
					$('#ovSpinner').hide();
					window.jSpinner.stop();
				});
			});
		}else if(collRemSucc == 2){
			$covDiv.load('/web/library/libraryOverlay.'+covLang+'.php #libOvClearSucc', function(){
				$('.overlays').append($covDiv);
				$('.overlays').fadeIn(500, function(){
					$('#ovSpinner').hide();
					window.jSpinner.stop();
				});
			});
		}
	}

    
	//Callback for Colorbox-Plugin
	$(document).bind('cbox_open', function(){
	    $('#container').addClass('ovOpen');		//makes main-page-content fixed
	});

	$(document).bind('cbox_cleanup', function(){
		var $element = $.colorbox.element();
		if($element.attr('rel') === 'mediavideo'){
			$('#mediaplayer').hide();
		}
	});

	$(document).bind('cbox_closed', function(){
		$('#container').removeClass('ovOpen');	//removes fixed-property for main-page-content
	});

	//Check if iPad and simulate fixed position
	var isiPad = navigator.userAgent.match(/iPad/i) != null;
	if(isiPad){
		$('#bg').css('position','absolute');

		$(window).scroll(function(){
			$('#bg').css('top', $(window).scrollTop());
		})

		//iPad Safari doesn't cover hover appropriately
		$('#toolbar-country-chooser .actual-lang').click( function(){
			var elem = $('#toolbar-country-chooser .tooltip-container');
			elem.toggle();
		});

		setTimeout(function(){
		$("a[rel='mediavideo']").removeClass('cboxElement').removeData('colorbox').unbind().die();
		$("a[rel='mediavideo']").bind('click', function(){
			var refStr = $(this).attr('href');
			refStr = refStr.split('?');
			refStr = refStr[1];
			refStr = refStr.substr(4);
			refStr = refStr.split('&');
			refStr = refStr[0];

			//refStr = refStr.split('?')[1].substr(4).split('&')[0];
			window.location.assign(refStr);
			return false;
		});
		},1000);
		

		//video-Handling on orientationchange
		/*window.onorientationchange = detectIPadOrientation;
		 function detectIPadOrientation () {
		 	if($('#cboxOverlay').is(':visible')){
		 		var $element = $.colorbox.element();
		 		if($element.attr('rel') === 'mediavideo'){
			 		$.fn.colorbox.close();
			 		setTimeout(function(){
			 			$element.click();	
			 		},1000);
		 		}
		 	}
		 }*/
	}
});

new HotNewsAnimator();
new MainTeaserAnimator();
new ImpressionSlider();
new SchulungDateSelector();
new SelectCountry();
new karriereSlider();
new overlayClose();
new finderBtn();
new fulltextSearch();
new autocompleteSearch();
new breadcrumb();
new newsroomEvents();
new csbMedia();
new csbThumbText();
new teaserHightCM3();
new teaserHightCM4();
new unternehmenOrganisationPersonsHoverHeight();
new unternehmenOrganisationGeschaeftsleitungOverlays();
new startpageContacts();
new karriereWeiterleitungOverlay();
new clearSubnavigation();
//new ScrollAndOpenAccordeon();
new dokaHistory();
new mailBtn();
new hack_studentappformCountrySelect();

function redirectAfterMs(ms) {
	setTimeout(function() {
		window.location = 'http://www.doka.com';
	}, ms);
}

/* @author to */
function languagePageSwitcher() {
	$(document).ready(function() {
		jQuery("#list-eu").show();
		jQuery(".cm31 .selectionOfDokaWebsitesPerContinent ul li a").bind("click", function() {
			jQuery(".cm31 .selectionOfDokaWebsitesPerContinent ul li").removeClass("active");
			jQuery(this).parent().addClass("active");
			var w = jQuery(".locationWrapper");
			switch(jQuery(this).parent().index()) {
				case 0:
					w.removeClass("as").removeClass("au").removeClass("eu").removeClass("na").removeClass("sa").addClass("af");
					jQuery(".selectionOfDokaWebsitesPerCountry").hide();
					jQuery("#list-af").show();
					break;

				case 1:
					w.removeClass("af").removeClass("au").removeClass("eu").removeClass("na").removeClass("sa").addClass("as");
					jQuery(".selectionOfDokaWebsitesPerCountry").hide();
					jQuery("#list-as").show();
					break;

				case 2:
					w.removeClass("af").removeClass("as").removeClass("eu").removeClass("na").removeClass("sa").addClass("au");
					jQuery(".selectionOfDokaWebsitesPerCountry").hide();
					jQuery("#list-au").show();
					break;

				case 3:
					w.removeClass("af").removeClass("as").removeClass("au").removeClass("na").removeClass("sa").addClass("eu");
					jQuery(".selectionOfDokaWebsitesPerCountry").hide();
					jQuery("#list-eu").show();
					break;

				case 4:
					w.removeClass("af").removeClass("as").removeClass("au").removeClass("eu").removeClass("sa").addClass("na");
					jQuery(".selectionOfDokaWebsitesPerCountry").hide();
					jQuery("#list-na").show();
					break;
				case 5:
					w.removeClass("af").removeClass("as").removeClass("au").removeClass("eu").removeClass("na").addClass("sa");
					jQuery(".selectionOfDokaWebsitesPerCountry").hide();
					jQuery("#list-sa").show();
					break;
			}
		});

		jQuery(".selectOwnLocation a").bind("click", function() {
			//jQuery(".selectOwnLocation input:checked").val());
			var type = "session";
			if(jQuery(".custom-checkbox-select-country input").is(":checked")) {
				type = "cookie";
			}
			$.ajax({
				url : "/index.php?type=" + type + "&language=" + jQuery(".selectOwnLocation input:checked").val(),
				success : function() {
					location.replace("/index.php?continue");
				},
				error : function() {
					//alert('error');
				}
			});
			return false;
		});

		$("#sl-remember").bind('updateState', function(){
			remember = $(this).is(":checked");
			// TICKET 1305 \\
			if(remember){
				$(".selectionOfDokaWebsitesPerCountry > ul > li > a").bind('click',function(){
					var redirPage = $(this).attr('href');
					redirPage = redirPage.replace('?','&');
					document.location.assign('/web/redirect.php?redirectPage='+redirPage);
					return false;
				});
			}else{
				$(".selectionOfDokaWebsitesPerCountry > ul > li > a").unbind('click');
			}

			/*
			$(".selectionOfDokaWebsitesPerCountry > ul > li > a").each( function (index, elem) {
				href = new SmartUrl($(this).attr('href'));
				if(remember && href.getVar('startPageLanguage')!=undefined ) {
					href.setVar("remember","true");
					$(this).attr('href', href.getUrl());
				} else {
					href.unsetVar("remember");
					$(this).attr('href', href.getUrl());
				}
			});*/

			// TICKET 1305 END \\
		});

		$('#sl-remember').trigger('updateState');
	});
}

	function SmartUrl(url) {
		this.vars;
		this.initialize(url);
	}

	SmartUrl.prototype.getStrippedUrl = function() {
		if(this.url.indexOf('?')>=0)
			return this.url.slice(0,this.url.indexOf('?'));
		else
			return this.url;
	}

	SmartUrl.prototype.initialize = function(url) {
		this.url = url;
		this.getUrlVars(url);
	}

	SmartUrl.prototype.getUrlVars = function (url)
	{
		this.vars = {};
	    var hash;
	    if(url.indexOf('?')<0) return;
	    var hashes = url.slice(url.indexOf('?') + 1).split('&');
	    for(var i = 0; i < hashes.length; i++)
	    {
	        hash = hashes[i].split('=');
	        this.vars[ hash[0] ] = hash[1];
	    }
	}

	SmartUrl.prototype.setVar = function (index, value) {
		this.vars[index] = value;
	}

	SmartUrl.prototype.unsetVar = function(index) {
		delete this.vars[index];
	}

	SmartUrl.prototype.getVar = function(index) {
		return this.vars[index];
	}

	SmartUrl.prototype.getUrl = function () {
		ret = this.getStrippedUrl();
		sep='?';
		for( index in this.vars) {
			value = this.vars[index];
			ret+=sep+index+"="+value;
			sep='&';
		};
		return ret;
	}

function gup(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var fullurl = unescape(window.location.href);
    var results = regex.exec(fullurl);
    if (results == null) return "";
    else return results[1];
}

function formularSent() {
	var self = this;

	$(document).ready(init);

	function init() {
		window.jSpinner.spin();
		$('#ovSpinner').show();

		$('.overlays').append($('.career-external-url-overlay'));
		$('.career-external-url-overlay').show();
		$('.career-external-url-overlay').find('a').eq(0).click(function() {
			$('.overlays').fadeOut(500, function() {
				$('.overlay').remove();
			});
		});
		$('.overlays').fadeIn(500, function() {
			window.jSpinner.stop();
			$('#ovSpinner').hide();
		});
	}

}

function goBackHistory() {
	window.history.back();
}

function dokaHistory() {
	var self = this;

	$(document).ready(init);

	function init() {

		var container = $('.cm45 .history-container');
		if(container.length != 0) {
			var boxes = container.find('.history-year-box');

			var marker = container.find('.history-marker');

			var posCorrection = -container.position().top;

			addClickHandler();

			boxes.find('.history-year-box-header').eq(0).trigger('click');

			function show(index) {
				boxes.eq(index).find('.history-info-box').slideDown("fast").addClass("active");
			}

			function closeAll() {
				boxes.find('.history-info-box').slideUp("fast").removeClass("active");
			}

			function addClickHandler() {
				boxes.find('.history-year-box-header').each(function(index, header) {
					$(header).click(function() {
						closeAll();
						setTimeout(function() {
							marker.animate({
								top : $(header).offset().top + posCorrection
							}, "1000");
							setTimeout(function() {
								show(index);
							}, 300);
						}, 500);
					});
				});
			}

		}
	}
}

function startpageContacts() {
	var self = this;

	$(document).ready(init);

	function init() {
		// $('.cm23 .contactInformation .flag-icon').bind("click",function(){ $('.contactInformation').eq($(this).index()).show();})
		var boxes = $('.cm23 .contactInformation');
		//boxes.hide();
		//boxes.eq(0).show();

		var initIndex = $('.cm23 .contactInformation:visible').index();
		$('.cm23 .contactInformation:visible').find('.flag-icon').eq(initIndex).addClass('highlFlag');

		boxes.each(function(index, box) {
			var icons = $(box).find('.flag-icon');
			icons.each(function(index1, icon) {
				$(icon).click(function() {
					boxes.hide();
					$('.flag-icon').removeClass('highlFlag');
					boxes.eq(index1).show().find('.flag-icon').eq(index1).addClass('highlFlag');
					

					//boxes.find('.flag-icon').eq(index1).addClass('highlFlag');
				});
			});
		});
	}

}

//remove empty ul in submenu
function clearSubnavigation() {
	var self = this;

	$(document).ready(init);

	function init() {
		$('.subnavigation ul').each(function() {
			if($(this).children().length == 0) {
				$(this).remove();
			}
		});
	}

}

//HACK (c) GBE: studentschallengeappform select
function hack_studentappformCountrySelect() {
	var self = this;

	$(document).ready(init);

	function init() {
		$('#hack .select-box').detach().prependTo($('#select-country'));
	}

}

//wird in openDownloadCenter aufgerufen
function downloadCenterTermsOfService() {
	var self = this;

	$(document).ready(init);

	function init() {
		var termsOfUse = $('#cb-downloadCenter');
		termsOfUse.customcheckbox();
		var downloadCenter = $('.download-center');
		hide(downloadCenter.find('.download-link'));
		termsOfUse.change(function() {
			if($(this).is(':checked')) {
				show(downloadCenter.find('.download-link'));
			} else {
				hide(downloadCenter.find('.download-link'));
			}
		});
	}

	function show(elements) {
		elements = $(elements);
		elements.css({
			'opacity' : 1
		});
		elements.each(function(index, link) {
			$(link).attr('href', $(link).attr('hrefHidden'));
			$(link).removeAttr('hrefHidden');
		});
	}

	function hide(elements) {
		elements = $(elements);
		elements.css({
			'opacity' : 0.5
		});
		elements.each(function(index, link) {
			$(link).attr('hrefHidden', $(link).attr('href'));
			$(link).removeAttr('href');
		});
	}

}

function teaserHightCM4() {
	var self = this;

	$(document).ready(init);

	function init() {

		var container = $('.cm4 .column2');
		var teasers = container.find('.text-teaser-element');

		teasers.each(function(index, te) {
			var teaser = $(te);
			if(index % 2 == 0) {
				var maxHeight = 0;
				teasers.each(function(index1, teaser1) {
					if(index1 >= index && index1 <= index + 1) {
						var height = $(teaser1).height();
						if(height > maxHeight)
							maxHeight = height;
					}
				});
				teasers.each(function(index1, teaser1) {
					if(index1 >= index && index1 <= index + 1) {
						$(teaser1).height(maxHeight);
					}
				});
			}
		});
	}

}

function teaserHightCM3() {
	var self = this;

	$(document).ready(init);

	function init() {

		var container = $('.cm3');
		var teasers = container.find('.text-teaser-element');

		teasers.each(function(index, te) {
			var teaser = $(te);
			if(index % 3 == 0) {
				var maxHeight = 0;
				teasers.each(function(index1, teaser1) {
					if(index1 >= index && index1 <= index + 2) {
						var height = $(teaser1).height();
						if(height > maxHeight)
							maxHeight = height;
					}
				});
				teasers.each(function(index1, teaser1) {
					if(index1 >= index && index1 <= index + 2) {
						$(teaser1).height(maxHeight);
					}
				});
			}
		});
	}

}

function unternehmenOrganisationPersonsHoverHeight() {
	var self = this;

	$(document).ready(init);

	function init() {

		var container = $('.cm36');
		var persons = container.find('.organisation-vorstand-item');

		persons.each(function(index, pe) {
			var person = $(pe);
			if(index % 3 == 0) {
				var maxHeight = 0;
				persons.each(function(index1, person1) {
					if(index1 >= index && index1 <= index + 2) {
						var height = $(person1).height();
						if(height > maxHeight)
							maxHeight = height;
					}
				});
				persons.each(function(index1, person1) {
					if(index1 >= index && index1 <= index + 2) {
						$(person1).height(maxHeight);
					}
				});
			}
		});

		persons.bind('click', function() {
			window.jSpinner.spin();
			var ov = $(this).siblings('.overlay-unternehmen-organisation').clone();
			$('.overlays').append(ov);
			ov.show();
			$('.overlays').fadeIn(500, function() {
				window.jSpinner.stop();
			});
			return false;
		});
	}

}

function unternehmenOrganisationGeschaeftsleitungOverlays() {
	var self = this;

	$(document).ready(init);

	function init() {

		var container = $('.cm37');
		var persons = container.find('.organisation-item');
		//var persons = container.find('.organisation-item');
		persons.bind('click', function() {
			window.jSpinner.spin();
			var ov = $(this).find('.overlay').clone();
			$('.overlays').append(ov);
			ov.show();
			$('.overlays').fadeIn(500, function() {
				$('#ovSpinner').hide();
				window.jSpinner.stop();
				var isiPad = navigator.userAgent.match(/iPad/i) != null;
				if(isiPad){
					ov.css({'position':'absolute', 'top': $(window).scrollTop()+100 });
					$(window).bind('scroll', function(){
						ov.css('top', $(window).scrollTop()+100);
					});
				}
			});
			return false;
		});

		if($('#maincontent .search-item').length !== 0){
			$('#maincontent .search-item .links a.sOvL').bind('click', function(){
				$(window).scrollTop(0);
				var termsOV = $('.cm41 .termsOv').clone();
				termsOV.addClass('overlay');
				$('.overlays').append(termsOV);
				termsOV.show();

				var link = $(this).attr('href'); 
				termsOV.find('.dwLink a').attr('href', link);
				termsOV.find('input').prop('id','cb-finder-ov');
				termsOV.find('label').prop('for','cb-finder-ov');
				$('#cb-finder-ov').customcheckbox();
			    $('#cb-finder-ov').prop("checked", false);
			    $('#cb-finder-ov').bind('change', function(){
			       	if($(this).prop("checked")){
						$('.termsOv .dwLink').addClass('active');
					}else{
						$('.termsOv .dwLink').removeClass('active');
					}
			    });

			    $('.termsOv .dwLink a').bind('click', function(){
			        if($(this).parent().hasClass('active')){
			        return true;
			        }
			        return false;
			    });

				$('.overlays').fadeIn(500, function(){
					window.jSpinner.stop();
					$('#ovSpinner').hide();
				});

				return false;
			});
		}

	}

}

function karriereWeiterleitungOverlay() {
	var self = this;
	$(document).ready(init);

	function init() {

		var container = $('.cm12');
		var boxes = container.find('.job.emphasize-alpha');

		boxes.each(function(index, box) {

			$(box).find('.more-link').bind('click', function() {
				$('html,body').animate({
					scrollTop : 0
				}, 'slow');
				window.jSpinner.spin();
				$('#ovSpinner').show();
				var ov = $(box).next().clone();
				$('.overlays').append(ov);
				ov.show();
				$('.overlays').fadeIn(500, function() {
					window.jSpinner.stop();
					$('#ovSpinner').hide();
				});
				return false;
			});
		});
		container = $('.cm12-career_umdasch');
		boxes = container.find('.job-umdasch').children().eq(0);

		boxes.bind('click', function() {
			$('html,body').animate({
				scrollTop : 0
			}, 'slow');
			window.jSpinner.spin();
			$('#ovSpinner').show();
			var ov = $(this).next().clone();
			$('.overlays').append(ov);
			ov.show();
			$('.overlays').fadeIn(500, function() {
				window.jSpinner.stop();
				$('#ovSpinner').hide();
			});
			return false;
		});
	}

}

function csbThumbText() {
	var self = this;

	$(document).ready(init);

	function init() {
		var containers = $(".csb2-thumb-text");
		containers.each(function(index, container) {
			container = $(container);

			var teasers = container.find(".teaser-thumb-text-small");
			teasers.hide();
			teasers.each(function(index, teaser) {
				teaser = $(teaser);
				if(index < 2) {
					teaser.show();
				}
			});
			var morelink = container.find(".more-link2");
			morelink.removeAttr("href").css({
				'cursor' : 'pointer'
			});
			if(teasers.length <= 2) {
				morelink.hide();
			}
			morelink.click(function() {
				teasers.each(function(index, teaser) {
					teaser = $(teaser);
					if(index >= 2) {
						teaser.delay(index * 100).slideDown(300, function() {
							layoutAllFitImages(container);
						});
					}
				});
				morelink.delay(200).slideUp(300);
			});
		});
	}

}

function csbMedia() {
	var self = this;

	$(document).ready(init);
	function init() {
		var containers = $(".csb1-media");
		containers.each(function(index, container) {
			var container = $(container);

			var links = container.find(".container a");
			links.hide();
			links.each(function(index, link) {
				var link = $(link);
				if(index < 3) {
					link.show();
				}
			});
			var morelink = container.find(".more-link2");
			morelink.removeAttr("href").css({
				'cursor' : 'pointer'
			});
			if(links.length <= 3) {
				morelink.hide();
			}
			morelink.click(function() {
				links.each(function(index, teaser) {
					var teaser = $(teaser);
					if(index >= 3) {
						teaser.delay(index * 100).fadeIn(300);
					}
				});
				morelink.delay(200).slideUp(300);
			});
		});
	}

}

function newsroomEvents() {
	var self = this;

	$(document).ready(init);
	function init() {

		var table = $('.cm42 .table');
		var tableRows = table.find('.row');
		var accordionContent = $('.cm42 .accordion-content').show();

		tableRows.each(function(rowIndex, tRow) {
			var tableRow = $(tRow);
			var tableCells = tableRow.find('.column');
			var maxHeight = 0;

			tableCells.each(function(cellIndex, tableCell) {
				var height = $(tableCell).height();
				if(height > maxHeight)
					maxHeight = height;
			});

			tableCells.each(function(cellIndex, tableCell) {
				$(tableCell).height(maxHeight);
			});
		});
		accordionContent.hide();
	}

}

function autocompleteSearch() {
	var self = this;

	$(document).ready(init);

	function init() {
		/**
		 * [TICKET 1278]
		 * 
		 */
		 
		 var searchInput = $('#autocompleteSearchString, .ch-search .search-box input[type="text"]'),
			language = $('meta[name="language"]').attr('content'),
			searchSiteUrl = '/web/search/index.' + language + '.php',
			searchButton = $('#autocompleteSearchButton');

		searchInput.parent().parent().addClass('ui-widget');
		searchInput.autocomplete({
			source: function(request, response){
				$.ajax({
						url: '/search/autocomplete.php?limit=10',
						method: 'GET',
						dataType: 'jsonp',
						data: {lang:language, query: request.term},
						success: function(data) {
							response( $.map( data, function( item ) {
								return {
									label: item,
									value: item
								}
							}));
						}
					});
			},
			minLength: 2,
			select: function( event, ui ) {
				
			},
			open: function() {
				if($(this).is('#autocompleteSearchString')){
					var dropMenu = $( "ul.ui-widget-content" );
					var opLeft = parseInt(dropMenu.css('left'),10);
					opLeft = opLeft - 5;
					dropMenu.css('left', opLeft);
				}
			},
			close: function() {
				$( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
			}

		});

		searchButton.click(function() {
			if(searchInput.val().length !== 0){
				window.location = searchSiteUrl+'?query='+searchInput.val()+'&pageSize=10&lang='+language;
			}
		});

		searchInput.keyup(function(e){
			if(e.keyCode == '13'){
				if(searchInput.val().length !== 0){
					window.location = searchSiteUrl+'?query='+searchInput.val()+'&pageSize=10&lang='+language;
				}
			}
		});
		// TICKET 1278
		




		//outcomment when getting new autocomplete online
		/*var resultsPerPage = 10;
		var timer = 200;
		var animationSpeed = 1000;
		var container = $('.autocomplete-search-container');
		var resContainer = $('#autocomplete-search-results');
		var searchButton = $('#autocompleteSearchButton');
		var searchedText = $('#autocompleteSearchString');
		var morelink = resContainer.next();
		var language = $('meta[name="language"]').attr('content');
		var searchSiteUrl = '/web/search/index.' + language + '.php';

		searchedText.keyup(function(event) {
			if($('#mainnav-search .mainnav-search-input input').val().length != 0) {
				morelink = resContainer.next().attr('href', searchSiteUrl + '?query=' + searchedText.val() + '&pageSize=10&start=0&lang=' + language + '&callback=1')

				if(event.keyCode == '13') {
					window.location = morelink.attr('href');
				}

				ajaxRequest();
			} else {
				container.fadeOut(200);
			}
		});

		searchButton.click(function() {
			window.location = morelink.attr('href');
		});

		$('#mainnav-search .mainnav-search-input input').blur(function() {
			container.fadeOut(200);
		});
		$('#mainnav-search .mainnav-search-input input').focus(function() {
			if($(this).val().length != 0) {
				container.fadeIn(100);
			}
		});
		function ajaxRequest() {
			$.ajax({
				url : "/search/autocomplete.php",
				data : 'query=' +  encodeURIComponent(searchedText.val()) + '&lang=' +  encodeURIComponent(language),
				dataType : "jsonp",
				contentType: "application/x-www-form-urlencoded;charset=UTF-8",
				success : function(returnData) {
					returnData = cleanData(returnData);
					resContainer.html('');
					container.fadeIn(100);
					$.each(returnData.docs, function(key, val) {
						var html = '<div class="row">' + '<div class="column1">' + '<span>' + val.category + '</span>' + '</div>' + '<div class="column2">';
						$.each(val.values, function(key1, val1) {
							html += '<a href="' + val1.url + '">' + val1.title + '</a>';
						});
						html += '</div>' + '<div class="clear"></div>' + '</div>';
						resContainer.append(html);
					});
					if(container.not(':visible')) {
						container.fadeIn(100);
					}
				},
				error : function(jqXHR, textStatus) {
					//console.log(jqXHR);
					//console.log(textStatus);
				}
			});
		}

		function removeDuplicateElement(arrayName) {
			var newArray = [];
			label:
			for(var i = 0; i < arrayName.length; i++) {
				for(var j = 0; j < newArray.length; j++) {
					if(newArray[j] === arrayName[i])
						continue label;
				}
				newArray[newArray.length] = arrayName[i];
			}
			return newArray;
		}

		function cleanData(inputData) {
			var outputData;
			outputData = {
				"docs" : []
			};
			var duplicates = [];
			if(inputData.response.docs != undefined) {

				$.each(inputData.response.docs, function(key, val) {
					duplicates.push(val.category);
				});
				duplicates = removeDuplicateElement(duplicates);

				$.each(duplicates, function(key, val) {
					outputData.docs.push({
						"category" : val,
						"values" : []
					});
				});

				$.each(inputData.response.docs, function(key, val) {
					$.each(outputData.docs, function(key1, val1) {
						if(val1.category === val.category) {
							val1.values.push({
								"title" : val.title,
								"url" : val.url
							});
						}
					});
				});
			}
			return outputData;
		}*/
		// outcommend END


	}

}

function fulltextSearch() {
	var self = this;

	$(document).ready(init);

	function init() {
		var resultsPerPage = 10;
		var timer = 200;
		var animationSpeed = 1000;
		var container = $('.cm41 .content-element');
		var searchButton = $('#fulltext-search-button');
		var searchCount = $('#fulltext-search-count');
		var searchedText = $('#fulltext-searched');
		var searchQuery = $('#fulltext-search-query');
		searchButton.click(function() {
			$.ajax({
				url : "/search/search.php",
				data : 'query=' + searchQuery.val() + '&pageSize=10&start=0&lang=de_AT',
				success : function(returnData) {
					returnData = cleanData(returnData);

					container.html('');
					searchCount.html(returnData.numFound);
					searchedText.html('"' + searchQuery.val() + '"');
					$.each(returnData.docs, function(key, val) {
						var html = $('<div class="search-item">' + '<h3>' + val.title + '</h3>' + '<div class="text"><p>' + val.text + '</p></div>' + '<div class="links">' + '<a href=' + val.url + '>' + val.url + '</a>' + '<a class="more-link" href=' + val.url + '><span>mehr</span></a>' + '<div class="clear"></div>' + '</div>' + '</div>');
						container.append(html);
						html.hide().delay(timer * key).fadeIn(animationSpeed);
					});
				}
			});
		});
		function cleanData(inputData) {
			var outputData;
			outputData = {
				"numFound" : 11,
				"start" : 0,
				"searchString" : "",
				"docs" : []
			};
			$.each(inputData.response.docs, function(key, val) {
				outputData.docs.push(val);
			});
			$.each(inputData.highlighting, function(key, val) {
				$.each(inputData.response.docs, function(key1, val1) {
					if(val1.id === key) {
						outputData.docs[key1].text = val.text;
					}
				});
			});
			return outputData;
		}
	}

}

function overlayClose() {
	var self = this;

	$(document).ready(init);

	function init() {
		$('body .overlays').prepend('<div id="ovSpinner"></div>');

		var opts = {
		    lines : 12, // The number of lines to draw
		    length : 14, // The length of each line
		    width : 4, // The line thickness
		    radius : 12, // The radius of the inner circle
		    color : '#000', // #rbg or #rrggbb
		    speed : 1, // Rounds per second
		    trail : 66, // Afterglow percentage
		    shadow : false // Whether to render a shadow
		};
		window.jSpinnerTarget = document.getElementById('ovSpinner');
		window.jSpinner = new Spinner(opts).spin(window.jSpinnerTarget);

		$('.overlay-close, .closeOv, .overlay-bg, .termsOv .clTOv, .career-external-url-overlay a.more-link').live('click', function() {
			$('.overlays').fadeOut(500, function() {
				$('.overlays .overlay, .overlays #finderOverlay, .overlays #dienstOverlay, .overlays .refOvLoadError, .overlays .termsOv').remove();
				$('#container').removeClass('ovOpen');
				if(typeof(refFinder)!=='undefined'){
					refFinder.resetPTitle();
				}
			});
		});
	}

}

function SchulungDateSelector() {
	var self = this;

	$(document).ready(init);

	function init() {
		$(".dateselector").each(function(index, dateselector) {
			$(dateselector).find("input").bind("change", function() {
				var _name = $(this).attr("name");
				var _id = $(this).attr("id");
				var _content = $(this).parent().find("label[for=" + _id + "]").text();
				$("label[for=" + _name + "]").text(_content);
				$("input[name=" + _name + "-inp]").attr("value", _content);
			});
		});
	}

}

function breadcrumb() {
	$(document).ready(init);

	function init() {
		$('#breadcrumb > div').removeClass('active').last().addClass('active');
	}

}

function SelectCountry() {
	var self = this;

	$(document).ready(init);

	function init() {
		$(".custom-radio-select-country input").customcheckbox();
		$(".custom-checkbox-select-country input").customcheckbox();
	}

}

function Formulars() {

	$(".text-input input").behindscenes();
	$(".text-field textarea").behindscenes();
	//$(".select-box select").customselectbox();
	$(".custom-checkbox input").customcheckbox();
	$(".custom-radio input").customcheckbox();
	$(".contactform").formvalidator();
	$(".applicationform").formvalidator();
	$(".colform").formvalidator();

	if($('.contactform').length !== 0){
		var getparam = gup("country");
		 if(getparam.length !== 0){
		  var $selOption = $('#country option').filter(function(index){
		   return $(this).html() === getparam;
		  });
		  $selOption.attr('selected',true);
		 }
	}

	$('#cb-cat-1').checkAll('.ch-categories ul li input:checkbox');
}

function AccordionClass(element, options) {
	var base = this;
	base.options = {
		'speed' : '500',
		'delay' : '0'
	}
	base.init = function(element) {
		base.element = $(element);
		base.header = base.element.find('.accordion-header').eq(0);
		base.content = base.element.children('.accordion-content').eq(0);
		if(base.element.hasClass("opened")) {
			base.open();
		} else if(base.element.hasClass("closed")) {
			base.close();
		} else {
			base.close();
		}
		base.addClickEvent();

		if(window.location.hash != undefined && window.location.hash != '') {
			if(base.element.find("a[name=" + window.location.hash.substring(1) + "]").length > 0) {
				base.element.removeClass('closed');
				base.open();
			}
		}
		return base;
	}
	base.close = function() {
		base.removeClasses();
		base.content.slideUp(base.options.speed, function() {
			base.element.addClass("closed");
			if(base.element.parents('#locResultListContent').length !== 0) {
				base.element.parents('#locResultListContent').jScrollPane().data().jsp.reinitialise();
			}
		});
		return base;
	}
	base.open = function() {
		base.removeClasses();
		base.content.slideDown(base.options.speed, function() {
			base.element.addClass("opened");
			base.element.removeClass("closed");
			if(base.element.parents('#locResultListContent').length !== 0) {
				base.element.parents('#locResultListContent').jScrollPane().data().jsp.reinitialise();
			}
		});
		return base;
	}
	base.removeClasses = function() {
		base.element.removeClass("opened");
		base.element.removeClass("closed");
		return base;
	}
	base.addClickEvent = function() {
		base.header.click(function() {
			if(base.element.hasClass("opened")) {
				base.close();
			} else if(base.element.hasClass("closed")) {
				base.open();
			}
		});
		return base;
	}
	base.removeClickEvent = function() {
		base.header.unbind('click');
		return base;
	}

	base.init(element);
}

// atti: kind of a hack to open accordions without using the click event. clean solution needed!
$.fn.closeAccordion = function() {
	$(this).removeClass("opened");
	$(this).removeClass("closed");
	$(this).children('.accordion-content').eq(0).slideUp(500, function() {
		$(this).parent().addClass("closed");
	});
	// jürgen: wär ein Möglichkeit wenn das für dich passt
	//$(this).children('.accordion-header').eq(0).trigger("click");
}
function mailBtn() {
	$(document).ready(function() {
		var lang = ($('meta[name="language"]')).attr('content');
		if(location.hash.search("success=true") != -1) {
			window.jSpinner.spin();
			$('#ovSpinner').show();
			$('.overlays').fadeIn(500, function() {
				$.ajax({
					type : "GET",
					url : '/web/send-page/index.' + lang + '.php',
					data : "url=" + location.href,
					dataType : 'html',
					success : function(data) {
						$('.overlays').append(data);
						$(".formOverlay").children().hide();
						$(".formOverlay").children(".success").show();
						window.jSpinner.stop();
						$('#ovSpinner').hide();
					}
				});
			});
		}

		if(location.hash.search("success=false") != -1) {
			window.jSpinner.spin();
			$('#ovSpinner').show();
			$('.overlays').fadeIn(500, function() {
				$.ajax({
					type : "GET",
					url : '/web/send-page/index.' + lang + '.php',
					data : "url=" + location.href,
					dataType : 'html',
					success : function(data) {
						$('.overlays').append(data);
						$(".formOverlay").children().hide();
						$(".formOverlay").children(".error").show();
						window.jSpinner.stop();
						$('#ovSpinner').hide();
					}
				});
			});
		}
		$('.content-footer a.email').bind('click', function() {
			$(window).scrollTop(0);
			window.jSpinner.spin();
			$('#ovSpinner').show();
			$('.overlays').fadeIn(500, function() {
				$.ajax({
					type : "GET",
					url : '/web/send-page/index.' + lang + '.php',
					data : "url=" + location.href,
					dataType : 'html',
					success : function(data) {
						$('.overlays').append(data);
						window.jSpinner.stop();
						$('#ovSpinner').hide();
					}
				});
			});
			return false;
		});
	});
}

function finderBtn() {
	$(document).ready(function() {
	    if($('#sidebar .findertool').length !== 0){
		$('#sidebar .findertool').bind('click', function() {
		    window.jSpinner.spin();
		    $('#ovSpinner').show();
		    var inCat = $('meta[name="indexcategory"]').attr('content');
		    var locale = $('meta[name="language"]').attr('content');
		    inCat = inCat.toLowerCase();

		    var fUrl = 'http://' + location.host + '/web/' + inCat + '/finder/index.' + locale + '.php';
		    $('.overlays').fadeIn('500', function() {
			$.ajax({
			    url : fUrl,
			    dataType : 'html',
			    success : function(data) {
				$('.overlays').prepend(data);
				window.jSpinner.stop();
				$('#ovSpinner').hide();
				$('#container').addClass('ovOpen');

				/**
				 * auskommentiert wegen:
				 * TICKET 921 -> neue Findersuche
				 *
				$('#finderForm').find('.sIcon').bind('click', function() {
					$('#finderForm').submit();
				});
				*/

			    },
			    error : function(jqXHR, textStatus, errorThrown) {
			    }
			});
		    });
		    return false;
		});
		
		var finderHash = gup('finder');
		if(finderHash.length !== 0){
		    $('#sidebar .findertool').click();
		}
	    }
	    // TOOLBAR - open Tools Handler
	    $('#toolbar .toolbar-dropdown').bind('click', function() {
		    $(this).addClass('opened').find('.toolbar-flappe').fadeIn(500, function() {
			    $(document).one('click', function() {
				    $('.toolbar-flappe').fadeOut(500, function() {
					    $('#toolbar .toolbar-dropdown').removeClass('opened');
				    });
			    });
		    });
	    });
	});
}

function submitenter(myfield, e) {
	var keycode;
	if(window.event)
		keycode = window.event.keyCode;
	else if(e)
		keycode = e.which;
	else
		return true;

	if(keycode == 13) {
		myfield.form.submit();
		return false;
	} else
		return true;
}

function karriereSlider() {
	var self = this;
	var slIval = null;
	$(document).ready(init);

	function init() {
		if($('.emphasize-alpha').length !== 0) {
			$('.emphasize-alpha .arrLeft').bind('click', function() {
				clearInterval(slIval);
				animLeft();
			}).show();
			$('.emphasize-alpha .arrRight').bind('click', function() {
				clearInterval(slIval);
				animRight();
			}).show();

			var fSlide = $('.emphasize-alpha .slideWrap .careerSlide').eq(0).clone();
			var l = $('.emphasize-alpha .slideWrap .careerSlide').length - 1;
			var lSlide = $('.emphasize-alpha .slideWrap .careerSlide').eq(l).clone();
			$('.emphasize-alpha .slideWrap').append(fSlide);
			$('.emphasize-alpha .slideWrap').prepend(lSlide);

			$('.emphasize-alpha .slideWrap .careerSlide').hide().eq(1).show();
			slIval = setInterval(function() {
				animRight();
			}, 7000);
		}
	}

	function animLeft() {
		$('.emphasize-alpha .arrLeft').unbind();
		$('.emphasize-alpha .arrRight').unbind();
		var cSlide = $('.emphasize-alpha .slideWrap .careerSlide:visible');
		clearInterval(slIval);
		cSlide.animate({
			'left' : 600 + 'px'
		}, 500, function() {

			if($.browser.msie && parseInt($.browser.version) < 9) {
				$('.cm11>img').hide();
				cSlide.hide();
				cSlide = cSlide.prev();
				$('.cm11>img').attr('src', cSlide.attr('title'));
				$('.cm11>img').show();
				$('.emphasize-alpha .slideWrap .careerSlide').css('left', -600 + 'px');
				cSlide.show();
				cSlide.animate({
					left : 0
				}, 500, function() {
					checkBtns(cSlide);
				});
			} else {
				$('.cm11>img').fadeOut(1000, function() {
					cSlide.hide();
					cSlide = cSlide.prev();
					$(this).attr('src', cSlide.attr('title'));
					$(this).fadeIn(1000, function() {
						$('.emphasize-alpha .slideWrap .careerSlide').css('left', -600 + 'px');
						cSlide.show();
						cSlide.animate({
							left : 0
						}, 500, function() {
							checkBtns(cSlide);
						});
					});
				});
			}
		});
	}

	function animRight() {
		$('.emphasize-alpha .arrLeft').unbind();
		$('.emphasize-alpha .arrRight').unbind();
		var cSlide = $('.emphasize-alpha .slideWrap .careerSlide:visible');
		cSlide.animate({
			'left' : -600 + 'px'
		}, 500, function() {

			if($.browser.msie && parseInt($.browser.version) < 9) {
				$('.cm11>img').hide();
				cSlide.hide();
				cSlide = cSlide.next();
				$('.cm11>img').attr('src', cSlide.attr('title'));
				$('.cm11>img').show();
				$('.emphasize-alpha .slideWrap .careerSlide').css('left', 600 + 'px');
				cSlide.show();
				cSlide.animate({
					left : 0
				}, 500, function() {
					checkBtns(cSlide);
				});
			} else {
				$('.cm11>img').fadeOut(1000, function() {
					cSlide.hide();
					cSlide = cSlide.next();
					$(this).attr('src', cSlide.attr('title'));
					$(this).fadeIn(1000, function() {
						$('.emphasize-alpha .slideWrap .careerSlide').css('left', 600 + 'px');
						cSlide.show();
						cSlide.animate({
							left : 0
						}, 500, function() {
							checkBtns(cSlide);
						});
					});
				});
			}
		});
	}

	function checkBtns(obj) {
		var cSlide = obj;
		if(cSlide.next().length === 0) {
			$('.emphasize-alpha .careerSlide').hide().eq(1).css('left', 0).show();
		}

		if(cSlide.prev().length === 0) {
			var l = $('.emphasize-alpha .slideWrap .careerSlide').length - 2;
			$('.emphasize-alpha .careerSlide').hide().eq(l).css('left', 0).show();
		}

		$('.emphasize-alpha .arrLeft').bind('click', function() {
			clearInterval(slIval);
			animLeft();
		});
		$('.emphasize-alpha .arrRight').bind('click', function() {
			clearInterval(slIval);
			animRight();
		});
	}

}

function HotNewsAnimator() {
	var self = this;
	$(document).ready(init);

	function init() {
		$("#hotnews ul").each(function() {
			window.setTimeout(moveUp, 5000);
		});
	}

	function moveUp() {
		_top = parseInt($("#hotnews ul").css("top"), 10);
		_top -= 14;
		$("#hotnews ul").animate({
			top : "" + _top + "px"
		}, 700, function() {
			$(this).css("top", "0px");
			$(this).find("li").eq(0).appendTo($(this));
			window.setTimeout(moveUp, 5000);
		});
	}

}

function MainTeaserAnimator() {
	var self = this;
	var notClicked = true;
	$(document).ready(init);

	function init() {
		//$(".teaser-topics").each(function() {
		window.setTimeout(changeTeaser, 12000);
		//});
		$(".teaser-text").bind("click", function() {
			changeTeaserManually($(this));
		});
	}

	function changeTeaserManually(_obj) {
		notClicked = false;
		var _act = $(".teaser-topics").find(".active");
		var _nxt = _obj.parent();
		if(!_nxt.hasClass("active")) {
			$(".teaser-topics").find("li").each(function() {
				$(this).find(".teaser-quote").fadeOut(500);
				$(this).find(".active-overlay").fadeOut(500);
				$(this).find(".teaser-quote span").fadeOut(300);
				$(this).find(".teaser-quote div").fadeOut(300);
				$(this).removeClass("active");
			});
			_nxt.find(".teaser-quote span").fadeIn(500);
			_nxt.find(".teaser-quote div").fadeIn(500);
			_nxt.find(".teaser-quote").fadeIn(500);
			_nxt.find(".active-overlay").fadeIn(500, function() {
				_nxt.addClass("active");
				_imsrc = _nxt.attr("rel");
				var _oldbg = $("#bg");
				var _nbg = $("#bg").clone();
				_nbg.hide();
				if($.browser.msie) {
					_nbg.attr("src", _imsrc);
					$("#viewport").append(_nbg);
					_nbg.fadeIn(1000);
					_oldbg.fadeOut(1000, function() {
						_oldbg.remove();
					});
				} else {
					_nbg.attr("src", _imsrc).load(function() {
						$("#viewport").append(_nbg);
						_nbg.fadeIn(1000);
						_oldbg.fadeOut(1000, function() {
							_oldbg.remove();
						});
					});
				}
			});
		}
	}

	function changeTeaser() {
		if(notClicked) {
			var _act = $(".teaser-topics").find(".active").eq(0);
			var _nxt;
			if(_act.next().length > 0) {
				_nxt = _act.next();
			} else {
				_nxt = $(".teaser-topics").find("li").eq(0);
			}
			_act.find(".teaser-quote").fadeOut(500);
			_act.find(".active-overlay").fadeOut(500);
			_act.removeClass("active");
			_nxt.find(".teaser-quote").fadeIn(500);
			_nxt.find(".active-overlay").fadeIn(500, function() {
				_nxt.addClass("active");
				_imsrc = _nxt.attr("rel");
				var _oldbg = $("#bg");
				var _nbg = $("#bg").clone();
				_nbg.hide();
				_oldbg.addClass('obg');
				if($.browser.msie) {
					_nbg.attr("src", _imsrc);
					$("#viewport").append(_nbg);
					_nbg.fadeIn(1000);
					_oldbg.fadeOut(1000, function() {
						_oldbg.remove();
						$('.obg').remove();
					});
				} else {
					_nbg.attr("src", _imsrc).load(function() {
						$("#viewport").append(_nbg);
						_nbg.fadeIn(1000);
						_oldbg.fadeOut(1000, function() {
							_oldbg.remove();
							$('.obg').remove();
						});
					});
				}
			});

			window.setTimeout(changeTeaser, 12000);
		}
	}

}

function ImpressionSlider() {
	var self = this;
	$(document).ready(init);

	function init() {
		$(".impressionsSlider").find(".arrow-right").eq(0).bind("click", function() {
			var _first = $(".gallery-items").find("li").eq(1);
			var _pos = _first.position().left;
			$(".gallery-items").find(".gallery-wrapper").eq(0).animate({
				left : "-" + _pos + "px"
			}, 400, function() {
				$(".gallery-items").find(".gallery-wrapper").eq(0).css("left", "0px");
				$(".gallery-items").find("li").eq(0).appendTo($(".gallery-items").find("ul").eq(0));
			});
		});

		$(".impressionsSlider").find(".arrow-left").eq(0).bind("click", function() {
			var _first = $(".gallery-items").find("li").eq(1);
			var _last = $(".gallery-items").find("li").last();
			var _pos = _first.position().left;
			$(".gallery-items").find(".gallery-wrapper").eq(0).css("left", "-" + _pos + "px");
			_last.prependTo($(".gallery-items").find("ul").eq(0));

			$(".gallery-items").find(".gallery-wrapper").eq(0).animate({
				left : "0px"
			}, 400, function() {

			});
		});
	}

}

function ScrollAndOpenAccordeon(_hash) {
	$('html,body').animate({
		scrollTop : $('a[name=' + _hash + ']').parent().offset().top - $("#header").height()
	}, 'slow');
	$(".accordion-header").each(function() {
		$(this).find("a").eq(0).each(function() {
			if($(this).attr("name") === _hash && !$(this).parent().parent().hasClass("opened")) {
				$(this).parent().trigger("click");
			}
		});
	});
}

function openDownloadCenter(id, lang, label, dlcUrl, isSub) {
	window.jSpinner.spin();
	$('#ovSpinner').show();
	$('.overlays').fadeIn(300);
	$('#container').addClass('ovOpen');
	var sub = "true";
	if(!isSub){
		sub = null;
	}
	var dataStr = '';
	if(sub !== null){
		dataStr = 'id=' + id + '&lang=' + lang + '&label=' + label + '&isSub=true';
	}else{
		dataStr = 'id=' + id + '&lang=' + lang + '&label=' + label;
	}

	$.ajax({
		url : dlcUrl,
		type : 'POST',
		dataType : 'html',
		data : dataStr,
		success : function(data) {
			$('.overlays').prepend(data);
			$('.download-center').fadeIn(300);
			downloadCenterTermsOfService();
			window.jSpinner.stop();
			$('#ovSpinner').hide();
		}
	});
}

function openServiceTypeAccordion(serviceTypeId, me) {
	$('.subnavigation .accordion.opened').each(function() {
		$(this).closeAccordion();
	});

	$('.subnavigation .accordion.active').each(function() {
		$(this).removeClass('active');
	});

	$('#maincontent .accordion.opened').each(function() {
		if($(this).attr('id') != ('serviceTypeAcc-' + serviceTypeId)) {
			$(this).closeAccordion();
		}
	});

	$(me).parent().addClass('active');

	$('#serviceTypeAcc-' + serviceTypeId + '.closed .accordion-header').click();
}

/* PLUGINS */

/*----------------------------------------------------  
    CheckAll plugin for jQuery
    Version: 1.4

    Copyright (c) 2011 Matt Ball
    
    June 14, 2011

    Requires: jQuery 1.4.2+
    Last tested with: 1.4.4, 1.5.2, 1.6
------------------------------------------------------*/

(function($)
{
    $.fn.checkAll = function (group, options)
    {
        var opts = $.extend({}, $.fn.checkAll.defaults, options),
            $master = this,
        
            $slaves = $(group),
            selector,
            groupSize,
            onClick = typeof opts.onClick === 'function' ? opts.onClick : null,
            onMasterClick = typeof opts.onMasterClick === 'function' ? opts.onMasterClick : null,
            reportTo = typeof opts.reportTo === 'function' ? opts.reportTo : null,
            
            // for compatibility with 1.4.2 through 1.6
            propFn = typeof $.fn.prop === 'function' ? 'prop' : 'attr';
        
        // omit the master if it was accidentally selected with the slaves
        if ($slaves.index($master) === -1)
        {
            selector = $slaves.selector;
        }
        else    
        {
            $slaves = $slaves.not($master.selector);
            selector = $slaves.selector.replace('.not(', ':not(');
        }
        
        groupSize = $slaves.length;
        
        if (groupSize === 0)
        {
            // this is kind of a problem
            groupSize = -1;
        }
        
        function _countChecked()
        {
            return $slaves.filter(':checked').length;
        }
            
        function _autoEnable()
        {
            var numChecked = _countChecked();
            $master[propFn]('checked', groupSize === numChecked);
            $master.trigger('updateState');
            if (reportTo)
            {
                reportTo(numChecked);
            }
        }
            
        function _autoDisable()
        {
            $master[propFn]('checked', false);
            $master.trigger('updateState');
            if (reportTo)
            {
                reportTo(_countChecked());
            }
        }
        
        $master.unbind('click.checkAll').bind('click.checkAll', function (e)
        {
            var check_val = e.target.checked;
            $slaves.add($master)[propFn]('checked', check_val);
            $slaves.trigger('updateState');
            if (onMasterClick)
            {
                onMasterClick.apply(this);
            }
            
            if (reportTo)
            {
                reportTo(check_val ? _countChecked() : 0);
            }
        });

        
        if (opts.sync)
        {
            $(selector).die('click.checkAll').live('click.checkAll', function ()
            {
                this.checked ? _autoEnable() : _autoDisable();
                
                if (onClick)
                {
                    onClick.apply(this);
                }
            });
        }
        
        _autoEnable();
        
        return this;
    };
    
    $.fn.checkAll.defaults = {sync: true};
}(jQuery));

(function($) {
	$.interactiveImg = function(element, newOptions) {
		var base = this;

		var options = {
			direction : 'right',
			hideInfoText : false
		};

		base.$element = $(element);
		$.extend(options, newOptions);

		base.initialize = function() {
			base.getImage();
			base.getPOIsContainer();
			base.getAllPOIs();
			base.$pois.each(function(index, element) {
				base.initializePOI(element);
			});
			base.draw();
		};

		base.getImage = function() {
			base.$img = base.$element.children('.interactiveImageImage');
		};

		base.getPOIsContainer = function() {
			base.$poisContainer = base.$element.children('.interactiveImagePOIs');
		};

		base.getAllPOIs = function() {
			base.$pois = base.$poisContainer.children('.interactiveImagePOI');
		};
		//index starts with 0
		base.initializePOI = function(poiCont) {
			var poiContainer = $(poiCont);
			var point = poiContainer.children('.interactiveImagePoint').first();
			var textBox = poiContainer.children('.interactiveImageTextBox').first();
			textBox.children('.interactiveImageClose').detach();
			point.unbind('click');

			/*point.click(function() {
			 if(point.siblings('.interactiveImageTextBox:visible').length === 0){
			 $('.interactiveImageTextBox:visible').fadeOut(500);
			 }
			 textBox.fadeToggle();
			 $('.interactiveImageImage').one('click', function(){
			 $('.interactiveImageTextBox:visible').fadeOut(500);
			 });
			 }); */

			if(textBox.hasClass('interactiveImageTextBoxLeft')) {
				textBox.css({
					'left' : -39 - textBox.width(),
					'top' : ''
				});
			} else if(textBox.hasClass('interactiveImageTextBoxTop')) {
				textBox.css({
					'left' : '',
					'top' : -35 - textBox.height()
				});
			} else {
				textBox.css({
					'left' : '',
					'top' : ''
				});

			}
			$('.interactiveImageTextBox').show();
		};

		base.getImageOffset = function() {
			return {
			    'x' : parseInt(base.$img.position().left, 10),
			    'y' : parseInt(base.$img.position().top, 10)
			};
		};
		base.draw = function() {
			var offset = base.getImageOffset();

			for(var i = 0; i < base.$pois.length; i++) {
				var top = offset.y + parseInt(base.$pois.eq(i).attr('rel').split(',')[1], 10);
				var left = offset.x + parseInt(base.$pois.eq(i).attr('rel').split(',')[0], 10);

				if(base.$pois.parents('.reference-detail-overlay').length != 0) {
				    if ($.browser.msie  && parseInt($.browser.version, 10) <= 7) {
				      left = left + 111,
				      top = top + 76
				    }
				    base.$pois.eq(i).css({
					    'left' : left + 23,
					    'top' : top + 23
				    });
				} else {
				    base.$pois.eq(i).css({
					    'left' : left,
					    'top' : top
				    });
				}

				if((base.$pois.eq(i).attr('rel') == "NaN,NaN") || (base.$pois.eq(i).attr('rel') == "NaN,0") || (base.$pois.eq(i).attr('rel') == "0,NaN") || (base.$pois.eq(i).attr('rel') == "") || (base.$pois.eq(i).attr('rel') == "0,0")) {
					base.$pois.eq(i).css({
						'display' : 'none'
					});
				} else {
					base.$pois.eq(i).css({
						'display' : 'block'
					});
				}

				if(options.hideInfoText == true) {
					base.$pois.eq(i).children('.interactiveImageTextBox').first().hide();
				}
			}
		};

		base.initialize();
	};

	$.fn.interactiveImg = function(newOptions) {
		var base = $(this);

		base.each(function(index, el) {
			new $.interactiveImg(el, newOptions);
		});
		return base;
	};
})(jQuery);



function layoutFitImage(img, parent) {
	var imgWidth = img.width(),
		imgHeight = img.height(),
		width = parseInt(parent.css('width'), 10),
		height = parseInt(parent.css('max-height'), 10),
		posTop = 0,
		posLeft = 0,
		newHeight = 0,
		newWidth = 0;
		//parent = img.closest('div.fitImage');
	
	if(isNaN(height)) {
		height = parseInt(parent.css('height'), 10);
	}

	if((width / height) > (imgWidth / imgHeight)) {
		newWidth = width;
		newHeight = imgHeight * width / imgWidth;
		posTop = (height - newHeight) / 2;
		posLeft = 0;
	} else {
		newWidth = imgWidth * height / imgHeight;
		newHeight = height;
		posTop = 0;
		posLeft = (width - newWidth) / 2;
	}

	if(!(isNaN(newWidth) || isNaN(newHeight) || isNaN(posLeft) || isNaN(posTop)) && (isFinite(newWidth) && isFinite(newHeight) && isFinite(posLeft) && isFinite(posTop))) {

		img.css('height', newHeight);
		img.css('width', newWidth);

		img.css('top', posTop);
		img.css('left', posLeft);

		img.css('position', 'absolute');
	}
}

function layoutAllFitImages(elem) {
	$(window).load(function(){
	elem.find('div.fitImage').each(function() {
		var parent = $(this),
			img = parent.find('img');

		/*img.load(function(){
			layoutFitImage(img, parent);
		});*/

		if(img.width() === 0 || img.height() === 0) {
			parent.find('img').load(function() {
				layoutFitImage(img, parent);
			});
		} else {
			layoutFitImage(img, parent);
		}
	});
	});
}

var ping = {
	init: function() {
		jQuery(window).load(function() {
			if(jQuery("#refmap").length) {
				jQuery('<div id="blubb" style="width: 1px; height: 1px; position: absolute; top: -999px; left: -999px;">').appendTo("body");
				embedOptions = {
							src:'/web/media/swf/DOKASound.swf',
							version: [10,0],
							onFail: coverFlowNoFlashAvailable,
							wmode: 'opaque',
							width: 764,
							height: 445,
							id: "blub"
						};;
				coverflowFlashembed('#blubb', embedOptions, {});
			}

			jQuery(".interactiveImagePoint, .previewPOI").live("mouseenter",ping.blub);
		});
	},
	blub: function() {
		try{
			Liquid.getFlashMovie('blub').play();
		}catch(err){
			
		}
	}
};

ping.init();

window.blubb = function() {
	ping.blub();
}


