function CheckRequired( form ){
  var result = true;  
      
  // Zmień kolor ramek dla wszystkich elementów formularza
  for(var i = 0; i < form.elements.length; i++){
    var elm = form.elements[i];
    switch( elm.type ){
      case "text":
      case "textarea":
      case "file":
        elm.style.borderColor = "";
        break;
      case "radio":
      case "checkbox":
        elm.style.backgroundColor = "";
        break;
      case "select-one":
        elm.style.color = "";
        break;
    }
  }

  // Sprawdź czy pola wymagane są wypełnione
  for(var i = 0; i < form.elements.length; i++){
    var elm = form.elements[i];
    if( form.elements[i].getAttribute( 'required' ) == 'true' ) {
      
      switch( elm.type ){
        case "text": 
        case "textarea":
          if( elm.value == '' ){
            elm.style.borderColor = "#ff0000";
            result = false;
          }           
          break;
        case "file":
          if( elm.value == '' ){
            elm.style.borderColor = "#ff0000";
            result = false;
          }
          break;        
        case "radio":
          
          var anySelected = false;
          var groupName = elm.getAttribute("name");
          if( (groupName != "") && (groupName != null) ){
            for(var j = 0; j < form.elements.length; j++){
              var _elm = form.elements[j];
              var _groupName = _elm.getAttribute("name");
              if( (groupName == _groupName) && (_elm.checked) ){
                anySelected = true;
              }
            }
          }
          
          if( !anySelected ){                                   
            elm.parentNode.style.border = "solid 1px #ff0000";  
            elm.parentNode.style.fontSize = "14px";
            result = false;
          }
          break;
        case "checkbox":		  
          if( !elm.checked ){
			elm.parentNode.style.border = "solid 1px #ff0000";
			elm.parentNode.style.fontSize = "14px";			
            result = false;
          }
          break;
        case "select-one":
          if( elm.selectedIndex<=0 ){
            elm.style.color = "#ff0000";
            result = false;
          }
          break;
      }      
    }
  }
  return result;
}

function CheckValidate( form ){
  var result = true;
  
  for(var i = 0; i < form.elements.length; i++){
    var elm = form.elements[i];
    switch(elm.type){
      case "text":
      case "textarea":
        var val = elm.getAttribute("validate");
        var msg = "";
        var test = false;
        var re;
        switch(val){
          case "EMAIL":
            re = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/; // <- EMAIL
            msg = "Proszę podać poprawny adres email (np.: jan.kowalski@hoga.pl)";
            test = true;
            break;
          case "TEL":
            re = /^[\+|\d]?\d{7,}$/; // <- TEL
            msg = "Proszę podać poprawny numer telefonu (np.: +48123456789)";
            test = true;
            break;
          case "NIP":
            re = /^\d{2,3}-\d{2,3}-\d{2,3}-\d{2,3}$/; // <- NIP
            msg = "Proszę podać poprawny NIP (np.: 123-45-67-890)";
            test = true;
            break;
          case "POST":
            re = /^\d{2}-\d{3}$/; // <- POST
            msg = "Proszę podać poprawny kod pocztowy (np.: 41-200)";
            test = true;
            break;
          case "DATE_DMY":
            re = /^\d{2}-\d{2}-\d{4}$/; // <- DATE_DMY
            msg = "Proszę podać poprawną datę (np.: 23-02-1977)";
            test = true;
            break;
        }
        if( test && (elm.value != "") ){
          if( re.test( elm.value ) ){
            elm.style.borderColor = "";
          }else{
            elm.style.borderColor = "#ff0000";
            alert( msg );
            result = false;
          }
        }
        break;
    }
  }
  
  return result;
}

function CheckCaptcha(val){
	var http = false;
	if(navigator.appName == "Microsoft Internet Explorer") {
		http = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		http = new XMLHttpRequest();
	}
	
	var result = false;

	http.open("GET", "captcha.aspx?check=" + val, false);
	http.send(null);
	if (http.responseText != null && parseInt(http.responseText) == 1) result = true; else result = false;
	
	return result;
}

function CheckForm( formName ){  

  var result = true;
  var form = document.getElementById(formName);
  result = CheckRequired( form );

  result = result && CheckValidate( form );
  
  var captcha =	 document.getElementById('captcha');
  if(captcha!=null){
	var resultCaptcha = CheckCaptcha(captcha.value);
	if (!resultCaptcha){
		captcha.style.borderColor = "#ff0000";
		result = false;
	}else{
		captcha.style.borderColor = "";
	}
	
  }
  
   if( !result ){
    alert( 'Proszę wypełnić pola zaznaczone czerwonym kolorem' );
  }
  
  return result;
}

