﻿var CutNumber = 0; //SETTING: setze hier die anzahl der zeichen (lauflänge) 

function ParseMyNodes(strTagName) {
    //alert('under maintenance');
    //funktion aufbereitung des outputs von "stellen" und "presse"
    var d = document;
    var f = d.forms[0];
    var xDivs = f.getElementsByTagName('div').length;
    var eDiv = f.getElementsByTagName('div');
    var TextCount = new Array();
    CutNumber = 350; //SETTING: setze hier die anzahl der zeichen (lauflänge) 

    //starten der parse routine für id="txt" (manueller start)
    K = d.getElementById(strTagName).firstChild; //tauche ein in ziel DIV
    while (K != null) {
        if (K.hasChildNodes()) {
            NodeStageDiving(K.firstChild);
        }
        K = K.nextSibling;
    }
    return 0; //done
}

function NodeStageDiving(Node) {
    //ebene
    while (Node != null) {
        if (Node.hasChildNodes) {
            CutNumber = NodeStageDiving(Node.firstChild);
            if (Node.nodeName == '#text' && Node.nodeValue.length <= CutNumber) {
                CutNumber = CutNumber - Node.nodeValue.length;
            } else {
                if (Node.nodeName == '#text' && Node.nodeValue.length > CutNumber) {
                    CutThis(Node, CutNumber);
                    CutNumber = 0;
                }
            }
        }
        Node = Node.nextSibling;
    }
    return CutNumber;
}

function CutThis(Node, CutNumber) {
    endCut = Node.nodeValue.length;
    //debug
    //alert('####[delete ' + CutNumber + ' to ' + endCut + ']####\nNode Name: '+Node.nodeName+'\nNode Type: '+Node.nodeType+'\n\n' + Node.nodeValue);
    Node.replaceData(CutNumber, endCut, '');
    if (CutNumber > 0) {
        //zusatz "..." ans ende des text fragments
        var Rest = document.createTextNode("...");
        Node.appendData(Rest.nodeValue);
    }
}