visible_filesend_widget_id = 0;
var rand_form_id = '';
var selected_workfile_type = 'other';
function toggleFileSendWidget(id, data, offset) {
  if (args == null) var args = {};
  var do_hide = false;
  if (visible_filesend_widget_id == id) closeFileSendWidget();
  else {
    if (visible_filesend_widget_id > 0) closeFileSendWidget();
    showFileSendWidget(id, data, offset);
  }
}
function showFileSendWidget(id, args, offset) {
  visible_filesend_widget_id = id;
  if (args == null) var args = {};
  if (offset == null) var offset = {top:0, left:0};
  // Show the widget
  var link_offset=$("#filesend_widget_link_"+id).offset();
  // alert("top:"+(link_offset.top+offset.top)+", left:"+(link_offset.left+offset.left));
  // alert("link_offset.top:"+link_offset.top+", link_offset.left:"+link_offset.left);
  $("#filesend_widget_guts").html('<br><img src="/images/wikiwords/loading.gif"> Loading...<br>');
  if (args['to_eids']) {
    if (args['to_eids'].length >= 1) {
      var l=args['to_eids'].length;
      var entity_list='';
      for(q=0;q<l;q++) {
        entity_list = entity_list +"&to_eids[]=" +args['to_eids'][q];
      }
      var args = '' ;
      if (typeof( using_vendor_browser) != "undefined") {
        if (using_vendor_browser == "yes")  args = "&using_vendor_browse=yes";
        else args = "&using_vendor_browse=no";
      } else args = "&using_vendor_browse=no";
      args = args + entity_list;
    }
  }
  $("#filesend_widget_container")
  // .css({position: "absolute", top:link_offset.top-110, left:link_offset.left})
  .css({position: "absolute", top:link_offset.top+offset.top, left:link_offset.left+offset.left})
  .show("fast", function() {
    $.ajax({
      url: '/ajax/ajax_pfe_files.php?action=make_filesend_widget',
      data: args,
      type: "GET",
      dataType: "json",
      success: function(json) {
        if (!json.is_success) {
          // Print errors
          alertArr(json.err_msg);
        } else {
          $('#filesend_widget_guts').html(json.data.widget_html);
          var options = {
            dataType: 'json',
            error: function(){
              alert("Error sending file.");
            },
            success: function (json) {
              if (!json.is_success) {
                // Print errors
                alertArr(json.err_msg);
              } else {
                $('#filesend_widget_guts').html(json.data.html);
              }
            }
          };
          if ($.fn.flash.hasFlash()) {
            $('.noflash_submit').hide();
          }
          // Bind form and pass options to ajaxForm
          $('#filesend_widget_form').ajaxForm(options);
          // Bind jquploader to file upload fields
          $("#file_upload_container").jqUploader({
            uploadScript: '/ajax/ajax_pfe_files.php?action=upload_file&form_id='+$('#file_upload_form_id').val()+'&session_id='+$('#file_upload_session_id').val(),
            width: 400,
            // background: "FFFFDF",
            background: "D8E0F0",
            // background: "EFEFEF",
            barColor: "FFDD00",
            // allowedExt: "*.avi; *.jpg; *.jpeg; *.png",
            allowedExt: "*.*",
            allowedExtDescr: "*.*",
            params: {quality:'low'},
            validFileMessage: 'Click "upload"',
            endMessage: 'Processing uploaded file...',
            hideSubmit: false,
            endHtml: '<strong style="text-decoration:underline">Upload finished!</strong>',
            afterScript: "javascript:fileUploadFinished();",
            src: '/js/jqUploader.swf'
          });
        }
      }
    });
  });
}
function closeFileSendWidget() {
  $('#filesend_widget_guts').html("");
  $("#filesend_widget_container")
  .hide();
  visible_filesend_widget_id = 0;
}
function fileUploadFinished(uploader_id) {
  // Get file info
  var file_data;
  if ( typeof( uploader_id ) != "undefined" ) {
    if (typeof( attach_pdf_to_credential) != "undefined") {
      var form_id = rand_form_id;
    }else{
      var form_id = $('#file_upload_form_id'+uploader_id).val();
    }
  }else {
    var form_id = $('#file_upload_form_id').val();
  }
  if (typeof( attach_pdf_to_credential) != "undefined") {
    var args = {form_id: form_id, attach_action: 'attach_pdf_to_credential'};
  }else {
    var args = {form_id: form_id};
  }
  $.ajax({
    url: '/ajax/ajax_pfe_files.php?action=get_file_info',
    data: args,
    type: "GET",
    dataType: "json",
    success: function(json) {
      if (!json.is_success) {
        alert("Invalid file type");
        if (typeof( attach_pdf_to_credential) != "undefined"){
          bindUploader("other");
        }
      } else {
        // Save the file data for later
        file_data = json.data.file_data;
        // Add the new file to the select list, and select it
        $('#option_no_file').select();
        $('#option_recent_uploads').after('<option id="option_new_file" value="'+json.data.file_data.file_id+'">'+json.data.file_data.file_name_shown+'</option>');
        $('#option_new_file').select();
        // rebind ajaxForm for the filesend widget
        var options = {
          dataType: 'json',
          error: function(){
            alert("Error sending file");
          },
          success: function (json) {
            if (!json.is_success) {
              // Print errors
              alertArr(json.err_msg);
            } else {
              $('#filesend_widget_guts').html(json.data.html);
            }
          }
        };
        // Bind form and pass options to ajaxForm
        $('#filesend_widget_form').ajaxForm(options);
        // Set the workfile type
        if (json.data.do_set_workfile_type == "yes"){
          var text;
          if ( typeof( uploader_id ) != "undefined" ) {
            selected_workfile_type = uploader_id;
          } else {
            selected_workfile_type = $('#workfile_type').val();
          }
          if (selected_workfile_type == 'work') text = 'Work file (e.g. a file to be translated)';
          else if (selected_workfile_type == 'reference' ) text = 'Reference file (e.g. a glossary or TM)';
          else if (selected_workfile_type == 'other' ) text = 'Other';
          else if (selected_workfile_type == 'tm' ) text = 'Translation memory';
          else if (selected_workfile_type == 'glossary' ) text = 'Glossary';
          var type_text = '';
          if (typeof( attach_pdf_to_credential) == "undefined") {
            if (text) type_text = '<span style="padding-left: 20px;">File type: '+text+"</span>";
          }else {
            $('#file_to_attach').val(json.data.file_data.file_id);
          }
          if ( typeof( uploader_id ) != "undefined" ) {
            var funct = "showUploader('"+uploader_id+"');"
            if (typeof( attach_pdf_to_credential) == "undefined"){
              var upload_another_text = 'Upload another file';
            }else {
              var upload_another_text = 'Cancel this file and upload a new one';
            }
            var upload_another_file_link = '<br><center><a href="#" onclick="'+funct+' return false;">'+upload_another_text+'</a></center>';
            $('#file_info_div'+uploader_id).html( json.data.info_html+type_text+upload_another_file_link);
            $('#file_upload_form_container'+uploader_id).hide();
          } else {
            $('#file_info_div').html( json.data.info_html+type_text);
            $('#file_upload_form_container').hide();
          }
          // Used in the send Message Page
          if ( typeof( use_message_send_callback ) != "undefined" ) {
            /// $('#file_to_send').append ('<option value="'+json.data.file_data.file_id+'" id="'+json.data.file_data.file_id+'">'+json.data.file_data.file_name_shown+'</option>').attr("selected", "selected");
            $("#no_files_uploaded").remove();
          }
          // Update the type of the file by ajax call
          var langs = '';
          if (typeof( attach_pdf_to_credential) == "undefined") {
            if ( typeof( uploader_id ) != "undefined" ) {
              index_to_use = uploader_id;
              var l=languages_array[index_to_use].length;
              for(q=0;q<l;q++) {
                langs = langs +','+ languages_array[index_to_use][q] ;
              }
            }
            var args = {file_id: json.data.file_data.file_id, type: selected_workfile_type, file_languages: langs, form_id: form_id };
          }else {
            var args = {file_id: json.data.file_data.file_id, type: selected_workfile_type, form_id: form_id };
          }
          $.ajax({
            url: '/ajax/ajax_pfe_files.php?action=change_workfile_type',
            data: args,
            type: "GET",
            dataType: "json",
            success: function(json) {
              //$('#file_info_div').html( $('#file_info_div').html()+json.data.errors);
              if (!json.is_success) {
                alert("Error changing the file type");
              } else {
              }
            },
            error: function(){
              alert("Error changing the file type");
            }
          });
        }
        if ( typeof( uploader_id ) != "undefined" ) {
          updateEnvironment (uploader_id);
        }
        // Custom callback function
        var custom_cb = $("#hidden_file_upload_cb").val();
        var custom_cb_args_json = $("#hidden_file_upload_cb_args").val();
        var custom_cb_args;
        if (custom_cb_args_json) eval('custom_cb_args='+custom_cb_args_json+';');
        if ( typeof( custom_cb_args ) != "undefined" )
        custom_cb_args.file_id=file_data.file_id;
        if (custom_cb) eval(custom_cb+'(custom_cb_args)');
      }
    },
    error: function(){
      alert("Error getting info about uploaded file");
    }
  });
}
// Debugging function
function alertOb(o) {
  var str="";
  for (var i in o) str += i + " : " + o[i] + "\n";
  alert("Array: "+str)
}
function alertArr(a) {
  var str="";
  for (var i in a) str += a[i] + "\n";
  alert(str);
}
function changeWorkFileType () {
   selected_workfile_type = $("#workfile_type").val();
}
function dump(arr,level) {
  var dumped_text = "";
  if(!level) level = 0;
  //The padding given at the beginning of the line.
  var level_padding = "";
  for(var j=0;j<level+1;j++) level_padding += "    ";
  if(typeof(arr) == 'object') { //Array/Hashes/Objects
    for(var item in arr) {
      var value = arr[item];
      if(typeof(value) == 'object') { //If it is an array,
        dumped_text += level_padding + "'" + item + "' ...\n";
        dumped_text += dump(value,level+1);
      } else {
        dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
      }
    }
  } else { //Stings/Chars/Numbers etc.
    dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
  }
  return dumped_text;
}
visible_fileupload_widget_id = 0;
function closeFileUploadWidget() {
  $('#fileupload_widget_guts').html("");
  $("#fileupload_widget_container").hide();
  visible_fileupload_widget_id = 0;
}
function showFileUploadWidget(id) {
  visible_fileupload_widget_id = id;
  // Show the widget
  $("#fileupload_widget_guts").html('<br><img src=/images/wikiwords/loading.gif> Loading...<br>');
  $("#fileupload_widget_container")
  .css({position: "absolute"})
  .show("fast", function() {
    $.ajax({
      url: '/ajax/ajax_pfe_files.php?action=make_fileupload_widget',
      data: id,
      type: "GET",
      dataType: "json",
      success: function(json) {
        // Bind form and pass options to ajaxForm
        $("#fileupload_widget_guts").html(json.data.html);
        var options = {
          dataType: 'json',
          error: function(){
            alert("Error uploading file.");
          },
          success: function (json) {
            if (!json.is_success) {
              // Print errors
              alertArr(json.err_msg);
            }
          }
        };
        if ($.fn.flash.hasFlash()) {
          $('.noflash_submit').hide();
        }
        // Bind form and pass options to ajaxForm
        $("#fileupload_widget_form").ajaxForm(options);
        $("#file_upload_container").jqUploader({
          uploadScript: "/ajax/ajax_pfe_files.php?action=upload_file&form_id="+$("#file_upload_form_id").val()+"&session_id="+$("#file_upload_session_id").val(),
          width: 400,
          background: "D8E0F0",
          barColor: "FFDD00",
          allowedExt: "*.*",
          allowedExtDescr: "*.*",
          params: {quality:"low"},
          validFileMessage: "Click upload",
          endMessage: "Processing uploaded file...",
          hideSubmit: false,
          endHtml: "<strong style='text-decoration:underline'>Upload finished!</strong>",
          afterScript: "javascript:fileUploadFinished();",
          src: "/js/jqUploader.swf"
        });
      }
    });
  });
}
function toggleFileUploadWidget(id) {
  if (visible_fileupload_widget_id == id) closeFileUploadWidget();
  else {
    if (visible_filesend_widget_id > 0) closeFileUploadWidget();
    showFileUploadWidget(id);
  }
}
/*------------------------
  Prequalified jobs stuff
  ------------------------*/
visible_deliverable_widget_id = 0;
function toggleDeliverFileWidget(id, data, offset) {
  if (args == null) var args = {};
  var do_hide = false;
  if (visible_deliverable_widget_id == id) closeDeliverFileWidget();
  else {
    if (visible_deliverable_widget_id > 0) closeDeliverFileWidget();
    showDeliverFileWidget(id, data, offset);
  }
}
function showDeliverFileWidget(id, args, offset) {
  visible_deliverable_widget_id = id;
  if (args == null) var args = {};
  if (offset == null) var offset = {top:0, left:0};
  args = checkPtcWidget(args);
  // Show the widget
  var link_offset=$("#deliverable_widget_link_"+id).offset();
  $("#deliverable_widget_guts").html('<br><img src="/images/wikiwords/loading.gif"> Loading...<br>');
  var url_to_bind = '/ajax/ajax_pfe_files.php?action=make_deliverable_widget';
  if (typeof( use_file_delivery_settings) != "undefined") {
    url_to_bind = url_to_bind + '&use_file_delivery_settings=yes';
  }
  $("#deliverable_widget_container")
  .css({position: "absolute", top:link_offset.top+offset.top, left:link_offset.left+offset.left})
  .show("fast", function() {
    $.ajax({
      url: url_to_bind,
      data: args,
      type: "GET",
      dataType: "json",
      success: function(json) {
        if (!json.is_success) {
          // Print errors
          alertArr(json.err_msg);
        } else {
          $('#deliverable_widget_guts').html(json.data.widget_html);
          selected_workfile_type = $("#workfile_type").val(); // Set the default workfile_type (to support forcing a hidden type)
          if ($.fn.flash.hasFlash() && !args.non_flash_version) {
            $('.noflash_submit').hide();
            var url_to_bind = '/ajax/ajax_pfe_files.php?action=upload_file&form_id='+$('#file_upload_form_id').val()+'&session_id='+$('#file_upload_session_id').val();
            if (typeof( use_file_delivery_settings) != "undefined") {
              url_to_bind = url_to_bind + '&use_file_delivery_settings=yes';
            }
            // Bind jquploader to file upload fields
            $("#file_upload_container").jqUploader({
              uploadScript: url_to_bind,
              width: 400,
              background: "D8E0F0",
              barColor: "FFDD00",
              // allowedExt: "*.avi; *.jpg; *.jpeg; *.png",
              allowedExt: "*.*",
              allowedExtDescr: "*.*",
              params: {quality:'low'},
              validFileMessage: 'Click "upload"',
              endMessage: 'Processing uploaded file...',
              hideSubmit: false,
              endHtml: '<strong style="text-decoration:underline">Upload finished!</strong>',
              afterScript: "javascript:fileUploadFinished();",
              src: '/js/jqUploader.swf'
            });
          } else {
            var options = {
              dataType: 'json',
              error: function(){
                //alert("Error sending file.");
                fileUploadFinished();
              },
              success: function (json) {
                if (!json.is_success) {
                  // Print errors
                  alertArr(json.err_msg);
                } else {
                  $('#deliverable_widget_guts').html(json.data.html);
                }
              }
            };
            // Bind form and pass options to ajaxForm
            $('#deliverable_widget_form').ajaxForm(options);
          }
        }
      }
    });
  });
}
function closeDeliverFileWidget() {
  $('#deliverable_widget_guts').html("");
  $("#deliverable_widget_container")
  .hide();
  visible_deliverable_widget_id = 0;
}
function cbUploadedDeliverable(args) {
  // Show loading icon
  $("#div_dv_status").html('<br><img src="/images/wikiwords/loading.gif"> Updating deliverable information...<br>');
  // Update deliverable data
  $.ajax({
    url: '/ajax/ajax_pfe_files.php?action=save_deliverable',
    data: args,
    type: "GET",
    dataType: "json",
    error: function(){
      alert("Error updating deliverable information.");
    },
    success: function(json) {
      if (!json.is_success) {
        // Print errors
        alertArr(json.err_msg);
      } else {
        // Show OK message
        $("#div_dv_status").html("Updated deliverable information.");
        // Store file info in page
        $("#div_dv_file_info_"+args.pq_deliverable_id).html(json.data.file_html);
      	// Make job complete section visible
      	$("#div_complete_job").show();
      	// Handle PTC deliverables
      	if (json.data.is_ptc) {
      	  $("#div_undelivered_"+args.pq_deliverable_id).hide();
      	  $("#div_delivered_"+args.pq_deliverable_id).show();
      	  if (json.data.job_is_delivered) {
      	    // Mark delivery as complete, and show invoice form
      	    $("#div_dv_incomplete").hide();
      	    $("#div_dv_complete").show();
      	    $("#img_dv_hdg_incomplete").hide();
      	    $("#img_dv_hdg_complete").show();
      	    ptcSectionClick('payment', true);
      	    $("#div_complete_job").show();
      	  }
      	}
      }
    }
  });
}
// Contracts
visible_contract_widget_id = 0;
function toggleContractFileWidget(id, data, offset) {
  if (args == null) var args = {};
  var do_hide = false;
  if (visible_contract_widget_id == id) closeContractFileWidget();
  else {
    if (visible_contract_widget_id > 0) closeContractFileWidget();
    showContractFileWidget(id, data, offset);
  }
}
function showContractFileWidget(id, args, offset) {
  visible_contract_widget_id = id;
  if (args == null) var args = {};
  if (offset == null) var offset = {top:0, left:0};
  args = checkPtcWidget(args);
  // Show the widget
  var link_offset=$("#contract_widget_link_"+id).offset();
  $("#contract_widget_guts").html('<br><img src="/images/wikiwords/loading.gif"> Loading...<br>');
  $("#contract_widget_container")
  .css({position: "absolute", top:link_offset.top+offset.top, left:link_offset.left+offset.left})
  .show("fast", function() {
    $.ajax({
      url: '/ajax/ajax_pfe_files.php?action=make_contract_widget',
      data: args,
      type: "GET",
      dataType: "json",
      success: function(json) {
        if (!json.is_success) {
          // Print errors
          alertArr(json.err_msg);
        } else {
          $('#contract_widget_guts').html(json.data.widget_html);
          selected_workfile_type = $("#workfile_type").val(); // Set the default workfile_type (to support forcing a hidden type)
          var options = {
            dataType: 'json',
            error: function(){
              //alert("Error adding contract.");
              fileUploadFinished();
            },
            success: function (json) {
              if (!json.is_success) {
                // Print errors
                alertArr(json.err_msg);
              } else {
                $('#div_contract_list').html(json.data.contract_list);
                closeContractFileWidget();
              }
            }
          };
          // Bind form and pass options to ajaxForm
          if ($.fn.flash.hasFlash()) {
            $('.noflash_submit').hide();
          } else {
            $('#contract_widget_form').ajaxForm(options);
          }
          $('#contract_widget_form_attach').ajaxForm(options);
          // Bind jquploader to file upload fields
          $("#file_upload_container").jqUploader({
            uploadScript: '/ajax/ajax_pfe_files.php?action=upload_file&form_id='+$('#file_upload_form_id').val()+'&session_id='+$('#file_upload_session_id').val(),
            width: 400,
            background: "D8E0F0",
            barColor: "FFDD00",
            // allowedExt: "*.avi; *.jpg; *.jpeg; *.png",
            allowedExt: "*.*",
            allowedExtDescr: "*.*",
            params: {quality:'low'},
            validFileMessage: 'Click "upload"',
            endMessage: 'Processing uploaded file...',
            hideSubmit: false,
            endHtml: '<strong style="text-decoration:underline">Upload finished!</strong>',
            afterScript: "javascript:fileUploadFinished();",
            src: '/js/jqUploader.swf'
          });
        }
      }
    });
  });
}
function closeContractFileWidget() {
  $('#contract_widget_guts').html("");
  $("#contract_widget_container")
  .hide();
  visible_contract_widget_id = 0;
}
function cbUploadedContract(args) {
  // Show loading icon
  $("#div_contract_status").html('<br><img src="/images/wikiwords/loading.gif"> Saving contract...<br>');
  // Save contract record
  $.ajax({
    url: '/ajax/ajax_pfe_files.php?action=save_contract&file_id=' + args.file_id,
    data: args,
    type: "GET",
    dataType: "json",
    error: function(){
      alert("Error saving contract.");
    },
    success: function(json) {
      if (!json.is_success) {
        // Print errors
        alertArr(json.err_msg);
      } else {
        // Show OK message
        $("#div_contract_status").html("Saved contract.");
        // Update select list
        $('#option_no_contract').after('<option id="option_new_file" value="'+json.data.contract_id+'">'+json.data.contract_name+'</option>');
        $('#option_new_file').select();
        // rebind ajaxForm for the contract widget
        var options = {
          dataType: 'json',
          error: function(){
            alert("Error adding contract.");
          },
          success: function (json) {
            if (!json.is_success) {
              // Print errors
              alertArr(json.err_msg);
            } else {
              $('#div_contract_list').html(json.data.contract_list);
              closeContractFileWidget();
            }
          }
        };
        // Bind form and pass options to ajaxForm
        $('#contract_widget_form').ajaxForm(options);
      }
    }
  });
}
function removeJobContract(need_id, contract_id) {
  // showfilemessage("Removing contract from this job");
  $.ajax({
    url: "/ajax/ajax_pfe_files.php?action=remove_job_contract&need_id="+need_id+"&contract_id="+contract_id,
    type: "GET",
    dataType: "json",
    timeout: 5000,
    error: function(){
      // hidemessage();
      alert("Error removing contract");
    },
    success: function(json){
      // hidemessage();
      if (json.is_success) {
        // Update the list
        $("#div_contract_list").html(json.data.contract_list);
      } else {
        alertArr(json.err_msg);
      }
    }
  });
}
// Job files
visible_jobfile_widget_id = 0;
function toggleJobFileWidget(id, data, offset) {
  if (args == null) var args = {};
  var do_hide = false;
  if (visible_jobfile_widget_id == id) closeJobFileWidget();
  else {
    if (visible_jobfile_widget_id > 0) closeJobFileWidget();
    showJobFileWidget(id, data, offset);
  }
}
function showJobFileWidget(id, args, offset) {
  visible_jobfile_widget_id = id;
  args = checkPtcWidget(args);
  if (args == null) var args = {};
  if (offset == null) var offset = {top:0, left:0};
  var url_to_bind = '/ajax/ajax_pfe_files.php?action=make_jobfile_widget';
  if (typeof( use_pq_job_settings) != "undefined") {
    url_to_bind = url_to_bind + '&use_pq_job_settings=yes';
  }
  if (typeof(quote_file) != "undefined") {
    url_to_bind = url_to_bind + '&quote_file=yes';
  }
  // Show the widget
  var link_offset=$("#jobfile_widget_link_"+id).offset();
  $("#jobfile_widget_guts").html('<br><img src="/images/wikiwords/loading.gif"> Loading...<br>');
  $("#jobfile_widget_container")
  .css({position: "absolute", top:link_offset.top+offset.top, left:link_offset.left+offset.left})
  .show("fast", function() {
    $.ajax({
      url: url_to_bind,
      data: args,
      type: "GET",
      dataType: "json",
      success: function(json) {
        if (!json.is_success) {
          // Print errors
          alertArr(json.err_msg);
        } else {
          $('#jobfile_widget_guts').html(json.data.widget_html);
          selected_workfile_type = $("#workfile_type").val(); // Set the default workfile_type (to support forcing a hidden type)
          var options = {
            dataType: 'json',
            error: function(){
              fileUploadFinished();
              //alert("Error adding jobfile.");
            },
            success: function (json) {
              if (!json.is_success) {
                // Print errors
                alertArr(json.err_msg);
              } else {
                if (typeof( args['internal_file_type']) != "undefined") {
                  if (args['internal_file_type'] == 'test_translation'){
                    $("#test_translation_div").html(json.data.file_list);
                    $("#file_uploader_link_test_translation").hide();
                  }else {
                    $("#div_jobfile_list").html(json.data.file_list);
                  }
                }else {
                  $("#div_jobfile_list").html(json.data.file_list);
                }
                if (typeof updateAutoAssign == 'function') updateAutoAssign();
                closeJobFileWidget();
              }
            }
          };
          // Bind form and pass options to ajaxForm
          if ($.fn.flash.hasFlash()) {
            $('.noflash_submit').hide();
          } else {
            $('#jobfile_widget_form').ajaxForm(options);
          }
          $("#jobfile_widget_form_attach").ajaxForm(options);
          // Bind jquploader to file upload fields
          var url_to_bind = '/ajax/ajax_pfe_files.php?action=upload_file&form_id='+$('#file_upload_form_id').val()+'&session_id='+$('#file_upload_session_id').val();
          if (typeof( use_pq_job_settings) != "undefined") {
            url_to_bind = url_to_bind + '&use_pq_job_settings=yes';
          }
          url_to_bind = url_to_bind + '&need_id='+args['need_id'];
          if (typeof( args['internal_file_type']) != "undefined") {
            url_to_bind = url_to_bind + '&internal_file_type='+args['internal_file_type'];
          }
          $("#file_upload_container").jqUploader({
            uploadScript: url_to_bind,
            width: 400,
            background: "D8E0F0",
            barColor: "FFDD00",
            // allowedExt: "*.avi; *.jpg; *.jpeg; *.png",
            allowedExt: "*.*",
            allowedExtDescr: "*.*",
            params: {quality:'low'},
            validFileMessage: 'Click "upload"',
            endMessage: 'Processing uploaded file...',
            hideSubmit: false,
            endHtml: '<strong style="text-decoration:underline">Upload finished!</strong>',
            afterScript: "javascript:fileUploadFinished();",
            src: '/js/jqUploader.swf'
          });
        }
      }
    });
  });
}
function closeJobFileWidget() {
  $("#jobfile_widget_guts").html("");
  $("#jobfile_widget_container").hide();
  visible_jobfile_widget_id = 0;
}
function closeTeamFileWidget() {
  $("#teamfile_widget_guts").html("");
  $("#teamfile_widget_container").hide();
  visible_jobfile_widget_id = 0;
}
function cbUploadedJobfile(args) {
  // Show loading icon
  $("#div_jobfile_status").html('<br><img src="/images/wikiwords/loading.gif"> Saving jobfile...<br>');
  // Save jobfile record
  $.ajax({
    url: '/ajax/ajax_pfe_files.php?action=save_jobfile&file_id=' + args.file_id+'&need_id='+$("input[name=need_id]").val()+'',
    data: args,
    type: "GET",
    dataType: "json",
    error: function(){
      alert("Error saving job file.");
    },
    success: function(json) {
      if (!json.is_success) {
        // Print errors
        alertArr(json.err_msg);
      } else {
        // Show OK message
        $("#div_jobfile_status").html("Saved file.");
        // Update select list
        /*
        $('#option_no_jobfile').after('<option id="option_new_file" value="'+json.data.file_id+'">'+json.data.file_name+'</option>');
        $('#option_new_file').select();
        */
        // rebind ajaxForm for the jobfile widget
        /*
        var options = {
           dataType: 'json',
           error: function(){
             alert("Error adding job file.");
           },
           success: function (json) {
             if (!json.is_success) {
               // Print errors
               alertArr(json.err_msg);
             } else {
               $('#div_jobfile_list').html(json.data.file_list);
               closeJobFileWidget();
             }
           }
         };
         // AutoAttach file
         // Bind form and pass options to ajaxForm
         $('#jobfile_widget_form').ajaxForm(options);
         */
         if (typeof( args['internal_file_type']) != "undefined") {
           if (args['internal_file_type'] == 'test_translation'){
             $("#test_translation_div").html(json.data.file_list);
             $("#file_uploader_link_test_translation").hide();
           }else {
             $("#div_jobfile_list").html(json.data.file_list);
           }
         }else {
           $("#div_jobfile_list").html(json.data.file_list);
         }
         if (typeof updateAutoAssign == 'function') updateAutoAssign();
        closeJobFileWidget();
      }
    }
  });
}
function removeJobFile(need_id, file_id,file_type) {
  // showfilemessage("Removing jobfile from this job");
  var ajax_url = "/ajax/ajax_pfe_files.php?action=remove_jobfile&need_id="+need_id+"&file_id="+file_id;
  if (typeof( file_type) != "undefined") {
    if (file_type == 'test_translation'){
      ajax_url = ajax_url + '&file_type=test_translation';
    }
  }
  $.ajax({
    url: ajax_url,
    type: "GET",
    dataType: "json",
    timeout: 5000,
    error: function(){
      // hidemessage();
      alert("Error removing job file");
    },
    success: function(json){
      // hidemessage();
      if (json.is_success) {
        // Update the list
        if (typeof( file_type) != "undefined") {
          if (file_type == 'test_translation'){
            $("#test_translation_div").html('');
            $("#file_uploader_link_test_translation").show();
          }else {
            $("#div_jobfile_list").html(json.data.file_list);
          }
        }else {
          $("#div_jobfile_list").html(json.data.file_list);
        }
        if (typeof updateAutoAssign == 'function') updateAutoAssign();
      } else {
        alertArr(json.err_msg);
      }
    }
  });
}
function bindUploader (uploader_id) {
  var options = {
    dataType: 'json',
    error: function(){
      alert("Error uploading file.");
    },
    success: function (json) {
      if (!json.is_success) {
        // Print errors
        alertArr(json.err_msg);
      }
    }
  };
  // Bind form and pass options to ajaxForm
  $("#filesend_widget_form"+uploader_id).ajaxForm(options);
  // Bind jquploader to file upload fields
  if (typeof( attach_pdf_to_credential) != "undefined") {
    rand_form_id = Math.random();
    $('#file_to_attach').val('');
    var upload_script_url = '/ajax/ajax_pfe_files.php?action=upload_file&worktype='+uploader_id+'&form_id='+rand_form_id+'&session_id='+$('#file_upload_session_id').val();
    upload_script_url = upload_script_url + '&attach_pdf_file_to_credential=y';
    $("#file_upload_container"+uploader_id).jqUploader({
      uploadScript: upload_script_url,
      width: 400,
      // background: "FFFFDF",
      background: "D8E0F0",
      // background: "EFEFEF",
      barColor: "FFDD00",
      allowedExt: '*.pdf',
      allowedExtDescr: '*.pdf',
      params: {quality:'low'},
      maxFileSize : 1048576,
      validFileMessage: 'Click "upload"',
      endMessage: 'Processing uploaded file...',
      hideSubmit: false,
      endHtml: '<strong style="text-decoration:underline">Upload finished!</strong>',
      afterScript: "javascript:fileUploadFinished(\'"+uploader_id+"\');",
      src: '/js/jqUploader.swf'
    });
  }else {
    var upload_script_url = '/ajax/ajax_pfe_files.php?action=upload_file&worktype='+uploader_id+'&form_id='+$('#file_upload_form_id'+uploader_id).val()+'&session_id='+$('#file_upload_session_id').val();
    $("#file_upload_container"+uploader_id).jqUploader({
      uploadScript: upload_script_url,
      width: 400,
      // background: "FFFFDF",
      background: "D8E0F0",
      // background: "EFEFEF",
      barColor: "FFDD00",
      // allowedExt: "*.avi; *.jpg; *.jpeg; *.png",
      allowedExt: "*.*",
      allowedExtDescr: "*.*",
      params: {quality:'low'},
      validFileMessage: 'Click "upload"',
      endMessage: 'Processing uploaded file...',
      hideSubmit: false,
      endHtml: '<strong style="text-decoration:underline">Upload finished!</strong>',
      afterScript: "javascript:fileUploadFinished(\'"+uploader_id+"\');",
      src: '/js/jqUploader.swf'
    });
  }
  var temp = $('#file_upload_container'+uploader_id).html();
  var html_text = temp.substring(6,temp.length);
  $('#file_upload_container'+uploader_id).html('<embed QUALITY="low" wmode="transparent" '+html_text);
  languages_array['tm'] = new Array();
  languages_array['glossary'] = new Array();
  $('#file_language_div'+uploader_id).html('');
}
function showUploader (uploader_id) {
 $('#file_upload_form_container'+uploader_id).show();
 $('#file_info_div'+uploader_id).html('');
 if (typeof( attach_pdf_to_credential) != "undefined") {
   $('#cancel_attach_link').show();
   $('#change_pfe_link').hide();
   $('#remove_current_file_link').hide();
 }
 bindUploader (uploader_id);
}
function updateEnvironment (uploader_id) {
  var loading_img = '<img border="0" src="/images/wikiwords/loading.gif">';
  if (uploader_id == 'glossary') {
    $('#num_gloss').html(loading_img);
    $('#num_your_gloss').html(loading_img);
    $('#gloss_table').html('<center>'+loading_img+'</center>&nbsp;Loading...');
  } else if (uploader_id == 'tm') {
    $('#num_tm').html(loading_img);
    $('#num_your_tm').html(loading_img);
    $('#tm_table').html('<center>'+loading_img+'</center>&nbsp;Loading...');
  }
  $('#num_uploaded_files').html(loading_img);
  var this_tab_url = $('#this_tab_url').val();
 // alert (this_tab_url);
  $.ajax({
    url: "/ajax/ajax_pfe_files.php?action=get_files_environment&uploader_id="+uploader_id+"&this_tab_url="+this_tab_url,
    type: "GET",
    dataType: "json",
    error: function(){
      alert("Error updating inteface");
    },
    success: function(json){
      if (json.is_success) {
        // Update the environment
        if (uploader_id == 'glossary') {
          $('#num_gloss').html(json.data.num_gloss);
          $('#num_your_gloss').html(json.data.num_gloss);
          $('#gloss_table').html(json.data.gloss_table);
        } else if (uploader_id == 'tm') {
          $('#num_tm').html(json.data.num_tm);
          $('#num_your_tm').html(json.data.num_tm);
          $('#tm_table').html(json.data.tm_table);
        }
        $('#num_uploaded_files').html(json.data.num_uploaded);
      }
    }
  });
}
var languages_array = new Array();
languages_array['tm'] = new Array();
languages_array['glossary'] = new Array();
function addFileLanguage (uploader_id) {
  if ( typeof( uploader_id ) != "undefined" ) add_sufix = uploader_id;
  var lang_selected = $('#file_language'+add_sufix).val();
  var add_lang_flag = true;
  var not_applicable = false;
  var previous_values = $('#current_languages_'+uploader_id).val();
  if ( typeof( languages_array[add_sufix] ) == "undefined" ) languages_array[add_sufix] = new Array ();
  if (previous_values == '---')  {
    languages_array[add_sufix] [0] = 'not_applicable';
    $('#current_languages_'+uploader_id).val('');
  }
  var l=languages_array[add_sufix].length;
  for(q=0;q<l;q++) {
    if (languages_array[add_sufix][q] == lang_selected) add_lang_flag = false;
    if (languages_array[add_sufix][q] == 'not_applicable' ) not_applicable = true;
  }
  if (lang_selected == 'not_applicable' && not_applicable == false) {
    var l=languages_array[add_sufix].length;
    for(q=0;q<l;q++) {
      languages_array[add_sufix][q] = '';
    }
    $('#file_language_div'+add_sufix).html('');
  }
  if (lang_selected == 'not_applicable' && not_applicable == true)  not_applicable = false;
  if (not_applicable == true) {
    alert ('Languages are not applicable, please remove the "not applicable" option if you want to add languages');
    add_lang_flag = false;
  }
  if (add_lang_flag == true) {
    var lang_text = $('#file_language'+add_sufix).find('option').filter(':selected').text();
    lang_id = remove(lang_selected,'.');
    var lang_selected_html = '<span id="'+add_sufix+'_'+lang_id+'"><br><b>&raquo;</b>&nbsp;&nbsp;'+lang_text+'&nbsp;[<a  href="#" onclick="removeLang(\''+lang_selected+'\',\''+add_sufix+'\'); return false;">remove</a>]</span>';
    num_langs = languages_array[add_sufix].length + 1;
    languages_array[add_sufix][num_langs] = lang_selected;
    $('#file_language_div'+add_sufix).html($('#file_language_div'+add_sufix).html()+lang_selected_html);
  }
}
function removeLang (lang_selected, uploader_id) {
  if ( typeof( languages_array[uploader_id] ) == "undefined" ) languages_array[uploader_id] = new Array ();
  var l=languages_array[uploader_id].length;
  var role_name=0;
  for(q=0;q<l;q++) {
    if (languages_array[uploader_id][q] == lang_selected) role_name = q;
  }
  if (typeof ($('#current_languages_'+uploader_id ).val())  != "undefined" ) {
    var previous_values = remove($('#current_languages_'+uploader_id).val(), lang_selected);
    $('#current_languages_'+uploader_id).val(previous_values);
  }
  languages_array[uploader_id][role_name] = '';
  lang_id = remove(lang_selected,'.');
  $('#'+uploader_id+'_'+lang_id).remove();
}
function remove(s, t) {
  /*
  **  Remove all occurrences of a token in a string
  **    s  string to be processed
  **    t  token to be removed
  **  returns new string
  */
  i = s.indexOf(t);
  r = "";
  if (i == -1) return s;
  r += s.substring(0,i) + remove(s.substring(i + t.length), t);
  return r;
}
function submitFileLanguages(file_id) {
  if ( typeof( languages_array[file_id] ) == "undefined" ) languages_array[file_id] = new Array ();
  var langs = '';
  if ( typeof( file_id ) != "undefined" ) {
    index_to_use = file_id;
    var l=languages_array[index_to_use].length;
    for(q=0;q<l;q++) {
      langs = langs +','+ languages_array[index_to_use][q] ;
    }
  }
  if (typeof( $('#current_languages_'+file_id).val()) != "undefined") {
    var previous_langs = $('#current_languages_'+file_id).val();
    var splitted=previous_langs.split(",");
    var length = splitted.length;
    for(x=0; x < length; x++) {
      langs = langs +','+ splitted[x] ;
    }
  }
  var args = {file_id: file_id, file_languages: langs };
  $('#file_lang_editor_container_'+file_id).html('<img src="/images/wikiwords/loading.gif"> Saving...');
  $.ajax({
    url: '/ajax/ajax_pfe_files.php?action=change_file_languages',
    data: args,
    type: "GET",
    dataType: "json",
    success: function(json) {
      if (!json.is_success) {
        alert("Error changing the file languages");
      } else {
        $('#file_lang_editor_container_'+file_id).html(json.data.output_html);
      }
    },
    error: function(){
      alert("Error changing the file languages");
    }
  });
}
function showFileLanguageEditor(file_id){
  $('#current_file_langs'+file_id).hide();
  $('#file_lang_editor'+file_id).show();
}
function closeFileLanguageEditor(file_id){
  $('#file_lang_editor'+file_id).hide();
  $('#current_file_langs'+file_id).show();
}
function editFileDescription(file_id) {
  $('#file_description_span_'+file_id).hide();
  $('#file_desc_text_'+file_id).val( $('#file_description_text_'+file_id).html());
  $('#file_desciption_editor_'+file_id).show();
}
function closeFileDescriptionEditor(file_id) {
  $('#file_desciption_editor_'+file_id).hide();
  $('#file_description_span_'+file_id).show();
}
function submitFileDescription (file_id){
  var file_description =  $('#file_desc_text_'+file_id).val();
  var args = {file_id: file_id, file_description: file_description };
  $('#file_description_editor_container_'+file_id).html('<img src="/images/wikiwords/loading.gif"> Saving...');
  $.ajax({
    url: '/ajax/ajax_pfe_files.php?action=change_file_description',
    data: args,
    type: "GET",
    dataType: "json",
    success: function(json) {
      if (!json.is_success) {
        alert("Error changing the file description");
      } else {
        $('#file_description_editor_container_'+file_id).html(json.data.output_html);
      }
    },
    error: function(){
      alert("Error changing the file description");
    }
  });
}
visible_invoice_widget_id = 0;
function toggleInvoiceFileWidget(id, data, offset) {
  if (args == null) var args = {};
  var do_hide = false;
  if (visible_invoice_widget_id == id) closeInvoiceFileWidget();
  else {
    if (visible_invoice_widget_id > 0) closeInvoiceFileWidget();
    showInvoiceFileWidget(id, data, offset);
  }
}
function showInvoiceFileWidget(id, args, offset) {
  visible_invoice_widget_id = id;
  if (args == null) var args = {};
  if (offset == null) var offset = {top:0, left:0};
  args = checkPtcWidget(args);
  // Show the widget
  var link_offset=$("#invoice_widget_link_"+id).offset();
  $("#invoice_widget_guts").html('<br><img src="/images/wikiwords/loading.gif"> Loading...<br>');
  $("#invoice_widget_container")
  .css({position: "absolute", top:link_offset.top+offset.top, left:link_offset.left+offset.left})
  .show("fast", function() {
    $.ajax({
      url: '/ajax/ajax_pfe_files.php?action=make_invoice_widget',
      data: args,
      type: "GET",
      dataType: "json",
      success: function(json) {
        if (!json.is_success) {
          // Print errors
          alertArr(json.err_msg);
        } else {
          $('#invoice_widget_guts').html(json.data.widget_html);
          selected_workfile_type = $("#workfile_type").val(); // Set the default workfile_type (to support forcing a hidden type)
          // Bind form and pass options to ajaxForm
          if ($.fn.flash.hasFlash()) {
            $('.noflash_submit').hide();
          } else {
            var options = {
              dataType: 'json',
              error: function(){
                //alert("Error sending file.");
                fileUploadFinished();
              },
              success: function (json) {
                if (!json.is_success) {
                  // Print errors
                  alertArr(json.err_msg);
                } else {
                  $('#invoice_widget_guts').html(json.data.html);
                }
              }
            };
            $('#invoice_widget_form').ajaxForm(options);
          }
          // Bind jquploader to file upload fields
          $("#file_upload_container").jqUploader({
            uploadScript: '/ajax/ajax_pfe_files.php?action=upload_file&form_id='+$('#file_upload_form_id').val()+'&session_id='+$('#file_upload_session_id').val(),
            width: 400,
            background: "D8E0F0",
            barColor: "FFDD00",
            // allowedExt: "*.avi; *.jpg; *.jpeg; *.png",
            allowedExt: "*.*",
            allowedExtDescr: "*.*",
            params: {quality:'low'},
            validFileMessage: 'Click "upload"',
            endMessage: 'Processing uploaded file...',
            hideSubmit: false,
            endHtml: '<strong style="text-decoration:underline">Upload finished!</strong>',
            afterScript: "javascript:fileUploadFinished();",
            src: '/js/jqUploader.swf'
          });
        }
      }
    });
  });
}
function closeInvoiceFileWidget() {
  $('#invoice_widget_guts').html("");
  $("#invoice_widget_container").hide();
  visible_invoice_widget_id = 0;
}
function cbUploadedInvoice(args) {
  // Show loading icon
  $("#div_invoice_status").html('<br><img src="/images/wikiwords/loading.gif"> Updating invoice information...<br>');
  $('.noflash_submit').hide();
  // Update invoice data
  $.ajax({
    url: '/ajax/ajax_pfe_files.php?action=save_invoice',
    data: args,
    type: "GET",
    dataType: "json",
    error: function(){
      alert("Error updating invoice information.");
    },
    success: function(json) {
      if (!json.is_success) {
        // Print errors
        alertArr(json.err_msg);
      } else {
        // Show OK message
        $("#div_invoice_status").html("Attached invoice file.");
        // Store file info in page
        $("#div_invoice_file_info").html(json.data.file_html);
      	// Make job complete section visible
      	// $("#div_complete_job").show();
      }
    }
  });
}
visible_catfile_widget_id = 0;
function toggleCatAnalysisLogWidget(id, data, offset) {
  if (args == null) var args = {};
  var do_hide = false;
  if (visible_catfile_widget_id == id) closeCatAnalysisLogWidget();
  else {
    if (visible_catfile_widget_id > 0) closeCatAnalysisLogWidget();
    showCatAnalysisLogWidget(id, data, offset);
  }
}
function showCatAnalysisLogWidget(id, args, offset) {
  visible_catfile_widget_id = id;
  if (args == null) var args = {};
  if (offset == null) var offset = {top:0, left:0};
  var url_to_bind = '/ajax/ajax_pfe_files.php?action=make_catanalysisfile_widget';
  // Show the widget
  var link_offset=$("#catfile_widget_link_"+id).offset();
  $("#catfile_widget_guts").html('<br><img src="/images/wikiwords/loading.gif"> Loading...<br>');
  $("#catfile_widget_container")
  .css({position: "absolute", top:link_offset.top+offset.top, left:link_offset.left+offset.left})
  .show("fast", function() {
    $.ajax({
      url: url_to_bind,
      data: args,
      type: "GET",
      dataType: "json",
      success: function(json) {
        if (!json.is_success) {
          // Print errors
          alertArr(json.err_msg);
        } else {
          $('#catfile_widget_guts').html(json.data.widget_html);
          selected_workfile_type = $("#workfile_type").val(); // Set the default workfile_type (to support forcing a hidden type)
          // Bind jquploader to file upload fields
          var url_to_bind = '/ajax/ajax_pfe_files.php?action=upload_file&need_id='+$("input[name=need_id]").val()+'&form_id='+$('#file_upload_form_id').val()+'&session_id='+$('#file_upload_session_id').val();
          if ($.fn.flash.hasFlash()) {
            $('.noflash_submit').hide();
          } else {
            var options = {
              dataType: 'json',
              error: function(){
                fileUploadFinished();
              },
              success: function (json) {
                if (!json.is_success) {
                  // Print errors
                  alertArr(json.err_msg);
                } else {
                  alert('hola');
                  fileUploadFinished();
                }
              }
            };
            $('#catfile_widget_form').ajaxForm(options);
          }
          $("#file_upload_container").jqUploader({
            uploadScript: url_to_bind,
            width: 400,
            background: "D8E0F0",
            barColor: "FFDD00",
            // allowedExt: "*.avi; *.jpg; *.jpeg; *.png",
            allowedExt: "*.*",
            allowedExtDescr: "*.*",
            params: {quality:'low'},
            validFileMessage: 'Click "upload"',
            endMessage: 'Processing uploaded file...',
            hideSubmit: false,
            endHtml: '<strong style="text-decoration:underline">Upload finished!</strong>',
            afterScript: "javascript:fileUploadFinished();",
            src: '/js/jqUploader.swf'
          });
        }
      }
    });
  });
}
function closeCatAnalysisLogWidget() {
  $('#catfile_widget_guts').html("");
  $("#catfile_widget_container")
  .hide();
  visible_catfile_widget_id = 0;
}
function cbUploadedAnalysisLogfile(args) {
  // Show loading icon
  $("#div_catfile_status").html('<br><img src="/images/wikiwords/loading.gif"> Parsing analysis log file...<br>');
  // Update deliverable data
  $.ajax({
    url: '/ajax/ajax_pfe_files.php?action=parse_analysis_log',
    data: 'file_id='+args.file_id+'&need_id='+$("input[name=need_id]").val()+'&source_lang='+$("#source_lang_variant").val()+'&target_lang='+$("#target_lang_variant").val()+'&software_id='+$("#software_select_list").val(),
    type: "GET",
    dataType: "json",
    error: function(){
      alert("This doesn't appear to be an analysis log. Unable to parse file.");
      closeCatAnalysisLogWidget();
    },
    success: function(json) {
      if (!json.is_success) {
        // Print errors
        alertArr(json.err_msg);
        //$("#main_data").html(json.err_msg);
      } else {
        // Show OK message
        $("#main_data").html('<br>'+json.parsed_data);
        // Store file info in page
        //$("#div_dv_file_info_"+args.pq_deliverable_id).html(json.data.file_html);
      }
      closeCatAnalysisLogWidget();
    }
  });
}
function getWordcount() {
  if ($('#block_selected').val() == '') {
    alert('Please, select at least one file from the list');
    return;
  }
  $.ajax({
    url: '/ajax/ajax_pfe_files.php?action=parse_analysis_log',
    data: 'file_id='+$('#analysis_log_file_id').val()+'&need_id='+$("input[name=need_id]").val()+'&block_selected='+$('#block_selected').val()+'&software_id='+$("#software_select_list").val(),
    type: "GET",
    dataType: "json",
    error: function(){
      alert("This doesn't appear to be an analysis log. Unable to parse file.");
    },
    success: function(json) {
      if (!json.is_success) {
        // Print errors
        alertArr(json.err_msg);
      } else {
        // Show OK message
        //$('#main_data').html($('#main_data').html()+json.main_data);
        $('#matches_context_match').val(json.matches_context_match);
        $('#matches_translated').val(json.matches_translated);
        $('#matches_repetitions').val(json.matches_repetitions);
        $('#matches_format_change').val(json.matches_format_change);
        $('#matches_repetitions').val(json.matches_repetitions);
        $('#matches_format_change').val(json.matches_format_change);
        $('#matches_100').val(json.matches_100);
        $('#matches_95').val(json.matches_95);
        $('#matches_85').val(json.matches_85);
        $('#matches_75').val(json.matches_75);
        $('#matches_50').val(json.matches_50);
        $('#matches_none').val(json.matches_none);
        // close widget
        //closeCatAnalysisLogWidget();
        // Store file info in page
        //$("#div_dv_file_info_"+args.pq_deliverable_id).html(json.data.file_html);
      }
    }
  });
}
function cancelPdfAttach(){
  $('#file_upload_form_containerother').hide();
  var previous_file = $('#previous_uploaded_file').val();
  $('#file_to_attach').val(previous_file);
  $('#cancel_attach_link').hide();
  $('#current_file_span').show();
  $('#restore_file_link').hide();
  $('#change_pfe_link').show();
  $('#remove_current_file_link').show();
}
function removeCurrentAttachedFile (){
  $('#file_upload_form_containerother').show();
  $('#restore_file_link').show();
  $('#remove_current_file_link').hide();
  $('#cancel_attach_link').hide();
  $('#current_file_span').hide();
  bindUploader ('other');
}
function checkPtcWidget(args) {
  if ($('#ptc_widget').length > 0) {
    jQuery.extend(args, {is_ptc_widget : 1});
  }
  return args;
}

/* New standard system */
function closeFileManagerWidget(id)  {
  $('#'+id+'_guts').html('<br><img src="/images/wikiwords/loading.gif"> Loading...<br>');
  $('#'+id+'_container').hide();
  visible_filesend_widget_id = 0;
}
visible_teamfile_widget_id = 0;
function toggleTeamfileWidget(id, data, offset) {
  if (args == null) var args = {};
  var do_hide = false;
  if (visible_teamfile_widget_id == id) closeTeamfileWidget();
  else {
    if (visible_teamfile_widget_id > 0) closeTeamfileWidget();
    showTeamfileWidget(id, data, offset);
  }
}
function showTeamfileWidget(id, args, offset) {
  visible_teamfile_widget_id = id;
  if (args == null) var args = {};
  if (offset == null) var offset = {top:0, left:0};
  // Show the widget
  var link_offset=$("#teamfile_widget_link_"+id).offset();
  // alert("top:"+(link_offset.top+offset.top)+", left:"+(link_offset.left+offset.left));
  // alert("link_offset.top:"+link_offset.top+", link_offset.left:"+link_offset.left);
  $("#teamfile_widget_guts").html('<br><img src="/images/wikiwords/loading.gif"> Loading...<br>');
  if (args['to_eids']) {
    if (args['to_eids'].length >= 1) {
      var l=args['to_eids'].length;
      var entity_list='';
      for(q=0;q<l;q++) {
        entity_list = entity_list +"&to_eids[]=" +args['to_eids'][q];
      }
      var args = '' ;
      if (typeof( using_vendor_browser) != "undefined") {
        if (using_vendor_browser == "yes")  args = "&using_vendor_browse=yes";
        else args = "&using_vendor_browse=no";
      } else args = "&using_vendor_browse=no";
      args = args + entity_list;
    }
  }
  $("#teamfile_widget_container")
  // .css({position: "absolute", top:link_offset.top-110, left:link_offset.left})
  .css({position: "absolute", top:link_offset.top+offset.top, left:link_offset.left+offset.left})
  .show("fast", function() {
    $.ajax({
      url: '/ajax/ajax_pfe_files.php?action=make_teamfile_widget',
      data: args,
      type: "GET",
      dataType: "json",
      success: function(json) {
        if (!json.is_success) {
          // Print errors
          alertArr(json.err_msg);
        } else {
          $('#teamfile_widget_guts').html(json.data.widget_html);
          if ($.fn.flash.hasFlash()) {
            $('.noflash_submit').hide();
          }
          var options = {
            dataType: 'json',
            error: function(){
              alert("Error sending file.");
            },
            success: function (json) {
              if (!json.is_success) {
                // Print errors
                alertArr(json.err_msg);
              } else {
                $('#teamfile_widget_guts').html(json.data.html);
              }
            }
          };
          // Bind form and pass options to ajaxForm
          $('#teamfile_widget_form').ajaxForm(options);
          // Bind jquploader to file upload fields
          $("#file_upload_container").jqUploader({
            uploadScript: '/ajax/ajax_pfe_files.php?action=upload_file&form_id='+$('#file_upload_form_id').val()+'&session_id='+$('#file_upload_session_id').val(),
            width: 400,
            // background: "FFFFDF",
            background: "D8E0F0",
            // background: "EFEFEF",
            barColor: "FFDD00",
            // allowedExt: "*.avi; *.jpg; *.jpeg; *.png",
            allowedExt: "*.*",
            allowedExtDescr: "*.*",
            params: {quality:'low'},
            validFileMessage: 'Click "upload"',
            endMessage: 'Processing uploaded file...',
            hideSubmit: false,
            endHtml: '<strong style="text-decoration:underline">Upload finished!</strong>',
            afterScript: "javascript:fileUploadFinished();",
            src: '/js/jqUploader.swf'
          });
        }
      }
    });
  });
}
function closeTeamfileWidget() {
  $('#teamfile_widget_guts').html("");
  $("#teamfile_widget_container")
  .hide();
  visible_teamfile_widget_id = 0;
}
function cbUploadedTeamfile(args) {
  // Show loading icon
  $("#div_teamfile_status").html('<br><img src="/images/wikiwords/loading.gif"> Saving jobfile...<br>');
  // Save jobfile record
  $.ajax({
    url: '/ajax/ajax_pfe_files.php?action=save_teamfile',
    data: args,
    type: "GET",
    dataType: "json",
    error: function(){
      alert("Error saving team file.");
    },
    success: function(json) {
      if (!json.is_success) {
        // Print errors
        alertArr(json.err_msg);
      } else {
        // Show OK message
        $("#div_team_status").html("Saved file.");
        $("#div_teamfile_list").html(json.data.file_list);
        closeTeamFileWidget();
      }
    }
  });
}
function removeTeamFile(need_id, file_id) {
  var ajax_url = "/ajax/ajax_pfe_files.php?action=remove_teamfile&team_id="+need_id+"&file_id="+file_id;
  $.ajax({
    url: ajax_url,
    type: "GET",
    dataType: "json",
    timeout: 5000,
    error: function(){
      // hidemessage();
      alert("Error removing team file");
    },
    success: function(json){
      // hidemessage();
      if (json.is_success) {
        $("#div_teamfile_list").html(json.data.file_list);
      } else {
        alertArr(json.err_msg);
      }
    }
  });
}
function openAddFileNote(file_id) {
  var custom_msg_form = 'Write a note/comment about this file:<br>';
  custom_msg_form += '<textarea id="note_msg" cols="40" rows="5"></textarea>';
  custom_msg_form += '<input type="hidden" id="file_id" value="'+file_id+'">';
  $.prompt(custom_msg_form, {
    callback: submitFileNote,
    buttons: { 'Submit': true, 'Cancel': false }
  });
}
function submitFileNote(v,m) {
  if (v) {
    var ajax_url = "/ajax/ajax_pfe_files.php?action=save_file_note";
    var args = { file_id: m.children('#file_id').val(), note_msg : m.children('#note_msg').val(), notes_to_show : $('#notes_to_show').val()};
    $.ajax({
      url: ajax_url,
      data: args,
      type: "POST",
      dataType: "json",
      timeout: 5000,
      error: function(){
        alert("Error adding your note/comment about this file");
      },
      success: function(json){
        if (json.is_success) {
          // refresh notes list
          $('#file_note_'+m.children('#file_id').val()).html(json.data.notes_list);
        } else {
          alertArr(json.err_msg);
        }
      }
    });
  }
}