var postParams;

function swfUploadLoaded() {
  // alert("swfUploadLoaded");
  var btnSubmit = document.getElementById("btnSubmit");
  var txtGalleryTitle = document.getElementById("gallerytitle");

  btnSubmit.onclick = doSubmit;
  btnSubmit.disabled = true;

  txtGalleryTitle.onchange = validateForm;

  validateForm();
}

function uploadStart() {
  // alert("uploadStart");
  this.setPostParams(postParams);
}

function validateForm() {
  //alert("validateForm");
  var txtGalleryTitle = document.getElementById("gallerytitle");
  var txtFileName = document.getElementById("txtFileName");

  var isValid = true;
  if (txtGalleryTitle.value === "") {
    isValid = false;
  }
  if (txtFileName.value === "") {
    isValid = false;
  }

  document.getElementById("btnSubmit").disabled = !isValid;
}

// Called by the submit button to start the upload
function doSubmit(e) {
  //alert("doSubmit");
  e = e || window.event;
  if (e.stopPropagation) {
    e.stopPropagation();
  }
  e.cancelBubble = true;

  try {
    var txtGalleryTitle = document.getElementById("gallerytitle").value;
    var passportCookie = $.cookie('eo_passport');
    postParams = { "relatedTo" : [relatedTo],
               "galleryTitle" : [txtGalleryTitle],
               "passportCookie" : [passportCookie]}
    // alert("swfu_photo.startUpload();");
    swfu_photo.startUpload();
  } catch (ex) {

  }
  return false;
}

function uploadDone() {
  self.parent.tb_remove();
  reload_photo_div();
}


function fileQueueError(file, errorCode, message)  {
  try {
    // Handle this error separately because we don't want to create a FileProgress element for it.
    switch (errorCode) {
    case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED:
      alert("You have attempted to queue too many files.\n" + (message === 0 ? "You have reached the upload limit." : "You may select " + (message > 1 ? "up to " + message + " files." : "one file.")));
      return;
    case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
      alert("The file you selected is too big.");
      this.debug("Error Code: File too big, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
      return;
    case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
      alert("The file you selected is empty.  Please select another file.");
      this.debug("Error Code: Zero byte file, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
      return;
    case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
      alert("The file you choose is not an allowed file type.");
      this.debug("Error Code: Invalid File Type, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
      return;
    default:
      alert("An error occurred in the upload. Try again later.");
      this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
      return;
    }
  } catch (e) {
  }
}

function fileQueued(file) {
  try {
    var txtFileName = document.getElementById("txtFileName");
    txtFileName.value = this.getStats().files_queued + " foto's geselecteerd..."
  } catch (e) {
  }

}
function fileDialogComplete(numFilesSelected, numFilesQueued) {
  validateForm();
}

function uploadProgress(file, bytesLoaded, bytesTotal) {
  //alert("uploadProgress");
  try {
    var percent = Math.ceil((bytesLoaded / bytesTotal) * 100);

    file.id = "singlefile";  // This makes it so FileProgress only makes a single UI element, instead of one for each file
    var progress = new FileProgress(file, this.customSettings.progress_target);
    progress.setProgress(percent);
    progress.setStatus("Uploading...");
  } catch (e) {
  }
}

function uploadSuccess(file, serverData) {
  // alert("uploadSuccess");
  eval(serverData);
  //this.setPostParams(postParams);
  try {
    file.id = "singlefile";  // This makes it so FileProgress only makes a single UI element, instead of one for each file
    var progress = new FileProgress(file, this.customSettings.progress_target);
    progress.setComplete();
    progress.setStatus("Complete.");

    if (serverData === " ") {
      this.customSettings.upload_successful = false;
    } else {
      this.customSettings.upload_successful = true;
      document.getElementById("hidFileID").value = serverData;
    }

  } catch (e) {
  }
}

function uploadComplete(file) {
  // alert("uploadComplete");
  try {
    if (this.customSettings.upload_successful) {
  this.setButtonDisabled(true);
        if (this.getStats().files_queued > 0) {
          this.startUpload();
        } else {
          uploadDone();
        }
    } else {
      file.id = "singlefile";  // This makes it so FileProgress only makes a single UI element, instead of one for each file
      var progress = new FileProgress(file, this.customSettings.progress_target);
      progress.setError();
      progress.setStatus("File rejected");

      var txtFileName = document.getElementById("txtFileName");
      txtFileName.value = "";
      validateForm();

      alert("There was a problem with the upload.\nThe server did not accept it.");
      uploadDone(); // TEMP DEBUG kan ook voor echie
    }
  } catch (e) {
  }
}

function uploadError(file, errorCode, message) {
  try {
    var txtFileName = document.getElementById("txtFileName");
    txtFileName.value = "";
    validateForm();

    // Handle this error separately because we don't want to create a FileProgress element for it.
    switch (errorCode) {
    case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:
      alert("There was a configuration error.  You will not be able to upload a resume at this time.");
      this.debug("Error Code: No backend file, File name: " + file.name + ", Message: " + message);
      return;
    case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
      alert("You may only upload 1 file.");
      this.debug("Error Code: Upload Limit Exceeded, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
      return;
    case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
        alert("FILE_CANCELLED");
      break;
    case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
        alert("UPLOAD_STOPPED");
      break;
    case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
      alert("HTTP_ERROR");
      break;
    case SWFUpload.UPLOAD_ERROR.IO_ERROR:
        alert("IO_ERROR");
      break;
    case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
        alert("SECURITY_ERROR");
      break;
    case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
        alert("UPLOAD_FAILED");
      break;
    case SWFUpload.UPLOAD_ERROR.SPECIFIED_FILE_ID_NOT_FOUND:
        alert("SPECIFIED_FILE_ID_NOT_FOUND");
      break;
    case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED:
        alert("FILE_VALIDATION_FAILED");
      break;
    default:
      alert("An error occurred in the upload. Try again later.");
      this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
      return;
    }

    file.id = "singlefile";  // This makes it so FileProgress only makes a single UI element, instead of one for each file
    var progress = new FileProgress(file, this.customSettings.progress_target);
    progress.setError();

    switch (errorCode) {
    case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
      progress.setStatus("Upload Error");
      this.debug("Error Code: HTTP Error, File name: " + file.name + ", Message: " + message);
      break;
    case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
      progress.setStatus("Upload Failed.");
      this.debug("Error Code: Upload Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message);
      break;
    case SWFUpload.UPLOAD_ERROR.IO_ERROR:
      progress.setStatus("Server (IO) Error");
      this.debug("Error Code: IO Error, File name: " + file.name + ", Message: " + message);
      break;
    case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
      progress.setStatus("Security Error");
      this.debug("Error Code: Security Error, File name: " + file.name + ", Message: " + message);
      break;
    case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
      progress.setStatus("Upload Cancelled");
      this.debug("Error Code: Upload Cancelled, File name: " + file.name + ", Message: " + message);
      break;
    case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
      progress.setStatus("Upload Stopped");
      this.debug("Error Code: Upload Stopped, File name: " + file.name + ", Message: " + message);
      break;
    }
  } catch (ex) {
  }
}

