function markError(e){
	e.style.border = "solid 1px #F00";
}

function unmarkError(e){
	e.style.border = "solid 1px #202020";
}

function hideAlertBox() {
	var a = document.getElementById('alert_box');
		a.style.display="none";
}

function checkRequired(arr){
	err = false;
	for (var i = 0; i < arr.length; i++) {
			unmarkError(arr[i]);
	}
	for (var i = 0; i < arr.length; i++) {
		if(isBlank(arr[i].value)) {
			markError(arr[i]);
			err = true;
		}
	}
	return err;
}

function checkEmail(arr){
	err = false;
	for (var i = 0; i < arr.length; i++) {
		if(!isBlank(arr[i].value) && !isValidEmail(arr[i].value)) {
			markError(arr[i]);
			err = true;
		}
	}
	return err;
}

function validateZapytanie() {
	var isRequiredError = false;
	var isEmailError = false;
	var form = document.forms[0];
	
	//var checkRequired_arr = new Array('nazwisko', 'firma', 'adres', 'tel', 'email');
	var checkRequired_arr = new Array(form.nazwisko, form.firma, form.adres, form.tel, form.email, form.opis);
	isRequiredError = checkRequired(checkRequired_arr);

	var checkEmail_arr = new Array(form.email);
	isEmailError = checkEmail(checkEmail_arr);
	
	message = "";
	if(isRequiredError) message = "Proszę wypełnić zaznaczone pola!<br />";
	if(isEmailError) message += "Podany adres e-mail jest niepoprawny!<br />";
	var a = document.getElementById('alert_box');
	a.innerHTML = message;
	if(message == "") {
		a.style.display="none";
		return true;
	} else {
		a.style.display="block";
		return false;		
	}
}

function clearZapytanie(){
	var form = document.forms[0];
	for (var i = 0; i < form.elements.length; i++) {
		unmarkError(form.elements[i]);
	}
	form.reset();
	hideAlertBox();
}

function isBlank(val){
	if(val==null){return true;}
	for(var i=0;i<val.length;i++) {
		if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}
	}
	return true;
}

function isValidEmail(email, required) {
    if (required==undefined) {   // if not specified, assume it's required
        required=false;
    }
    if (email==null) {
        if (required) {
            return false;
        }
        return true;
    }
    if (email.length==0) {  
        if (required) {
            return false;
        }
        return true;
    }
    if (! allValidChars(email)) {  // check to make sure all characters are valid
        return false;
    }
    if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character
        return false;
    } else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @
        return false;
    } else if (email.indexOf("@") == email.length) {  // @ must not be the last character
        return false;
    } else if (email.indexOf("..") >=0) { // two periods in a row is not valid
	return false;
    } else if (email.indexOf(".") == email.length) {  // . must not be the last character
	return false;
    }
    return true;
}

function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}
