michael@0: function buildTable() michael@0: { michael@0: var seed = 0; michael@0: michael@0: var neutrals = ['"', ")", "("]; michael@0: var strongRTLs = ['א', 'ב', 'ג', 'ד', 'ה', 'ו', 'ז']; michael@0: var strongLTRs = ['a', 'b', 'c', 'd', 'e', 'f', 'g']; michael@0: var neutral = function() { return neutrals[seed++ % neutrals.length]; } michael@0: var strongRTL = function() { return strongRTLs[seed++ % strongRTLs.length]; } michael@0: var strongLTR = function() { return strongLTRs[seed++ % strongLTRs.length]; } michael@0: var charClassExamples = [neutral, strongRTL, strongLTR]; michael@0: var possibleDirs = ['ltr', 'rtl']; michael@0: michael@0: var elem=document.getElementById("elem"); michael@0: for (outerDirIndex in possibleDirs) { michael@0: var outerDir = possibleDirs[outerDirIndex]; michael@0: for (beforeSpanIndex in charClassExamples) { michael@0: var beforeSpan = charClassExamples[beforeSpanIndex]; michael@0: for (spanDirIndex in possibleDirs) { michael@0: var spanDir = possibleDirs[spanDirIndex]; michael@0: for (inSpanIndex in charClassExamples) { michael@0: var inSpan = charClassExamples[inSpanIndex]; michael@0: for (afterSpanIndex in charClassExamples) { michael@0: var afterSpan = charClassExamples[afterSpanIndex]; michael@0: function caseWithStyle() { michael@0: seed = 0; michael@0: var outerDiv = document.createElement("div"); michael@0: outerDiv.dir = outerDir; michael@0: outerDiv.appendChild(document.createTextNode(beforeSpan())); michael@0: var span = document.createElement("span"); michael@0: span.dir = spanDir; michael@0: span.setAttribute("class", "enclosed") michael@0: span.appendChild(document.createTextNode(inSpan())); michael@0: outerDiv.appendChild(span); michael@0: outerDiv.appendChild(document.createTextNode(afterSpan())); michael@0: return outerDiv; michael@0: } michael@0: elem.appendChild(caseWithStyle()); michael@0: } michael@0: } michael@0: } michael@0: } michael@0: } michael@0: }