/* 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); 


var toggled = false;

document.observe('dom:loaded',function()
{
	
	$$('.highlight').each(function(elm)
	{
		new Element.insert(elm, '<div class="batch"></div>');
	});
	
	var titles = new protitle({});
}
,false);

var panSet = new Object();
var Panorama = Class.create
({
	Name: "Euroweb PrototypeJS Panorama",
	Version: "1.0",
	initialize:function(panSet)
	{
		
		panSet.ev = 0;
		
		if(typeof(Prototype) == "undefined")
		throw "proculous requires PrototypeJS to be loaded.";
		
		new Element.insert(document.body, '<div id="togglePanContainer" style="display:none;z-index:999"><a id="toggler" href="#" title="Blendet das Panorama ein und aus">Panorama öffnen / schließen</a></div>');
		
		new Effect.SlideDown('togglePanContainer', { duration: 1.0 });
		$('toggler').observe('click', function(event)
		{
			Event.stop(event);
			if(!toggled)
			{
				toggled=true;
				
				var newImage 	= null;
				newImage 		= new Image();
				newImage.src 	= panSet.image;

				Event.observe(newImage,'load',function()
				{
					new Element.insert(document.body, '<div id="panContainer" style="display:none;overflow:hidden;width:100%;height:100%;position:relative"><img style="position:absolute" id="panImage" src="'+panSet.image+'" /></div>');
					
					$('panContainer').appear(
					{
						afterUpdate:function()
						{
							resze(panSet);	
						},
						afterFinish:function()
						{
							panSet.imageHeight = $('panImage').getHeight();
							panSet.imageWidth = $('panImage').getWidth();
							panSet.ratio = panSet.imageWidth/panSet.imageHeight;
							resze(panSet);
							Event.observe(window, 'mousemove', move);
						}
					});
				});
				new Effect.Fade('site', {duration:1});
				new Effect.SlideUp('togglePanContainer', 
				{ 
					duration: 0.5,
					afterFinish:function()
					{
						$('toggler').addClassName('toggled');
						new Effect.SlideDown('togglePanContainer', { duration: 1.0 });
					}
				});				
			}
			else
			{
				toggled=false;
				new Effect.SlideUp('togglePanContainer', 
				{ 
					duration: 1.0,
					afterFinish:function()
					{
						Event.stopObserving(window, 'mousemove', move);
						new Effect.Appear('site', {duration:0.5});
						$('toggler').removeClassName('toggled');
						new Effect.SlideDown('togglePanContainer', { duration: 1.0 });
						new Effect.Fade('panContainer', {duration:0.5, afterFinish:function(){$('panContainer').remove();}});
					}
				});
			}
		});
		
		Event.observe(window,'resize', function(){resze(panSet);});

		var resze = function(panSet)
		{
			w = document.viewport.getWidth();
			h = document.viewport.getHeight();
			
			viewportRatio = w / h;

			if(w > h)
			{
				$('panImage').setStyle(
					{
						height: h+'px'
					}
				);
			}
			
			$('panImage').setStyle({left:(document.viewport.getWidth()/2) - ($('panImage').getWidth()/2)+'px'});
		}
		
		var move = function(event)
		{
			panSet.mX	= Event.pointerX(event);		
	
			newX = ( ( ( ($('panImage').getWidth() - document.viewport.getWidth()) / document.viewport.getWidth() ) *-1 ) * panSet.mX );
			$('panImage').setStyle({left:newX+'px'});
		}
	}
});


var protitle = Class.create
({
	Name:"proculous title on hover",
	Version:"1.0",
	initialize:function(set)
	{
		if(typeof(Prototype) == "undefined")
		throw "proculous requires PrototypeJS to be loaded.";
		
		var browser = new Browser();
		if(browser.msie && browser.version == "7.0") return;
				
		var title = new String();
		$$('a[title]').each(function(elm)
		{
			elm.observe('mouseenter', function(event)
			{
				Event.stop(event);
				title = elm.readAttribute('title');
				elm.setAttribute('title', '');
				elm.setAttribute('alt','');
				if (typeof(fadeout) != "undefined") fadeout.cancel();
				new Element.insert(document.body, '<div id="tooltip" style="display:none;">'+title+' <div class="protri"></div></div>');
				Position.clone(this, $('tooltip'), {setLeft:true,setRight:true,setWidth:false,setHeight:false});
				fadein = new Effect.Move($('tooltip'),
				{
					mode:'relative',
					y:this.getHeight() + 10,
					x:this.getWidth()/2 - $('tooltip').getWidth() / 2,
					duration:0,
					afterFinish:function()
					{
						tri = $('tooltip').descendants();
						tri = tri[0];
						tri.setStyle({'left':$('tooltip').getWidth()/2-10+'px'});
						new Effect.Appear($('tooltip'),{duration:0.5});
					} 
				});
			});
			elm.observe('mouseleave', function()
			{
				elm.setAttribute('title', title);
				if (typeof(fadein) != "undefined") fadein.cancel();
				$('tooltip').remove();
			});
		});
	}
});
var Browser = Class.create({
  initialize: function() {
    var userAgent = navigator.userAgent.toLowerCase();
    this.version = (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1];
    this.webkit = /webkit/.test( userAgent );
    this.opera = /opera/.test( userAgent );
    this.msie = /msie/.test( userAgent ) && !/opera/.test( userAgent );
    this.mozilla = /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent );
  }
});


/*#######################################################################################################
Program written by Dominik Kressler
Project Name: 	modalBuddy
Version: 		1.1 RC3
Date: 			2010-08-07
#########################################################################################################
#########################################################################################################
REQUIREMTENS:
	Libraries:
		Prototype: 		1.6.1
		Scriptaculous: 	1.8.1
#########################################################################################################
########################################################################################CONFIGURATION: */

var boxPadding = "10";
var closeImage = "images/modalBuddy/close.png";
var allMoveable = false;

/*##################################################################################CONFIGURATION: END */

var moveable = Boolean();
var targets = Array();
var targetSources = Array();
var targetSource = String();
var targetHeight = Number();
var targetWidth = Number();
var targetTitle = String;
var boxWidth = Number();
var boxHeight = Number();
var typeOfCurrent = String();
var image = new Image();
var source;

var modalBuddy = Class.create
({
	initialize:function() 
	{
		insertOverlayInDOM();
		$$("a[rel=modalBuddy]").each
		(
			function(source)
			{
				sourceType = source.readAttribute('class');
				handleSRC(source,sourceType);
				if(allMoveable) source.addClassName('moveable');
			}
		)
	}
});
function handleSRC(source,sourceType)
{
	$(source).observe('click', function(event)
	{
		Event.stop(event);
		$('modalLoader').appear({duration:0.1});
		targetSource = source.readAttribute('href');
		targetTitle = source.readAttribute('title');
		if (!targetSource.complete) {
			moveable = ($$('a.moveable') != "") ? true : false ;
			if ($(source).hasClassName('iframe') || $(source).hasClassName('iFrame')) openIframe(targetSource, targetTitle);
			else openImage(targetSource, targetTitle);
			typeOfCurrent = source;
		}
	});
}
function insertOverlayInDOM()
{
	Event.stopObserving(window, 'load', init);
	Element.insert(document.body, '<div id="modalLoader">Lade Daten...</div>');
	Element.insert(document.body, '<div id="modalContainer"><div id="modal"></div></div>');
	$("modal").insert(new Element("div", { id: "modalBox" })).insert(new Element("div", { id: "modalHead", style: "position:relative; padding:0 "+boxPadding+"px" }));
	$("modalHead").insert(new Element("img", { id: "modalHeadHandler", src: closeImage, style: "position:absolute;" })).insert(new Element("p", { id:"modalTitle", style: "width:90%; font-size:11px;" }));
	Element.insert(document.body, '<div id="modalOverlay"></div>');
	
	$('modalLoader').setStyle
	({
	 	display:'none',
		top:'48%',
		left:'48%'
	 });
	
	$('modalHeadHandler').setStyle
	({
		bottom: boxPadding +"px",
		right: boxPadding +"px"
	});
	$("modalTitle").setStyle
	({
		paddingBottom:boxPadding / 2+"px",					 
		paddingTop:boxPadding / 2+"px"
	});	
	$("modalOverlay").setStyle
	({
		position:'absolute',
		top:'0',
		left:'0',
		display:'none'
	});
	$("modal").setStyle
	({
		position:'absolute',
		display:'none'
	});
	$("modalBox").setStyle
	({
		padding: boxPadding+"px"
	});
	$("modalHead").setStyle
	({
		display:'none',
		minHeight:"25px"
	});
	$("modalHeadHandler").observe('click', modalKill);
}
function openIframe(targetSource, targetTitle)
{
	$('modalTitle').update(targetTitle);
	$('modalBox').insert(new Element("iframe", 
	{
		id: "modalContent", 
		height: "100%", 
		width: "100%", 
		scrolling: "auto", 
		src: targetSource,
		frameborder: "0"
	}));
	showOverlay();
	boxHeight=document.viewport.getHeight() - 200;
	boxWidth=document.viewport.getWidth() - 200;
	$("modalBox").setStyle
	({
		width:boxWidth+"px",
		height:boxHeight+"px"
	});
	$("modal").appear
	({
		from:0,
		to:1,
		afterFinish: function() { setHeader(boxWidth, boxHeight); $('modalLoader').setStyle({display:'none'}); },
		duration: 1.5
	}).setStyle
	({
		width:boxWidth + (boxPadding*2) +"px",
		height:boxHeight + (boxPadding*2) +"px",
		top:imageY(boxHeight)+getYOffset()+"px",
		left:imageX(boxWidth)+"px"
	});
}
function openImage(targetSource, targetTitle)
{
	$('modalTitle').update(targetTitle);
	var image = new Image();
	image.src = targetSource;	
	$('modalBox').insert(new Element("img", {id: "modalContent",src: targetSource })).setStyle({width:"auto", height:"auto"});
	Event.observe(image, 'load', function(){
		showOverlay();
		$("modal").appear
		({
			from:0,
			to:1,
			afterFinish:function(){setHeader(targetWidth, targetHeight); $('modalLoader').setStyle({display:'none'});},
			duration:1.5
		}).setStyle
		({
			width:getImageWidth(targetSource) + (boxPadding*2)+"px",
			height:getImageHeight(targetSource) + (boxPadding*2) + 1 +"px",
			top:imageY(targetHeight)+getYOffset()+"px",
			left:imageX(targetWidth)+"px"
		});
	});
}
function showOverlay()
{
	$("modalOverlay").appear
	({
		from:0,
		to:0.5,	
		duration: 1
	}).setStyle
	({
		width:"100%",
		height:document.body.parentNode.scrollHeight+"px"
	});	
	if (moveable)
	{
		$('modal').addClassName('moveableBox');
		new Draggable('modal', 
		{
			onStart:function()
			{
				$('modalOverlay').fade({to:0.1,duration:0.3});
			},
			onEnd:function()
			{
				$('modalOverlay').fade({to:0.5,duration:0.3});
			}
		});	
	}
	$("modalOverlay").observe('click', modalKill);
	Event.observe(window, 'resize', resize);
}
function modalKill()
{
	$('modalOverlay').stopObserving('click', modalKill);
	Event.stopObserving(window, 'resize', resize);
	$("modalOverlay").fade
	({
		from:0.5,
		to:0,
		duration: 0.5
	});
	/*
	$("modalHead").fade({
		from:1,
		to:0,
		duration: 0.5
	});	
	
	$("modal").fade({
		from:1,
		to:0,
		duration: 0.5,
		afterFinish:clearModalBox
	});
	*/
	$("modal").switchOff({afterFinish:clearModalBox});
	$('modalLoader').setStyle({display:'none'});
	Draggables.drags.each(function(draggable) { draggable.destroy(); } );
	if ($('modal').hasClassName('moveableBox')) $('modal').removeClassName('moveableBox');
}
function clearModalBox(){$('modalContent').remove();image.src="";}
function getImageWidth(targetSource)
{
	var newImg = new Image();
	newImg.src = targetSource;
	targetWidth = newImg.width;
	if(newImg.complete)	return parseInt(targetWidth);
}
function getImageHeight(targetSource)
{
	var newImg = new Image();
	newImg.src = targetSource;
	targetHeight = newImg.height;
	if(newImg.complete)	return parseInt(targetHeight);
}
function imageX(targetWidth)
{
	var viewportHalf = Math.floor(document.viewport.getWidth()) / 2;
	var targetWidthHalf = parseInt(targetWidth) / 2; 
	var imageX = viewportHalf - targetWidthHalf;
	return imageX;
}
function imageY(targetHeight)
{
	var imageY = Math.floor(document.viewport.getHeight()) / 2 - targetHeight / 2;
	return imageY;
}
function setHeader(targetWidth, targetHeight)
{	
	$("modalHead").setStyle
	({
		width: parseInt(targetWidth)+"px",
		minHeight:"25px"
	}).appear({
		duration:0.3
	});
}
function resize()
{
	boxHeight = document.viewport.getHeight() - 200;
	boxWidth = document.viewport.getWidth() - 200;
	$("modalOverlay").setStyle({width:"100%",height:document.body.parentNode.scrollHeight+"px"});	
	if($(typeOfCurrent).hasClassName('iframe') || $(typeOfCurrent).hasClassName('iFrame'))
	{
		$("modalBox").setStyle
		({
			width: boxWidth+"px",
			height: boxHeight+"px"
		});
	
		$("modal").setStyle
		({
			width: boxWidth + (boxPadding*2) +"px",
			height: boxHeight + (boxPadding*2) +"px",
			top: imageY(boxHeight)+window.pageYOffset+"px",
			left: imageX(boxWidth)+"px"
		});
		setHeader(boxWidth, boxHeight);
	}
	else
	{
		$("modal").setStyle
		({
			top: imageY(targetHeight)+window.pageYOffset+"px",
			left: imageX(targetWidth)+"px"
		});	
	}
}
function getYOffset() {
    var pageY;
    if(typeof(window.pageYOffset)=='number') {
       pageY=window.pageYOffset;
    }
    else {
       pageY=document.documentElement.scrollTop;
    }
    return pageY;
}
function init(){modalBuddy = new modalBuddy();}
Event.observe(window, 'load', init);

// form_validation version 3.1.1
//  ----------------------------
// | Euroweb Internet GmbH     |
//  ----------------------------
// $original script by s.krassnig
// $modified by d.kressler
// $date 2011-02-22

var formSuccessMsg = "Das Formular wurde erfolgreich versendet. <br /> Wir werden uns umgehend mit Ihrer Anfrage auseinandersetzen.";
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!";

var error=0;var currentLabel='';var currentField='';var klasse='';var newClass='';var formID;var theLabels;var liveID;var f=new Number();var obj=new Object();var validateForm=function(formular)
{formID=formular.getAttribute('id');theLabels=document.getElementById(formID).getElementsByTagName("label");error=0;for(var i=0;i<theLabels.length;i++)
{currentLabel=theLabels[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/,'');if(currentField)
{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;}}
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);}}}
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;}
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;}}
var isNumber=function(field){var returnvar=(isNaN(parseInt(field.value))==true)?false:true;return returnvar;}
var isMailValid=function(field){var returnvar=(field.value.match(/^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$/))?true:false;return returnvar;}
var triggerErrorSpan=function(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;}}
var removeErrorSpan=function(currentLabel)
{var labelId=currentLabel.getAttribute('id');if(document.getElementById("error-"+labelId)!=null)
{var Knoten=document.getElementById("error-"+labelId);document.getElementById(labelId).removeChild(Knoten);}}
var addEvent=function(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);if(r)return r;}
else return false;}
var getElementsByClassName=function(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(f=0;f<form.length;f++)
{var field=form[f].nextSibling.nextSibling;var label=form[f];addEvent(label.nextSibling.nextSibling,"keyup",function(e)
{e=e||window.event;var field=(e.originalTarget)?e.originalTarget:e.srcElement;var label=field.previousSibling.previousSibling;checkField(label,field);});addEvent(label.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);var prototypeSubmit=function(liveID,index)
{Event.observe(liveID,'submit',function(event)
{Event.stop(event);if(validateForm($(liveID))===true)
{var formData=$(liveID).serialize(true);new Ajax.Request('formmail/formmail.php',{method:'post',parameters:formData,onCreate:function()
{$(liveID).disable();},onSuccess:function(transport)
{$(liveID).enable();$(liveID).insert({before:'<p id="formNotice'+index+'" class="formNotice" style="display:none;">'+formSuccessMsg+'</p>'});$(liveID).blindUp({afterFinish:function(){$('formNotice'+index).appear();}});}});}});}
try
{Event.observe(window,'load',function()
{allForms=document.getElementsByTagName('form');for(d=0;d<allForms.length;d++)
{if(allForms[d].getAttribute('onsubmit')!=null&&allForms[d].getAttribute('onsubmit')=="return validateForm(this);")
{prototypeSubmit(allForms[d].getAttribute('id'),d);}}});}
catch(e)
{}
try{}
catch(e){throw"Bitte jQuery Library einbinden.";}
