var alerttext = "";
var fieldsFilled = true;

jQuery(document).ready(function() {
	overlayformLinks();
	checkFields();
	styleSelect();
	
	// Ausgabe der Meldung
	jQuery('form.contactforms').submit( function() {
		if(!fieldsFilled) {
			if (alerttext.length > 0) alert(alerttext);
			return false;
		}
	});
	
});

// Verlinkung
function overlayformLinks() {
	jQuery('.open-OF').click(function() { 
		openOverlayform();
	});
	jQuery('.close-OF').click(function() {
		jQuery('.overlayform').fadeOut(500);
		jQuery('#overlay').fadeOut(1000);
	});
};

// Textfeld öffnen
function openOverlayform() {
	jQuery('#overlay').fadeIn(500);
	jQuery('.overlayform').fadeIn(1000);
	jQuery.scrollTo('#close',500);
}

// Pflichtferlder einfaerben und Button sperren
function checkFields () {
	jQuery('.button').hover( function() {
		
		fieldsFilled = true;
		alerttext = "";
		var url_match = true;
		var email_match = true;
		var plz_match = true;
		
		jQuery('.req').each( function() {
			
			// ##### Gueltige URL pruefen
			if( jQuery(this).hasClass('url') ) {
				var checkUrl = jQuery(this).val();
				url_match = checkUrl.match(/http\:\/\/www\.(.*?)\.([a-z]{2,})/);
				if(!url_match) {
					fieldsFilled = false;
					alerttext += "Bitte geben sie eine gültige URL an.\n";
					highlightField(jQuery(this));
				}
			}
			
			// ##### Gueltige Email Adresse pruefen
			else if( jQuery(this).hasClass('email') ) {
				var emailadress = jQuery(this).val();
				email_match = isValidEmailAddress(emailadress);
				if(!email_match) {
					fieldsFilled = false;
					alerttext += "Bitte geben sie eine gültige Email-Adresse ein.\n";
					highlightField(jQuery(this));
				}
			}
			
			// ##### Gueltige PLZ pruefen
			else if( jQuery(this).hasClass('plz') ) {
				var formPlz = jQuery(this).val();
				if (formPlz.length > 5 || formPlz.length < 3 || isNaN(parseInt(formPlz)) ) plz_match = false;
				if(!plz_match) {
					fieldsFilled = false;
					alerttext += "Bitte geben sie eine gültige Postleitzahl ein.\n";
					highlightField(jQuery(this));
				}
			}
			
			// wenn eines der Felder nicht erfuellt wurde:
			else if ( jQuery(this).val() == "" || jQuery(this).val() == "bitte&nbsp;w&auml;hlen" || jQuery(this).val() == "bitte wählen") {
				fieldsFilled = false;
				alerttext += "Das Feld ";
				alerttext += jQuery(this).prev("label").text();
				alerttext += " ist ein Pflichtfeld.\n";
				highlightField(jQuery(this));
			}
			
		});
				
	}, function() {
		jQuery('.req').css({'background-color':'#FFFFFF'});
		// jQuery('.button').removeAttr('disabled');
	});
	
}
	

// Select-Liste
function styleSelect() {
	jQuery('.selectfield').click( function () {
		jQuery(this).next('ul.select').fadeIn();
	});
	jQuery('ul.select').mouseleave( function () {
		jQuery(this).fadeOut();
	});
	jQuery('ul.select li').click( function() {
		var selectedValue = jQuery(this).html();
		jQuery(this).parent('ul').prev().val(selectedValue);
		jQuery('ul.select').fadeOut();
	});
}


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);
}

function highlightField(field) {
	field.css({'background-color':'#ff4848'});
	// jQuery('.button').attr('disabled','disabled');
}
