var needPassword = false;

$(document).ready(function(){

  if( $("#degree_other:checked").length > 0 ){
    $("#degree_field").show();
  }
  if( $("#ethnicity").children(":selected").attr("name") == "OTHER" ){
    $("#ethnicity_field").show();
  }
  if( $("#primary_other:checked").length > 0 ){
    $("#primary_field").show();
  }
  if( $("#prior_checkyes:checked").length > 0 ){
    $("#prior_field").show();
    $("#meetobjectives").show();
  }
  if( $("#prior_checkno:checked").length > 0 ){
    $("#meetobjectives").hide();
  }
  if( $("#criteria_other:checked").length > 0 ){
    $("#criteria_field").show();
  }
  if( $("#interest_other:checked").length > 0 ){
    $("#interest_field").show();
  }
  if( $("#cmelength option[name=OTHER]:selected").length ){
    $("#cmelength_field").show();
  }

  $("#degree_other").click(function(){
    if( $("#degree_other:checked").length > 0 ){
      $("#degree_field").show("fast").focus();
    }else{
      $("#degree_field").hide("fast");
    }
  });
  $("#degree_field").blur(function(){
    $("#degree_other").blur();
  });

  $("#primary_other").click(function(){
    if( $("#primary_other:checked").length > 0 ){
      $("#primary_field").show("fast").focus();
    }else{
      $("#primary_field").hide("fast");
    }
  });
  $("#primary_field").blur(function(){
    $("#primary_other").blur();
  });

  $("#ethnicity").change(function(){
    if( $(this).children(":selected").attr("name") == "OTHER" ){
      $("#ethnicity_field").show("fast").focus();
    }else{
      $("#ethnicity_field").hide("fast");
    }
  });

  $("#prior_checkyes").click(function(){
    if( $("#prior_checkyes:checked") ){
      $("#prior_field").show("fast").focus().prev("span").show("fast");
      $("#meetobjectives").show("fast").next("textarea").focus();
    }
  });
  $("#prior_checkno").click(function(){
    if( $("#prior_checkno:checked") ){
      $("#prior_field").hide().focus().prev("span").hide();
      $("#meetobjectives").hide();
    }
  });

  $("#criteria_other").click(function(){
    if( $("#criteria_other:checked").val() ){
      $("#criteria_field").show("fast").focus();
    }else{
      $("#criteria_field").hide("fast");
    }
  });
  $("#criteria_field").blur(function(){
    $("#criteria_other").blur();
  });

  $("#interest_other").click(function(){
    if( $("#interest_other:checked").length > 0 ){
      $("#interest_field").show("fast").focus();
    }else{
      $("#interest_field").hide("fast");
    }
  });
  $("#interest_field").blur(function(){
    $("#interest_other").blur();
  });

  $("#cmelength").change(function(){
    if( $(this).children(":selected").attr("name") == "OTHER" ){
      $("#cmelength_field").show("fast").focus();
    }else{
      $("#cmelength_field").hide("fast");
    }
  });


  $("input:not(:radio)").focus(function(){
    $(this).next("label").addClass("labelon");
  });
  $("input:not(:radio)").blur(function(){
    $(this).next("label").removeClass("labelon");
  });

  $("label").click(function(){
    var myCheckChecked = false;
    var myCheck = $(this).prev(":input").focus();
    var myField = $(this).next(":text");
    if( myCheck[0] ){
      myCheckChecked = myCheck[0].checked = ( myCheck[0].checked ) ? false : true;
    }
    toggleField( myCheckChecked, myField );
  });

});

function profileReview(){
  $("span.required").remove();
  $('#password').removeAttr('disabled');
  
  var ret = true;
  
  var firstnameOK = $("#firstname").val() ? true : false;
  var lastnameOK = $("#lastname").val() ? true : false;
  
  var street1OK = $("#street1").val() ? true : false;
  var cityOK = $("#city").val() ? true : false;
  var stateOK = $("#state").val() ? true : false;
  var zipcodeOK = $("#zipcode").val() ? true : false;
  
  var emailOK = $("#email").val() ? true : false;
  var passOK = $("#password").val() ? true : false;
  
  var alertsOK = $(":radio[name=alerts]:checked").val() ? true : false;
  var degreeOK = ( $(":checkbox:checked[name^=degree]").val()  && ( $("#degree_other:not(:checked)").val() || $("#degree_field").val() ) ) ? true : false;
  if( $("#degree_other:checked").val() && $("#degree_field").val()  ) $("#degree_other").val( $("#degree_field").val() );
  
  var healthcareOK = $("#healthcare").val() != "0" ? true : false;
  
  var primaryOK = ( $(":checkbox:checked[name^=primaryarea]").val() && ( $("#primary_other:not(:checked)").length || $("#primary_field").val() ) ) ? true : false;
  if( $("#primary_other:checked").val() && $("#primary_field").val() ) $("#primary_other").val( $("#primary_field").val() );
  
  var yearsworkedOK = $("#yearsworked").val() != "0" ? true : false;
  var priorOK = $(":radio[name=prior]:checked").val() ? true : false;
  
  var criteriaOK = ( $(":checkbox:checked[name^=criteria]").val()  && ( $("#criteria_other:not(:checked)").val() || $("#criteria_field").val() ) ) ? true : false;
  if( $("#criteria_other:checked").val() && $("#criteria_field").val() ) $("#criteria_other").val( $("#criteria_field").val() );
  
  var interestOK = ( $(":checkbox:checked[name^=interest]").val()  && ( $("#interest_other:not(:checked)").val() || $("#interest_field").val() ) ) ? true : false;
  if( $("#interest_other:checked").val() && $("#interest_field").val() ) $("#interest_other").val( $("#interest_field").val() );
  
  var cmelengthOK = ( $("#cmelength").val() != "0" && ( $("#cmelength").val() != "OTHER" || $("#cmelength_field").val() ) ) ? true : false;
  if( $("#cmelength").val() == "OTHER" ) $("#cmelength").val( $("#cmelength_field").val() );
  
  var formatsOK = ( $(":checkbox:checked[name^=formats]").val() ) ? true : false;
  var prefformatOK = $("#prefformat").val() != "0" ? true : false;
  
  if( emailOK && passOK && firstnameOK && lastnameOK && street1OK && cityOK && stateOK && zipcodeOK && alertsOK && degreeOK && healthcareOK && primaryOK && yearsworkedOK && priorOK && criteriaOK && interestOK && cmelengthOK && formatsOK && prefformatOK ){
    
  }else{
    ret = false;
    if( !emailOK ) $("label[for=email]").append("<span class='required'> Required.</span>");
    if( !passOK ) $("label[for=password]").append("<span class='required'> Required.</span>");

    if( !firstnameOK ) $("label[for=firstname]").append("<span class='required'> Required.</span>");
    if( !lastnameOK ) $("label[for=lastname]").append("<span class='required'> Required.</span>");
    if( !street1OK ) $("label[for=street1]").append("<span class='required'> Required.</span>");
    if( !cityOK ) $("label[for=city]").append("<span class='required'> Required.</span>");
    if( !stateOK ) $("label[for=state]").append("<span class='required'> Required.</span>");
    if( !zipcodeOK ) $("label[for=zipcode]").append("<span class='required'> Required.</span>");

    if( !alertsOK ) $("label[for=alerts]").append("<span class='required'> Required.</span>");
    if( !degreeOK ) $("label[for=degree]").append("<span class='required'> Required.</span>");
    if( !healthcareOK ) $("label[for=healthcare]").append("<span class='required'> Required.</span>");
    if( !yearsworkedOK ) $("label[for=yearsworked]").append("<span class='required'> Required.</span>");
    if( !primaryOK ) $("label[for=primaryarea]").append("<span class='required'> Required.</span>");
    if( !priorOK ) $("label[for=prior]").append("<span class='required'> Required.</span>");
    if( !interestOK ) $("label[for=interest]").append("<span class='required'> Required.</span>");
    if( !cmelengthOK ) $("label[for=cmelength]").append("<span class='required'> Required.</span>");
    if( !criteriaOK ) $("label[for=criteria]").append("<span class='required'> Required.</span>");
    if( !formatsOK ) $("label[for=formats]").append("<span class='required'> Required.</span>");
    if( !prefformatOK ) $("label[for=prefformat]").append("<span class='required'> Required.</span>");
    
    window.scrollTo(0, $('.required:visible').offset().top - 15);
	window.alert('Please complete all required fields. Required fields that were left blank are now marked in red.');
  }
  return ret;
}

function toggleField( checked, fld ){
  try{
    if( checked ){
      fld.show("fast").focus();
    }else{
      fld.hide("fast");
    }
  }catch(e){
    return;
  }
}

function checkEmail( em ){
 $.post( "./logic/check_email.php", { email:em }, function( data ){
    if( data == "true" ){
       $('#email_feedback').html("This email address is already registered. Please enter your password to update your contact information as needed.").show();
       $('#email_confirm').attr('disabled','disabled').hide();
       $('label[for=email_confirm]').hide().next('br').hide();
       $('#password_confirm').attr('disabled','disabled').hide();
       $('label[for=password_confirm]').hide().next('br').hide();
       $('#password').focus();
       needPassword = true;
    }else{
       $('#email_feedback').html('').hide();
       $('#email_confirm').removeAttr('disabled').show();
       $('label[for=email_confirm]').show().next('br').show();
       $('#password_confirm').removeAttr('disabled').show();
       $('label[for=password_confirm]').show().next('br').show();
       $('#password').removeAttr('disabled').val('');
	   $('#firstname').val('');
	   $('#midname').val('');
	   $('#lastname').val('');
	   $('#street1').val('');
	   $('#street2').val('');
	   $('#city').val('');
	   $('#state').val('');
	   $('#zipcode').val('');
	   $('#country').val('');
	   $('#phone').val('');
	   $('#fax').val('');
	   needPassword = false;
    }
  });
}

function checkPassword( em, pass ){
  if( needPassword ){
	  $.post( "./logic/authenticate.php", { email:em, password:pass }, function( data ){
		if( data ){
		   $('#email_feedback').html('').hide();
		   $('#password').attr('disabled','disabled');
		   fieldset = new Array();
		   fields = data.split(';')
		   for( i=0;i<fields.length;i++ ){
			 fieldtemp = fields[i].split(':');
			 fieldset[fieldtemp[0]] = fieldtemp[1];
		   }
		   $('#firstname').val(fieldset['firstname']);
		   $('#midname').val(fieldset['midname']);
		   $('#lastname').val(fieldset['lastname']);
		   $('#street1').val(fieldset['street1']);
		   $('#street2').val(fieldset['street2']);
		   $('#city').val(fieldset['city']);
		   $('#state').val(fieldset['state']);
		   $('#zipcode').val(fieldset['zipcode']);
		   $('#country').val(fieldset['country']);
		   $('#phone').val(fieldset['phone']);
		   $('#fax').val(fieldset['fax']);
		}else{
           $('#email_feedback').html("This email address is already registered. <br />The password you provided is incorrect. You may need to <a  href='./logic/password_recover.php'>reset your password.</a>").show();
		   $('#password').removeAttr('disabled');
		   $('#firstname').val('');
		   $('#midname').val('');
		   $('#lastname').val('');
		   $('#street1').val('');
		   $('#street2').val('');
		   $('#city').val('');
		   $('#state').val('');
		   $('#zipcode').val('');
		   $('#country').val('');
		   $('#phone').val('');
		   $('#fax').val('');
		}
	  }); 
  }
}

function confirmMatch( which ){
  var whichId = "#" + which;
  var whichMatch = whichId + "_confirm";
  var val = $(whichId).val();
  var valMatch = $(whichMatch).val();
  if( !needPassword && valMatch ){
    if( val != valMatch ){
      $(whichMatch).val("");
      $('#email_feedback').html("The " + which + "s you entered don't match. Please reenter your " + which + ".").show();
      $(whichId).focus();
    }else{
      $('#email_feedback').html("").hide();
    }
  }
}