// um ein paar fiese IE Bugs zu umschiffen
stupidIE = false;

function openContactPermanently() {
	$('liContact').className 	= "contactOpend";
}

function closeContact() {
	$('liContact').className 	= "";
	$('name').className 		= "";
	$('email').className 		= "";
	$('text').className 		= "";
}

function sendAjaxForm() {
	var myAjax = new Ajax.Request("./v2/inc/formmail.php", 
		{
			method: 'get', 
			parameters: "name=" + $("name").value + "&email=" + $("email").value + "&text=" + $("text").value, 
			onComplete: showResponse
		}
	);
}

function showResponse(originalRequest) {
	$('contactResponseText').innerHTML = originalRequest.responseText;
	$('contactResponse').style.display = "block";
	positionCentered($('contactResponse'));
}

function positionCentered(el) {
	var h = el.height;
	var posY = (window.innerHeight / 2) - 50;// + window.pageXOffset;
	var posX = (window.innerWidth / 2) - 100;
	
	console.log("x " + posX);
	console.log("y " + posY);
	
	if (stupidIE === true) {
		//posY += (window.innerHeight / 2) - 50;
	} else {
		el.style.position = "fixed";
	}
	el.style.top = posY + "px";
	el.style.left = posX + "px";
}

function allFieldsValid() {
	var observedFields = new Array($('name'), $('email'), $('text'));
	fields = observedFields;
	var valid = true;
	for (var i = 0; i < fields.length; i++) {
		if (fields[i].className != "noerror") {
			valid = false;
		}
	}
	if (valid == true) {	
		$('sub').className = "noerror";
	} else {
		$('sub').className = "error";
	}
	return valid;
}

function checkForm(type, myNode, focus) {
	var valid 		= -1;
	var textPattern = /^[^@]{2,}$/;
	var mailPattern	= /^\S+@(\S{2,}\.)+\S{2,6}$/;
	
	var myValue 	= myNode.value;
	if (type == "text") {
		if (myValue != "") {
			valid = myValue.search(textPattern);
		} else {
			valid = -1;
		}
	} else if (type == "email") {
		if (myValue != "") {	
			valid = myValue.search(mailPattern);
		} else {
			valid = -1;
		}
	}
	
	if (valid != -1) {
		myNode.className = "noerror";
	} else {
		myNode.className = "error";
	}
	
	allFieldsValid();
}

function checkName(e) {	
	var type = true;
	if (e.type == "blur") {
		type = false;
	}
	checkForm("text", $("name"), type);
}

function checkEmail(e) {
	var type = true;
	if (e.type == "blur") {
		type = false;
	}
	checkForm("email", $("email"), type);
}

function checkText(e) {
	var type = true;
	if (e.type == "blur") {
		type = false;
	}
	checkForm("text", $("text"), type);
}

function closeMailMessage() {
	$("contactResponse").style.display = "none";
	positionCentered($("contactResponse"));
}

window.onload = function () {
	$('name').onkeyup = checkName.bindAsEventListener(checkName);
	$('email').onkeyup = checkEmail.bindAsEventListener(checkEmail);
	$('text').onkeyup = checkText.bindAsEventListener(checkText);

	$('name').onblur = checkName.bindAsEventListener(checkName);
	$('email').onblur = checkEmail.bindAsEventListener(checkEmail);
	$('text').onblur = checkText.bindAsEventListener(checkText);
	
	if (!stupidIE) {
		$('name').onclick = openContactPermanently.bindAsEventListener(openContactPermanently);
		$('email').onclick = openContactPermanently.bindAsEventListener(openContactPermanently);
		$('text').onclick = openContactPermanently.bindAsEventListener(openContactPermanently);
	}
	
	$('res').onclick = closeContact.bindAsEventListener(closeContact);
	$('aContact').onclick = closeContact.bindAsEventListener(closeContact);
	
	$('mailclose').onclick = closeMailMessage.bindAsEventListener(closeMailMessage);
	
	new Draggable('contactResponse',{revert:false});
}