function copy(inElement) {

    if (inElement != null) {
        //window.clipboardData.setData('Text',inElement.innerHTML);
        window.clipboardData.setData('Text', inElement);
        var range = document.createElement('input');
        range.setAttribute('type', 'text');
        //range.value=inElement.innerHTML;
        //range.value=inElement.innerText;
        range.value = inElement;
        //range.execCommand('Copy');
        document.execCommand('Copy');
        //var range = inElement.createTextRange();
        //if (range && BodyLoaded==1)
        //range.execCommand('Copy');

    } else {
        var flashcopier = 'flashcopier';
        if (!document.getElementById(flashcopier)) {
            var divholder = document.createElement('div');
            divholder.id = flashcopier;
            document.body.appendChild(divholder);
        }
        document.getElementById(flashcopier).innerHTML = '';
        var divinfo = '<embed src="../tblubrechn/js/_clipboard.swf" FlashVars="clipboard=' + encodeURIComponent(inElement.textContent) + '" width="0" height="0" type="application/x-shockwave-flash"></embed>';
        document.getElementById(flashcopier).innerHTML = divinfo;
        //document.getElementById(flashcopier).innerText = divinfo;
    }
}

function copyFlash(inElement) {
    if (inElement.createTextRange) {
        var range = inElement.createTextRange();
        if (range && BodyLoaded == 1)
            range.execCommand('Copy');
    }
    else {
        var flashcopier = 'flashcopier';
        if (!document.getElementById(flashcopier)) {
            var divholder = document.createElement('div');
            divholder.id = flashcopier;
            document.body.appendChild(divholder);
        }

        document.getElementById(flashcopier).innerHTML = '';

        var textenc = getText(inElement);
        textenc = encodeURI(textenc);

        //remove double Whitespaces
        while (textenc.search('%20%20') >= 0)
            textenc = textenc.replace('%20%20', '%20');
        //remove double Tabs
        while (textenc.search('%09%09') >= 0)
            textenc = textenc.replace('%09%09', '%09');

        //remove EnterTab
        while (textenc.search('%0A%09') >= 0)
            textenc = textenc.replace('%0A%09', '');

        //remove EnterSpace
        while (textenc.search('%0A%20') >= 0)
            textenc = textenc.replace('%0A%20', '');

        //remove c2a0
        while (textenc.search('%09%C2%A0') >= 0)
            textenc = textenc.replace('%09%C2%A0', '');

        while (textenc.search('%C2%A0') >= 0)
            textenc = textenc.replace('%C2%A0', '');

        var divinfo = '<embed src="js/_clipboard.swf" FlashVars="clipboard=' + textenc + '" width="0" height="0" type="application/x-shockwave-flash"></embed>';
        document.getElementById(flashcopier).innerHTML = divinfo;
    }
}

function getText(element) {
    var textResult = "";
    if (element.nodeName == "TABLE") {
        textResult += getTableText(element);
    }
    else if (element.nodeName == "INPUT") {
        textResult += getInputText(element);
    }
    else if (element.nodeName == "SELECT") {
        textResult += getSelectText(element);
    }
    else if (element.childNodes != null && element.childNodes.length > 0) {
        var node = element.childNodes[0];
        while (node != null) {
            textResult += getText(node);
            node = node.nextSibling;
        }
    }
    else {
        if (element.nodeName == '#text') {
            if (element.nodeValue != "\n\t" && element.nodeValue != " ")
                textResult += element.nodeValue;
        }
    }
    return textResult;
}

function getTableText(element) {
    var result = "";
    switch (element.nodeName) {
        case "TABLE":
            var tr = element.getElementsByTagName("TR");
            for (var i = 0; i < tr.length; i++) {
                result += getTableText(tr[i]) + "\r\n";
            }
            result = result.substring(0, result.lastIndexOf("\r\n"));
            break;
        case "TR":
            var td = element.getElementsByTagName("TD");
            for (var i = 0; i < td.length; i++) {
                result += getText(td[i]) + "\t";
            }
            result = result.substring(0, result.lastIndexOf("\t"));
            break;
    }
    return result;
}

function getInputText(element) {
    var result = " ";
    if (element.nodeName == "INPUT") {
        switch (element.type) {
            case "text":
                result += element.value;
                break;
            case "password":
                result += element.value.replace('', '*');
                break;
            case "checkbox", "radio":
                if (element.checked)
                    result += element.value;
                break;
        }
    }
    return result;
}

function getSelectText(element) {
    var result = "";
    switch (element.nodeName) {
        case "SELECT":
            var opt = element.getElementsByTagName("OPTION");
            for (var i = 0; i < opt.length; i++) {
                if (opt[i].selected)
                    result += " " + getText(opt[i]);
            }
            /*
            switch(element.type){
            case "select-one":
            break;
            case "select-multiple":
                
            break;
            }
            */
            break;
        /*
        case "OPTION":
        break;
        */ 
    }

    return result;
}




// ------------------------------------------
// neuer copy versuch
// ------------------------------------------

function ToClipboard(node) {

    var nNode = node.cloneNode(true);

    nNode.id = "col3_copy";
    nNode.style.position = "absolute";
    nNode.style.visibility = "hidden";
    nNode.style.top = "0";
    nNode.style.left = "0";
    nNode.style.height = node.scrollHeight;
    nNode.style.width = node.scrollWidth;

    node.parentNode.appendChild(nNode);


    var range = document.selection.createRange();
    range.moveToElementText(nNode);

    // --- set data to clipboard

    // didn't work for html
    //window.clipboardData.setData('text', range.text);
    //window.clipboardData.setData('text/html', range.htmlText);

    // IE    
    range.select();

    document.execCommand('Copy');
    document.selection.empty();
    // --- set data to clipboard ---

    node.parentNode.removeChild(nNode);
}