/**
 * @author Marcel Fiedrich / fiedrich@bergisch-media.de / Bergisch-Media - it solutions
 */


function checkContactForm() {
	
	var contactForm = $('contactForm');
	if ($chk(contactForm)) {
		var submitButton = $('inputSubmit');
		var seminarCheckbox = $('seminarCheckbox');
		var labelEls = contactForm.getElements('label');
		
		labelEls.each(function(element, index){
			var labelFor = element.getProperty('for');
			if(labelFor=='inputZipcode') {
				var zipCodeEl = element;
				zipCodeEl.set('text', 'PLZ, Ort*')
			}
			
		});
		
		
		
		function emptySeminar() {
			$('seminarOptions').empty()
			$('seminarOptions').setStyle('display', 'none');
		}
		
		function requiredFields(e){
			var inputFields = contactForm.getElements('input');
			inputFields.each(function(element, index){
				if (element.hasClass('required')) {
					var elementName = element.getProperty('name');
					var elementValue = element.getProperty('value');
					
					var isRequired = new Fx.Morph(element, {
						duration: 500,
						transition: Fx.Transitions.Quad.easeInOut,
						wait: false
					})
					if (elementValue == '') {
						isRequired.start({
							'background-color': '#ee7b0a'
						});
						e.stop();
					} else if(elementName == 'email' && elementValue.indexOf('@') == -1) {
						isRequired.start({
							'background-color': '#ee7b0a'
						});
						e.stop();
					} else {
						isRequired.start({
							'background-color': '#ecebe7'
						});
					}
				}
			});
		}
		
		if (navigator.appName == "Microsoft Internet Explorer") {
			seminarCheckbox.addEvent('click', function(){
				if (seminarCheckbox.checked == true) {
					getSeminar();
				}
				else {
					emptySeminar();
				}
			});
		}
		else {
			seminarCheckbox.addEvent('change', function(){
				if (seminarCheckbox.checked == true) {
					getSeminar();
				}
				else {
					emptySeminar();
				}
			});
		}
		submitButton.addEvent('click', function(e){
			e = new Event(e);
			requiredFields(e);
		});
		
	}
	
	
};
function getSeminar() {
	var seminarLoader = new Element('img', {
		'src': '/fileadmin/img/seminarLoader.gif'
	});
	var seminarBreak = new Element('br');
	var seminarInfoLnk = new Element('a', {
		'href': 'http://www.dirkschmidt.com/fileadmin/dataStorage/pdf/seminare/0910_Seminar_Dirk Schmidt_Gewonnen wird_im_Kopf.pdf',
		'target':'_blank',
		'text': '>> Mehr Informationen zum Seminar (Download PDF)',
		'styles':{
			'display': 'block',
			'text-align':'left',
			'padding-bottom':'9px'
		}
	});
	var seminarSelect = new Element('select', {
		'name': 'seminar',
		'id': 'seminarSelect',
		'styles': {
			'width': '100%'
		}
	});
	var personenLabel = new Element('label', {
		'text': 'Personen*',
		'for': 'inputPersons'
	});
	var personenInput = new Element('input', {
		'name': 'persons',
		'id': 'personsInput',
		'type': 'text',
		'class': 'required'
	});
	
	var seminarOption;
	var xmlRequest = new Request.JSON({
		'url': '/index.php?type=187',
		onRequest: function() {
			$('seminarOptions').setStyle('display', 'block');
			$('seminarOptions').grab(seminarLoader);
		},
		onComplete: function(jsonObjs){
			var seminarAr = jsonObjs.seminare;
			var seminarNA = true;
			seminarAr.each(function(element, index) {
				if (element == '') {
					seminarNA = true;
				} else {
					seminarNA = false;
					var seminarInfo = element;
					seminarOption = new Element('option', {
						'text': seminarInfo
					});
					seminarSelect.grab(seminarOption);
				}
			});
			if(seminarNA == true) {
				var seminarEmailInfo = new Element('span', {
					'text':'Aktuelle Seminartermine bekommen Sie gerne auf Anfrage per E-Mail!',
					'styles':{
						'font-size': '11px'
					}
				})
				$('seminarOptions').empty();
				$('seminarOptions').grab(seminarEmailInfo);
			} else {
				$('seminarOptions').empty();
				$('seminarOptions').grab(seminarBreak);
				$('seminarOptions').grab(seminarInfoLnk);
				$('seminarOptions').grab(seminarSelect);
				$('seminarOptions').grab(personenLabel);
				$('seminarOptions').grab(personenInput);
			}
		}
	}).send();
}
window.addEvent('domready',function(){
	
	checkContactForm();
	
});