I've just created a script in Google Spreadsheet in order to archive some things. I have data from four countries.  If something is marked done, then that line could be archived into that country's archive.

My code is pretty ugly. Is there a clearer way to do this?

    function CroatianArchive() 
    {  
      var source_sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('original');
      var target_sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('croatian_backup');
      var lastRow = source_sheet.getLastRow();
      var source_range = source_sheet.getDataRange();
      var target_range = target_sheet.getDataRange();  
      var rowsToBeDeleted = [];
      
      var i = 2;
      while (i <= lastRow) {
      if (source_sheet.getRange("A"+i).getValue() == "CRO" && source_sheet.getRange("M"+i).getValue() == "DONE" ) {
        var office = source_sheet.getRange("A"+i).getValue();
        var title = source_sheet.getRange("B"+i).getValue();
        var imdbId = source_sheet.getRange("C"+i).getValue();
        var channel = source_sheet.getRange("D"+i).getValue();
        var type = source_sheet.getRange("E"+i).getValue();
        var added = source_sheet.getRange("F"+i).getValue();
        var deadline = source_sheet.getRange("G"+i).getValue();
        var airing = source_sheet.getRange("H"+i).getValue();
        var link = source_sheet.getRange("I"+i).getValue();
        var picture = source_sheet.getRange("J"+i).getValue();
        var comment = source_sheet.getRange("K"+i).getValue();
        var portId = source_sheet.getRange("L"+i).getValue();
        var status = source_sheet.getRange("M"+i).getValue();
        var data = [office,title,imdbId,channel,type,added,deadline,airing,link,picture,comment,portId,status];
        target_sheet.appendRow(data);    
        rowsToBeDeleted.push(i);
        i++;
        } else {
          i++;
          }
        }  
        rowsToBeDeleted.reverse();
        for (var j = 0; j < rowsToBeDeleted.length; j++) 
        {
            source_sheet.deleteRow(rowsToBeDeleted[j]);
        }   
        SpreadsheetApp.getActiveSpreadsheet().toast('Archivation finished.', 'Status');
      }
    function SerbianArchive() 
    {  
      var source_sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('original');
      var target_sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('serbian_backup');
      var lastRow = source_sheet.getLastRow();
      var source_range = source_sheet.getDataRange();
      var target_range = target_sheet.getDataRange();  
      var rowsToBeDeleted = [];
      
      var i = 2;
      while (i <= lastRow) {
      if (source_sheet.getRange("A"+i).getValue() == "SER" && source_sheet.getRange("M"+i).getValue() == "DONE" ) {
        var office = source_sheet.getRange("A"+i).getValue();
        var title = source_sheet.getRange("B"+i).getValue();
        var imdbId = source_sheet.getRange("C"+i).getValue();
        var channel = source_sheet.getRange("D"+i).getValue();
        var type = source_sheet.getRange("E"+i).getValue();
        var added = source_sheet.getRange("F"+i).getValue();
        var deadline = source_sheet.getRange("G"+i).getValue();
        var airing = source_sheet.getRange("H"+i).getValue();
        var link = source_sheet.getRange("I"+i).getValue();
        var picture = source_sheet.getRange("J"+i).getValue();
        var comment = source_sheet.getRange("K"+i).getValue();
        var portId = source_sheet.getRange("L"+i).getValue();
        var status = source_sheet.getRange("M"+i).getValue();
        var data = [office,title,imdbId,channel,type,added,deadline,airing,link,picture,comment,portId,status];
        target_sheet.appendRow(data);    
        rowsToBeDeleted.push(i);
        i++;
        } else {
          i++;
          }
        }  
        rowsToBeDeleted.reverse();
        for (var j = 0; j < rowsToBeDeleted.length; j++) 
        {
            source_sheet.deleteRow(rowsToBeDeleted[j]);
        }   
        SpreadsheetApp.getActiveSpreadsheet().toast('Archivation finished.', 'Status');
      }