/* Mailmask */
function noSpam(){if(document.getElementById){var at="@";var links=document.getElementsByTagName('a');for(var i=0;i<links.length;i++){var linkElem=links[i];if(linkElem.className=='escape'){var mail=linkElem.firstChild;var domain=linkElem.lastChild;mail.nextSibling.firstChild.innerHTML=at;linkElem.href="mailto:"+mail.data+at+domain.data;}}}}
window.addEventListener?window.addEventListener('load',noSpam,false):window.attachEvent('onload',noSpam); 


// form_validation version 3.0
//  ----------------------------
// | Euroweb Internet GmbH     |
//  ----------------------------
// $creator s.krassnig
// $modifier d.kressler
// $date 2010-11-26

var errorMsgNum = "Bitte nur Zahlen eingeben!";
var errorMsgEmpty = "Feld leer!";
var errorMsgMail = "Email eingeben!";
var errorMsgSelect = "Bitte eine Option wählen!";
var errorMsgDefault = "Feldeingabe fehlerhaft!";

/* DO NOT TOUCH BELOW ********************************/
var error = 0;
var currentLabel = '';
var currentField = '';
var klasse = '';
var newClass = '';

function validateForm(formular) 
{
	error = 0;
	for (var i = 0; i < document.getElementsByTagName("label").length; i++) 
	{
		currentLabel = document.getElementsByTagName("label")[i];
		
		if (currentLabel.htmlFor)
		{
			currentField = document.getElementById(currentLabel.htmlFor);
		}
		checkField(currentLabel, currentField);
	}

	if (error === 0) 
		return true;
	else 
		return false;
}

var checkField = function(currentLabel, currentField)
{
	klasse = currentLabel.className;
	newClass = currentLabel.className.replace(/ error/, '');
	// Check if the current label belongs to the form we want to validate
	if (currentField) 
	{					
		// Rueckruf exists: Mark phone number field as required
		if (currentField.name == 'Rueckruf') 
		{
			if (currentField.checked == true) 
			{
				document.getElementById('label-telefon').className += ' required rueckruf';
			} else 
			{
				var newTelClass = document.getElementById('label-telefon').className.replace(/ required rueckruf/, '');
				document.getElementById('label-telefon').className = newTelClass;
			}
		}
		
		// required field (but neither numeric nor an e-mail)
		if (klasse.match(/required/) != null) 
		{
			if (currentField.tagName == 'SELECT') 
			{
				if (currentField.childNodes[1].selected)
				{
					currentLabel.className = newClass;
					currentLabel.className += ' error';
					triggerErrorSpan(currentLabel, "select");
					error = 1;
				} else 
				{
					currentLabel.className = newClass;
					removeErrorSpan(currentLabel, null);
				}
			} 
			else if (currentField.type == 'checkbox') 
			{
				if (currentField.checked == false) 
				{
					currentLabel.className = newClass;
					currentLabel.className += ' error';
					triggerErrorSpan(currentLabel, "select");
					error = 1;
				} else 
				{
					currentLabel.className = newClass;
					removeErrorSpan(currentLabel);
				}
			} 
			else 
			{
				if (currentField.value == '') 
				{
					currentLabel.className = newClass;
					currentLabel.className += ' error';
					triggerErrorSpan(currentLabel, "empty");
					error = 1;
				} else
				{
					currentLabel.className = newClass;
					removeErrorSpan(currentLabel);
				}
			}
			
		}
		// numeric field
		if (klasse.match(/number/) != null)
		{
			var numeric = isNumber(currentField);
			if (!numeric && !klasse.match(/required/) && currentField.value != '') 
			{
				currentLabel.className = newClass;
				currentLabel.className += ' error';
				triggerErrorSpan(currentLabel, "num");
				error = 1;
			} else 
			{
				currentLabel.className = newClass;
				removeErrorSpan(currentLabel);
			}
			if (!numeric && klasse.match(/required/)) 
			{
				currentLabel.className = newClass;
				currentLabel.className += ' error';
				triggerErrorSpan(currentLabel, "num");
				error = 1;
			} else 
			{
				if (error == 0) 
				{
					currentLabel.className = newClass;
					removeErrorSpan(currentLabel);
				}
			}
			return error;
		}
		
		// e-mail address
		if (klasse.match(/mail/) != null) 
		{
			var valid = isMailValid(currentField);
			if (!valid && currentField.value != '') 
			{
				currentLabel.className = newClass;
				currentLabel.className += ' error';
				triggerErrorSpan(currentLabel, "mail");
				error = 1;
			} else {
				currentLabel.className = newClass;
				removeErrorSpan(currentLabel);
			}
			if (!valid && klasse.match(/required/)) 
			{
				currentLabel.className = newClass;
				currentLabel.className += ' error';
				triggerErrorSpan(currentLabel, "mail");
				error = 1;
			} else 
			{
				if (error == 0) 
				{
					currentLabel.className = newClass;
					removeErrorSpan(currentLabel);
				}
			}
		}
		return error;
	}		
}

function isNumber(field) {
	var returnvar = (isNaN(parseInt(field.value)) == true) ? false : true;
	return returnvar;
}

function isMailValid(field) {
	var returnvar = (field.value.match(/^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$/)) ? true : false;
	return returnvar;
}

function triggerErrorSpan(currentLabel, type)
{
	switch (type)
	{
		case "num":
			var errorSpanText = errorMsgNum; 
		break;
		case "text":
			var errorSpanText = errorMsgText; 
		break;
		case "empty":
			var errorSpanText = errorMsgEmpty;
		break;
		case "mail":
			var errorSpanText = errorMsgMail; 
		break;
		case "select":
			var errorSpanText = errorMsgSelect; 
		break;
		default:
			var errorSpanText = errorMsgDefault; 	
	}
	
	var labelId = currentLabel.getAttribute('id');
	
	if (document.getElementById("error-"+labelId) == null)
	{
		var errorSpan = document.createElement('span');
		
		var innerSpan = document.createElement('span');
		var triangle = document.createElement('span');
		
		currentLabel.appendChild(errorSpan);
		currentLabel.setAttribute("style", "position:relative");
				
		errorSpan.appendChild(triangle);
		errorSpan.appendChild(innerSpan);
		errorSpan.setAttribute("id", "error-"+labelId);
		errorSpan.className = "errorSpan";
		
		triangle.className = "triangle";
		innerSpan.className = "errorMessage";
		innerSpan.innerHTML=errorSpanText;
	}
}

function removeErrorSpan(currentLabel)
{
	var labelId = currentLabel.getAttribute('id');
	if (document.getElementById("error-"+labelId) != null)
	{
		var Knoten = document.getElementById("error-"+labelId);
		document.getElementById(labelId).removeChild(Knoten);
	}
}

function addEvent(obj, evType, fn, useCapture)
{
	if (obj.addEventListener)
	{
		obj.addEventListener(evType, fn, useCapture);
		return true;
	} 
	else if (obj.attachEvent)
	{
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} 
} 

function getElementsByClassName(classname, node)  
{
    if(!node) node = document.getElementsByTagName("body")[0];
    var a = [];
    var re = new RegExp('\\b' + classname + '\\b');
    var els = node.getElementsByTagName("*");
    for(var i=0,j=els.length; i<j; i++)
        if(re.test(els[i].className))a.push(els[i]);
    return a;
}

var liveValidation = function()
{
	var form = getElementsByClassName('required', document);
	var form = form.concat(getElementsByClassName('number', document));
	var form = form.concat(getElementsByClassName('mail', document));
	
	for (i=0;i<form.length;i++)
	{
		var field = form[i].nextSibling.nextSibling;
		var label = form[i];
		addEvent(form[i].nextSibling.nextSibling, "blur", function(e)
		{
			e=e || window.event; 
			var field = (e.originalTarget) ? e.originalTarget : e.srcElement;
			var label = field.previousSibling.previousSibling;
			checkField(label, field);
		})
	}
}
addEvent(window, "load", liveValidation);


/* PROTOTYPE
	Event.observe(window,'load',noSpam,false);
*/

jQuery(document).ready(function(){
	noSpam();
	
	Cufon.replace('#navigation li a, .subnavi li a', { hover:true });
	Cufon.replace('h2,h3,h4,h5', { textShadow: '1px 1px #fff' });
	Cufon.replace('form.default input.submit');
	
	//jQuery('.cufon-ready #navigation li a, .cufon-ready .subnavi li a, .cufon-ready h2, .cufon-ready h3').css({'display':'block'});
	
	jQuery('#slider').nivoSlider({
        effect:'fade',
        slices:1,
        animSpeed:500,
        pauseTime:4000,
        startSlide:0,
        directionNav:false,
        directionNavHide:true,
        controlNav:false, 
        controlNavThumbs:false,
        keyboardNav:true,
        pauseOnHover:false,
        manualAdvance:false
    });
	if(jQuery("a.grouped_elements").length > 0){
		jQuery("a.grouped_elements").fancybox(
														  {titleShow:false,titlePosition:'inside',cyclic:false,centerOnScroll:true,autoScale:false,width:'940px',margin:'10px',padding:'0px', 
														  onComplete:function(){
															  jQuery('#fancybox-overlay').css('height',jQuery(document).height());
															  }
															});
	}
	
	// fancybox fuer das unternehmensvideo
	if(jQuery('a#uvideoLink').length > 0){
	jQuery('a#uvideoLink').fancybox({width : 600, height:398, autoDimensions: false, autoScale:false, transitionIn: 'none', transitionOut: 'none', type: 'iframe', 
														  onComplete:function(){
																jQuery('#fancybox-overlay').css('height',jQuery(document).height());
														  }
											});
	}
});
									
/*
 * jQuery Nivo Slider v2.3
 * http://nivo.dev7studios.com
 *
 * Copyright 2010, Gilbert Pellegrom
 * Free to use and abuse under the MIT license.
 * http://www.opensource.org/licenses/mit-license.php
 * 
 * May 2010 - Pick random effect from specified set of effects by toronegro
 * May 2010 - controlNavThumbsFromRel option added by nerd-sh
 * May 2010 - Do not start nivoRun timer if there is only 1 slide by msielski
 * April 2010 - controlNavThumbs option added by Jamie Thompson (http://jamiethompson.co.uk)
 * March 2010 - manualAdvance option added by HelloPablo (http://hellopablo.co.uk)
 */

(function($){var NivoSlider=function(element,options){var settings=$.extend({},$.fn.nivoSlider.defaults,options);var vars={currentSlide:0,currentImage:'',totalSlides:0,randAnim:'',running:false,paused:false,stop:false};var slider=$(element);slider.data('nivo:vars',vars);slider.css('position','relative');slider.addClass('nivoSlider');var kids=slider.children();kids.each(function(){var child=$(this);var link='';if(!child.is('img')){if(child.is('a')){child.addClass('nivo-imageLink');link=child;}
child=child.find('img:first');}
var childWidth=child.width();if(childWidth==0)childWidth=child.attr('width');var childHeight=child.height();if(childHeight==0)childHeight=child.attr('height');if(childWidth>slider.width()){slider.width(childWidth);}
if(childHeight>slider.height()){slider.height(childHeight);}
if(link!=''){link.css('display','none');}
child.css('display','none');vars.totalSlides++;});if(settings.startSlide>0){if(settings.startSlide>=vars.totalSlides)settings.startSlide=vars.totalSlides-1;vars.currentSlide=settings.startSlide;}
if($(kids[vars.currentSlide]).is('img')){vars.currentImage=$(kids[vars.currentSlide]);}else{vars.currentImage=$(kids[vars.currentSlide]).find('img:first');}
if($(kids[vars.currentSlide]).is('a')){$(kids[vars.currentSlide]).css('display','block');}
slider.css('background','url("'+vars.currentImage.attr('src')+'") no-repeat');for(var i=0;i<settings.slices;i++){var sliceWidth=Math.round(slider.width()/settings.slices);if(i==settings.slices-1){slider.append($('<div class="nivo-slice"></div>').css({left:(sliceWidth*i)+'px',width:(slider.width()-(sliceWidth*i))+'px'}));}else{slider.append($('<div class="nivo-slice"></div>').css({left:(sliceWidth*i)+'px',width:sliceWidth+'px'}));}}
slider.append($('<div class="nivo-caption"><p></p></div>').css({display:'none',opacity:settings.captionOpacity}));if(vars.currentImage.attr('title')!=''){var title=vars.currentImage.attr('title');if(title.substr(0,1)=='#')title=$(title).html();$('.nivo-caption p',slider).html(title);$('.nivo-caption',slider).fadeIn(settings.animSpeed);}
var timer=0;if(!settings.manualAdvance&&kids.length>1){timer=setInterval(function(){nivoRun(slider,kids,settings,false);},settings.pauseTime);}
if(settings.directionNav){slider.append('<div class="nivo-directionNav"><a class="nivo-prevNav">Prev</a><a class="nivo-nextNav">Next</a></div>');if(settings.directionNavHide){$('.nivo-directionNav',slider).hide();slider.hover(function(){$('.nivo-directionNav',slider).show();},function(){$('.nivo-directionNav',slider).hide();});}
$('a.nivo-prevNav',slider).live('click',function(){if(vars.running)return false;clearInterval(timer);timer='';vars.currentSlide-=2;nivoRun(slider,kids,settings,'prev');});$('a.nivo-nextNav',slider).live('click',function(){if(vars.running)return false;clearInterval(timer);timer='';nivoRun(slider,kids,settings,'next');});}
if(settings.controlNav){var nivoControl=$('<div class="nivo-controlNav"></div>');slider.append(nivoControl);for(var i=0;i<kids.length;i++){if(settings.controlNavThumbs){var child=kids.eq(i);if(!child.is('img')){child=child.find('img:first');}
if(settings.controlNavThumbsFromRel){nivoControl.append('<a class="nivo-control" rel="'+i+'"><img src="'+child.attr('rel')+'" alt="" /></a>');}else{nivoControl.append('<a class="nivo-control" rel="'+i+'"><img src="'+child.attr('src').replace(settings.controlNavThumbsSearch,settings.controlNavThumbsReplace)+'" alt="" /></a>');}}else{nivoControl.append('<a class="nivo-control" rel="'+i+'">'+(i+1)+'</a>');}}
$('.nivo-controlNav a:eq('+vars.currentSlide+')',slider).addClass('active');$('.nivo-controlNav a',slider).live('click',function(){if(vars.running)return false;if($(this).hasClass('active'))return false;clearInterval(timer);timer='';slider.css('background','url("'+vars.currentImage.attr('src')+'") no-repeat');vars.currentSlide=$(this).attr('rel')-1;nivoRun(slider,kids,settings,'control');});}
if(settings.keyboardNav){$(window).keypress(function(event){if(event.keyCode=='37'){if(vars.running)return false;clearInterval(timer);timer='';vars.currentSlide-=2;nivoRun(slider,kids,settings,'prev');}
if(event.keyCode=='39'){if(vars.running)return false;clearInterval(timer);timer='';nivoRun(slider,kids,settings,'next');}});}
if(settings.pauseOnHover){slider.hover(function(){vars.paused=true;clearInterval(timer);timer='';},function(){vars.paused=false;if(timer==''&&!settings.manualAdvance){timer=setInterval(function(){nivoRun(slider,kids,settings,false);},settings.pauseTime);}});}
slider.bind('nivo:animFinished',function(){vars.running=false;$(kids).each(function(){if($(this).is('a')){$(this).css('display','none');}});if($(kids[vars.currentSlide]).is('a')){$(kids[vars.currentSlide]).css('display','block');}
if(timer==''&&!vars.paused&&!settings.manualAdvance){timer=setInterval(function(){nivoRun(slider,kids,settings,false);},settings.pauseTime);}
settings.afterChange.call(this);});var nivoRun=function(slider,kids,settings,nudge){var vars=slider.data('nivo:vars');if(vars&&(vars.currentSlide==vars.totalSlides-1)){settings.lastSlide.call(this);}
if((!vars||vars.stop)&&!nudge)return false;settings.beforeChange.call(this);if(!nudge){slider.css('background','url("'+vars.currentImage.attr('src')+'") no-repeat');}else{if(nudge=='prev'){slider.css('background','url("'+vars.currentImage.attr('src')+'") no-repeat');}
if(nudge=='next'){slider.css('background','url("'+vars.currentImage.attr('src')+'") no-repeat');}}
vars.currentSlide++;if(vars.currentSlide==vars.totalSlides){vars.currentSlide=0;settings.slideshowEnd.call(this);}
if(vars.currentSlide<0)vars.currentSlide=(vars.totalSlides-1);if($(kids[vars.currentSlide]).is('img')){vars.currentImage=$(kids[vars.currentSlide]);}else{vars.currentImage=$(kids[vars.currentSlide]).find('img:first');}
if(settings.controlNav){$('.nivo-controlNav a',slider).removeClass('active');$('.nivo-controlNav a:eq('+vars.currentSlide+')',slider).addClass('active');}
if(vars.currentImage.attr('title')!=''){var title=vars.currentImage.attr('title');if(title.substr(0,1)=='#')title=$(title).html();if($('.nivo-caption',slider).css('display')=='block'){$('.nivo-caption p',slider).fadeOut(settings.animSpeed,function(){$(this).html(title);$(this).fadeIn(settings.animSpeed);});}else{$('.nivo-caption p',slider).html(title);}
$('.nivo-caption',slider).fadeIn(settings.animSpeed);}else{$('.nivo-caption',slider).fadeOut(settings.animSpeed);}
var i=0;$('.nivo-slice',slider).each(function(){var sliceWidth=Math.round(slider.width()/settings.slices);$(this).css({height:'0px',opacity:'0',background:'url("'+vars.currentImage.attr('src')+'") no-repeat -'+((sliceWidth+(i*sliceWidth))-sliceWidth)+'px 0%'});i++;});if(settings.effect=='random'){var anims=new Array("sliceDownRight","sliceDownLeft","sliceUpRight","sliceUpLeft","sliceUpDown","sliceUpDownLeft","fold","fade");vars.randAnim=anims[Math.floor(Math.random()*(anims.length+1))];if(vars.randAnim==undefined)vars.randAnim='fade';}
if(settings.effect.indexOf(',')!=-1){var anims=settings.effect.split(',');vars.randAnim=$.trim(anims[Math.floor(Math.random()*anims.length)]);}
vars.running=true;if(settings.effect=='sliceDown'||settings.effect=='sliceDownRight'||vars.randAnim=='sliceDownRight'||settings.effect=='sliceDownLeft'||vars.randAnim=='sliceDownLeft'){var timeBuff=0;var i=0;var slices=$('.nivo-slice',slider);if(settings.effect=='sliceDownLeft'||vars.randAnim=='sliceDownLeft')slices=$('.nivo-slice',slider)._reverse();slices.each(function(){var slice=$(this);slice.css('top','0px');if(i==settings.slices-1){setTimeout(function(){slice.animate({height:'100%',opacity:'1.0'},settings.animSpeed,'',function(){slider.trigger('nivo:animFinished');});},(100+timeBuff));}else{setTimeout(function(){slice.animate({height:'100%',opacity:'1.0'},settings.animSpeed);},(100+timeBuff));}
timeBuff+=50;i++;});}
else if(settings.effect=='sliceUp'||settings.effect=='sliceUpRight'||vars.randAnim=='sliceUpRight'||settings.effect=='sliceUpLeft'||vars.randAnim=='sliceUpLeft'){var timeBuff=0;var i=0;var slices=$('.nivo-slice',slider);if(settings.effect=='sliceUpLeft'||vars.randAnim=='sliceUpLeft')slices=$('.nivo-slice',slider)._reverse();slices.each(function(){var slice=$(this);slice.css('bottom','0px');if(i==settings.slices-1){setTimeout(function(){slice.animate({height:'100%',opacity:'1.0'},settings.animSpeed,'',function(){slider.trigger('nivo:animFinished');});},(100+timeBuff));}else{setTimeout(function(){slice.animate({height:'100%',opacity:'1.0'},settings.animSpeed);},(100+timeBuff));}
timeBuff+=50;i++;});}
else if(settings.effect=='sliceUpDown'||settings.effect=='sliceUpDownRight'||vars.randAnim=='sliceUpDown'||settings.effect=='sliceUpDownLeft'||vars.randAnim=='sliceUpDownLeft'){var timeBuff=0;var i=0;var v=0;var slices=$('.nivo-slice',slider);if(settings.effect=='sliceUpDownLeft'||vars.randAnim=='sliceUpDownLeft')slices=$('.nivo-slice',slider)._reverse();slices.each(function(){var slice=$(this);if(i==0){slice.css('top','0px');i++;}else{slice.css('bottom','0px');i=0;}
if(v==settings.slices-1){setTimeout(function(){slice.animate({height:'100%',opacity:'1.0'},settings.animSpeed,'',function(){slider.trigger('nivo:animFinished');});},(100+timeBuff));}else{setTimeout(function(){slice.animate({height:'100%',opacity:'1.0'},settings.animSpeed);},(100+timeBuff));}
timeBuff+=50;v++;});}
else if(settings.effect=='fold'||vars.randAnim=='fold'){var timeBuff=0;var i=0;$('.nivo-slice',slider).each(function(){var slice=$(this);var origWidth=slice.width();slice.css({top:'0px',height:'100%',width:'0px'});if(i==settings.slices-1){setTimeout(function(){slice.animate({width:origWidth,opacity:'1.0'},settings.animSpeed,'',function(){slider.trigger('nivo:animFinished');});},(100+timeBuff));}else{setTimeout(function(){slice.animate({width:origWidth,opacity:'1.0'},settings.animSpeed);},(100+timeBuff));}
timeBuff+=50;i++;});}
else if(settings.effect=='fade'||vars.randAnim=='fade'){var i=0;$('.nivo-slice',slider).each(function(){$(this).css('height','100%');if(i==settings.slices-1){$(this).animate({opacity:'1.0'},(settings.animSpeed*2),'',function(){slider.trigger('nivo:animFinished');});}else{$(this).animate({opacity:'1.0'},(settings.animSpeed*2));}
i++;});}}
var trace=function(msg){if(this.console&&typeof console.log!="undefined")
console.log(msg);}
this.stop=function(){if(!$(element).data('nivo:vars').stop){$(element).data('nivo:vars').stop=true;trace('Stop Slider');}}
this.start=function(){if($(element).data('nivo:vars').stop){$(element).data('nivo:vars').stop=false;trace('Start Slider');}}
settings.afterLoad.call(this);};$.fn.nivoSlider=function(options){return this.each(function(){var element=$(this);if(element.data('nivoslider'))return;var nivoslider=new NivoSlider(this,options);element.data('nivoslider',nivoslider);});};$.fn.nivoSlider.defaults={effect:'random',slices:15,animSpeed:500,pauseTime:3000,startSlide:0,directionNav:true,directionNavHide:true,controlNav:true,controlNavThumbs:false,controlNavThumbsFromRel:false,controlNavThumbsSearch:'.jpg',controlNavThumbsReplace:'_thumb.jpg',keyboardNav:true,pauseOnHover:true,manualAdvance:false,captionOpacity:0.8,beforeChange:function(){},afterChange:function(){},slideshowEnd:function(){},lastSlide:function(){},afterLoad:function(){}};$.fn._reverse=[].reverse;})(jQuery);
