// JavaScript Document



// Firebug-replacement if necessary
if( typeof(console)=='undefined') var console = {log:function(){}};



// keep the contentBox inside window
function resizeHandler()
{	
	if( $('contentBox'))
	{
		$('contentBox').setStyle('left','47%');
		$('contentBox').setStyle('top','50%');
		if( $('contentBox').getPosition().x <0) $('contentBox').setStyle('left',440);
		if( $('contentBox').getPosition().y <0) $('contentBox').setStyle('top',250);
	}
}
window.addEvent( 'resize', resizeHandler);
window.addEvent('domready', resizeHandler);	



// animate the chicken
var ca = 
{
	amount: 11,
	tweenDelay: 20,
	minDelay: 2000,
	maxDelay: 12000,
	randTimeout: (function(){}).delay(0),
	tweenTimeout: (function(){}).delay(0),
	
	rand: function()
	{
		var newChick = Number.random(-10,0);
		ca.animateTo( newChick);
		ca.randTimeout = ca.rand.delay( Number.random( ca.minDelay, ca.maxDelay));
	},
	
	animateTo: function(index)
	{
		if( Browser.ie)
		{
			$('chicken').setStyle( 'backgroundPosition', 200*(index)+'px 0px');
		}
		else
		{
			var actFrame = $('chicken').getStyle('backgroundPosition').split(' ')[0].toInt()/200;
			if( actFrame>index) $('chicken').setStyle( 'backgroundPosition', 200*(actFrame-1)+'px 0px');
			else if( actFrame<index) $('chicken').setStyle( 'backgroundPosition', 200*(actFrame+1)+'px 0px');
			if( actFrame!=index) ca.tweenTimeout = ca.animateTo.delay( ca.tweenDelay, this, index);
			// console.log( 'actFrame='+actFrame+' index='+index+' background-position='+$('chicken').getStyle('background-position'));
		}
	},
	
	clickHandler: function()
	{
		clearTimeout( ca.randTimeout);
		clearTimeout( ca.tweenTimeout);
		ca.rand();
	}
};
window.addEvent('load', function()
{
	$('chicken').addEvent( 'click', ca.clickHandler);
	ca.clickHandler.delay(3000);
});



// animate/activate the content
var coa =
{
	init: function()
	{
		if( $$('.orderform').length) coa.prepareOrder();
		if( $$('.mailform').length) coa.prepareMail();
	},
	
	prepareOrder: function()
	{
		$$('.step2')[0].setStyle('display','none').fade('hide');
		$$('.thankyou')[0].setStyle('display','none').fade('hide');
		$$('.bank')[0].setStyle('display','none').fade('hide');
		$$('.mode')[0].set('value','js');
		$$('.amount').each( function(num)
		{
			var correctionDelay = (function(){}).delay(0);
			num.addEvent( 'keyup', function(e)
			{
				clearTimeout(correctionDelay);
				correctionDelay = function()
				{
					num.set('value', num.get('value').toInt());
					if( num.get('value')=='NaN') num.set('value', 0);
				}.delay(1000);
			});
		});
		$$('.submit')[0].addEvent('click', function(e)
		{
			e.stop();
			if( $$('.step2').getStyle('display')=='none')
			{
				$$('.step1').setStyle('display','none');
				$$('.step2').setStyle('display','block').fade('in');
			}
			else 
			{
				console.log('now sending...');
				coa.sendOrder();
			}
		});
		function showBank()
		{
			var cb = $$('.bankCollection')[0];
			if( cb.checked) $$('.bank')[0].setStyle('display','block').fade('in');
			else $$('.bank')[0].setStyle('display','none').fade('hide');
		}
		$$('input[type=radio]').addEvent('change', function(e) { showBank.delay(300); });
		$$('input[type=radio]').addEvent('keypress', function(e) { showBank.delay(300); });
		$$('label').addEvent('click', function(e) { showBank.delay(300); });
	},
	
	validateOrder: function()
	{
		var name = $$('input[name=name]')[0].get('value');
		var street = $$('input[name=street]')[0].get('value');
		var town = $$('input[name=town]')[0].get('value');
		var email = $$('input[name=email]')[0].get('value');
		// var agb = $$('input[name=agb]')[0].get('checked');
		var pay = $$('input[name=payment]');
		if( !name) { alert('Bitte geben Sie Ihren Namen in das Formular ein!'); return false; }
		else if( !street) { alert('Bitte geben Sie Ihre Straße in das Formular ein!'); return false; }
		else if( !town) { alert('Bitte geben Sie Ihren Ort in das Formular ein!'); return false; }
		else if( !email) { alert('Bitte geben Sie Ihre eMailadresse in das Formular ein!'); return false; }
		else if( !email.test( /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/ )) { alert('Ihre eMailadresse schein fehlerhaft zu sein!'); return false; }
		else if( !pay[0].get('checked') && !pay[1].get('checked') && !pay[2].get('checked')) { alert('Bitte wählen Sie eine Zahlungsart!'); return false; }
		// else if( !agb) { alert('Bitte akzeptieren Sie unsere Liefer- und Zahlungsbedingungen!'); return false; }
		else return true;
	},
	
	sendOrder: function()
	{
		console.log('coa.sendOrder()');
		if( coa.validateOrder())
		{
			var mailRequest = new Request(
			{
				url: 'order.php',
				data: $$('.orderform')[0].toQueryString(),
				onFailure: function(error)
				{
					alert( 'Failure: Beim Senden der Bestellung ist ein Fehler aufgetreten! Bitte versuchen Sie es erneut. Oder senden Sie uns Ihre Bestellung per eMail an info@canisnatural.de.' );
				},
				onException: function(headerName, value) 
				{
					alert( 'Exception: Beim Senden der Bestellung ist ein Fehler aufgetreten! Bitte versuchen Sie es erneut. Oder senden Sie uns Ihre Bestellung per eMail an info@canisnatural.de.' );
				},
				onSuccess: function(responseText) 
				{
					console.log(responseText);
					var result = JSON.decode(responseText);
					if( result.sent=='OK' )
					{
						console.log( 'hat geklappt...');
					}
					else if( result.error ) alert( result.error );
					else alert( responseText );
				}
			}).send();
			$$('.orderform')[0].setStyle('display','none');
			$$('.thankyou')[0].setStyle('display','block').fade('in');
		}
	},
	
	prepareMail: function()
	{
		$$('.thankyou')[0].setStyle('display','none').fade('hide');
		$$('.mode')[0].set('value','js');
		$$('.submit')[0].addEvent('click', function(e)
		{
			e.stop();
			console.log('now sending...');
			coa.sendMail();
		});
	},
	
	validateMail: function()
	{
		var BODY = $$('textarea[name=BODY]')[0].get('value');
		var email = $$('input[name=email]')[0].get('value');
		if( !BODY) { alert('Bitte geben Sie eine Nachricht in das Formular ein!'); return false; }
		else if( !email) { alert('Bitte geben Sie Ihre eMailadresse in das Formular ein!'); return false; }
		else if( !email.test( /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/ )) { alert('Ihre eMailadresse schein fehlerhaft zu sein!'); return false; }
		else return true;
	},
	
	sendMail: function()
	{
		console.log('coa.sendMail()');
		if( coa.validateMail())
		{
			var mailRequest = new Request(
			{
				url: 'mail.php',
				data: $$('.mailform')[0].toQueryString(),
				onFailure: function(error)
				{
					alert( 'Failure: Beim Senden der Nachricht ist ein Fehler aufgetreten! Bitte versuchen Sie es erneut. Oder senden Sie uns Ihre Nachricht per eMail an info@canisnatural.de.' );
				},
				onException: function(headerName, value) 
				{
					alert( 'Failure: Beim Senden der Nachricht ist ein Fehler aufgetreten! Bitte versuchen Sie es erneut. Oder senden Sie uns Ihre Nachricht per eMail an info@canisnatural.de.' );
				},
				onSuccess: function(responseText) 
				{
					console.log(responseText);
					var result = JSON.decode(responseText);
					if( result.sent=='OK' )
					{
						console.log( 'hat geklappt...');
					}
					else if( result.error ) alert( result.error );
					else alert( responseText );
				}
			}).send();
			$$('.mailform')[0].setStyle('display','none');
			$$('.thankyou')[0].setStyle('display','block').fade('in');
		}
	}
}
window.addEvent('domready', function()
{
	coa.init();
});
window.addEvent('load', function()
{
	(function(){ $$('.scrollBox').fade('in'); }).delay(500);
});



// Internet Explorer 6 and 7 Fixes
if( Browser.ie && parseFloat(navigator.appVersion.split("MSIE")[1])<8)
{
	window.addEvent('domready', function()
	{
		$$('.navigation').removeClass('navigation').addClass('navIE');
		$$('#navBox li').each( function(num)
		{
			var over = false;
			if( num.getElements('ul')[0]) num.getElements('ul')[0].setStyle('display','none');
			num.addEvent('mouseover', function() 
			{
				over = true;
				num.setStyle('backgroundColor','#fff'); 
				num.getChildren()[0].setStyle('color','#000');
				if( num.getElements('ul')[0]) num.getElements('ul')[0].setStyle('display','block');
			});
			num.addEvent('mouseout', function() 
			{
				over = false;
				var tmp = function()
				{
					if( !over)
					{
						num.setStyle('backgroundColor',''); 
						num.getChildren()[0].setStyle('color','#fff');
						if( num.getElements('ul')[0]) num.getElements('ul')[0].setStyle('display','none');
					}
				}.delay(50);
			});
		});
	});
}











