document.createElement('header');
document.createElement('nav');
document.createElement('footer');
document.createElement('article');
document.createElement('section');
document.createElement('aside');

var state = "fresh";
var textNoInput = "Wir erwarten ja keinen Roman, aber ...";
var textNoContact = "Kein Telefon, keine Mail-Adresse, ...?";
var textNoContactLink = "Egal, abschicken!";
var isiPad = navigator.userAgent.match(/iPad/i) !== null;

function timeStamp() {
	var now = new Date();
	function addZero(value) {
		if(value<10) { value = "0"+value; }
		return value;
	}
	var time = addZero(now.getHours())+":"+addZero(now.getMinutes())+":"+addZero(now.getSeconds());
	return time;
}


$(document).ready(function(){

	$(document).ready(function(){
		$('.gallery .controls a').click(function(e){
			var gallery = $(this).closest('.gallery'),
				current = gallery.attr('data-index'),
				max = gallery.attr('data-max'),
				sledge = gallery.find('.slides');
			switch($(this).attr('data-action')){
				case('prev'):
					if(current > 0) {
						gallery.attr('data-index', parseFloat(current)-1);
					}
				break;
				case('next'):
					if(current < max) {
						gallery.attr('data-index', parseFloat(current)+1);
					}
				break;
			}
			var index = parseFloat(gallery.attr('data-index'));
			gallery.removeClass('first last');
			if(index == 0) {
				gallery.addClass('first');
			}
			if(index == max) {
				gallery.addClass('last');
			}
			sledge.css('margin-left', -gallery.attr('data-index') * gallery.attr('width'));
			return false;
		});
	});

	$("form.form").submit(function(){
		var formID = '#' + $(this).attr("id");
		if(state == "unfilled") {
			state = "fresh";
		}

		// prüfe ob alle wichtigen felder ausgefüllt sind
		$("form .required").each(function(){
			if($(this).val().length >= 1 && $(this).val() != $(this).attr('placeholder')) {
				$(this).removeClass("empty");
				$('p#hint-' + $(this).attr("name")).remove();
			} else {
				if(!$(this).hasClass("empty")) {
					$(this).addClass("empty");
					$('<p>').addClass('hint').text(textNoInput).attr({'id':'hint-' + $(this).attr("name")}).insertAfter(this);
				}
				state = "unfilled";
			};
		});
		
		if(state == "fresh") {
			state = "filled";
		}
		
		// plausibilitätsprüfung
		if (state == "nocontact") {
			state = "ready";
		}
		if (state == "filled") {
			state = "ready";
			$("form .check").each(function(){
				var fieldName = $(this).attr("name");
				var type = "none"
				var value = $(this).val();
				if(
					value.match(/^([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+@((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,6})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)$/i) 
					|| value.match(/ ?@[a-zA-Z0-9_]/) 
					|| value.match(/https?:\/\/|www./) 
					|| value.match(/[0-9]{3,5}[ ]?[ |\-|\/|\)]?[ ]?[0-9 ]{3,}/) 
				) {
						$(this).removeClass("nocontact");
				} else {
					state = "nocontact";
					if(!$(this).hasClass("nocontact")) {
						$(this).addClass("nocontact");
						$('<p class="hint" id="hint-' + $(this).attr("name") + '">' + textNoContact + ' <a href="#submit" onclick="$(\'' + formID + '\').submit();">' + textNoContactLink + '</a></p>').insertAfter(this).hide().fadeIn(400);
					}
				}
			});
		}

		// versand
		if(state == "ready") {
			$(this).addClass("sending");
			$.post("form/send", $(this).serialize(), function(data) {
				console.log(data);
				if(data == "sent") {
					if (formID == "#quickcontact") {
						$("#plate").slideUp(300).delay(200).slideDown(400);
						setTimeout(function () { $("#plate").html('<p class="danke">Danke – wir melden uns!</a>'); }, 300);
					}
					if (formID == "#contact") {
						$(formID).fadeOut(300);
						setTimeout(function () {
							$("h1").text("Vielen Dank");
							$(formID).html('<p>Versprechen wollen wir es nicht - innerhalb der nächsten 24 Stunden sollten Sie aber von uns gehört haben. Soll es schneller gehen? Kein Problem:<br/><br/><span class="tel">Tel +49 (511) 700 208 0</span><br/><a href="mailto:kontakt@neoskop.de">kontakt@neoskop.de</a></p>').fadeIn(300);
						}, 400);
					};
				}
				if(data == "missing") {

				}
				if(data == "error") {

				}
			});
			$(formID + " .enabled").attr({'disabled': true});
			$(formID + " button").text("Versende ...");
		} else {
		}
		return false;
	});
	
	$(".required").each(function(){
		var $this = $(this);
		if ($this.val() === '') {
			$this.attr('value', $this.attr('placeholder')).addClass("placeholder");
		}
		$this.focus(function(){
			if ($this.val() === $this.attr("placeholder")) {
				$this.val("").removeClass("placeholder");
			}
		}).blur(function(){
			if ($this.val() === "") {
				$this.val($this.attr("placeholder")).addClass("placeholder");
			}
		});
	});
	
	$('#showroom #models li a').click(function() {
		var i = parseFloat($(this).attr('href').substr(1,1));
		var stageValues 	= [0,0,-926,-1852];
		var pointerValues 	= [0,-333,-13,307];
		if($('#showroom').hasClass('open')) {
			$('#showroom #stage ul').animate({'left': stageValues[i]}, 600);
			$('#showroom #pointer').animate({'margin-left': pointerValues[i]}, 600);
		} else {
			$('#showroom #stage ul').css({'left': stageValues[i]});
			$('#showroom #pointer').css({'margin-left': pointerValues[i]});
			$('#showroom').animate({'height': 700}).addClass('open');
		}
		$('html, body').delay(200).animate({scrollTop: 620}, 400);
		return false;
	});
	
	$('#showroom .close').click(function(){
		$('#showroom').animate({'height': 220}).removeClass('open');
	});
		
	$('#showroom #models li a').hover(function(){
		$(this).children().addClass("hover", 300);
	}, function(){
		$(this).children().removeClass("hover", 300);
	});

	/* Jobs */
	
	$(document).ready(function(){
		if($('body').hasClass('jobs')) {
			jobHash();
		}
	});
	
	$(window).on('hashchange', function(){
		jobHash();
	});
	
	function jobHash() {
		var hash = window.location.hash.substr(2,window.location.hash.length-2),
			body = $('body');
		body.removeClass().addClass('jobs');
		$.each(hash.split('/'), function(key, value){
			$(body).addClass(value);
		});
	};

});
