window.addEvent('domready',function(){
	
	//Zeigt den Ladespinner an
	function showLoadingIndicator(){
		// console.log('test');
		var width=window.getWidth();
		var height=window.getHeight()+15;
		var scrolltop=window.getScrollTop();
		$('ajax_loader').setStyle('width',width);
		$('ajax_loader').setStyle('height',height);
		$('ajax_loader').setStyle('top',scrolltop);
		$('ajax_loader').setStyle('opacity',0.7);
		$('contact_loader').setStyle('margin-top',height/2);
		$('ajax_loader').setStyle('display','block');
	}	
	
	//Blendet den Ladespinner aus
	function hideLoadingIndicator(){
		$('ajax_loader').setStyle('display','none');
	}
	

	//Effekt für die Nachrichtenbox
	var fx_error_log=new Fx.Styles('error_log',{duration:500,transition:Fx.Transitions.Cubic.easeOut,wait:false});
	
	
	//Blendet die Nachrichtenbox ein
	function showErrorLog(height){
		// console.log('show error log',height);
		fx_error_log.start({'height':height});
	}
	
	//Blendet die Nachrichtenbox aus
	function hideErrorLog(){
		fx_error_log.start({'height':0});
	}
	
	//Zeigt Nachrichtenbox mit Nachricht	
	function showMessage(message){
		$('error_log').setHTML(message);
		showErrorLog(30);
	}
	

	//Array aller Felder im Kontaktformular
	var fields=new Array('company','name','prename','street','plz','location','country','fone','fax','mail','message');

	
	//Entfernt Fehlermarkierung und -beschriftung
	function remove_errors(){
		fields.each(function(item){
			field=$('ip_'+item);
			
				field.setProperty('title','');
				field.setStyle('background-color','#fff');
			
		});
	}

	//Leert die Eingabefelder des Kontaktformulars
	function clear_fields(){
		fields.each(function(item){
			field=$('ip_'+item);
			field.value='';
		});
	}
	
	//Validierungsfunktion, ausgelöst von 'submitForm()'
	function check_fields(response_string){
		hideLoadingIndicator();
		var errors = Json.evaluate(response_string);
		// console.log(errors.errors);
		

		
		if(errors.valid==true){
			remove_errors();
			clear_fields();
			showMessage('Ihre Nachricht wurde abschickt. <br/>Vielen Dank für Ihr Interesse.',100);
		}else{
			errors.errors.each(function(item){
					if(item.field!='general'){
						// console.log(item.field)
						field=$('ip_'+item.field);
						field.setStyle('background-color','#FFB2B2');
						field.setProperty('title',item.text);
					}else{
						showMessage(item.text,100);
					}
			});
				
			
		}
	}

	//Schickt Ajax Query los
	function submitForm(){
			remove_errors();
			hideErrorLog();
			showLoadingIndicator();
			var myAjax = new Ajax('contact.php', {method: 'post', data:$('frm_contact_form'), onSuccess:function(response){
				check_fields(response);
			}}).request();	
	}
	
	
	$('ip_submit').addEvent('click',function(){
		submitForm();
	});
	
	
	
	$('frm_contact_form').addEvent('submit',function(e){
		var e=new Event();
		e.stop();
		submitForm();
	});
		
	
	
	
});
