(function (){
		$.sendQuote = {
			defaults: {
				input: {},
				email: {},
				textarea: {},
				load: 'incl/mail.php',
				setBtnId:'sndForm',
				btnCancelName: 'cancel',
				btnName : 'send',
				messageAfter: 'Thank you, bedankt!'
			}
		}
		$.fn.extend({
			sendQuote: function (config) {
				
				var config = $.extend({}, $.sendQuote.defaults, config);
				
				var input = config.input,
					email = config.email,
					work = config.work,
					textarea = config.textarea,
					btnName = config.btnName,
					btnCancelName = config.btnCancelName,
					load = config.load,
					messageAfter = config.messageAfter,
					setBtnId = config.setBtnId;

				return this.each(function (){
					var form = $(this);
					form.wrap('<div class="mQoute"></div>')
					.parent()
					.append('<div class="qHold"></div>')
					.parent().find('.qHold')
					.append('<div></div>');
					
					for (var n in input) {
						form.parent().find('.qHold div')
						.append('<label id="'+n+'_label">'+input[n]+'</label>')
						.append('<input name="'+n+'" id="'+input[n]+'" value=""/>');
					}
					for (var l in email) {
						form.parent().find('.qHold div')
						.append('<label id="'+l+'_label">'+email[l]+'</label>')
						.append('<input name="'+l+'" id="'+email[l]+'" value=""/>');
					}
					for (var k in textarea) {
						form.parent().find('.qHold div')
						.append('<label id="'+k+'_label">'+textarea[k]+'</label>')
						.append('<textarea rows="5" name="comment" id="'+textarea[k]+'"></textarea>');
					}
					form.parent().find('.qHold div')
					.append('<br/><button class="sendF" id='+setBtnId+'>'+btnName+'</button>')
					.append('<button class="canc">'+btnCancelName+'</button>')
					.parent().parent()
					.append('<h6 id="qMessage" style="display:none;">'+messageAfter+'</h6>');
					
					jQuery('.qHold').hide();
					form.click(function () {
						$(this).parent().children('.qHold').toggle('slow');
					});
					form.parent().find('.canc').click(function () {
						$(this).parents('.qHold').slideUp('slow');
					});
					
					form.parent().find('#'+setBtnId).click(function () {
							var thisForm = $(this).parents('.qHold');
							if (checkFields()) {
								thisForm.animate({ 
						        	opacity: 0.4
						     	 }, 500 );
						     	 var sendString  = '';
						     	 
						     	 for (var n in input) {
											sendString += n+'='+form.parent().find('#'+input[n]).val()+'&';
								};
								 for (var k in email) {
											sendString += k+'='+form.parent().find('#'+email[k]).val()+'&';
								};
								for (var l in textarea) {
											sendString += l+'='+form.parent().find('#'+textarea[l]).val()+'&';
								};
	
								$.ajax({
									  	type: "POST",
									  	url: load,
									  	data: sendString,
									 	success: function(msg){
									    	thisForm.hide('slow');
									    	thisForm.parent().parent().find('#qMessage').show('slow').fadeOut(2000);
									    		 for (var n in input) {
															form.parent().find('#'+input[n]).val('');
															form.parent().find('#'+input[n]).removeClass("goodField");
												};
												 for (var k in email) {
															form.parent().find('#'+email[k]).val('');
															form.parent().find('#'+email[k]).removeClass("goodField");
												};
												for (var l in textarea) {
															form.parent().find('#'+textarea[l]).val('');
												};
									    	thisForm.animate({ 
						      				  opacity: 1
						     				 }, 500 );
									  }
								});
							}
					});
					
					function checkFields () {
						var nField = 0;
						for (var n in input) {
							/*form.parent().find('#'+input[n]).blur(function (){
								checkFields();
							});
							form.parent().find('#'+input[n]).focus(function (){
								$(this).val('');
							});*/
							if (form.parent().find('#'+input[n]).val() == "" || form.parent().find('#'+input[n]).val() == '* verplicht/ *required') {
								form.parent().find('#'+input[n]).addClass('errorField');
								form.parent().find('#'+input[n]).val('* verplicht/ *required');
								nField++;
							}else{
								form.parent().find('#'+input[n]).addClass('goodField');
							}
						}
						for (var l in email) {
							/*form.parent().find('#'+email[l]).blur(function (){
								checkFields();
							});
							form.parent().find('#'+email[l]).focus(function (){
								$(this).val('');
							});*/
							if (!echeck(form.parent().find('#'+email[l]).val())) {
								form.parent().find('#'+email[l]).addClass('errorField');
								form.parent().find('#'+email[l]).val( '* verplicht/ *required');
								nField++;
							}else{
								form.parent().find('#'+email[l]).addClass('goodField');
							}
						}
						if (nField == 0) {
							return true;
						}else{
							return false;
						}
					}
					
					
					function echeck(str) {

						var at="@"
				    	var dot="."
				    	var lat=str.indexOf(at)
				    	var lstr=str.length
				    	var ldot=str.indexOf(dot)
				    	if (str.indexOf(at)==-1){
				    	   return false
				    	}
				
				    	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
				    	   return false
				    	}
				
				    	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
				    	    return false
				    	}
				
				    	 if (str.indexOf(at,(lat+1))!=-1){
				    	    return false
				    	 }
				
				    	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
				    	    return false
				    	 }
				
				    	 if (str.indexOf(dot,(lat+2))==-1){
				    	    return false
				    	 }
				    	
				    	 if (str.indexOf(" ")!=-1){
				    	    return false
				    	 }
				
				 		 return true	;			
				    }

					

				})
			}
		});
	
})(jQuery);
