/*
*
* mail kontakt@erikkothe.de
* Copyright 2010 Erik Kothe
* Version 0.0.1
*
*/
function validation(app){
	var result = true;
	
	if($('html').attr("lang")=="en"){
		return validation_en(app);	
	}
	
	if(app=='powermail'){
		$('.required').each(function(){
			var wert = $(this).val()
			$(this).removeClass('ek_form_error');
			$('.ek_form_'+$(this).attr('id')).remove();
			if(wert == ''){
				result = false;
				$(this).addClass('ek_form_error');
				$(this).after('<div class="ek_form_error_message ek_form_'+$(this).attr('id')+'">Bitte ausf&uuml;llen</div>');		
			}
		});
		$('.validate-email').each(function(){
			var wert = $(this).val()
			$(this).removeClass('ek_form_error');
			$('.ek_form_'+$(this).attr('id')).remove();			
			if(!isValidEmailAddress(wert)){
				result = false;
				$(this).addClass('ek_form_error');
				$(this).after('<div class="ek_form_error_message ek_form_'+$(this).attr('id')+'">Bitte korrekt E-Mail eintragen</div>');	
			}
		});
		var felder = new Array();
		var validate = false;
		
		$('.validate-one-required').each(function(){
			temp = ($(this).attr('id'));
			temp = temp.split("_");
			if(temp[0] == 'check'){
				temp = temp[1].split("_");
				temp = temp[0];				
			}else
				temp = temp[0];				
		
			if($.inArray(temp, felder)){
				felder.push(temp);
			}
			validate = true;
		});
		
		if(validate){
			$.each(felder,function(index, value){
				$('.ek_form_'+value).remove();
	
				var fehler = true;
				$('.powermail_'+value).each(function(){
					if($(this).is(':checked')) fehler = false;								
				});
				
				if(fehler){
					result = false;				
					$("#powermaildiv_"+value).after('<div class="ek_form_error_message ek_form_error_checkbox ek_form_'+value+'">Bitte eine Auswahl markieren</div>');	
				}
			});		
		}
	/*	$('.validate-one-required').each(function(){

			result[$(this).name] = true;
			$(this).removeClass('ek_form_error');
			$('.ek_form_'+$(this).attr('id')).remove();

			var wert = $(this).val()
			if(!$(this).attr('checked')){
				result = false;
				$(this).addClass('ek_form_error');
				$(this).after('<div class="ek_form_error_message ek_form_'+$(this).attr('id')+'">Bitte ausf&uuml;llen</div>');		
			}
		});	
*/
//			if( $("input:checkbox:checked").length > 0 ) ok = true;		
	}
	return result;	
}

function validation_en(app){
	var result = true;
	
	if(app=='powermail'){
		$('.required').each(function(){
			var wert = $(this).val()
			$(this).removeClass('ek_form_error');
			$('.ek_form_'+$(this).attr('id')).remove();
			if(wert == ''){
				result = false;
				$(this).addClass('ek_form_error');
				$(this).after('<div class="ek_form_error_message ek_form_'+$(this).attr('id')+'">Please fill in</div>');		
			}
		});
		$('.validate-email').each(function(){
			var wert = $(this).val()
			$(this).removeClass('ek_form_error');
			$('.ek_form_'+$(this).attr('id')).remove();			
			if(!isValidEmailAddress(wert)){
				result = false;
				$(this).addClass('ek_form_error');
				$(this).after('<div class="ek_form_error_message ek_form_'+$(this).attr('id')+'">Please enter your e-mail correctly</div>');	
			}
		});
		var felder = new Array();
		var validate = false;
		
		$('.validate-one-required').each(function(){
			temp = ($(this).attr('id'));
			temp = temp.split("_");
			if(temp[0] == 'check'){
				temp = temp[1].split("_");
				temp = temp[0];				
			}else
				temp = temp[0];				
		
			if($.inArray(temp, felder)){
				felder.push(temp);
			}
			validate = true;
		});
		
		if(validate){
			$.each(felder,function(index, value){
				$('.ek_form_'+value).remove();
	
				var fehler = true;
				$('.powermail_'+value).each(function(){
					if($(this).is(':checked')) fehler = false;								
				});
				
				if(fehler){
					result = false;				
					$("#powermaildiv_"+value).after('<div class="ek_form_error_message ek_form_error_checkbox ek_form_'+value+'">Please select</div>');	
				}
			});		
		}
	/*	$('.validate-one-required').each(function(){

			result[$(this).name] = true;
			$(this).removeClass('ek_form_error');
			$('.ek_form_'+$(this).attr('id')).remove();

			var wert = $(this).val()
			if(!$(this).attr('checked')){
				result = false;
				$(this).addClass('ek_form_error');
				$(this).after('<div class="ek_form_error_message ek_form_'+$(this).attr('id')+'">Bitte ausf&uuml;llen</div>');		
			}
		});	
*/
//			if( $("input:checkbox:checked").length > 0 ) ok = true;		
	}
	return result;	
}

function isValidEmailAddress(emailAddress) {
	var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	return pattern.test(emailAddress);
}
