I'm working on a function that extracts information from an XML document and compares to what the user has typed in. Can you suggest any ways in which I can improve it? The variables in the XML file are compared against txtSearch.
function checkXML() {
var s = "";
var albumPages = [];
for (var i = 0; i < xmlalbums.length; i++) {
var xmlalbum = xmlalbums[i];
var album_title = dataFromTag(xmlalbum, 'title');
var artist = dataFromTag(xmlalbum, 'artist');
var xmltracks = xmlalbum.getElementsByTagName('track');
for (var t = 0; t < xmltracks.length; t++) {
var track = xmltracks[t];
song_title = dataFromTag(track, 'title')
albumPages[albumPages.length] = artist.toUpperCase() + ':' + album_title.toUpperCase() + ':' + song_title.toUpperCase();
}
}
var resultList = '';
var resultCount = [];
for (var i = 0; i < albumPages.length; i++) {
var searchArtist = albumPages[i].substring(0, albumPages[i].indexOf(":"));
var searchAlbum = albumPages[i].substring(albumPages[i].indexOf(":") + 1, albumPages[i].lastIndexOf(":"));
var searchSong = albumPages[i].substring(albumPages[i].lastIndexOf(":") + 1, albumPages[i].length);
if (searchArtist.indexOf(txtSearch) != -1 || searchAlbum.indexOf(txtSearch) != -1 || searchSong.indexOf(txtSearch) != -1) {
resultList += "<option>" + searchSong + "</option>"
resultCount[resultCount.length] = i;
}
}
if (resultList.length == 0) {
s += "<span style='font-size: 2em;color: #fff;font-family: Arial;'>No result found!</span>"
}
else if (resultList.length > 0) {
s += '<select size="' + (resultCount.length + 1) + '" onclick="parent.col3(value);">';
s += resultList;
s += '</select>';
}
else {
s += "<span style='font-size: 2em;color: #fff;font-family: Arial;'>Awaiting search query...</span>"
}
with(document.getElementById('col2').contentDocument) {
open();
write(s);
close();
}
}