<?php echo ADD_MEDIA_BLAHBLAH; ?>
<script type="text/javascript">
+ // Function prototype inspired by http://molily.de/javascript-nodelist
+ function showNodes(n) {
+ var html;
+ html = '<!--nodeset--><li>';
+
+ switch (n.nodeType) {
+ case 1:
+ html += 'Type is <em>' + n.nodeName + '<\/em>';
+ if (n.hasChildNodes()) {
+ ausgabe += ' - childNodes: ' + n.childNodes.length;
+ }
+ break;
+
+ case 3:
+ var nval = n.nodeValue.replace(/</g, '<').replace(/\n/g, '\\n');
+ html += 'Content: <strong>' + nval + '<\/strong>';
+ break;
+
+ case 8:
+ var nval = n.nodeValue.replace(/</g, '<').replace(/\n/g, '\\n');
+ html += 'Hidden: <em>' + nval + '<\/em>';
+ break;
+
+ default:
+ html += 'Type is ' + n.nodeType + ', Content is <strong>' + n.nodeValue + '<\/strong>';
+ }
+
+ if (n.hasChildNodes()) {
+ html += '\n<ol>\n';
+ for (i=0; i < n.childNodes.length; i++) {
+ j = n.childNodes[i];
+ html += showNodes(j);
+ }
+ html += '</ol>\n';
+ }
+ html += '</li>\n';
+
+ return html;
+ }
+
function getfilename(value) {
re = /^.+[\/\\]+?(.+)$/;
return value.replace(re, "$1");
fields.id = 'upload_form_' + fieldcount;
fields.style.display = 'block';
- // Now, this is easy... ;-)
- userfile = fields.childNodes[1].childNodes[1].childNodes[0].childNodes[3].childNodes[0];
- targetfilename = fields.childNodes[1].childNodes[1].childNodes[4].childNodes[3].childNodes[0];
- targetdir = fields.childNodes[1].childNodes[1].childNodes[6].childNodes[3].childNodes[0];
- columncount = fields.childNodes[3].childNodes[0];
-
+ // Get the DOM outline be uncommenting this:
+ // document.getElementById('debug').innerHTML = showNodes(fields);
+
+ // garvin: This gets a bit weird. Opera, Mozilla and IE all have their own numbering.
+ // We cannot operate on "ID" basis, since a unique ID is not yet set before instancing.
+ if (fields.childNodes[0].nodeValue == null) {
+ // This is Internet Explorer, it does not have a linebreak as first element.
+ userfile = fields.childNodes[0].childNodes[0].childNodes[0].childNodes[1].childNodes[0];
+ targetfilename = fields.childNodes[0].childNodes[0].childNodes[2].childNodes[1].childNodes[0];
+ targetdir = fields.childNodes[0].childNodes[0].childNodes[3].childNodes[1].childNodes[0];
+ columncount = fields.childNodes[1].childNodes[0];
+ } else {
+ // We have a browser which has \n's as their own nodes. Don't ask me. Now let's check if it's Opera or Mozilla.
+ if (fields.childNodes[1].childNodes[0].nodeValue == null) {
+ // This is Opera.
+ userfile = fields.childNodes[1].childNodes[0].childNodes[0].childNodes[1].childNodes[0];
+ targetfilename = fields.childNodes[1].childNodes[0].childNodes[2].childNodes[1].childNodes[0];
+ targetdir = fields.childNodes[1].childNodes[0].childNodes[3].childNodes[1].childNodes[0];
+ columncount = fields.childNodes[3].childNodes[0];
+ } else {
+ // This is Mozilla.
+ userfile = fields.childNodes[1].childNodes[1].childNodes[0].childNodes[3].childNodes[0];
+ targetfilename = fields.childNodes[1].childNodes[1].childNodes[4].childNodes[3].childNodes[0];
+ targetdir = fields.childNodes[1].childNodes[1].childNodes[6].childNodes[3].childNodes[0];
+ columncount = fields.childNodes[3].childNodes[0];
+ }
+ }
+
userfile.id = 'userfile_' + fieldcount;
userfile.name = 'serendipity[userfile][' + fieldcount + ']';
<div id="ccounter"><input type="hidden" name="serendipity[column_count][1]" id="column_count_1" value="true" /></div>
</div>
+ <div id="debug">
+ </div>
+
<script type="text/javascript">
document.getElementById('upload_template').style.display = 'none';
document.write('<span id="upload_form"><' + '/span>');