/******************** REGEX ********************/
function exp(type){

	switch(type){
	
		case "name":		var expression = /^[a-z]{2,}[a-z-\s]?[a-z]{1,}$/i;
							break;
		
		case "postal":		var expression = /^[0-9]{5}/i;
							break;
							
		case "number":		var expression = /\^d{1,}$/;
							break;
							
		case "street":		var expression = /^[a-zßäöü]{1,}[a-z-\sßäöü]?[a-zßäöüü]{1,}$/i;
							break;
							
		case "strnumber":	var expression = /^[0-9][0-9a-f]{1,4}/i;
							break;
							
		case "city":		var expression = /^[a-z\D]{2,}[-\s]?[a-z]+$/i;
							break;
							
		case "select":		var expression = /[1-9]{1}/i;
							break;
							
		case "prefix":		var expression = /^\d{3,5}$/i;
							break;
							
		case "phone":		var expression = /^\d{2,}[-\s]?\d{1,}[-\s]?\d{1,}$/i;	
							break;
							
		case "web":			var expression = /\b^((http:\/\/www\.)|(www\.)|(http:\/\/))?([\da-z]{2,}\.)?[\da-z-]{2,}\.[a-z]{2,4}\b/i;
							break;
		
		case "mail":		var expression = /^[_a-z0-9\-]+(\.[_a-z0-9\-]+)*@([a-z0-9]{2,}(-[a-z0-9]+)*\.)+([a-z]{2,4})$/i;
							break;
							
		case "text":		//var expression = /^[^\s][\w[:space:][:punct:]]+/i;
							var expression = /^[^\s][\w]+/i;
							break;
							
		default:			var expression = true;
	}
	
	if(expression){
		return expression;
	}else{
		return false;
	}
}


/******************** CHECK FIELD ********************/
function check(field, type){

	var expression = exp(type);
	
	if(field == "cause"){
	
		var cause = $('cause');
		var causeValue = cause.getValue();
		
		var option_check = false;
	
		
		switch(causeValue){
		
			case "0":	var expression = false;
						break;
			
			/* Google Service */
			case "1":	var options = $$('#cause_options .check');
						var options_length = options.length;
						
						for(var t = 0; t < options_length; t++){
						
							if(options[t].getValue() != null){
								expression = false;
							}
						}	
						break;
			
			/* Publisher Anfrage */
			case "2":	var options = $$('#cause_options .pub');
						var options_length = options.length;
						
						//alert("Length: "+options_length);
						
						for(var t = 0; t < options_length; t++){
							
							if(options[t].getValue().length > 1){
								expression = false;
							}
						}	
						//alert("Expression:" + expression);
						break;
			}					
	}	
					
	
	if(expression != false){
	
		// FIELD_VALUE
		var value = $(field).getValue();
						
		if((value.length <= 2) && (field != "Xemail") && (field != "salutation")){
			
			error = true;
			
			if((field == "phoneprefix") || (field == "phonenumber")){
			
				error_id = "error_phone";
			}else{
				error_id = "error_" + field;
			}
				
			$(error_id).update('<img src="/_resource/images/error.png" width="21" height="21" border="0"/><p>Fehler</p>');
			
			$(field).addClassName("error");	
			return error;
		}else{
		
			if(!expression.match(value)){
			
				error = true;
				
				error_id = "error_" + field;	
				$(error_id).update('<img src="/_resource/images/error.png" width="21" height="21" border="0"/><p>Fehler</p>');
				
				if((field == "phoneprefix") || (field == "phonenumber")){
			
					error_id = "error_phone";
				}else{
					error_id = "error_" + field;
				}
				
				$(field).addClassName("error");	
				return error;
			}else{
				error = false;
				$(field).removeClassName("error");
				
				if((field == "phoneprefix") || (field == "phonenumber")){
			
					error_id = "error_phone";
				}else{
					error_id = "error_" + field;
				}
					
				$(error_id).update('<img src="/_resource/images/ok.png" width="21" height="21" border="0"/><p>OK</p>')
				
				return error;
			}		
		} 
	}
}

/******************** SET FIELDNAMES TO CHECK ********************/
function contactForm(){

	var checkFields = new Array();
	
	// new Array ("Field-ID", "checktype")
	checkFields.push(new Array('salutation','select'));
	checkFields.push(new Array('Xlastname','name')); 
	checkFields.push(new Array('Xfirstname','name'));
	checkFields.push(new Array('Xemail', 'mail'));
	checkFields.push(new Array('phoneprefix','prefix'));
	checkFields.push(new Array('phonenumber','phone'));
	checkFields.push(new Array('website','web'));
	checkFields.push(new Array('cause','checkbox'));
	checkFields.push(new Array('cause','pub'));
	
	return checkFields;
}



/******************** CHECK FORM & SEND ********************/
function checkForm(formName, fields){

	var error = false;
	var fieldError = false;
	var fieldName = "";
	var fieldType = "";

	for(var i = 0; i < fields.length; i++){
	
		fieldName = fields[i][0];
		fieldType = fields[i][1];
		
		fieldError = check(fieldName, fieldType);
		
		if(fieldError == true){
			error = true;
		}		
	}
	
	if(error == true){
		return false;
	}else{
		//formName.submit();
		return true;
	}

}

/******************** ADD CONTACT OPTIONS ********************/

function addContactOptions(){

	var delete_error = $('error_cause').update("");
	$('cause').removeClassName('error');
	
	var cause = $('cause').getValue();
	
	
	// INSERT GOOGLE SERVICE
	if(cause == 1){
		
		if($('cause_options')){
			$('cause_options').remove(); // Removes #cause_options if it exists to clear content
		}
		
		var content = 
						"<span>Google Services<b>*</b></span>"
						
						+"<ul>"
							+"<li>"
								+"<label for='google_entry'>"
									+"<input type='checkbox' class='check' value='google_entry' id='google_entry' name='google_service[]' />Suchmaschineneintrag"
								+"</label>"
							+"</li>"
							
							+"<li>"
								+"<label for='google_sitemap'>"
									+"<input type='checkbox' class='check' value='google_sitemap' id='google_sitemap' name='google_service[]' />Sitemap"
								+"</label>"
							+"</li>"
							
							+"<li>"
								+"<label for='google_analytics'>"
									+"<input type='checkbox' class='check' value='google_analytics' id='google_analytics' name='google_service[]' />Analytics"
								+"</label>"
							+"</li>"
							
							+"<li>"
								+"<label for='google_maps'>"
									+"<input type='checkbox' class='check' value='google_maps' id='google_maps' name='google_service[]' />Maps"
								+"</label>"
							+"</li>"
							
							+"<li>"
								+"<label for='google_adwords'>"
									+"<input type='checkbox' class='check' value='google_adwords' id='google_adwords' name='google_service[]' />Adwords"
								+"</label>"
							+"</li>"
						+"</ul>";
	}
	
	
	// INSERT PUBLISHER INPUTS
	if(cause == 2){
	
		if($('cause_options')){
			$('cause_options').remove(); // Removes #cause_options if it exists to clear content
		}
		
		var content = 
		
						"<label for='publisher_pi'>PIs / Monat <b>*</b></label>"
						+"<input type='text' class='text pub' name='publisher_pi' id='publisher_pi' />"
					
				
						+"<label for='publisher_uu'>Unique Users / Monat <b>*</b></label>"
						+"<input type='text' class='text pub' name='publisher_uu' id='publisher_uu' />"
						
				
						+"<label for='publisher_vi'>Visits / Monat <b>*</b></label>"
						+"<input type='text' class='text pub' name='publisher_vi' id='publisher_vi' />";
	}
	
	
	
	if(cause == 1 || cause == 2){
		var options = new Element('div',{id:'cause_options'});
		options.update(content);
		
		Element.insert( $('error_cause'),{'after':options} );
		
		$('cause_options').fade({duration: 1.0, from: 0.0, to: 1.0});
		
		
		$$('#kontakt')[0].setStyle({'height':'710px'});
		$$('#kontakt .cbox_topleft')[0].setStyle({'height':'700px'});
		$$('#kontakt .cbox_topright')[0].setStyle({'height':'700px'});
		$$('#kontakt .cbox_content')[0].setStyle({'height':'690px'});	
		
		
	}else{
	
		if($('cause_options')){
			$('cause_options').fade({duration: 1.0, from: 1.0, to: 0.0});
			//$('cause_options').remove(); // Removes #cause_options if it exists to clear content
			
			$$('#kontakt')[0].setStyle({'height':'610px'});
			$$('#kontakt .cbox_topleft')[0].setStyle({'height':'600px'});
			$$('#kontakt .cbox_topright')[0].setStyle({'height':'600px'});
			$$('#kontakt .cbox_content')[0].setStyle({'height':'590px'});
		}
	
	}
	

}
