function isMobile() {
	if(
		navigator.userAgent.match(/Android/i) ||
		navigator.userAgent.match(/webOS/i) ||
		navigator.userAgent.match(/iPhone/i) ||
		navigator.userAgent.match(/iPad/i) ||
		navigator.userAgent.match(/iPod/i)
	) {
		return true;
	}
	return false;
}

function initVideoList(){
	try {
		if(videolist.length > 0){		
			for (var v in videolist) {
				//console.log(v);
				videolist[v]();
			}		
		}
		videolist = new Array();
	}
	catch (e){
		//console.log(typeof(window['videolist']));
		//console.log(e);
	}
}

$(document).ready(function() {
	
	initVideoList();
	
	initAjaxForm();	
	
	if(jQuery('body').hasClass('home')) {
		initHomeNew();
	}
	
	initContentToggle();	
	
	$('.Items').selectbox();
	
	var panel_nav_width = $('.panel_nav_width');
	
	if(panel_nav_width.length > 0) {
		var widthMax = panel_nav_width.width();
		var widthNew = 0;
		
		panel_nav_width.children('a').each(function(){
			widthNew += $(this).outerWidth();		
		});
		
		var el = $('#Items2_input');
		//console.log(el);
		el.css('width', Math.min(widthNew, widthMax) - 6 + 'px')
		el.next().width(el.width() - 21);
		//console.log(widthNew);
	}
	
	$("a.panel").hover(
		function() {
			$(this).stop().animate({ backgroundColor: "#4A4A4A" }, 500);
		},
		function() {
			$(this).stop().animate({ backgroundColor: "#FFFFFF" }, 500);
		}
	);	
	
	//console.log($("#slidecaption").length);
	
	$("#slidecaption").hover(
			function() {
				$(this).stop().animate({ backgroundColor: "#4A4A4A" }, 500);
				//console.log('#4A4A4A');
			},
			function() {
				$(this).stop().animate({ backgroundColor: "#FFFFFF" }, 500);
				//console.log('#FFFFFF');
			}
		);	
	
	 
	$("a.panel_box").hover(
		function() {
			$(this).children(".panel_box_text").stop().animate({ backgroundColor: "#4A4A4A", color: "#FFFFFF" }, 500);
		},
		function() {
			$(this).children(".panel_box_text").stop().animate({ backgroundColor: "#FFFFFF", color: "#4A4A4A" }, 500);
		}
	);
	
	$("a.publikation_box").hover(
		function() {
			$(this).children(".publikation_box_content").stop().animate({ backgroundColor: "#4A4A4A", color: "#FFFFFF" }, 500);
		},
		function() {
			$(this).children(".publikation_box_content").stop().animate({ backgroundColor: "#FFFFFF", color: "#4A4A4A" }, 500);
		}
	);
		
	function formatTitle(title, currentArray, currentIndex, currentOpts) {
	    return '<div id="tip7-title" style="margin-bottom: 5px;">' + (title && title.length ? '<b>' + title + '</b>' : '' ) + '</div>';
	}
	
	if(isMobile() == false) {
				
		$("a.popup").fancybox({
			'autoDimensions'	: 'true',	
			'transitionIn'		: 'elastic',
			'transitionOut'		: 'elastic',
			'overlayOpacity'    : 0.8,
			'speedIn'           : 400,
			'speedOut'          : 400,
			'opacity'           : 'true',
			'margin'            : 20,
			'padding'           : 30,
			'changeFade'		: 'slow',		
			'titlePosition'		: 'inside',
			'titleFormat'		: formatTitle,
			'type'				: 'image'
		});
		
		$("a.popup_video").fancybox({
			'autoDimensions'	: 'true',	
			'transitionIn'		: 'elastic',
			'transitionOut'		: 'elastic',
			'overlayOpacity'    : 0.8,
			'speedIn'           : 400,
			'speedOut'          : 400,
			'opacity'           : 'true',
			'margin'            : 20,
			'padding'           : 30,
			'changeFade'		: 'slow',
			'type'				: 'ajax'
			
		});
		
		initFancybox();	
		
		$("ul.imprint li a.overlay").fancybox({	
			'width'				: 620,
			'transitionIn'		: 'elastic',
			'transitionOut'		: 'elastic',
			'overlayOpacity'    : 0.8,
			'speedIn'           : 400,
			'speedOut'          : 400,
			'opacity'           : 'true',
			'margin'            : 0,
			'padding'           : 0,
			'changeFade'		: 'slow',
			'onComplete'		: function(){
									initAjaxForm();	
									$('#fancybox-inner .Items').selectbox();
									fancyboxHeight();									
								}									
		});
		
		$("ul.imprint li a.overlay").each(function(){		
			if ( this.href.indexOf('?') >= 0 ) {
				this.href = this.href+'&amp;popup';
			} else {
				this.href = this.href+'?popup';
			}
		});
	}
	
	
	$("a.close").tipsy({gravity: 'ne'});
	$("a.backward").tipsy({gravity: 'ne'});
	$("a.forward").tipsy({gravity: 'ne'});
	
	if(typeof jQuery.fn.jcarousel == 'function'){
		jQuery('.mycarousel').jcarousel({
			visible: null,
			scroll: 1
		});		
	}
	
	$("#menuToggle").click(function () {
		var linkEl = jQuery(this);
		if(linkEl.hasClass('open'))	{						
			linkEl.removeClass('open');
			$('#navigation, .smallNav').hide(1000);
		}
		else {
			linkEl.remove();
			//linkEl.addClass('open');
			$('#navigation, .smallNav').show(1000);
		}
		return false;
	});
	
	
	$("#contact").click(function () {		
		var linkEl = jQuery(this);
		
		$("div.kontakt").slideToggle("slow", function(){
			var thisEl = jQuery(this);		
			if(thisEl.css('display') == 'none')	{						
				linkEl.removeClass('active');
				linkEl.parent().parent().find('.preactive').removeClass('preactive').addClass('active');
													
				var height = thisEl.children('.kontakt_content').css('height');	
				//thisEl.css('height', height);
				thisEl.find('.panels').removeClass('active').css({'left': '-960px', 'height': '10px'});					
				
				window.location.hash = '';
				/*
				if($('body.home').length >= 1){
					$('body.home').css('overflow', 'hidden');
					$('#imgContainer').css('position', 'fixed');				
				}
				*/
			}
			else {
				jQuery('#searchClose').trigger('click');
				linkEl.parent().parent().find('.active').removeClass('active').addClass('preactive');
				linkEl.addClass('active');
								
				/*
				if($('body.home').length >= 1){
					$('body.home').css('overflow', 'auto');
					$('#imgContainer').css('position', 'fixed');				
				}
				*/
			}
		
			$("div.kontakt").find('iframe').not('.refreshed').each(function(){
				this.src = this.src;
				jQuery(this).addClass('refreshed');
			});
		
		});
	  return false;
	 });
	
	$("#contactClose").click(function () {
		$("#contact").trigger('click')
		
	});
			
	if(typeof jQuery.fn.ausstellungen == 'function'){
		jQuery('.panel_overview').ausstellungen({duration: 800});
	}
	
	jQuery('.kontakt').kontaktSlide({duration: 500});
	
	jQuery('.panel_nav a').unbind('click').bind('click', function(){
		var thisEl = jQuery(this);
		
		jQuery('.' + thisEl.attr('href').substring(1)).trigger('click');
		
		return false;
	});
	
	
	
	$('#Items2_container').unbind('click').bind('click', function() {
		var thisEl = jQuery(this);
		var panelList = jQuery('.panel_content');
		
		//jQuery('#Items_input_all').click();
		
		var global = jQuery('#Items2').val();
		
		//console.log('Global: ' + global);

		panelList.each(function() {
			var panelEl = $(this);
			var boxList = panelEl.find('.panel_box, .publikation_box');
			var subFilter = panelEl.find('select.Items');
			
			boxList.hide();
			
			if ( subFilter.length == 1 && subFilter.val() != 'all' ) {
				//console.log('Sub: '+subFilter.val());
				boxList = boxList.filter('.' + subFilter.val());
			}
			
			//console.log(boxList);
			
			if (global != 'all') {
				boxList = boxList.filter('.' + global);
			}
			boxList.show();
			//console.log('------------');
		});
	});
	
	$('.selectbox-wrapper').not('#Items2_container').bind('click', function() {
		$('#Items2_container').click();
		return false;		
	});
	
	
	$("div.content_print_icons").click(function () {
		var el = jQuery('div.content_print');			

		if(parseInt(el.css('right')) == 0){
			el.animate({'right':'-'+el.width()+'px'}, 500);
		}
		else {
			el.animate({'right':0+'px'}, 500);
		}
	 });
	
	$("#searchInput a").click(function () {
		var el = jQuery(this);	
		
		var elPush = el.parent().children('form');	

		if(parseInt(el.parent().css('width')) == 0){
			el.parent().animate({'width': '162px'}, 500);
			elPush.animate({'width': '162px'}, 500);
		}
		else {
			el.parent().animate({'width': '0px'}, 500);
			elPush.animate({'width': '0px'}, 500);
		}
	 });

});

function fancyboxHeight() {
	if($('#fancybox-inner #content_form').length == 1) {
		$('#fancybox-inner, #fancybox-wrap').css('height', 'auto');
		var height = $('#fancybox-inner #content_form').outerHeight();
		var height_2 = $('#fancybox-inner').innerHeight();
		
		var width = $('#fancybox-inner #content_form').outerWidth();
		var width_2 = $('#fancybox-inner').innerWidth();
		$('#fancybox-inner, #fancybox-wrap').each(function(){
			var thisEl = jQuery(this);
			thisEl.css('height', (thisEl.height() + height - height_2 + 30) + 'px');
			
			thisEl.css('width', width + 'px');
			
			//console.log(width);
			//console.log(width_2);
		});
	}
}



function initFancybox(parent) {
	if(parent == null || parent == undefined) {
		parent = $('body');
	}
	var links = parent.find("a.fancybox");
	
	links.fancybox({
		'width'				: 620,
		'autoDimensions'	: 'true',	
		'transitionIn'		: 'elastic',
		'transitionOut'		: 'elastic',
		'overlayOpacity'    : 0.8,
		'speedIn'           : 400,
		'speedOut'          : 400,
		'opacity'           : 'true',
		'margin'            : 0,
		'padding'           : 0,
		'changeFade'		: 'slow',
		'onComplete'		: function(){
			initAjaxForm();	
			initFancybox($('#fancybox-inner'));
			$('#fancybox-inner .Items').selectbox();
			fancyboxHeight();									
		}
	});
	links.each(function(){		
		if ( this.href.indexOf('?') >= 0 ) {
			this.href = this.href+'&popup';
		} else {
			this.href = this.href+'?popup';
		}
	});
	
}

/* SEARCH */
/**/
/**/
$(function(){

    var input = $('input#s');
    var divInput = $('div.input');
    var width = divInput.width();
    var outerWidth = divInput.parent().width() - (divInput.outerWidth() - width) - 28;
    var submit = $('#searchSubmit');
    var txt = input.val();
    
    input.bind('focus', function() {
        if(input.val() === txt) {
            input.val('');
        }
        $(this).animate({color: '#000'}, 300); // text color
        $(this).parent().animate({
            width: outerWidth + 'px',
            backgroundColor: '#fff', // background color
            paddingRight: '43px'
        }, 300, function() {
            if(!(input.val() === '' || input.val() === txt)) {
                if(!($.browser.msie && $.browser.version < 9)) {
                    submit.fadeIn(300);
                } else {
                    submit.css({display: 'block'});
                }
            }
        }).addClass('focus');
    }).bind('blur', function() {
        $(this).animate({color: '#b4bdc4'}, 300); // text color
        $(this).parent().animate({
            width: width + 'px',
            backgroundColor: '#e8edf1', // background color
            paddingRight: '15px'
        }, 300, function() {
            if(input.val() === '') {
                input.val(txt)
            }
        }).removeClass('focus');
        if(!($.browser.msie && $.browser.version < 9)) {
            submit.fadeOut(100);
        } else {
            submit.css({display: 'none'});
        }
    }).keyup(function() {
        if(input.val() === '') {
            if(!($.browser.msie && $.browser.version < 9)) {
                submit.fadeOut(300);
            } else {
                submit.css({display: 'none'});
            }
        } else {
            if(!($.browser.msie && $.browser.version < 9)) {
                submit.fadeIn(300);
            } else {
                submit.css({display: 'block'});
            }
        }
    });
});


function initVideo( swfObjectContainer, container) {
	if (typeof(swfObjectContainer) == 'object' && $('#' + container).length != 0) {
		swfObjectContainer.write(container);
	} else if (typeof(swfObjectContainer) == 'string' && $('#' + container).length != 0) {
		$('#' + container).html(swfObjectContainer);
	} else {
		dumplog('initVideo: not found: '+container+' | '+typeof(swfObject)+' | #'+container+' | '+$('#'+container).length);
	}
}


if ( typeof window.dumplog != 'function' ) {
	function dumplog(variable){
		if (window.console !== undefined) {
			console.log(variable);
		}
	}
}
/*
 * search function
 */
function executeSearch(search_path){
	if ( $('#searchResult').children('.loading').length == 0 ) {
		var searchTerm = $('#searchTerm').attr("value"); //retrieve title of link so we can compare with php file
		if ( searchTerm.replace(/^\s+|\s+$/g, "") != '' ) {
			$('#searchResult').append('<span class="loading"> </span>');
			if ($('#searchResult').css('display') == 'none') {
				//$('body').css('overflow', 'hidden');
				$('#searchResult').slideToggle('slow');
				$("#contact.active").trigger('click');
			}

			$.ajax({
				method: "get",
				url: search_path,
				data: "ajax=1&searchTerm=" + searchTerm,
				beforeSend: function(){
					$("#searchResult ul *").remove();
					$('#searchResult').children('#searchForward').remove();
					$('#searchResult').children('.loading').fadeIn("slow");
					$("#searchResult .searchCount").css('display', 'none');
				}, //show loading just when link is clicked
				complete: function(){
					$('#searchResult').children('.loading').fadeOut("fast", function(){ $(this).remove();});
						
				}, //stop showing loading when the process is complete
				success: function(html){ //so, if data is retrieved, store it in html
					if ( html.indexOf('</html>') == -1 ) {
						$("#searchResult .jcarousel-skin-tango").remove();
						$("#searchResult").append('<ul id="searchcarousel" class="jcarousel-skin-tango" style="height: 200px"></ul>')
						$("#searchResult ul").html(html); //show the html inside .content div
						$("#searchResult ul li:eq(0)").addClass('first'); //show the html inside .content div
						jQuery('#searchResult #searchcarousel').jcarousel({
							visible: null,
							scroll: 4
						});
						var searchCount = $("#searchResult ul li").not('.noResult').length;
						$("#searchResult .searchCount span").html(searchCount);
						$("#searchResult .searchCount").css('display', 'block');
						
						if(isMobile() == false) {
							$("#searchResult a.fancybox").each(function(){		
								if ( this.href.indexOf('?') >= 0 ) {
									this.href = this.href+'&amp;popup';
								} else {
									this.href = this.href+'?popup';
								}
							});
							//console.log('test');
							$(".searchResultBox.fancybox").fancybox({								
								'autoDimensions'	: 'true',	
								'transitionIn'		: 'elastic',
								'transitionOut'		: 'elastic',
								'overlayOpacity'    : 0.8,
								'speedIn'           : 400,
								'speedOut'          : 400,
								'opacity'           : 'true',
								'margin'            : 0,
								'padding'           : 0,
								'changeFade'		: 'slow'
							});
						}
						
						$("a.searchResultBox").hover(
							function() {
								$(this).stop().animate({ backgroundColor: "#FFFFFF" }, 500);
							},
							function() {
								$(this).stop().animate({ backgroundColor: "#272525" }, 500);
							}
						);
					}					
				}
			}); //close $.ajax(
			dumplog('executeSearch: call search');
		} else {
			dumplog('executeSearch: no input, set focus on search field');
			$('#searchTerm').focus();
		}
	}
	dumplog('executeSearch: complete');
}

function closeSearch(){
	$('#searchResult').slideUp('normal');
}


function searchBoxCheck(default_text) {
	if ( $('#searchTerm').attr('value') == default_text ) {
		$('#searchTerm').attr('value', '');
	}
}

function searchResultForward() {
	var results = $($('#searchResult ul>li:visible'));

	if ( results.length > 4 ) {
		results.filter(':gt(4)').hide();
		results.filter(':lt(4)').fadeOut('slow', function() {
			results.filter(':gt(4)').filter(':lt(8)').fadeIn('slow');
		});
	}

	if ( results.length < 9 ) {
		$('#searchResult #searchForward').remove();
	}
}

/*
 * ajaxForm
 */
var formInputFilter = new Array('radio', 'checkbox', 'submit', 'reset', 'button', 'hidden', 'image');
function initAjaxForm() {
	var allForms = $('form').not('.init');
	allForms.each(function(){
		$(this).find('textarea, input').not('*[type="' + formInputFilter.join('"], *[type="') + '"]').unbind('click, focus').bind('click, focus', function(){
			var fieldEl = jQuery(this);
			clearFieldDefaults(fieldEl);
		}).unbind('blur').bind('blur', function(){
			var fieldEl = jQuery(this);
			var fieldId = fieldEl.attr('id');
			if (fieldId == null || fieldId == '' ) {
				return true;
			}
			
			var labelEl = jQuery('label[for="'+fieldId+'"]');
			if ( labelEl.length == 1 ) {
				if ( fieldEl.get(0).tagName.toLowerCase() == 'input' && fieldEl.attr('value') == '' ) {
					fieldEl.attr('value', labelEl.html() );
				} else if ( fieldEl.get(0).tagName.toLowerCase() == 'textarea' && fieldEl.html() == '' ) {
					fieldEl.html( labelEl.html() );
				}
			}
		});
	});
	
	var ajaxFormWrappers = $('.ajaxForm.formContent').not('.init');

	if  ( ajaxFormWrappers.length > 0 ) {
		ajaxFormWrappers.each(function(formNo, formContentEl) {
			var jFormAreaEl = $(formContentEl);
			jFormEl = jFormAreaEl.find('form');
			
			if ( jFormEl.length == 1) {							
				jFormAreaEl.addClass('init');
				var formAction = jFormAreaEl.find('form').attr('action');
				if ( formAction == '' || formAction.substr(0,1) == '/' || formAction.indexOf(window.location.protocol+'//'+window.location.hostname) === 0 ) {
					dumplog('redefine onsubmit');
					jFormEl.onSubmit = 'executeAjaxForm(this); return false;';
					jFormEl.attr('onSubmit', 'executeAjaxForm(this); return false;');
					jFormEl.find('input[type="submit"]').unbind('click').bind('click', function(){
						executeAjaxForm(jFormEl.get(0));
						return false;
					});
				}
				dumplog('initAjaxForm: configure a existing form ('+formAction+')');
			} else {
				dumplog('initAjaxForm: detect a invalid form');
				//dumplog(formUrl);
			}
		});
	} else {
		dumplog('initAjaxForm: no ajax forms where found');
	}
	dumplog('initAjaxForm: complete');
}





function executeAjaxForm(formElement) {
	dumplog('executeAjaxForm: enter');
	var jFormEl = $(formElement);
	var jFormAreaEl = $(formElement).parents('.formContent');
	var formUrl = jFormEl.attr('action');

	if (formUrl != undefined && formUrl != '') {
		var dataString = '';

		
		jFormEl.find('textarea, input').not('*[type="' + formInputFilter.join('"], *[type="') + '"]').each(function(){
			var fieldEl = jQuery(this);
			clearFieldDefaults(fieldEl);
		});

		

		var dataString = jFormEl.serialize();
		var formMethod = formElement.method.toLowerCase() == 'post' ? 'POST' : 'GET';
		
		$.ajax({
			type: formMethod,
			url: formUrl,
			data: 'ajax=1&'+dataString,
			beforeSend: function(){
				jFormAreaEl.append('<div class="loading">&nbsp;</div>');
			},
			complete: function(){
				jFormAreaEl.find('.loading').fadeOut("fast", function(){
					$(this).remove();
				});				
				fancyboxHeight();
			}, //stop showing loading when the process is complete
			success: function(html){ //so, if data is retrieved, store it in html
				if (html.indexOf('</html>') == -1) {
					dumplog('replace content inside the form area');
					dumplog(jFormAreaEl);
					jFormAreaEl.html(html);
					jFormAreaEl.find('.Items').selectbox();
					jFormAreaEl.removeClass('init');
					initAjaxForm();
				}
			}
		}); //close $.ajax(
	}
	dumplog('executeAjaxForm: complete');	
}



function clearFieldDefaults(fieldEl) {
	if ( fieldEl != undefined ) {
		try {
			var fieldId = fieldEl.attr('id');
			if (fieldId == null || fieldId == '' ) {
				return true;
			}
			
			var labelEl = jQuery('label[for="'+fieldId+'"]');
			if ( labelEl.length == 1 ) {
				if ( fieldEl.get(0).tagName.toLowerCase() == 'input' && fieldEl.attr('value') == labelEl.html() ) {
					fieldEl.attr('value', '');
				} else if ( fieldEl.get(0).tagName.toLowerCase() == 'textarea' && fieldEl.html() == labelEl.html() ) {
					fieldEl.html('');
				}
			}
		} catch(e) {};
	}
}

function initContentToggle() {
	$('.toggle').click(function(){		
		$(this).parent().next().slideToggle("slow");
		return false;
	});	
}

