function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function insertAfter(newElement,targetElement) {
  var parent = targetElement.parentNode;
  if (parent.lastChild == targetElement) {
    parent.appendChild(newElement);
  } else {
    parent.insertBefore(newElement,targetElement.nextSibling);
  }
}

function removeError() {
	var container = document.getElementById("prawa");
	var error = document.getElementById("errorMsg");
	if(error) {
		container.removeChild(error);
	}
}

function showError() {
	
	removeError();
	
	var kontaktForm = document.getElementById("contactform");
	var para = document.createElement("p");
	para.setAttribute("id", "errorMsg");
	var txt = document.createTextNode("Please fill out all empty fields");
	para.appendChild(txt);
	insertAfter(para, kontaktForm);
	return false;
	
}

function showErrorEmail() {
	
	removeError();
	
	var kontaktForm = document.getElementById("contactform");
	var para = document.createElement("p");
	para.setAttribute("id", "errorMsg");
	var txt = document.createTextNode("Incorrect email");
	para.appendChild(txt);
	insertAfter(para, kontaktForm);
	
	return false;
}



function validateForm(whichform) {
  for (var i=0; i<whichform.elements.length; i++) {
    var element = whichform.elements[i];
    if (element.className.indexOf("required") != -1) {
      if (!isFilled(element)) {
		  	return showError();
      }
    }
    if (element.className.indexOf("email") != -1) {
      if (!isEmail(element)) {
        return showErrorEmail();
      }
    }
  }
  return true;
}

function isFilled(field) {
  if (field.value.length < 1 || field.value == field.defaultValue) {
    return false;
  } else {
    return true;
  }
}

function isEmail(field) {
  if (field.value.indexOf("@") == -1 || field.value.indexOf(".") == -1) {
    return false;
  } else {
    return true;
  }
}

function prepareForms() {
  for (var i=0; i<document.forms.length; i++) {
    var thisform = document.forms[i];
    thisform.onsubmit = function() {
      return validateForm(this);
    }
  }
}

addLoadEvent(prepareForms);