$(document).ready(function () {
		
        $('.bubbleInfo').each(function () {
            var distance = 10;
            var time = 250;
            var hideDelay = 500;

            var hideDelayTimer = null;

            var beingShown = false;
            var shown = false;
            var trigger = $(this);//;$('.trigger', this);
            var info = $('.popup', this).css('opacity', 0);

            info.append('<div class="bubbleTail"></div>');


            trigger.mouseover(function () {
                if (hideDelayTimer) clearTimeout(hideDelayTimer);
                if (beingShown || shown) {
                    // don't trigger the animation again
                    return;
                } else {
                    // reset position of info box
                    beingShown = true;

                    info.css({
                        top: -90,
                        left: -33,
                        display: 'block'
                    }).animate({
                        top: '-=' + distance + 'px',
                        opacity: 0.9
                    }, time, 'swing', function() {
                        beingShown = false;
                        shown = true;
                    });
                }

                return false;
            }).mouseout(function () {
                if (hideDelayTimer) clearTimeout(hideDelayTimer);
                hideDelayTimer = setTimeout(function () {
                    hideDelayTimer = null;
                    info.animate({
                        top: '-=' + distance + 'px',
                        opacity: 0
                    }, time, 'swing', function () {
                        shown = false;
                        info.css('display', 'none');
                    });

                }, hideDelay);

                return false;
            });
        });



	$('.sampleWrapper').each(function () {
		var cell = $(this).parent();
		var sampleShifter = $(this).children('div.innerSampleWrapper');
		var height = parseInt(cell.height());
		var amount = $(this).find('div.sample').length;
		var arrowSpace = 115; // Platz nach rechts für die Buttons
		var sliderLightWidth = 18; // Breite der "sliderLights"
		var spaceLeft = sliderLightWidth * amount + 10; // plus 10 ist der Abstand zwischen sliderLights und sample
		var origWidth = parseInt(cell.width());
		var newWidth = origWidth + spaceLeft + arrowSpace;
		var arrowTop = parseInt((height - 47) / 2);
		var position = 0;
		var lockRight = false;
		var lockLeft = false;
		
		if(amount == 1)
			return;

		var sliderLights = $('<div class="sliderLightsWrapper">');
		sliderLights.css({
			width : spaceLeft+'px',
			float : 'left'
		}).html('&nbsp;');
		for(var i = 0; i<amount; i++)
			sliderLights.append($('<a class="sliderLight"></a>'));
		
		sliderLights.children().eq(position).removeClass('sliderLight').addClass('sliderLightOn');

		var toLeft = $('<a class="toLeft" title="vorherige Folie"></a>');
		var toRight = $('<a class="toRight" title="nächste Folie"></a>');
		toLeft.css('top',arrowTop+'px');
		toRight.css('top',arrowTop+'px');
		
		cell.css({
			width : newWidth+'px',
			'margin-left' : '-'+spaceLeft+'px',
			border : 'none',
			'padding-bottom' : 0
		}).prepend(toLeft).prepend(toRight).prepend(sliderLights);
		toLeft.hide().addClass('arrowGrey');
		toRight.addClass('arrowGrey');
		
		cell.children('div:last').css({
			'border-bottom' : '1px solid #343436',
			'padding-bottom' : '25px'
		});
	
		// show/hide 
		cell.mouseover(function() {
			sliderLights.children().stop(false,true).fadeIn();
			if(position > 0)
				toLeft.stop(false,true).fadeIn();
			toLeft.removeClass('arrowGrey');
			toRight.removeClass('arrowGrey');
//			if(position+1 < amount)
//				toRight.stop(false,true).fadeIn();
		}).mouseleave(function() {
			sliderLights.children().stop(false,true).fadeOut();
			toLeft.addClass('arrowGrey');
			toRight.addClass('arrowGrey');
//			toLeft.stop(false,true).fadeOut();
//			toRight.stop(false,true).fadeOut();
		});
	

		toRight.click(function() {
			if(lockRight)
				return;
			animateSlider(position+1);
		});

		toLeft.click(function() {
			if(lockLeft)
				return;
			animateSlider(position-1);
		});


		sliderLights.children().click(function() {
			var me = $(this).prevAll().length;
			animateSlider(me);

		});


		function animateSlider(newPos)
		{
			sliderLights.children().eq(position).removeClass('sliderLightOn').addClass('sliderLight');
			position = newPos;
			sliderLights.children().eq(position).removeClass('sliderLight').addClass('sliderLightOn');
			var maLeft = position * origWidth;
			sampleShifter.animate({
				'margin-left' : '-'+maLeft+'px'
			},500);
			
			if(position + 1 < amount)
			{
				toRight.fadeIn();
				lockRight = false;
			} else {
				lockRight = true;
				toRight.fadeOut();
			}

			if(position > 0)
			{
				toLeft.fadeIn();
				lockLeft = false;
			} else {
				lockLeft = true;
				toLeft.fadeOut();
			}

		}
		
	});

/*
	(function() {
		var compress = $('div.compress');
		var amount = compress.length;
		var timer = 500;
		var timer2 = parseInt(timer/2);
		compress.each(function() {
			var me = $(this);
			me.hide();
			var openMe = $('<a href="" class="downOn"></a>');
			var closeMe = $('<a href="" class="upOn"></a>'); 
			var stat = -1; // -1=closed; 1=open
			me.before(closeMe).before(openMe);

			openMe.click(function() {
				if(stat != -1)
					return false;

				stat=1;
				me.stop(true,true).slideDown(timer);
				openMe.stop(true,true).fadeOut(timer2, function(){ closeMe.stop(true,true).fadeIn(timer2); });
				return false;
			});

			closeMe.click(function() {
				if(stat != 1)
					return false;

				stat=-1;
				me.stop(true,true).slideUp(timer);
				closeMe.stop(true,true).fadeOut(timer2, function(){ openMe.stop(true,true).fadeIn(timer2); });
				return false;
			});
		});
	})();
*/


	// KONTAKTFORMULAR
	(function() {
		var open = $('#openForm');
		var close = $('#closeForm');
		var formFrame = $('#contactForm');
		var closeTop = close.css('top');
		var formFrameTop = formFrame.css('top');
		var stat = -1; //-1 == closed; 1 == open
		var time = 500;
		open.click(function() {
			if(stat != -1)
				return;
			stat=1;
			close.animate({top:0},time);
			formFrame.animate({top:0},time);
			return false;
		});

		close.click(function() {
			if(stat != 1)
				return;
			stat=-1;
			
			close.animate({top:closeTop},time);
			formFrame.animate({top:formFrameTop},time);
			return false;
		});


		//Handling der Formularfelder
		var form = $('#theContactForm');
		var isSend = 0;
		var submitButton = $('#submitContact');
		var submitButtonLabelText = $('label[for="submitContact"]').text(); 
		var fields = form.find('input[type="text"],textarea');
		
		fields.each(function() {
			var field = $(this);
			var defVal = $('label[for="'+field.attr('id')+'"]').text();
			if(field.val().length == 0 || field.val() == defVal) {
        		field.addClass('defaultValue').val(defVal);
    		}

		    //on focus, if field as class "defaultValue", remove Class and content
		    field.focus(function() {
		        if(field.hasClass("defaultValue")) {
		            field.removeClass("defaultValue").val('');
		        }
		    });

		    //on blur, add class and add default content
		    field.blur(function() {
		        if(field.val().length == 0 || field.val() == defVal) {
		            field.addClass('defaultValue').val(defVal);
		        }
		    });

		});


		function isValidEmailAddress(emailAddress) {
			    var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
				    return pattern.test(emailAddress);
		}


		form.submit(function() {
			if(isSend > 0)
				return false;
			fields.each(function() { $(this).removeClass('errorField'); });
			//validation
			var errors = 0;

			if($('#message').val().length == 0 || $('#message').val() == $('label[for="message"]').text())
			{
				$('#message').addClass('errorField');
				errors=1;
			}

			if($('#name').val().length == 0 || $('#name').val() == $('label[for="name"]').text())
			{
				$('#name').addClass('errorField');
				errors=1;
			}

			if(!isValidEmailAddress($('#email').val()))
			{
				$('#email').addClass('errorField');
				errors=1;
			}

			if($('#additional').val().length > 0 )
			{
				errors=1;
			}


			if(errors > 0)
				return false;

			//submit
			isSend = 1;

			submitButton.val(submitButtonLabelText);


			$.get('/contact.php',{
				'message' : $('#message').val(),
				'name' : $('#name').val(),
				'tel' : $('#tel').val(),
				'email' : $('#email').val()
			});

			setTimeout(function() {	
				close.animate({top:closeTop},time);
				open.animate({top:closeTop},time);
				formFrame.animate({top:formFrameTop},time,function(){
					fields.each(function() { $(this).val(''); });	
				});
			},400);

			return false;
		});


	})();



});
