

jQuery(function($){
        $.datepicker.regional['de'] = {clearText: 'löschen', clearStatus: 'aktuelles Datum löschen',
                closeText: 'schließen', closeStatus: 'ohne Änderungen schließen',
                prevText: '&#x3c;zurück', prevStatus: 'letzten Monat zeigen',
                nextText: 'Vor&#x3e;', nextStatus: 'nächsten Monat zeigen',
                currentText: 'heute', currentStatus: '',
                monthNames: ['Januar','Februar','März','April','Mai','Juni',
                'Juli','August','September','Oktober','November','Dezember'],
                monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
                'Jul','Aug','Sep','Okt','Nov','Dez'],
                monthStatus: 'anderen Monat anzeigen', yearStatus: 'anderes Jahr anzeigen',
                weekHeader: 'Wo', weekStatus: 'Woche des Monats',
                dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
                dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
                dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
                dayStatus: 'Setze DD als ersten Wochentag', dateStatus: 'W√É¬§hle D, M d',
                dateFormat: 'dd.mm.yy', firstDay: 1, 
                initStatus: 'Wähle ein Datum', isRTL: false};
        $.datepicker.setDefaults($.datepicker.regional['de']);

});

function useDatePicker()
{
	$( "#datepicker" ).datepicker({
			showOn: "button",
			buttonImage: "css/ui-lightness/images/calendar.gif",
			buttonImageOnly: true
		});


}


 function labelText(labelName)
{
	document.getElementById("labelText").innerHTML = labelName;
}

function contentOutput() 
{
   if (xhr.readyState == 4) 
   {
     var rueckgabe = xhr.responseText;
     document.getElementById("content").innerHTML = rueckgabe;
     
     useDatePicker();
   }
   
   initListener();
}

 function request(file) {
      xhr = http();
      xhr.open("GET", file+".php", true);
      xhr.onreadystatechange = contentOutput;
      xhr.send(null);
    };

function checkMail()
{
	var ok = true;
	
	if (document.getElementById('fullName').value == "")
	{
		ok = false;
		document.getElementById('fullName').style.backgroundColor = "#ff0000";
	}
	else{
		document.getElementById('fullName').style.backgroundColor = "#fbdc07";
	}
	
	if (document.getElementById('email').value == "" || document.getElementById('email').value.indexOf("@") == -1 || document.getElementById('email').value.indexOf(".") == -1)
	{
		ok = false;
		document.getElementById('email').style.backgroundColor = "#ff0000";
	}
	else{
		document.getElementById('email').style.backgroundColor = "#fbdc07";
	}
	
	if (document.getElementById('betreff').value == "")
	{
		ok = false;
		document.getElementById('betreff').style.backgroundColor = "#ff0000";
	}
	else{
		document.getElementById('betreff').style.backgroundColor = "#fbdc07";
	}
	
	if (document.getElementById('message').value == "")
	{
		ok = false;
		document.getElementById('message').style.backgroundColor = "#ff0000";
	}
	else{
		document.getElementById('message').style.backgroundColor = "#fbdc07";
	}
	
	if (ok)
	{
		postRequest();
	}
	else
	{
		document.getElementById("mailReturn").innerHTML = "Bitte rot markierte Felder ausfüllen."	
	}
}

function postRequest()
{
	xhr = http();
	xhr.open('POST', 'mailForm.php', true);
	xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xhr.onreadystatechange = mailOutput;
	var fullName = document.getElementById('fullName').value;
	var firma = document.getElementById('firma').value;
	var fon= document.getElementById('fon').value;
	var fax = document.getElementById('fax').value;
	var email = document.getElementById('email').value;
	var betreff = document.getElementById('betreff').value;
	var message = document.getElementById('message').value;
	xhr.send('fullName='+fullName+'&firma='+firma+'&fon='+fon+'&fax='+fax+'&email='+email+'&betreff='+betreff+'&message='+message); 
}

function mailOutput() 
{
   if (xhr.readyState == 4) 
   {
     var rueckgabe = xhr.responseText;
     document.getElementById("mailReturn").innerHTML = rueckgabe;
   }
}


//gruppenbuchung
var PS9 = 0;
var PS18 = 0;
var gravur = 0;
var bookedKarts = 0;
var buffet = 0;
var numPerTotal = 10;

function groupSum()
{
	var numPer9PS = $('#personen9PS').val();
	var numPer18PS = $('#personen18PS').val();
	numPerTotal = parseInt(numPer9PS) + parseInt(numPer18PS);
	
	var sum = (PS9 * numPer9PS) + (PS18 * numPer18PS) + gravur + (numPerTotal * buffet);
	
	$('#sum').text(formatCurrency(sum)+" €");
	
	var mwst = sum - (sum/1.19);
	$('#tax').text(formatCurrency(mwst)+" €");
}


function formatCurrency(num) {
	num = isNaN(num) || num === '' || num === null ? 0.00 : num;
	return parseFloat(num).toFixed(2);
}


//listener
function initListener()
{
	$('#pokale').change(function()
	{
		gravur = ($('#pokale').attr('checked')) ? 69 : 0;
		groupSum();
		
	});
	
	$('#personen9PS').keyup(function()
	{
		if (!isValidNumber($('#personen9PS').val()))
		{
			
		}
		else
		{
			groupSum();
		}
	});
	
	$('#personen9PS').change(function()
	{
		if ($('#personen9PS').val() == "")
		{
		 $('#personen9PS').val('0');	
		}
	});
	
	$('#personen18PS').keyup(function()
	{
		if (!isValidNumber($('#personen18PS').val()))
		{
			
		}
		else
		{
			groupSum();
		}
	});
	
	$('#personen18PS').change(function()
	{
		if ($('#personen18PS').val() == "")
		{
		 $('#personen18PS').val('0');	
		}
	});
	
		
	$('#30min270').change(function()
	{
		if ($('#30min270').attr('checked'))
		{
			$('#60min270').attr('checked', false);
			PS9 = 39; 
		}
		else
		{
			PS9 = 0;
		}
		
		groupSum();
		
	});
	
	$('#60min270').change(function()
	{
		if ($('#60min270').attr('checked'))
		{
			$('#30min270').attr('checked', false);
			PS9 = 59;
		}
		else
		{
			PS9 = 0;
		}
		
		groupSum();
		
	});
	
	$('#30min390').change(function()
	{
		if ($('#30min390').attr('checked'))
		{
			$('#60min390').attr('checked', false);
			PS18 = 52;
		}
		else
		{
			PS18 = 0;
		}
		
		groupSum();
		
	});
	
	$('#60min390').change(function()
	{
		if ($('#60min390').attr('checked'))
		{
			$('#30min390').attr('checked', false);
			PS18 = 89; 
		}
		else
		{
			PS18 = 0;
		}
		
		groupSum();
		
	});
	
	
	//buffet
	$(".buffetbooking:radio").bind('click',function(){
		buffet = parseFloat($(this).val());
		
		if (buffet == 27 && numPerTotal < 30)
		{
			alert("\nDieses Buffet gibt es erst ab 30 Personen.");
			$('#keinBuffet').attr('checked',true);
		}
		else
		{
			groupSum();
		}
	});
	
	//kart checkboxen allgemein
	$('.kartClick:checkbox').change(function()
	{
		if ($(".kartClick:checked").length > 0)
		{
			$('#numOfPersons').show();
			$('#pokalCell').show();
			$('#buffetbooking').show();
		}
		else
		{
			$('#numOfPersons').hide();
			$('#pokalCell').hide();
			$('#pokale').attr('checked',false);
			$('#gravur').hide();
			gravur = 0;
			$('#buffetbooking').hide();
			groupSum();
		}
	});
}

//check für die gruppenbuchung
var regularColor = "#ffffff";
var warningColor = "#ff0000";

function checkGruppenFormular()
{
	var isOk = true;
	
	//first check for empty fields
	$('.personals:input').each(function(index) 
	{
	   if ($(this).val() == "")
	   {
			$(this).css({backgroundColor: warningColor, color: '#ffffff'});
			isOk = false;
		}
		else
		{
			$(this).css({backgroundColor: regularColor, color: '#000000'});
			isOk = true;
		}
   
  	});
  	
  	if (!isValidEmailAddress($('#email').val()))
  	{
  		
			$('#email').css({backgroundColor: warningColor, color: '#ffffff'});
			isOk = false;
  	}
  	else
  	{
  			$('#email').css({backgroundColor: regularColor, color: '#000000'});
			isOk = true;
  	}
	
	
	if (isOk)
	{
		if ($('#agbCheck').attr('checked') == false)
	  	{
	  		alert ("\nSie müssen die AGBs akzeptieren.");
	  		return;
	  	}
	  	
		if (numPerTotal < 10)
		{
			alert ("Es müssen mindestens 10 Personen teilnehmen.");
			return;
		}
		
		if ($(".kartClick:checked").length == 0)
		{
			alert ("Sie haben keinen Kart Typ ausgewählt");
			return;
		}
	
		$('#groupSendReturn').text('');
		confirmRequest();
	}
	else
	{
		$('#groupSendReturn').text('Bitte alle rot markierten Felder korrekt ausfüllen.');
	}
}

function confirmRequest()
{
	var fullName = $('#fullName').val();
	var contactPerson = $('#contactPerson').val();
	var street = $('#street').val();
	var zip = $('#zip').val();
	var fon = $('#fon').val();
	var email = $('#email').val();
	var dateField = $('#datepicker').val();
	var std = $("select[name='std'] option:selected").val();
	var min = $("select[name='min'] option:selected").val();
	
	var PS9 = "";
	var PS18 = "";
	
	var pokal = "";
	
	var buffet = "";
	
	var bemerkung = $('#bemerkungText').val();
	
	var sum = $('#sum').text();
	var tax = $('#tax').text();
	
	// Kartbestellungen
	$('.kartClick:checked').each(function(index) 
	{
		var str = $(this).val();
		if(str.indexOf('9') != -1)
		{
			PS9 = str + " (" + $('#personen9PS').val() + " Personen)";
		}
		
		if(str.indexOf('18') != -1)
		{
			PS18 = str + " (" + $('#personen18PS').val() + " Personen)";
		}
	});
	
	//Pokal
	if ($('#pokale:checked'))
	{
		pokal = $('#gravurText').val();	
	}
	
	//Buffet
	buffet = $(".buffetbooking:checked").parent().text();
	
	var confString = '<p>'+
						'<strong>Name / Firma: </strong>'+fullName+
						'<br><strong>Ansprechpartner: </strong>'+contactPerson+
						'<br><strong>Strasse / Nr.: </strong>'+street+
						'<br><strong>PLZ / Ort: </strong>'+zip+
						'<br><strong>Ihre Telefonnummer: </strong>'+fon+
						'<br><strong>Ihre E-Mail Adresse: </strong>'+email+
						'<br><strong>Datum der Veranstaltung: </strong>'+dateField+
						'<br><strong>Uhrzeit: </strong>'+std+' : '+min+
						'<br>----------------------------------------------------------------------------------------------------'+
						'<br><strong>Kart:</strong>';
						
						if (PS9 != "")
						{
							confString += '<br>'+PS9;
						}
						if (PS18 != "")
						{
							confString += '<br>'+PS18;
						}
						if (pokal != "")
						{
							confString += '<br>'+pokal;
						}
						if (buffet != "")
						{
							confString += '<br>----------------------------------------------------------------------------------------------------'+
							'<br><strong>Buffet:</strong>'+
							'<br>'+buffet;
						}
						
						if (bemerkung != "")
						{
							confString += '<br>----------------------------------------------------------------------------------------------------'+
							'<br><strong>Bemerkung:</strong>'+
							'<br>'+bemerkung;
						}
						
						
						confString += '<br>----------------------------------------------------------------------------------------------------'+
						'<br><strong>Gesamtpreis: </strong>' + sum +
						'<br><strong>Darin enthaltene MwSt: </strong>' + tax;
						confString += '</p>';
						
	
	//string an dialog hängen					
	$('#dialog_confirm').append(confString);
	
	//dialog öffnen und bei absenden daten übermitteln
	$( '#dialog_confirm' ).dialog({ 
		resizable: false, 
		modal: true, 
		width: 500, 
		buttons: {
				"Bestellung absenden": function() 
				{
					$.ajax({
			        type: "POST",
					url: "gruppenbuchung_mail.php",
					dataType: "text",
					data: "&text="+confString+
					"&email="+email+
					"&name="+fullName,
					success: function(data) {
				 	
						if(data == "isOk")
			     		{
			     			$( '#dialog_positive' ).dialog({ resizable: false, modal: true});
							resetFields();
			     			
			     		}
			     		else
			     		{
			     			$('#groupSendReturn').text(data);
			     		}
					}
					}); //end request
				}//end absenden method
			},
		close: function(event, ui) {
			$('#dialog_confirm').empty();
			 }
	 });
}

function resetFields()
{
	$('input').val('');
	$('textarea').val('');
	$('#groupSendReturn').text('');
					
	$('#dialog_confirm').dialog('close');
	$('#dialog_confirm').empty();
						
	$("input:checked").attr('checked',false);
	$('#numOfPersons').hide();
	$('#pokalCell').hide();
	$('#gravur').hide();
	$('#buffetbooking').hide();
	$('#keinBuffet').attr('checked',true);
	
	$('#personen9PS').val('10');
	$('#personen18PS').val('0');
	
	$('#sum').text('0,00 €');
	$('#tax').text('0,00 €');
}

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 isValidNumber(numberField)
{
var pattern = new RegExp( /^\d+$(\.\d+)?/g);
return pattern.test(numberField);
}

