$(document).ready(function(){
  
  $('#photo_upload').find(':submit').attr('disabled', 'disabled');
  $('#right_to_distribute', $('#photo_upload')).click(function() { 
      if($(this).attr('checked')){
        $('#photo_upload').find(':submit').removeAttr('disabled');
      }
      else{
        $('#photo_upload').find(':submit').attr('disabled', 'disabled');
      }
    });

  observeUnsavedChanges($('form', $('#edit_photos'))); 
  $('form', $('#edit_photos')).find(':input:visible:first').each(function(){ this.focus();});
  
});

function observeUnsavedChanges(frm){
  $(frm).find(":input, :radio, :checkbox").change(function(){ setConfirmingChanges(true); }); 
  $(frm).find('a.cancel_edit').click(function(){ setConfirmingChanges(false); });
  $('#content').after("<p id='unsaved_changes'> You have changes that have not been saved. " +
                      "Would you like to save them now?</p>");
  $('#unsaved_changes').dialog({ autoOpen: false, 
                                 width: 500,
                                 modal: true, 
                                 title: "Unsaved Changes",
                                 buttons: { "Save": function(){ saveConfirmingForm(frm); },
                                            "Don't Save": function(){ allowConfirmingNav(this); },
                                            "Cancel": function() { $(this).dialog("close"); } 
                                          } 
                               });
  setConfirmOnNav();
}

function setConfirmOnNav() { 
  $('a').not('.ui-dialog-titlebar-close').click(function(){ 
      return ((ConfirmingChanges()) ? confirmUnsavedChanges($(this).attr('href')) : true); 
  }); 
}

function confirmUnsavedChanges(confirmingUrl){
  $('#unsaved_changes').data("confirmingUrl", confirmingUrl).dialog('open'); 
  $('#unsaved_changes').parents('.ui-dialog').find('.ui-dialog-buttonpane').find('button').eq(0).focus();
  return false;
}

function allowConfirmingNav(dialog){
  window.location.href = $(dialog).data("confirmingUrl");
}

function saveConfirmingForm(frm){
  $(frm).submit();
}


