All Downloads are FREE. Search and download functionalities are using the official Maven repository.

js.si-files.js Maven / Gradle / Ivy


$(document).ready(function() {
    SI.Files.stylizeAll();
});
// STYLING FILE INPUTS 1.0 | Shaun Inman  | 2007-09-07
if (!window.SI) { var SI = {}; };
SI.Files =
{
    htmlClass : 'SI-FILES-STYLIZED',
    fileClass : 'file',
    wrapClass : 'cabinet',
    fini : false,
    able : false,
    init : function()
    {
        this.fini = true;
        var ie = 0 //@cc_on + @_jscript_version
        if (window.opera || (ie && ie < 5.5) || !document.getElementsByTagName) { return; } // no support for opacity or the DOM
        this.able = true;
        var html = document.getElementsByTagName('html')[0];
        html.className += (html.className != '' ? ' ' : '') + this.htmlClass;
    },
    stylize : function(elem)
    {
        if (!this.fini) { this.init(); };
        if (!this.able) { return; };
        elem.parentNode.file = elem;
        elem.parentNode.onmousemove = function(e)
        {
            if (typeof e == 'undefined') e = window.event;
            if (typeof e.pageY == 'undefined' && typeof e.clientX == 'number' && document.documentElement)
            {
                e.pageX = e.clientX + document.documentElement.scrollLeft;
                e.pageY = e.clientY + document.documentElement.scrollTop;
            };
            var ox = oy = 0;
            var elem = this;
            if (elem.offsetParent)
            {
                ox = elem.offsetLeft;
                oy = elem.offsetTop;
                while (elem = elem.offsetParent)
                {
                    ox += elem.offsetLeft;
                    oy += elem.offsetTop;
                };
            };
            var x = e.pageX - ox;
            var y = e.pageY - oy;
            var w = this.file.offsetWidth;
            var h = this.file.offsetHeight;
            this.file.style.top = y - (h / 2) + 'px';
            this.file.style.left = x - (w - 30) + 'px';
        };
    },
    stylizeById : function(id)
    {
        this.stylize(document.getElementById(id));
    },
    stylizeAll : function()
    {
        if (!this.fini) { this.init(); };
        if (!this.able) { return; };
        var inputs = document.getElementsByTagName('input');
        for (var i = 0; i < inputs.length; i++)
        {
            var input = inputs[i];
            if (input.type == 'file' && input.className.indexOf(this.fileClass) != -1 && input.parentNode.className.indexOf(this.wrapClass) != -1)
            {
                this.stylize(input);
            };
        };
    }
};




© 2015 - 2025 Weber Informatics LLC | Privacy Policy