////////////////////////////////////////////////////////////////////////
//
// Filename:    fileupload.js
// Purpose:     Dynamically replace the default file upload widget
// Method:      DOM manipulations
// Author:      Michael McGrady
// References:  http://www.quirksmode.org/dom/inputfile.html
//
// Notes:
// The widget is replaced by an <input> and <img> element:
// The <input> element can be freely styled.
// The <img> replaces the "browse..." button.
// The pages using file uploading should include this file
// [typically: $this->addFileJS('/js/fileupload.js')]
//
////////////////////////////////////////////////////////////////////////

var W3CDOM = (document.createElement && document.getElementsByTagName);

function initFileUploads()
{
    if (!W3CDOM) return;
    var fakeFileUpload = document.createElement('div');
    fakeFileUpload.className = 'fakefile';
    fakeFileUpload.appendChild(document.createElement('input'));
    var image = document.createElement('img');
    image.src = '/icn/fileupload.gif';
    fakeFileUpload.appendChild(image);
    var x = document.getElementsByTagName('input');
    for (var i=0;i<x.length;i++)
    {
        if (x[i].type != 'file') continue;
        if (x[i].parentNode.className != 'fileinputs') continue;
        x[i].className = 'file hidden';
        var clone = fakeFileUpload.cloneNode(true);
        x[i].parentNode.appendChild(clone);
        x[i].relatedElement = clone.getElementsByTagName('input')[0];
        x[i].onchange = x[i].onmouseout = function () {
            this.relatedElement.value = this.value;
        }
    }
}
this.onload = initFileUploads;
