
function kalenderMove(direction) {

	if((direction == "next" || direction == "back") && statusKalenderDirection()) {

		var left = parseInt($('blatt_container').getStyle('left'));
		if(! Number(left))	left = 0;

		if(direction == "next") {

			if(left <= -1392)	var makeX = 1392;
			else			var makeX = -696;
		
		}
		else {

			if(left <= -696)	var makeX = 696;
			else			var makeX = -1392;
		
		}

		new Effect.Move('blatt_container', { x: makeX, 
						     y: 0, 
						     mode: 'relative', 
						     duration: 0.6, 
						     beforeStart: deactiveKalenderDirection, 
						     afterFinish: activeKalenderDirection });	
/*
						     transition: Effect.Transitions.spring, 
*/	
	}

}

function statusKalenderDirection() {

	var direction = true;
	$$('a.blatt_direction').each( function(element) { if($(element).hasClassName('deactive')) direction = false; } );
	return direction;

}

function deactiveKalenderDirection() {
	$$('a.blatt_direction').each( function(element) { $(element).addClassName('deactive'); } );
}

function activeKalenderDirection() {
	$$('a.blatt_direction').each( function(element) { $(element).removeClassName('deactive'); } );
}






function showFullImage(month) {

	month = month;
	var element = 'full_' + month;

	if(Number(month) && $(element)) {
		
		if($(element).style.display == 'none') {

			new Effect.Move(element, { y: 624, 
						   mode: 'relative', 
						   transition: Effect.Transitions.spring, 
						   duration: 1.2, 
						   beforeStart: function() { 
						   			     Event.observe(document, 'click', function() { hideFullImage(month) } );
						   			     $(element).show(); 
						   			   }
						 });

		}
		else {
			
			hideFullImage(month);
			
		}
		
	}

}


function hideFullImage(month) {

	var element = 'full_' + month;	
	Event.stopObserving(document);
	
	if(Number(month) && $(element)) {
		
		if($(element).style.display != 'none') {
	
			new Effect.DropOut(element, { afterFinish: function() { 
							$(element).hide(); 
							$(element).setStyle( { top:'-461px' } );
							$(element).setOpacity(1); 
							} 
						    });
	
		}
		else {
	
			$(element).hide();
			$(element).setStyle( { top:'-461px' } );
	
		}
		
	}
	
	/*
	$$('div.fullImage').each( function(allFull) { 
		$(allFull).hide();
		$(allFull).setStyle( { top:'-461px' } );
	});
	*/
	
	
}



function kalenderOrder() {

	if($('order_container').style.display == "none") {

		$$('div.fullImage').each(function(element) {
			$(element).hide();
			$(element).setStyle( { top:'-486px' } );
		} );

				new Effect.Move('order_container', { y: 629, 
							   mode: 'relative', 
							   transition: Effect.Transitions.spring, 
							   duration: 1.2, 
							   beforeStart: function() { $('order_container').show(); }
							 });	
	
	}
	else {
	
		new Effect.DropOut('order_container', { afterFinish: function() { 
							$('order_container').hide(); 
							$('order_container').setStyle( { top:'-486px' } ); 
						      } });
	
	}
	
}


function ajaxWarenkorb() {

	if(! Number($F('orderCount')))
		$('orderCount').value = 1;

	var count = $F('orderCount');

	if(Number(count)) {
		
		if($('orderAbholer').checked == true)
			var abholer = 1;
		else
			var abholer = 0;
		
		if(abholer == 1) {
		
			$$('div.inner80 p span.red').each( function(element) { $(element).remove(); });
			$$('div.inner20 p span.red').each( function(element) { $(element).remove(); });

			$('orderStrasse').removeClassName('error');
			$('orderHausnummer').removeClassName('error');
			$('orderPlz').removeClassName('error');
			$('orderOrt').removeClassName('error');

		} else {

			var counterSpans = $$('div.inner80 p span.red');
			
			if(counterSpans.length == 0) {

				$$('div.inner80 p').each( function(element) { $(element).insert({ bottom: "<span class=\"red\">*</span>" }); });
				$$('div.inner20 p').each( function(element) { $(element).insert({ bottom: "<span class=\"red\">*</span>" }); });
		
			}
		
		}
					
		new Ajax.Updater('ajaxWarenkorb', 'warenkorb.inc.php', { method: 'post', 
									 parameters: { count: count, abholer: abholer },
									 onCreate: function() { $('ajaxWarenkorb').hide(); $('loader').show(); },
									 onComplete: function() { $('loader').hide(); $('ajaxWarenkorb').show(); } 
								       });
	
	}

}


function checkOrder() {

	var check = true;

	$('orderVorname').removeClassName('error');
	$('orderNachname').removeClassName('error');
	$('orderEmail').removeClassName('error');
	$('orderStrasse').removeClassName('error');
	$('orderHausnummer').removeClassName('error');
	$('orderPlz').removeClassName('error');
	$('orderOrt').removeClassName('error');
	$('orderAgb').removeClassName('red');

	if($('orderAbholer').checked == true)
		var abholer = true;
	else
		var abholer = false;
		
					
	if($F('orderVorname') == "") {
		$('orderVorname').addClassName('error');
		check = false;
	}

	if($F('orderNachname') == "") {
		$('orderNachname').addClassName('error');
		check = false;
	}

	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if($F('orderEmail') == "" || (filter.test($F('orderEmail')) == false)) {
		$('orderEmail').addClassName('error');
		check = false;
	}
	
	if(! abholer) {
	
		if($F('orderStrasse') == "") {
			$('orderStrasse').addClassName('error');
			check = false;
		}
	
		if($F('orderHausnummer') == "") {
			$('orderHausnummer').addClassName('error');
			check = false;
		}
	
		if($F('orderPlz') == "") {
			$('orderPlz').addClassName('error');
			check = false;
		}
	
		if($F('orderOrt') == "") {
			$('orderOrt').addClassName('error');
			check = false;
		}	
	
	}
	
	if($('orderAgb').down('input').checked == false) {
		$('orderAgb').addClassName('red');
		check = false;
	}


	return check;

}





function resize() {

	var page 	= pageSize();
	var fullLeft 	= Math.round((page[0] / 2) - 173);
	var orderLeft 	= Math.round((page[0] / 2) - 422);
	
	$$('div.fullImage').each( function(element) { $(element).setStyle( { left: fullLeft +"px" } ); } );
	$('order_container').setStyle( { left: orderLeft +"px" } );

}


function pageSize() {
	        
	var xScroll, yScroll;
		
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
		
	var windowWidth, windowHeight;
		
	if (self.innerHeight) {	// all except Explorer
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth; 
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
		
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}
	
	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = xScroll;		
	} else {
		pageWidth = windowWidth;
	}

	return [pageWidth,pageHeight];
}
