// recaptcha.js

function challenge(event){
	//console.log("challenge captcha!");
	var challenge = $("recaptcha_challenge_field").value;
	var response = $("recaptcha_response_field").value;
	recaptchaRequest.cancel();
	recaptchaRequest.send("challenge=" + challenge + "&response=" + response);
	return false;
}

function validate(event){
  var fields = $$("form.recaptchaAjax .required");
  var missed = [];
  for(var i=0 ; fields[i] ; i++){
    fields[i].removeClass("missed");
    var bool = true;
    var field = fields[i];

//    console.log(field.type);

    if(field.type.indexOf('select') > -1){
      bool = (field.selectedIndex != 0);
    }else if(field.type.indexOf('checkbox') > -1){
      bool = checked;
    }else if(field.type.indexOf('radio') > -1){
      var radios = $(field.form)[field.name];
      console.log(radios);
      for(var j=0 ; radios[j] ; j++){
        if(radios[j].checked){
          bool = true;
          break;
        }else{
          bool = false;
        }
      }
    }else{
      bool = field.value.length > 1;
    }
    if(!bool){
      missed.push(field);
    }

  }

  if(missed.length > 0){
    var error = "Missed:\n";
    for(i=0 ; missed[i] ; i++){
      missed[i].addClass("missed");
      var newError = missed[i].name.replace("_"," ").replace("-"," ");
      if(error.search(newError) < 0){
        error += newError+"\n";
      }
    }
    alert(error);
    return false;
  }
  return challenge(event);
}

//set up reCaptcha Ajax challenge.
var recaptchaRequest = new Request.JSON({
  url: "http://www.bestdriverjobs.com/recaptcha_ajax.php",
  //the following function will be fired upon response.An Object containing bool and a string
  onComplete: function(response){
    //console.log(response);
    if(response.valid == 0) {
  		//console.log("inValid Submit!");
    	$("recaptcha_instructions_image").setStyle("display","none");
    	$("recaptcha_instructions_error").removeClass("recaptcha_only_if_incorrect_sol");
    	Recaptcha.reload();
    	$("recaptcha_reload").removeEvents("click");
    	$("recaptcha_reload").addEvent("click",function(event){
    	  event.stop();
    	  $("recaptcha_instructions_image").setStyle("display","block");
      	$("recaptcha_instructions_error").addClass("recaptcha_only_if_incorrect_sol");
    	  Recaptcha.reload();
    	});
    }else{
  		//console.log("Valid Submit!");
  		$(document.body).getElement("form.recaptchaAjax").removeEvents("submit");
    	$(document.body).getElement("form.recaptchaAjax").submit();
    }
  }
});

window.addEvent("load", function() {
	$(document.body).getElement("form.recaptchaAjax").addEvent("submit", validate);
});
