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


// 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 = "Das Feld ist leer!";
var errorMsgMail = "E-Mail Adresse 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.noConflict();
var runsMeals = 0;
var countMeals = 4; // 4 pro tag. 2x vorspeise und hauptgericht
var timer;
jQuery(document).ready(function(){
	noSpam();
	jQuery('a[rel="lightbox"]').attr("rel","colorbox");
	jQuery('a[rel="colorbox"]').colorbox({ maxWidth: "800px", maxHeight: "620px" }); 
	
	//jQuery('#mittagstisch-teaser #mittagstischContainer').css({width: countMeals * 244+'px'});
	
	Cufon.replace('div#content h2', { "fontFamily":"Journal", "fontSize": "40px" } );
	Cufon.replace('div#content h2 span', { "fontFamily":"Journal", "fontSize": "30px" } );
	Cufon.replace('div#content h3, a#vcard-link', { "fontFamily":"Journal", "fontSize": "28px" } );
	Cufon.replace('#mittagstisch-teaser h2', { "fontFamily":"Journal", "fontSize": "35px" } );
	Cufon.replace('#mittagstisch-teaser #mittagstischContainer', { "fontFamily":"Journal", "hover":"true", "fontSize": "26px" } );
	Cufon.replace('#mittagstisch-teaser a', { "fontFamily":"Journal", "fontSize": "26px" } );
	Cufon.replace('ul#navigation li a', { "fontFamily":"Highway Gothic", "hover":"true", "fontSize": "18px" } );
	Cufon.replace('div#sidebar:not(a)', { "fontFamily":"Highway Gothic" } );
	
	timer = setInterval(animationMeals, 8000);
	if(jQuery('#mittagstischContainer .menu1_2').length == 0){	// auf der mittagstisch-seite
		clearInterval(timer);
	}
});	// end document ready

function animationMeals(){
	runsMeals++;
	if(runsMeals == countMeals ){
		runsMeals = 0;
	}
	var w=jQuery('.menu1_1').width() + parseInt(jQuery('.menu1_1').css('padding-right'));
	jQuery('#mittagstisch-teaser #mittagstischContainer').hide('normal', 
		function(){
			jQuery(this).css({left: runsMeals * -w + 'px'}).show('normal');
		 }
	);
}



// ColorBox v1.3.9 - a full featured, light-weight, customizable lightbox based on jQuery 1.3
// c) 2009 Jack Moore - www.colorpowered.com - jack@colorpowered.com
// Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
(function(b,gb){var v="none",t="click",N="LoadedContent",d=false,x="resize.",o="y",u="auto",f=true,M="nofollow",q="on",n="x";function e(a,c){a=a?' id="'+k+a+'"':"";c=c?' style="'+c+'"':"";return b("<div"+a+c+"/>")}function p(a,b){b=b===n?m.width():m.height();return typeof a==="string"?Math.round(a.match(/%/)?b/100*parseInt(a,10):parseInt(a,10)):a}function Q(c){c=b.isFunction(c)?c.call(h):c;return a.photo||c.match(/\.(gif|png|jpg|jpeg|bmp)(?:\?([^#]*))?(?:#(\.*))?$/i)}function cb(){for(var c in a)if(b.isFunction(a[c])&&c.substring(0,2)!==q)a[c]=a[c].call(h);a.rel=a.rel||h.rel||M;a.href=a.href||b(h).attr("href");a.title=a.title||h.title}function db(d){h=d;a=b.extend({},b(h).data(r));cb();if(a.rel!==M){i=b("."+H).filter(function(){return (b(this).data(r).rel||this.rel)===a.rel});g=i.index(h);if(g===-1){i=i.add(h);g=i.length-1}}else{i=b(h);g=0}if(!w){w=F=f;R=h;try{R.blur()}catch(e){}b.event.trigger(hb);a.onOpen&&a.onOpen.call(h);y.css({opacity:+a.opacity,cursor:a.overlayClose?"pointer":u}).show();a.w=p(a.initialWidth,n);a.h=p(a.initialHeight,o);c.position(0);S&&m.bind(x+O+" scroll."+O,function(){y.css({width:m.width(),height:m.height(),top:m.scrollTop(),left:m.scrollLeft()})}).trigger("scroll."+O)}T.add(I).add(J).add(z).add(U).hide();V.html(a.close).show();c.slideshow();c.load()}var eb={transition:"elastic",speed:300,width:d,initialWidth:"600",innerWidth:d,maxWidth:d,height:d,initialHeight:"450",innerHeight:d,maxHeight:d,scalePhotos:f,scrolling:f,inline:d,html:d,iframe:d,photo:d,href:d,title:d,rel:d,opacity:.9,preloading:f,current:"Bild {current} von {total}",previous:"vorheriges",next:"nächstes",close:"Schließen",open:d,loop:f,slideshow:d,slideshowAuto:f,slideshowSpeed:2500,slideshowStart:"start slideshow",slideshowStop:"stop slideshow",onOpen:d,onLoad:d,onComplete:d,onCleanup:d,onClosed:d,overlayClose:f,escKey:f,arrowKey:f},r="colorbox",k="cbox",hb=k+"_open",P=k+"_load",W=k+"_complete",X=k+"_cleanup",fb=k+"_closed",G=b.browser.msie&&!b.support.opacity,S=G&&b.browser.version<7,O=k+"_IE6",y,j,E,s,Y,Z,ab,bb,i,m,l,K,L,U,T,z,J,I,V,C,D,A,B,h,R,g,a,w,F,c,H=k+"Element";c=b.fn[r]=b[r]=function(c,d){var a=this;if(!a[0]&&a.selector)return a;c=c||{};if(d)c.onComplete=d;if(!a[0]||a.selector===undefined){a=b("<a/>");c.open=f}a.each(function(){b(this).data(r,b.extend({},b(this).data(r)||eb,c)).addClass(H)});c.open&&db(a[0]);return a};c.init=function(){var h="hover";m=b(gb);j=e().attr({id:r,"class":G?k+"IE":""});y=e("Overlay",S?"position:absolute":"").hide();E=e("Wrapper");s=e("Content").append(l=e(N,"width:0; height:0"),L=e("LoadingOverlay").add(e("LoadingGraphic")),U=e("Title"),T=e("Current"),J=e("Next"),I=e("Previous"),z=e("Slideshow"),V=e("Close"));E.append(e().append(e("TopLeft"),Y=e("TopCenter"),e("TopRight")),e().append(Z=e("MiddleLeft"),s,ab=e("MiddleRight")),e().append(e("BottomLeft"),bb=e("BottomCenter"),e("BottomRight"))).children().children().css({"float":"left"});K=e(d,"position:absolute; width:9999px; visibility:hidden; display:none");b("body").prepend(y,j.append(E,K));s.children().hover(function(){b(this).addClass(h)},function(){b(this).removeClass(h)}).addClass(h);C=Y.height()+bb.height()+s.outerHeight(f)-s.height();D=Z.width()+ab.width()+s.outerWidth(f)-s.width();A=l.outerHeight(f);B=l.outerWidth(f);j.css({"padding-bottom":C,"padding-right":D}).hide();J.click(c.next);I.click(c.prev);V.click(c.close);s.children().removeClass(h);b("."+H).live(t,function(a){if(a.button!==0&&typeof a.button!=="undefined"||a.ctrlKey||a.shiftKey||a.altKey)return f;else{db(this);return d}});y.click(function(){a.overlayClose&&c.close()});b(document).bind("keydown",function(b){if(w&&a.escKey&&b.keyCode===27){b.preventDefault();c.close()}if(w&&a.arrowKey&&!F&&i[1])if(b.keyCode===37&&(g||a.loop)){b.preventDefault();I.click()}else if(b.keyCode===39&&(g<i.length-1||a.loop)){b.preventDefault();J.click()}})};c.remove=function(){j.add(y).remove();b("."+H).die(t).removeData(r).removeClass(H)};c.position=function(f,b){function c(a){Y[0].style.width=bb[0].style.width=s[0].style.width=a.style.width;L[0].style.height=L[1].style.height=s[0].style.height=Z[0].style.height=ab[0].style.height=a.style.height}var e,h=Math.max(m.height()-a.h-A-C,0)/2+m.scrollTop(),g=Math.max(m.width()-a.w-B-D,0)/2+m.scrollLeft();e=j.width()===a.w+B&&j.height()===a.h+A?0:f;E[0].style.width=E[0].style.height="9999px";j.dequeue().animate({width:a.w+B,height:a.h+A,top:h,left:g},{duration:e,complete:function(){c(this);F=d;E[0].style.width=a.w+B+D+"px";E[0].style.height=a.h+A+C+"px";b&&b()},step:function(){c(this)}})};c.resize=function(b){if(w){b=b||{};if(b.width)a.w=p(b.width,n)-B-D;if(b.innerWidth)a.w=p(b.innerWidth,n);l.css({width:a.w});if(b.height)a.h=p(b.height,o)-A-C;if(b.innerHeight)a.h=p(b.innerHeight,o);if(!b.innerHeight&&!b.height){b=l.wrapInner("<div style='overflow:auto'></div>").children();a.h=b.height();b.replaceWith(b.children())}l.css({height:a.h});c.position(a.transition===v?0:a.speed)}};c.prep=function(o){var d="hidden";function n(t){var o,q,s,n,d=i.length,e=a.loop;c.position(t,function(){function t(){G&&j[0].style.removeAttribute("filter")}if(w){G&&p&&l.fadeIn(100);a.iframe&&b("<iframe frameborder=0"+(a.scrolling?"":" scrolling='no'")+(G?" allowtransparency='true'":"")+"/>").attr({src:a.href,name:(new Date).getTime()}).appendTo(l);l.show();U.show().html(a.title);if(d>1){T.html(a.current.replace(/\{current\}/,g+1).replace(/\{total\}/,d)).show();J[e||g<d-1?"show":"hide"]().html(a.next);I[e||g?"show":"hide"]().html(a.previous);o=g?i[g-1]:i[d-1];s=g<d-1?i[g+1]:i[0];if(a.slideshow){z.show();g===d-1&&!e&&j.is("."+k+"Slideshow_on")&&z.click()}if(a.preloading){n=b(s).data(r).href||s.href;q=b(o).data(r).href||o.href;if(Q(n))b("<img/>")[0].src=n;if(Q(q))b("<img/>")[0].src=q}}L.hide();a.transition==="fade"?j.fadeTo(f,1,function(){t()}):t();m.bind(x+k,function(){c.position(0)});b.event.trigger(W);a.onComplete&&a.onComplete.call(h)}})}if(w){var p,f=a.transition===v?0:a.speed;m.unbind(x+k);l.remove();l=e(N).html(o);l.hide().appendTo(K.show()).css({width:function(){a.w=a.w||l.width();a.w=a.mw&&a.mw<a.w?a.mw:a.w;return a.w}(),overflow:a.scrolling?u:d}).css({height:function(){a.h=a.h||l.height();a.h=a.mh&&a.mh<a.h?a.mh:a.h;return a.h}()}).prependTo(s);K.hide();b("#"+k+"Photo").css({cssFloat:v});S&&b("select").not(j.find("select")).filter(function(){return this.style.visibility!==d}).css({visibility:d}).one(X,function(){this.style.visibility="inherit"});a.transition==="fade"?j.fadeTo(f,0,function(){n(0)}):n(f)}};c.load=function(){var j,d,q,m=c.prep;F=f;h=i[g];a=b.extend({},b(h).data(r));cb();b.event.trigger(P);a.onLoad&&a.onLoad.call(h);a.h=a.height?p(a.height,o)-A-C:a.innerHeight&&p(a.innerHeight,o);a.w=a.width?p(a.width,n)-B-D:a.innerWidth&&p(a.innerWidth,n);a.mw=a.w;a.mh=a.h;if(a.maxWidth){a.mw=p(a.maxWidth,n)-B-D;a.mw=a.w&&a.w<a.mw?a.w:a.mw}if(a.maxHeight){a.mh=p(a.maxHeight,o)-A-C;a.mh=a.h&&a.h<a.mh?a.h:a.mh}j=a.href;L.show();if(a.inline){e("InlineTemp").hide().insertBefore(b(j)[0]).bind(P+" "+X,function(){b(this).replaceWith(l.children())});m(b(j))}else if(a.iframe)m(" ");else if(a.html)m(a.html);else if(Q(j)){d=new Image;d.onload=function(){var e;d.onload=null;d.id=k+"Photo";b(d).css({margin:u,border:v,display:"block",cssFloat:"left"});if(a.scalePhotos){q=function(){d.height-=d.height*e;d.width-=d.width*e};if(a.mw&&d.width>a.mw){e=(d.width-a.mw)/d.width;q()}if(a.mh&&d.height>a.mh){e=(d.height-a.mh)/d.height;q()}}if(a.h)d.style.marginTop=Math.max(a.h-d.height,0)/2+"px";setTimeout(function(){m(d)},1);i[1]&&(g<i.length-1||a.loop)&&b(d).css({cursor:"pointer"}).click(c.next);if(G)d.style.msInterpolationMode="bicubic"};d.src=j}else e().appendTo(K).load(j,function(c,a,b){m(a==="error"?"Request unsuccessful: "+b.statusText:this)})};c.next=function(){if(!F){g=g<i.length-1?g+1:0;c.load()}};c.prev=function(){if(!F){g=g?g-1:i.length-1;c.load()}};c.slideshow=function(){function f(){z.text(a.slideshowStop).bind(W,function(){d=setTimeout(c.next,a.slideshowSpeed)}).bind(P,function(){clearTimeout(d)}).one(t,function(){e()});j.removeClass(b+"off").addClass(b+q)}var e,d,b=k+"Slideshow_";z.bind(fb,function(){z.unbind();clearTimeout(d);j.removeClass(b+"off "+b+q)});e=function(){clearTimeout(d);z.text(a.slideshowStart).unbind(W+" "+P).one(t,function(){f();d=setTimeout(c.next,a.slideshowSpeed)});j.removeClass(b+q).addClass(b+"off")};if(a.slideshow&&i[1])a.slideshowAuto?f():e()};c.close=function(){if(w){w=d;b.event.trigger(X);a.onCleanup&&a.onCleanup.call(h);m.unbind("."+k+" ."+O);y.fadeTo("fast",0);j.stop().fadeTo("fast",0,function(){j.find("iframe").attr("src","about:blank");l.remove();j.add(y).css({opacity:1,cursor:u}).hide();try{R.focus()}catch(c){}setTimeout(function(){b.event.trigger(fb);a.onClosed&&a.onClosed.call(h)},1)})}};c.element=function(){return b(h)};c.settings=eb;b(c.init)})(jQuery,this)
