Wow my answer just disappeared on posting :(
var main = function() {
var template = getTemplate(),
files;
if ( !template ) return;
files = getFiles ();
if ( !files || !files.length ) return;
makeDocument ( template, files );
}
var getTemplate = function() {
var mac = $.os[0]=="M",
macFilter = function(f){
return (f instanceof Folder) || /\.indt$/i.test(f.name);
},
winFilter = "InDesign templates : *.indt;",
filter = mac? macFilter : winFilter,
template = File.openDialog ( "Please choose a template", filter );
return template;
}
var getFiles = function() {
var mac = $.os[0]=="M",
macFilter = function(f){
return (f instanceof Folder) || /\.(jpe?g|tiff?|png)$/i.test(f.name);
},
winFilter = "Image Files (*.png, *.jpg, *.jpeg, *.tif)",
filter = mac? macFilter : winFilter,
files = File.openDialog ( "Please select some files…", filter, true );
return files
}
var makeDocument = function(template, files) {
var doc = app.open ( template, false ),
root = doc.xmlElements[0],
img,
n = files.length, i = 0;
while ( i<n ) {
img = root.xmlElements[i];
if ( img.isValid ) {
img.xmlContent.place ( files[i] );
};
i++;
}
jpgFile = File ( Folder.desktop+"/"+doc.name+".jpg" );
doc.exportFile ( ExportFormat.JPG, jpgFile );
doc.close(SaveOptions.NO);
}
var u;
app.doScript ( "main()",u,u,UndoModes.ENTIRE_SCRIPT, "The Script" );